sore flush

back_recharge
wangyuan 2019-11-11 10:48:33 +08:00
parent 29d1439c50
commit 8462e03b43
9 changed files with 78 additions and 18 deletions

View File

@ -724,6 +724,12 @@ public class MapManager extends MongoBase {
endlessMapInfo.setCurMapId(mapId); endlessMapInfo.setCurMapId(mapId);
updateString("endlessMapInfo.curMapId",mapId); updateString("endlessMapInfo.curMapId",mapId);
} }
public void updateEndlessHero(Map<String, Integer> endlessHeroInfo){
endlessMapInfo.setEndlessHeroInfo(endlessHeroInfo);
updateString("endlessMapInfo.endlessHeroInfo",endlessHeroInfo);
}
public void addEndlessSign(int mapId,int cellId,String info){ public void addEndlessSign(int mapId,int cellId,String info){
if(endlessMapInfo.getMapSign()==null){ if(endlessMapInfo.getMapSign()==null){
endlessMapInfo.setMapSign(new HashMap<>()); endlessMapInfo.setMapSign(new HashMap<>());

View File

@ -10,6 +10,7 @@ import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.logic.activity.FightMainEventHandler; import com.ljsd.jieling.logic.activity.FightMainEventHandler;
import com.ljsd.jieling.logic.activity.RemoveEventHeroHandler;
import com.ljsd.jieling.logic.activity.UserLevelEventHandler; import com.ljsd.jieling.logic.activity.UserLevelEventHandler;
import com.ljsd.jieling.logic.arena.ArenaLogic; import com.ljsd.jieling.logic.arena.ArenaLogic;
import com.ljsd.jieling.logic.blood.BloodLogic; import com.ljsd.jieling.logic.blood.BloodLogic;
@ -241,6 +242,7 @@ public class GlobalDataManaager {
new RPCServerTask(configurableApplicationContext).start(); new RPCServerTask(configurableApplicationContext).start();
new RPCGmServerTask(configurableApplicationContext).start(); new RPCGmServerTask(configurableApplicationContext).start();
new UserLevelEventHandler(); new UserLevelEventHandler();
new RemoveEventHeroHandler();
new FightMainEventHandler(); new FightMainEventHandler();
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("e",e); LOGGER.error("e",e);
@ -305,12 +307,7 @@ public class GlobalDataManaager {
FriendLogic.getInstance().refreshState(session); FriendLogic.getInstance().refreshState(session);
PlayerLogic.getInstance().sendTimingMail(user); PlayerLogic.getInstance().sendTimingMail(user);
// int sendDays = user.getPlayerInfoManager().getSendDays();
// int differentDays = TimeUtils.differentDaysByHour( user.getPlayerInfoManager().getLoginTime(),System.currentTimeMillis(), 5);
// int days = sendDays + differentDays;
// PlayerLogic.getInstance().sendTestWelfareMail(user,sendDays+1,sendDays+differentDays);
// user.getPlayerInfoManager().setSendDays(days);
// MapLogic.getInstance().towerAutoReset(session,fBuilder);
if(fBuilder!=null){ if(fBuilder!=null){
fBuilder.setSignInInfo(CommonProto.SignInInfo.newBuilder().setDays(user.getPlayerInfoManager().getSign()+1).setState(user.getPlayerInfoManager().getSignTotay()).build()); fBuilder.setSignInInfo(CommonProto.SignInInfo.newBuilder().setDays(user.getPlayerInfoManager().getSign()+1).setState(user.getPlayerInfoManager().getSignTotay()).build());
user.getPlayerInfoManager().setLoginTime(TimeUtils.now()); user.getPlayerInfoManager().setLoginTime(TimeUtils.now());

View File

@ -0,0 +1,34 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.logic.activity.event.IEvent;
import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.RemoveHeroEvent;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import java.util.Map;
public class RemoveEventHeroHandler implements IEventHandler{
public RemoveEventHeroHandler() {
Poster.getPoster().listenEvent(this, RemoveHeroEvent.class);
}
@Override
public void onEvent(IEvent event) throws Exception {
if(event instanceof RemoveHeroEvent){
RemoveHeroEvent removeHeroEvent = (RemoveHeroEvent)event;
int uid = removeHeroEvent.getUid();
String heroId = removeHeroEvent.getHeroId();
User userInMem = UserManager.getUserInMem(uid);
if(userInMem == null){
return;
}
Map<String, Integer> endlessHeroInfo = userInMem.getMapManager().getEndlessMapInfo().getEndlessHeroInfo();
if(endlessHeroInfo!=null && endlessHeroInfo.containsKey(heroId)){
endlessHeroInfo.remove(heroId);
userInMem.getMapManager().updateEndlessHero(endlessHeroInfo);
}
}
}
}

View File

@ -0,0 +1,19 @@
package com.ljsd.jieling.logic.activity.event;
public class RemoveHeroEvent implements IEvent {
private int uid;
private String heroId;
public RemoveHeroEvent(int uid, String heroId) {
this.uid = uid;
this.heroId = heroId;
}
public int getUid() {
return uid;
}
public String getHeroId() {
return heroId;
}
}

View File

@ -2,6 +2,8 @@ package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase; import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.db.mongo.MongoKey; import com.ljsd.jieling.db.mongo.MongoKey;
import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.RemoveHeroEvent;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import java.util.HashMap; import java.util.HashMap;
@ -50,10 +52,11 @@ public class HeroManager extends MongoBase {
return heroMap.get(heroId); return heroMap.get(heroId);
} }
public void removeHero(String heroId) { public void removeHero(int uid,String heroId) {
if (heroMap.containsKey(heroId)){ if (heroMap.containsKey(heroId)){
removeString(getMongoKey()+".heroMap." + heroId); removeString(getMongoKey()+".heroMap." + heroId);
heroMap.remove(heroId); heroMap.remove(heroId);
Poster.getPoster().dispatchEvent(new RemoveHeroEvent(uid,heroId));
} }
} }

View File

@ -705,14 +705,6 @@ public class HeroLogic {
} }
public void recyleHeroBySystem(User user,Set<String> removeHeroIds) throws Exception {
HeroManager heroManager = user.getHeroManager();
for(String useHeroId : removeHeroIds){
heroManager.removeHero(useHeroId);
}
}
//初始属性*1+化境增长)*等级系数 + 初始属性*突破系数 //初始属性*1+化境增长)*等级系数 + 初始属性*突破系数
private Map<Integer,Integer> calHeroAllAttribute(Hero hero,boolean isForce){ private Map<Integer,Integer> calHeroAllAttribute(Hero hero,boolean isForce){
Map<Integer,Integer> result = new HashMap<>(); Map<Integer,Integer> result = new HashMap<>();
@ -2071,7 +2063,7 @@ public class HeroLogic {
throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT); throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT);
} }
heroManager.removeHero(heroId); heroManager.removeHero(uid,heroId);
int[][] returnMaterials = sHeroReturn.getReturnMaterials(); int[][] returnMaterials = sHeroReturn.getReturnMaterials();
CommonProto.Drop.Builder drop = ItemUtil.drop(user, returnMaterials, BIReason.HERO_BACK_REWARD); CommonProto.Drop.Builder drop = ItemUtil.drop(user, returnMaterials, BIReason.HERO_BACK_REWARD);
SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()); SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel());

View File

@ -303,7 +303,7 @@ public class ItemLogic {
Map<Integer,Integer> baseRandomMap = new HashMap<>(); Map<Integer,Integer> baseRandomMap = new HashMap<>();
for (String heroId : heroIdsList) { for (String heroId : heroIdsList) {
Hero hero = heroManager.getHeroMap().get(heroId); Hero hero = heroManager.getHeroMap().get(heroId);
heroManager.removeHero(heroId); heroManager.removeHero(uid,heroId);
int[][] sumConsume = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()).getSumConsume(); int[][] sumConsume = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()).getSumConsume();
ItemUtil.combineReward(sumConsume,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap); ItemUtil.combineReward(sumConsume,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
int breakId = hero.getBreakId(); int breakId = hero.getBreakId();

View File

@ -115,7 +115,6 @@ public class StoreLogic {
User user = UserManager.getUser(session.getUid()); User user = UserManager.getUser(session.getUid());
if(user.getStoreManager().getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){ if(user.getStoreManager().getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){
updateUsersStoreAyync(UserManager.getUser(session.getUid()),user1 -> { updateUsersStoreAyync(UserManager.getUser(session.getUid()),user1 -> {
getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
StoreInfo storeInfo = user.getStoreManager().getStoreInfoMap().get(sStoreTypeConfig.getId()); StoreInfo storeInfo = user.getStoreManager().getStoreInfoMap().get(sStoreTypeConfig.getId());
Map<Integer, Integer> storeItem = getStoreItem(sStoreTypeConfig.getId(), sStoreTypeConfig, user); Map<Integer, Integer> storeItem = getStoreItem(sStoreTypeConfig.getId(), sStoreTypeConfig, user);
@ -200,6 +199,13 @@ public class StoreLogic {
removeStoreIds.add(storeInfo.getId()); removeStoreIds.add(storeInfo.getId());
} }
} }
boolean overTime = TimeUtils.isOverTime((int)(nowTime/1000), storeInfo.getLastRefreshTime());
if (overTime){
Map<Integer, Integer> storeItem = getStoreItem(sStoreTypeConfig.getId(), sStoreTypeConfig, user);
storeInfo.setLastRefreshTime(nowTime);
storeInfo.setItemNumMap(storeItem);
sendStoreUpdateIndication(user.getId(),storeInfo);
}
} }
for(Integer removeStoreId : removeStoreIds){ for(Integer removeStoreId : removeStoreIds){
storeManager.removeStoreInfo(removeStoreId); storeManager.removeStoreInfo(removeStoreId);
@ -209,6 +215,8 @@ public class StoreLogic {
initOneStore(user,openId); initOneStore(user,openId);
} }
} }
} }
public static void sendStoreUpdateIndication(int uid,StoreInfo storeInfo){ public static void sendStoreUpdateIndication(int uid,StoreInfo storeInfo){

View File

@ -413,6 +413,7 @@ public class ProtocolsManager implements ProtocolsAbstract {
//更新在线时长 //更新在线时长
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.OnlineReward,(int)(onlineTime/TimeUtils.ONE_SECOND)); ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.OnlineReward,(int)(onlineTime/TimeUtils.ONE_SECOND));
MongoUtil.getInstence().lastUpdate(); MongoUtil.getInstence().lastUpdate();
session.setFiveReady(0);
} }
backUpMsgToRedis(session); backUpMsgToRedis(session);
// 下线处理的逻辑需要添加在这里 // 下线处理的逻辑需要添加在这里