From 27f92a9de8e967088d4facae3a79823819648eb2 Mon Sep 17 00:00:00 2001 From: duhui Date: Sat, 4 Jun 2022 00:02:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=91=A8=E5=8D=A1=E5=8A=9F=E8=83=BD,b?= =?UTF-8?q?ug=E4=BF=AE=E6=94=B91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/WeekCardActivity.java | 1 + .../activity/activityLogic/WeekCardLogic.java | 39 +++++++++++++------ 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java index debd838ae..5a57e5ac9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/WeekCardActivity.java @@ -86,6 +86,7 @@ public class WeekCardActivity extends AbstractActivity { if (null == sGlobalActivity) { throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH,"周卡活动不存在:"+id); } + LOGGER.info("周卡活动结束,发送邮件========================="); List itemArrs = new LinkedList<>(); Map> weekCard = user.getPlayerInfoManager().getWeekCard(); Map rewardConfigMap = STableManager.getConfig(SWeekRewardConfig.class); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java index 6964e4c19..8584d1092 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/activityLogic/WeekCardLogic.java @@ -1,10 +1,12 @@ package com.ljsd.jieling.logic.activity.activityLogic; +import com.ljsd.GameApplication; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.activity.ActivityType; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.store.newRechargeInfo.RechargeType; @@ -42,15 +44,28 @@ public class WeekCardLogic { } /** - * 获取礼包信息 - * @param user + * 开始时间 * @return - * @throws Exception */ - private AbstractWelfareBag getGift(User user, int giftId){ - SRechargeCommodityNewConfig config = SRechargeCommodityNewConfig.configMap.get(giftId); - RechargeHandler rechargeHandler = RechargeType.getHandler(config.getOtype()); - return rechargeHandler.getRechargeMap(user).get(giftId); + public long getStartTime(User user, int id){ + long startTime = 0; + SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id); + // 绝对时间 + if (activity.getTime() == ActivityType.OPEN_TYPE_TIME){ + startTime = activity.getStartTimeLong(); + } + // 开服时间 + if (activity.getTime() == ActivityType.OPEN_TYPE_SERVER) { + String openTime = GameApplication.serverConfig.getOpenTime(); + long timeLong2 = TimeUtils.stringToTimeLong2(openTime); + startTime = timeLong2 + activity.getStartTimeLong() * 1000; + } + // 创角时间 + if (activity.getTime() == ActivityType.OPEN_TYPE_ROLE) { + long timeLong2 = user.getPlayerInfoManager().getCreateTime(); + startTime = timeLong2 + activity.getStartTimeLong() * 1000; + } + return startTime; } /** @@ -60,7 +75,7 @@ public class WeekCardLogic { * @param valueMap * @return */ - private CommonProto.WeekCardInfo packagingWeekCardBuilder(int activityId, int cardId, Map valueMap){ + private CommonProto.WeekCardInfo packagingWeekCardBuilder(User user, int activityId, int cardId, Map valueMap){ Map config = STableManager.getConfig(SWeekcardConfig.class); CommonProto.WeekCardInfo.Builder weekCardInfo = CommonProto.WeekCardInfo.newBuilder(); // 周卡id @@ -70,7 +85,7 @@ public class WeekCardLogic { ArrayList list1 = new ArrayList<>(); // 计算间隔时间 - long startTimeLong = SGlobalActivity.getsGlobalActivityMap().get(activityId).getStartTimeLong(); + long startTimeLong = getStartTime(user, activityId); int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now()); for (int[] ints : sWeekcardConfig.getBaseRewardID()) { @@ -103,7 +118,7 @@ public class WeekCardLogic { ArrayList list = new ArrayList<>(); Map> weekCard = user.getPlayerInfoManager().getWeekCard(); for (Map.Entry> entry : weekCard.entrySet()) { - CommonProto.WeekCardInfo weekCardInfo = packagingWeekCardBuilder(activtiyId, entry.getKey(), entry.getValue()); + CommonProto.WeekCardInfo weekCardInfo = packagingWeekCardBuilder(user, activtiyId, entry.getKey(), entry.getValue()); list.add(weekCardInfo); } PlayerInfoProto.QueryWeekCardInfoResponse.Builder builder = PlayerInfoProto.QueryWeekCardInfoResponse.newBuilder().addAllWeekcard(list); @@ -128,7 +143,7 @@ public class WeekCardLogic { // 配置表 Map rewardConfigMap = STableManager.getConfig(SWeekRewardConfig.class); - CommonProto.WeekCardInfo weekCardInfo = packagingWeekCardBuilder(proto.getActiviteId(), proto.getWeekcardId(), map); + CommonProto.WeekCardInfo weekCardInfo = packagingWeekCardBuilder(user, proto.getActiviteId(), proto.getWeekcardId(), map); List dayList = weekCardInfo.getDayList(); // 奖励 ArrayList reward = new ArrayList<>(); @@ -167,7 +182,7 @@ public class WeekCardLogic { } Map map = user.getPlayerInfoManager().getWeekCard().get(weekCardId); - CommonProto.WeekCardInfo weekCardInfo = packagingWeekCardBuilder(activityId, weekCardId, map); + CommonProto.WeekCardInfo weekCardInfo = packagingWeekCardBuilder(user, activityId, weekCardId, map); PlayerInfoProto.WeekCardInfoIndication.Builder builder = PlayerInfoProto.WeekCardInfoIndication.newBuilder().setWeekcard(weekCardInfo); MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.WeekCardInfoIndication_VALUE, builder.build(), true); }