SysUserMapper.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. package com.ydtech.modules.admin.dao;
  2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.ydtech.modules.admin.model.QuTeamNum;
  6. import com.ydtech.modules.admin.model.QuUserNum;
  7. import com.ydtech.modules.admin.model.SysUser;
  8. import com.ydtech.modules.admin.model.dto.QuTeamNumDto;
  9. import com.ydtech.modules.admin.model.dto.QuUserNumDto;
  10. import com.ydtech.modules.admin.model.dto.SysUserDto;
  11. import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
  12. import com.ydtech.modules.admin.model.vo.SysUserVO;
  13. import com.ydtech.modules.admin.model.vo.SysUserVOExt;
  14. import com.ydtech.modules.base.model.dto.PageDto;
  15. import org.apache.ibatis.annotations.Param;
  16. import org.apache.ibatis.annotations.Select;
  17. import org.springframework.stereotype.Repository;
  18. import java.util.List;
  19. /**
  20. * @author Administrator
  21. * @description 针对表【sys_user(用户管理)】的数据库操作Mapper
  22. * @createDate 2022-08-17 11:41:01
  23. * @Entity generator.domain.SysUser
  24. */
  25. @Repository
  26. public interface SysUserMapper extends BaseMapper<SysUser> {
  27. String userSql = "select t1.id as userId,t1.name as name,t1.sex as sex,t1.mobile as mobile,t1.`status` as `status`,t2.id as deptId,t2.`name` as deptName,sd2.id as pDeptId,sd2.`name` as pDeptName,t4.id as roleId,t4.`name` as roleName " +
  28. " from sys_user t1 " +
  29. " left join sys_dept t2 on t1.dept_id=t2.id " +
  30. " left join sys_dept sd2 on sd2.id=t2.parent_id " +
  31. " left join sys_user_role t3 on t1.id=t3.user_id" +
  32. " left join sys_role t4 on t3.role_id=t4.id" +
  33. " where t1.id=#{userId}";
  34. ;
  35. String internalUserSql = "select t.id,t.name,t.dept_id deptid,t2.name deptname,t3.id comid,t3.name comname,t.status " +
  36. "from sys_user t left join sys_dept t2 on t.dept_id=t2.id " +
  37. "left join sys_dept t3 on t2.parent_id=t3.id " +
  38. "left join esm_user_internal a on t.id=a.id " +
  39. "where t.id=#{userId}";
  40. String internalUserByDeptIdSql = "select t1.id,t1.name,t1.dept_id deptid,sd.name deptname,sd2.id comid,sd2.name comname,t2.status " +
  41. "from sys_user t1 left join esm_user_internal t2 on t1.id=t2.id " +
  42. "LEFT JOIN sys_dept sd ON t1.dept_id=sd.id " +
  43. "LEFT JOIN sys_dept sd2 ON sd2.id=sd.parent_id " +
  44. "where 1=1 and t2.isteamleader = '1' and t1.dept_id=#{deptId}";
  45. String selectUserParamSql = "select su.id as userId,su.name,info.sex,su.mobile,su.status" +
  46. ",sd.id as deptId,sd.name as deptName" +
  47. ",psd.id as pDeptId,psd.name as pDeptName" +
  48. ",t4.id as roleId" +
  49. ",t4.name as roleName";
  50. String selectUserFromSql = " from sys_user su " +
  51. " left join sys_dept sd on su.dept_id=sd.id " +
  52. " left join sys_dept psd on sd.parent_id=psd.id " +
  53. " left join sys_user_info info on info.id=su.id " +
  54. " left join sys_user_role t3 on su.id=t3.user_id " +
  55. " left join sys_role t4 on t3.role_id=t4.id " +
  56. " where 1=1 " +
  57. " AND sd.id &lt;&gt; '' "
  58. + "";
  59. String selectUserFromWhereSql = " " +
  60. // "<if test='page.columnFilters.usertype !=null and page.columnFilters.usertype.value!=\"\" and page.columnFilters.usertype.value!=null '>" +
  61. // " and su.usertype = #{page.columnFilters.usertype.value}" +
  62. // "</if> " +
  63. // "<if test='page.columnFilters.approvalStatus !=null and page.columnFilters.approvalStatus.value!=\"\" and page.columnFilters.approvalStatus.value!=null '>" +
  64. // " and su.approval_status = #{page.columnFilters.approvalStatus.value}" +
  65. // "</if> " +
  66. "<if test='page.dto !=null '> " +
  67. "<if test='page.dto.status !=null and page.dto.status!=\"\" '> " +
  68. " and su.status = #{page.dto.status}" +
  69. "</if> " +
  70. "<if test='page.dto.name !=null and page.dto.name!=\"\" '> " +
  71. " and su.name like concat('%',#{page.dto.name},'%')" +
  72. "</if> " +
  73. "<if test='page.dto.userId !=null and page.dto.userId!=\"\" '>" +
  74. " and su.id = #{page.dto.userId}" +
  75. "</if> " +
  76. "<if test='page.dto.mobile !=null and page.dto.mobile!=\"\" '>" +
  77. " and su.mobile = #{page.dto.mobile}" +
  78. "</if> " +
  79. "<if test='page.dto.deptId !=null and page.dto.deptId!=\"\" '>" +
  80. " and su.dept_id like concat('%',#{page.dto.deptId},'%')" +
  81. "</if> " +
  82. "<if test='page.dto.roleId !=null and page.dto.roleId!=\"\" '>" +
  83. " and t3.role_id = #{page.dto.roleId}" +
  84. "</if> " +
  85. "</if> " +
  86. "";
  87. // String selectUserFromWhereSql = " " +
  88. // " and su.usertype = #{page.columnFilters.usertype.value}" +
  89. // " and su.status = #{page.columnFilters.status.value}" +
  90. // " and su.name like concat('%',#{page.columnFilters.name.value},'%')" +
  91. // " and su.id = #{page.columnFilters.userId.value}" +
  92. // " and su.mobile = #{page.columnFilters.mobile.value}" +
  93. // "";
  94. @Select(internalUserSql)
  95. SysUserVO gainInternalUser(@Param("userId") String userId);
  96. @Select(internalUserByDeptIdSql)
  97. SysUserVO gainInternalUserByDeptId(@Param("deptId") String deptId);
  98. @Select("SELECT u.id,u.name,r.id roleId,r.name roleName FROM sys_user u " +
  99. "LEFT JOIN sys_user_role sur ON sur.user_id = u.id " +
  100. "LEFT JOIN sys_role r ON r.id = sur.role_id WHERE r.id IN ('21') and u.status=1 and u.dept_id=#{deptId}")
  101. List<SysUserVO> findByReferrerId(@Param("deptId") String deptId);
  102. @Select("SELECT u.id,u.name FROM sys_user u " +
  103. "LEFT JOIN sys_user_role sur ON sur.user_id = u.id " +
  104. "LEFT JOIN sys_role r ON r.id = sur.role_id WHERE r.id IN ('22') and u.status=1 and u.id NOT LIKE '%M%'")
  105. List<SysUser> findBackListByDeptId(@Param("deptId") String deptId);
  106. List<SysUserVO> findListByDeptId(@Param("sysUser") SysUser sysUser);
  107. Page<SysUserBaseVO> gainUserBaseInfo(@Param("page") Page page, @Param("user") SysUserDto user);
  108. IPage<SysUserBaseVO> findUserList(@Param("page") Page page, @Param("user") SysUserDto user);
  109. IPage<SysUserBaseVO> findBackUserList(@Param("page") Page page, @Param("user") SysUserDto user);
  110. /**
  111. * 获取用户列表
  112. * @param page 分页信息
  113. * @param sysUser 查询条件
  114. * @param containsSubDept 是否包含下级机构
  115. * @return
  116. */
  117. public IPage<SysUser> selectUserPage(Page page, @Param("sysUser") SysUser sysUser, @Param("containsSubDept") String containsSubDept);
  118. // @Select("select count(1) " + selectUserFromSql + selectUserFromWhereSql)
  119. @Select({"<script>", "select count(1) ", selectUserFromSql, selectUserFromWhereSql, "</script>"})
  120. int gainUserBaseInfoCount(@Param("page") PageDto pageDto);
  121. @Select(userSql)
  122. SysUserBaseVO selectUserById(@Param("userId") String userId);
  123. String selectSql = "SELECT u.* FROM sys_user u " +
  124. "LEFT JOIN sys_user_role sur ON sur.user_id = u.id " +
  125. " WHERE sur.role_id = #{roleId} and u.status=1 " +
  126. "<if test='userId!=\"\" '>" +
  127. " and u.id=#{userId} " +
  128. "</if> " ;
  129. @Select({"<script>",selectSql,"</script>"})
  130. List<SysUser> findAllAgentRoleUser(@Param("userId") String userId,@Param("roleId") String roleId);
  131. List<QuTeamNum> getDept(@Param("quTeamNumDto")QuTeamNumDto quTeamNumDto);
  132. List<QuTeamNum> getDeptByCompany(@Param("quTeamNumDto")QuTeamNumDto quTeamNumDto);
  133. List<QuTeamNum> getUser(@Param("quTeamNumDto")QuTeamNumDto quTeamNumDto);
  134. List<QuUserNum> getUserNum(@Param("quUserNumDto") QuUserNumDto quUserNumDto);
  135. List<QuUserNum> getUserByCompany(@Param("quUserNumDto") QuUserNumDto quUserNumDto);
  136. /**
  137. * @version
  138. * @author: hxl
  139. * @Date: 2024/4/15 17:51
  140. * @Description: 添加查询后线人员
  141. */
  142. String findQXUserSql=" SELECT t1.id AS userId,t1.NAME AS NAME,t1.mobile AS mobile,t1.`status` AS `status`,t2.id AS deptId,t2.`name` AS deptName,sd2.id AS pDeptId,sd2.`name` AS pDeptName " +
  143. " FROM sys_user t1 LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id " +
  144. " WHERE t1.`status` = 1 AND t1.id not LIKE '%M%' "+
  145. "<if test='userId!=\"\" and userId!=null '>" +
  146. " AND t1.id=#{userId} " +
  147. "</if> ";
  148. @Select({"<script>",findQXUserSql,"</script>"})
  149. List<SysUserBaseVO> findQXUserList(@Param("userId") String userId);
  150. /**
  151. * @version
  152. * @author: hxl
  153. * @Date: 2024/4/16 16:25
  154. * @Description: 通过工号、姓名、手机号查询工号信息
  155. */
  156. List<SysUserBaseVO> getAllUsersByHospitality(@Param("user") SysUserVOExt sysUserVOExt);
  157. /**
  158. * @version
  159. * @author: hxl
  160. * @Date: 2024/4/16 16:25
  161. * @Description: 查询领导人为用户id的数据
  162. */
  163. @Select(" SELECT t1.id AS userId,t1.NAME AS NAME,t1.mobile AS mobile,t1.`status` AS `status`,t2.id AS deptId,t2.`name` AS deptName,sd2.id AS pDeptId,sd2.`name` AS pDeptName " +
  164. " FROM sys_user t1 LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id " +
  165. " WHERE t1.`status` = 1 AND t1.leader_id = #{userId}")
  166. List<SysUserBaseVO> getAllUsersByLeaderId(@Param("userId") String userId);
  167. /**
  168. * @version
  169. * @author: hxl
  170. * @Date: 2024/4/17 16:55
  171. * @Description: 查询所有的代理人
  172. */
  173. @Select(" SELECT su.id FROM sys_user su LEFT JOIN sys_user_info info ON info.id = su.id LEFT JOIN sys_dept sd ON su.dept_id = sd.id " +
  174. " LEFT JOIN sys_dept psd ON psd.id = sd.parent_id LEFT JOIN sys_user_role t3 ON su.id = t3.user_id LEFT JOIN sys_role t4 ON t3.role_id = t4.id " +
  175. " AND sd.del_flag = '0' and su.status = 1 " +
  176. " WHERE su.dept_id LIKE concat( '%', 9, '%' ) AND t3.role_id IN ( 20 ) AND sd.management_source = 2")
  177. List<String> getAgentUserIds();
  178. /**
  179. * @version
  180. * @author: hxl
  181. * @Date: 2024/4/18 16:15
  182. * @Description: 获取客服人员数据
  183. */
  184. List<SysUserBaseVO> getCustomerUsers(@Param("user") SysUserVOExt sysUserVOExt);
  185. /**
  186. * @version
  187. * @author: hxl
  188. * @Date: 2024/4/23 10:49
  189. * @Description: 通过用户id和角色ids查询机构ids
  190. */
  191. List<String> getDeptIdsByRoleIdsAndUserIds(@Param("userIds") List<String> agentUserIds, @Param("roleIds") List<String> roleIds);
  192. /**
  193. * @version
  194. * @author: hxl
  195. * @Date: 2024/4/23 11:39
  196. * @Description: 查询后线人员+分页
  197. */
  198. Page<SysUserBaseVO> findUserListByPage(@Param("page") Page<SysUserBaseVO> page, @Param("user") SysUserDto sysUserDto);
  199. /**
  200. * @version
  201. * @author: hxl
  202. * @Date: 2024/4/16 16:25
  203. * @Description: 查询领导人为用户id的数据ids数据
  204. */
  205. @Select(" SELECT t1.id FROM sys_user t1 WHERE t1.`status` = 1 AND t1.leader_id = #{userId}" )
  206. List<String> getUserIdsByLeaderId(@Param("userId") String userId);
  207. /**
  208. * @version
  209. * @author: hxl
  210. * @Date: 2024/4/25 8:50
  211. * @Description: 通过当前的用户查询渠道下的团队长的的管理的部门ids
  212. */
  213. List<String> getDeptIdsByUserIds(@Param("userId") String userId);
  214. /**
  215. * @version
  216. * @author: hxl
  217. * @Date: 2024/4/26 17:25
  218. * @Description: 查询用户分页+区域标志显示
  219. */
  220. Page<SysUserBaseVO> findUserListByAreaPage(@Param("page") Page<SysUserBaseVO> page, @Param("user") SysUserDto sysUserDto);
  221. /**
  222. * @version
  223. * @author: hxl
  224. * @Date: 2024/4/27 09:55
  225. * @Description: 查询所有的代理人
  226. */
  227. List<SysUserBaseVO> getAgentUserList();
  228. }