Преглед изворни кода

完善用户信息采集查询逻辑

cgp пре 1 недеља
родитељ
комит
8dbcecd4f4

+ 26 - 0
fs-company/src/main/java/com/fs/hisStore/controller/FsUserInformationCollectionController.java

@@ -8,6 +8,7 @@ import com.fs.framework.security.LoginUser;
 import com.fs.framework.security.SecurityUtils;
 import com.fs.his.domain.FsUserInformationCollectionSchedule;
 import com.fs.hisStore.dto.FsUserInformationCollectionOverviewDTO;
+import com.fs.hisStore.dto.PendingSalesInfoQueryDTO;
 import com.fs.hisStore.param.FsUserInformationCollectionParam;
 import com.fs.hisStore.vo.FsUserInformationCollectionOverviewVo;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -111,6 +112,31 @@ public class FsUserInformationCollectionController extends BaseController
         return AjaxResult.success(fsUserInformationCollectionService.createSimpleUserInfo(fsUserInformationCollection));
     }
 
+    /**
+     * 查询待销售完善信息采集列表
+     * */
+    @PostMapping("/pendingSalesInfoList")
+    public TableDataInfo pendingSalesInfoList(@RequestBody PendingSalesInfoQueryDTO queryDto){
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        queryDto.setCompanyUserId(loginUser.getUser().getUserId());
+        //管理员查看所有数据
+        Long isAdmin = roleMapper.companyUserIsAdmin(queryDto.getCompanyUserId());
+        if (isAdmin != null) {
+            queryDto.setCompanyUserId(null);
+        }
+        startPage();
+        List<FsUserInformationCollection> list = fsUserInformationCollectionService.pendingSalesInfoList(queryDto);
+        return getDataTable(list);
+    }
+    /**
+     * 提交待销售完善信息采集列表
+     * */
+    @PostMapping("/submitSalesInfo")
+    public AjaxResult submitSalesInfo(@RequestBody FsUserInformationCollectionParam param){
+        FsUserInformationCollection sourceInfo=new FsUserInformationCollection();
+        fsUserInformationCollectionService.submitSalesInfo(param,sourceInfo);
+        return AjaxResult.success();
+    }
     /**
      * 删除用户信息采集
      */

+ 5 - 0
fs-service/src/main/java/com/fs/hisStore/domain/FsUserInformationCollection.java

@@ -112,4 +112,9 @@ public class FsUserInformationCollection extends BaseEntity{
      * 填表标识 0-未填写 1-已填写
      * */
     private Integer fillFlag;
+
+    /*
+    *完善状态 0-未完善 1-完善
+    * */
+    private Integer completeStatus;
 }

+ 16 - 0
fs-service/src/main/java/com/fs/hisStore/dto/PendingSalesInfoQueryDTO.java

@@ -0,0 +1,16 @@
+package com.fs.hisStore.dto;
+
+import com.fs.common.core.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+public class PendingSalesInfoQueryDTO extends BaseEntity {
+    //销售id
+    private Long companyUserId;
+
+    //用户名称
+    private String userName;
+
+    //完善状态 0-未完善 1-完善
+    private Integer completeStatus;
+}

+ 14 - 0
fs-service/src/main/java/com/fs/hisStore/service/IFsUserInformationCollectionService.java

@@ -10,6 +10,7 @@ import com.fs.course.vo.FsUserInfoCollectionUVO;
 import com.fs.his.domain.FsUserInformationCollectionSchedule;
 import com.fs.hisStore.domain.FsUserInformationCollection;
 import com.fs.hisStore.dto.FsUserInformationCollectionOverviewDTO;
+import com.fs.hisStore.dto.PendingSalesInfoQueryDTO;
 import com.fs.hisStore.param.FsUserInformationCollectionListDParam;
 import com.fs.hisStore.param.FsUserInformationCollectionParam;
 import com.fs.hisStore.vo.FsUserInformationCollectionListDVO;
@@ -162,4 +163,17 @@ public interface IFsUserInformationCollectionService extends IService<FsUserInfo
      * @return true: 允许销售代填, false: 不允许销售代填
      */
     boolean getSalesProxyFillConfig();
+
+    /**
+     * 获取待销售完善信息列表
+     * @param queryDto 查询参数
+     * @return 待销售信息列表
+     */
+    List<FsUserInformationCollection> pendingSalesInfoList(PendingSalesInfoQueryDTO queryDto);
+
+    /**
+     * 提交待销售完善信息
+     * @param fsUserInformationCollection 待完善信息
+     */
+    void submitSalesInfo(FsUserInformationCollectionParam fsUserInformationCollection,FsUserInformationCollection sourceInfo);
 }

+ 37 - 1
fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserInformationCollectionServiceImpl.java

@@ -45,6 +45,7 @@ import com.fs.his.utils.ConfigUtil;
 import com.fs.his.vo.AnswerVO;
 import com.fs.his.vo.FsQuestionAndAnswerVO;
 import com.fs.hisStore.dto.FsUserInformationCollectionOverviewDTO;
+import com.fs.hisStore.dto.PendingSalesInfoQueryDTO;
 import com.fs.hisStore.param.FsUserInformationCollectionListDParam;
 import com.fs.hisStore.param.FsUserInformationCollectionParam;
 import com.fs.hisStore.vo.FsUserInformationCollectionListDVO;
@@ -324,7 +325,11 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         fsUserInformationCollection.setAmount(param.getAmount());
         fsUserInformationCollection.setAge(param.getAge());
         //更新用户信息采集信息
-        baseMapper.updateFsUserInformationCollection(fsUserInformationCollection);
+        int addResult = baseMapper.updateFsUserInformationCollection(fsUserInformationCollection);
+        if (addResult>0){
+            // 待后端校验逻辑完善了再执行
+            // submitSalesInfoList(param,fsUserInformationCollection);
+        }
         return fsUserInformationCollection.getId();
     }
 
@@ -1416,6 +1421,37 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         return false; // 默认返回 false
     }
 
+    @Override
+    public List<FsUserInformationCollection> pendingSalesInfoList(PendingSalesInfoQueryDTO queryDto) {
+        queryDto.setCompleteStatus(0);//未完善信息标识
+        FsUserInformationCollection fsUserInformationCollection=new FsUserInformationCollection();
+        BeanUtils.copyProperties(queryDto,fsUserInformationCollection);
+        List<FsUserInformationCollection> resultList=fsUserInformationCollectionMapper.selectFsUserInformationCollectionList(fsUserInformationCollection);
+        if (CollectionUtils.isEmpty(resultList)){
+            return Collections.emptyList();
+        }
+        return resultList;
+    }
+
+    @Override
+    public void submitSalesInfo(FsUserInformationCollectionParam param,FsUserInformationCollection sourceInfo) {
+        if (sourceInfo==null){
+            //如果传入的采集信息为空,则从数据库中查询
+            sourceInfo = fsUserInformationCollectionMapper.selectFsUserInformationCollectionById(param.getId());
+        }
+        if (sourceInfo== null){
+            log.error("完善采集信息-用户采集信息源不存在");
+            throw new CustomException("用户采集信息不存在");
+        }
+        //提交销售完善的问题列表
+        List<AnswerVO> answers = param.getAnswers();
+        //TODO 后续增加后端校验
+        //更新采集信息的问题列表
+        sourceInfo.setJsonInfo(JSON.toJSONString(answers));
+        sourceInfo.setCompleteStatus(1);//已完善标识
+        fsUserInformationCollectionMapper.updateFsUserInformationCollection(sourceInfo);
+    }
+
     private List<AnswerVO> getAnswerVOs(List<AnswerVO> target, List<AnswerVO> source) {
         // 1. 先对 target 中的每个 AnswerVO,从 source 中按 title 找到对应的模板,补充 options 的 open 字段
         if (target != null && source != null) {

+ 7 - 2
fs-service/src/main/resources/mapper/hisStore/FsUserInformationCollectionMapper.xml

@@ -34,6 +34,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="infoSource"    column="info_source"    />
         <result property="thirdPartyUserId"    column="third_party_user_id"    />
         <result property="fillFlag"    column="fill_flag"    />
+        <result property="completeStatus"    column="complete_status"    />
     </resultMap>
 
     <!-- 用户信息采集视图对象类的ResultMap -->
@@ -59,7 +60,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
              , doctor_confirm, create_time, update_time,doctor_id,company_user_id
              ,package_id,pay_type,amount,is_package,user_confirm2,package_order_code
              ,status,user_advice,doctor_advice,doctor_confirm_time,sex,user_name,user_phone_four
-             ,allergy,remark,age,info_source,third_party_user_id,fill_flag  from fs_user_information_collection
+             ,allergy,remark,age,info_source,third_party_user_id,fill_flag,complete_status  from fs_user_information_collection
     </sql>
 
     <select id="selectFsUserInformationCollectionList" parameterType="FsUserInformationCollection" resultMap="FsUserInformationCollectionResult">
@@ -74,6 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="infoSource != null "> and info_source = #{infoSource}</if>
             <if test="thirdPartyUserId != null "> and third_party_user_id = #{thirdPartyUserId}</if>
             <if test="fillFlag != null "> and fill_flag = #{fillFlag}</if>
+            <if test="completeStatus != null "> and complete_status = #{completeStatus}</if>
         </where>
     </select>
     
@@ -137,7 +139,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 AND infocollect.user_name LIKE CONCAT('%', #{userName}, '%')
             </if>
             <if test="questionId != null and questionId != ''">
-                AND infocollect.question_id LIKE CONCAT('%', #{questionId}, '%')
+                AND infocollect.question_id = #{questionId}
             </if>
             <if test="companyUserName != null and companyUserName != ''">
                 AND cu.nick_name LIKE CONCAT('%', #{companyUserName}, '%')
@@ -213,6 +215,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="infoSource != null">info_source,</if>
             <if test="thirdPartyUserId != null">third_party_user_id,</if>
             <if test="fillFlag != null">fill_flag,</if>
+            <if test="completeStatus != null">complete_status,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="questionId != null">#{questionId},</if>
@@ -243,6 +246,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="infoSource != null">#{infoSource},</if>
             <if test="thirdPartyUserId != null">#{thirdPartyUserId},</if>
             <if test="fillFlag != null">#{fillFlag},</if>
+            <if test="completeStatus != null">#{completeStatus},</if>
         </trim>
     </insert>
 
@@ -277,6 +281,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="infoSource != null">info_source = #{infoSource},</if>
             <if test="thirdPartyUserId != null">third_party_user_id = #{thirdPartyUserId},</if>
             <if test="fillFlag != null">fill_flag = #{fillFlag},</if>
+            <if test="completeStatus != null">complete_status = #{completeStatus},</if>
         </trim>
         where id = #{id}
     </update>