Commit 64eaa146 authored by libin's avatar libin

添加根据中奖记录id查询的接口

parent 17c72286
...@@ -25,7 +25,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -25,7 +25,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations; import org.springframework.data.redis.core.ValueOperations;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -205,4 +204,6 @@ public class ActivityAttendanceRecordBiz extends BaseBiz<ActivityAttendanceRecor ...@@ -205,4 +204,6 @@ public class ActivityAttendanceRecordBiz extends BaseBiz<ActivityAttendanceRecor
public void updateLotteryNumByActivityIdAndUserIdAndPrizeType(Integer activityId,Integer userId,Integer prizeType){ public void updateLotteryNumByActivityIdAndUserIdAndPrizeType(Integer activityId,Integer userId,Integer prizeType){
mapper.updateLotteryNumByActivityIdAndUserIdAndPrizeType(activityId,userId,prizeType); mapper.updateLotteryNumByActivityIdAndUserIdAndPrizeType(activityId,userId,prizeType);
} }
} }
\ No newline at end of file
...@@ -8,7 +8,6 @@ import com.google.common.collect.Lists; ...@@ -8,7 +8,6 @@ import com.google.common.collect.Lists;
import com.xxfc.platform.activity.bo.ActivityWinningRecordBo; import com.xxfc.platform.activity.bo.ActivityWinningRecordBo;
import com.xxfc.platform.activity.bo.ActivityWinningRecordTotalVo; import com.xxfc.platform.activity.bo.ActivityWinningRecordTotalVo;
import com.xxfc.platform.activity.constant.PrizeTypeEnum; import com.xxfc.platform.activity.constant.PrizeTypeEnum;
import com.xxfc.platform.activity.dto.ActivityWinningRecordDTO;
import com.xxfc.platform.activity.dto.ActivityWinningRecordFindDTO; import com.xxfc.platform.activity.dto.ActivityWinningRecordFindDTO;
import com.xxfc.platform.activity.dto.ActivityWinningRecordPageDTO; import com.xxfc.platform.activity.dto.ActivityWinningRecordPageDTO;
import com.xxfc.platform.activity.entity.ActivityWinningRecord; import com.xxfc.platform.activity.entity.ActivityWinningRecord;
...@@ -18,7 +17,6 @@ import org.apache.commons.collections.CollectionUtils; ...@@ -18,7 +17,6 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -31,6 +29,7 @@ import java.io.IOException; ...@@ -31,6 +29,7 @@ import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
/** /**
...@@ -164,4 +163,11 @@ public class ActivityWinningRecordBiz extends BaseBiz<ActivityWinningRecordMappe ...@@ -164,4 +163,11 @@ public class ActivityWinningRecordBiz extends BaseBiz<ActivityWinningRecordMappe
activityWinningRecordPageDTO.getPositionName(),prizeType,activityWinningRecordPageDTO.getPrizeName(), activityWinningRecordPageDTO.getPositionName(),prizeType,activityWinningRecordPageDTO.getPrizeName(),
expiryDateCode,timeStr}; expiryDateCode,timeStr};
} }
public ActivityWinningRecordVo findActivityAttendanceRecordById(Long id) {
ActivityWinningRecordVo activityWinningRecordVo = new ActivityWinningRecordVo();
ActivityWinningRecord activityAttendanceRecord = mapper.selectByPrimaryKey(id);
Optional.ofNullable(activityAttendanceRecord).ifPresent(x->BeanUtils.copyProperties(x,activityWinningRecordVo));
return activityWinningRecordVo;
}
} }
\ No newline at end of file
...@@ -34,23 +34,23 @@ import java.util.concurrent.TimeUnit; ...@@ -34,23 +34,23 @@ import java.util.concurrent.TimeUnit;
@RequiredArgsConstructor(onConstructor = @__(@Autowired)) @RequiredArgsConstructor(onConstructor = @__(@Autowired))
@Slf4j @Slf4j
public class ActivityPrizeMqHandler { public class ActivityPrizeMqHandler {
private final ActivityPrizeBiz activityPrizeBiz; private final ActivityPrizeBiz activityPrizeBiz;
private final ActivityAttendanceRecordBiz activityAttendanceRecordBiz; private final ActivityAttendanceRecordBiz activityAttendanceRecordBiz;
private final ActivityWinningRecordBiz activityWinningRecordBiz; private final ActivityWinningRecordBiz activityWinningRecordBiz;
private final UserCouponBiz userCouponBiz; private final UserCouponBiz userCouponBiz;
private final RedisTemplate<String, Object> redisTemplate; private final RedisTemplate<String, Object> redisTemplate;
@Resource(name = "redisTemplate") @Resource(name = "redisTemplate")
private ValueOperations valueOperations; private ValueOperations valueOperations;
private final String R_CONSUME="lottery:reconsume"; private final String R_CONSUME = "lottery:reconsume";
private final int R_CONSUME_MAX_NUM=3; private final int R_CONSUME_MAX_NUM = 3;
@RabbitListener(queues = RabbitActivityConfig.PRIZE_RECORD_QUEUE) @RabbitListener(queues = RabbitActivityConfig.PRIZE_RECORD_QUEUE)
public void processActivityPrizeMsg(ActivityLotteryDTO activityLotteryDTO, Channel channel){ public void processActivityPrizeMsg(ActivityLotteryDTO activityLotteryDTO, Channel channel) {
log.info("抽奖消息的数据【{}】",activityLotteryDTO); log.info("抽奖消息的数据【{}】", activityLotteryDTO);
try { try {
if (activityLotteryDTO.getHasWinning() == 1) { if (activityLotteryDTO.getHasWinning() == 1) {
//更新库存 //更新库存
log.info("更新库存:参数【prizeType:{}==serialNumber:{}】",activityLotteryDTO.getPrizeType(), activityLotteryDTO.getSerialNumber()); log.info("更新库存:参数【prizeType:{}==serialNumber:{}】", activityLotteryDTO.getPrizeType(), activityLotteryDTO.getSerialNumber());
activityPrizeBiz.updatePrizeStock(activityLotteryDTO.getPrizeType(), activityLotteryDTO.getSerialNumber()); activityPrizeBiz.updatePrizeStock(activityLotteryDTO.getPrizeType(), activityLotteryDTO.getSerialNumber());
//发放优惠券 //发放优惠券
if (activityLotteryDTO.getPrizeGoodsType() == PrizeGoodsTypeEnum.COUPON.getCode()) { if (activityLotteryDTO.getPrizeGoodsType() == PrizeGoodsTypeEnum.COUPON.getCode()) {
...@@ -58,33 +58,33 @@ public class ActivityPrizeMqHandler { ...@@ -58,33 +58,33 @@ public class ActivityPrizeMqHandler {
userCouponSendDTO.setCouponId(activityLotteryDTO.getGoodsId()); userCouponSendDTO.setCouponId(activityLotteryDTO.getGoodsId());
userCouponSendDTO.setCouponNum(1); userCouponSendDTO.setCouponNum(1);
userCouponSendDTO.setPhone(activityLotteryDTO.getPhone()); userCouponSendDTO.setPhone(activityLotteryDTO.getPhone());
log.info("抽中优惠券发送:【参数:{}】",userCouponSendDTO); log.info("抽中优惠券发送:【参数:{}】", userCouponSendDTO);
userCouponBiz.sendCoupon(userCouponSendDTO); userCouponBiz.sendCoupon(userCouponSendDTO);
} }
} }
ActivityWinningRecord activityWinningRecord = new ActivityWinningRecord(); ActivityWinningRecord activityWinningRecord = new ActivityWinningRecord();
BeanUtils.copyProperties(activityLotteryDTO, activityWinningRecord); BeanUtils.copyProperties(activityLotteryDTO, activityWinningRecord);
activityWinningRecord.setCrtTime(new Date()); activityWinningRecord.setCrtTime(new Date());
log.info("抽奖记录【{}】",activityWinningRecord); log.info("抽奖记录【{}】", activityWinningRecord);
activityWinningRecordBiz.saveRecord(activityWinningRecord); activityWinningRecordBiz.saveRecord(activityWinningRecord);
//更改对应抽奖类型的抽奖次数 //更改对应抽奖类型的抽奖次数
log.info("更改对应抽奖类型的抽奖次数【activityId:{}==userId:{}==prizeType:{}】",activityLotteryDTO.getActivityId(), activityLotteryDTO.getUserId(), activityLotteryDTO.getPrizeType()); log.info("更改对应抽奖类型的抽奖次数【activityId:{}==userId:{}==prizeType:{}】", activityLotteryDTO.getActivityId(), activityLotteryDTO.getUserId(), activityLotteryDTO.getPrizeType());
activityAttendanceRecordBiz.updateLotteryNumByActivityIdAndUserIdAndPrizeType(activityLotteryDTO.getActivityId(), activityLotteryDTO.getUserId(), activityLotteryDTO.getPrizeType()); activityAttendanceRecordBiz.updateLotteryNumByActivityIdAndUserIdAndPrizeType(activityLotteryDTO.getActivityId(), activityLotteryDTO.getUserId(), activityLotteryDTO.getPrizeType());
}catch (Exception ex){ } catch (Exception ex) {
log.error("抽奖消息消费失败【{}】",ex); log.error("抽奖消息消费失败【{}】", ex);
try { try {
Long reConsumeCounter = valueOperations.increment(R_CONSUME); Long reConsumeCounter = valueOperations.increment(R_CONSUME);
if(reConsumeCounter <= R_CONSUME_MAX_NUM ) { if (reConsumeCounter <= R_CONSUME_MAX_NUM) {
channel.basicRecover(false); channel.basicRecover(false);
log.info("抽奖消息重回队列成功"); log.info("抽奖消息重回队列成功");
} }
if (reConsumeCounter==1){ if (reConsumeCounter == 1) {
redisTemplate.expire(R_CONSUME,1, TimeUnit.DAYS); redisTemplate.expire(R_CONSUME, 1, TimeUnit.DAYS);
} }
} catch (IOException e) { } catch (IOException e) {
log.error("消费抽奖消息重回队列失败【{}】",e); log.error("消费抽奖消息重回队列失败【{}】", e);
} }
} }
} }
} }
package com.xxfc.platform.activity.rest; package com.xxfc.platform.activity.rest;
import com.xxfc.platform.activity.biz.ActivityAttendanceRecordBiz; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.activity.biz.ActivityWinningRecordBiz;
import com.xxfc.platform.activity.vo.ActivityWinningRecordVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -17,6 +21,13 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -17,6 +21,13 @@ import org.springframework.web.bind.annotation.RestController;
@RequiredArgsConstructor(onConstructor = @__(@Autowired)) @RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class ActivityWinningRecordController { public class ActivityWinningRecordController {
private final ActivityAttendanceRecordBiz activityAttendanceRecordBiz;
private final ActivityWinningRecordBiz activityWinningRecordBiz;
@GetMapping("/{id}")
public ObjectRestResponse<ActivityWinningRecordVo> findActivityAttendanceRecordById(@PathVariable(value = "id") Long id){
ActivityWinningRecordVo activityWinningRecordVo = activityWinningRecordBiz.findActivityAttendanceRecordById(id);
return ObjectRestResponse.succ(activityWinningRecordVo);
}
} }
\ No newline at end of file
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