diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index 556fcd2db..6f558e7be 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -76,6 +76,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ User user = UserManager.getUser(userId); QuestionLogic.getInstence().onLogin(user); PlayerManager playerInfoManager = user.getPlayerInfoManager(); + PlayerLogic.getInstance().checkOldMonthCard(user); ActivityLogic.getInstance().flushForLogin(user,iSession); GlobalDataManaager.checkNeedReFlush(iSession,user,null); BuyGoodsNewLogic.refreshWelfareState(user); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index c3a181fef..cf2eb7aa8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -1001,7 +1001,7 @@ public class PlayerManager extends MongoBase { iterator.remove(); continue; } - int beginOfDay = (int)(TimeUtils.getBeginOfDay(map.getValue() * 1000))/1000; + int beginOfDay= map.getValue(); // 结束时间 int lastTime = beginOfDay + 24*60*60*config.getContiueDays(); if(nowInt>=lastTime){ @@ -1012,6 +1012,11 @@ public class PlayerManager extends MongoBase { return monthCard; } + public void setMonthCard(Map map){ + this.monthCard = map; + updateString("monthCard",monthCard); + } + public void putMonthCard(Integer id, Integer time) { monthCard.put(id, time); updateString("monthCard",monthCard); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index b1171e5f0..2b9f8b96e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -52,6 +52,7 @@ import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.thrift.idl.*; import com.ljsd.jieling.thrift.pool.ClientAdapterPo; import com.ljsd.jieling.util.*; +import com.mongodb.Mongo; import config.*; import manager.STableManager; import org.slf4j.Logger; @@ -1682,13 +1683,9 @@ public class PlayerLogic { int state = 0; SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(monthcardConfig.getPrice()); - if (config != null){ - RechargeHandler rechargeHandler = BuyGoodsNewLogic.getRechargeHandler(config.getOtype()); - AbstractWelfareBag bag = rechargeHandler.getRechargeMap(user).get(config.getId()); - if (bag != null && !bag.checkBuy()){ - state = playerInfoManager.getMonthCardDailyTake().contains(monthcardConfig.getId())?2:1; - } - }else { + RechargeHandler rechargeHandler = BuyGoodsNewLogic.getRechargeHandler(config.getOtype()); + AbstractWelfareBag bag = rechargeHandler.getRechargeMap(user).get(config.getId()); + if (bag != null && !bag.checkBuy()){ state = playerInfoManager.getMonthCardDailyTake().contains(monthcardConfig.getId())?2:1; } @@ -1697,6 +1694,22 @@ public class PlayerLogic { return cardInfos; } + public void checkOldMonthCard(User user){ + Map monthCard = user.getPlayerInfoManager().getMonthCard(); + HashMap map = new HashMap<>(); + Integer oldone = monthCard.get(1); + if (oldone!=null){ + int begin = (int)(TimeUtils.getBeginOfDay(oldone * 1000)/1000); + map.put(2,begin); + } + Integer oldtwo = monthCard.get(2); + if (oldtwo!=null){ + int begin = (int)(TimeUtils.getBeginOfDay(oldtwo * 1000)/1000); + map.put(3,begin); + } + user.getPlayerInfoManager().setMonthCard(map); + } + /** * 限时头像框,旧内容兼容,一个玩家只运行一次 * @param user