Prechádzať zdrojové kódy

add:判断用户是否是销售,课程批量关联公司,信息采集添加药师建议

ct 1 týždeň pred
rodič
commit
1e612aafb9

+ 12 - 0
fs-admin/src/main/java/com/fs/course/controller/FsUserCourseController.java

@@ -14,6 +14,7 @@ import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.course.config.CourseConfig;
 import com.fs.course.domain.FsUserCourse;
+import com.fs.course.param.FsUserCourseBatchUpdateParam;
 import com.fs.course.params.FsUserCourseConfigParam;
 import com.fs.course.service.IFsUserCourseService;
 import com.fs.course.service.IFsUserCourseVideoService;
@@ -346,4 +347,15 @@ public class FsUserCourseController extends BaseController {
         sopTempService.syncTemplate(courseId);
         return toAjax(1);
     }
+
+    /**
+     * 修改课程
+     */
+    @PreAuthorize("@ss.hasPermi('course:userCourse:edit')")
+    @Log(title = "批量修改课程", businessType = BusinessType.UPDATE)
+    @PostMapping("/batchUpdateUserCourse")
+    public R batchUpdateUserCourse(@RequestBody FsUserCourseBatchUpdateParam param)
+    {
+        return fsUserCourseService.batchUpdateUserCourse(param);
+    }
 }

+ 5 - 0
fs-admin/src/main/java/com/fs/his/controller/FsUserController.java

@@ -418,4 +418,9 @@ public class FsUserController extends BaseController
         }
     }
 
+    @PostMapping("/checkIsSales")
+    public R checkIsSales(@RequestBody FsUser fsUser){
+        return fsUserService.checkIsSales(fsUser);
+    }
+
 }

+ 2 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyUserMapper.java

@@ -354,4 +354,6 @@ public interface CompanyUserMapper
     int unBind(String userId);
 
     Long getUserByUserName(String companyUserName);
+
+    List<CompanyUser> selectCompanyUserListByPhone(@Param("phone") String phone);
 }

+ 4 - 0
fs-service/src/main/java/com/fs/course/mapper/FsUserCourseMapper.java

@@ -335,4 +335,8 @@ public interface FsUserCourseMapper
      */
     @Update("update fs_user_course set config_json = #{configJson} where course_id = #{id}")
     void editConfig(@Param("id") Long id, @Param("configJson") String configJson);
+
+    List<FsUserCourse> selectFsUserCourseByCourseIds(@Param("courseIds")List<Long> courseIds);
+
+    int batchUpdateUserCourse(@Param("list")List<FsUserCourse> list);
 }

+ 11 - 0
fs-service/src/main/java/com/fs/course/param/FsUserCourseBatchUpdateParam.java

@@ -0,0 +1,11 @@
+package com.fs.course.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class FsUserCourseBatchUpdateParam {
+    private List<Long> courseIds;
+    private List<Long> companyIds;
+}

+ 2 - 0
fs-service/src/main/java/com/fs/course/service/IFsUserCourseService.java

@@ -137,4 +137,6 @@ public interface IFsUserCourseService {
      * 修改课堂配置
      */
     void editConfig(Long id, String configJson);
+
+    R batchUpdateUserCourse(FsUserCourseBatchUpdateParam param);
 }

+ 32 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseServiceImpl.java

@@ -806,6 +806,38 @@ public class FsUserCourseServiceImpl implements IFsUserCourseService
         fsUserCourseMapper.editConfig(id, configJson);
     }
 
+    @Override
+    public R batchUpdateUserCourse(FsUserCourseBatchUpdateParam param) {
+        List<Long> courseIds = param.getCourseIds();
+        if (courseIds == null || courseIds.isEmpty()) {
+            return R.ok();
+        }
+        List<Long> companyIds = param.getCompanyIds();
+        if (companyIds == null || companyIds.isEmpty()) {
+            return R.ok();
+        }
+        StringBuilder companyIdsAllStr = new StringBuilder();
+        companyIds.forEach(companyId -> companyIdsAllStr.append(companyId).append(","));
+        companyIdsAllStr.deleteCharAt(companyIdsAllStr.length() - 1);
+        List<FsUserCourse> list = fsUserCourseMapper.selectFsUserCourseByCourseIds(courseIds);
+        for (FsUserCourse fsUserCourse : list) {
+            String companyIdsNew = fsUserCourse.getCompanyIds();
+            if(StringUtils.isBlank(companyIdsNew)){
+                companyIdsNew = companyIdsAllStr.toString();
+            } else {
+                Set<Long> companyIdList = Arrays.stream(companyIdsNew.split(",")).map(Long::valueOf).collect(Collectors.toSet());
+                StringBuilder strBuilder = new StringBuilder();
+                companyIdList.addAll(companyIds);
+                companyIdList.forEach(companyId -> strBuilder.append(companyId).append(","));
+                strBuilder.deleteCharAt(strBuilder.length() - 1);
+                companyIdsNew =  strBuilder.toString();
+            }
+            fsUserCourse.setCompanyIds(companyIdsNew);
+        }
+        fsUserCourseMapper.batchUpdateUserCourse(list);
+        return R.ok();
+    }
+
 
     private Graphics2D initializeGraphics(BufferedImage combined) {
         Graphics2D graphics = combined.createGraphics();

+ 2 - 0
fs-service/src/main/java/com/fs/his/domain/FsUserInformationCollection.java

@@ -111,6 +111,8 @@ public class FsUserInformationCollection extends BaseEntity{
     private Integer doctorType2Confirm;
     //药师签名
     private String doctorType2Sign;
+    //药师建议
+    private String doctorType2Advice;
 
     //药品订单id
     private Long storeOrderId;

+ 2 - 0
fs-service/src/main/java/com/fs/his/service/IFsUserService.java

@@ -237,4 +237,6 @@ public interface IFsUserService
     R updatePasswordByPhone(String password, String encryptPhone);
 
     int realDeleteFsUserByUserId(Long userId);
+
+    R checkIsSales(FsUser fsUser);
 }

+ 2 - 2
fs-service/src/main/java/com/fs/his/service/impl/FsUserInformationCollectionServiceImpl.java

@@ -487,7 +487,6 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         }
         FsUserInformationCollection map = new FsUserInformationCollection();
         map.setId(collection.getId());
-        map.setDoctorAdvice(collection.getDoctorAdvice());
         map.setDoctorConfirm((collection.getDoctorConfirm()==null||collection.getDoctorConfirm()!=1)?-1:1);
         //医生确认时间
         map.setDoctorConfirmTime(DateUtils.getNowDate());
@@ -543,7 +542,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
             return R.error("不是药师身份,无法确认");
         }
         map.setDoctorType2Sign(fsDoctor.getSignUrl());
-        map.setDoctorAdvice(collection.getDoctorAdvice());
+        map.setDoctorType2Advice(collection.getDoctorType2Advice());
         if (answerVOS != null && !answerVOS.isEmpty()) {
             map.setJsonInfo(JSON.toJSONString(answerVOS));
         }
@@ -627,6 +626,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
             vo.setDoctorConfirm(collection.getDoctorConfirm());
             vo.setUserAdvice(collection.getUserAdvice());
             vo.setDoctorAdvice(collection.getDoctorAdvice());
+            vo.setDoctorType2Advice(collection.getDoctorType2Advice());
             vo.setDoctor(doctorMapper.selectFsDoctorByDoctorId(collection.getDoctorId()));
             vo.setAllergy(collection.getAllergy());
             vo.setRemark(collection.getRemark());

+ 34 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsUserServiceImpl.java

@@ -57,6 +57,7 @@ import com.fs.his.param.FsUserParam;
 import com.fs.his.service.IFsUserIntegralLogsService;
 import com.fs.his.service.IFsUserProjectTagService;
 import com.fs.his.service.IFsUserWxService;
+import com.fs.his.utils.PhoneUtil;
 import com.fs.his.vo.FsUserVO;
 import com.fs.his.vo.FsUserExportListVO;
 import com.fs.his.vo.FsUserFollowDoctorVO;
@@ -1624,4 +1625,37 @@ public class FsUserServiceImpl implements IFsUserService {
         return fsUserMapper.deleteFsUserByUserId(userId);
     }
 
+    @Override
+    public R checkIsSales(FsUser fsUser) {
+        Long userId = fsUser.getUserId();
+        if (userId == null || userId < 0){
+            return R.error("请选择需要修改的用户");
+        }
+        String phone = fsUser.getPhone();
+        if (StringUtils.isBlank(phone)){
+            return R.ok().put("data",false);
+        }
+        if (phone.length() != 11 && phone.length() != 8){
+            //解码
+            phone = PhoneUtil.decryptPhone(phone);
+        } else {
+            if (phone.contains("*")){
+                FsUser user = fsUserMapper.selectFsUserById(userId);
+                phone = user.getPhone();
+                if (phone.length() != 11 && phone.length() != 8){
+                    phone = PhoneUtil.decryptPhone(phone);
+                } else {
+                    return R.ok().put("data",false);
+                }
+            }
+        }
+        //匹配销售
+        List<CompanyUser> companyUsers = companyUserMapper.selectCompanyUserListByPhone(phone);
+        if (companyUsers == null || companyUsers.isEmpty()){
+            return R.ok().put("data",false);
+        } else {
+            return R.ok().put("data",true);
+        }
+    }
+
 }

+ 2 - 0
fs-service/src/main/java/com/fs/his/vo/FsUserInfoCollectionUVO.java

@@ -54,6 +54,8 @@ public class FsUserInfoCollectionUVO {
 
     private String doctorAdvice;
 
+    private String doctorType2Advice;
+
 
     private String patientJson;
 

+ 4 - 0
fs-service/src/main/resources/mapper/company/CompanyUserMapper.xml

@@ -740,5 +740,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="getUserByUserName" resultType="java.lang.Long">
         SELECT user_id FROM `company_user` WHERE user_name = #{companyUserName}
     </select>
+    <select id="selectCompanyUserListByPhone" resultType="com.fs.company.domain.CompanyUser">
+        select * from company_user
+         where phonenumber=#{phone} and del_flag = '0'
+    </select>
 
 </mapper>

+ 19 - 1
fs-service/src/main/resources/mapper/course/FsUserCourseMapper.xml

@@ -162,6 +162,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where cwl.user_id = #{userId} and uc.project = #{projectId}
           and cwl.create_time between curdate() and date_add(curdate(), interval 1 day) and cwl.send_type = 1
     </select>
+    <select id="selectFsUserCourseByCourseIds" resultType="com.fs.course.domain.FsUserCourse">
+        <include refid="selectFsUserCourseVo"/>
+        where course_id in
+        <foreach collection="courseIds" separator="," open="(" close=")" item="courseId">
+            #{courseId}
+        </foreach>
+    </select>
 
 
     <insert id="insertFsUserCourse" parameterType="FsUserCourse" useGeneratedKeys="true" keyProperty="courseId">
@@ -304,8 +311,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{courseId}
         </foreach>
     </update>
+    <update id="batchUpdateUserCourse">
+        UPDATE fs_user_course
+        SET company_ids =
+        <foreach collection="list" item="item" open="CASE course_id" close="END">
+            WHEN #{item.courseId} THEN #{item.companyIds}
+        </foreach>
+        WHERE course_id IN
+        <foreach collection="list" item="item" open="(" separator="," close=")">
+            #{item.courseId}
+        </foreach>
+    </update>
 
-<!--    <select id="getFsUserCourseList" resultType="com.fs.course.vo.newfs.FsUserCourseListVO">-->
+    <!--    <select id="getFsUserCourseList" resultType="com.fs.course.vo.newfs.FsUserCourseListVO">-->
 <!--        SELECT-->
 <!--        c.*,-->
 <!--        cc.cate_name,-->

+ 8 - 1
fs-service/src/main/resources/mapper/his/FsUserInformationCollectionMapper.xml

@@ -37,6 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="doctorType2Id"    column="doctor_type2_id"    />
         <result property="doctorType2Confirm"    column="doctor_type2_confirm"    />
         <result property="doctorType2Sign"    column="doctor_type2_sign"    />
+        <result property="doctorType2Advice"    column="doctor_type2_advice"    />
         <result property="storeOrderId"    column="store_order_id"    />
         <result property="isTemplate"    column="is_template"    />
         <result property="userCommitment"    column="user_commitment"    />
@@ -47,7 +48,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,package_order_id
              ,status,user_advice,doctor_advice,doctor_sign,doctor_confirm_time,sex,user_name,user_phone_four
-             ,allergy,remark,patient_id,doctor_type2_id,doctor_type2_confirm,doctor_type2_sign,store_order_id,is_template,
+             ,allergy,remark,patient_id,doctor_type2_id,doctor_type2_confirm,doctor_type2_sign,doctor_type2_advice,store_order_id,is_template,
             user_commitment from fs_user_information_collection
     </sql>
 
@@ -155,6 +156,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         fuic.doctor_type2_id,
         fuic.doctor_type2_confirm,
         fuic.doctor_type2_sign,
+        fuic.doctor_type2_advice,
         fuic.store_order_id
         FROM fs_user_information_collection fuic
         LEFT JOIN fs_store_order fso ON fuic.store_order_id = fso.order_id
@@ -198,6 +200,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             fuic.doctor_type2_id,
             fuic.doctor_type2_confirm,
             fuic.doctor_type2_sign,
+            fuic.doctor_type2_advice,
             fuic.store_order_id
         FROM fs_user_information_collection fuic
         WHERE fuic.user_confirm = 1 AND fuic.doctor_confirm = 0 AND fuic.user_confirm_time &lt;= NOW() - INTERVAL 5 MINUTE AND fuic.is_template != -1
@@ -210,6 +213,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
              ,uic.package_id,uic.pay_type,uic.amount,uic.is_package,uic.user_confirm2,uic.package_order_code,uic.package_order_id
              ,uic.status,uic.user_advice,uic.doctor_advice,uic.doctor_sign,uic.doctor_confirm_time,uic.sex,uic.user_name,uic.user_phone_four
              ,uic.allergy,uic.remark,uic.patient_id,uic.doctor_type2_id,uic.doctor_type2_confirm,uic.doctor_type2_sign,
+              uic.doctor_type2_advice,
               uic.store_order_id,uic.is_template,uic.user_commitment,
               d1.doctor_name AS doctor_name ,d2.doctor_name AS doctor_type2_name,
               cu.nick_name AS company_user_name,fp.package_name as package_name,fpa.patient_name AS patient_name,fpa.id_card AS patient_id_card
@@ -256,6 +260,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="doctorType2Id != null">doctor_type2_id,</if>
             <if test="doctorType2Confirm != null">doctor_type2_confirm,</if>
             <if test="doctorType2Sign != null">doctor_type2_sign,</if>
+            <if test="doctorType2Advice != null">doctor_type2_advice,</if>
             <if test="storeOrderId != null">store_order_id,</if>
             <if test="isTemplate != null">is_template,</if>
             <if test="userCommitment != null">user_commitment,</if>
@@ -292,6 +297,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="doctorType2Id != null">#{doctorType2Id},</if>
             <if test="doctorType2Confirm != null">#{doctorType2Confirm},</if>
             <if test="doctorType2Sign != null">#{doctorType2Sign},</if>
+            <if test="doctorType2Advice != null">#{doctorType2Advice},</if>
             <if test="storeOrderId != null">#{storeOrderId},</if>
             <if test="isTemplate != null">#{isTemplate},</if>
             <if test="userCommitment != null">#{userCommitment},</if>
@@ -332,6 +338,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="doctorType2Id != null">doctor_type2_id = #{doctorType2Id},</if>
             <if test="doctorType2Confirm != null">doctor_type2_confirm = #{doctorType2Confirm},</if>
             <if test="doctorType2Sign != null">doctor_type2_sign = #{doctorType2Sign},</if>
+            <if test="doctorType2Advice != null">doctor_type2_advice = #{doctorType2Advice},</if>
             <if test="storeOrderId != null">store_order_id = #{storeOrderId},</if>
             <if test="isTemplate != null">is_template = #{isTemplate},</if>
             <if test="userCommitment != null and userCommitment != ''">user_commitment = #{userCommitment},</if>