ソースを参照

优化推进会员查询接口回显数据

cgp 4 日 前
コミット
971e4403bb

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

@@ -94,4 +94,7 @@ public class FsUserInformationCollection extends BaseEntity{
     //备注
     private String remark;
 
+    //用户年龄
+    private Integer age;
+
 }

+ 5 - 0
fs-service/src/main/java/com/fs/hisStore/mapper/FsUserInformationCollectionMapper.java

@@ -91,4 +91,9 @@ public interface FsUserInformationCollectionMapper extends BaseMapper<FsUserInfo
      */
     @Select("SELECT * FROM fs_user_information_collection WHERE is_package = 0 AND user_confirm = 1 AND doctor_confirm = 1 AND user_confirm2 = 0 AND doctor_confirm_time <= DATE_SUB(NOW(), INTERVAL 2 HOUR)")
     List<FsUserInformationCollection> selectAutoConfirm();
+
+    /**
+     * 根据fs_user_id集合批量查询用户信息采集
+     * */
+    List<FsUserInformationCollection> selectFsUserInformationCollectionListByUserIds(List<Long> fsUserIds);
 }

+ 3 - 1
fs-service/src/main/java/com/fs/hisStore/param/FsUserInformationCollectionParam.java

@@ -1,7 +1,6 @@
 package com.fs.hisStore.param;
 
 import com.fs.his.vo.AnswerVO;
-import com.fs.his.vo.FsQuestionAndAnswerVO;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -30,6 +29,9 @@ public class FsUserInformationCollectionParam {
     //支付类型 0-全款 1-物流代收
     private Integer payType;
 
+    //用户年龄
+    private Integer age;
+
     //代收金额
     private BigDecimal amount;
 

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

@@ -97,4 +97,6 @@ public interface IFsUserInformationCollectionService extends IService<FsUserInfo
 
     //销售帮助客户二次确认
     R salesHelpConfirm(Long collectionId, Long operateId);
+
+    List<FsUserInformationCollection> selectFsUserInformationCollectionListByUserIds(List<Long> fsUserIds);
 }

+ 16 - 0
fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserInformationCollectionServiceImpl.java

@@ -86,6 +86,7 @@ import me.chanjar.weixin.common.error.WxErrorException;
 import org.jetbrains.annotations.NotNull;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
@@ -239,6 +240,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
             log.info("用户已存在采集信息,用户id:{}",param.getUserId());
             throw new CustomException("用户已存在采集信息");
         }
+        fsUserInformationCollection.setAge(param.getAge());
         fsUserInformationCollection.setCreateTime(DateUtils.getNowDate());
         baseMapper.insertFsUserInformationCollection(fsUserInformationCollection);
         //新增用户信息采集表的同时记录用户信息采集进度
@@ -325,6 +327,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         fsUserInformationCollection.setPayType(param.getPayType());
         fsUserInformationCollection.setQuestionId(param.getQuestionId());
         fsUserInformationCollection.setAmount(param.getAmount());
+        fsUserInformationCollection.setAge(param.getAge());
         baseMapper.updateFsUserInformationCollection(fsUserInformationCollection);
         return fsUserInformationCollection.getId();
     }
@@ -1017,6 +1020,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         FsUserInformationCollectionVO vo = new FsUserInformationCollectionVO();
         FsUserInformationCollection collection = fsUserInformationCollectionMapper.selectFsUserInformationCollectionByUserId(userId);
         if (collection != null) {
+            BeanUtils.copyProperties(collection, vo);
             vo.setAnswers(JSON.parseArray(collection.getJsonInfo(), AnswerVO.class));
             //医生建议
             if (collection.getDoctorAdvice() != null){
@@ -1125,6 +1129,18 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
 
     }
 
+    @Override
+    public List<FsUserInformationCollection> selectFsUserInformationCollectionListByUserIds(List<Long> fsUserIds) {
+        if (CollectionUtils.isEmpty(fsUserIds)){
+            return Collections.emptyList();
+        }
+        List<FsUserInformationCollection> resultList=fsUserInformationCollectionMapper.selectFsUserInformationCollectionListByUserIds(fsUserIds);
+        if (CollectionUtils.isEmpty(resultList)){
+            return Collections.emptyList();
+        }
+        return resultList;
+    }
+
     private List<AnswerVO> getAnswerVOs(List<AnswerVO> target,List<AnswerVO> source) {
         target.addAll(source);
         return target.stream()

+ 3 - 0
fs-service/src/main/java/com/fs/hisStore/vo/FsUserInformationCollectionVO.java

@@ -28,6 +28,9 @@ public class FsUserInformationCollectionVO {
     //是否关联套餐包 0-不关联 1-关联
     private Integer isPackage;
 
+    //年龄
+    private Integer age;
+
     //用户性别 0女 1男
     private Long sex;
     //用户姓名

+ 11 - 0
fs-service/src/main/java/com/fs/qw/param/FsDoctorMemberSalesQueryParam.java

@@ -13,6 +13,17 @@ public class FsDoctorMemberSalesQueryParam extends BaseParam implements Serializ
     private Long doctorId;
 
     private String userName;
+    /**
+     * 销售姓名
+     */
+    private String companyUserName;
+    /**
+     * 客户真实姓名
+     */
+    private String realName;
+
+    //企微会员id
+    private Long exId;
 
     private String startTime;
 

+ 9 - 12
fs-service/src/main/java/com/fs/qw/service/impl/FsDoctorMemberSalesServiceImpl.java

@@ -1,9 +1,6 @@
 package com.fs.qw.service.impl;
 
 import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.stream.Collectors;
 
 import com.fs.common.core.domain.R;
 import com.fs.common.utils.DateUtils;
@@ -12,12 +9,11 @@ import com.fs.common.utils.StringUtils;
 import com.fs.his.domain.FsSopDoctorTask;
 import com.fs.his.mapper.FsSopDoctorTaskMapper;
 import com.fs.his.utils.PhoneUtil;
+import com.fs.hisStore.service.IFsUserInformationCollectionService;
 import com.fs.qw.domain.QwExternalContact;
-import com.fs.qw.domain.QwExternalContactInfo;
 import com.fs.qw.mapper.QwExternalContactMapper;
 import com.fs.qw.param.FsDoctorMemberSalesQueryParam;
 import com.fs.qw.param.MemberSalesParam;
-import com.fs.qw.service.IQwExternalContactInfoService;
 import com.fs.qw.vo.FsDoctorMemberSalesVO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -47,7 +43,7 @@ public class FsDoctorMemberSalesServiceImpl extends ServiceImpl<FsDoctorMemberSa
     private QwExternalContactMapper externalContactMapper;
 
     @Autowired
-    private IQwExternalContactInfoService externalContactInfoService;
+    private IFsUserInformationCollectionService userInformationCollectionService;
 
     @Transactional
     @Override
@@ -93,10 +89,10 @@ public class FsDoctorMemberSalesServiceImpl extends ServiceImpl<FsDoctorMemberSa
     public List<FsDoctorMemberSalesVO> selectFsDoctorMemberSalesVOList(FsDoctorMemberSalesQueryParam param) {
         //1.跟进会员信息
         List<FsDoctorMemberSalesVO> voList = memberSalesMapper.selectFsDoctorMemberSalesVOList(param);
-        //2.获取填写的会员信息
-        List<Long> exIds=voList.stream().map(FsDoctorMemberSalesVO::getExId).filter(Objects::nonNull).collect(Collectors.toList());
-        List<QwExternalContactInfo> externalContactInfos = externalContactInfoService.selectQwExternalContactInfoListByExternalContactIds(exIds);
-        Map<Long, QwExternalContactInfo> externalContactInfoMap=externalContactInfos.stream().collect(Collectors.toMap(QwExternalContactInfo::getExternalContactId,v->v));
+        //2.获取填写的会员的采集信息
+        //List<Long> fsUserIds=voList.stream().map(FsDoctorMemberSalesVO::getFsUserId).filter(Objects::nonNull).collect(Collectors.toList());
+        //List<FsUserInformationCollection> userInformationCollections =userInformationCollectionService.selectFsUserInformationCollectionListByUserIds(fsUserIds);
+        //Map<Long, FsUserInformationCollection> userInformationCollectionMap=userInformationCollections.stream().collect(Collectors.toMap(FsUserInformationCollection::getUserId,v->v));
         if (!CollectionUtils.isEmpty(voList)) {
             for (FsDoctorMemberSalesVO vo : voList) {
                 if (!StringUtils.isEmpty(vo.getPhone())) {
@@ -110,8 +106,9 @@ public class FsDoctorMemberSalesServiceImpl extends ServiceImpl<FsDoctorMemberSa
                 //2.获取跟进会员待处理的总数
                 Long unprocessedDoctorTaskCount = sopDoctorTaskMapper.selectUnprocessedDoctorTaskCount(vo.getId());
                 vo.setUnprocessed(unprocessedDoctorTaskCount);
-                //3.获取会员信息
-                vo.setBaseInfo(externalContactInfoMap.get(vo.getExId()));
+                //3.获取会员真实姓名
+                //FsUserInformationCollection collection = userInformationCollectionMap.get(vo.getFsUserId());
+                //vo.setRealName(collection != null ? collection.getUserName() : null);
             }
         }
         return voList;

+ 4 - 6
fs-service/src/main/java/com/fs/qw/vo/FsDoctorMemberSalesVO.java

@@ -1,7 +1,6 @@
 package com.fs.qw.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fs.qw.domain.QwExternalContactInfo;
 import lombok.Data;
 
 import java.util.Date;
@@ -35,6 +34,10 @@ public class FsDoctorMemberSalesVO {
      * 企微客户名称
      */
     private String userName;
+    /**
+     * 客户真实姓名
+     */
+    private String realName;
 
     /**
      * 客户电话
@@ -50,9 +53,4 @@ public class FsDoctorMemberSalesVO {
 
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
-
-    /**
-     * 会员基础信息
-     */
-    private QwExternalContactInfo baseInfo;
 }

+ 1 - 0
fs-service/src/main/resources/mapper/his/FsStoreOrderMapper.xml

@@ -138,6 +138,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="shippingType != null "> and shipping_type = #{shippingType}</if>
             <if test="isChannel != null  and isChannel != ''"> and is_channel = #{isChannel}</if>
             <if test="isPrescribe != null "> and is_prescribe = #{isPrescribe}</if>
+            <if test="packageName != null  and packageName != '' "> and package_name  like concat('%', #{packageName}, '%')</if>
             <if test="prescribeId != null "> and prescribe_id = #{prescribeId}</if>
             <if test="finishTime != null "> and finish_time = #{finishTime}</if>
             <if test="deliveryTime != null  and deliveryTime != ''"> and delivery_time = #{deliveryTime}</if>

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

@@ -30,6 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="userPhoneFour"    column="user_phone_four"    />
         <result property="allergy"    column="allergy"    />
         <result property="remark"    column="remark"    />
+        <result property="age"    column="age"    />
     </resultMap>
 
     <sql id="selectFsUserInformationCollectionVo">
@@ -37,7 +38,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  from fs_user_information_collection
+             ,allergy,remark,age  from fs_user_information_collection
     </sql>
 
     <select id="selectFsUserInformationCollectionList" parameterType="FsUserInformationCollection" resultMap="FsUserInformationCollectionResult">
@@ -71,7 +72,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectFsUserInformationCollectionVo"/>
         where package_order_code = #{orderCode}
     </select>
-        
+    <!-- 根据用户ID列表查询信息收集记录 -->
+    <select id="selectFsUserInformationCollectionListByUserIds"
+            parameterType="java.util.List"
+            resultMap="FsUserInformationCollectionResult">
+        <include refid="selectFsUserInformationCollectionVo"/>
+        WHERE user_id IN
+        <foreach collection="list" item="userId" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+    </select>
+
     <insert id="insertFsUserInformationCollection" parameterType="FsUserInformationCollection" useGeneratedKeys="true" keyProperty="id">
         insert into fs_user_information_collection
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -99,6 +110,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="sex != null">sex,</if>
             <if test="allergy != null">allergy,</if>
             <if test="remark != null">remark,</if>
+            <if test="age != null">age,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="questionId != null">#{questionId},</if>
@@ -125,6 +137,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="userPhoneFour != null">#{userPhoneFour},</if>
             <if test="allergy != null">#{allergy},</if>
             <if test="remark != null">#{remark},</if>
+            <if test="age != null">#{age},</if>
          </trim>
     </insert>
 
@@ -155,6 +168,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="userPhoneFour != null">user_phone_four = #{userPhoneFour},</if>
             <if test="allergy != null">allergy = #{allergy},</if>
             <if test="remark != null">remark = #{remark},</if>
+            <if test="age != null">age = #{age},</if>
         </trim>
         where id = #{id}
     </update>

+ 5 - 1
fs-service/src/main/resources/mapper/qw/FsDoctorMemberSalesMapper.xml

@@ -85,14 +85,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <select id="selectFsDoctorMemberSalesVOList" parameterType="com.fs.qw.param.FsDoctorMemberSalesQueryParam" resultType="com.fs.qw.vo.FsDoctorMemberSalesVO">
-        SELECT dms.*,qec.name userName,cu.nick_name companyUserName,u.phone FROM fs_doctor_member_sales dms
+        SELECT dms.*,qec.name userName,cu.nick_name companyUserName,u.phone,fuic.user_name as realName FROM fs_doctor_member_sales dms
         LEFT JOIN qw_external_contact qec ON dms.ex_id = qec.id
         LEFT JOIN company_user cu ON dms.company_user_id = cu.user_id
         LEFT JOIN fs_user u ON dms.fs_user_id = u.user_id
+        LEFT JOIN fs_user_information_collection fuic ON dms.fs_user_id = fuic.user_id
         WHERE dms.doctor_id = #{doctorId}
+        <if test="exId != null "> and dms.ex_id = #{exId}</if>
         <if test="startTime != null ">  and DATE(dms.create_time) &gt;= DATE(#{startTime})</if>
         <if test="endTime != null ">  and DATE(dms.create_time) &lt;= DATE(#{endTime})</if>
         <if test="userName != null and userName != '' "> and qec.name like concat('%', #{userName}, '%')</if>
+        <if test="realName != null and realName != '' "> and fuic.user_name like concat('%', #{realName}, '%')</if>
+        <if test="companyUserName != null and companyUserName != '' "> and cu.nick_name like concat('%', #{companyUserName}, '%')</if>
         order by dms.create_time desc
     </select>
 </mapper>