新周卡功能,bug修改-发邮件

duhui 2022-06-08 19:06:48 +08:00
parent 27f92a9de8
commit 1ec28cdf76
1 changed files with 47 additions and 8 deletions

View File

@ -80,6 +80,41 @@ public class WeekCardActivity extends AbstractActivity {
}
}
/**
*
* @param cardId
* @param activityId
* @param valueMap
* @return
*/
private Map<Integer,Integer> packagingWeekCardMap(User user, int activityId, int cardId, Map<Integer,Integer> valueMap){
HashMap<Integer, Integer> result = new HashMap<>();
Map<Integer, SWeekcardConfig> config = STableManager.getConfig(SWeekcardConfig.class);
SWeekcardConfig sWeekcardConfig = config.get(cardId);
ArrayList<CommonProto.WeekCardDay> list1 = new ArrayList<>();
// 计算间隔时间
long startTimeLong = WeekCardLogic.getInstance().getStartTime(user, activityId);
int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now());
for (int[] ints : sWeekcardConfig.getBaseRewardID()) {
// 天数
int day = ints[0];
// 状态
int state = 0;
if (valueMap.getOrDefault(day,0) == 2){
state = 2;
}else {
if (days >= day){
state = 1;
}
}
result.put(day,state);
}
return result;
}
@Override
public void onActivityEndDealReward(User user) throws Exception {
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
@ -92,38 +127,42 @@ public class WeekCardActivity extends AbstractActivity {
Map<Integer, SWeekRewardConfig> rewardConfigMap = STableManager.getConfig(SWeekRewardConfig.class);
Map<Integer, SWeekcardConfig> configMap = STableManager.getConfig(SWeekcardConfig.class);
// 计算间隔时间
long startTimeLong = sGlobalActivity.getStartTimeLong();
long startTimeLong = WeekCardLogic.getInstance().getStartTime(user,id);
int days = TimeUtils.differentDays(startTimeLong, TimeUtils.now());
for (Map.Entry<Integer, Map<Integer, Integer>> entry : weekCard.entrySet()) {
Integer weekCardId = entry.getKey();
Map<Integer, Integer> value = entry.getValue();
Map<Integer, Integer> weekCardMap = packagingWeekCardMap(user, id, weekCardId, value);
SWeekcardConfig weekcardConfig = configMap.get(weekCardId);
if (weekcardConfig == null){
LOGGER.error("月卡活动结束发送奖励月卡不存在月卡id"+weekCard);
continue;
}
for (Map.Entry<Integer, Integer> valueEntry : value.entrySet()) {
if (valueEntry.getValue() == 2){
for (Map.Entry<Integer, Integer> valueEntry : weekCardMap.entrySet()) {
Integer day = valueEntry.getKey();
Integer state = valueEntry.getValue();
// 已领取
if (state == 2){
continue;
}
if (days > valueEntry.getKey()){
if (days < day){
LOGGER.error("月卡活动结束发送奖励存在超过活动天数的月卡奖励月卡id"+weekCard+",活动开启时间+活动结束时间:"+startTimeLong+"+"+TimeUtils.now()+",月卡需求天数:"+valueEntry.getKey());
continue;
}
if (valueEntry.getKey() > weekcardConfig.getBaseRewardID().length){
LOGGER.error("月卡活动结束发送奖励存在超过配置天数的月卡奖励月卡id"+weekCard+",月卡需求天数:"+valueEntry.getKey());
if (day > weekcardConfig.getBaseRewardID().length){
LOGGER.error("月卡活动结束发送奖励存在超过配置天数的月卡奖励月卡id"+weekCard+",月卡需求天数:"+ day);
continue;
}
int[] ints = weekcardConfig.getBaseRewardID()[valueEntry.getKey() - 1];
int[] ints = weekcardConfig.getBaseRewardID()[day - 1];
SWeekRewardConfig rewardConfig = rewardConfigMap.get(ints[1]);
if (rewardConfig == null){
LOGGER.error("月卡活动结束发送奖励存在没有配置的奖励id月卡id"+weekCard+",奖励id"+ints[1]);
continue;
}
itemArrs.add(new int[][]{rewardConfig.getBaseReward()});
value.put(valueEntry.getKey(),2);
value.put(day,2);
}
weekCard.put(weekCardId,value);
}