From 43873b23eb8a734e8ee9b9c9badaf4fda3838323 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 10 Jun 2022 19:06:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=A8=E5=8D=A1=E6=9C=88=E5=8D=A1=E8=B0=83?= =?UTF-8?q?=E6=95=B4,=E5=85=BC=E5=AE=B9=E8=80=81=E7=89=88=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); } /**