yangdamao 2 rokov pred
rodič
commit
a643303d2e

+ 0 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityGoods.java

@@ -32,8 +32,6 @@ private static final long serialVersionUID=1L;
     private Long distributionId;
     /** 商品ID */
     private Long goodsId;
-    /** 商品活动价格 */
-    private BigDecimal goodsPrice;
     /** 总佣金上限 */
     private BigDecimal profitMax;
     /** 状态:1有效,0无效 */

+ 71 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityServiceImpl.java

@@ -11,6 +11,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.Page;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.common.utils.ToolsUtils;
+import com.zhongzheng.modules.activity.domain.ActivityGoodsPrice;
+import com.zhongzheng.modules.activity.service.IActivityGoodsPriceService;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityAddBo;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityEditBo;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityQueryBo;
@@ -35,6 +38,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -60,6 +64,8 @@ public class DistributionActivityServiceImpl extends ServiceImpl<DistributionAct
     private IDistributionActivityPosterService iDistributionActivityPosterService;
     @Autowired
     private IDistributionActivityTemplateGoodsService iDistributionActivityTemplateGoodsService;
+    @Autowired
+    private IActivityGoodsPriceService iActivityGoodsPriceService;
 
     @Override
     public DistributionActivityVo queryById(Long distributionId){
@@ -75,7 +81,22 @@ public class DistributionActivityServiceImpl extends ServiceImpl<DistributionAct
                 DistributionActivityGoodsVo goodsVo = BeanUtil.toBean(item, DistributionActivityGoodsVo.class);
                 Goods goods = iGoodsService.getById(goodsVo.getGoodsId());
                 goodsVo.setGoodsName(goods.getGoodsName());
-                goodsVo.setGoodsPrice(goods.getStandPrice());
+                if (item.getProfitType() == 1){
+                    //百分比
+                    goodsVo.setProfitMax(item.getProfitMax().multiply(new BigDecimal(100)));
+                    goodsVo.setProfitOne(item.getProfitOne().multiply(new BigDecimal(100)));
+                    goodsVo.setProfitTwo(item.getProfitTwo().multiply(new BigDecimal(100)));
+                    goodsVo.setProfitThree(item.getProfitThree().multiply(new BigDecimal(100)));
+                }
+                ActivityGoodsPrice price = iActivityGoodsPriceService
+                        .getOne(new LambdaQueryWrapper<ActivityGoodsPrice>()
+                                .eq(ActivityGoodsPrice::getActivityCode, vo.getCode())
+                                .eq(ActivityGoodsPrice::getGoodsId, item.getGoodsId())
+                                .eq(ActivityGoodsPrice::getStatus, 1)
+                                .last("limit 1"));
+                if (ObjectUtils.isNotNull(price)){
+                    goodsVo.setGoodsPrice(price.getGoodsPrice());
+                }
                 return goodsVo;
             }).collect(Collectors.toList());
             vo.setGoodsList(templateGoodsVos);
@@ -126,9 +147,11 @@ public class DistributionActivityServiceImpl extends ServiceImpl<DistributionAct
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean insertByAddBo(DistributionActivityAddBo bo) {
         DistributionActivity add = BeanUtil.toBean(bo, DistributionActivity.class);
         validEntityBeforeSave(add);
+        add.setCode(ToolsUtils.getRandomString(8));
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
         this.save(add);
@@ -142,6 +165,28 @@ public class DistributionActivityServiceImpl extends ServiceImpl<DistributionAct
                 return entity;
             }).collect(Collectors.toList());
             iDistributionActivityGoodsService.saveBatch(collect);
+            //商品活动价格
+            bo.getGoodsList().forEach(item -> {
+                ActivityGoodsPrice goodsPrice = iActivityGoodsPriceService
+                        .getOne(new LambdaQueryWrapper<ActivityGoodsPrice>()
+                                .eq(ActivityGoodsPrice::getActivityCode, add.getCode())
+                                .eq(ActivityGoodsPrice::getGoodsId, item.getGoodsId())
+                                .last("limit 1"));
+                if (ObjectUtils.isNotNull(goodsPrice)){
+                    goodsPrice.setGoodsPrice(item.getGoodsPrice());
+                    iActivityGoodsPriceService.updateById(goodsPrice);
+                }else {
+                    ActivityGoodsPrice price = new ActivityGoodsPrice();
+                    price.setGoodsPrice(item.getGoodsPrice());
+                    price.setActivityCode(add.getCode());
+                    price.setStatus(1);
+                    price.setGoodsId(item.getGoodsId());
+                    price.setType(1);
+                    price.setCreateTime(DateUtils.getNowTime());
+                    price.setUpdateTime(DateUtils.getNowTime());
+                    iActivityGoodsPriceService.save(price);
+                }
+            });
         }
 
         return true;
@@ -158,9 +203,11 @@ public class DistributionActivityServiceImpl extends ServiceImpl<DistributionAct
         validEntityBeforeSave(update);
         update.setUpdateTime(DateUtils.getNowTime());
         this.updateById(update);
-        //删除活动商品和下发机构重新绑定
+        //删除活动商品重新绑定
         iDistributionActivityGoodsService.remove(new LambdaQueryWrapper<DistributionActivityGoods>()
                 .eq(DistributionActivityGoods::getDistributionId,bo.getDistributionId()));
+        iActivityGoodsPriceService.remove(new LambdaQueryWrapper<ActivityGoodsPrice>()
+        .eq(ActivityGoodsPrice::getActivityCode,activityTemp.getCode()));
         //活动商品
         if (CollectionUtils.isNotEmpty(bo.getGoodsList())){
             List<DistributionActivityGoods> collect = bo.getGoodsList().stream().map(item -> {
@@ -171,6 +218,28 @@ public class DistributionActivityServiceImpl extends ServiceImpl<DistributionAct
                 return entity;
             }).collect(Collectors.toList());
             iDistributionActivityGoodsService.saveBatch(collect);
+            //商品活动价格
+            bo.getGoodsList().forEach(item -> {
+                ActivityGoodsPrice goodsPrice = iActivityGoodsPriceService
+                        .getOne(new LambdaQueryWrapper<ActivityGoodsPrice>()
+                                .eq(ActivityGoodsPrice::getActivityCode, activityTemp.getCode())
+                                .eq(ActivityGoodsPrice::getGoodsId, item.getGoodsId())
+                                .last("limit 1"));
+                if (ObjectUtils.isNotNull(goodsPrice)){
+                    goodsPrice.setGoodsPrice(item.getGoodsPrice());
+                    iActivityGoodsPriceService.updateById(goodsPrice);
+                }else {
+                    ActivityGoodsPrice price = new ActivityGoodsPrice();
+                    price.setGoodsPrice(item.getGoodsPrice());
+                    price.setActivityCode(activityTemp.getCode());
+                    price.setStatus(1);
+                    price.setGoodsId(item.getGoodsId());
+                    price.setType(1);
+                    price.setCreateTime(DateUtils.getNowTime());
+                    price.setUpdateTime(DateUtils.getNowTime());
+                    iActivityGoodsPriceService.save(price);
+                }
+            });
         }
         return true;
     }

+ 0 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/distribution/domain/DistributionActivityTemplateGoods.java

@@ -32,8 +32,6 @@ private static final long serialVersionUID=1L;
     private Long distributionTempId;
     /** 商品ID */
     private Long goodsId;
-    /** 商品活动价格 */
-    private BigDecimal goodsPrice;
     /** 佣金上限 */
     private BigDecimal profitMax;
     /** 状态:1有效,0无效 */