Browse Source

活动信息

pengcheng 1 month ago
parent
commit
2b8a46c61f

+ 13 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/clock/ActivityController.java

@@ -4,6 +4,8 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.ruoyi.clock.domain.bo.ActivityBo;
+import com.ruoyi.clock.domain.bo.ActivityStatusBo;
+import com.ruoyi.clock.domain.bo.EmployeeStatusBo;
 import com.ruoyi.clock.domain.vo.ActivityVo;
 import com.ruoyi.clock.domain.vo.ShopVo;
 import com.ruoyi.clock.service.IActivityService;
@@ -53,7 +55,6 @@ public class ActivityController extends BaseController {
     @SaCheckPermission("clock:activity:list")
     @GetMapping("/page")
     public TableDataInfo<ActivityVo> page(@Validated(QueryGroup.class) ActivityBo bo, PageQuery pageQuery) {
-
         TableDataInfo<ActivityVo> activityVoTableDataInfo = iActivityService.queryPageList(bo, pageQuery);
         if (CollUtil.isNotEmpty(activityVoTableDataInfo.getRows())){
             activityVoTableDataInfo.getRows().forEach(item -> {
@@ -118,6 +119,17 @@ public class ActivityController extends BaseController {
         return toAjax(iActivityService.deleteWithValidByIds(Arrays.asList(activityIds), true) ? 1 : 0);
     }
 
+    /**
+     * 状态修改
+     */
+    @ApiOperation("状态修改")
+    @Log(title = "活动状态修改", businessType = BusinessType.UPDATE)
+    @PostMapping("/changeStatus")
+    public R<Void> changeStatus(@RequestBody ActivityStatusBo bo) {
+        return toAjax(iActivityService.updateStatus(bo));
+    }
+
+
     /**
      * 导出活动信息列表
      */

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

@@ -68,7 +68,7 @@ public class Activity extends BaseEntity {
     /**
      * 活动状态 0正常 1停用
      */
-    private Integer status;
+    private String status;
     /**
      * 删除标志(0代表存在 2代表删除)
      */

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

@@ -15,6 +15,7 @@ import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.domain.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * 活动信息业务对象 tb_activity
@@ -57,6 +58,8 @@ public class ActivityBo extends BaseEntity {
      */
     @ApiModelProperty(value = "开始日期", required = true)
     @NotNull(message = "开始日期不能为空", groups = { AddGroup.class, EditGroup.class })
+    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date startDate;
 
     /**
@@ -64,6 +67,8 @@ public class ActivityBo extends BaseEntity {
      */
     @ApiModelProperty(value = "结束日期", required = true)
     @NotNull(message = "结束日期不能为空", groups = { AddGroup.class, EditGroup.class })
+    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date endDate;
 
     /**
@@ -73,6 +78,10 @@ public class ActivityBo extends BaseEntity {
     // @NotBlank(message = "活动图片不能为空", groups = { AddGroup.class, EditGroup.class })
     private List<String> image;
 
+
+    @ApiModelProperty(value = "产品信息", required = true)
+    private List<ProductBo> productList;
+
     /**
      * 单位 0 盒 1 支
      */

+ 37 - 0
ruoyi-system/src/main/java/com/ruoyi/clock/domain/bo/ActivityStatusBo.java

@@ -0,0 +1,37 @@
+package com.ruoyi.clock.domain.bo;
+
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 店员信息业务对象 tb_employee
+ *
+ * @author pengc
+ * @date 2026-03-04
+ */
+
+@Data
+@ApiModel("活动信息业务对象")
+public class ActivityStatusBo {
+
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "活动id", required = true)
+    @NotNull(message = "活动id不能为空")
+    private Long activityId;
+
+    /**
+     * 帐号状态(0正常 1停用)
+     */
+    @ApiModelProperty(value = "帐号状态(0正常 1停用)", required = true)
+    @NotBlank(message = "帐号状态(0正常 1停用)不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String status;
+
+}

+ 19 - 0
ruoyi-system/src/main/java/com/ruoyi/clock/domain/vo/ActivityVo.java

@@ -19,8 +19,11 @@ import com.ruoyi.common.utils.spring.SpringUtils;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
@@ -60,11 +63,16 @@ public class ActivityVo extends BaseEntity {
     @ApiModelProperty(value = "代理商信息", required = true)
     private List<AgentVo> agentList;
 
+    @ExcelProperty(value = "代理商名称")
+    private String agentName;
+
     /**
      * 开始日期
      */
     @ExcelProperty(value = "开始日期")
     @ApiModelProperty("开始日期")
+    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date startDate;
 
     /**
@@ -72,11 +80,16 @@ public class ActivityVo extends BaseEntity {
      */
     @ExcelProperty(value = "结束日期")
     @ApiModelProperty("结束日期")
+    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date endDate;
 
     @ApiModelProperty(value = "代理商信息", required = true)
     private List<ProductVo> productList;
 
+    @ExcelProperty(value = "产品信息")
+    private String productName;
+
     /**
      * 活动图片
      */
@@ -119,6 +132,9 @@ public class ActivityVo extends BaseEntity {
             List<AgentVo> agentVoList = activityAgentService.queryAgentList(this.activityId);
             if (ObjectUtil.isNotEmpty(agentVoList)){
                 this.agentList = agentVoList;
+                this.agentName = agentList.stream()
+                    .map(AgentVo::getAgentName)
+                    .collect(Collectors.joining(","));
             }
         }
         return this.agentList;
@@ -130,6 +146,9 @@ public class ActivityVo extends BaseEntity {
             List<ProductVo> productVoList = activityProductService.selectProductList(this.activityId);
             if (ObjectUtil.isNotEmpty(productVoList)){
                 this.productList = productVoList;
+                this.productName = productList.stream()
+                    .map(ProductVo::getProductName)
+                    .collect(Collectors.joining(","));
             }
         }
         return this.productList;

+ 3 - 0
ruoyi-system/src/main/java/com/ruoyi/clock/service/IActivityAgentService.java

@@ -1,6 +1,7 @@
 package com.ruoyi.clock.service;
 
 import com.ruoyi.clock.domain.ActivityAgent;
+import com.ruoyi.clock.domain.bo.AgentBo;
 import com.ruoyi.clock.domain.vo.ActivityAgentVo;
 import com.ruoyi.clock.domain.bo.ActivityAgentBo;
 import com.ruoyi.clock.domain.vo.AgentVo;
@@ -83,4 +84,6 @@ public interface IActivityAgentService {
      */
     List<AgentVo> queryAgentList(Long activityId);
 
+    Boolean insertByBoList(List<AgentBo> boList, Long activityId);
+
 }

+ 3 - 0
ruoyi-system/src/main/java/com/ruoyi/clock/service/IActivityProductService.java

@@ -1,6 +1,8 @@
 package com.ruoyi.clock.service;
 
 import com.ruoyi.clock.domain.ActivityProduct;
+import com.ruoyi.clock.domain.bo.AgentBo;
+import com.ruoyi.clock.domain.bo.ProductBo;
 import com.ruoyi.clock.domain.vo.ActivityProductVo;
 import com.ruoyi.clock.domain.bo.ActivityProductBo;
 import com.ruoyi.clock.domain.vo.AgentVo;
@@ -84,5 +86,6 @@ public interface IActivityProductService {
      */
     List<ProductVo> selectProductList(Long activityId);
 
+    Boolean insertByBoList(List<ProductBo> boList, Long activityId);
 
 }

+ 11 - 0
ruoyi-system/src/main/java/com/ruoyi/clock/service/IActivityService.java

@@ -1,6 +1,8 @@
 package com.ruoyi.clock.service;
 
 import com.ruoyi.clock.domain.Activity;
+import com.ruoyi.clock.domain.bo.ActivityStatusBo;
+import com.ruoyi.clock.domain.bo.EmployeeStatusBo;
 import com.ruoyi.clock.domain.vo.ActivityVo;
 import com.ruoyi.clock.domain.bo.ActivityBo;
 import com.ruoyi.common.core.page.TableDataInfo;
@@ -74,4 +76,13 @@ public interface IActivityService {
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
+    /**
+     * 修改活动信息状态
+     *
+     * @param bo 活动信息
+     * @return 状态
+     */
+    Boolean updateStatus(ActivityStatusBo bo);
+
+
 }

+ 14 - 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.ruoyi.clock.domain.bo.AgentBo;
 import com.ruoyi.clock.domain.vo.AgentVo;
 import com.ruoyi.clock.exception.ActivityAgentExceptionEnum;
 import com.ruoyi.common.exception.ServiceException;
@@ -19,6 +20,7 @@ import com.ruoyi.clock.domain.ActivityAgent;
 import com.ruoyi.clock.mapper.ActivityAgentMapper;
 import com.ruoyi.clock.service.IActivityAgentService;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Collection;
@@ -152,4 +154,16 @@ public class ActivityAgentServiceImpl implements IActivityAgentService {
     public List<AgentVo> queryAgentList(Long activityId) {
         return baseMapper.selectAgentList(activityId);
     }
+
+    @Override
+    public Boolean insertByBoList(List<AgentBo> boList, Long activityId) {
+        List<ActivityAgent> list = new ArrayList<>();
+        for (AgentBo bo : boList) {
+            ActivityAgent activityAgent = new ActivityAgent();
+            activityAgent.setAgentId(bo.getAgentId());
+            activityAgent.setActivityId(activityId);
+            list.add(activityAgent);
+        }
+        return baseMapper.insertBatch(list);
+    }
 }

+ 23 - 0
ruoyi-system/src/main/java/com/ruoyi/clock/service/impl/ActivityProductServiceImpl.java

@@ -2,8 +2,13 @@ package com.ruoyi.clock.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.ruoyi.clock.domain.ActivityAgent;
+import com.ruoyi.clock.domain.Product;
+import com.ruoyi.clock.domain.bo.AgentBo;
+import com.ruoyi.clock.domain.bo.ProductBo;
 import com.ruoyi.clock.domain.vo.ProductVo;
 import com.ruoyi.clock.exception.ActivityProductExceptionEnum;
+import com.ruoyi.clock.mapper.ProductMapper;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.BeanCopyUtils;
 import com.ruoyi.common.utils.StringUtils;
@@ -20,6 +25,7 @@ import com.ruoyi.clock.domain.ActivityProduct;
 import com.ruoyi.clock.mapper.ActivityProductMapper;
 import com.ruoyi.clock.service.IActivityProductService;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Collection;
@@ -36,6 +42,8 @@ public class ActivityProductServiceImpl implements IActivityProductService {
 
     private final ActivityProductMapper baseMapper;
 
+    private final ProductMapper productMapper;
+
     /**
      * 查询活动与产品关联分页
      *
@@ -153,4 +161,19 @@ public class ActivityProductServiceImpl implements IActivityProductService {
     public List<ProductVo> selectProductList(Long activityId) {
         return baseMapper.selectProductList(activityId);
     }
+
+    @Override
+    public Boolean insertByBoList(List<ProductBo> boList, Long activityId) {
+        List<ActivityProduct> list = new ArrayList<>();
+        for (ProductBo bo : boList) {
+            Product product = new Product();
+            product.setProductId(bo.getProductId());
+            productMapper.insert(product);
+            ActivityProduct activityProduct = new ActivityProduct();
+            activityProduct.setProductId(product.getProductId());
+            activityProduct.setActivityId(activityId);
+            list.add(activityProduct);
+        }
+        return baseMapper.insertBatch(list);
+    }
 }

+ 23 - 0
ruoyi-system/src/main/java/com/ruoyi/clock/service/impl/ActivityServiceImpl.java

@@ -2,7 +2,13 @@ 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.exception.ActivityExceptionEnum;
+import com.ruoyi.clock.service.IActivityAgentService;
+import com.ruoyi.clock.service.IActivityProductService;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.BeanCopyUtils;
 import com.ruoyi.common.utils.StringUtils;
@@ -35,6 +41,10 @@ public class ActivityServiceImpl implements IActivityService {
 
     private final ActivityMapper baseMapper;
 
+    private final IActivityAgentService activityAgentService;
+
+    private final IActivityProductService activityProductService;
+
     /**
      * 查询活动信息分页
      *
@@ -114,6 +124,12 @@ public class ActivityServiceImpl implements IActivityService {
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
             bo.setActivityId(add.getActivityId());
+            //新增代理商信息
+            List<AgentBo> agentList = bo.getAgentList();
+            activityAgentService.insertByBoList(agentList, add.getActivityId());
+            //新增产品信息
+            List<ProductBo> productList = bo.getProductList();
+            activityProductService.insertByBoList(productList, add.getActivityId());
         }
         return flag;
     }
@@ -155,4 +171,11 @@ public class ActivityServiceImpl implements IActivityService {
         return baseMapper.deleteBatchIds(ids) > 0;
     }
 
+
+    @Override
+    public Boolean updateStatus(ActivityStatusBo bo) {
+        Activity activity = baseMapper.selectById(bo.getActivityId());
+        activity.setStatus(bo.getStatus());
+        return baseMapper.updateById(activity) > 0;
+    }
 }