Commit 319aae48 authored by libin's avatar libin

Merge branch 'luck_draw_feature' into dev

parents c0f96abb 24ca3a24
......@@ -47,7 +47,6 @@ public class ActivityPrize implements Serializable {
@Column(name = "day_max_use")
private Integer dayMaxUse;
@NotNull(message = "奖品库存不能为null")
@Column(name = "total_stock")
private Integer totalStock;
......
......@@ -9,6 +9,7 @@ import com.github.wxiaoqi.security.common.util.ReferralCodeUtil;
import com.xxfc.platform.activity.config.RedissonLock;
import com.xxfc.platform.activity.constant.PrizeGoodsTypeEnum;
import com.xxfc.platform.activity.constant.PrizeTypeEnum;
import com.xxfc.platform.activity.dto.CouponDTO;
import com.xxfc.platform.activity.dto.UserCouponSendDTO;
import com.xxfc.platform.activity.entity.ActivityPrize;
import com.xxfc.platform.activity.entity.ActivityWinningRecord;
......@@ -51,7 +52,7 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
private final ActivityWinningRecordBiz activityWinningRecordBiz;
private final ActivityAttendanceRecordBiz activityAttendanceRecordBiz;
private final UserCouponBiz userCouponBiz;
private final CouponBiz couponBiz;
private final RedisTemplate<String, Object> redisTemplate;
@Resource(name = "redisTemplate")
private ValueOperations<String, Object> valueOperations;
......@@ -88,11 +89,21 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
if (CollectionUtils.isEmpty(activityPrizes)) {
throw new BaseException("奖品不能为空");
}
List<Integer> ids = activityPrizes.stream().filter(x -> Objects.nonNull(x.getGoodsId())).map(ActivityPrize::getGoodsId).collect(Collectors.toList());
List<CouponDTO> coupons = new ArrayList<>();
if (CollectionUtils.isNotEmpty(ids)){
coupons = couponBiz.findCouponsByIds(ids);
}
Map<Integer, String> couponMap = coupons.stream().collect(Collectors.toMap(CouponDTO::getId, CouponDTO::getTitle));
Map<Boolean, List<ActivityPrize>> activityPrizeMap = activityPrizes.stream().collect(Collectors.partitioningBy(x -> Objects.nonNull(x.getId()), Collectors.toList()));
//保存
List<ActivityPrize> activityPrizesOfSave = activityPrizeMap.get(Boolean.FALSE);
if (CollectionUtils.isNotEmpty(activityPrizesOfSave)) {
activityPrizesOfSave.stream().peek(x -> x.setCrtTime(new Date())).count();
activityPrizesOfSave.stream().peek(x -> {x.setCrtTime(new Date());
if (Objects.nonNull(x.getGoodsId())){
x.setName(couponMap==null?"":couponMap.get(x.getGoodsId()));
}
}).count();
mapper.insertList(activityPrizesOfSave);
}
//更新
......@@ -100,6 +111,9 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
if (CollectionUtils.isNotEmpty(activityPrizesOfUpdate)) {
for (ActivityPrize activityPrize : activityPrizesOfUpdate) {
activityPrize.setUpdTime(new Date());
if (Objects.nonNull(activityPrize.getGoodsId())){
activityPrize.setName(couponMap==null?"":couponMap.get(activityPrize.getGoodsId()));
}
mapper.updateByPrimaryKeySelective(activityPrize);
}
}
......
......@@ -143,4 +143,12 @@ public class CouponBiz extends BaseBiz<CouponMapper, Coupon> {
return mapper.couponsByTickerNoList(tickerNoList);
}
public List<CouponDTO> findCouponsByIds(List<Integer> ids){
List<CouponDTO> couponDTOS = mapper.findCouponsByIds(ids);
if (CollectionUtils.isEmpty(couponDTOS)){
return Collections.EMPTY_LIST;
}
return couponDTOS;
}
}
\ No newline at end of file
package com.xxfc.platform.activity.mapper;
import com.xxfc.platform.activity.dto.CouponDTO;
import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.vo.CouponTitleVo;
import org.apache.ibatis.annotations.Param;
......@@ -24,4 +25,6 @@ public interface CouponMapper extends Mapper<Coupon> {
List<Coupon> couponsByTickerNoList(@Param(value = "tickerNoList") List<String> tickerNoList);
List<CouponDTO> findCouponsByIds(@Param("ids") List<Integer> ids);
}
......@@ -57,4 +57,13 @@
</where>
</select>
<select id="findCouponsByIds" resultType="com.xxfc.platform.activity.dto.CouponDTO">
select `id`,`title` from `coupon` where is_del=0
<if test="ids!=null and ids.size>0">
and id in <foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
</select>
</mapper>
\ 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