Browse Source

活动信息

pengcheng 1 month ago
parent
commit
ead7146c59

+ 1 - 4
ruoyi-system/src/main/java/com/ruoyi/clock/domain/ActivityProduct.java

@@ -26,10 +26,7 @@ public class ActivityProduct {
      */
     @TableId(value = "ad_id")
     private Long id;
-    /**
-     * 产品id
-     */
-    private Long productId;
+
     /**
      * 活动id
      */

+ 1 - 1
ruoyi-system/src/main/java/com/ruoyi/clock/domain/bo/ActivityBo.java

@@ -80,7 +80,7 @@ public class ActivityBo extends BaseEntity {
 
 
     @ApiModelProperty(value = "产品信息", required = true)
-    private List<ProductBo> productList;
+    private List<ActivityProductBo> productList;
 
     /**
      * 单位 0 盒 1 支

+ 0 - 7
ruoyi-system/src/main/java/com/ruoyi/clock/domain/bo/ActivityProductBo.java

@@ -27,13 +27,6 @@ public class ActivityProductBo extends BaseEntity {
     @ApiModelProperty(value = "主键idid", required = true)
     private Long id;
 
-    /**
-     * 产品id
-     */
-    @ApiModelProperty(value = "产品id", required = true)
-    @NotNull(message = "产品id不能为空", groups = { EditGroup.class })
-    private Long productId;
-
     /**
      * 活动id
      */

+ 0 - 6
ruoyi-system/src/main/java/com/ruoyi/clock/domain/bo/ProductBo.java

@@ -24,12 +24,6 @@ import com.ruoyi.common.core.domain.BaseEntity;
 @ApiModel("产品信息业务对象")
 public class ProductBo extends BaseEntity {
 
-    /**
-     * 产品id
-     */
-    @ApiModelProperty(value = "产品id", required = true)
-    @NotNull(message = "产品id不能为空", groups = { EditGroup.class })
-    private Long productId;
 
     /**
      * 产品名称

+ 4 - 4
ruoyi-system/src/main/java/com/ruoyi/clock/domain/vo/ActivityProductVo.java

@@ -24,11 +24,11 @@ public class ActivityProductVo {
     private static final long serialVersionUID = 1L;
 
     /**
-     * 产品id
+     * 主键id
      */
-    @ExcelProperty(value = "产品id")
-    @ApiModelProperty("产品id")
-    private Long productId;
+    @ExcelProperty(value = "主键id")
+    @ApiModelProperty("主键id")
+    private Long id;
 
     /**
      * 活动id

+ 12 - 4
ruoyi-system/src/main/java/com/ruoyi/clock/domain/vo/ProductVo.java

@@ -23,12 +23,20 @@ public class ProductVo {
 
     private static final long serialVersionUID = 1L;
 
+
+    /**
+     * 主键id
+     */
+    @ExcelProperty(value = "主键id")
+    @ApiModelProperty("主键id")
+    private Long id;
+
     /**
-     * 产品id
+     * 活动id
      */
-    @ExcelProperty(value = "产品id")
-    @ApiModelProperty("产品id")
-    private Long productId;
+    @ExcelProperty(value = "活动id")
+    @ApiModelProperty("活动id")
+    private Long activityId;
 
     /**
      * 产品名称

+ 3 - 1
ruoyi-system/src/main/java/com/ruoyi/clock/exception/ActivityExceptionEnum.java

@@ -10,7 +10,9 @@ import java.util.Objects;
 public enum ActivityExceptionEnum implements IIntegerEnum {
 
     // TODO 注意检查错误码,保证系统内唯一
-    Activity_IS_NOT_EXISTS(200001, "活动信息不存在"),
+    ACTIVITY_IS_NOT_EXISTS(200001, "活动信息不存在"),
+    ACTIVITY_AGENT_IS_EMPTY(200002, "活动参与代理商信息不能为空"),
+    ACTIVITY_PRODUCT_IS_EMPTY(200003, "活动产品信息不能为空"),
 
     ;
 

+ 1 - 1
ruoyi-system/src/main/java/com/ruoyi/clock/exception/ProductExceptionEnum.java

@@ -10,7 +10,7 @@ import java.util.Objects;
 public enum ProductExceptionEnum implements IIntegerEnum {
 
     // TODO 注意检查错误码,保证系统内唯一
-    Product_IS_NOT_EXISTS(200001, "产品信息不存在"),
+    PRODUCT_IS_NOT_EXISTS(200001, "产品信息不存在"),
 
     ;
 

+ 7 - 1
ruoyi-system/src/main/java/com/ruoyi/clock/service/IActivityProductService.java

@@ -86,6 +86,12 @@ public interface IActivityProductService {
      */
     List<ProductVo> selectProductList(Long activityId);
 
-    Boolean insertByBoList(List<ProductBo> boList, Long activityId);
+    /**
+     * 批量新增
+     * @param boList
+     * @param activityId
+     * @return
+     */
+    Boolean insertByBoList(List<ActivityProductBo> boList, Long activityId);
 
 }

+ 6 - 0
ruoyi-system/src/main/java/com/ruoyi/clock/service/impl/ActivityAgentServiceImpl.java

@@ -2,6 +2,7 @@ package com.ruoyi.clock.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.clock.domain.bo.AgentBo;
 import com.ruoyi.clock.domain.vo.AgentVo;
 import com.ruoyi.clock.exception.ActivityAgentExceptionEnum;
@@ -157,6 +158,11 @@ public class ActivityAgentServiceImpl implements IActivityAgentService {
 
     @Override
     public Boolean insertByBoList(List<AgentBo> boList, Long activityId) {
+
+        QueryWrapper<ActivityAgent> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ActivityAgent::getActivityId, activityId);
+        this.baseMapper.delete(queryWrapper);
+
         List<ActivityAgent> list = new ArrayList<>();
         for (AgentBo bo : boList) {
             ActivityAgent activityAgent = new ActivityAgent();

+ 10 - 7
ruoyi-system/src/main/java/com/ruoyi/clock/service/impl/ActivityProductServiceImpl.java

@@ -2,6 +2,7 @@ package com.ruoyi.clock.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.clock.domain.ActivityAgent;
 import com.ruoyi.clock.domain.Product;
 import com.ruoyi.clock.domain.bo.AgentBo;
@@ -115,7 +116,7 @@ public class ActivityProductServiceImpl implements IActivityProductService {
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
-            bo.setProductId(add.getProductId());
+            bo.setId(add.getId());
         }
         return flag;
     }
@@ -163,15 +164,17 @@ public class ActivityProductServiceImpl implements IActivityProductService {
     }
 
     @Override
-    public Boolean insertByBoList(List<ProductBo> boList, Long activityId) {
+    public Boolean insertByBoList(List<ActivityProductBo> boList, Long activityId) {
+
+        QueryWrapper<ActivityProduct> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ActivityProduct::getActivityId, activityId);
+        this.baseMapper.delete(queryWrapper);
+
         List<ActivityProduct> list = new ArrayList<>();
-        for (ProductBo bo : boList) {
-            Product product = new Product();
-            product.setProductId(bo.getProductId());
-            productMapper.insert(product);
+        for (ActivityProductBo bo : boList) {
             ActivityProduct activityProduct = new ActivityProduct();
-            activityProduct.setProductId(product.getProductId());
             activityProduct.setActivityId(activityId);
+            activityProduct.setProductName(bo.getProductName());
             list.add(activityProduct);
         }
         return baseMapper.insertBatch(list);

+ 18 - 9
ruoyi-system/src/main/java/com/ruoyi/clock/service/impl/ActivityServiceImpl.java

@@ -3,9 +3,7 @@ package com.ruoyi.clock.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.ruoyi.clock.domain.Employee;
-import com.ruoyi.clock.domain.bo.ActivityStatusBo;
-import com.ruoyi.clock.domain.bo.AgentBo;
-import com.ruoyi.clock.domain.bo.ProductBo;
+import com.ruoyi.clock.domain.bo.*;
 import com.ruoyi.clock.exception.ActivityExceptionEnum;
 import com.ruoyi.clock.service.IActivityAgentService;
 import com.ruoyi.clock.service.IActivityProductService;
@@ -19,7 +17,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
-import com.ruoyi.clock.domain.bo.ActivityBo;
 import com.ruoyi.clock.domain.vo.ActivityVo;
 import com.ruoyi.clock.domain.Activity;
 import com.ruoyi.clock.mapper.ActivityMapper;
@@ -106,7 +103,7 @@ public class ActivityServiceImpl implements IActivityService {
     public Activity loadById(Long activityId, Boolean tw){
         Activity info = this.baseMapper.selectById(activityId);
         if(ObjectUtil.isEmpty(info) && tw){
-            throw new ServiceException(ActivityExceptionEnum.Activity_IS_NOT_EXISTS);
+            throw new ServiceException(ActivityExceptionEnum.ACTIVITY_IS_NOT_EXISTS);
         }
         return info;
     }
@@ -128,7 +125,7 @@ public class ActivityServiceImpl implements IActivityService {
             List<AgentBo> agentList = bo.getAgentList();
             activityAgentService.insertByBoList(agentList, add.getActivityId());
             //新增产品信息
-            List<ProductBo> productList = bo.getProductList();
+            List<ActivityProductBo> productList = bo.getProductList();
             activityProductService.insertByBoList(productList, add.getActivityId());
         }
         return flag;
@@ -145,6 +142,13 @@ public class ActivityServiceImpl implements IActivityService {
         validEntityBeforeSave(bo);
         Activity activity = baseMapper.selectById(bo.getActivityId());
         Activity update = BeanCopyUtils.copy(bo, activity);
+
+        //新增代理商信息
+        List<AgentBo> agentList = bo.getAgentList();
+        activityAgentService.insertByBoList(agentList, bo.getActivityId());
+        //新增产品信息
+        List<ActivityProductBo> productList = bo.getProductList();
+        activityProductService.insertByBoList(productList, bo.getActivityId());
         return baseMapper.updateById(update) > 0;
     }
 
@@ -155,9 +159,14 @@ public class ActivityServiceImpl implements IActivityService {
      */
     private void validEntityBeforeSave(ActivityBo bo){
         //TODO 做一些数据校验,如唯一约束
-
-
-
+        List<AgentBo> agentList = bo.getAgentList();
+        if(ObjectUtil.isEmpty(agentList)){
+            throw new ServiceException(ActivityExceptionEnum.ACTIVITY_AGENT_IS_EMPTY);
+        }
+        List<ActivityProductBo> productList = bo.getProductList();
+        if(ObjectUtil.isEmpty(productList)){
+            throw new ServiceException(ActivityExceptionEnum.ACTIVITY_PRODUCT_IS_EMPTY);
+        }
     }
 
     /**

+ 4 - 4
ruoyi-system/src/main/java/com/ruoyi/clock/service/impl/ProductServiceImpl.java

@@ -2,6 +2,7 @@ package com.ruoyi.clock.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.ruoyi.clock.exception.ProductExceptionEnum;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.BeanCopyUtils;
 import com.ruoyi.common.utils.StringUtils;
@@ -17,7 +18,6 @@ import com.ruoyi.clock.domain.vo.ProductVo;
 import com.ruoyi.clock.domain.Product;
 import com.ruoyi.clock.mapper.ProductMapper;
 import com.ruoyi.clock.service.IProductService;
-import com.ruoyi.clock.exception.IProductExceptionEnum;
 
 import java.util.List;
 import java.util.Map;
@@ -88,7 +88,7 @@ public class ProductServiceImpl implements IProductService {
     public Product loadById(Long productId, Boolean tw){
         Product info = this.baseMapper.selectById(productId);
         if(ObjectUtil.isEmpty(info) && tw){
-            throw new ServiceException(ProductExceptionEnum.Product_IS_NOT_EXISTS);
+            throw new ServiceException(ProductExceptionEnum.PRODUCT_IS_NOT_EXISTS);
         }
         return info;
     }
@@ -118,7 +118,7 @@ public class ProductServiceImpl implements IProductService {
      */
     @Override
     public Boolean updateByBo(ProductBo bo) {
-        Product product = baseMapper.selectById(bo.getId());
+        Product product = baseMapper.selectById(bo.getProductId());
         Product update = BeanCopyUtils.copy(bo, product);
         validEntityBeforeSave(update);
         return baseMapper.updateById(update) > 0;
@@ -136,7 +136,7 @@ public class ProductServiceImpl implements IProductService {
     /**
      * 批量删除产品信息
      *
-     * @param productIds 需要删除的产品信息主键
+     * @param ids 需要删除的产品信息主键
      * @return 结果
      */
     @Override

+ 2 - 4
ruoyi-system/src/main/resources/mapper/clock/ActivityProductMapper.xml

@@ -5,16 +5,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 <mapper namespace="com.ruoyi.clock.mapper.ActivityProductMapper">
 
     <resultMap type="com.ruoyi.clock.domain.ActivityProduct" id="ActivityProductResult">
-        <result property="productId" column="product_id"/>
+        <result property="id" column="id"/>
         <result property="activityId" column="activity_id"/>
         <result property="productName" column="product_name"/>
     </resultMap>
     <select id="selectProductList" resultType="com.ruoyi.clock.domain.vo.ProductVo">
         select
-            a.product_id,
-            a.product_name
+            aa.*
         from tb_activity_product aa
-        left join tb_product a on aa.product_id = a.product_id
         where aa.activity_id = #{activityId}
     </select>
 </mapper>