新周卡功能,bug修改1

duhui 2022-06-04 00:02:27 +08:00
parent 8e3cc63702
commit 27f92a9de8
2 changed files with 28 additions and 12 deletions

View File

@ -86,6 +86,7 @@ public class WeekCardActivity extends AbstractActivity {
if (null == sGlobalActivity) {
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH,"周卡活动不存在:"+id);
}
LOGGER.info("周卡活动结束,发送邮件=========================");
List<int[][]> itemArrs = new LinkedList<>();
Map<Integer, Map<Integer, Integer>> weekCard = user.getPlayerInfoManager().getWeekCard();
Map<Integer, SWeekRewardConfig> rewardConfigMap = STableManager.getConfig(SWeekRewardConfig.class);

View File

@ -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<Integer,Integer> valueMap){
private CommonProto.WeekCardInfo packagingWeekCardBuilder(User user, int activityId, int cardId, Map<Integer,Integer> valueMap){
Map<Integer, SWeekcardConfig> config = STableManager.getConfig(SWeekcardConfig.class);
CommonProto.WeekCardInfo.Builder weekCardInfo = CommonProto.WeekCardInfo.newBuilder();
// 周卡id
@ -70,7 +85,7 @@ public class WeekCardLogic {
ArrayList<CommonProto.WeekCardDay> 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<CommonProto.WeekCardInfo> list = new ArrayList<>();
Map<Integer, Map<Integer, Integer>> weekCard = user.getPlayerInfoManager().getWeekCard();
for (Map.Entry<Integer, Map<Integer, Integer>> 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<Integer, SWeekRewardConfig> 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<CommonProto.WeekCardDay> dayList = weekCardInfo.getDayList();
// 奖励
ArrayList<int[][]> reward = new ArrayList<>();
@ -167,7 +182,7 @@ public class WeekCardLogic {
}
Map<Integer, Integer> 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);
}