Commit dd089133 authored by libin's avatar libin

抽奖

parent ceaef0ef
...@@ -19,6 +19,7 @@ import java.util.Date; ...@@ -19,6 +19,7 @@ import java.util.Date;
public class ActivityWinningRecordVo { public class ActivityWinningRecordVo {
private String userName; private String userName;
private String phone;
private String positionName; private String positionName;
@ApiModelProperty("1:线上 2:现场") @ApiModelProperty("1:线上 2:现场")
private Integer prizeType; private Integer prizeType;
......
...@@ -16,5 +16,6 @@ import lombok.NoArgsConstructor; ...@@ -16,5 +16,6 @@ import lombok.NoArgsConstructor;
public class LotteryVo { public class LotteryVo {
private String prizeName; private String prizeName;
private Integer serialNumber;
private String expiryDateCode; private String expiryDateCode;
} }
package com.xxfc.platform.activity.biz; package com.xxfc.platform.activity.biz;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.util.ReferralCodeUtil;
import com.xxfc.platform.activity.constant.PrizeTypeEnum; import com.xxfc.platform.activity.constant.PrizeTypeEnum;
import com.xxfc.platform.activity.dto.UserCouponSendDTO;
import com.xxfc.platform.activity.entity.ActivityWinningRecord; import com.xxfc.platform.activity.entity.ActivityWinningRecord;
import com.xxfc.platform.activity.util.LotteryUtils; import com.xxfc.platform.activity.util.LotteryUtils;
import com.xxfc.platform.activity.vo.ActivityPrizeVo; import com.xxfc.platform.activity.vo.ActivityPrizeVo;
...@@ -9,6 +11,8 @@ import com.xxfc.platform.activity.vo.LotteryVo; ...@@ -9,6 +11,8 @@ import com.xxfc.platform.activity.vo.LotteryVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.activity.entity.ActivityPrize; import com.xxfc.platform.activity.entity.ActivityPrize;
...@@ -18,6 +22,7 @@ import com.github.wxiaoqi.security.common.exception.BaseException; ...@@ -18,6 +22,7 @@ import com.github.wxiaoqi.security.common.exception.BaseException;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -35,6 +40,9 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize ...@@ -35,6 +40,9 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
private final ActivityWinningRecordBiz activityWinningRecordBiz; private final ActivityWinningRecordBiz activityWinningRecordBiz;
private final UserCouponBiz userCouponBiz; private final UserCouponBiz userCouponBiz;
private final RedisTemplate<String,Object> redisTemplate;
@Resource(name = "redisTemplate")
private ValueOperations<String, Object> valueOperations;
/** /**
* 查询奖品 * 查询奖品
...@@ -110,20 +118,41 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize ...@@ -110,20 +118,41 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
public LotteryVo activityLottery(Integer activityId, Integer prizeType, AppUserDTO appUserDTO) { public LotteryVo activityLottery(Integer activityId, Integer prizeType, AppUserDTO appUserDTO) {
LotteryVo lotteryVo = new LotteryVo(); LotteryVo lotteryVo = new LotteryVo();
List<ActivityPrize> activityPrizes = findActivityPrizeByType(prizeType); List<ActivityPrize> activityPrizes = findActivityPrizeByType(prizeType);
ActivityPrize notActivityPrize = activityPrizes.stream().filter(x -> x.getIsPrize() == 1).findFirst().orElseGet(() -> {
ActivityPrize activityPrize = new ActivityPrize();
activityPrize.setName("谢谢参与");
activityPrize.setIsPrize(0);
return activityPrize;
});
int index = LotteryUtils.getrandomIndex(activityPrizes); int index = LotteryUtils.getrandomIndex(activityPrizes);
ActivityPrize activityPrize = activityPrizes.get(index); ActivityPrize activityPrize = activityPrizes.get(index);
if (activityPrize.getTotalStock() == 0){ if (activityPrize.getTotalStock() == 0){
lotteryVo.setPrizeName("谢谢参与"); lotteryVo.setPrizeName(notActivityPrize.getName());
return lotteryVo;
}
if (PrizeTypeEnum.LOCALE.getCode()==prizeType){
//兑奖码生成
} }
ActivityWinningRecord activityWinningRecord = new ActivityWinningRecord(); ActivityWinningRecord activityWinningRecord = new ActivityWinningRecord();
activityWinningRecord.setActivityId(activityId); activityWinningRecord.setActivityId(activityId);
activityWinningRecord.setPrizeType(prizeType); activityWinningRecord.setPrizeType(prizeType);
activityWinningRecord.setUserId(appUserDTO.getUserid()); activityWinningRecord.setUserId(appUserDTO.getUserid());
activityWinningRecord.setIconPath(activityPrize.getIconPath()); activityWinningRecord.setIconPath(activityPrize.getIconPath());
if (activityPrize.getIsPrize()==1 && activityPrize.getTotalStock()!=0){
if (PrizeTypeEnum.LOCALE.getCode()==prizeType){
//兑奖码生成
String expiryDateCode = ReferralCodeUtil.encode(valueOperations.increment(String.valueOf(activityId)).intValue());
activityWinningRecord.setExpiryDateCode(expiryDateCode);
lotteryVo.setExpiryDateCode(expiryDateCode);
}
//发放优惠券
if (activityPrize.getIsEntity() == 0){
UserCouponSendDTO userCouponSendDTO = new UserCouponSendDTO();
userCouponSendDTO.setCouponId(activityPrize.getGoodsId());
userCouponSendDTO.setCouponNum(1);
userCouponSendDTO.setPhone(appUserDTO.getUsername());
userCouponBiz.sendCoupon(userCouponSendDTO);
}
}
activityWinningRecordBiz.saveRecord(activityWinningRecord); activityWinningRecordBiz.saveRecord(activityWinningRecord);
return lotteryVo; return lotteryVo;
} }
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
aar.user_name as `userName`, aar.user_name as `userName`,
aar.phone, aar.phone,
aar.position_name as `positionName`, aar.position_name as `positionName`,
apr.inviteNum, IFNULL(apr.inviteNum,0),
awr.prizes awr.prizes
from (select `user_id`,`popularize_id`,`current_progress`,`status`,`crt_time` from activity_popularize_user where from (select `user_id`,`popularize_id`,`current_progress`,`status`,`crt_time` from activity_popularize_user where
`popularize_id`=#{activityId} `popularize_id`=#{activityId}
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
</resultMap> </resultMap>
<select id="selectActivityWinningRecord" resultType="com.xxfc.platform.activity.dto.ActivityWinningRecordPageDTO"> <select id="selectActivityWinningRecord" resultType="com.xxfc.platform.activity.dto.ActivityWinningRecordPageDTO">
select * from `activity_winning_record` as `awr` select awr.*,aar.* from `activity_winning_record` as `awr`
left join `activity_attendance_record` as `aar` ON aar.user_id=awr.user_id and aar.activity_id=awr.activity_id left join `activity_attendance_record` as `aar` ON aar.user_id=awr.user_id and aar.activity_id=awr.activity_id
where 1=1 where 1=1
<if test="activityId!=null"> <if test="activityId!=null">
......
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