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

Commit 8cc0a2f4 authored by 胡佳晨's avatar 胡佳晨

Merge remote-tracking branch 'origin/dev_stone' into dev_stone

parents 0e0c8218 58c12dcb
......@@ -83,4 +83,6 @@ public class SweetConstant {
public final static String REDIS_KEY_SWEET_MDSK_SHOP = "sweet:mdsk:artists:shop:manual:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_LIST = "sweet:integralActivity:list";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_INFO = "sweet:integralActivity:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM = "sweet:integralActivity:prizeNum:activityId:";
public static final String REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_WINNERS_NUM = "sweet:integralActivity:prizeWinnersNum:activityId:";
}
......@@ -3,11 +3,13 @@ package com.liquidnet.service.sweet.utils;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityPrize;
import java.util.ArrayList;
public class SweetNewObjectUtil {
private static final ArrayList<SweetIntegralActivityPrizeVo> sweetIntegralActivityPrizeVoArrayList = new ArrayList<>();
private static final ArrayList<SweetIntegralActivityPrize> sweetIntegralActivityPrizeArrayList = new ArrayList<>();
private static final ArrayList<SweetIntegralActivityDraw> sweetIntegralActivityDrawArrayList = new ArrayList<>();
private static final PagedResult<SweetIntegralActivityDraw> sweetIntegralActivityDrawPagedResult = new PagedResult<>();
......@@ -23,4 +25,8 @@ public class SweetNewObjectUtil {
return (PagedResult<SweetIntegralActivityDraw>) sweetIntegralActivityDrawPagedResult.clone();
}
public static ArrayList<SweetIntegralActivityPrize> getSweetIntegralActivityPrizeArrayList() {
return (ArrayList<SweetIntegralActivityPrize>) sweetIntegralActivityPrizeArrayList.clone();
}
}
......@@ -68,9 +68,12 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA
sweetIntegralActivityPrize.setPrizeId(IDGenerator.nextSnowId());
sweetIntegralActivityPrize.setIntegralActivityId(integralActivityId);
sweetIntegralActivityPrizeMapper.insert(sweetIntegralActivityPrize);
// 奖品库存和中奖人数redis
sweetRedisAdminUtils.setIntegralActivityPrizeNum(integralActivityId, sweetIntegralActivityPrize);
sweetRedisAdminUtils.setIntegralActivityPrizeWinnersNum(integralActivityId, sweetIntegralActivityPrize);
}
}
// redis处理
// 活动redis处理
this.integralActivityList(integralActivityId);
return insert;
} catch (Exception e) {
......@@ -101,7 +104,7 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA
);
}
}
// redis处理
// 活动redis处理
this.integralActivityList(integralActivityId);
return update;
} catch (Exception e) {
......@@ -119,7 +122,7 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA
sweetIntegralActivity,
Wrappers.lambdaUpdate(SweetIntegralActivity.class).eq(SweetIntegralActivity::getIntegralActivityId, integralActivityId)
);
// redis处理
// 活动redis处理
this.integralActivityList(integralActivityId);
return update;
}
......
......@@ -3,6 +3,7 @@ package com.liquidnet.client.admin.zhengzai.sweet.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivityPrize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component;
......@@ -26,4 +27,19 @@ public class SweetRedisAdminUtils {
boolean set = redisUtil.set(redisKey, integralActivityVo);
}
public void setIntegralActivityPrizeNum(String integralActivityId, SweetIntegralActivityPrize sweetIntegralActivityPrize) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
.concat(integralActivityId)
.concat(":prizeId:")
.concat(sweetIntegralActivityPrize.getPrizeId());
redisUtil.incr(redisKey, sweetIntegralActivityPrize.getPrizeNum());
}
public void setIntegralActivityPrizeWinnersNum(String integralActivityId, SweetIntegralActivityPrize sweetIntegralActivityPrize) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_WINNERS_NUM
.concat(integralActivityId)
.concat(":prizeId:")
.concat(sweetIntegralActivityPrize.getPrizeId());
redisUtil.incr(redisKey, sweetIntegralActivityPrize.getPrizeNum());
}
}
......@@ -43,10 +43,31 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
String nickname = StringUtils.defaultString((String.valueOf(tokenClaims.get("nickname"))), "");
IntegralActivityVo integralActivity = redisDataUtils.getIntegralActivityInfo(integralActivityId);
if (integralActivity.getIsOnline() == 1) {
return ResponseDto.failure("该活动已下限");
}
if (integralActivity.getTimeType() == 2) {
LocalDateTime startTime = integralActivity.getStartTime();
LocalDateTime endTime = integralActivity.getEndTime();
LocalDateTime nowTime = LocalDateTime.now();
if (nowTime.isAfter(endTime)) { // 已结束
return ResponseDto.failure("该活动已结束");
}
if (startTime.isAfter(nowTime)) { // 未开始
return ResponseDto.failure("该活动未开始");
}
}
SweetIntegralActivityPrize sweetIntegralActivityPrize = this.lotteryDraw(integralActivity.getPrizeList());
// TODO: 2021/10/27 判断用户积分是否>=integralActivity.setActivityNum();
// TODO 如果库存没了 限制的中奖人数到了就从列表剔出
List<SweetIntegralActivityPrize> prizeList = integralActivity.getPrizeList();
ArrayList<SweetIntegralActivityPrize> sweetIntegralActivityPrizeArrayList = SweetNewObjectUtil.getSweetIntegralActivityPrizeArrayList();
for (SweetIntegralActivityPrize info : prizeList) {
sweetIntegralActivityPrizeArrayList.add(info);
}
SweetIntegralActivityPrize sweetIntegralActivityPrize = this.lotteryDraw(sweetIntegralActivityPrizeArrayList);
// 活动是否上架 是否在有效期内 奖品库存是否够 获取用户积分 判断积分是否够
SweetIntegralActivityPrizeVo sweetIntegralActivityPrizeVo = SweetIntegralActivityPrizeVo.getNew().copy(sweetIntegralActivityPrize);
// 记录
......
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