Prechádzať zdrojové kódy

1、限制搜索到的用户信息

yys 2 dní pred
rodič
commit
858cd42a25

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

@@ -9,4 +9,6 @@ public class FindUserByParam implements Serializable {
     private Integer pageNum;
     private Integer pageSize;
     private String keywords;
+    /** 是否仅查询销售:客户搜索时为 true,销售/其他用户不受影响 */
+    private Boolean onlySales;
 }

+ 18 - 15
fs-service/src/main/resources/mapper/his/FsUserMapper.xml

@@ -2391,26 +2391,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         limit 10
     </select>
     <select id="findUsersByParam" resultType="com.fs.his.dto.FindUsersByDTO">
-        SELECT user_id as id, 0 as type,
-        CONCAT(user_id, '_', IFNULL(nick_name, '')) as name
-        FROM fs_user
-        WHERE user_id = #{keywords}
-        UNION
-        <!-- fs_user 按nick_name前缀搜索 -->
-        SELECT user_id as id, 0 as type,
-        CONCAT(user_id, '_', IFNULL(nick_name, '')) as name
-        FROM fs_user
-        WHERE nick_name LIKE CONCAT(#{keywords}, '%')
-        UNION
-        <!-- fs_user 按phone精确搜索(仅当keywords是数字时) -->
-        <if test="keywords.matches('\\d+')">
+        <!-- 客户搜索时 onlySales=true,仅返回销售信息,不查客户 -->
+        <if test="onlySales == null or onlySales == false">
+            SELECT user_id as id, 0 as type,
+            CONCAT(user_id, '_', IFNULL(nick_name, '')) as name
+            FROM fs_user
+            WHERE user_id = #{keywords}
+            UNION
+            <!-- fs_user 按nick_name前缀搜索 -->
             SELECT user_id as id, 0 as type,
             CONCAT(user_id, '_', IFNULL(nick_name, '')) as name
             FROM fs_user
-            WHERE phone = #{keywords}
+            WHERE nick_name LIKE CONCAT(#{keywords}, '%')
             UNION
+            <!-- fs_user 按phone精确搜索(仅当keywords是数字时) -->
+            <if test="keywords.matches('\\d+')">
+                SELECT user_id as id, 0 as type,
+                CONCAT(user_id, '_', IFNULL(nick_name, '')) as name
+                FROM fs_user
+                WHERE phone = #{keywords}
+                UNION
+            </if>
         </if>
-        <!-- company_user相关查询 -->
+        <!-- company_user相关查询(销售) -->
         SELECT user_id as id, 1 as type,
         IFNULL(nick_name, '') as name
         FROM company_user

+ 10 - 0
fs-user-app/src/main/java/com/fs/app/controller/UserController.java

@@ -101,6 +101,16 @@ public class UserController extends  AppBaseController {
         if(StringUtils.isBlank(param.getKeywords())) {
             return R.ok().put("data",new ArrayList<>());
         }
+
+        // 客户只能搜销售;销售可搜客户+销售。仅限制客户,不影响其他用户
+        String userId = getUserId();
+        if (StringUtils.isNotEmpty(userId)) {
+            int isSales = companyUserService.countCompanyUserByUserId(Long.parseLong(userId));
+            if (isSales <= 0) {
+                param.setOnlySales(true);
+            }
+        }
+
         PageHelper.startPage(param.getPageNum(), param.getPageSize());
 
         if(StringUtils.isNotBlank(param.getKeywords())){