|
@@ -2367,41 +2367,82 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
limit 10
|
|
limit 10
|
|
|
</select>
|
|
</select>
|
|
|
<select id="findUsersByParam" resultType="com.fs.his.dto.FindUsersByDTO">
|
|
<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+')">
|
|
|
|
|
|
|
+ <!-- 销售/其他用户:可查客户+销售(原逻辑) -->
|
|
|
|
|
+ <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,
|
|
SELECT user_id as id, 0 as type,
|
|
|
CONCAT(user_id, '_', IFNULL(nick_name, '')) as name
|
|
CONCAT(user_id, '_', IFNULL(nick_name, '')) as name
|
|
|
FROM fs_user
|
|
FROM fs_user
|
|
|
- WHERE phone = #{keywords}
|
|
|
|
|
|
|
+ WHERE nick_name LIKE CONCAT(#{keywords}, '%')
|
|
|
UNION
|
|
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>
|
|
|
|
|
+ <!-- company_user相关查询(销售) -->
|
|
|
|
|
+ SELECT user_id as id, 1 as type,
|
|
|
|
|
+ IFNULL(nick_name, '') as name
|
|
|
|
|
+ FROM company_user
|
|
|
|
|
+ WHERE user_id = #{keywords}
|
|
|
|
|
+ UNION
|
|
|
|
|
+ SELECT user_id as id, 1 as type,
|
|
|
|
|
+ IFNULL(nick_name, '') as name
|
|
|
|
|
+ FROM company_user
|
|
|
|
|
+ WHERE nick_name LIKE CONCAT(#{keywords}, '%')
|
|
|
|
|
+ <if test="keywords.matches('\\d+')">
|
|
|
|
|
+ UNION
|
|
|
|
|
+ SELECT user_id as id, 1 as type,
|
|
|
|
|
+ IFNULL(nick_name, '') as name
|
|
|
|
|
+ FROM company_user
|
|
|
|
|
+ WHERE phonenumber = #{keywords}
|
|
|
|
|
+ </if>
|
|
|
</if>
|
|
</if>
|
|
|
- <!-- company_user相关查询 -->
|
|
|
|
|
- SELECT user_id as id, 1 as type,
|
|
|
|
|
- IFNULL(nick_name, '') as name
|
|
|
|
|
- FROM company_user
|
|
|
|
|
- WHERE user_id = #{keywords}
|
|
|
|
|
- UNION
|
|
|
|
|
- SELECT user_id as id, 1 as type,
|
|
|
|
|
- IFNULL(nick_name, '') as name
|
|
|
|
|
- FROM company_user
|
|
|
|
|
- WHERE nick_name LIKE CONCAT(#{keywords}, '%')
|
|
|
|
|
- <if test="keywords.matches('\\d+')">
|
|
|
|
|
|
|
+ <!-- 客户搜索:keywords 以 C 开头,仅查销售 -->
|
|
|
|
|
+ <if test='onlySales != null and onlySales == true and searchPrefix != null and searchPrefix == "C"'>
|
|
|
|
|
+ SELECT user_id as id, 1 as type,
|
|
|
|
|
+ IFNULL(nick_name, '') as name
|
|
|
|
|
+ FROM company_user
|
|
|
|
|
+ WHERE user_id = #{keywords}
|
|
|
UNION
|
|
UNION
|
|
|
SELECT user_id as id, 1 as type,
|
|
SELECT user_id as id, 1 as type,
|
|
|
IFNULL(nick_name, '') as name
|
|
IFNULL(nick_name, '') as name
|
|
|
FROM company_user
|
|
FROM company_user
|
|
|
- WHERE phonenumber = #{keywords}
|
|
|
|
|
|
|
+ WHERE nick_name LIKE CONCAT(#{keywords}, '%')
|
|
|
|
|
+ <if test="keywords.matches('\\d+')">
|
|
|
|
|
+ UNION
|
|
|
|
|
+ SELECT user_id as id, 1 as type,
|
|
|
|
|
+ IFNULL(nick_name, '') as name
|
|
|
|
|
+ FROM company_user
|
|
|
|
|
+ WHERE phonenumber = #{keywords}
|
|
|
|
|
+ </if>
|
|
|
|
|
+ </if>
|
|
|
|
|
+ <!-- 客户搜索:keywords 以 D 开头,仅查医生 -->
|
|
|
|
|
+ <if test='onlySales != null and onlySales == true and searchPrefix != null and searchPrefix == "D"'>
|
|
|
|
|
+ SELECT doctor_id as id, 2 as type,
|
|
|
|
|
+ IFNULL(doctor_name, '') as name
|
|
|
|
|
+ FROM fs_doctor
|
|
|
|
|
+ WHERE doctor_id = #{keywords}
|
|
|
|
|
+ UNION
|
|
|
|
|
+ SELECT doctor_id as id, 2 as type,
|
|
|
|
|
+ IFNULL(doctor_name, '') as name
|
|
|
|
|
+ FROM fs_doctor
|
|
|
|
|
+ WHERE doctor_name LIKE CONCAT(#{keywords}, '%')
|
|
|
|
|
+ <if test="keywords.matches('\\d+')">
|
|
|
|
|
+ UNION
|
|
|
|
|
+ SELECT doctor_id as id, 2 as type,
|
|
|
|
|
+ IFNULL(doctor_name, '') as name
|
|
|
|
|
+ FROM fs_doctor
|
|
|
|
|
+ WHERE mobile = #{keywords}
|
|
|
|
|
+ </if>
|
|
|
</if>
|
|
</if>
|
|
|
</select>
|
|
</select>
|
|
|
|
|
|