线下返利,单日累充活动重置
parent
6797841d24
commit
54315803ca
|
@ -83,13 +83,16 @@ public class GmActivityLogic implements IEventHandler {
|
|||
// 获取全部活动信息
|
||||
GmActivity gmActivity = manager.getActivityMap().getOrDefault(entry.getKey(), new GmActivity(arbActivity));
|
||||
switch (gmActivity.getType()){
|
||||
case 1://单日累充
|
||||
getRewardToSingleTotalRecharge(user, gmActivity, config.getPrice());
|
||||
break;
|
||||
case 2://妖晶返利
|
||||
getRewardToMonsterCurrencyBack(user, gmActivity,config.getPrice());
|
||||
getRewardToMonsterCurrencyBack(user, gmActivity, config.getPrice());
|
||||
break;
|
||||
case 4://单笔充值
|
||||
getRewardToSingleRecharge(user, gmActivity,config.getPrice());
|
||||
getRewardToSingleRecharge(user, gmActivity, config.getPrice());
|
||||
break;
|
||||
default://1、3、5、6(单笔累充,多日累充,永久大充,开服首日累充)
|
||||
default://3、5、6(多日累充,永久大充,开服首日累充)
|
||||
getDefaultReward(user, gmActivity,config.getPrice());
|
||||
break;
|
||||
}
|
||||
|
@ -171,6 +174,53 @@ public class GmActivityLogic implements IEventHandler {
|
|||
gmActivity.setValue(num);
|
||||
}
|
||||
|
||||
/**
|
||||
* 单日累充
|
||||
* @param gmActivity
|
||||
* @param price
|
||||
*/
|
||||
private void getRewardToSingleTotalRecharge(User user, GmActivity gmActivity, double price) throws Exception {
|
||||
List<ARBMission> gmMissionList = findAllGmMission(gmActivity.getId());
|
||||
int num = gmActivity.getValue() + (int) price;
|
||||
// do-while循环,重置奖励后再次验证
|
||||
boolean verify;
|
||||
do {
|
||||
verify = false;
|
||||
for (ARBMission arbMission : gmMissionList) {
|
||||
GmMission gmMission = gmActivity.getMissionMap().getOrDefault(arbMission.getId(), new GmMission());
|
||||
// 已领取
|
||||
if (gmMission.getState() == 1){
|
||||
continue;
|
||||
}
|
||||
// 不能领
|
||||
if (num < arbMission.getRechargeNum()){
|
||||
continue;
|
||||
}
|
||||
// 发邮件
|
||||
String mailReward = ItemUtil.getMailReward(arbMission.getReward());
|
||||
if (!StringUtil.isEmpty(mailReward)){
|
||||
MailLogic.getInstance().sendMail(user.getId(),arbMission.getActivity().getName(),arbMission.getTitle(),mailReward,TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME);
|
||||
}
|
||||
// 记录到库
|
||||
gmMission.setId(arbMission.getId());
|
||||
gmMission.setState(1);
|
||||
gmActivity.putMissionMap(arbMission.getId(), gmMission);
|
||||
}
|
||||
|
||||
// 领取完全部奖励后重置活动
|
||||
long count = gmActivity.getMissionMap().values().stream().filter(v -> v.getState() == 1).count();
|
||||
if (gmMissionList.size() == count){
|
||||
// 重置活动对象
|
||||
gmActivity.setMissionMap(new HashMap<>());
|
||||
// 减去满级金额
|
||||
num-=gmMissionList.get(gmMissionList.size()-1).getRechargeNum();
|
||||
verify = true;
|
||||
}
|
||||
}
|
||||
while (verify);
|
||||
gmActivity.setValue(num);
|
||||
}
|
||||
|
||||
/**
|
||||
* 单笔充值奖励
|
||||
* @param gmActivity
|
||||
|
@ -264,7 +314,7 @@ public class GmActivityLogic implements IEventHandler {
|
|||
manager.removeActivity(gmActivity.getId());
|
||||
continue;
|
||||
}
|
||||
// 单笔累充和妖晶返利每日清零
|
||||
// 单日累充和妖晶返利每日清零
|
||||
if (gmActivity.getType() == 1 || gmActivity.getType() == 2){
|
||||
gmActivity.setValue(0);
|
||||
gmActivity.setMissionMap(new HashMap<>());
|
||||
|
|
|
@ -312,7 +312,7 @@ public class STableManager {
|
|||
field.setAccessible(flag);
|
||||
map.put(id, obj);
|
||||
} catch (NoSuchFieldException e) {
|
||||
LOGGER.error("读表报错,表name:{},异常:{}",clazz.getSimpleName(),e);
|
||||
LOGGER.error("读表报错,表name:{},异常:{}",clazz.getSimpleName(),e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue