From 6f63f03ab0afcb2f4740dde0f9b8c4366fd783a9 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 6 Jun 2022 16:31:44 +0800 Subject: [PATCH 01/14] =?UTF-8?q?=E6=9C=88=E5=8D=A1=E8=B0=83=E6=95=B4?= =?UTF-8?q?=EF=BC=8C=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/GetPlayerInfoHandler.java | 20 +++++----- .../handler/vip/MonthTakeDailyHandler.java | 1 - .../jieling/logic/store/BuyGoodsNewLogic.java | 37 ++++++------------- .../main/java/config/SMonthcardConfig.java | 3 ++ 4 files changed, 25 insertions(+), 36 deletions(-) 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 99d639cb6..556fcd2db 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -251,16 +251,16 @@ public class GetPlayerInfoHandler extends BaseHandler{ // 心愿抽卡 旧玩家兼容 wishOldUserRandomNumInit(user); //hotfix 月卡 - PlayerLogic.getInstance().getMonthCardInfo(user); - int monthline = STableManager.getConfig(SMonthcardConfig.class).get(Global.MONTHCARDID).getPrice(); - int lmonthline = STableManager.getConfig(SMonthcardConfig.class).get(Global.LMONTHCARDID).getPrice(); - if(newRechargeInfo.getMonthRr()>=monthline&&playerInfoManager.getMonthCard().getOrDefault(1,0)==0){ - user.getPlayerInfoManager().getMonthCard().put(Global.MONTHCARDID, (int) (System.currentTimeMillis() / 1000)); - } - if(newRechargeInfo.getsMonthRr()>=lmonthline&&playerInfoManager.getMonthCard().getOrDefault(2,0)==0){ - user.getPlayerInfoManager().getMonthCard().put(Global.LMONTHCARDID, (int) (System.currentTimeMillis() / 1000)); - Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.RECHARGE_BUY.getType(),Global.LMONTHCARDID)); - } +// PlayerLogic.getInstance().getMonthCardInfo(user); +// int monthline = STableManager.getConfig(SMonthcardConfig.class).get(Global.MONTHCARDID).getPrice(); +// int lmonthline = STableManager.getConfig(SMonthcardConfig.class).get(Global.LMONTHCARDID).getPrice(); +// if(newRechargeInfo.getMonthRr()>=monthline&&playerInfoManager.getMonthCard().getOrDefault(1,0)==0){ +// user.getPlayerInfoManager().getMonthCard().put(Global.MONTHCARDID, (int) (System.currentTimeMillis() / 1000)); +// } +// if(newRechargeInfo.getsMonthRr()>=lmonthline&&playerInfoManager.getMonthCard().getOrDefault(2,0)==0){ +// user.getPlayerInfoManager().getMonthCard().put(Global.LMONTHCARDID, (int) (System.currentTimeMillis() / 1000)); +// Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.RECHARGE_BUY.getType(),Global.LMONTHCARDID)); +// } // 四灵试炼初始化 FourChallengeLogic.getInstance().firstGetTimes(user); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/vip/MonthTakeDailyHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/vip/MonthTakeDailyHandler.java index 5e288c522..e6ff19171 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/vip/MonthTakeDailyHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/vip/MonthTakeDailyHandler.java @@ -36,7 +36,6 @@ public class MonthTakeDailyHandler extends BaseHandler =monthline){ - sendneed=true; - user.getPlayerInfoManager().putMonthCard(Global.MONTHCARDID, (int) (System.currentTimeMillis() / 1000)); - } - } - if(info.getsMonthRr()=lmonthline){ - sendneed=true; - user.getPlayerInfoManager().putMonthCard(Global.LMONTHCARDID, (int) (System.currentTimeMillis() / 1000)); - Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.RECHARGE_BUY.getType(),Global.LMONTHCARDID)); - } - } + public static void activeMonthCard(User user,double price,int goodId){ + Map monthcardConfigMap = STableManager.getConfig(SMonthcardConfig.class); - if(info.getSinceremonth() < sinceremonthline){ - info.setSinceremonth(MathUtils.doubleAdd(price,info.getSinceremonth())); - if(info.getSinceremonth() >= sinceremonthline){ + boolean sendneed =false; + for (SMonthcardConfig monthcardConfig : monthcardConfigMap.values()) { + if (goodId == monthcardConfig.getPrice()){ sendneed=true; - user.getPlayerInfoManager().putMonthCard(Global.SINCERECARDID, (int) (System.currentTimeMillis() / 1000)); + user.getPlayerInfoManager().putMonthCard(monthcardConfig.getId(), TimeUtils.nowInt()); + // 特殊处理 + if (monthcardConfig.getId() == Global.LMONTHCARDID){ + Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.RECHARGE_BUY.getType(),Global.LMONTHCARDID)); + } + break; } } if(sendneed){ diff --git a/tablemanager/src/main/java/config/SMonthcardConfig.java b/tablemanager/src/main/java/config/SMonthcardConfig.java index e682b78c5..8815c02c9 100644 --- a/tablemanager/src/main/java/config/SMonthcardConfig.java +++ b/tablemanager/src/main/java/config/SMonthcardConfig.java @@ -12,6 +12,9 @@ public class SMonthcardConfig implements BaseConfig { private String name; + /** + * 2022-06-06 字段用法从金额改为对应月卡的礼包id + */ private int price; private int[][] baseReward; From 651d94e41b383c7fc07ab540da88e5ef680b6c51 Mon Sep 17 00:00:00 2001 From: duhui Date: Wed, 8 Jun 2022 18:10:47 +0800 Subject: [PATCH 02/14] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E6=9C=88=E5=8D=A1?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=8C=E4=BF=AE=E6=94=B9=EF=BC=8C=E6=9C=AA?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/core/GlobalsDef.java | 1 + .../ljsd/jieling/logic/dao/PlayerManager.java | 50 +++++++++---------- .../jieling/logic/player/PlayerLogic.java | 49 +++++++++--------- .../jieling/logic/store/BuyGoodsNewLogic.java | 21 ++++++-- 4 files changed, 67 insertions(+), 54 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java b/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java index bceb6c475..d5ddca8c1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/GlobalsDef.java @@ -120,6 +120,7 @@ public interface GlobalsDef { int VIP_UNLOCK_PRIVILEGE = 3; int RECHARGE_UNLOCK_PRIVILEGE = 4; int LIKABLE_UNLOCK=6;//好感度解锁类型 + int WEEKCARD_UNLOCK=8;//周卡解锁类型 //特殊商店id int DAILY_GOODS_FAST_ID = 1004;//每日礼包一键购买的礼包ID 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 745482b9d..751f779a5 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 @@ -991,37 +991,33 @@ public class PlayerManager extends MongoBase { } public Map getMonthCard() { - Iterator> iterator = monthCard.entrySet().iterator(); - while (iterator.hasNext()){ - Map.Entry map = iterator.next(); - Integer key = map.getKey(); - SMonthcardConfig config = STableManager.getConfig(SMonthcardConfig.class).get(key); - if(null==config){ - iterator.remove(); - continue; - } - if(((int)(System.currentTimeMillis()/1000)-map.getValue())>24*60*60*config.getContiueDays()){ - iterator.remove(); - if(key== Global.MONTHCARDID){ - newRechargeInfo.setMonthRr(0); - }else if(key ==Global.LMONTHCARDID){ - newRechargeInfo.setsMonthRr(0); - }else if(key ==Global.SINCERECARDID){ - newRechargeInfo.setSinceremonth(0); - } - } - } - updateString("monthCard",monthCard); +// Iterator> iterator = monthCard.entrySet().iterator(); +// while (iterator.hasNext()){ +// Map.Entry map = iterator.next(); +// Integer key = map.getKey(); +// SMonthcardConfig config = STableManager.getConfig(SMonthcardConfig.class).get(key); +// if(null==config){ +// iterator.remove(); +// continue; +// } +// if(((int)(System.currentTimeMillis()/1000)-map.getValue())>24*60*60*config.getContiueDays()){ +// iterator.remove(); +// if(key== Global.MONTHCARDID){ +// newRechargeInfo.setMonthRr(0); +// }else if(key ==Global.LMONTHCARDID){ +// newRechargeInfo.setsMonthRr(0); +// }else if(key ==Global.SINCERECARDID){ +// newRechargeInfo.setSinceremonth(0); +// } +// } +// } +// updateString("monthCard",monthCard); return monthCard; } - public void setMonthCard(Map monthCard) { - updateString("monthCard",monthCard); - this.monthCard = monthCard; - } public void putMonthCard(Integer id, Integer time) { - this.monthCard.put(id, time); - updateString("monthCard",this.monthCard); + monthCard.put(id, time); + updateString("monthCard",monthCard); } public Set getMonthCardDailyTake() { 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 da2daeb94..948f5f946 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 @@ -44,7 +44,10 @@ import com.ljsd.jieling.logic.mission.MissionState; import com.ljsd.jieling.logic.mission.event.MissionEventDistributor; import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo; import com.ljsd.jieling.logic.mission.main.ServenMissionIdsType; +import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import com.ljsd.jieling.logic.store.newRechargeInfo.NewRechargeInfo; +import com.ljsd.jieling.logic.store.newRechargeInfo.bean.AbstractWelfareBag; +import com.ljsd.jieling.logic.store.newRechargeInfo.rechargeHandler.RechargeHandler; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.thrift.idl.*; import com.ljsd.jieling.thrift.pool.ClientAdapterPo; @@ -1526,7 +1529,7 @@ public class PlayerLogic { if(mCount==-1){ return true; } - if((info.getCount()+checkNum>mCount)|| (info.getEffectTime()!=0&&TimeUtils.now()/1000>info.getEffectTime())){ + if((info.getCount()+checkNum>mCount)|| (info.getEffectTime()!=0&&TimeUtils.nowInt()>info.getEffectTime())){ continue; } return true; @@ -1608,7 +1611,7 @@ public class PlayerLogic { private int getMaxCountByPrivilege(User user,int privilegeId){ SPrivilegeTypeConfig sPrivilegeTypeConfig = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(privilegeId); Map> conditionMap = SPrivilegeTypeConfig.conditionMap.get(sPrivilegeTypeConfig.getUnlockType()); - int mCount = 0; + int mCount; int cond = 0; switch (sPrivilegeTypeConfig.getUnlockType()){ case GlobalsDef.LEVEL_UNLOCK_PRIVILEGE: @@ -1623,15 +1626,21 @@ public class PlayerLogic { case GlobalsDef.LIKABLE_UNLOCK: cond = user.getHeroManager().GetAllLikableLv(); break; + case GlobalsDef.WEEKCARD_UNLOCK: + int time = user.getPlayerInfoManager().getMonthCard().getOrDefault(1, 0); + if (time != 0){ + cond = 1; + } + break; default:{ break; } } TreeMap condition = (TreeMap)conditionMap.get(privilegeId); - if(sPrivilegeTypeConfig.getUnlockType()!=GlobalsDef.RECHARGE_UNLOCK_PRIVILEGE){ - mCount = condition.floorEntry(cond).getValue(); - }else{ + if(sPrivilegeTypeConfig.getUnlockType()==GlobalsDef.RECHARGE_UNLOCK_PRIVILEGE){ mCount = condition.get(0); + }else{ + mCount = condition.floorEntry(cond).getValue(); } return mCount; } @@ -1658,25 +1667,19 @@ public class PlayerLogic { public List getMonthCardInfo(User user) { List cardInfos = new LinkedList<>(); PlayerManager playerInfoManager = user.getPlayerInfoManager(); - NewRechargeInfo rechargeInfo = playerInfoManager.getNewRechargeInfo(); - STableManager.getConfig(SMonthcardConfig.class).forEach((key, config) -> { - int time = playerInfoManager.getMonthCard().getOrDefault(key,0); - int state = playerInfoManager.getMonthCardDailyTake().contains(key)?1:0; - double saveAmt = 0; - switch (key){ - case 1: - saveAmt = rechargeInfo.getMonthRr(); - break; - case 2: - saveAmt = rechargeInfo.getsMonthRr(); - break; - case 3: - saveAmt = rechargeInfo.getSinceremonth(); - break; - default:break; + + Map monthcardConfigMap = STableManager.getConfig(SMonthcardConfig.class); + for (SMonthcardConfig monthcardConfig : monthcardConfigMap.values()) { + int time = playerInfoManager.getMonthCard().getOrDefault(monthcardConfig.getId(),0); + int state = 0; + SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(monthcardConfig.getPrice()); + 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; } - cardInfos.add(CommonProto.MonthCardInfo.newBuilder().setId(key).setEndingTime(time).setState(state).setTotleAmt(saveAmt).build()); - }); + cardInfos.add(CommonProto.MonthCardInfo.newBuilder().setId(monthcardConfig.getId()).setEndingTime(time).setState(state).setTotleAmt(0).build()); + } return cardInfos; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index 4db9571ff..2b312ccb6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -235,8 +235,8 @@ public class BuyGoodsNewLogic { info.setRr(MathUtils.doubleAdd(price,info.getRr())); info.setRechargeList(TimeUtils.now(),price); //处理月卡 - user.getPlayerInfoManager().getMonthCard(); - activeMonthCard(user,price,config.getId()); +// user.getPlayerInfoManager().getMonthCard(); + activeMonthCard(user,config.getId()); //活动 user.getPlayerInfoManager().setRechargedaily(user.getPlayerInfoManager().getRechargedaily()+price); changeActivity(user,price,info); @@ -484,10 +484,23 @@ public class BuyGoodsNewLogic { /** * 激活月卡 //TODO 孟某某写的啥玩意 咋兼容老数据 后人注意这块 新加的月卡 策划大大讨论后从0开始计算 + * 2022-6-6 月卡重做 */ - public static void activeMonthCard(User user,double price,int goodId){ - Map monthcardConfigMap = STableManager.getConfig(SMonthcardConfig.class); + public static void activeMonthCard(User user,int goodId){ + SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(goodId); + RechargeHandler rechargeHandler = getRechargeHandler(config.getOtype()); + AbstractWelfareBag bag = rechargeHandler.getRechargeMap(user).get(goodId); + // 礼包信息 + if (bag == null){ + return; + } + long now = TimeUtils.now(); + // 时间验证 + if (now < bag.getStartTime() || now > bag.getRefreshTime()){ + return; + } + Map monthcardConfigMap = STableManager.getConfig(SMonthcardConfig.class); boolean sendneed =false; for (SMonthcardConfig monthcardConfig : monthcardConfigMap.values()) { if (goodId == monthcardConfig.getPrice()){ From 9f01f3c35fe37a7670b9b929374d4ac9a47d1795 Mon Sep 17 00:00:00 2001 From: duhui Date: Wed, 8 Jun 2022 18:58:38 +0800 Subject: [PATCH 03/14] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E6=9C=88=E5=8D=A1?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=AE=8C=E6=88=90=EF=BC=8C=E5=88=9D=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/dao/PlayerManager.java | 38 +++++++++---------- .../jieling/logic/store/BuyGoodsNewLogic.java | 3 ++ 2 files changed, 20 insertions(+), 21 deletions(-) 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 751f779a5..1ce2e3e39 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 @@ -991,27 +991,23 @@ public class PlayerManager extends MongoBase { } public Map getMonthCard() { -// Iterator> iterator = monthCard.entrySet().iterator(); -// while (iterator.hasNext()){ -// Map.Entry map = iterator.next(); -// Integer key = map.getKey(); -// SMonthcardConfig config = STableManager.getConfig(SMonthcardConfig.class).get(key); -// if(null==config){ -// iterator.remove(); -// continue; -// } -// if(((int)(System.currentTimeMillis()/1000)-map.getValue())>24*60*60*config.getContiueDays()){ -// iterator.remove(); -// if(key== Global.MONTHCARDID){ -// newRechargeInfo.setMonthRr(0); -// }else if(key ==Global.LMONTHCARDID){ -// newRechargeInfo.setsMonthRr(0); -// }else if(key ==Global.SINCERECARDID){ -// newRechargeInfo.setSinceremonth(0); -// } -// } -// } -// updateString("monthCard",monthCard); + int nowInt = TimeUtils.nowInt(); + Iterator> iterator = monthCard.entrySet().iterator(); + while (iterator.hasNext()){ + Map.Entry map = iterator.next(); + Integer key = map.getKey(); + SMonthcardConfig config = STableManager.getConfig(SMonthcardConfig.class).get(key); + if(null==config){ + iterator.remove(); + continue; + } + int residueTime = nowInt-map.getValue(); + int lastTime = 24*60*60*config.getContiueDays(); + if(residueTime>=lastTime){ + iterator.remove(); + } + } + updateString("monthCard",monthCard); return monthCard; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index 2b312ccb6..441830a0b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -487,6 +487,9 @@ public class BuyGoodsNewLogic { * 2022-6-6 月卡重做 */ public static void activeMonthCard(User user,int goodId){ + // 更新月卡信息 + user.getPlayerInfoManager().getMonthCard(); + SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(goodId); RechargeHandler rechargeHandler = getRechargeHandler(config.getOtype()); AbstractWelfareBag bag = rechargeHandler.getRechargeMap(user).get(goodId); From cd3dba39828e86739fb88f787fd46e4707706ef4 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 17 Jun 2022 15:40:56 +0800 Subject: [PATCH 04/14] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E6=9C=88=E5=8D=A1?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=94=B9bug=EF=BC=8C=E4=BA=8C=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/dao/PlayerManager.java | 2 +- .../com/ljsd/jieling/logic/player/PlayerLogic.java | 14 +++++++++----- .../newRechargeInfo/bean/AbstractWelfareBag.java | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) 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 1ce2e3e39..f1afd87b7 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 @@ -558,7 +558,7 @@ public class PlayerManager extends MongoBase { VipInfo newVipInfo = new VipInfo(); if(config.getContinueTime()!=null&&config.getContinueTime().length>0){ if(vipInfo.containsKey(privilageId)){ - if(config.getContinueTime()[1]==1&&TimeUtils.now()/1000 condition = (TreeMap)conditionMap.get(privilegeId); if(sPrivilegeTypeConfig.getUnlockType()==GlobalsDef.RECHARGE_UNLOCK_PRIVILEGE){ mCount = condition.get(0); - }else{ + } + else if(sPrivilegeTypeConfig.getUnlockType()==GlobalsDef.WEEKCARD_UNLOCK){ + if (cond == -1){ + mCount = 0; + }else { + mCount = condition.get(0); + } + }else { mCount = condition.floorEntry(cond).getValue(); } return mCount; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java index b1cbd9ba4..6db612f4b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/AbstractWelfareBag.java @@ -98,7 +98,7 @@ public class AbstractWelfareBag extends MongoBase{ LOGGER.error("礼包:{}未开启",modId); return false; } - if(getLimit() != 0 && buyTimes >=getLimit()){ + if(getLimit() != 0 && buyTimes >= getLimit()){ LOGGER.error("礼包:{}购买次数为:{}超过限制:{}",modId,buyTimes,getLimit()); return false; } From 92a63c75e3844ad878e23ea43c1968c52afc7a34 Mon Sep 17 00:00:00 2001 From: duhui Date: Thu, 16 Jun 2022 15:40:32 +0800 Subject: [PATCH 05/14] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E6=9C=88=E5=8D=A1?= =?UTF-8?q?=E8=B0=83=E6=95=B4,=E6=94=B9=E6=97=B6=E9=97=B4bug=EF=BC=8C?= =?UTF-8?q?=E4=B8=89=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/dao/PlayerManager.java | 14 +++++++------- .../com/ljsd/jieling/logic/player/PlayerLogic.java | 12 +++++++++--- .../ljsd/jieling/logic/store/BuyGoodsNewLogic.java | 4 +++- 3 files changed, 19 insertions(+), 11 deletions(-) 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 f1afd87b7..fcd8b40a3 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 @@ -1,13 +1,12 @@ package com.ljsd.jieling.logic.dao; import com.ljsd.common.mogodb.MongoBase; +import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; -import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.store.newRechargeInfo.NewRechargeInfo; -import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import config.SCampTowerSetting; import config.SMonthcardConfig; import config.SPrivilegeTypeConfig; @@ -991,19 +990,20 @@ public class PlayerManager extends MongoBase { } public Map getMonthCard() { + // 当天时间 int nowInt = TimeUtils.nowInt(); + Iterator> iterator = monthCard.entrySet().iterator(); while (iterator.hasNext()){ Map.Entry map = iterator.next(); - Integer key = map.getKey(); - SMonthcardConfig config = STableManager.getConfig(SMonthcardConfig.class).get(key); + SMonthcardConfig config = STableManager.getConfig(SMonthcardConfig.class).get(map.getKey()); if(null==config){ iterator.remove(); continue; } - int residueTime = nowInt-map.getValue(); - int lastTime = 24*60*60*config.getContiueDays(); - if(residueTime>=lastTime){ + // 结束时间 + int lastTime = map.getValue() + 24*60*60*config.getContiueDays(); + if(nowInt>=lastTime){ iterator.remove(); } } 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 a7f5a6f95..558872f91 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 @@ -1674,15 +1674,21 @@ public class PlayerLogic { Map monthcardConfigMap = STableManager.getConfig(SMonthcardConfig.class); for (SMonthcardConfig monthcardConfig : monthcardConfigMap.values()) { - int time = playerInfoManager.getMonthCard().getOrDefault(monthcardConfig.getId(),0); - int state = 0; + int startTime = playerInfoManager.getMonthCard().getOrDefault(monthcardConfig.getId(),0); + int endTime = 0; + if (startTime != 0){ + endTime = startTime + monthcardConfig.getContiueDays() * 24 * 60 * 60; + } + SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(monthcardConfig.getPrice()); RechargeHandler rechargeHandler = BuyGoodsNewLogic.getRechargeHandler(config.getOtype()); AbstractWelfareBag bag = rechargeHandler.getRechargeMap(user).get(config.getId()); + + int state = 0; if (bag != null && !bag.checkBuy()){ state = playerInfoManager.getMonthCardDailyTake().contains(monthcardConfig.getId())?2:1; } - cardInfos.add(CommonProto.MonthCardInfo.newBuilder().setId(monthcardConfig.getId()).setEndingTime(time).setState(state).setTotleAmt(0).build()); + cardInfos.add(CommonProto.MonthCardInfo.newBuilder().setId(monthcardConfig.getId()).setEndingTime(endTime).setState(state).setTotleAmt(0).build()); } return cardInfos; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index 441830a0b..bf3a8fb75 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -508,7 +508,9 @@ public class BuyGoodsNewLogic { for (SMonthcardConfig monthcardConfig : monthcardConfigMap.values()) { if (goodId == monthcardConfig.getPrice()){ sendneed=true; - user.getPlayerInfoManager().putMonthCard(monthcardConfig.getId(), TimeUtils.nowInt()); + // 当天零点 + int beginOfDay = (int) (TimeUtils.getBeginOfDay(TimeUtils.now())/1000); + user.getPlayerInfoManager().putMonthCard(monthcardConfig.getId(), beginOfDay); // 特殊处理 if (monthcardConfig.getId() == Global.LMONTHCARDID){ Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.RECHARGE_BUY.getType(),Global.LMONTHCARDID)); From 5f6e0ff20a171c40b8f956bf96ffaa76747288d9 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 17 Jun 2022 11:08:07 +0800 Subject: [PATCH 06/14] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E6=9C=88=E5=8D=A1?= =?UTF-8?q?=E8=B0=83=E6=95=B4,=E5=85=BC=E5=AE=B9=E8=80=81=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=9C=88=E5=8D=A1=EF=BC=8C=E5=9B=9B=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/dao/PlayerManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 fcd8b40a3..c3a181fef 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,8 +1001,9 @@ public class PlayerManager extends MongoBase { iterator.remove(); continue; } + int beginOfDay = (int)(TimeUtils.getBeginOfDay(map.getValue() * 1000))/1000; // 结束时间 - int lastTime = map.getValue() + 24*60*60*config.getContiueDays(); + int lastTime = beginOfDay + 24*60*60*config.getContiueDays(); if(nowInt>=lastTime){ iterator.remove(); } From 8c928fd864a670137fb7a7b6f831514fe9bdb716 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 17 Jun 2022 11:25:19 +0800 Subject: [PATCH 07/14] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E6=9C=88=E5=8D=A1?= =?UTF-8?q?=E8=B0=83=E6=95=B4,=E5=85=BC=E5=AE=B9=E8=80=81=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=9C=88=E5=8D=A1=EF=BC=8C=E5=9B=9B=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/player/PlayerLogic.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) 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 558872f91..7b452264d 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 @@ -1680,14 +1680,18 @@ public class PlayerLogic { endTime = startTime + monthcardConfig.getContiueDays() * 24 * 60 * 60; } - SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(monthcardConfig.getPrice()); - RechargeHandler rechargeHandler = BuyGoodsNewLogic.getRechargeHandler(config.getOtype()); - AbstractWelfareBag bag = rechargeHandler.getRechargeMap(user).get(config.getId()); - int state = 0; - if (bag != null && !bag.checkBuy()){ + 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 { state = playerInfoManager.getMonthCardDailyTake().contains(monthcardConfig.getId())?2:1; } + cardInfos.add(CommonProto.MonthCardInfo.newBuilder().setId(monthcardConfig.getId()).setEndingTime(endTime).setState(state).setTotleAmt(0).build()); } return cardInfos; From be1ea53244e65ee388307b3bb0030b184aa883fb Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 17 Jun 2022 11:37:35 +0800 Subject: [PATCH 08/14] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E6=9C=88=E5=8D=A1?= =?UTF-8?q?=E8=B0=83=E6=95=B4,=E5=85=BC=E5=AE=B9=E8=80=81=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=9C=88=E5=8D=A1=EF=BC=8C=E5=9B=9B=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/player/PlayerLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 7b452264d..b1171e5f0 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 @@ -1682,7 +1682,7 @@ public class PlayerLogic { int state = 0; SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(monthcardConfig.getPrice()); - if (config == null){ + if (config != null){ RechargeHandler rechargeHandler = BuyGoodsNewLogic.getRechargeHandler(config.getOtype()); AbstractWelfareBag bag = rechargeHandler.getRechargeMap(user).get(config.getId()); if (bag != null && !bag.checkBuy()){ From b0f6149358b7272a062e233e5c89814c3fa06fbd Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 17 Jun 2022 12:31:54 +0800 Subject: [PATCH 09/14] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E6=9C=88=E5=8D=A1?= =?UTF-8?q?=E8=B0=83=E6=95=B4,=E5=85=BC=E5=AE=B9=E8=80=81=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/GetPlayerInfoHandler.java | 1 + .../ljsd/jieling/logic/dao/PlayerManager.java | 7 ++++- .../jieling/logic/player/PlayerLogic.java | 27 ++++++++++++++----- 3 files changed, 27 insertions(+), 8 deletions(-) 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 From f8e2852405a1d8d8849b3095581f1eec5b3082dc Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 17 Jun 2022 12:40:46 +0800 Subject: [PATCH 10/14] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E6=9C=88=E5=8D=A1?= =?UTF-8?q?=E8=B0=83=E6=95=B4,=E5=85=BC=E5=AE=B9=E8=80=81=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/dao/PlayerManager.java | 11 +++++++++++ .../com/ljsd/jieling/logic/player/PlayerLogic.java | 4 ++++ 2 files changed, 15 insertions(+) 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 cf2eb7aa8..1131afa80 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 @@ -83,6 +83,8 @@ public class PlayerManager extends MongoBase { private RechargeInfo rechargeInfo; private NewRechargeInfo newRechargeInfo; private Map monthCard = new HashMap<>();//月卡信息 + + private int oldMonthCardMark;//旧月卡处理标识 private Set monthCardDailyTake = new HashSet<>(); private int headFrame; @@ -1022,6 +1024,15 @@ public class PlayerManager extends MongoBase { updateString("monthCard",monthCard); } + public void setOldMonthCardMark(int mark){ + this.oldMonthCardMark = mark; + updateString("oldMonthCardMark",oldMonthCardMark); + } + + public int getOldMonthCardMark(){ + return oldMonthCardMark; + } + public Set getMonthCardDailyTake() { return monthCardDailyTake; } 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 2b9f8b96e..95c01d0c6 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 @@ -1695,6 +1695,9 @@ public class PlayerLogic { } public void checkOldMonthCard(User user){ + if (user.getPlayerInfoManager().getOldMonthCardMark() == 1){ + return; + } Map monthCard = user.getPlayerInfoManager().getMonthCard(); HashMap map = new HashMap<>(); Integer oldone = monthCard.get(1); @@ -1708,6 +1711,7 @@ public class PlayerLogic { map.put(3,begin); } user.getPlayerInfoManager().setMonthCard(map); + user.getPlayerInfoManager().setOldMonthCardMark(1); } /** From 43873b23eb8a734e8ee9b9c9badaf4fda3838323 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 10 Jun 2022 19:06:38 +0800 Subject: [PATCH 11/14] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E6=9C=88=E5=8D=A1?= =?UTF-8?q?=E8=B0=83=E6=95=B4,=E5=85=BC=E5=AE=B9=E8=80=81=E7=89=88?= =?UTF-8?q?=E6=9C=AC2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamecommon/src/main/java/util/TimeUtils.java | 6 +++ .../jieling/logic/player/PlayerLogic.java | 47 +++++++++++++------ 2 files changed, 38 insertions(+), 15 deletions(-) diff --git a/gamecommon/src/main/java/util/TimeUtils.java b/gamecommon/src/main/java/util/TimeUtils.java index 4fec75e00..24f06bd7c 100644 --- a/gamecommon/src/main/java/util/TimeUtils.java +++ b/gamecommon/src/main/java/util/TimeUtils.java @@ -304,6 +304,12 @@ public class TimeUtils { return format1.parse(time); } + public static long dateFormat2(String time) throws ParseException { + DateFormat format1 = new SimpleDateFormat(ymdhms_Format_new); + return format1.parse(time).getTime(); + } + + // /** // * 是否是同一天 // * 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 95c01d0c6..d3cd0d1ab 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 @@ -63,6 +63,7 @@ import rpc.protocols.PlayerInfoProto; import util.MathUtils; import util.TimeUtils; +import java.text.ParseException; import java.util.*; import java.util.stream.Collectors; @@ -1694,24 +1695,40 @@ public class PlayerLogic { return cardInfos; } - public void checkOldMonthCard(User user){ - if (user.getPlayerInfoManager().getOldMonthCardMark() == 1){ + public void checkOldMonthCard(User user) throws ParseException { + PlayerManager playerInfoManager = user.getPlayerInfoManager(); + if (playerInfoManager.getOldMonthCardMark() == 1){ return; } - 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); + + double rmb = playerInfoManager.getNewRechargeInfo().getRr(); + + long createTime = playerInfoManager.getCreateTime(); + long format2 = TimeUtils.dateFormat2("2022-06-11 00:00:00"); + + playerInfoManager.setMonthCard(new HashMap<>()); + if (createTime < format2 && rmb >= 100){ + HashMap map = new HashMap<>(); + Map configMap = STableManager.getConfig(SMonthcardConfig.class); + for (SMonthcardConfig config : configMap.values()) { + int goodId = config.getPrice(); + SRechargeCommodityNewConfig newConfig = SRechargeCommodityNewConfig.getConfigById(goodId); + RechargeHandler rechargeHandler = BuyGoodsNewLogic.getRechargeHandler(newConfig.getOtype()); + AbstractWelfareBag bag = rechargeHandler.getRechargeMap(user).get(goodId); + if (bag == null){ + LOGGER.error("老玩家月卡兼容报错,礼包信息不存在,uid:{},goodid:{}",user.getId(),goodId); + continue; + } + boolean bol = bag.buy(); + if (!bol){ + LOGGER.error("老玩家月卡兼容报错,礼包已购买,uid:{},goodid:{}",user.getId(),goodId); + continue; + } + BuyGoodsNewLogic.activeMonthCard(user,goodId); + } + playerInfoManager.setMonthCard(map); } - Integer oldtwo = monthCard.get(2); - if (oldtwo!=null){ - int begin = (int)(TimeUtils.getBeginOfDay(oldtwo * 1000)/1000); - map.put(3,begin); - } - user.getPlayerInfoManager().setMonthCard(map); - user.getPlayerInfoManager().setOldMonthCardMark(1); + playerInfoManager.setOldMonthCardMark(1); } /** From 3261813450b1e2ae7cb4238633e8027e45a8bdb4 Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 18 Jul 2023 19:53:14 +0800 Subject: [PATCH 12/14] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E6=9C=88=E5=8D=A1?= =?UTF-8?q?=E8=B0=83=E6=95=B4,=E5=85=BC=E5=AE=B9=E8=80=81=E7=89=88?= =?UTF-8?q?=E6=9C=AC3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/player/PlayerLogic.java | 7 +++---- .../jieling/logic/store/BuyGoodsNewLogic.java | 15 ++++++--------- 2 files changed, 9 insertions(+), 13 deletions(-) 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 d3cd0d1ab..2149d3bf0 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 @@ -47,6 +47,7 @@ import com.ljsd.jieling.logic.mission.main.ServenMissionIdsType; import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import com.ljsd.jieling.logic.store.newRechargeInfo.NewRechargeInfo; import com.ljsd.jieling.logic.store.newRechargeInfo.bean.AbstractWelfareBag; +import com.ljsd.jieling.logic.store.newRechargeInfo.bean.ReceiveWelfareBag; import com.ljsd.jieling.logic.store.newRechargeInfo.rechargeHandler.RechargeHandler; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.thrift.idl.*; @@ -1685,8 +1686,8 @@ public class PlayerLogic { int state = 0; SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.getConfigById(monthcardConfig.getPrice()); RechargeHandler rechargeHandler = BuyGoodsNewLogic.getRechargeHandler(config.getOtype()); - AbstractWelfareBag bag = rechargeHandler.getRechargeMap(user).get(config.getId()); - if (bag != null && !bag.checkBuy()){ + ReceiveWelfareBag bag = (ReceiveWelfareBag)rechargeHandler.getRechargeMap(user).get(config.getId()); + if (bag != null && bag.isBought()){ state = playerInfoManager.getMonthCardDailyTake().contains(monthcardConfig.getId())?2:1; } @@ -1708,7 +1709,6 @@ public class PlayerLogic { playerInfoManager.setMonthCard(new HashMap<>()); if (createTime < format2 && rmb >= 100){ - HashMap map = new HashMap<>(); Map configMap = STableManager.getConfig(SMonthcardConfig.class); for (SMonthcardConfig config : configMap.values()) { int goodId = config.getPrice(); @@ -1726,7 +1726,6 @@ public class PlayerLogic { } BuyGoodsNewLogic.activeMonthCard(user,goodId); } - playerInfoManager.setMonthCard(map); } playerInfoManager.setOldMonthCardMark(1); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index bf3a8fb75..2b2f7120a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -1,7 +1,5 @@ package com.ljsd.jieling.logic.store; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; import com.ljsd.GameApplication; import com.ljsd.jieling.config.reportData.DataMessageUtils; import com.ljsd.jieling.core.VipPrivilegeType; @@ -14,9 +12,6 @@ import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.ktbeans.KtEventUtils; -import com.ljsd.jieling.ktbeans.ReportBaseBean; -import com.ljsd.jieling.ktbeans.ReportEventEnum; -import com.ljsd.jieling.ktbeans.ReportUtil; import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; import com.ljsd.jieling.logic.GlobalDataManaager; import com.ljsd.jieling.logic.OnlineUserManager; @@ -24,7 +19,6 @@ import com.ljsd.jieling.logic.activity.AbstractActivity; import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.activity.ActivityType; import com.ljsd.jieling.logic.activity.ActivityTypeEnum; -import com.ljsd.jieling.logic.activity.activityLogic.WeekCardLogic; import com.ljsd.jieling.logic.activity.event.*; import com.ljsd.jieling.logic.dao.PlayerManager; import com.ljsd.jieling.logic.dao.RechargeInfo; @@ -45,7 +39,6 @@ import com.ljsd.jieling.network.server.ProtocolsManager; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.thrift.idl.Result; import com.ljsd.jieling.util.*; -import com.ljsd.jieling.util.http.HttpPool; import config.*; import manager.STableManager; import org.slf4j.Logger; @@ -497,16 +490,20 @@ public class BuyGoodsNewLogic { if (bag == null){ return; } - long now = TimeUtils.now(); + /*long now = TimeUtils.now(); // 时间验证 if (now < bag.getStartTime() || now > bag.getRefreshTime()){ return; - } + }*/ Map monthcardConfigMap = STableManager.getConfig(SMonthcardConfig.class); boolean sendneed =false; for (SMonthcardConfig monthcardConfig : monthcardConfigMap.values()) { if (goodId == monthcardConfig.getPrice()){ + ReceiveWelfareBag receiveWelfareBag = (ReceiveWelfareBag) bag; + if (!receiveWelfareBag.isBought()){ + continue; + } sendneed=true; // 当天零点 int beginOfDay = (int) (TimeUtils.getBeginOfDay(TimeUtils.now())/1000); From 58d7dc27c62d1c7f0f20cbd9ab1397a9f56d9f89 Mon Sep 17 00:00:00 2001 From: duhui Date: Sun, 19 Jun 2022 19:58:58 +0800 Subject: [PATCH 13/14] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/player/PlayerLogic.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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 2149d3bf0..6469c44ca 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 @@ -68,6 +68,8 @@ import java.text.ParseException; import java.util.*; import java.util.stream.Collectors; +import static com.ljsd.jieling.logic.store.BuyGoodsNewLogic.refreshUnitWF; + public class PlayerLogic { private static final Logger LOGGER = LoggerFactory.getLogger(PlayerLogic.class); private PlayerLogic(){ @@ -1696,7 +1698,7 @@ public class PlayerLogic { return cardInfos; } - public void checkOldMonthCard(User user) throws ParseException { + public void checkOldMonthCard(User user) throws Exception { PlayerManager playerInfoManager = user.getPlayerInfoManager(); if (playerInfoManager.getOldMonthCardMark() == 1){ return; @@ -1716,14 +1718,16 @@ public class PlayerLogic { RechargeHandler rechargeHandler = BuyGoodsNewLogic.getRechargeHandler(newConfig.getOtype()); AbstractWelfareBag bag = rechargeHandler.getRechargeMap(user).get(goodId); if (bag == null){ - LOGGER.error("老玩家月卡兼容报错,礼包信息不存在,uid:{},goodid:{}",user.getId(),goodId); - continue; + bag = rechargeHandler.initUnitWF(user, newConfig); + refreshUnitWF(bag,user); + rechargeHandler.addNew(user,bag); } boolean bol = bag.buy(); if (!bol){ LOGGER.error("老玩家月卡兼容报错,礼包已购买,uid:{},goodid:{}",user.getId(),goodId); continue; } + BuyGoodsNewLogic.activePrivilege(user,newConfig); BuyGoodsNewLogic.activeMonthCard(user,goodId); } } From 429a771b777d75cfa4bc4a0e3c94675a13ac21ef Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 12 Jul 2022 12:00:49 +0800 Subject: [PATCH 14/14] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/player/PlayerLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 6469c44ca..bd48b20a9 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 @@ -1707,7 +1707,7 @@ public class PlayerLogic { double rmb = playerInfoManager.getNewRechargeInfo().getRr(); long createTime = playerInfoManager.getCreateTime(); - long format2 = TimeUtils.dateFormat2("2022-06-11 00:00:00"); + long format2 = TimeUtils.dateFormat2("2022-06-13 00:00:00"); playerInfoManager.setMonthCard(new HashMap<>()); if (createTime < format2 && rmb >= 100){