|
@@ -48,6 +48,7 @@ public class LuckDrawPrizeServiceImpl extends BaseServiceImpl<Integer, LuckDrawP
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public boolean batchInsert(List<LuckDrawPrize> luckDrawPrizeList) {
|
|
|
if (luckDrawPrizeList == null || luckDrawPrizeList.size() == 0) {
|
|
|
throw new BizException("请设置奖品");
|
|
@@ -56,8 +57,26 @@ public class LuckDrawPrizeServiceImpl extends BaseServiceImpl<Integer, LuckDrawP
|
|
|
if(reduce != 1d){
|
|
|
throw new BizException("中奖概率总和必须是100%");
|
|
|
}
|
|
|
+
|
|
|
List<LuckDrawPrize> insertDraw = luckDrawPrizeList.stream().filter(e -> e.getId() == null).collect(Collectors.toList());
|
|
|
List<LuckDrawPrize> updateDraw = luckDrawPrizeList.stream().filter(e -> e.getId() != null).collect(Collectors.toList());
|
|
|
+ //全量奖品
|
|
|
+ List<LuckDrawPrize> luckDrawPrizes = luckDrawPrizeDao.queryDefaultPrize(luckDrawPrizeList.get(0).getGroupId());
|
|
|
+ if(luckDrawPrizes != null && luckDrawPrizes.size() > 0){
|
|
|
+ List<Integer> allPrizeIds = luckDrawPrizes.stream().map(e -> e.getId()).collect(Collectors.toList());
|
|
|
+ if(updateDraw != null && updateDraw.size() > 0){
|
|
|
+ List<Integer> updatePrizeIds = updateDraw.stream().map(e -> e.getId()).collect(Collectors.toList());
|
|
|
+ allPrizeIds.removeAll(updatePrizeIds);
|
|
|
+ }
|
|
|
+ if(allPrizeIds.size() > 0){
|
|
|
+ //是否使用过
|
|
|
+ String prizeName = luckDrawLogService.countUseNumByIds(allPrizeIds);
|
|
|
+ if(StringUtils.isNotEmpty(prizeName)){
|
|
|
+ throw new BizException("奖品 {} 已使用,无法删除",prizeName);
|
|
|
+ }
|
|
|
+ luckDrawPrizeDao.deleteByIds(allPrizeIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
if(insertDraw != null && insertDraw.size() > 0){
|
|
|
luckDrawPrizeDao.batchInsert(insertDraw);
|
|
|
}
|