yangdamao 2 years ago
parent
commit
88a934e4f2

+ 17 - 32
zhongzheng-admin/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTempController.java

@@ -1,38 +1,33 @@
 package com.zhongzheng.controller.distribution;
 
-import java.util.List;
-import java.util.Arrays;
-
-import lombok.RequiredArgsConstructor;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
-import com.zhongzheng.common.enums.BusinessType;
-import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempEditBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempQueryBo;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityTempService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityTempVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
 
 /**
- * 【请填写功能名称】Controller
+ * 【分销模板控制器】Controller
  * 
  * @author ruoyi
  * @date 2023-03-06
  */
-@Api(value = "【请填写功能名称】控制器", tags = {"【请填写功能名称】管理"})
+@Api("分销模板控制器")
 @RequiredArgsConstructor(onConstructor_ = @Autowired)
 @RestController
-@RequestMapping("/system/temp")
+@RequestMapping("/distribution/temp")
 public class DistributionActivityTempController extends BaseController {
 
     private final IDistributionActivityTempService iDistributionActivityTempService;
@@ -40,8 +35,7 @@ public class DistributionActivityTempController extends BaseController {
     /**
      * 查询【请填写功能名称】列表
      */
-    @ApiOperation("查询【请填写功能名称】列表")
-    @PreAuthorize("@ss.hasPermi('system:temp:list')")
+    @ApiOperation("查询分销活动模板列表")
     @GetMapping("/list")
     public TableDataInfo<DistributionActivityTempVo> list(DistributionActivityTempQueryBo bo) {
         startPage();
@@ -53,8 +47,6 @@ public class DistributionActivityTempController extends BaseController {
      * 导出【请填写功能名称】列表
      */
     @ApiOperation("导出【请填写功能名称】列表")
-    @PreAuthorize("@ss.hasPermi('system:temp:export')")
-    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
     public AjaxResult<DistributionActivityTempVo> export(DistributionActivityTempQueryBo bo) {
         List<DistributionActivityTempVo> list = iDistributionActivityTempService.queryList(bo);
@@ -66,7 +58,6 @@ public class DistributionActivityTempController extends BaseController {
      * 获取【请填写功能名称】详细信息
      */
     @ApiOperation("获取【请填写功能名称】详细信息")
-    @PreAuthorize("@ss.hasPermi('system:temp:query')")
     @GetMapping("/{id}")
     public AjaxResult<DistributionActivityTempVo> getInfo(@PathVariable("id" ) Long id) {
         return AjaxResult.success(iDistributionActivityTempService.queryById(id));
@@ -76,9 +67,7 @@ public class DistributionActivityTempController extends BaseController {
      * 新增【请填写功能名称】
      */
     @ApiOperation("新增【请填写功能名称】")
-    @PreAuthorize("@ss.hasPermi('system:temp:add')")
-    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
-    @PostMapping()
+    @PostMapping("/save")
     public AjaxResult<Void> add(@RequestBody DistributionActivityTempAddBo bo) {
         return toAjax(iDistributionActivityTempService.insertByAddBo(bo) ? 1 : 0);
     }
@@ -87,8 +76,6 @@ public class DistributionActivityTempController extends BaseController {
      * 修改【请填写功能名称】
      */
     @ApiOperation("修改【请填写功能名称】")
-    @PreAuthorize("@ss.hasPermi('system:temp:edit')")
-    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
     @PutMapping()
     public AjaxResult<Void> edit(@RequestBody DistributionActivityTempEditBo bo) {
         return toAjax(iDistributionActivityTempService.updateByEditBo(bo) ? 1 : 0);
@@ -98,8 +85,6 @@ public class DistributionActivityTempController extends BaseController {
      * 删除【请填写功能名称】
      */
     @ApiOperation("删除【请填写功能名称】")
-    @PreAuthorize("@ss.hasPermi('system:temp:remove')")
-    @Log(title = "【请填写功能名称】" , businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public AjaxResult<Void> remove(@PathVariable Long[] ids) {
         return toAjax(iDistributionActivityTempService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);

+ 6 - 9
zhongzheng-framework/src/main/java/com/zhongzheng/framework/mybatisplus/CustomTenantLineHandler.java

@@ -5,22 +5,15 @@ import cn.hutool.http.HttpStatus;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
 import com.zhongzheng.common.core.domain.AjaxResult;
-import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.ServletUtils;
 import lombok.SneakyThrows;
 import net.sf.jsqlparser.expression.Expression;
 import net.sf.jsqlparser.expression.LongValue;
-import org.apache.commons.compress.utils.Lists;
-
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.xml.soap.MimeHeaders;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 多租户处理插件
@@ -55,6 +48,10 @@ public class CustomTenantLineHandler implements TenantLineHandler {
         add("sys_logininfor");
         add("sys_old_org");
         add("top_sys_tenant_register");
+        add("distribution_activity_temp");
+        add("distribution_activity_temp_goods");
+        add("distribution_activity_temp_poster");
+        add("distribution_activity_temp_relation");
     }};
 
     /**

+ 7 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/bo/DistributionActivityTempAddBo.java

@@ -2,10 +2,9 @@ package com.zhongzheng.modules.distribution.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
-import java.util.Date;
 
+import java.util.List;
 
 
 /**
@@ -57,4 +56,10 @@ public class DistributionActivityTempAddBo {
     /** 修改时间 */
     @ApiModelProperty("修改时间")
     private Long updateTime;
+    @ApiModelProperty("是否所有机构:1是,0否")
+    private Integer isAllOrg;
+    @ApiModelProperty("机构ID集合")
+    private List<Long> tenantIds;
+    @ApiModelProperty("商品ID集合")
+    private List<Long> goodsIds;
 }

+ 7 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/domain/DistributionActivityTempRelation.java

@@ -1,13 +1,14 @@
 package com.zhongzheng.modules.distribution.domain;
 
-import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
+
 import java.io.Serializable;
-import java.util.Date;
-import java.math.BigDecimal;
-import com.zhongzheng.common.annotation.Excel;
 
 /**
  * 【请填写功能名称】对象 distribution_activity_temp_relation
@@ -30,6 +31,8 @@ private static final long serialVersionUID=1L;
     private Long distributionTempId;
     /** 状态:1开启,0关闭 */
     private Integer status;
+    /** 商户ID */
+    private Long tenantId;
     /** 添加时间 */
     @TableField(fill = FieldFill.INSERT)
     private Long createTime;

+ 36 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityTempServiceImpl.java

@@ -3,16 +3,23 @@ package com.zhongzheng.modules.distribution.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.Page;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempAddBo;
+import com.zhongzheng.modules.distribution.bo.DistributionActivityTempEditBo;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityTempQueryBo;
 import com.zhongzheng.modules.distribution.domain.DistributionActivityTemp;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTempRelation;
 import com.zhongzheng.modules.distribution.mapper.DistributionActivityTempMapper;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityTempRelationService;
 import com.zhongzheng.modules.distribution.service.IDistributionActivityTempService;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityTempVo;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Collection;
 import java.util.List;
@@ -27,6 +34,8 @@ import java.util.stream.Collectors;
 @Service
 public class DistributionActivityTempServiceImpl extends ServiceImpl<DistributionActivityTempMapper, DistributionActivityTemp> implements IDistributionActivityTempService {
 
+    private IDistributionActivityTempRelationService iDistributionActivityTempRelationService;
+
     @Override
     public DistributionActivityTempVo queryById(Long id){
         DistributionActivityTemp db = this.baseMapper.selectById(id);
@@ -70,12 +79,38 @@ public class DistributionActivityTempServiceImpl extends ServiceImpl<Distributio
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean insertByAddBo(DistributionActivityTempAddBo bo) {
+        //活动模板基本信息
         DistributionActivityTemp add = BeanUtil.toBean(bo, DistributionActivityTemp.class);
         validEntityBeforeSave(add);
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
-        return this.save(add);
+        this.save(add);
+        //机构信息
+        if (ObjectUtils.isNotNull(bo.getIsAllOrg()) && bo.getIsAllOrg() == 1){
+            //发布所有机构
+            DistributionActivityTempRelation entity = new DistributionActivityTempRelation();
+            entity.setDistributionTempId(add.getId());
+            entity.setTenantId(0L);
+            entity.setCreateTime(DateUtils.getNowTime());
+            entity.setUpdateTime(DateUtils.getNowTime());
+            iDistributionActivityTempRelationService.save(entity);
+            return true;
+        }
+        if (CollectionUtils.isNotEmpty(bo.getTenantIds())){
+            List<DistributionActivityTempRelation> entitys = bo.getTenantIds().stream().map(id -> {
+                DistributionActivityTempRelation entity = new DistributionActivityTempRelation();
+                entity.setDistributionTempId(add.getId());
+                entity.setTenantId(id);
+                entity.setCreateTime(DateUtils.getNowTime());
+                entity.setUpdateTime(DateUtils.getNowTime());
+                return entity;
+            }).collect(Collectors.toList());
+            iDistributionActivityTempRelationService.saveBatch(entitys);
+        }
+
+        return true;
     }
 
     @Override