ソースを参照

+ 交通强国小程序变更

chen.cheng 9 ヶ月 前
コミット
12f8bcbd91

+ 57 - 4
ruoyi-system/src/main/java/com/ruoyi/system/domain/CpsUsrApply.java

@@ -1,9 +1,10 @@
 package com.ruoyi.system.domain;
 
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
+import com.alibaba.fastjson2.JSONArray;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
 
 /**
  * cps_usr_apply与会申请对象 cps_usr_apply
@@ -78,6 +79,16 @@ public class CpsUsrApply extends BaseEntity {
     @Excel(name = "审核状态", dictType = "review_state")
     private String reviewState;
 
+    @Excel(name = "主题调研" , dictType = "conference_flag")
+    String themeFlag;
+
+    Long themeId;
+
+    String followsJson;
+
+    @Excel(name = "与会主题")
+    String themeTitle;
+
     /**
      * 审核不通过原因
      */
@@ -113,15 +124,17 @@ public class CpsUsrApply extends BaseEntity {
     /**
      * $column.columnComment
      */
-    @Excel(name = "回程方式", dictType = "tfc_type")
+    @Excel(name = "去程方式" , dictType = "tfc_type")
     private String wayBack;
 
     /**
      * 返程信息
      */
-    @Excel(name = "程信息")
+    @Excel(name = "程信息")
     private String backInfo;
 
+    private JSONArray follows;
+
     private CpsContentInfo content;
 
     public void setId(Long id) {
@@ -292,6 +305,46 @@ public class CpsUsrApply extends BaseEntity {
         return backInfo;
     }
 
+    public String getThemeFlag() {
+        return themeFlag;
+    }
+
+    public void setThemeFlag(String themeFlag) {
+        this.themeFlag = themeFlag;
+    }
+
+    public Long getThemeId() {
+        return themeId;
+    }
+
+    public void setThemeId(Long themeId) {
+        this.themeId = themeId;
+    }
+
+    public String getFollowsJson() {
+        return followsJson;
+    }
+
+    public void setFollowsJson(String followsJson) {
+        this.followsJson = followsJson;
+    }
+
+    public String getThemeTitle() {
+        return themeTitle;
+    }
+
+    public void setThemeTitle(String themeTitle) {
+        this.themeTitle = themeTitle;
+    }
+
+    public JSONArray getFollows() {
+        return follows;
+    }
+
+    public void setFollows(JSONArray follows) {
+        this.follows = follows;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId()).append("usrName", getUsrName()).append("tel", getTel()).append("orgUnitName", getOrgUnitName()).append("uniLevel", getUniLevel()).append("email", getEmail()).append("usrType", getUsrType()).append("conferenceFlag", getConferenceFlag()).append("conferenceRel", getConferenceRel()).append("applyType", getApplyType()).append("reviewState", getReviewState()).append("reviewMsg", getReviewMsg()).append("usrWechatId", getUsrWechatId()).append("contentId", getContentId()).append("contentTitle", getContentTitle()).append("deptId", getDeptId()).append("wayComing", getWayComing()).append("comInfo", getComInfo()).append("wayBack", getWayBack()).append("backInfo", getBackInfo()).append("remark", getRemark()).append("updateTime", getUpdateTime()).append("createTime", getCreateTime()).append("createBy", getCreateBy()).append("updateBy", getUpdateBy()).toString();

+ 14 - 39
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CpsMeetingUsrServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ruoyi.system.service.impl;
 
+import com.alibaba.fastjson2.JSON;
 import com.ruoyi.common.config.AppCfg;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.domain.model.WeChatUser;
@@ -9,7 +10,6 @@ import com.ruoyi.common.enums.SysYesNo;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.StreamUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanValidators;
 import com.ruoyi.system.domain.CpsContentInfo;
@@ -21,7 +21,6 @@ import com.ruoyi.system.mapper.CpsMeetingEnterpriseTripInfoMapper;
 import com.ruoyi.system.mapper.CpsMeetingUsrMapper;
 import com.ruoyi.system.mapper.CpsUsrApplyMapper;
 import com.ruoyi.system.service.ICpsMeetingUsrService;
-import io.foldright.cffu.CompletableFutureUtils;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.slf4j.Logger;
@@ -30,11 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.validation.Validator;
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ScheduledExecutorService;
 
 /**
@@ -182,53 +177,33 @@ public class CpsMeetingUsrServiceImpl implements ICpsMeetingUsrService {
     }
 
     @Override
-    public void usrMeetingRegister(CpsUsrApply user) throws ExecutionException, InterruptedException {
-        CompletableFuture<List<List<CpsUsrApply>>> registersFetures = CompletableFutureUtils.allResultsOf(CompletableFuture.supplyAsync(() -> cpsUsrApplyMapper.selectCpsUsrApplyList(new CpsUsrApply() {{
+    public void usrMeetingRegister(CpsUsrApply user) {
+        List<CpsUsrApply> cpsUsrApplies = cpsUsrApplyMapper.selectCpsUsrApplyList(new CpsUsrApply() {{
             setTel(user.getTel());
             setApplyType(MeetingType.MEETING.getCode());
             setReviewState(ReviewStatus.PASS.getCode());
-        }}), executor), CompletableFuture.supplyAsync(() -> cpsUsrApplyMapper.selectCpsUsrApplyList(new CpsUsrApply() {{
-            setTel(user.getTel());
-            setApplyType(MeetingType.CONFERENCE.getCode());
-            setReviewState(ReviewStatus.PASS.getCode());
-        }}), executor));
-
-        List<List<CpsUsrApply>> registers = registersFetures.get();
-        List<CpsUsrApply> allRegisters = new ArrayList<>();
-        for (List<CpsUsrApply> register : registers) {
-            if (CollectionUtils.isNotEmpty(register)) {
-                allRegisters.addAll(register);
-            }
-        }
-        Map<String, List<CpsUsrApply>> stringListMap = StreamUtils.groupByKey(allRegisters, CpsUsrApply::getApplyType);
-        if (CollectionUtils.isNotEmpty(stringListMap.get(MeetingType.MEETING.getCode()))) {
+        }});
+        if (CollectionUtils.isNotEmpty(cpsUsrApplies)) {
             throw new ServiceException("该手机号已经报名,请勿反复报名");
         }
-        if (MeetingType.CONFERENCE.getCode().equals(user.getApplyType()) && CollectionUtils.isNotEmpty(stringListMap.get(MeetingType.CONFERENCE.getCode()))) {
-            throw new ServiceException("该手机号已经参与会场调研,请勿反复报名");
-        }
         LoginUser loginUser = SecurityUtils.getLoginUser();
         user.setUpdateBy(loginUser.getUsername());
         user.setReviewState(ReviewStatus.WAIT.getCode());
         user.setUsrWechatId(loginUser.getUserId());
+        user.setApplyType(MeetingType.MEETING.getCode());
+        user.setDeptId(appCfg.getRoleTopDeptId());
         if (SysYesNo.YES.getCode().equals(user.getConferenceFlag())) {
             CpsContentInfo cpsContentInfo = contentInfoMapper.selectCpsContentInfoById(user.getContentId());
             user.setContentTitle(cpsContentInfo.getTitle());
-            user.setApplyType(MeetingType.CONFERENCE.getCode());
-            user.setConferenceFlag(SysYesNo.NO.getCode());
-            user.setDeptId(cpsContentInfo.getDeptId());
-            cpsUsrApplyMapper.insertCpsUsrApplyOrUpdate(user);
-            user.setConferenceFlag(SysYesNo.YES.getCode());
-            user.setApplyType(MeetingType.MEETING.getCode());
-            user.setConferenceRel(user.getId());
-            user.setDeptId(appCfg.getRoleTopDeptId());
-            cpsUsrApplyMapper.insertCpsUsrApplyOrUpdate(user);
-            return;
         }
-        user.setApplyType(MeetingType.MEETING.getCode());
+        if (SysYesNo.YES.getCode().equals(user.getThemeFlag())) {
+            CpsContentInfo cpsContentInfo = contentInfoMapper.selectCpsContentInfoById(user.getThemeId());
+            user.setThemeTitle(cpsContentInfo.getTitle());
+        }
+        user.setFollowsJson(JSON.toJSONString(user.getFollows()));
         user.setConferenceRel(null);
         user.setReviewMsg("");
-        user.setDeptId(appCfg.getRoleTopDeptId());
+
         cpsUsrApplyMapper.insertCpsUsrApplyOrUpdate(user);
     }
 
@@ -266,7 +241,7 @@ public class CpsMeetingUsrServiceImpl implements ICpsMeetingUsrService {
                 }
             } catch (Exception e) {
                 failureNum++;
-                log.info("导入用户失败:%s", e.getMessage());
+                log.info("导入用户失败:%s" , e.getMessage());
                 failureMsg.append(e.getMessage());
             }
         }

+ 20 - 4
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CpsUsrApplyServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ruoyi.system.service.impl;
 
+import com.alibaba.fastjson2.JSON;
 import com.ruoyi.common.annotation.DataScope;
 import com.ruoyi.common.core.domain.model.WeChatUser;
 import com.ruoyi.common.enums.MeetingType;
@@ -7,6 +8,7 @@ import com.ruoyi.common.enums.ReviewStatus;
 import com.ruoyi.common.enums.SysYesNo;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.domain.CpsContentInfo;
 import com.ruoyi.system.domain.CpsUsrApply;
 import com.ruoyi.system.mapper.CpsContentInfoMapper;
@@ -42,7 +44,14 @@ public class CpsUsrApplyServiceImpl implements ICpsUsrApplyService {
      */
     @Override
     public CpsUsrApply selectCpsUsrApplyById(Long id) {
-        return cpsUsrApplyMapper.selectCpsUsrApplyById(id);
+        CpsUsrApply cpsUsrApply = cpsUsrApplyMapper.selectCpsUsrApplyById(id);
+        if (ObjectUtils.isEmpty(cpsUsrApply)) {
+            return null;
+        }
+        if (StringUtils.isNotEmpty(cpsUsrApply.getFollowsJson())) {
+            cpsUsrApply.setFollows(JSON.parseArray(cpsUsrApply.getFollowsJson()));
+        }
+        return cpsUsrApply;
     }
 
     @Override
@@ -63,11 +72,18 @@ public class CpsUsrApplyServiceImpl implements ICpsUsrApplyService {
     @Override
     public CpsUsrApply selectCpsUsrApplyThemeMeeting(String meetType) {
         WeChatUser loginUser = (WeChatUser) SecurityUtils.getLoginUser();
-        CpsUsrApply cpsUsrApply = cpsUsrApplyMapper.selectCpsUsrApplyByTel(loginUser.getTel(), meetType);
-        if (ObjectUtils.isEmpty(cpsUsrApply) || ObjectUtils.isEmpty(cpsUsrApply.getContentId())) {
+        CpsUsrApply cpsUsrApply = cpsUsrApplyMapper.selectCpsUsrApplyByTel(loginUser.getTel(), MeetingType.MEETING.getCode());
+        if (ObjectUtils.isEmpty(cpsUsrApply)) {
             return null;
         }
-        CpsContentInfo cpsContentInfo = cpsContentInfoMapper.selectCpsContentInfoById(cpsUsrApply.getContentId());
+        Long contentId = 0L;
+        if (MeetingType.CONFERENCE.getCode().equals(meetType)) {
+            contentId = cpsUsrApply.getContentId();
+        }
+        if (MeetingType.THEME.getCode().equals(meetType)) {
+            contentId = cpsUsrApply.getThemeId();
+        }
+        CpsContentInfo cpsContentInfo = cpsContentInfoMapper.selectCpsContentInfoById(contentId);
         if (ObjectUtils.isEmpty(cpsContentInfo)) {
             return null;
         }

+ 25 - 1
ruoyi-system/src/main/resources/mapper/cp/CpsUsrApplyMapper.xml

@@ -30,6 +30,10 @@
         <result property="createTime" column="create_time"/>
         <result property="createBy" column="create_by"/>
         <result property="updateBy" column="update_by"/>
+        <result property="themeFlag" column="theme_flag"/>
+        <result property="themeId" column="theme_id"/>
+        <result property="themeTitle" column="theme_title"/>
+        <result property="followsJson" column="follows_json"/>
     </resultMap>
 
     <sql id="selectCpsUsrApplyVo">
@@ -57,7 +61,11 @@
                update_time,
                create_time,
                create_by,
-               update_by
+               update_by,
+               theme_flag,
+               theme_id,
+               theme_title,
+               follows_json
         from cps_usr_apply usrApply
     </sql>
     <select id="qryUserApply">
@@ -193,6 +201,10 @@
             <if test="remark != null">remark,</if>
             <if test="createBy != null">create_by,</if>
             <if test="updateBy != null">update_by,</if>
+            <if test="themeFlag != null">theme_flag,</if>
+            <if test="themeId!=null">theme_id,</if>
+            <if test="themeTitle!=null">theme_title,</if>
+            <if test="followsJson != null">follows_json,</if>
             update_time,
             create_time
         </trim>
@@ -219,6 +231,10 @@
             <if test="remark != null">#{remark},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="updateBy != null">#{updateBy},</if>
+            <if test="themeFlag != null">#{themeFlag},</if>
+            <if test="themeId!=null">#{themeId},</if>
+            <if test="themeTitle!=null">#{themeTitle},</if>
+            <if test="followsJson != null">#{followsJson},</if>
             now(),
             now()
         </trim>
@@ -244,6 +260,10 @@
             <if test="backInfo != null">back_info = VALUES(back_info),</if>
             <if test="remark != null">remark = VALUES(remark),</if>
             <if test="updateBy != null">update_by = VALUES(update_by),</if>
+            <if test="themeFlag != null">theme_flag = VALUES(theme_flag),</if>
+            <if test="themeId!=null">theme_id = VALUES(theme_id),</if>
+            <if test="themeTitle!=null">theme_title = VALUES(theme_title),</if>
+            <if test="followsJson != null">follows_json = VALUES(follows_json),</if>
             conference_rel = VALUES(conference_rel),
             update_time = now()
         </trim>
@@ -275,6 +295,10 @@
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="createBy != null">create_by = #{createBy},</if>
             <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="themeFlag != null">theme_flag = #{themeFlag},</if>
+            <if test="themeId!=null">theme_id = #{themeId},</if>
+            <if test="themeTitle!=null">theme_title = #{themeTitle},</if>
+            <if test="followsJson != null">follows_json = #{followsJson},</if>
         </trim>
         where id = #{id}
     </update>