队伍战力存储到mongo,优化一下
parent
c8e8e644df
commit
b97b400182
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue