Merge branch 'master' of http://60.1.1.230/backend/jieling_server
commit
6c9dfab0cc
|
@ -75,6 +75,7 @@ public class CarDelayFunction implements FunctionManager {
|
|||
});
|
||||
|
||||
for(ZSetOperations.TypedTuple<String> item : guildRangeWithScores){
|
||||
rank++;
|
||||
|
||||
String value = item.getValue();
|
||||
int guildId = Integer.parseInt(value);
|
||||
|
@ -83,7 +84,6 @@ public class CarDelayFunction implements FunctionManager {
|
|||
if(guildInfo==null){
|
||||
continue;
|
||||
}
|
||||
rank++;
|
||||
Collection<Set<Integer>> values = guildInfo.getMembers().values();
|
||||
if(userLevelGuildMap.containsKey(guildId)){
|
||||
values.add(usersByGuildId.get(guildId));
|
||||
|
|
|
@ -133,6 +133,7 @@ public class RedisKey {
|
|||
public static final String RANDOM_CARD_RANK="RANDOM_CARD_RANK";
|
||||
public static final String RANDOM_CARD_PERFECT_RANK = "RANDOM_CARD_PERFECT_RANK";
|
||||
|
||||
public static final String GUILD_FORCE_RANK = "GUILD_FORCE_RANK";
|
||||
public static final String GUILD_BOSS_RANK = "GUILD_BOSS_RANK";
|
||||
|
||||
public static final String GUILD_RED_PACKAGE_RANK = "GUILD_RED_PACKAGE_RANK";
|
||||
|
|
|
@ -20,6 +20,6 @@ public class RankFirstHandler extends BaseHandler<PlayerInfoProto.RankFirstReque
|
|||
|
||||
@Override
|
||||
public void processWithProto(ISession iSession, PlayerInfoProto.RankFirstRequest proto) throws Exception {
|
||||
RankLogic.getInstance().getRankFirstInfo(iSession,proto.getTypesList(),MessageTypeProto.MessageType.RANK_GET_FIRST_RESPONSE);
|
||||
RankLogic.getInstance().getRankFirstInfo(iSession,proto.getTypesList(),proto.getActiviteIdList(),MessageTypeProto.MessageType.RANK_GET_FIRST_RESPONSE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ import com.ljsd.jieling.logic.activity.RemoveEventHeroHandler;
|
|||
import com.ljsd.jieling.logic.activity.UserLevelEventHandler;
|
||||
import com.ljsd.jieling.logic.activity.eventhandler.ActivityStateChangeHandler;
|
||||
import com.ljsd.jieling.logic.activity.eventhandler.BuyGoodsDirectHandler;
|
||||
import com.ljsd.jieling.logic.activity.eventhandler.GuildForceChangeEventHandler;
|
||||
import com.ljsd.jieling.logic.arena.ArenaLogic;
|
||||
import com.ljsd.jieling.logic.championship.ChampionshipLogic;
|
||||
import com.ljsd.jieling.logic.dao.ServerConfig;
|
||||
|
@ -245,6 +246,7 @@ public class GlobalDataManaager implements IManager {
|
|||
new FightMainEventHandler();
|
||||
new BuyGoodsDirectHandler();
|
||||
new ActivityStateChangeHandler();
|
||||
new GuildForceChangeEventHandler();
|
||||
ChampionshipLogic.minuteCheck(true);
|
||||
GuildFightLogic.minuteCheckForCarFight();
|
||||
} catch (Exception e) {
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
package com.ljsd.jieling.logic.activity.event;
|
||||
|
||||
/**
|
||||
* @author lvxinran
|
||||
* @date 2020/6/8
|
||||
* @discribe
|
||||
*/
|
||||
public class GuildForceChangeEvent implements IEvent {
|
||||
private int uid;
|
||||
|
||||
private int gid;
|
||||
|
||||
private int type;//1为新加入 2为修改 3为退出
|
||||
|
||||
private int force;
|
||||
|
||||
public int getUid() {
|
||||
return uid;
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
public int getForce() {
|
||||
|
||||
return force;
|
||||
}
|
||||
|
||||
public int getGid() {
|
||||
return gid;
|
||||
}
|
||||
|
||||
public void setUid(int uid) {
|
||||
this.uid = uid;
|
||||
}
|
||||
|
||||
public void setGid(int gid) {
|
||||
this.gid = gid;
|
||||
}
|
||||
|
||||
public void setType(int type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public void setForce(int force) {
|
||||
this.force = force;
|
||||
}
|
||||
|
||||
public GuildForceChangeEvent(int uid, int gid, int type, int force) {
|
||||
this.uid = uid;
|
||||
this.gid = gid;
|
||||
this.type = type;
|
||||
this.force = force;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package com.ljsd.jieling.logic.activity.eventhandler;
|
||||
|
||||
import com.ljsd.jieling.logic.activity.IEventHandler;
|
||||
import com.ljsd.jieling.logic.activity.event.GuildForceChangeEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.IEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.rank.RankContext;
|
||||
import com.ljsd.jieling.logic.rank.RankEnum;
|
||||
import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
|
||||
|
||||
/**
|
||||
* @author lvxinran
|
||||
* @date 2020/6/8
|
||||
* @discribe 公会排行
|
||||
*/
|
||||
public class GuildForceChangeEventHandler implements IEventHandler {
|
||||
public GuildForceChangeEventHandler() {
|
||||
Poster.getPoster().listenEvent(this, GuildForceChangeEvent.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvent(IEvent event) throws Exception {
|
||||
GuildForceChangeEvent forceChangeEvent = (GuildForceChangeEvent) event;
|
||||
AbstractRank rankEnum = RankContext.getRankEnum(RankEnum.GUILD_FORCE_RANK.getType());
|
||||
double score = rankEnum.getScoreById(forceChangeEvent.getGid(), "");
|
||||
if(score<0){
|
||||
score=0;
|
||||
}
|
||||
int resultForce = (int)(score+forceChangeEvent.getForce());
|
||||
rankEnum.addRank(((GuildForceChangeEvent) event).getGid(),"",resultForce);
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -16,6 +16,7 @@ import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
|||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.ActivityType;
|
||||
import com.ljsd.jieling.logic.activity.IEventHandler;
|
||||
import com.ljsd.jieling.logic.activity.event.GuildForceChangeEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.IEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.MinuteTaskEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
|
@ -591,6 +592,8 @@ public class GuildLogic {
|
|||
AyyncWorker ayyncWorker = new AyyncWorker(targetUser, true, new AynMissionWorker(GameEvent.JOIN_FAMILY));
|
||||
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
|
||||
RedisUtil.getInstence().removeMapEntrys(RedisKey.USER_LEVEL_GUILD_INFO,"",String.valueOf(applyId));
|
||||
Poster.getPoster().dispatchEvent(new GuildForceChangeEvent(targetUser.getId(),targetUser.getPlayerInfoManager().getGuildId(),1,targetUser.getPlayerInfoManager().getMaxForce()));
|
||||
|
||||
// targetUser.getUserMissionManager().onGameEvent(targetUser, GameEvent.JOIN_FAMILY);
|
||||
}finally {
|
||||
RedisUtil.getInstence().releaseDistributedLock(RedisKey.OPERATE_FAMILY_APPLY_JOIN,Integer.toString(applyId), Integer.toString(applyId));
|
||||
|
@ -1361,7 +1364,8 @@ public class GuildLogic {
|
|||
sendGuildHelpRewardEmail(user);
|
||||
int guildId = user.getPlayerInfoManager().getGuildId();
|
||||
RedisUtil.getInstence().putMapEntry(RedisKey.USER_LEVEL_GUILD_INFO,"",String.valueOf(user.getId()),guildId);
|
||||
|
||||
//删除战力
|
||||
Poster.getPoster().dispatchEvent(new GuildForceChangeEvent(user.getId(),user.getPlayerInfoManager().getGuildId(),3,0-user.getPlayerInfoManager().getMaxForce()));
|
||||
//notify all
|
||||
Family.GuildHelpInfoIndication.Builder build = Family.GuildHelpInfoIndication.newBuilder();
|
||||
for (Map.Entry<Integer, Integer> entry : user.getGuildMyInfo().getGuidHelpInfo().entrySet()) {
|
||||
|
|
|
@ -16,6 +16,7 @@ import com.ljsd.jieling.globals.Global;
|
|||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.logic.activity.ActivityType;
|
||||
import com.ljsd.jieling.logic.activity.event.GuildForceChangeEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.activity.event.UserForceChangeEvent;
|
||||
import com.ljsd.jieling.logic.activity.eventhandler.UserForceUpEventHandler;
|
||||
|
@ -266,6 +267,9 @@ public class PlayerLogic {
|
|||
int teamForce = HeroLogic.getInstance().calTeamTotalForce(user, teamId, false);
|
||||
System.out.println(teamForce);
|
||||
if(user.getPlayerInfoManager().getMaxForce() < teamForce){
|
||||
if(user.getPlayerInfoManager().getGuildId()!=0){
|
||||
Poster.getPoster().dispatchEvent(new GuildForceChangeEvent(user.getId(),user.getPlayerInfoManager().getGuildId(),2,teamForce-user.getPlayerInfoManager().getMaxForce()));
|
||||
}
|
||||
user.getPlayerInfoManager().setMaxForce(teamForce);
|
||||
Poster.getPoster().dispatchEvent(new UserForceChangeEvent(uid,teamForce));
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.USER_FORCE_CHANGE);
|
||||
|
|
|
@ -27,8 +27,8 @@ public enum RankEnum {
|
|||
DEATH_PATH_EVERY_PERSON_RANK(15,RedisKey.DEATH_PATH_EVERY_PERSON_RANK,DeathPathEveryPersonRank::new),//param1:当前阵玩家伤害 param2:无 param3:无
|
||||
DEATH_PATH_EVERY_GUILD_RANK(16,RedisKey.DEATH_PATH_EVERY_GUILD_RANK, DeathPathEveryGuildRank::new),//param1:当前阵公会伤害 param2:当前工会挑战人数 param3:无
|
||||
DEATH_PATH_TOTAL_PERSON_RANK(17,RedisKey.DEATH_PATH_TOTAL_PERSON_RANK,DeathPathTotalPersonRank::new),//param1:玩家总伤害 param2:无 param3:无
|
||||
DEATH_PATH_TOTAL_GUILD_RANK(18,RedisKey.DEATH_PATH_TOTAL_GUILD_RANK,DeathPathTotalGuildRank::new);//param1:工会总伤害 param2:无 param3:无
|
||||
|
||||
DEATH_PATH_TOTAL_GUILD_RANK(18,RedisKey.DEATH_PATH_TOTAL_GUILD_RANK,DeathPathTotalGuildRank::new),//param1:工会总伤害 param2:无 param3:无
|
||||
GUILD_FORCE_RANK(20,RedisKey.GUILD_FORCE_RANK,GuildForceRank::new);//param1:公会总战力 param2:无 param3:无
|
||||
|
||||
private int type;
|
||||
private String redisKey;
|
||||
|
|
|
@ -60,12 +60,14 @@ public class RankLogic {
|
|||
* @param messageType
|
||||
* @throws Exception
|
||||
*/
|
||||
public void getRankFirstInfo(ISession session, List<Integer> rankTypes, MessageTypeProto.MessageType messageType) throws Exception {
|
||||
public void getRankFirstInfo(ISession session, List<Integer> rankTypes,List<Integer> activityId,MessageTypeProto.MessageType messageType) throws Exception {
|
||||
PlayerManager playerManager = UserManager.getUser(session.getUid()).getPlayerInfoManager();
|
||||
PlayerInfoProto.RankFirstResponse.Builder response = PlayerInfoProto.RankFirstResponse.newBuilder();
|
||||
for(int type :rankTypes){
|
||||
for(int i = 0 ; i <rankTypes.size();i++){
|
||||
int type = rankTypes.get(i);
|
||||
int param = activityId.get(i);
|
||||
AbstractRank rankEnum = RankContext.getRankEnum(type);
|
||||
CommonProto.UserRank.Builder first = rankEnum.getFirst();
|
||||
CommonProto.UserRank.Builder first = rankEnum.getFirst(param);
|
||||
response.addRanks(first.build());
|
||||
response.addProud(playerManager.getProudInfo().contains(type)?1:0);
|
||||
}
|
||||
|
|
|
@ -91,8 +91,8 @@ public abstract class AbstractRank implements IRank {
|
|||
}
|
||||
|
||||
//获取第一名信息
|
||||
public CommonProto.UserRank.Builder getFirst() throws Exception {
|
||||
Set<ZSetOperations.TypedTuple<String>> rankByKey = getRankByKey("", 0, 1);
|
||||
public CommonProto.UserRank.Builder getFirst(int activityId) throws Exception {
|
||||
Set<ZSetOperations.TypedTuple<String>> rankByKey = getRankByKey(activityId==0?"":String.valueOf(activityId), 0, 0);
|
||||
CommonProto.UserRank.Builder builder = CommonProto.UserRank.newBuilder();
|
||||
if(rankByKey.size()!=1){
|
||||
return builder;
|
||||
|
@ -129,7 +129,7 @@ public abstract class AbstractRank implements IRank {
|
|||
CommonProto.UserRank.Builder oneUserRank = getOneUserRank(everyUser, everyRankInfo);
|
||||
builder.addRanks(oneUserRank);
|
||||
}
|
||||
public CommonProto.UserRank.Builder getOneUserRank(User everyUser,CommonProto.RankInfo.Builder everyRankInfo){
|
||||
public CommonProto.UserRank.Builder getOneUserRank(User everyUser,CommonProto.RankInfo.Builder everyRankInfo) throws Exception {
|
||||
CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder()
|
||||
.setUid(everyUser.getId())
|
||||
.setUserName(everyUser.getPlayerInfoManager().getNickName())
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
package com.ljsd.jieling.logic.rank.rankImpl;
|
||||
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.logic.dao.GuilidManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author lvxinran
|
||||
* @date 2020/6/8
|
||||
* @discribe
|
||||
*/
|
||||
public class GuildForceRank extends AbstractRank {
|
||||
|
||||
|
||||
public GuildForceRank(int type, String redisKey) {
|
||||
super(type, redisKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getDataByScore(Double score) {
|
||||
return new int[]{score.intValue()};
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getScore(double... data) {
|
||||
return data[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void getOptional(int index, ZSetOperations.TypedTuple<String> data, PlayerInfoProto.RankResponse.Builder builder) throws Exception {
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(data.getValue()));
|
||||
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
|
||||
.setRank(index)
|
||||
.setParam1(getParam1(data.getScore()))
|
||||
.setParam2(getParam2(data.getScore()))
|
||||
.setParam3(getParam3(data.getScore()));
|
||||
CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder()
|
||||
.setUid(guildInfo.getId())
|
||||
.setGuildName(guildInfo.getName())
|
||||
.setRankInfo(everyRankInfo);
|
||||
builder.addRanks(everyRank);
|
||||
}
|
||||
@Override
|
||||
protected void getMyInfo(User user, String rkey, PlayerInfoProto.RankResponse.Builder allUserResponse){
|
||||
int guildId = user.getPlayerInfoManager().getGuildId();
|
||||
int myRank= RedisUtil.getInstence().getZSetreverseRank(redisKey,rkey,Integer.toString(guildId)).intValue();
|
||||
Double zSetScore = RedisUtil.getInstence().getZSetScore(redisKey, rkey, Integer.toString(guildId));
|
||||
CommonProto.RankInfo towerRankInfo = CommonProto.RankInfo.newBuilder()
|
||||
.setRank(myRank)
|
||||
.setParam1(getParam1(zSetScore))
|
||||
.setParam2(getParam2(zSetScore)).build();
|
||||
allUserResponse.setMyRankInfo(towerRankInfo);
|
||||
}
|
||||
public CommonProto.UserRank.Builder getFirst(int activityId) throws Exception {
|
||||
Set<ZSetOperations.TypedTuple<String>> rankByKey = getRankByKey(activityId==0?"":String.valueOf(activityId), 0, 0);
|
||||
CommonProto.UserRank.Builder builder = CommonProto.UserRank.newBuilder();
|
||||
if(rankByKey.size()!=1){
|
||||
return builder;
|
||||
}
|
||||
ZSetOperations.TypedTuple<String> data = rankByKey.iterator().next();
|
||||
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
|
||||
.setRank(1)
|
||||
.setParam1(getParam1(data.getScore()))
|
||||
.setParam2(getParam2(data.getScore()))
|
||||
.setParam3(getParam3(data.getScore()));
|
||||
int gid = Integer.parseInt(data.getValue());
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(gid);
|
||||
Set<Integer> chairMan = guildInfo.getMembers().get(GlobalsDef.CHAIRMAN);
|
||||
int chairManId = chairMan.iterator().next();
|
||||
User user = UserManager.getUser(chairManId);
|
||||
CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder()
|
||||
.setUid(chairManId)
|
||||
.setUserName(user.getPlayerInfoManager().getNickName())
|
||||
.setHead(user.getPlayerInfoManager().getHead())
|
||||
.setHeadFrame(user.getPlayerInfoManager().getHeadFrame())
|
||||
.setLevel(user.getPlayerInfoManager().getLevel())
|
||||
.setRankInfo(everyRankInfo)
|
||||
.setForce(user.getPlayerInfoManager().getMaxForce())
|
||||
.setSex(user.getPlayerInfoManager().getSex())
|
||||
.setGuildName(guildInfo.getName());
|
||||
return everyRank;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue