线下返利,单日累充活动重置
parent
6797841d24
commit
54315803ca
|
@ -83,13 +83,16 @@ public class GmActivityLogic implements IEventHandler {
|
||||||
// 获取全部活动信息
|
// 获取全部活动信息
|
||||||
GmActivity gmActivity = manager.getActivityMap().getOrDefault(entry.getKey(), new GmActivity(arbActivity));
|
GmActivity gmActivity = manager.getActivityMap().getOrDefault(entry.getKey(), new GmActivity(arbActivity));
|
||||||
switch (gmActivity.getType()){
|
switch (gmActivity.getType()){
|
||||||
|
case 1://单日累充
|
||||||
|
getRewardToSingleTotalRecharge(user, gmActivity, config.getPrice());
|
||||||
|
break;
|
||||||
case 2://妖晶返利
|
case 2://妖晶返利
|
||||||
getRewardToMonsterCurrencyBack(user, gmActivity,config.getPrice());
|
getRewardToMonsterCurrencyBack(user, gmActivity, config.getPrice());
|
||||||
break;
|
break;
|
||||||
case 4://单笔充值
|
case 4://单笔充值
|
||||||
getRewardToSingleRecharge(user, gmActivity,config.getPrice());
|
getRewardToSingleRecharge(user, gmActivity, config.getPrice());
|
||||||
break;
|
break;
|
||||||
default://1、3、5、6(单笔累充,多日累充,永久大充,开服首日累充)
|
default://3、5、6(多日累充,永久大充,开服首日累充)
|
||||||
getDefaultReward(user, gmActivity,config.getPrice());
|
getDefaultReward(user, gmActivity,config.getPrice());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -171,6 +174,53 @@ public class GmActivityLogic implements IEventHandler {
|
||||||
gmActivity.setValue(num);
|
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
|
* @param gmActivity
|
||||||
|
@ -264,7 +314,7 @@ public class GmActivityLogic implements IEventHandler {
|
||||||
manager.removeActivity(gmActivity.getId());
|
manager.removeActivity(gmActivity.getId());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// 单笔累充和妖晶返利每日清零
|
// 单日累充和妖晶返利每日清零
|
||||||
if (gmActivity.getType() == 1 || gmActivity.getType() == 2){
|
if (gmActivity.getType() == 1 || gmActivity.getType() == 2){
|
||||||
gmActivity.setValue(0);
|
gmActivity.setValue(0);
|
||||||
gmActivity.setMissionMap(new HashMap<>());
|
gmActivity.setMissionMap(new HashMap<>());
|
||||||
|
|
|
@ -312,7 +312,7 @@ public class STableManager {
|
||||||
field.setAccessible(flag);
|
field.setAccessible(flag);
|
||||||
map.put(id, obj);
|
map.put(id, obj);
|
||||||
} catch (NoSuchFieldException e) {
|
} catch (NoSuchFieldException e) {
|
||||||
LOGGER.error("读表报错,表name:{},异常:{}",clazz.getSimpleName(),e);
|
LOGGER.error("读表报错,表name:{},异常:{}",clazz.getSimpleName(),e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue