|
@@ -1,5 +1,6 @@
|
|
|
package com.qs.mp.admin.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.qs.mp.admin.domain.*;
|
|
|
import com.qs.mp.admin.domain.param.*;
|
|
|
import com.qs.mp.admin.mapper.MarketingMapper;
|
|
@@ -16,6 +17,7 @@ import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -52,11 +54,39 @@ public class MarketingServiceImpl extends ServiceImpl<MarketingMapper, Marketing
|
|
|
BeanUtils.copyProperties(marketingCreateParam, marketing);
|
|
|
this.save(marketing);
|
|
|
|
|
|
+ // 创建奖级和奖品信息
|
|
|
+ createAwardsAndPrize(marketingCreateParam.getAwardsList(), marketing);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void updateMarketing(MarketingUpdateParam marketingUpdateParam) {
|
|
|
+ Marketing marketing = this.getById(marketingUpdateParam.getId());
|
|
|
+ if (Objects.isNull(marketing)) {
|
|
|
+ throw new ServiceException("营销活动不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新营销活动
|
|
|
+ BeanUtils.copyProperties(marketingUpdateParam, marketing);
|
|
|
+ this.updateById(marketing);
|
|
|
+
|
|
|
+ // 删除奖级和奖品信息
|
|
|
+ marketingAwardsService.remove(new LambdaUpdateWrapper<MarketingAwards>().eq(MarketingAwards::getMarketingId, marketing.getId()));
|
|
|
+ marketingAwardsPrizeService.remove(new LambdaUpdateWrapper<MarketingAwardsPrize>().eq(MarketingAwardsPrize::getMarketingId, marketing.getId()));
|
|
|
+
|
|
|
+ // 创建奖级和奖品信息
|
|
|
+ createAwardsAndPrize(marketingUpdateParam.getAwardsList(), marketing);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建奖级和奖品信息
|
|
|
+ * @param awardsList
|
|
|
+ * @param marketing
|
|
|
+ */
|
|
|
+ private void createAwardsAndPrize(List<MarketingAwardsParam> awardsList, Marketing marketing) {
|
|
|
// 创建奖级
|
|
|
List<MarketingAwardsPrize> marketingAwardsPrizeList = new ArrayList<>();
|
|
|
- for (int i = 0; i < marketingCreateParam.getAwardsList().size(); i ++) {
|
|
|
- MarketingAwardsParam awardsParam = marketingCreateParam.getAwardsList().get(i);
|
|
|
-
|
|
|
+ for (MarketingAwardsParam awardsParam : awardsList) {
|
|
|
if (awardsParam.getInsideNum() > awardsParam.getQuantity()) {
|
|
|
throw new ServiceException("内定数量不能大于奖品数量");
|
|
|
}
|