记得上下班打卡 | git大法好,push需谨慎

Commit b774de14 authored by jiangxiulong's avatar jiangxiulong

抽奖

parent 0906b684
...@@ -114,6 +114,8 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg ...@@ -114,6 +114,8 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
// 如果库存没了就从列表剔出 列表为空就都没有库存了 // 如果库存没了就从列表剔出 列表为空就都没有库存了
ArrayList<IntegralActivityPrizeVo> activityPrizeVoArrayList = SweetNewObjectUtil.getIntegralActivityPrizeVoArrayList(); ArrayList<IntegralActivityPrizeVo> activityPrizeVoArrayList = SweetNewObjectUtil.getIntegralActivityPrizeVoArrayList();
// 概率计算 // 概率计算
// TODO: 2021/12/6 黑名单只中券 不记录次数
// TODO: 2021/12/6 白名单概率*2
boolean lotteryDraw = this.lotteryDraw(integralActivity.getPrizeList2(), integralActivity.getEstimatedNum(), integralActivity.getIntegralActivityId()); boolean lotteryDraw = this.lotteryDraw(integralActivity.getPrizeList2(), integralActivity.getEstimatedNum(), integralActivity.getIntegralActivityId());
if (lotteryDraw) { // 实物 if (lotteryDraw) { // 实物
List<IntegralActivityPrizeVo> prizeList = integralActivity.getPrizeList2(); List<IntegralActivityPrizeVo> prizeList = integralActivity.getPrizeList2();
...@@ -132,25 +134,29 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg ...@@ -132,25 +134,29 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
List<IntegralActivityPrizeVo> prizeList = integralActivity.getPrizeList1(); List<IntegralActivityPrizeVo> prizeList = integralActivity.getPrizeList1();
for (IntegralActivityPrizeVo info : prizeList) { for (IntegralActivityPrizeVo info : prizeList) {
int integralActivityPrizeNum = redisDataUtils.getIntegralActivityPrizeNum(integralActivityId, info.getPrizeId()); int integralActivityPrizeNum = redisDataUtils.getIntegralActivityPrizeNum(integralActivityId, info.getPrizeId());
if (integralActivityPrizeNum > 0) { if (integralActivityPrizeNum == -1 || integralActivityPrizeNum > 0) {
activityPrizeVoArrayList.add(info); activityPrizeVoArrayList.add(info);
} }
} }
/*if (CollectionUtils.isEmpty(activityPrizeVoArrayList)) { if (CollectionUtils.isEmpty(activityPrizeVoArrayList)) {
return ResponseDto.failure("活动太火爆了,奖品已经没有库存啦~"); return ResponseDto.failure("活动太火爆了,奖品已经没有库存啦~");
}*/ }
} }
IntegralActivityPrizeVo integralActivityPrizeVo = this.lotteryDraw1(activityPrizeVoArrayList); IntegralActivityPrizeVo integralActivityPrizeVo = this.lotteryDraw1(activityPrizeVoArrayList);
// 减库存 顺便判断库存是否够 -1的时候回滚回去 // 减库存 顺便判断库存是否够 -1的时候回滚回去 todo -1判断不靠谱
long activityPrizeNum = redisDataUtils.decrIntegralActivityPrizeNum(integralActivityId, integralActivityPrizeVo.getPrizeId(), 1); int integralActivityPrizeNumOld = redisDataUtils.getIntegralActivityPrizeNum(integralActivityId, integralActivityPrizeVo.getPrizeId());
log.info("奖品库存情况 activityPrizeNum:{}", activityPrizeNum); if (integralActivityPrizeNumOld != -1) {
if (activityPrizeNum < 0) {// 库存不够了 long activityPrizeNum = redisDataUtils.decrIntegralActivityPrizeNum(integralActivityId, integralActivityPrizeVo.getPrizeId(), 1);
long prizeNum = redisDataUtils.incrIntegralActivityPrizeNum(integralActivityId, integralActivityPrizeVo.getPrizeId(), 1); log.info("奖品库存情况 activityPrizeNum:{}", activityPrizeNum);
log.info("奖品库存情况回滚后 prizeNum:{}", prizeNum); if (activityPrizeNum < 0) {// 库存不够了
return ResponseDto.failure("活动太火爆了,奖品已经没有库存了!"); long prizeNum = redisDataUtils.incrIntegralActivityPrizeNum(integralActivityId, integralActivityPrizeVo.getPrizeId(), 1);
log.info("奖品库存情况回滚后 prizeNum:{}", prizeNum);
return ResponseDto.failure("活动太火爆了,奖品已经没有库存了!");
}
} }
// 减积分 // 减积分
ResponseDto<String> de2111 = feignStoneIntegralClient.de2111(userId, integralActivity.getActivityNum(), integralActivity.getActivityTitle()); ResponseDto<String> de2111 = feignStoneIntegralClient.de2111(userId, integralActivity.getActivityNum(), integralActivity.getActivityTitle());
log.info("减积分返回值情况 de2111:{}", de2111); log.info("减积分返回值情况 de2111:{}", de2111);
...@@ -178,6 +184,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg ...@@ -178,6 +184,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
// 发放状态 // 发放状态
receivingStatus = 2; receivingStatus = 2;
} }
// TODO: 2021/12/6 判断一张券直接发
/*if (prizeType == 3 || prizeType == 4 || prizeType == 5) {// 优惠券 /*if (prizeType == 3 || prizeType == 4 || prizeType == 5) {// 优惠券
// 发放优惠券 // 发放优惠券
LinkedList<String> sqls = CollectionUtil.linkedListString(); LinkedList<String> sqls = CollectionUtil.linkedListString();
...@@ -214,7 +221,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg ...@@ -214,7 +221,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
}); });
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_INTEGRAL_ACTIVITY_DRAW.getKey(), queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_INTEGRAL_ACTIVITY_DRAW.getKey(),
SqlMapping.gets(sqls, sqlsDataA)); SqlMapping.gets(sqls, sqlsDataA));
// TODO: 2021/12/6 查券详情返回
return ResponseDto.success(integralActivityPrizeVo); return ResponseDto.success(integralActivityPrizeVo);
} catch (Exception e) { } catch (Exception e) {
log.error("积分抽奖异常 e:{}", e); log.error("积分抽奖异常 e:{}", e);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment