Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

dongxin 11 месяцев назад
Родитель
Сommit
3517b6b290

+ 0 - 5
linkwe-api/src/main/java/com/linkwechat/controller/WeActivityController.java

@@ -2,12 +2,8 @@ package com.linkwechat.controller;
 
 import com.linkwechat.common.core.controller.BaseController;
 import com.linkwechat.common.core.domain.AjaxResult;
-import com.linkwechat.common.core.page.TableDataInfo;
-import com.linkwechat.domain.WeActivity;
 import com.linkwechat.domain.activity.query.WeActivityAddQuery;
 import com.linkwechat.domain.activity.query.WeActivityEditQuery;
-import com.linkwechat.domain.activity.query.WeActivityListQuery;
-import com.linkwechat.domain.activity.vo.WeActivityListVo;
 import com.linkwechat.service.IWeActivityService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -16,7 +12,6 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.util.List;
 
 /**
  * @author quchen

+ 8 - 2
linkwe-api/src/main/java/com/linkwechat/controller/WeSopBaseController.java

@@ -26,37 +26,43 @@ public class WeSopBaseController extends BaseController {
     private IWeSopBaseService weSopBaseService;
 
     @PostMapping(value = "addSop")
-    @ApiOperation(value = "新增活动", httpMethod = "POST")
+    @ApiOperation(value = "新增sop", httpMethod = "POST")
     public AjaxResult addSop(@RequestBody WeSopAddQueryVo weSopAddQueryVo) {
         return AjaxResult.success(weSopBaseService.addSop(weSopAddQueryVo));
     }
 
     @PostMapping(value = "updateSop")
+    @ApiOperation(value = "修改sop", httpMethod = "POST")
     public AjaxResult updateSop(@RequestBody WeSopAddQueryVo weSopAddQueryVo) {
         return AjaxResult.success(weSopBaseService.updateSop(weSopAddQueryVo));
     }
 
     @GetMapping(value = "deleteSop")
+    @ApiOperation(value = "删除sop", httpMethod = "GET")
     public AjaxResult deleteSop(@RequestParam("id") String id) {
         return weSopBaseService.deleteSop(id);
     }
 
     @GetMapping(value = "disableStatus")
+    @ApiOperation(value = "启用禁用sop", httpMethod = "GET")
     public AjaxResult disableStatus(@RequestParam("id") String id) {
         return weSopBaseService.disableStatus(id);
     }
 
     @GetMapping(value = "getSop")
+    @ApiOperation(value = "获取sop", httpMethod = "GET")
     public AjaxResult getSop(@RequestParam("id") String id) {
-        return AjaxResult.success(weSopBaseService.getById(id));
+        return AjaxResult.success(weSopBaseService.getSop(id));
     }
 
     @GetMapping(value = "copySop")
+    @ApiOperation(value = "复制sop", httpMethod = "GET")
     public AjaxResult copySop(@RequestParam("id") String id) {
         return AjaxResult.success(weSopBaseService.copySop(id));
     }
 
     @GetMapping(value = "listSop")
+    @ApiOperation(value = "列表分页", httpMethod = "GET")
     public TableDataInfo listSop(WeSopQueryListVo weSopQueryListVo) {
         startPage();
         return getDataTable(weSopBaseService.listSop(weSopQueryListVo));

+ 3 - 0
linkwe-service/src/main/java/com/linkwechat/domain/activity/query/WeActivityEditQuery.java

@@ -23,6 +23,9 @@ public class WeActivityEditQuery {
     @ApiModelProperty("活动名称")
     private String actName;
 
+    @ApiModelProperty(value = "活动描述")
+    private String actDesc;
+
     @ApiModelProperty("活动类型 1-抽奖 2-转盘")
     private String actType;
 

+ 3 - 0
linkwe-service/src/main/java/com/linkwechat/domain/activity/vo/WeActivityVo.java

@@ -1,6 +1,7 @@
 package com.linkwechat.domain.activity.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.linkwechat.domain.WeActivityField;
 import com.linkwechat.domain.WePrize;
 import lombok.Data;
 
@@ -53,4 +54,6 @@ public class WeActivityVo {
 
     // 奖品列表
     private List<WePrize> prizeList;
+
+    private List<WeActivityField> fieldList;
 }

+ 8 - 7
linkwe-service/src/main/java/com/linkwechat/domain/sop/WeSopBase.java

@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModel;
 import lombok.*;
 
 import java.time.LocalDateTime;
+import java.util.List;
 
 @EqualsAndHashCode(callSuper = true)
 @ApiModel
@@ -17,7 +18,7 @@ public class WeSopBase extends BaseEntity {
      * 主键
      */
     @TableId(type = IdType.ASSIGN_ID)
-    private Long id;
+    private String id;
 
     /**
      * sop名称
@@ -64,12 +65,6 @@ public class WeSopBase extends BaseEntity {
      */
     private Integer relativeTime;
 
-    /**
-     * 绝对时间
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime absoluteTime;
-
     /**
      * 素材id
      */
@@ -80,4 +75,10 @@ public class WeSopBase extends BaseEntity {
      */
     @TableLogic
     private Integer delFlag;
+
+    /**
+     * 绝对时间
+     */
+    @TableField(exist = false)
+    private List<WeSopBaseTime> absoluteTimeList;
 }

+ 37 - 0
linkwe-service/src/main/java/com/linkwechat/domain/sop/WeSopBaseTime.java

@@ -0,0 +1,37 @@
+package com.linkwechat.domain.sop;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * @author quchen
+ * @date 2025/9/22 11:20
+ */
+
+
+@ApiModel
+@Data
+@TableName(value ="we_sop_base_time")
+@AllArgsConstructor
+@NoArgsConstructor
+public class WeSopBaseTime {
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    private String sopId;
+
+    private String absoluteTime;
+}

+ 4 - 2
linkwe-service/src/main/java/com/linkwechat/domain/sop/vo/WeSopAddQueryVo.java

@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.List;
 
 /**
  * @author quchen
@@ -16,7 +18,7 @@ public class WeSopAddQueryVo {
     /**
      * 主键
      */
-    private Long id;
+    private String id;
 
     /**
      * sop名称
@@ -75,7 +77,7 @@ public class WeSopAddQueryVo {
      * 绝对时间
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private LocalDateTime absoluteTime;
+    private List<String> absoluteTime;
 
     /**
      * 素材id

+ 9 - 0
linkwe-service/src/main/java/com/linkwechat/mapper/WeSopBaseTimeMapper.java

@@ -0,0 +1,9 @@
+package com.linkwechat.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.linkwechat.domain.sop.WeSopBaseTime;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface WeSopBaseTimeMapper extends BaseMapper<WeSopBaseTime> {
+}

+ 2 - 0
linkwe-service/src/main/java/com/linkwechat/service/IWeSopBaseService.java

@@ -18,6 +18,8 @@ public interface IWeSopBaseService extends IService<WeSopBase> {
 
     AjaxResult disableStatus(String id);
 
+    AjaxResult getSop(String id);
+
     WeSopBase copySop(String id);
 
     List<WeSopListsVo> listSop(WeSopQueryListVo weSopQueryListVo);

+ 7 - 0
linkwe-service/src/main/java/com/linkwechat/service/IWeSopBaseTimeService.java

@@ -0,0 +1,7 @@
+package com.linkwechat.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.linkwechat.domain.sop.WeSopBaseTime;
+
+public interface IWeSopBaseTimeService extends IService<WeSopBaseTime> {
+}

+ 44 - 0
linkwe-service/src/main/java/com/linkwechat/service/impl/IWeSopBaseServiceImpl.java

@@ -1,20 +1,25 @@
 package com.linkwechat.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.linkwechat.common.core.domain.AjaxResult;
 import com.linkwechat.common.exception.wecom.WeComException;
 import com.linkwechat.common.utils.bean.BeanUtils;
 import com.linkwechat.domain.sop.WeSopBase;
+import com.linkwechat.domain.sop.WeSopBaseTime;
 import com.linkwechat.domain.sop.vo.WeSopAddQueryVo;
 import com.linkwechat.domain.sop.vo.WeSopListsVo;
 import com.linkwechat.domain.sop.vo.WeSopQueryListVo;
 import com.linkwechat.mapper.WeSopBaseMapper;
 import com.linkwechat.service.IWeSopBaseService;
+import com.linkwechat.service.IWeSopBaseTimeService;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -27,12 +32,23 @@ public class IWeSopBaseServiceImpl extends ServiceImpl<WeSopBaseMapper, WeSopBas
     @Resource
     private IWeSopBaseService weSopBaseService;
 
+    @Resource
+    private IWeSopBaseTimeService weSopBaseTimeService;
+
     @Override
     @Transactional
     public WeSopBase addSop(WeSopAddQueryVo weSopAddQueryVo) {
         WeSopBase weSopBase = new WeSopBase();
         BeanUtil.copyProperties(weSopAddQueryVo,weSopBase);
         this.save(weSopBase);
+        if (weSopAddQueryVo.getTimeType() == 2) {
+            for (String time : weSopAddQueryVo.getAbsoluteTime()) {
+                WeSopBaseTime weSopBaseTime = new WeSopBaseTime();
+                    weSopBaseTime.setSopId(weSopBase.getId());
+                    weSopBaseTime.setAbsoluteTime(time);
+                    weSopBaseTimeService.save(weSopBaseTime);
+            }
+        }
         return weSopBase;
     }
 
@@ -45,6 +61,15 @@ public class IWeSopBaseServiceImpl extends ServiceImpl<WeSopBaseMapper, WeSopBas
         }
         BeanUtils.copyProperties(weSopAddQueryVo,weSopBase);
         this.updateById(weSopBase);
+        if (weSopAddQueryVo.getTimeType() == 2) {
+            weSopBaseTimeService.remove(new LambdaQueryWrapper<WeSopBaseTime>().eq(WeSopBaseTime::getSopId,weSopBase.getId()));
+            for (String time : weSopAddQueryVo.getAbsoluteTime()) {
+                WeSopBaseTime weSopBaseTime = new WeSopBaseTime();
+                weSopBaseTime.setSopId(weSopBase.getId());
+                weSopBaseTime.setAbsoluteTime(time);
+                weSopBaseTimeService.save(weSopBaseTime);
+            }
+        }
         return weSopBase;
     }
 
@@ -56,6 +81,7 @@ public class IWeSopBaseServiceImpl extends ServiceImpl<WeSopBaseMapper, WeSopBas
         }
         weSopBase.setDelFlag(1);
         this.removeById(weSopBase);
+        weSopBaseTimeService.remove(new LambdaQueryWrapper<WeSopBaseTime>().eq(WeSopBaseTime::getSopId,id));
         return AjaxResult.success("删除成功");
     }
 
@@ -70,6 +96,17 @@ public class IWeSopBaseServiceImpl extends ServiceImpl<WeSopBaseMapper, WeSopBas
         return AjaxResult.success(weSopBase.getSopStatus() == 1 ? "启用成功" : "禁用成功");
     }
 
+    @Override
+    public AjaxResult getSop(String id) {
+        WeSopBase weSopBase = weSopBaseService.getById(id);
+        if (weSopBase == null) {
+            throw new WeComException("SOP不存在");
+        }
+        List<WeSopBaseTime> weSopBaseTimes = weSopBaseTimeService.list(new LambdaQueryWrapper<WeSopBaseTime>().eq(WeSopBaseTime::getSopId,id));
+        weSopBase.setAbsoluteTimeList(weSopBaseTimes);
+        return AjaxResult.success(weSopBase);
+    }
+
     @Override
     public WeSopBase copySop(String id) {
         WeSopBase weSopBase = weSopBaseService.getById(id);
@@ -81,6 +118,13 @@ public class IWeSopBaseServiceImpl extends ServiceImpl<WeSopBaseMapper, WeSopBas
         weSopBaseCopy.setId(null);
         weSopBaseCopy.setSopStatus(2);
         weSopBaseService.save(weSopBaseCopy);
+        List<WeSopBaseTime> weSopBaseTimes = weSopBaseTimeService.list(new LambdaQueryWrapper<WeSopBaseTime>().eq(WeSopBaseTime::getSopId,id));
+        for (WeSopBaseTime weSopBaseTime : weSopBaseTimes) {
+            weSopBaseTime.setId(null);
+            weSopBaseTime.setSopId(weSopBaseCopy.getId());
+            weSopBaseTime.setAbsoluteTime(weSopBaseTime.getAbsoluteTime());
+            weSopBaseTimeService.save(weSopBaseTime);
+        }
         return weSopBaseCopy;
     }
 

+ 16 - 0
linkwe-service/src/main/java/com/linkwechat/service/impl/IWeSopBaseTimeServiceImpl.java

@@ -0,0 +1,16 @@
+package com.linkwechat.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.linkwechat.domain.sop.WeSopBaseTime;
+import com.linkwechat.mapper.WeSopBaseTimeMapper;
+import com.linkwechat.service.IWeSopBaseTimeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author quchen
+ * @date 2025/9/22 11:28
+ */
+
+@Service
+public class IWeSopBaseTimeServiceImpl extends ServiceImpl<WeSopBaseTimeMapper, WeSopBaseTime> implements IWeSopBaseTimeService {
+}

+ 13 - 4
linkwe-service/src/main/resources/mapper/wecom/WeActivityMapper.xml

@@ -16,6 +16,9 @@
         <collection property="prizeList" ofType="com.linkwechat.domain.WePrize"
                     select="selectPrizesByActId"
                     column="act_id"/>
+        <collection property="fieldList" ofType="com.linkwechat.domain.WeActivityField"
+                    select="selectFieldsByActId"
+                    column="act_id"/>
     </resultMap>
 
 <!--    <select id="selectFormRecordByActId" resultType="com.linkwechat.domain.activity.vo.FormRecordVo">-->
@@ -66,6 +69,15 @@
         from we_prize
         where act_id = #{actId}
     </select>
+    <select id="selectFieldsByActId" resultType="com.linkwechat.domain.WeActivityField">
+        select
+            id,
+            act_id as actId,
+            field_name as fieldName,
+            field_value as fieldValue
+        from we_activity_field
+        where act_id = #{actId}
+    </select>
 
     <resultMap id="ActivityWithPrizeList" type="com.linkwechat.domain.activity.vo.WeActivityListVo">
         <id column="act_id" property="actId"/>
@@ -92,6 +104,7 @@
         wa.act_name,
         wa.create_time,
         wa.act_type,
+        wa.act_desc,
         wa.act_start_time,
         wa.act_end_time,
         wa.act_status,
@@ -127,8 +140,4 @@
         where wa.act_id = #{actId}
           and wa.del_flag = 0
     </select>
-
-
-
-
 </mapper>