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

Merge remote-tracking branch 'origin/master'

dongxin 1 год назад
Родитель
Сommit
6f741a0d24
18 измененных файлов с 501 добавлено и 44 удалено
  1. 50 0
      commons/src/main/java/com/jzg/commons/entity/dto/SysActivityRecordDto.java
  2. 22 3
      commons/src/main/java/com/jzg/commons/entity/po/SysActivity.java
  3. 37 0
      commons/src/main/java/com/jzg/commons/entity/po/SysActivityDept.java
  4. 73 0
      commons/src/main/java/com/jzg/commons/entity/po/SysActivityRecord.java
  5. 17 0
      commons/src/main/java/com/jzg/commons/entity/vo/CheckActivityDeptVo.java
  6. 30 0
      commons/src/main/java/com/jzg/commons/entity/vo/SysActivityRecordVo.java
  7. 43 2
      commons/src/main/java/com/jzg/commons/entity/vo/SysActivityVo.java
  8. 16 7
      tenant/organization/src/main/java/com/jzg/organization/controller/ActivityController.java
  9. 9 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysActivityDeptMapper.java
  10. 15 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysActivityRecordMapper.java
  11. 3 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysOrganizationMapper.java
  12. 7 0
      tenant/organization/src/main/java/com/jzg/organization/service/SysActivityDeptService.java
  13. 8 3
      tenant/organization/src/main/java/com/jzg/organization/service/SysActivityService.java
  14. 16 0
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysActivityDeptServiceImpl.java
  15. 110 29
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysActivityServiceImpl.java
  16. 2 0
      tenant/organization/src/main/resources/application.yml
  17. 40 0
      tenant/organization/src/main/resources/mapper/SysActivityRecordMapper.xml
  18. 3 0
      tenant/organization/src/main/resources/mapper/SysOrganizationMapper.xml

+ 50 - 0
commons/src/main/java/com/jzg/commons/entity/dto/SysActivityRecordDto.java

@@ -0,0 +1,50 @@
+package com.jzg.commons.entity.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author quchen
+ * @date 2025/2/12 9:53
+ */
+
+@Data
+public class SysActivityRecordDto {
+    @Schema(description = "主键")
+    private String id;
+
+    @Schema(description = "活动id")
+    private String activityId;
+
+    @Schema(description = "用户id")
+    private String userJzgInfoId;
+
+    @Schema(description = "奖品id")
+    private String awardId;
+
+    @Schema(description = "订单id")
+    private String orderId;
+
+    @Schema(description = "抽奖时间")
+    private String createTime;
+
+    @Schema(description = "业务员")
+    private String name;
+
+    @Schema(description = "手机号")
+    private String mobile;
+
+    @Schema(description = "机构id")
+    private String deptId;
+
+    @Schema(description = "机构名称")
+    private String deptName;
+
+    @Schema(description = "奖品名称")
+    private String awardName;
+
+    @Schema(description = "奖品类型 1 现金 2 增值服务")
+    private String awardType;
+}

+ 22 - 3
commons/src/main/java/com/jzg/commons/entity/po/SysActivity.java

@@ -1,10 +1,8 @@
 package com.jzg.commons.entity.po;
 
-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 com.fasterxml.jackson.annotation.JsonFormat;
 import com.jzg.commons.util.idgen.IdGenerate;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
@@ -14,7 +12,6 @@ import lombok.NoArgsConstructor;
 import java.io.Serializable;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.Date;
 import java.util.List;
 
 /**
@@ -75,6 +72,28 @@ public class SysActivity implements Serializable {
     @Schema(description = "奖项列表")
     private List<SysActivityAward> awardList;
 
+    @TableField(exist = false)
+    @Schema(description = "机构列表ids")
+    private List<String> deptIds;
+
+    @TableField(exist = false)
+    @Schema(description = "机构列表信息")
+    private List<DeptData> deptData;
+
+    @Data
+    @NoArgsConstructor
+    public static class DeptData implements Serializable {
+        private String id;
+
+        private String name;
+
+        public DeptData(String id, String name) {
+            this.id = id;
+            this.name = name;
+        }
+
+    }
+
 
     public SysActivity(String userId) {
         this.id = IdGenerate.nextId();

+ 37 - 0
commons/src/main/java/com/jzg/commons/entity/po/SysActivityDept.java

@@ -0,0 +1,37 @@
+package com.jzg.commons.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jzg.commons.util.idgen.IdGenerate;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author quchen
+ * @date 2025/2/11 10:17
+ */
+
+
+@TableName("sys_activity_dept")
+@Schema(description = "抽奖活动机构关联表")
+@AllArgsConstructor
+@Data
+public class SysActivityDept implements Serializable {
+    @Schema(description = "主键")
+    private String id;
+
+    @Schema(description = "活动id")
+    private String activityId;
+
+    @Schema(description = "机构id")
+    private String deptId;
+
+    @Schema(description = "活动是否有效 0 有效 1 无效")
+    private String isEffective;
+
+    public SysActivityDept() {
+        this.id = IdGenerate.nextId();
+    }
+}

+ 73 - 0
commons/src/main/java/com/jzg/commons/entity/po/SysActivityRecord.java

@@ -0,0 +1,73 @@
+package com.jzg.commons.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jzg.commons.util.idgen.IdGenerate;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * @author quchen
+ * @date 2025/2/12 9:25
+ */
+
+@Data
+@TableName("sys_activity_record")
+@Schema(description = "抽奖活动记录表")
+@AllArgsConstructor
+public class SysActivityRecord implements Serializable {
+
+    @Schema(description = "主键")
+    @TableId
+    private String id;
+
+    @Schema(description = "活动id")
+    @TableField(value = "activity_id")
+    private String activityId;
+
+    @Schema(description = "用户id")
+    @TableField(value = "user_jzg_info_id")
+    private String userJzgInfoId;
+
+    @Schema(description = "奖品id")
+    @TableField(value = "award_id")
+    private String awardId;
+
+    @Schema(description = "订单id")
+    @TableField(value = "order_id")
+    private String orderId;
+
+    @Schema(description = "抽奖时间")
+    @TableField(value = "create_time")
+    private String createTime;
+
+    @Schema(description = "业务员")
+    @TableField(exist = false)
+    private String name;
+
+    @Schema(description = "手机号")
+    @TableField(exist = false)
+    private String mobile;
+
+    @Schema(description = "机构id")
+    @TableField(exist = false)
+    private String deptId;
+
+    @Schema(description = "机构名称")
+    @TableField(exist = false)
+    private String deptName;
+
+
+
+    public SysActivityRecord() {
+       this.id = IdGenerate.nextId();
+       this.createTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+    }
+}

+ 17 - 0
commons/src/main/java/com/jzg/commons/entity/vo/CheckActivityDeptVo.java

@@ -0,0 +1,17 @@
+package com.jzg.commons.entity.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author quchen
+ * @date 2025/2/11 11:38
+ */
+
+@Data
+public class CheckActivityDeptVo {
+    private List<String> deptIds;
+
+    private String isJoin;
+}

+ 30 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SysActivityRecordVo.java

@@ -0,0 +1,30 @@
+package com.jzg.commons.entity.vo;
+
+import com.jzg.commons.core.base.PageRequest;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author quchen
+ * @date 2025/2/12 9:34
+ */
+
+@Data
+public class SysActivityRecordVo extends PageRequest {
+    @Schema(description = "业务员信息")
+    private String salesman;
+
+    @Schema(description = "抽奖开始时间")
+    private String createTimeStart;
+
+    @Schema(description = "抽奖结束时间")
+    private String createTimeEnd;
+
+    @Schema(description = "奖品名称")
+    private String awardName;
+
+    @Schema(description = "奖品类型 1 现金 2 增值服务")
+    private String awardType;
+
+
+}

+ 43 - 2
commons/src/main/java/com/jzg/commons/entity/vo/SysActivityVo.java

@@ -1,12 +1,12 @@
 package com.jzg.commons.entity.vo;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.jzg.commons.core.base.PageRequest;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -66,4 +66,45 @@ public class SysActivityVo extends PageRequest {
     @Schema(description = "是否删除 1 是 0 否")
     private String isDelete;
 
+    @Schema(description = "所属机构是否参与 1 是 0 否")
+    private Integer isJoin;
+
+    @Schema(description = "奖品列表")
+    private List<AwardList> awardList;
+
+    @Data
+    @NoArgsConstructor
+    public static class AwardList implements Serializable {
+        @Schema(description = "奖品id")
+        private String awardId;
+
+        @Schema(description = "奖品名称")
+        private String awardName;
+
+        @Schema(description = "奖品类型 1 现金 2 增值服务")
+        private String awardType;
+
+        @Schema(description = "奖品描述")
+        private String awardDesc;
+
+        @Schema(description = "奖品图片id")
+        private String awardImg;
+
+        @Schema(description = "奖品序号")
+        private String awardNum;
+
+        @Schema(description = "现金类型 1 固定金额 2 区间金额")
+        private String awardCashType;
+
+        @Schema(description = "固定现金额")
+        private BigDecimal awardFixedAmount;
+
+        @Schema(description = "最小现金额")
+        private BigDecimal awardMinAmount;
+
+        @Schema(description = "最大现金额")
+        private BigDecimal awardMaxAmount;
+
+    }
+
 }

+ 16 - 7
tenant/organization/src/main/java/com/jzg/organization/controller/ActivityController.java

@@ -4,7 +4,9 @@ package com.jzg.organization.controller;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.po.SysActivity;
-import com.jzg.commons.entity.vo.SysActivityAwardVo;
+import com.jzg.commons.entity.po.SysActivityRecord;
+import com.jzg.commons.entity.vo.CheckActivityDeptVo;
+import com.jzg.commons.entity.vo.SysActivityRecordVo;
 import com.jzg.commons.entity.vo.SysActivityVo;
 import com.jzg.commons.request.RequestSingleParam;
 import com.jzg.organization.service.SysActivityService;
@@ -32,18 +34,18 @@ public class ActivityController {
         return sysActivityService.addActivity(sysActivityVo);
     }
 
+    @Operation(summary = "校验活动机构接口", description = "校验活动机构接口")
+    @PostMapping(value = "/checkActivityDept")
+    public HttpResult checkActivityDept(@RequestBody CheckActivityDeptVo checkActivityDeptVo) {
+        return sysActivityService.checkActivityDept(checkActivityDeptVo);
+    }
+
     @Operation(summary = "修改抽奖活动接口", description = "修改抽奖活动接口")
     @PostMapping(value = "/updateActivity")
     public HttpResult updateActivity(@RequestBody SysActivityVo sysActivityVo) {
         return sysActivityService.updateActivity(sysActivityVo);
     }
 
-    @Operation(summary = "新增抽奖活动奖项接口", description = "新增抽奖活动奖项接口")
-    @PostMapping(value = "/addActivityAward")
-    public HttpResult addActivityAward(@RequestBody SysActivityAwardVo sysActivityAwardVo) {
-        return sysActivityService.addActivityAward(sysActivityAwardVo);
-    }
-
     @Operation(summary = "查询活动列表接口", description = "查询活动列表接口")
     @PostMapping(value = "/getActivityList")
     public HttpResult getActivityList(@RequestBody SysActivityVo sysActivityVo) {
@@ -79,5 +81,12 @@ public class ActivityController {
         return HttpResult.ok("活动结束成功");
     }
 
+    @Operation(summary = "获取抽奖记录接口", description = "获取抽奖记录接口")
+    @PostMapping(value = "/getActivityRecord")
+    public HttpResult getActivityRecord(@RequestBody SysActivityRecordVo sysActivityRecordVo) {
+        Page page = sysActivityRecordVo.getPage();
+        return HttpResult.ok(sysActivityService.getActivityRecord(page,sysActivityRecordVo));
+    }
+
 
 }

+ 9 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysActivityDeptMapper.java

@@ -0,0 +1,9 @@
+package com.jzg.organization.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.po.SysActivityDept;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SysActivityDeptMapper extends BaseMapper<SysActivityDept> {
+}

+ 15 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysActivityRecordMapper.java

@@ -0,0 +1,15 @@
+package com.jzg.organization.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jzg.commons.entity.dto.SysActivityRecordDto;
+import com.jzg.commons.entity.po.SysActivityRecord;
+import com.jzg.commons.entity.vo.SysActivityRecordVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface SysActivityRecordMapper extends BaseMapper<SysActivityRecord> {
+
+    Page<SysActivityRecordDto> getActivityRecord(Page page, @Param("sysActivityRecordVo") SysActivityRecordVo sysActivityRecordVo);
+}

+ 3 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysOrganizationMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.entity.dto.SysOrganizationParam;
 import com.jzg.commons.entity.po.SysOrganization;
+import com.jzg.commons.entity.po.SysUserJzgInfo;
 import com.jzg.commons.entity.vo.*;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -23,4 +24,6 @@ public interface SysOrganizationMapper extends BaseMapper<SysOrganization> {
     List<LeftSysOrganizationVo> selectLeftList(@Param("params") SysOrganizationParam sysOrganizationParam);
 
     Page<SysOrganizationUserLinkVo> getTeamUserPage(Page page, @Param("param")SysOrganizationUserLinkQueryVo sysOrganizationUserLinkQueryVo);
+
+    SysUserJzgInfo getOrganizationManager();
 }

+ 7 - 0
tenant/organization/src/main/java/com/jzg/organization/service/SysActivityDeptService.java

@@ -0,0 +1,7 @@
+package com.jzg.organization.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jzg.commons.entity.po.SysActivityDept;
+
+public interface SysActivityDeptService extends IService<SysActivityDept> {
+}

+ 8 - 3
tenant/organization/src/main/java/com/jzg/organization/service/SysActivityService.java

@@ -4,8 +4,11 @@ package com.jzg.organization.service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.dto.SysActivityRecordDto;
 import com.jzg.commons.entity.po.SysActivity;
-import com.jzg.commons.entity.vo.SysActivityAwardVo;
+import com.jzg.commons.entity.po.SysActivityRecord;
+import com.jzg.commons.entity.vo.CheckActivityDeptVo;
+import com.jzg.commons.entity.vo.SysActivityRecordVo;
 import com.jzg.commons.entity.vo.SysActivityVo;
 
 public interface SysActivityService extends IService<SysActivity> {
@@ -13,11 +16,13 @@ public interface SysActivityService extends IService<SysActivity> {
 
     HttpResult updateActivity(SysActivityVo sysActivityVo);
 
-    HttpResult addActivityAward(SysActivityAwardVo sysActivityAwardVo);
-
     HttpResult deleteActivity(String id);
 
     HttpResult getActivity(SysActivityVo sysActivityVo);
 
+    HttpResult checkActivityDept(CheckActivityDeptVo checkActivityDeptVo);
+
     Page<SysActivity> getActivityList(Page page,SysActivityVo sysActivityVo);
+
+    Page<SysActivityRecordDto> getActivityRecord(Page page, SysActivityRecordVo sysActivityRecordVo);
 }

+ 16 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysActivityDeptServiceImpl.java

@@ -0,0 +1,16 @@
+package com.jzg.organization.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.entity.po.SysActivityDept;
+import com.jzg.organization.mapper.SysActivityDeptMapper;
+import com.jzg.organization.service.SysActivityDeptService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author quchen
+ * @date 2025/2/11 10:21
+ */
+
+@Service
+public class SysActivityDeptServiceImpl extends ServiceImpl<SysActivityDeptMapper, SysActivityDept> implements SysActivityDeptService {
+}

+ 110 - 29
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysActivityServiceImpl.java

@@ -5,15 +5,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.dto.SysActivityRecordDto;
 import com.jzg.commons.entity.po.*;
-import com.jzg.commons.entity.vo.SysActivityAwardVo;
+import com.jzg.commons.entity.vo.CheckActivityDeptVo;
+import com.jzg.commons.entity.vo.SysActivityRecordVo;
 import com.jzg.commons.entity.vo.SysActivityVo;
 import com.jzg.commons.util.MinioUtils;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.organization.mapper.SysActivityAwardMapper;
 import com.jzg.organization.mapper.SysActivityMapper;
+import com.jzg.organization.mapper.SysActivityRecordMapper;
 import com.jzg.organization.mapper.SysUploadFilesMapper;
 import com.jzg.organization.service.SysActivityAwardService;
+import com.jzg.organization.service.SysActivityDeptService;
 import com.jzg.organization.service.SysActivityService;
 import com.jzg.organization.service.SysDeptService;
 import jakarta.annotation.Resource;
@@ -48,18 +52,40 @@ public class SysActivityServiceImpl extends ServiceImpl<SysActivityMapper, SysAc
     @Resource
     private SysActivityAwardMapper sysActivityAwardMapper;
 
+    @Resource
+    private SysActivityDeptService sysActivityDeptService;
+
     @Resource
     private SysUploadFilesMapper sysUploadFilesMapper;
+
+    @Resource
+    private SysActivityRecordMapper sysActivityRecordMapper;
+
     @Qualifier("baseController")
     @Autowired
     private BaseController controller;
 
     @Override
     public HttpResult addActivity(SysActivityVo sysActivityVo) {
+        //处理机构归属以及所选机构是否有有效活动问题
         SysDept sysDept = sysDeptService.getById(sysActivityVo.getActDept());
         if (Objects.isNull(sysDept) || sysDept.getIsDelete().equals(1)) {
             throw new RuntimeException("机构不存在");
         }
+        sysActivityVo.setIsJoin(0);
+        boolean isExist = sysActivityDeptService.exists(new LambdaQueryWrapper<SysActivityDept>()
+                .eq(SysActivityDept::getDeptId, sysActivityVo.getActDept()).eq(SysActivityDept::getIsEffective, 0));
+        if (isExist) {
+            sysActivityVo.setIsJoin(1);
+        }
+        for (String deptId : sysActivityVo.getDeptIds()) {
+            boolean isExist1 = sysActivityDeptService.exists(new LambdaQueryWrapper<SysActivityDept>()
+                    .eq(SysActivityDept::getDeptId, deptId).eq(SysActivityDept::getIsEffective, 0));
+            if (isExist1) {
+                sysActivityVo.setIsJoin(1);
+            }
+        }
+
         String userId = controller.getUserName();
         SysActivity sysActivity = new SysActivity(userId);
         BeanUtils.copyProperties(sysActivityVo, sysActivity);
@@ -86,7 +112,32 @@ public class SysActivityServiceImpl extends ServiceImpl<SysActivityMapper, SysAc
             sysActivity.setActStatus("3");
         }
         sysActivityService.save(sysActivity);
-        return HttpResult.ok("添加活动成功", sysActivity.getId());
+        for (String deptId : sysActivityVo.getDeptIds()) {
+            SysActivityDept isEffective = sysActivityDeptService.getOne(new LambdaQueryWrapper<SysActivityDept>()
+                    .eq(SysActivityDept::getDeptId, deptId).eq(SysActivityDept::getIsEffective, 0));
+            if (Objects.nonNull(isEffective)) {
+                isEffective.setIsEffective("1"); // 将原先机构有效活动设置为无效
+                sysActivityDeptService.updateById(isEffective);
+            }
+            // 新增一条所选机构有效活动数据
+            SysActivityDept sysActivityDept = new SysActivityDept();
+            sysActivityDept.setActivityId(sysActivity.getId());
+            sysActivityDept.setDeptId(deptId);
+            sysActivityDept.setIsEffective("0");
+            sysActivityDeptService.save(sysActivityDept);
+        }
+        List<SysActivityAward> sysActivityAwardList = new ArrayList<>();
+        for (SysActivityVo.AwardList awardList : sysActivityVo.getAwardList()) {
+            if (sysActivity.getActStatus().equals("3")) {
+                throw new RuntimeException("活动已结束");
+            }
+            SysActivityAward sysActivityAward = new SysActivityAward();
+            BeanUtils.copyProperties(awardList, sysActivityAward);
+            sysActivityAward.setActivityId(sysActivity.getId());
+            sysActivityAwardList.add(sysActivityAward);
+        }
+        sysActivityAwardService.saveBatch(sysActivityAwardList);
+        return HttpResult.ok("添加活动成功", sysActivityVo.getIsJoin());
     }
 
     @Transactional
@@ -104,40 +155,43 @@ public class SysActivityServiceImpl extends ServiceImpl<SysActivityMapper, SysAc
             throw new RuntimeException("机构不存在");
         }
         BeanUtils.copyProperties(sysActivityVo, sysActivity);
+        // 更新活动状态
         LocalDate now = LocalDate.now();
-
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-
         LocalDate startTime = LocalDate.parse(sysActivityVo.getActStartTime(), formatter);
         LocalDate endTime = LocalDate.parse(sysActivityVo.getActEndTime(), formatter);
         // 检查当前时间是否早于生效日期
         if (now.isBefore(startTime)) {
             sysActivity.setActStatus("1");
-        }
-        else if (now.isAfter(startTime) && now.isBefore(endTime)) {
+        } else if (now.isAfter(startTime) && now.isBefore(endTime)) {
             sysActivity.setActStatus("2");
-        }
-        else if (now.isEqual(startTime)) {
+        } else if (now.isEqual(startTime)) {
             sysActivity.setActStatus("2");
-        }
-        else if (now.isAfter(endTime)) {
+        } else if (now.isAfter(endTime)) {
             sysActivity.setActStatus("3");
-        }
-        else if (now.isEqual(endTime)) {
+        } else if (now.isEqual(endTime)) {
             sysActivity.setActStatus("3");
         }
         sysActivityService.updateById(sysActivity);
-        return HttpResult.ok("修改活动成功");
-    }
-
-    @Override
-    public HttpResult addActivityAward(SysActivityAwardVo sysActivityAwardVo) {
-        List<SysActivityAward> sysActivityAwardList = new ArrayList<>();
-        for (SysActivityAwardVo.AwardList awardList : sysActivityAwardVo.getAwardList()) {
-            SysActivity sysActivity = sysActivityService.getById(sysActivityAwardVo.getActivityId());
-            if (Objects.isNull(sysActivity)) {
-                throw new RuntimeException("活动不存在");
+        // 先删除活动下的机构数据
+        List<SysActivityDept> isExistList = sysActivityDeptService.list(new LambdaQueryWrapper<SysActivityDept>()
+                .eq(SysActivityDept::getActivityId, sysActivityVo.getId()));
+        sysActivityDeptService.removeBatchByIds(isExistList);
+        for (String deptId : sysActivityVo.getDeptIds()) {
+            SysActivityDept isEffective = sysActivityDeptService.getOne(new LambdaQueryWrapper<SysActivityDept>()
+                    .eq(SysActivityDept::getDeptId, deptId).eq(SysActivityDept::getIsEffective, 0));
+            if (Objects.nonNull(isEffective)) {
+                isEffective.setIsEffective("1"); // 将原先机构有效活动设置为无效
+                sysActivityDeptService.updateById(isEffective);
             }
+            // 新增一条所选机构有效活动数据
+            SysActivityDept sysActivityDept = new SysActivityDept();
+            sysActivityDept.setActivityId(sysActivity.getId());
+            sysActivityDept.setDeptId(deptId);
+            sysActivityDept.setIsEffective("0");
+            sysActivityDeptService.save(sysActivityDept);
+        }
+        for (SysActivityVo.AwardList awardList : sysActivityVo.getAwardList()) {
             if (sysActivity.getActStatus().equals("3")) {
                 throw new RuntimeException("活动已结束");
             }
@@ -148,15 +202,9 @@ public class SysActivityServiceImpl extends ServiceImpl<SysActivityMapper, SysAc
                 }
                 BeanUtils.copyProperties(awardList, sysActivityAward);
                 sysActivityAwardService.updateById(sysActivityAward);
-            } else{
-                SysActivityAward sysActivityAward = new SysActivityAward();
-                BeanUtils.copyProperties(awardList, sysActivityAward);
-                sysActivityAward.setActivityId(sysActivityAwardVo.getActivityId());
-                sysActivityAwardList.add(sysActivityAward);
             }
         }
-        sysActivityAwardService.saveBatch(sysActivityAwardList);
-        return HttpResult.ok("添加奖品成功");
+        return HttpResult.ok("修改活动成功");
     }
 
     @Override
@@ -170,6 +218,21 @@ public class SysActivityServiceImpl extends ServiceImpl<SysActivityMapper, SysAc
         return HttpResult.ok("删除活动成功");
     }
 
+    public HttpResult checkActivityDept(CheckActivityDeptVo checkActivityDeptVo) {
+        for (String deptId : checkActivityDeptVo.getDeptIds()) {
+            SysDept sysDept = sysDeptService.getById(deptId);
+            if (Objects.isNull(sysDept)) {
+                throw new RuntimeException("机构不存在");
+            }
+            boolean isExist = sysActivityDeptService.exists(new LambdaQueryWrapper<SysActivityDept>()
+                    .eq(SysActivityDept::getDeptId, deptId).eq(SysActivityDept::getIsEffective, 0));
+            if (isExist) {
+                checkActivityDeptVo.setIsJoin("1");
+            }
+        }
+        return HttpResult.ok(checkActivityDeptVo.getIsJoin());
+    }
+
     @Override
     public HttpResult getActivity(SysActivityVo sysActivityVo) {
         SysActivity sysActivity = sysActivityService.getById(sysActivityVo.getId());
@@ -186,6 +249,19 @@ public class SysActivityServiceImpl extends ServiceImpl<SysActivityMapper, SysAc
         }
         sysActivity.setAwardList(awardList);
 
+        List<String> deptIds = new ArrayList<>();
+        List<SysActivity.DeptData> deptData = new ArrayList<>();
+        List<SysActivityDept> sysActivityDeptList = sysActivityDeptService.list(new LambdaQueryWrapper<SysActivityDept>()
+                .eq(SysActivityDept::getActivityId, sysActivityVo.getId()).eq(SysActivityDept::getIsEffective, 0));
+        for (SysActivityDept sysActivityDept : sysActivityDeptList) {
+            SysDept sysDept = sysDeptService.getById(sysActivityDept.getDeptId());
+            deptIds.add(sysDept.getId());
+            SysActivity.DeptData data = new SysActivity.DeptData(sysDept.getId(), sysDept.getName());
+            deptData.add(data);
+        }
+        sysActivity.setDeptIds(deptIds);
+        sysActivity.setDeptData(deptData);
+
         return HttpResult.ok(sysActivity);
     }
 
@@ -193,4 +269,9 @@ public class SysActivityServiceImpl extends ServiceImpl<SysActivityMapper, SysAc
     public Page<SysActivity> getActivityList(Page page,SysActivityVo sysActivityVo) {
         return baseMapper.getSysActivityList(page,sysActivityVo);
     }
+
+    @Override
+    public Page<SysActivityRecordDto> getActivityRecord(Page page, SysActivityRecordVo sysActivityRecordVo) {
+        return sysActivityRecordMapper.getActivityRecord(page,sysActivityRecordVo);
+    }
 }

+ 2 - 0
tenant/organization/src/main/resources/application.yml

@@ -35,6 +35,8 @@ tenant:
     - sys_config
     - sys_activity
     - sys_activity_award
+    - sys_activity_dept
+    - sys_activity_record
     - sys_poster_org
     - sys_message_template
     - sys_message_user

+ 40 - 0
tenant/organization/src/main/resources/mapper/SysActivityRecordMapper.xml

@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jzg.organization.mapper.SysActivityRecordMapper">
+
+    <select id="getActivityRecord" resultType="com.jzg.commons.entity.dto.SysActivityRecordDto">
+        select
+            suji.name as name,
+            su.mobile as mobile,
+            suji.dept_id as deptId,
+            sd.name as deptName,
+            sar.create_time as createTime,
+            saa.award_name as awardName,
+            saa.award_type as awardType
+        from sys_activity_record sar
+        left join sys_activity sa on sa.id = sar.activity_id
+        left join sys_user_jzg_info suji on suji.id = sar.user_jzg_info_id
+        left join sys_activity_award saa on saa.id = sar.award_id
+        left join sys_dept sd on sd.id = suji.dept_id
+        left join sys_user su on su.id = suji.user_id
+        where
+            1=1
+        <if test="sysActivityRecordVo.salesman != null and sysActivityRecordVo.salesman != ''">
+            and suji.name = #{sysActivityRecordVo.salesman}
+            or su.mobile = #{sysActivityRecordVo.salesman}
+            or suji.work_number = #{sysActivityRecordVo.salesman}
+        </if>
+        <if test="sysActivityRecordVo.createTimeStart != null and sysActivityRecordVo.createTimeEnd != null">
+            and DATE_FORMAT(sar.create_time, '%Y-%m-%d') between #{sysActivityRecordVo.createTimeStart} AND #{sysActivityRecordVo.createTimeEnd}
+        </if>
+        <if test="sysActivityRecordVo.awardType != null and sysActivityRecordVo.awardType != ''">
+            and saa.award_type = #{sysActivityRecordVo.awardType}
+        </if>
+        <if test="sysActivityRecordVo.awardName != null and sysActivityRecordVo.awardName != ''">
+            and saa.award_name like concat('%',#{sysActivityRecordVo.awardName},'%')
+        </if>
+
+
+    </select>
+
+</mapper>

+ 3 - 0
tenant/organization/src/main/resources/mapper/SysOrganizationMapper.xml

@@ -44,6 +44,9 @@
         <if test="param.id != null and param.id != ''">
             and so.id = #{param.id}
         </if>
+        <if test="param.name != null and param.name != ''">
+            and su.username like concat('%',#{param.name},'%')
+        </if>
 
     </select>