队伍战力存储到mongo,优化一下

back_recharge
duhui 2022-04-26 14:39:31 +08:00
parent c8e8e644df
commit b97b400182
3 changed files with 55 additions and 41 deletions

View File

@ -311,7 +311,7 @@ public class GlobalDataManaager implements IManager {
new ShanHeSheJiTuEventHandler();
new SummonTreasureHandler();
new ArchitectureUnLockHandler();
new SaveHeroForceEvent();
new SaveHeroForceEventHandler();
// 四灵试炼转移数据,只执行一次
// FourChallengeLogic.getInstance().redisToMongoDB();
ChampionshipLogic.minuteCheck(true);

View File

@ -1,20 +1,12 @@
package com.ljsd.jieling.logic.activity.event;
import com.ljsd.jieling.logic.activity.IEventHandler;
import com.ljsd.jieling.logic.dao.TeamEnum;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.hero.HeroLogic;
import java.util.List;
/**
*
*
* @author ascend
* 2022/4/26 10:29:18
*/
public class SaveHeroForceEvent implements IEvent, IEventHandler {
public class SaveHeroForceEvent implements IEvent {
private int uid;
@ -25,37 +17,6 @@ public class SaveHeroForceEvent implements IEvent, IEventHandler {
this.heroId = heroId;
}
public SaveHeroForceEvent() {
Poster.getPoster().listenEvent(this, SaveHeroForceEvent.class);
}
@Override
public void onEvent(IEvent event) throws Exception {
if(!(event instanceof SaveHeroForceEvent)){
return;
}
// 参数获取
int uid = ((SaveHeroForceEvent) event).getUid();
String heroId = ((SaveHeroForceEvent) event).getHeroId();
// user
User user = UserManager.getUser(uid);
// 需要存储战力的编队
List<Integer> saveForceTeamList = TeamEnum.getSaveForceTeamList();
for (Integer teamId : saveForceTeamList) {
// 英雄是否存在该编队中
if (!HeroLogic.getInstance().isInTeam(user,heroId,teamId) && !"".equals(heroId)){
continue;
}
// 主线标对需要更新排行榜信息
if (teamId == TeamEnum.FORMATION_NORMAL.getTeamId()){
Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(uid));
}
// 重新计算战力,并更新
int force = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.FORMATION_NORMAL.getTeamId(), false);
user.getTeamPosManager().putTeamForceMap(teamId,force);
}
}
public int getUid() {
return uid;
}

View File

@ -0,0 +1,53 @@
package com.ljsd.jieling.logic.activity.eventhandler;
import com.ljsd.jieling.logic.activity.IEventHandler;
import com.ljsd.jieling.logic.activity.event.IEvent;
import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.SaveHeroForceEvent;
import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent;
import com.ljsd.jieling.logic.dao.TeamEnum;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.hero.HeroLogic;
import java.util.List;
/**
*
*
* @author ascend
* 2022/4/26 10:29:18
*/
public class SaveHeroForceEventHandler implements IEventHandler {
public SaveHeroForceEventHandler() {
Poster.getPoster().listenEvent(this, SaveHeroForceEvent.class);
}
@Override
public void onEvent(IEvent event) throws Exception {
if(!(event instanceof SaveHeroForceEvent)){
return;
}
// 参数获取
int uid = ((SaveHeroForceEvent) event).getUid();
String heroId = ((SaveHeroForceEvent) event).getHeroId();
// user
User user = UserManager.getUser(uid);
// 需要存储战力的编队
List<Integer> saveForceTeamList = TeamEnum.getSaveForceTeamList();
for (Integer teamId : saveForceTeamList) {
// 英雄是否存在该编队中
if (!HeroLogic.getInstance().isInTeam(user,heroId,teamId) && !"".equals(heroId)){
continue;
}
// 主线标对需要更新排行榜信息
if (teamId == TeamEnum.FORMATION_NORMAL.getTeamId()){
Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(uid));
}
// 重新计算战力,并更新
int force = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.FORMATION_NORMAL.getTeamId(), false);
user.getTeamPosManager().putTeamForceMap(teamId,force);
}
}
}