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

活动分页列表查询修改

Qchen 1 год назад
Родитель
Сommit
26b1d4b1d4

+ 10 - 1
commons/src/main/java/com/jzg/commons/entity/po/SysActivity.java

@@ -13,6 +13,7 @@ import java.io.Serializable;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * @author quchen
@@ -73,7 +74,7 @@ public class SysActivity implements Serializable {
     private List<SysActivityAward> awardList;
 
     @TableField(exist = false)
-    @Schema(description = "机构列表")
+    @Schema(description = "机构名称")
     private String actDeptName;
 
     @TableField(exist = false)
@@ -84,6 +85,14 @@ public class SysActivity implements Serializable {
     @Schema(description = "机构列表信息")
     private List<DeptData> deptData;
 
+    @TableField(exist = false)
+    @Schema(description = "参与范围")
+    private String depts;
+
+    @TableField(exist = false)
+    @Schema(description = "参与用户人数")
+    private AtomicInteger userCount;
+
     @Data
     @NoArgsConstructor
     public static class DeptData implements Serializable {

+ 44 - 22
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysActivityServiceImpl.java

@@ -16,10 +16,7 @@ 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 com.jzg.organization.service.*;
 import io.minio.MinioClient;
 import io.minio.PutObjectArgs;
 import io.minio.errors.*;
@@ -43,6 +40,8 @@ import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
 
 /**
  * @author quchen
@@ -69,6 +68,9 @@ public class SysActivityServiceImpl extends ServiceImpl<SysActivityMapper, SysAc
     @Resource
     private SysUploadFilesMapper sysUploadFilesMapper;
 
+    @Resource
+    private SysUserJzgInfoService sysUserJzgInfoService;
+
     @Resource
     private SysActivityRecordMapper sysActivityRecordMapper;
 
@@ -169,23 +171,7 @@ 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)) {
-            sysActivity.setActStatus("2");
-        } else if (now.isEqual(startTime)) {
-            sysActivity.setActStatus("2");
-        } else if (now.isAfter(endTime)) {
-            sysActivity.setActStatus("3");
-        } else if (now.isEqual(endTime)) {
-            sysActivity.setActStatus("3");
-        }
+        checkActivityStatus(sysActivityVo.getActStartTime(), sysActivityVo.getActEndTime(), sysActivity);
         sysActivityService.updateById(sysActivity);
         // 先删除活动下的机构数据
         List<SysActivityDept> isExistList = sysActivityDeptService.list(new LambdaQueryWrapper<SysActivityDept>()
@@ -221,6 +207,25 @@ public class SysActivityServiceImpl extends ServiceImpl<SysActivityMapper, SysAc
         return HttpResult.ok("修改活动成功");
     }
 
+    public void checkActivityStatus(String actStartTime, String actEndTime, SysActivity sysActivity) {
+        LocalDate now = LocalDate.now();
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        LocalDate startTime = LocalDate.parse(actStartTime, formatter);
+        LocalDate endTime = LocalDate.parse(actEndTime, formatter);
+        // 检查当前时间是否早于生效日期
+        if (now.isBefore(startTime)) {
+            sysActivity.setActStatus("1");
+        } else if (now.isAfter(startTime) && now.isBefore(endTime)) {
+            sysActivity.setActStatus("2");
+        } else if (now.isEqual(startTime)) {
+            sysActivity.setActStatus("2");
+        } else if (now.isAfter(endTime)) {
+            sysActivity.setActStatus("3");
+        } else if (now.isEqual(endTime)) {
+            sysActivity.setActStatus("3");
+        }
+    }
+
     @Override
     public HttpResult deleteActivity(String id) {
         SysActivity sysActivity = sysActivityService.getById(id);
@@ -281,7 +286,24 @@ public class SysActivityServiceImpl extends ServiceImpl<SysActivityMapper, SysAc
 
     @Override
     public Page<SysActivity> getActivityList(Page page,SysActivityVo sysActivityVo) {
-        return baseMapper.getSysActivityList(page,sysActivityVo);
+    Page<SysActivity> pages =  baseMapper.getSysActivityList(page,sysActivityVo);
+    pages.getRecords().forEach(activity -> {
+        SysDept sysDept = sysDeptService.getById(activity.getActDept());
+        AtomicInteger count = new AtomicInteger();
+        List<SysActivityDept> sysActivityDeptList = sysActivityDeptService.list(new LambdaQueryWrapper<SysActivityDept>()
+                .eq(SysActivityDept::getActivityId, activity.getId()).eq(SysActivityDept::getIsEffective, 0));
+        sysActivityDeptList.forEach(sysActivityDept -> {
+            List<SysUserJzgInfo> sysUserJzgInfo = sysUserJzgInfoService.list(new LambdaQueryWrapper<SysUserJzgInfo>().eq(SysUserJzgInfo::getDeptId, sysActivityDept.getDeptId()));
+            count.set(count.get() + sysUserJzgInfo.size());
+        });
+        activity.setDeptIds(sysActivityDeptList.stream().map(SysActivityDept::getDeptId).collect(Collectors.toList()));
+        activity.setActDeptName(sysDept.getName());
+        activity.setDepts(activity.getDeptIds().stream().map(deptId -> sysDeptService.getById(deptId).getName()).collect(Collectors.joining(",")));
+        activity.setUserCount(count);
+        checkActivityStatus(activity.getActStartTime(), activity.getActEndTime(), activity);
+        updateById(activity);
+    });
+        return pages;
     }
 
     @Override

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

@@ -41,6 +41,7 @@ tenant:
     - sys_message_user
     - sys_notice_user
     - ptl_agreement_attribution
+    - sys_dept
     - ptl_agreement_dept
   ignoreLoginNames:
 

+ 15 - 3
tenant/organization/src/main/resources/mapper/SysActivityMapper.xml

@@ -2,15 +2,27 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.jzg.organization.mapper.SysActivityMapper">
     <select id="getSysActivityList" resultType="com.jzg.commons.entity.po.SysActivity">
-        select
-            *,
-            sd.name as actDept
+        select DISTINCT
+            sa.id as id,
+            sa.act_dept as actDept,
+            sa.act_name as actName,
+            sa.act_method as actMethod,
+            sa.act_start_time as actStartTime,
+            sa.act_end_time as actEndTime,
+            sa.create_time as createTime,
+            sa.create_by as createBy,
+            sa.act_status as actStatus,
+            sa.is_delete as isDelete,
+            sa.is_end as isEnd
         from
             sys_activity sa
         left join sys_dept sd on sa.act_dept = sd.id
+        left join sys_activity_dept sad ON sa.id = sad.activity_id
+        left join sys_dept sd2 ON sad.dept_id = sd2.id
         where
             1=1
           and sa.is_delete = '0'
+          and sa.is_end = '0'
         <if test="sysActivityVo.actName != null and sysActivityVo.actName != ''">
             and sa.act_name like concat('%',#{sysActivityVo.actName},'%')
         </if>