yangdamao 2 жил өмнө
parent
commit
99022bcd53
15 өөрчлөгдсөн 158 нэмэгдсэн , 41 устгасан
  1. 16 6
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTemplateController.java
  2. 1 1
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTemplateGoodsController.java
  3. 0 8
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTemplatePosterController.java
  4. 1 1
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTemplateRelationController.java
  5. 1 1
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/SysTenantServiceImpl.java
  6. 24 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionStatusEditBo.java
  7. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityGoods.java
  8. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityPoster.java
  9. 1 9
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityTemplatePosterService.java
  10. 12 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityTemplateService.java
  11. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityGoodsServiceImpl.java
  12. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityPosterServiceImpl.java
  13. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityServiceImpl.java
  14. 0 7
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityTemplatePosterServiceImpl.java
  15. 92 8
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityTemplateServiceImpl.java

+ 16 - 6
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTemplateController.java

@@ -7,6 +7,7 @@ import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplateAddBo;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplateEditBo;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplateQueryBo;
+import com.zhongzheng.modules.distribution.bo.DistributionStatusEditBo;
 import com.zhongzheng.modules.distribution.service.IDistributionActivityTemplateService;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityTemplateVo;
 import io.swagger.annotations.Api;
@@ -15,7 +16,6 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -82,11 +82,21 @@ public class DistributionActivityTemplateController extends BaseController {
     }
 
     /**
-     * 删除【请填写功能名称】
+     * 启用/禁用
      */
-    @ApiOperation("删除【请填写功能名称】")
-    @DeleteMapping("/{ids}")
-    public AjaxResult<Void> remove(@PathVariable Long[] ids) {
-        return toAjax(iDistributionActivityTemplateService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    @ApiOperation("启用/禁用")
+    @PostMapping("/update/status")
+    public AjaxResult<Void> updateStatus(@RequestBody DistributionStatusEditBo bo) {
+        return toAjax(iDistributionActivityTemplateService.updateStatus(bo) ? 1 : 0);
     }
+
+    /**
+     * 活动模板发布
+     */
+    @ApiOperation("活动模板发布")
+    @GetMapping("/publish/{templateId}")
+    public AjaxResult<Void> publishActivity(@PathVariable("templateId") Long templateId) {
+        return toAjax(iDistributionActivityTemplateService.publishActivity(templateId) ? 1 : 0);
+    }
+
 }

+ 1 - 1
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTemplateGoodsController.java

@@ -67,7 +67,7 @@ public class DistributionActivityTemplateGoodsController extends BaseController
      * 新增【请填写功能名称】
      */
     @ApiOperation("新增【请填写功能名称】")
-    @PostMapping()
+    @PostMapping("/save")
     public AjaxResult<Void> add(@RequestBody DistributionActivityTemplateGoodsAddBo bo) {
         return toAjax(iDistributionActivityTemplateGoodsService.insertByAddBo(bo) ? 1 : 0);
     }

+ 0 - 8
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTemplatePosterController.java

@@ -87,12 +87,4 @@ public class DistributionActivityTemplatePosterController extends BaseController
         return toAjax(iDistributionActivityTemplatePosterService.updateByEditBo(bo) ? 1 : 0);
     }
 
-    /**
-     * 删除【请填写功能名称】
-     */
-    @ApiOperation("删除【请填写功能名称】")
-    @DeleteMapping("/{posterTempIds}")
-    public AjaxResult<Void> remove(@PathVariable Long[] posterTempIds) {
-        return toAjax(iDistributionActivityTemplatePosterService.deleteWithValidByIds(Arrays.asList(posterTempIds), true) ? 1 : 0);
-    }
 }

+ 1 - 1
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTemplateRelationController.java

@@ -67,7 +67,7 @@ public class DistributionActivityTemplateRelationController extends BaseControll
      * 新增【请填写功能名称】
      */
     @ApiOperation("新增【请填写功能名称】")
-    @PostMapping()
+    @PostMapping("/save")
     public AjaxResult<Void> add(@RequestBody DistributionActivityTemplateRelationAddBo bo) {
         return toAjax(iDistributionActivityTemplateRelationService.insertByAddBo(bo) ? 1 : 0);
     }

+ 1 - 1
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/SysTenantServiceImpl.java

@@ -42,7 +42,7 @@ import java.util.stream.Collectors;
  * @date 2021-08-03
  */
 @Service
-//@DS("slave") //指定数据源
+@DS("slave") //指定数据源
 public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant> implements ISysTenantService {
 
     @Autowired

+ 24 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionStatusEditBo.java

@@ -0,0 +1,24 @@
+package com.zhongzheng.modules.distribution.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 分销状态修改BO
+ *
+ * @author ruoyi
+ * @date 2023-03-06
+ */
+@Data
+@ApiModel("分销状态修改BO")
+public class DistributionStatusEditBo {
+
+    /** 分销活动模板ID */
+    @ApiModelProperty("分销活动模板ID")
+    private Long distributionTemplateId;
+    /** 商品ID */
+    @ApiModelProperty("状态:1有效,-1无效")
+    private Integer status;
+}

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

@@ -50,4 +50,6 @@ private static final long serialVersionUID=1L;
     private BigDecimal profitTwo;
     /** 三级拥金 */
     private BigDecimal profitThree;
+    /** 机构ID */
+    private Long tenantId;
 }

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

@@ -45,4 +45,6 @@ private static final long serialVersionUID=1L;
     private Long updateTime;
     /** 备注 */
     private String remark;
+    /** 备注 */
+    private Long tenantId;
 }

+ 1 - 9
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityTemplatePosterService.java

@@ -2,12 +2,11 @@ package com.zhongzheng.modules.distribution.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplatePosterAddBo;
-import com.zhongzheng.modules.distribution.bo.distributionActivityTemplatePosterEditBo;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplatePosterQueryBo;
+import com.zhongzheng.modules.distribution.bo.distributionActivityTemplatePosterEditBo;
 import com.zhongzheng.modules.distribution.domain.DistributionActivityTemplatePoster;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityTemplatePosterVo;
 
-import java.util.Collection;
 import java.util.List;
 
 /**
@@ -42,11 +41,4 @@ public interface IDistributionActivityTemplatePosterService extends IService<Dis
 	 */
 	Boolean updateByEditBo(distributionActivityTemplatePosterEditBo bo);
 
-	/**
-	 * 校验并删除数据
-	 * @param ids 主键集合
-	 * @param isValid 是否校验,true-删除前校验,false-不校验
-	 * @return
-	 */
-	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 }

+ 12 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/IDistributionActivityTemplateService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplateAddBo;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplateEditBo;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplateQueryBo;
+import com.zhongzheng.modules.distribution.bo.DistributionStatusEditBo;
 import com.zhongzheng.modules.distribution.domain.DistributionActivityTemplate;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityTemplateVo;
 
@@ -50,4 +51,15 @@ public interface IDistributionActivityTemplateService extends IService<Distribut
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+	boolean updateStatus(DistributionStatusEditBo bo);
+
+	/**
+	 * 活动模板发布
+	 * @author change
+	 * @date 2023/3/18 10:30
+	 * @param templateId
+	 * @return boolean
+	 */
+    boolean publishActivity(Long templateId);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityGoodsServiceImpl.java

@@ -1,6 +1,7 @@
 package com.zhongzheng.modules.distribution.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -26,6 +27,7 @@ import java.util.stream.Collectors;
  * @date 2023-03-06
  */
 @Service
+@DS("slave")
 public class DistributionActivityGoodsServiceImpl extends ServiceImpl<DistributionActivityGoodsMapper, DistributionActivityGoods> implements IDistributionActivityGoodsService {
 
     @Override

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityPosterServiceImpl.java

@@ -2,6 +2,7 @@ package com.zhongzheng.modules.distribution.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -27,6 +28,7 @@ import java.util.stream.Collectors;
  * @date 2023-03-06
  */
 @Service
+@DS("slave")
 public class DistributionActivityPosterServiceImpl extends ServiceImpl<DistributionActivityPosterMapper, DistributionActivityPoster> implements IDistributionActivityPosterService {
 
     @Override

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

@@ -2,6 +2,7 @@ package com.zhongzheng.modules.distribution.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -26,6 +27,7 @@ import java.util.stream.Collectors;
  * @date 2023-03-06
  */
 @Service
+@DS("slave")
 public class DistributionActivityServiceImpl extends ServiceImpl<DistributionActivityMapper, DistributionActivity> implements IDistributionActivityService {
 
     @Override

+ 0 - 7
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityTemplatePosterServiceImpl.java

@@ -104,11 +104,4 @@ public class DistributionActivityTemplatePosterServiceImpl extends ServiceImpl<D
         //TODO 做一些数据校验,如唯一约束
     }
 
-    @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
-            //TODO 做一些业务上的校验,判断是否需要校验
-        }
-        return this.removeByIds(ids);
-    }
 }

+ 92 - 8
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityTemplateServiceImpl.java

@@ -13,16 +13,15 @@ import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplateAddBo;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplateEditBo;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplateQueryBo;
-import com.zhongzheng.modules.distribution.domain.DistributionActivityTemplate;
-import com.zhongzheng.modules.distribution.domain.DistributionActivityTemplateGoods;
-import com.zhongzheng.modules.distribution.domain.DistributionActivityTemplateRelation;
+import com.zhongzheng.modules.distribution.bo.DistributionStatusEditBo;
+import com.zhongzheng.modules.distribution.domain.*;
 import com.zhongzheng.modules.distribution.mapper.DistributionActivityTempMapper;
-import com.zhongzheng.modules.distribution.service.IDistributionActivityTemplateGoodsService;
-import com.zhongzheng.modules.distribution.service.IDistributionActivityTemplateRelationService;
-import com.zhongzheng.modules.distribution.service.IDistributionActivityTemplateService;
+import com.zhongzheng.modules.distribution.service.*;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityTemplateGoodsVo;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityTemplateVo;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityTenantVo;
+import com.zhongzheng.modules.goods.domain.Goods;
+import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.system.domain.SysTenant;
 import com.zhongzheng.modules.system.service.ISysTenantService;
 import com.zhongzheng.modules.top.goods.domain.TopGoods;
@@ -31,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -49,9 +49,19 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
     @Autowired
     private IDistributionActivityTemplateGoodsService iDistributionActivityTemplateGoodsService;
     @Autowired
+    private IDistributionActivityTemplatePosterService iDistributionActivityTemplatePosterService;
+    @Autowired
+    private IDistributionActivityService iDistributionActivityService;
+    @Autowired
+    private IDistributionActivityPosterService iDistributionActivityPosterService;
+    @Autowired
+    private IDistributionActivityGoodsService iDistributionActivityGoodsService;
+    @Autowired
     private ISysTenantService iSysTenantService;
     @Autowired
-    private ITopGoodsService iSysGoodsService;
+    private ITopGoodsService iTopGoodsService;
+    @Autowired
+    private IGoodsService iGoodsService;
 
     @Override
     public DistributionActivityTemplateVo queryById(Long id){
@@ -87,7 +97,7 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
         if (CollectionUtils.isNotEmpty(templateGoodsList)){
             List<DistributionActivityTemplateGoodsVo> templateGoodsVos = templateGoodsList.stream().map(item -> {
                 DistributionActivityTemplateGoodsVo goodsVo = BeanUtil.toBean(item, DistributionActivityTemplateGoodsVo.class);
-                TopGoods topGoods = iSysGoodsService.getById(goodsVo.getGoodsId());
+                TopGoods topGoods = iTopGoodsService.getById(goodsVo.getGoodsId());
                 goodsVo.setGoodsName(topGoods.getGoodsName());
                 goodsVo.setGoodsPrice(topGoods.getStandPrice());
                 return goodsVo;
@@ -221,4 +231,78 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
         }
         return this.removeByIds(ids);
     }
+
+    @Override
+    public boolean updateStatus(DistributionStatusEditBo bo) {
+        DistributionActivityTemplate template = getById(bo.getDistributionTemplateId());
+        if (ObjectUtils.isNull(template)){
+            throw new CustomException("活动模板吧存在,请检查!");
+        }
+        template.setStatus(bo.getStatus());
+        return updateById(template);
+    }
+
+    @Override
+    public boolean publishActivity(Long templateId) {
+        DistributionActivityTemplate template = getById(templateId);
+        if (ObjectUtils.isNull(template)){
+            throw new CustomException("模板不存在,请检查!");
+        }
+        //商品信息
+        List<DistributionActivityTemplateGoods> goodsList = iDistributionActivityTemplateGoodsService
+                .list(new LambdaQueryWrapper<DistributionActivityTemplateGoods>()
+                .eq(DistributionActivityTemplateGoods::getDistributionTempId, templateId));
+        if (CollectionUtils.isEmpty(goodsList)){
+            throw new CustomException("模板商品信息为空,请检查!");
+        }
+        //机构信息
+        List<DistributionActivityTemplateRelation> relationList = iDistributionActivityTemplateRelationService
+                .list(new LambdaQueryWrapper<DistributionActivityTemplateRelation>()
+                .eq(DistributionActivityTemplateRelation::getDistributionTempId, templateId)
+                .eq(DistributionActivityTemplateRelation::getStatus,1));
+        if (CollectionUtils.isEmpty(relationList)) {
+            throw new CustomException("指定机构信息为空,请检查!");
+        }
+        List<Long> tenantId = new ArrayList<>();
+        if (relationList.stream().anyMatch(item -> item.getTenantId() == 0L)){
+            //全部机构
+            List<SysTenant> list = iSysTenantService.list(new LambdaQueryWrapper<SysTenant>().eq(SysTenant::getStatus, 1));
+            tenantId = list.stream().map(SysTenant::getTenantId).collect(Collectors.toList());
+        }else {
+            tenantId = relationList.stream().map(DistributionActivityTemplateRelation::getTenantId).collect(Collectors.toList());
+        }
+
+        tenantId.forEach(id -> {
+             //同步活动信息
+            DistributionActivityTemplatePoster templatePoster = iDistributionActivityTemplatePosterService.getById(template.getPosterTempId());
+            DistributionActivityPoster poster = BeanUtil.toBean(templatePoster, DistributionActivityPoster.class);
+            poster.setUrl(templatePoster.getPosterUrl());
+            poster.setTenantId(id);
+            iDistributionActivityPosterService.save(poster);
+            DistributionActivity dailyActivity = BeanUtil.toBean(template, DistributionActivity.class);
+            dailyActivity.setPosterId(poster.getPosterId());
+            dailyActivity.setTempId(template.getId());
+            iDistributionActivityService.save(dailyActivity);
+            //商品
+            List<DistributionActivityGoods> activityGoodsList = new ArrayList<>();
+            goodsList.forEach(item -> {
+                TopGoods topGoods = iTopGoodsService.getById(item.getGoodsId());
+                Goods goods = iGoodsService.getOne(new LambdaQueryWrapper<Goods>()
+                        .eq(Goods::getCode, topGoods.getCode())
+                        .eq(Goods::getTenantId,id)
+                        .eq(Goods::getStatus, 1).last("limit 1"));
+                if (ObjectUtils.isNotNull(goods)){
+                    DistributionActivityGoods activityGoods = BeanUtil.toBean(item, DistributionActivityGoods.class);
+                    activityGoods.setId(null);
+                    activityGoods.setGoodsId(goods.getGoodsId());
+                    activityGoods.setTenantId(id);
+                    activityGoods.setDistributionId(dailyActivity.getDistributionId());
+                    activityGoodsList.add(activityGoods);
+                }
+            });
+            iDistributionActivityGoodsService.saveBatch(activityGoodsList);
+        });
+
+        return true;
+    }
 }