天天0.1折活动bug修复
parent
a94289e86e
commit
10e3680e1e
|
|
@ -7,6 +7,7 @@ import com.ljsd.jieling.db.redis.RedisKey;
|
|||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.exception.ErrorTableException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.GlobalItemType;
|
||||
import com.ljsd.jieling.handler.activity.BlessInfoConfig;
|
||||
|
|
@ -23,6 +24,8 @@ import com.ljsd.jieling.logic.dao.SecretBoxManager;
|
|||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.GlobalSystemControl;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.item.ItemLog;
|
||||
import com.ljsd.jieling.logic.item.ItemLogic;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
|
||||
|
|
@ -2004,4 +2007,67 @@ public class ActivityLogic implements IEventHandler{
|
|||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 天天0.1折购买校验
|
||||
*/
|
||||
public void EveryDayDiscountBuyCheck(User user, int goodId, int update) throws ErrorTableException {
|
||||
long now = TimeUtils.now();
|
||||
Map<Integer, SEveryDayGift> giftMap = SEveryDayGift.giftactivitymap.get(goodId);
|
||||
if (giftMap == null || giftMap.isEmpty()){
|
||||
LOGGER.error("天天0.1折扣活动,查验购买次数退出,EveryDayGift没有活动信息,礼包id:{},耗时:{}", goodId, TimeUtils.now()-now);
|
||||
throw new ErrorTableException(183);// 档位不存在
|
||||
}
|
||||
for (Map.Entry<Integer, SEveryDayGift> entry : giftMap.entrySet()) {
|
||||
Integer activityId = entry.getKey();
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(activityId);
|
||||
if (mission == null){
|
||||
LOGGER.error("天天0.1折扣活动,查验购买次数退出,玩家没有活动信息,uid:{},活动id:{},耗时:{}",user.getId(), activityId,TimeUtils.now()-now);
|
||||
continue;
|
||||
}
|
||||
EveryDayDiscountBuyCheckAndUpdate(user, activityId, entry.getValue().getId(), update);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 天天0.1折购买校验并消耗
|
||||
*/
|
||||
public void EveryDayDiscountBuyCheckAndUpdate(User user, int activityId, int missionId, int update) throws ErrorTableException {
|
||||
long now = TimeUtils.now();
|
||||
SEveryDayGift dayGift = SEveryDayGift.map.get(missionId);
|
||||
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(activityId);
|
||||
ActivityProgressInfo progressInfo = mission.getActivityMissionMap().get(missionId);
|
||||
if (progressInfo == null){
|
||||
LOGGER.error("天天0.1折扣活动,查验购买次数退出,没有商品信息,uid:{},活动id:{},商品id:{},耗时:{}",user.getId(), activityId, missionId, TimeUtils.now()-now);
|
||||
throw new ErrorTableException(183);// 档位不存在
|
||||
}
|
||||
if (progressInfo.getState() != 1){
|
||||
LOGGER.error("天天0.1折扣活动,查验购买次数退出,商品为解锁,uid:{},活动id:{},商品id:{},耗时:{}",user.getId(), activityId, missionId, TimeUtils.now()-now);
|
||||
throw new ErrorTableException(184);// 档位未解锁
|
||||
}
|
||||
if (progressInfo.getProgrss() <= 0){
|
||||
LOGGER.error("天天0.1折扣活动,查验购买次数退出,商品够吗次数不足,uid:{},活动id:{},商品id:{},耗时:{}",user.getId(), activityId, missionId, TimeUtils.now()-now);
|
||||
throw new ErrorTableException(185);// 购买次数不足
|
||||
}
|
||||
// 消耗
|
||||
if (update == 1){
|
||||
LOGGER.error("天天0.1折扣活动,查验购买次数消耗,uid:{},活动id:{},商品id:{}",user.getId(), activityId, missionId);
|
||||
// 消耗默认次数
|
||||
if (progressInfo.getProgrss() == dayGift.getLimit()){
|
||||
int packId = ToolsUtil.getPackId(missionId);
|
||||
ActivityProgressInfo packInfo = mission.getActivityMissionMap().get(packId);
|
||||
if (packInfo != null && packInfo.getProgrss() > 0){
|
||||
packInfo.setProgrss(packInfo.getProgrss() - 1);
|
||||
mission.getActivityMissionMap().put(packId,packInfo);
|
||||
}
|
||||
}
|
||||
// 道具日志记录
|
||||
ItemLogic.getInstance().addItemLog(new ItemLog(user, 1, BIReason.EVERYDAY_DISCOUNT_COST_MISSION_COUNT,dayGift.getItemID(), progressInfo.getProgrss(), progressInfo.getProgrss()-1));
|
||||
progressInfo.setProgrss(progressInfo.getProgrss() - 1);
|
||||
// 更新数据库
|
||||
mission.getActivityMissionMap().put(missionId,progressInfo);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -190,50 +190,13 @@ public class EveryDayDiscountActivity extends AbstractActivity {
|
|||
User user = UserManager.getUser(event1.getUserId());
|
||||
int giftId = event1.getGiftId();
|
||||
int updateState = event1.getUpdateState();
|
||||
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if (mission == null){
|
||||
LOGGER.error("天天0.1折扣活动,查验购买次数退出,玩家没有活动信息,uid:{},活动id:{},耗时:{}",user.getId(), id,TimeUtils.now()-now);
|
||||
throw new ErrorTableException(182);// 活动不存在
|
||||
}
|
||||
SEveryDayGift dayGift = SEveryDayGift.activitygiftmap.getOrDefault(id, new HashMap<>()).get(giftId);
|
||||
if (dayGift == null){
|
||||
LOGGER.error("天天0.1折扣活动,查验购买次数退出,EveryDayGift没有活动信息,活动id:{},耗时:{}", id,TimeUtils.now()-now);
|
||||
throw new ErrorTableException(183);// 档位不存在
|
||||
}
|
||||
int missionId = dayGift.getId();
|
||||
ActivityProgressInfo progressInfo = mission.getActivityMissionMap().get(missionId);
|
||||
if (progressInfo == null){
|
||||
LOGGER.error("天天0.1折扣活动,查验购买次数退出,没有商品信息,uid:{},活动id:{},商品id:{},耗时:{}",user.getId(), id, missionId, TimeUtils.now()-now);
|
||||
throw new ErrorTableException(183);// 档位不存在
|
||||
}
|
||||
if (progressInfo.getState() != 1){
|
||||
LOGGER.error("天天0.1折扣活动,查验购买次数退出,商品为解锁,uid:{},活动id:{},商品id:{},耗时:{}",user.getId(), id, missionId, TimeUtils.now()-now);
|
||||
throw new ErrorTableException(184);// 档位未解锁
|
||||
}
|
||||
if (progressInfo.getProgrss() <= 0){
|
||||
LOGGER.error("天天0.1折扣活动,查验购买次数退出,商品够吗次数不足,uid:{},活动id:{},商品id:{},耗时:{}",user.getId(), id, missionId, TimeUtils.now()-now);
|
||||
throw new ErrorTableException(185);// 购买次数不足
|
||||
}
|
||||
// 消耗
|
||||
if (updateState == 1){
|
||||
LOGGER.error("天天0.1折扣活动,查验购买次数消耗,uid:{},活动id:{},商品id:{}",user.getId(), id, missionId);
|
||||
// 消耗默认次数
|
||||
if (progressInfo.getProgrss() == dayGift.getLimit()){
|
||||
int packId = ToolsUtil.getPackId(missionId);
|
||||
ActivityProgressInfo packInfo = mission.getActivityMissionMap().get(packId);
|
||||
if (packInfo != null && packInfo.getProgrss() > 0){
|
||||
packInfo.setProgrss(packInfo.getProgrss() - 1);
|
||||
mission.getActivityMissionMap().put(packId,packInfo);
|
||||
}
|
||||
}
|
||||
// 道具日志记录
|
||||
ItemLogic.getInstance().addItemLog(new ItemLog(user, 1, BIReason.EVERYDAY_DISCOUNT_COST_MISSION_COUNT,dayGift.getItemID(), progressInfo.getProgrss(), progressInfo.getProgrss()-1));
|
||||
progressInfo.setProgrss(progressInfo.getProgrss() - 1);
|
||||
// 更新数据库
|
||||
mission.getActivityMissionMap().put(missionId,progressInfo);
|
||||
sendActivityProgress(user, null);
|
||||
LOGGER.error("天天0.1折扣活动,查验购买次数退出,EveryDayGift未找到对应档位:{},礼包id:{},耗时:{}",id,giftId,TimeUtils.now()-now);
|
||||
return;
|
||||
}
|
||||
ActivityLogic.getInstance().EveryDayDiscountBuyCheckAndUpdate(user,id,dayGift.getId(),updateState);
|
||||
sendActivityProgress(user, null);
|
||||
LOGGER.info("天天0.1折扣活动,查验购买次数:{},耗时:{}",id,TimeUtils.now()-now);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1079,6 +1079,9 @@ public class BuyGoodsNewLogic {
|
|||
throw new ErrorTableException(104,"礼包已购买");
|
||||
}
|
||||
|
||||
// 天天礼包活动查验购买
|
||||
ActivityLogic.getInstance().EveryDayDiscountBuyCheck(user, goodsId, 0);
|
||||
|
||||
//生成cp订单号
|
||||
String order = "0";
|
||||
if(config.getPrice() > 0){
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ public class SEveryDayGift implements BaseConfig {
|
|||
|
||||
public static Map<Integer, Map<Integer, SEveryDayGift>> activitygiftmap = new HashMap<>();
|
||||
|
||||
public static Map<Integer, Map<Integer, SEveryDayGift>> giftactivitymap = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
map = STableManager.getConfig(SEveryDayGift.class);
|
||||
|
|
@ -40,6 +42,9 @@ public class SEveryDayGift implements BaseConfig {
|
|||
|
||||
activitygiftmap.putIfAbsent(value.getGlobalActivity(), new HashMap<>());
|
||||
activitygiftmap.get(value.getGlobalActivity()).put(value.getRechargeID(), value);
|
||||
|
||||
giftactivitymap.putIfAbsent(value.getRechargeID(), new HashMap<>());
|
||||
giftactivitymap.get(value.getRechargeID()).put(value.getGlobalActivity(), value);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue