SysUserMapper.xml 57 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.ydtech.modules.admin.dao.SysUserMapper">
  4. <resultMap id="sysUserMap" type="com.ydtech.modules.admin.model.SysUser">
  5. <id column="id" jdbcType="VARCHAR" property="id"/>
  6. <result column="name" jdbcType="VARCHAR" property="name"/>
  7. <result column="mobile" jdbcType="VARCHAR" property="mobile"/>
  8. <result column="status" jdbcType="VARCHAR" property="status"/>
  9. <result column="identity" jdbcType="VARCHAR" property="identity"/>
  10. <result column="dept_id" jdbcType="VARCHAR" property="deptId"/>
  11. <result column="openid" jdbcType="VARCHAR" property="openid"/>
  12. <result column="role_id" jdbcType="VARCHAR" property="roleId"/>
  13. <result column="role_name" jdbcType="VARCHAR" property="roleName"/>
  14. <result column="dept_name" jdbcType="VARCHAR" property="deptName"/>
  15. <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
  16. <result column="create_by" jdbcType="VARCHAR" property="createBy"/>
  17. <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
  18. <result column="update_by" jdbcType="TIMESTAMP" property="updateBy"/>
  19. </resultMap>
  20. <sql id="Sys_User_Column_List">
  21. su.id,
  22. su.name,
  23. su.mobile,
  24. su.status,
  25. su.openid,
  26. su.identity,
  27. su.dept_id,
  28. su.create_by,
  29. su.create_time,
  30. su.update_by,
  31. su.update_time,
  32. sur.role_id,
  33. sr.name as role_name,
  34. sd.name as dept_name,
  35. su.create_time,
  36. su.create_by,
  37. su.update_time,
  38. su.update_by
  39. from sys_user su
  40. left join sys_user_role sur on su.id = sur.user_id
  41. left join sys_role sr on sur.role_id = sr.id
  42. left join sys_dept sd on su.dept_id = sd.id
  43. </sql>
  44. <sql id="Sys_User_Where_Clause">
  45. <where>
  46. <if test="sysUser.name != null &amp;&amp; sysUser.name != ''">
  47. and su.name = #{sysUser.name}
  48. </if>
  49. <if test="sysUser.mobile != null &amp;&amp; sysUser.mobile != ''">
  50. and su.mobile = #{sysUser.mobile}
  51. </if>
  52. <if test="sysUser.status != null">
  53. and su.status = #{sysUser.status}
  54. </if>
  55. <if test="containsSubDept != null &amp;&amp; containsSubDept == 0">
  56. and su.dept_id = #{sysUser.deptId}
  57. </if>
  58. <if test="containsSubDept != null &amp;&amp; containsSubDept == 1">
  59. <!-- 查询子部门 -->
  60. and su.dept_id like concat('%',#{sysUser.deptId},'%')
  61. </if>
  62. </where>
  63. </sql>
  64. <select id="selectUserPage" resultMap="sysUserMap">
  65. select
  66. <include refid="Sys_User_Column_List"/>
  67. <include refid="Sys_User_Where_Clause"></include>
  68. </select>
  69. <select id="gainUserBaseInfo" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  70. select
  71. su.id as userId,
  72. su.name,
  73. info.sex,
  74. su.mobile,
  75. su.status,
  76. sd.id as deptId,
  77. sd.name as deptName,
  78. psd.id as pDeptId,
  79. psd.name as pDeptName,
  80. t4.id as roleId,
  81. t4.name as roleName,
  82. (select approve_by from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveBy,
  83. (select approve_time from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as
  84. approveTime,
  85. (select id from sys_dept where id = psd.parent_id ) as levelFourDeptId,
  86. (select name from sys_dept where id = psd.parent_id) as levelFourDeptName
  87. from sys_user su
  88. left join sys_dept sd on su.dept_id=sd.id
  89. left join sys_dept psd on sd.parent_id=psd.id
  90. left join sys_user_info info on info.id=su.id
  91. left join sys_user_role t3 on su.id=t3.user_id
  92. left join sys_role t4 on t3.role_id=t4.id
  93. where 1=1
  94. AND sd.id &lt;&gt; ''
  95. <if test='user !=null '>
  96. <if test='user.status !=null and user.status!="" '>
  97. and su.status = #{user.status}
  98. </if>
  99. <if test='user.name !=null and user.name!="" '>
  100. and su.name like concat('%',#{user.name},'%')
  101. </if>
  102. <if test='user.userId !=null and user.userId!="" '>
  103. and su.id = #{user.userId}
  104. </if>
  105. <if test='user.mobile !=null and user.mobile!="" '>
  106. and su.mobile = #{user.mobile}
  107. </if>
  108. <if test='user.deptId !=null and user.deptId!="" '>
  109. and su.dept_id like concat('%',#{user.deptId},'%')
  110. </if>
  111. <if test='user.roleId !=null and user.roleId!="" '>
  112. and t3.role_id in (${user.roleId})
  113. </if>
  114. </if>
  115. </select>
  116. <select id="findUserList" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  117. SELECT
  118. su.id as userId,
  119. su.name,
  120. info.sex,
  121. su.mobile,
  122. su.status,
  123. sd.id as deptId,
  124. sd.name as deptName,
  125. t4.id as roleId,
  126. t4.name as roleName,
  127. sd.management_source,
  128. psd.id as pDeptId,
  129. psd.name as pDeptName,
  130. su.create_time as submitTime,
  131. (select approve_by from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveBy,
  132. (select approve_time from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveTime
  133. FROM
  134. sys_user su
  135. LEFT JOIN sys_user_info info ON info.id = su.id
  136. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  137. left join sys_dept psd on psd.id = sd.parent_id
  138. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  139. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  140. AND sd.del_flag = '0'
  141. WHERE
  142. 1=1
  143. <if test='user !=null '>
  144. <if test='user.status !=null and user.status!="" '>
  145. and su.status = #{user.status}
  146. </if>
  147. <if test='user.name !=null and user.name!="" '>
  148. and su.name like concat('%',#{user.name},'%')
  149. </if>
  150. <if test='user.userId !=null and user.userId!="" '>
  151. and su.id = #{user.userId}
  152. </if>
  153. <if test='user.mobile !=null and user.mobile!="" '>
  154. and su.mobile = #{user.mobile}
  155. </if>
  156. <if test='user.deptId !=null and user.deptId!="" '>
  157. and su.dept_id like concat('%',#{user.deptId},'%')
  158. </if>
  159. <if test='user.leaderName !=null and user.leaderName!="" '>
  160. and su.leader_name like concat('%',#{user.leaderName},'%')
  161. </if>
  162. <if test='user.roleId !=null and user.roleId!="" '>
  163. and t3.role_id in (${user.roleId})
  164. </if>
  165. <if test="user.agentFlag !=null and user.agentFlag != 0 ">
  166. and sd.management_source = #{user.agentFlag}
  167. </if>
  168. <if test="user.agentFlag != null and user.agentFlag == 0">
  169. and sd.management_source is null
  170. </if>
  171. </if>
  172. </select>
  173. <select id="findAllUserList" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  174. SELECT
  175. su.id as userId,
  176. su.name,
  177. info.sex,
  178. su.mobile,
  179. su.status,
  180. sd.id as deptId,
  181. sd.name as deptName,
  182. t4.id as roleId,
  183. t4.name as roleName,
  184. sd.management_source,
  185. psd.id as pDeptId,
  186. psd.name as pDeptName
  187. FROM
  188. sys_user su
  189. LEFT JOIN sys_user_info info ON info.id = su.id
  190. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  191. left join sys_dept psd on psd.id = sd.parent_id
  192. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  193. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  194. AND sd.del_flag = '0'
  195. WHERE
  196. 1=1
  197. <if test='user !=null '>
  198. <if test='user.status !=null and user.status!="" '>
  199. and su.status = #{user.status}
  200. </if>
  201. <if test='user.name !=null and user.name!="" '>
  202. and su.name like concat('%',#{user.name},'%')
  203. </if>
  204. <if test='user.userId !=null and user.userId!="" '>
  205. and su.id = #{user.userId}
  206. </if>
  207. <if test='user.mobile !=null and user.mobile!="" '>
  208. and su.mobile = #{user.mobile}
  209. </if>
  210. <if test='user.deptId !=null and user.deptId!="" '>
  211. and su.dept_id like concat('%',#{user.deptId},'%')
  212. </if>
  213. <if test='user.leaderName !=null and user.leaderName!="" '>
  214. and su.leader_name like concat('%',#{user.leaderName},'%')
  215. </if>
  216. <if test='user.roleId !=null and user.roleId!="" '>
  217. and t3.role_id in (${user.roleId})
  218. </if>
  219. </if>
  220. </select>
  221. <select id="findBackUserList" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  222. SELECT
  223. su.id as userId,
  224. su.name,
  225. su.position_name,
  226. info.sex,
  227. su.mobile,
  228. su.status,
  229. sd.id as deptId,
  230. sd.name as deptName,
  231. t4.id as roleId,
  232. t4.name as roleName,
  233. sd.management_source,
  234. psd.id as pDeptId,
  235. psd.name as pDeptName,
  236. su.create_time as submitTime,
  237. (select approve_by from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveBy,
  238. (select approve_time from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveTime
  239. FROM
  240. sys_user su
  241. LEFT JOIN sys_user_info info ON info.id = su.id
  242. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  243. left join sys_dept psd on psd.id = sd.parent_id
  244. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  245. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  246. AND sd.del_flag = '0'
  247. WHERE
  248. 1=1
  249. <if test='user !=null '>
  250. <if test='user.status !=null and user.status!="" '>
  251. and su.status = #{user.status}
  252. </if>
  253. <if test='user.name !=null and user.name!="" '>
  254. and su.name like concat('%',#{user.name},'%')
  255. </if>
  256. <if test='user.userId !=null and user.userId!="" '>
  257. and su.id = #{user.userId}
  258. </if>
  259. <if test='user.mobile !=null and user.mobile!="" '>
  260. and su.mobile = #{user.mobile}
  261. </if>
  262. <if test='user.deptId !=null and user.deptId!="" '>
  263. and su.dept_id like concat('%',#{user.deptId},'%')
  264. </if>
  265. <if test='user.leaderName !=null and user.leaderName!="" '>
  266. and su.leader_name like concat('%',#{user.leaderName},'%')
  267. </if>
  268. <if test="user.agentFlag !=null and user.agentFlag != 0 ">
  269. and sd.management_source = #{user.agentFlag}
  270. </if>
  271. <if test="user.agentFlag != null and user.agentFlag == 0">
  272. and sd.management_source is null
  273. </if>
  274. and su.id NOT LIKE '%M%'
  275. </if>
  276. </select>
  277. <select id="findBackUserList1" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  278. SELECT
  279. su.id as userId,
  280. su.name,
  281. su.position_name,
  282. info.sex,
  283. su.mobile,
  284. su.status,
  285. sd.id as deptId,
  286. sd.name as deptName,
  287. t4.id as roleId,
  288. t4.name as roleName,
  289. sd.management_source,
  290. psd.id as pDeptId,
  291. psd.name as pDeptName
  292. FROM
  293. sys_user su
  294. LEFT JOIN sys_user_info info ON info.id = su.id
  295. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  296. left join sys_dept psd on psd.id = sd.parent_id
  297. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  298. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  299. AND sd.del_flag = '0'
  300. WHERE
  301. 1=1
  302. and su.status = '1'
  303. <if test='user !=null '>
  304. <if test='user.name !=null and user.name!="" '>
  305. and su.name like concat('%',#{user.name},'%')
  306. </if>
  307. <if test='user.userId !=null and user.userId!="" '>
  308. and su.id = #{user.userId}
  309. </if>
  310. <if test='user.mobile !=null and user.mobile!="" '>
  311. and su.mobile = #{user.mobile}
  312. </if>
  313. <if test='user.deptId !=null and user.deptId!="" '>
  314. and su.dept_id like concat('%',#{user.deptId},'%')
  315. </if>
  316. <if test='user.leaderName !=null and user.leaderName!="" '>
  317. and su.leader_name like concat('%',#{user.leaderName},'%')
  318. </if>
  319. <if test="user.agentFlag !=null and user.agentFlag != 0 ">
  320. and sd.management_source = #{user.agentFlag}
  321. </if>
  322. <if test="user.agentFlag != null and user.agentFlag == 0">
  323. and sd.management_source is null
  324. </if>
  325. and su.id NOT LIKE '%M%'
  326. </if>
  327. </select>
  328. <resultMap id="QuTeamNumMap" type="com.ydtech.modules.admin.model.QuTeamNum">
  329. <id column="id" javaType="String" jdbcType="VARCHAR" property="deptId"/>
  330. <result column="name" javaType="String" jdbcType="VARCHAR" property="deptName"/>
  331. <result column="orderstatus" javaType="String" jdbcType="VARCHAR" property="orderStatus"/>
  332. <result column="companyId" javaType="String" jdbcType="VARCHAR" property="companyId"/>
  333. <result column="insCompany" javaType="String" jdbcType="VARCHAR" property="insCompany"/>
  334. <result column="count" javaType="String" jdbcType="VARCHAR" property="count"/>
  335. <result column="jqpremium" javaType="String" jdbcType="VARCHAR" property="jqPremiumSum"/>
  336. <result column="sypremium" javaType="String" jdbcType="VARCHAR" property="syPremiumSum"/>
  337. <result column="taxamount" javaType="String" jdbcType="VARCHAR" property="taxaMountSum"/>
  338. </resultMap>
  339. <select id="getDept" resultMap="QuTeamNumMap">
  340. SELECT
  341. sd.id,
  342. sd.name,
  343. i.orderstatus,
  344. i.count,
  345. i.jqpremium,
  346. i.sypremium,
  347. i.taxamount
  348. FROM
  349. sys_dept sd
  350. LEFT JOIN (
  351. SELECT
  352. io.deptid AS deptid,
  353. iac.orderstatus AS orderstatus,
  354. count(*) AS count,
  355. sum( iac.jqpremium ) AS jqpremium,
  356. sum( iac.sypremium ) AS sypremium,
  357. sum( iac.taxamount ) AS taxamount
  358. FROM
  359. ins_orders io
  360. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  361. WHERE
  362. iac.orderstatus in (1,2,3)
  363. <if test="quTeamNumDto.createTimeStart != null">
  364. and io.createtime &gt;= #{quTeamNumDto.createTimeStart}
  365. </if>
  366. <if test="quTeamNumDto.createTimeEnd != null">
  367. and io.createtime &lt;= #{quTeamNumDto.createTimeEnd}
  368. </if>
  369. GROUP BY
  370. iac.orderstatus,
  371. io.userid,
  372. io.deptid
  373. ) AS i ON i.deptid = sd.id
  374. WHERE
  375. sd.del_flag = 0
  376. <if test="quTeamNumDto.deptId != null and quTeamNumDto.deptId != ''">
  377. and sd.id like concat(#{quTeamNumDto.deptId},'%')
  378. </if>
  379. <if test="quTeamNumDto.deptName != null and quTeamNumDto.deptName != ''">
  380. and sd.name like concat(#{quTeamNumDto.deptName},'%')
  381. </if>
  382. </select>
  383. <select id="getDeptByCompany" resultMap="QuTeamNumMap">
  384. SELECT
  385. iac.company_id as companyId,
  386. iac.inscompany as insCompany,
  387. COUNT(*) AS quoteNum,
  388. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
  389. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  390. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremium,
  391. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremium,
  392. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamount,
  393. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS totalSumpremium
  394. FROM
  395. ins_orders io
  396. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  397. WHERE
  398. iac.orderstatus IN ( 1, 2, 3 )
  399. <if test="quTeamNumDto.deptId != null and quTeamNumDto.deptId != ''">
  400. and io.deptid = #{quTeamNumDto.deptId}
  401. </if>
  402. GROUP BY
  403. iac.company_id,
  404. iac.inscompany
  405. </select>
  406. <resultMap id="QuUserNumMap" type="com.ydtech.modules.admin.model.QuTeamNum">
  407. <id column="id" javaType="String" jdbcType="VARCHAR" property="userId"/>
  408. <result column="name" javaType="String" jdbcType="VARCHAR" property="userName"/>
  409. <result column="orderstatus" javaType="String" jdbcType="VARCHAR" property="orderStatus"/>
  410. <result column="count" javaType="String" jdbcType="VARCHAR" property="count"/>
  411. <result column="jqpremium" javaType="String" jdbcType="VARCHAR" property="jqPremiumSum"/>
  412. <result column="sypremium" javaType="String" jdbcType="VARCHAR" property="syPremiumSum"/>
  413. <result column="taxamount" javaType="String" jdbcType="VARCHAR" property="taxaMountSum"/>
  414. </resultMap>
  415. <select id="getUser" resultMap="QuUserNumMap">
  416. SELECT
  417. su.id,
  418. su.name,
  419. i.orderstatus,
  420. i.count,
  421. i.jqpremium,
  422. i.sypremium,
  423. i.taxamount
  424. FROM
  425. sys_user su
  426. LEFT JOIN (
  427. SELECT
  428. io.userid AS userid,
  429. iac.orderstatus AS orderstatus,
  430. count(*) AS count,
  431. sum( iac.jqpremium ) AS jqpremium,
  432. sum( iac.sypremium ) AS sypremium,
  433. sum( iac.taxamount ) AS taxamount
  434. FROM
  435. ins_orders io
  436. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  437. WHERE
  438. iac.orderstatus in (1,2,3)
  439. <if test="quTeamNumDto.createTimeStart != null">
  440. and io.createtime &gt;= #{quTeamNumDto.createTimeStart}
  441. </if>
  442. <if test="quTeamNumDto.createTimeEnd != null">
  443. and io.createtime &lt;= #{quTeamNumDto.createTimeEnd}
  444. </if>
  445. GROUP BY
  446. iac.orderstatus,
  447. io.userid
  448. ) AS i ON i.userid = su.id
  449. WHERE
  450. su.status = 1
  451. <if test="quTeamNumDto.deptId != null and quTeamNumDto.deptId != ''">
  452. and su.dept_id like concat(#{quTeamNumDto.deptId},'%')
  453. </if>
  454. <if test="quTeamNumDto.userName != null and quTeamNumDto.userName != ''">
  455. and su.name like concat(#{quTeamNumDto.userName},'%')
  456. </if>
  457. </select>
  458. <select id="findListByDeptId" resultType="com.ydtech.modules.admin.model.vo.SysUserVO">
  459. SELECT
  460. su.id,
  461. su.name
  462. FROM
  463. sys_user su
  464. WHERE
  465. su.status = 1
  466. <if test="sysUser.deptId != null and sysUser.deptId != ''">
  467. and su.dept_id = #{sysUser.deptId}
  468. </if>
  469. <if test="sysUser.id != null and sysUser.id != ''">
  470. and su.id != #{sysUser.id}
  471. </if>
  472. </select>
  473. <select id="findListByDeptIdNew" resultType="com.ydtech.modules.admin.model.vo.SysUserVO">
  474. SELECT
  475. su.id,
  476. su.name
  477. FROM
  478. sys_user su
  479. WHERE
  480. su.status = 1
  481. <if test="sysUser.deptId != null and sysUser.deptId != ''">
  482. and su.id like concat('%',#{sysUser.deptId},'%')
  483. </if>
  484. <if test="sysUser.id != null and sysUser.id != ''">
  485. and su.id != #{sysUser.id}
  486. </if>
  487. </select>
  488. <select id="getUserNum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  489. SELECT
  490. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping}) AS areacode,
  491. COUNT(*) AS quoteNum,
  492. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
  493. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  494. SUM(CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS subWaitAuditSum,
  495. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END) AS subWaitPaySum,
  496. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS subAcceptInsuranceSum,
  497. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
  498. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
  499. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
  500. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS totalSumpremium
  501. FROM
  502. ins_orders io
  503. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  504. WHERE
  505. iac.orderstatus IN ( 0 ,1, 2, 3, 4 )
  506. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  507. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  508. </if>
  509. <if test="quUserNumDto.userIds != null">
  510. and io.userid IN
  511. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  512. #{id}
  513. </foreach>
  514. </if>
  515. GROUP BY
  516. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping})
  517. </select>
  518. <select id="getMainWaitAuditSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  519. SELECT
  520. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping}) AS areacode,
  521. SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum
  522. FROM
  523. ins_orders io
  524. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  525. WHERE
  526. iac.orderstatus IN (1)
  527. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  528. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  529. </if>
  530. <if test="quUserNumDto.userIds != null">
  531. and io.userid IN
  532. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  533. #{id}
  534. </foreach>
  535. </if>
  536. GROUP BY
  537. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping})
  538. </select>
  539. <select id="getMainWaitPaySum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  540. SELECT
  541. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping}) AS areacode,
  542. SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum
  543. FROM
  544. ins_orders io
  545. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  546. WHERE
  547. iac.orderstatus IN (2)
  548. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  549. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  550. </if>
  551. <if test="quUserNumDto.userIds != null">
  552. and io.userid IN
  553. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  554. #{id}
  555. </foreach>
  556. </if>
  557. GROUP BY
  558. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping})
  559. </select>
  560. <select id="getMainAcceptInsuranceSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  561. SELECT
  562. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping}) AS areacode,
  563. SUM(CASE WHEN io.orderstatus = 3 THEN 1 ELSE 0 END) AS mainAcceptInsuranceSum
  564. FROM
  565. ins_orders io
  566. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  567. WHERE
  568. iac.orderstatus IN (3)
  569. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  570. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  571. </if>
  572. <if test="quUserNumDto.userIds != null">
  573. and io.userid IN
  574. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  575. #{id}
  576. </foreach>
  577. </if>
  578. GROUP BY
  579. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping})
  580. </select>
  581. <select id="getUserByCompany" resultType="com.ydtech.modules.admin.model.QuUserNum">
  582. SELECT
  583. iac.company_id as companyId,
  584. iac.inscompany as insCompany,
  585. COUNT(*) AS quoteNum,
  586. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
  587. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  588. SUM(CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS subWaitAuditSum,
  589. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END) AS subWaitPaySum,
  590. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS subAcceptInsuranceSum,
  591. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
  592. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
  593. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
  594. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS totalSumpremium
  595. FROM
  596. ins_orders io
  597. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  598. WHERE
  599. iac.orderstatus IN ( 0, 1, 2, 3, 4 )
  600. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  601. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  602. </if>
  603. <if test="quUserNumDto.userIds != null">
  604. and io.userid IN
  605. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  606. #{id}
  607. </foreach>
  608. </if>
  609. GROUP BY
  610. iac.company_id,
  611. iac.inscompany
  612. </select>
  613. <select id="getComMainWaitAuditSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  614. SELECT
  615. iac.company_id as companyId,
  616. iac.inscompany as insCompany,
  617. SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum
  618. FROM
  619. ins_orders io
  620. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  621. WHERE
  622. iac.orderstatus IN (1)
  623. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  624. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  625. </if>
  626. <if test="quUserNumDto.userIds != null">
  627. and io.userid IN
  628. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  629. #{id}
  630. </foreach>
  631. </if>
  632. GROUP BY
  633. iac.company_id,
  634. iac.inscompany
  635. </select>
  636. <select id="getComMainWaitPaySum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  637. SELECT
  638. iac.company_id as companyId,
  639. iac.inscompany as insCompany,
  640. SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum
  641. FROM
  642. ins_orders io
  643. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  644. WHERE
  645. iac.orderstatus IN (2)
  646. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  647. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  648. </if>
  649. <if test="quUserNumDto.userIds != null">
  650. and io.userid IN
  651. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  652. #{id}
  653. </foreach>
  654. </if>
  655. GROUP BY
  656. iac.company_id,
  657. iac.inscompany
  658. </select>
  659. <select id="getComMainAcceptInsuranceSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  660. SELECT
  661. iac.company_id as companyId,
  662. iac.inscompany as insCompany,
  663. SUM(CASE WHEN io.orderstatus = 3 THEN 1 ELSE 0 END) AS mainAcceptInsuranceSum
  664. FROM
  665. ins_orders io
  666. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  667. WHERE
  668. iac.orderstatus IN (3)
  669. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  670. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  671. </if>
  672. <if test="quUserNumDto.userIds != null">
  673. and io.userid IN
  674. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  675. #{id}
  676. </foreach>
  677. </if>
  678. GROUP BY
  679. iac.company_id,
  680. iac.inscompany
  681. </select>
  682. <select id="getUserDetail" resultType="com.ydtech.modules.admin.model.QuUserNum">
  683. SELECT
  684. io.userid,
  685. io.username,
  686. COUNT(*) AS quoteNum,
  687. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
  688. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  689. SUM(CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS subWaitAuditSum,
  690. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END) AS subWaitPaySum,
  691. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS subAcceptInsuranceSum,
  692. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
  693. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
  694. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
  695. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS totalSumpremium
  696. FROM
  697. ins_orders io
  698. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  699. WHERE
  700. iac.orderstatus IN ( 0 ,1, 2, 3, 4 )
  701. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  702. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  703. </if>
  704. <if test="quUserNumDto.userIds != null">
  705. and io.userid IN
  706. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  707. #{id}
  708. </foreach>
  709. </if>
  710. GROUP BY
  711. io.userid,
  712. io.username
  713. </select>
  714. <select id="getUserMainWaitAuditSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  715. SELECT
  716. io.userid,
  717. io.username,
  718. SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum
  719. FROM
  720. ins_orders io
  721. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  722. WHERE
  723. iac.orderstatus IN (1)
  724. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  725. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  726. </if>
  727. <if test="quUserNumDto.userIds != null">
  728. and io.userid IN
  729. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  730. #{id}
  731. </foreach>
  732. </if>
  733. GROUP BY
  734. io.userid,
  735. io.username
  736. </select>
  737. <select id="getUserMainWaitPaySum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  738. SELECT
  739. io.userid,
  740. io.username,
  741. SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum
  742. FROM
  743. ins_orders io
  744. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  745. WHERE
  746. iac.orderstatus IN (2)
  747. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  748. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  749. </if>
  750. <if test="quUserNumDto.userIds != null">
  751. and io.userid IN
  752. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  753. #{id}
  754. </foreach>
  755. </if>
  756. GROUP BY
  757. io.userid,
  758. io.username
  759. </select>
  760. <select id="getUserMainAcceptInsuranceSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  761. SELECT
  762. io.userid,
  763. io.username,
  764. SUM(CASE WHEN io.orderstatus = 3 THEN 1 ELSE 0 END) AS mainAcceptInsuranceSum
  765. FROM
  766. ins_orders io
  767. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  768. WHERE
  769. iac.orderstatus IN (3)
  770. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  771. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  772. </if>
  773. <if test="quUserNumDto.userIds != null">
  774. and io.userid IN
  775. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  776. #{id}
  777. </foreach>
  778. </if>
  779. GROUP BY
  780. io.userid,
  781. io.username
  782. </select>
  783. <select id="getAllUsersByHospitality" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  784. SELECT
  785. su.id as userId,
  786. su.name,
  787. info.sex,
  788. su.mobile,
  789. su.status,
  790. sd.id as deptId,
  791. sd.name as deptName,
  792. t4.id as roleId,
  793. t4.name as roleName,
  794. sd.management_source as managementSource,
  795. psd.id as pDeptId,
  796. psd.name as pDeptName,
  797. "" as noType
  798. FROM
  799. sys_user su
  800. LEFT JOIN sys_user_info info ON info.id = su.id
  801. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  802. left join sys_dept psd on psd.id = sd.parent_id
  803. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  804. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  805. AND sd.del_flag = '0'
  806. WHERE
  807. su.status != 0 AND su.id LIKE '%M%'
  808. <if test='user !=null '>
  809. <if test='user.name !=null and user.name!="" '>
  810. and su.name = #{user.name}
  811. </if>
  812. <if test='user.userId !=null and user.userId!="" '>
  813. and su.id = #{user.userId}
  814. </if>
  815. <if test='user.mobile !=null and user.mobile!="" '>
  816. and su.mobile = #{user.mobile}
  817. </if>
  818. <if test='user.identity !=null and user.identity!="" '>
  819. and su.identity = #{user.identity}
  820. </if>
  821. </if>
  822. </select>
  823. <select id="getCustomerUsers" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  824. SELECT
  825. t1.id AS userId,
  826. t1.NAME AS NAME,
  827. t1.mobile AS mobile,
  828. t1.`status` AS `status`,
  829. t2.id AS deptId,
  830. t2.`name` AS deptName,
  831. sd2.id AS pDeptId,
  832. sd2.`name` AS pDeptName
  833. FROM
  834. sys_user t1
  835. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  836. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  837. WHERE
  838. t1.`status` = 1
  839. AND t1.id NOT LIKE '%M%'
  840. <if test='user !=null '>
  841. <if test='user.name !=null and user.name!="" '>
  842. and t1.name = #{user.name}
  843. </if>
  844. <if test='user.userId !=null and user.userId!="" '>
  845. and t1.id = #{user.userId}
  846. </if>
  847. <if test='user.mobile !=null and user.mobile!="" '>
  848. and t1.mobile = #{user.mobile}
  849. </if>
  850. <if test='user.identity !=null and user.identity!="" '>
  851. and t1.identity = #{user.identity}
  852. </if>
  853. </if>
  854. </select>
  855. <select id="getDeptIdsByRoleIdsAndUserIds" resultType="String">
  856. SELECT
  857. t2.id
  858. FROM
  859. sys_user t1
  860. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  861. LEFT JOIN sys_user_role sur ON sur.user_id = t1.id
  862. WHERE
  863. t1.`status` = 1
  864. <if test="userIds != null and userIds.size>0" >
  865. AND
  866. t1.id IN
  867. <foreach collection="userIds" item="item" open="(" separator="," close=")">
  868. #{item}
  869. </foreach>
  870. </if>
  871. <if test="roleIds != null and roleIds.size>0" >
  872. AND
  873. sur.role_id IN
  874. <foreach collection="roleIds" item="item" open="(" separator="," close=")">
  875. #{item}
  876. </foreach>
  877. </if>
  878. GROUP BY t2.id
  879. </select>
  880. <select id="findUserListByPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  881. SELECT
  882. t1.id AS userId,
  883. t1.NAME AS NAME,
  884. t1.mobile AS mobile,
  885. t1.`status` AS `status`,
  886. t2.id AS deptId,
  887. t2.`name` AS deptName,
  888. sd2.id AS pDeptId,
  889. sd2.`name` AS pDeptName,
  890. CASE
  891. WHEN ( SELECT count( 0 ) FROM sys_user_link_pl_agreement link WHERE link.user_id = t1.id) > 0 THEN
  892. true ELSE false
  893. END AS flag
  894. FROM
  895. sys_user t1
  896. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  897. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  898. WHERE
  899. t1.`status` = 1
  900. AND t1.id NOT LIKE '%M%'
  901. <if test='user !=null '>
  902. <if test='user.name !=null and user.name!="" '>
  903. and t1.name like CONCAT('%', #{user.name}, '%')
  904. </if>
  905. <if test='user.userId !=null and user.userId!="" '>
  906. and t1.id = #{user.userId}
  907. </if>
  908. <if test='user.mobile !=null and user.mobile!="" '>
  909. and t1.mobile = #{user.mobile}
  910. </if>
  911. <if test='user.deptId !=null and user.deptId!="" '>
  912. and t2.id like CONCAT('', #{user.deptId}, '%')
  913. </if>
  914. </if>
  915. order by flag desc
  916. </select>
  917. <select id="getDeptIdsByUserIds" resultType="String">
  918. SELECT
  919. t2.id
  920. FROM
  921. sys_user t1
  922. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  923. WHERE
  924. t1.`status` = 1
  925. AND EXISTS (
  926. SELECT
  927. *
  928. FROM
  929. (
  930. SELECT
  931. t1.id
  932. FROM
  933. sys_user t1
  934. LEFT JOIN sys_user_role sur ON sur.user_id = t1.id
  935. WHERE
  936. t1.`status` = 1
  937. AND t1.leader_id = #{userId}
  938. AND EXISTS (
  939. SELECT
  940. *
  941. FROM
  942. ( SELECT 1 AS id UNION ALL SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 21 ) roleAll
  943. WHERE
  944. roleAll.id = sur.role_id
  945. )
  946. ) users
  947. WHERE
  948. users.id = t1.id
  949. )
  950. GROUP BY
  951. t2.id
  952. </select>
  953. <select id="findUserListByAreaPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  954. SELECT
  955. t1.id AS userId,
  956. t1.NAME AS NAME,
  957. t1.mobile AS mobile,
  958. t1.`status` AS `status`,
  959. t2.id AS deptId,
  960. t2.`name` AS deptName,
  961. sd2.id AS pDeptId,
  962. sd2.`name` AS pDeptName,
  963. CASE
  964. WHEN ( SELECT count( 0 ) FROM sys_user_link_area link WHERE link.user_id = t1.id) > 0 THEN
  965. true ELSE false
  966. END AS flag
  967. FROM
  968. sys_user t1
  969. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  970. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  971. WHERE
  972. t1.`status` = 1
  973. AND t1.id NOT LIKE '%M%'
  974. <if test='user !=null '>
  975. <if test='user.name !=null and user.name!="" '>
  976. and t1.name like CONCAT('%', #{user.name}, '%')
  977. </if>
  978. <if test='user.userId !=null and user.userId!="" '>
  979. and t1.id = #{user.userId}
  980. </if>
  981. <if test='user.mobile !=null and user.mobile!="" '>
  982. and t1.mobile = #{user.mobile}
  983. </if>
  984. <if test='user.deptId !=null and user.deptId!="" '>
  985. and t2.id like CONCAT('', #{user.deptId}, '%')
  986. </if>
  987. </if>
  988. order by flag desc
  989. </select>
  990. <select id="getAgentUserIdsByAreaIds" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  991. SELECT
  992. su.id AS userId,
  993. su.dept_id AS deptId
  994. FROM
  995. sys_user su
  996. LEFT JOIN sys_user_info info ON info.id = su.id
  997. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  998. LEFT JOIN sys_dept psd ON psd.id = sd.parent_id
  999. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1000. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  1001. AND sd.del_flag = '0'
  1002. AND su.STATUS = 1
  1003. WHERE
  1004. t3.role_id =20
  1005. AND sd.management_source = 2
  1006. </select>
  1007. <select id="getCountByDeptAndRoleId" resultType="Integer">
  1008. SELECT
  1009. count( 0 )
  1010. FROM
  1011. sys_user su
  1012. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1013. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  1014. WHERE
  1015. su.dept_id = #{user.deptId}
  1016. AND t4.id = #{user.roleId}
  1017. </select>
  1018. <select id="findTDZUserIdByDeptId" resultType="String">
  1019. SELECT
  1020. su.id
  1021. FROM
  1022. sys_user su
  1023. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1024. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  1025. WHERE
  1026. su.dept_id = #{deptId}
  1027. AND t4.id = 21
  1028. </select>
  1029. <select id="findSumCountAndAvgAge" resultType="java.util.HashMap">
  1030. SELECT
  1031. count( su.id ) AS sumCount,
  1032. FLOOR(
  1033. avg(
  1034. TIMESTAMPDIFF(
  1035. YEAR,
  1036. STR_TO_DATE( SUBSTRING( su.identity, 7, 8 ), '%Y%m%d' ),
  1037. CURDATE()))) AS avgAge
  1038. FROM
  1039. sys_user su
  1040. WHERE
  1041. su.dept_id LIKE CONCAT( #{deptId}, '%' )
  1042. AND su.identity IS NOT NULL
  1043. </select>
  1044. <select id="findEducationSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1045. SELECT
  1046. uinfo.education AS NAME,
  1047. count( uinfo.education ) AS count
  1048. FROM
  1049. sys_user su
  1050. LEFT JOIN sys_user_info uinfo ON su.id = uinfo.id
  1051. WHERE
  1052. su.dept_id LIKE CONCAT( #{deptId}, '%' )
  1053. AND uinfo.education IS NOT NULL
  1054. GROUP BY
  1055. uinfo.education
  1056. </select>
  1057. <select id="findQXTDSumCountAndAvgAge" resultType="java.util.HashMap">
  1058. SELECT
  1059. count( su.id ) AS sumCount,
  1060. FLOOR(
  1061. avg(
  1062. TIMESTAMPDIFF(
  1063. YEAR,
  1064. STR_TO_DATE( SUBSTRING( su.identity, 7, 8 ), '%Y%m%d' ),
  1065. CURDATE()))) AS avgAge
  1066. FROM
  1067. sys_user su
  1068. LEFT JOIN sys_user_role ro ON su.id = ro.user_id
  1069. WHERE
  1070. su.dept_id LIKE CONCAT( #{deptId}, '%' )
  1071. AND ro.role_id=21
  1072. </select>
  1073. <select id="findQXDLSumCountAndAvgAge" resultType="java.util.HashMap">
  1074. SELECT
  1075. count( su.id ) AS sumCount,
  1076. FLOOR(
  1077. avg(
  1078. TIMESTAMPDIFF(
  1079. YEAR,
  1080. STR_TO_DATE( SUBSTRING( su.identity, 7, 8 ), '%Y%m%d' ),
  1081. CURDATE()))) AS avgAge
  1082. FROM
  1083. sys_user su
  1084. LEFT JOIN sys_dept dept ON su.dept_id = dept.id
  1085. WHERE
  1086. su.dept_id LIKE CONCAT(#{deptId}, '%' )
  1087. AND dept.management_source = #{type}
  1088. </select>
  1089. <select id="findQXTDAreaSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1090. SELECT
  1091. sa.area_cname AS NAME,
  1092. count( 0 ) AS count
  1093. FROM
  1094. sys_user su
  1095. LEFT JOIN sys_user_role ro ON su.id = ro.user_id
  1096. LEFT JOIN sys_area sa ON sa.area_code = SUBSTRING( LPAD( su.id, 8, 0 ), 3, 8 )
  1097. WHERE
  1098. su.dept_id LIKE CONCAT( #{deptId}, '%' )
  1099. AND ro.role_id=21
  1100. AND sa.area_cname IS NOT NULL
  1101. GROUP BY
  1102. sa.area_cname
  1103. </select>
  1104. <select id="findQXDLAreaSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1105. SELECT
  1106. sa.area_cname AS NAME,
  1107. count( 0 ) AS count
  1108. FROM
  1109. sys_user su
  1110. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1111. LEFT JOIN sys_area sa ON sa.area_code = SUBSTRING( LPAD( su.id, 8, 0 ), 3, 8 )
  1112. WHERE
  1113. sd.management_source = 2
  1114. AND sd.del_flag = '0'
  1115. AND su.STATUS = 1
  1116. AND sa.area_cname IS NOT NULL
  1117. GROUP BY
  1118. sa.area_cname
  1119. </select>
  1120. <select id="findQXTDSexSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1121. SELECT
  1122. CASE
  1123. WHEN
  1124. uinfo.sex = 'M' THEN
  1125. '男'
  1126. WHEN uinfo.sex = 'F' THEN
  1127. '女' ELSE ''
  1128. END AS NAME,
  1129. count( 0 ) AS count
  1130. FROM
  1131. sys_user su
  1132. LEFT JOIN sys_user_info uinfo ON su.id = uinfo.id
  1133. LEFT JOIN sys_user_role ro ON su.id = ro.user_id
  1134. WHERE
  1135. su.dept_id LIKE CONCAT(#{deptId}, '%' )
  1136. AND ro.role_id = 21
  1137. AND uinfo.sex IS NOT NULL
  1138. GROUP BY
  1139. uinfo.sex
  1140. </select>
  1141. <select id="findQXDLSexSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1142. SELECT
  1143. CASE
  1144. WHEN
  1145. uinfo.sex = 'M' THEN
  1146. '男'
  1147. WHEN uinfo.sex = 'F' THEN
  1148. '女' ELSE ''
  1149. END AS NAME,
  1150. count( 0 ) AS count
  1151. FROM
  1152. sys_user su
  1153. LEFT JOIN sys_user_info uinfo ON uinfo.id = su.id
  1154. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1155. WHERE
  1156. sd.management_source = 2
  1157. AND sd.del_flag = '0'
  1158. AND su.STATUS = 1
  1159. AND uinfo.sex IS NOT NULL
  1160. GROUP BY
  1161. uinfo.sex
  1162. </select>
  1163. <select id="findQXTDWhSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1164. SELECT
  1165. su.leader_name as name,
  1166. count( 0 ) AS count
  1167. FROM
  1168. sys_user su
  1169. LEFT JOIN sys_user_role ro ON su.id = ro.user_id
  1170. WHERE
  1171. su.dept_id LIKE CONCAT(#{deptId}, '%' )
  1172. AND ro.role_id = 21
  1173. AND su.leader_name IS NOT NULL
  1174. GROUP BY
  1175. su.leader_name
  1176. </select>
  1177. <select id="findQXDLWhSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1178. SELECT
  1179. su.leader_name as name,
  1180. count( 0 ) AS count
  1181. FROM
  1182. sys_user su
  1183. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1184. WHERE
  1185. sd.management_source = 2
  1186. AND sd.del_flag = '0'
  1187. AND su.STATUS = 1
  1188. AND su.leader_name IS NOT NULL
  1189. GROUP BY
  1190. su.leader_name
  1191. </select>
  1192. <select id="queryQXQDReportData"
  1193. resultType="com.ydtech.modules.admin.model.report.user.QianLineQDPersonnelReportDto">
  1194. SELECT
  1195. su.name as userName,
  1196. su.leader_name as leadName,
  1197. "渠道" as typeName,
  1198. "" as qdType
  1199. FROM
  1200. sys_user su
  1201. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1202. WHERE
  1203. sd.management_source = 1
  1204. AND sd.del_flag = '0'
  1205. AND su.STATUS = 1
  1206. and su.leader_name is not null
  1207. </select>
  1208. <select id="findQXDLUserList" resultType="com.ydtech.modules.admin.model.SysUser">
  1209. SELECT
  1210. su.id as id,
  1211. su.name as name
  1212. FROM
  1213. sys_user su
  1214. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1215. WHERE
  1216. sd.management_source = 2
  1217. AND sd.del_flag = '0'
  1218. AND su.STATUS = 1
  1219. AND su.leader_name IS NOT NULL
  1220. GROUP BY
  1221. su.leader_name
  1222. </select>
  1223. <select id="findHxUserList" resultType="com.ydtech.modules.admin.model.SysUser">
  1224. SELECT
  1225. t1.id AS id,
  1226. t1.NAME AS NAME,
  1227. t1.mobile AS mobile,
  1228. t1.`status` AS `status`,
  1229. t2.id AS deptId,
  1230. t2.`name` AS deptName,
  1231. sd2.id AS pDeptId,
  1232. sd2.`name` AS pDeptName
  1233. FROM
  1234. sys_user t1
  1235. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  1236. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  1237. WHERE
  1238. t1.`status` = 1
  1239. AND t1.id NOT LIKE '%M%'
  1240. </select>
  1241. <select id="queryHXReportDataNew" resultType="java.util.HashMap">
  1242. SELECT
  1243. IFNULL(sum(info.salary),0) as "salary",
  1244. IFNULL(sum(case when info.sex ='M' THEN 1 ELSE 0 END ),0) as "manSex",
  1245. IFNULL(sum(case when info.sex ='F' THEN 1 ELSE 0 END),0) as "femaleSex",
  1246. IFNULL(sum(case when info.sex ='M' THEN 1 ELSE 0 END ) / (sum(case when info.sex ='M' THEN 1 ELSE 0 END ) + sum(case when info.sex ='F' THEN 1 ELSE 0 END)),0) as "manProportion",
  1247. IFNULL(sum(case when info.sex ='F' THEN 1 ELSE 0 END) / (sum(case when info.sex ='M' THEN 1 ELSE 0 END ) + sum(case when info.sex ='F' THEN 1 ELSE 0 END)),0) as "femaleProportion",
  1248. IFNULL(sum(case when info.is_speciality ='1' THEN 1 ELSE 0 END),0) as "computerSpecialityPersion",
  1249. IFNULL(sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END),0) as "otherSpecialityPersion",
  1250. IFNULL(sum(case when info.is_speciality ='1' THEN 1 ELSE 0 END) / (sum(case when info.is_speciality ='1' THEN 1 ELSE 0 END) + sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END)),0) as "computerSpecialityProportion",
  1251. IFNULL(sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END) / (sum(case when info.is_speciality ='1' THEN 1 ELSE 0 END) + sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END)),0) as "otherSpecialityProportion",
  1252. IFNULL(sum(case when su.status ='1' THEN 1 Else 0 END),0) as " onJobUser",
  1253. IFNULL(sum(case when su.status ='0' THEN 1 Else 0 END),0) as " departUser",
  1254. IFNULL(sum(case when su.status ='1' THEN 1 Else 0 END),0) / (IFNULL(sum(case when su.status ='1' THEN 1 Else 0 END),0) +IFNULL(sum(case when su.status ='0' THEN 1 Else 0 END),0)) as "onJobUserProportion",
  1255. IFNULL(sum(case when su.status ='0' THEN 1 Else 0 END),0) / (IFNULL(sum(case when su.status ='1' THEN 1 Else 0 END),0) +IFNULL(sum(case when su.status ='0' THEN 1 Else 0 END),0)) as "departUserProportion"
  1256. FROM
  1257. sys_user su
  1258. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1259. LEFT JOIN sys_user_info info ON info.id = su.id
  1260. <where>
  1261. info.id is not null
  1262. and su.id NOT LIKE '%M%'
  1263. <if test="vo.provinceId != null and vo.provinceId != ''">
  1264. and sd.id like concat('%',#{vo.provinceId},'%')
  1265. </if>
  1266. <if test="vo.cityId != null and vo.cityId != ''">
  1267. and sd.id like concat('%',#{vo.cityId},'%')
  1268. </if>
  1269. <if test="vo.countyId != null and vo.countyId != ''">
  1270. and sd.id like concat('%',#{vo.countyId},'%')
  1271. </if>
  1272. <if test="vo.houseId != null and vo.houseId != ''">
  1273. and sd.id like concat('%',#{vo.houseId},'%')
  1274. </if>
  1275. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size >0">
  1276. and su.dept_id IN
  1277. <foreach collection="vo.deptIds" item="id" index="index" open="(" close=")" separator=",">
  1278. #{id}
  1279. </foreach>
  1280. </if>
  1281. </where>
  1282. </select>
  1283. <select id="queryQxFrontlineAgent" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1284. SELECT
  1285. sd.name as "deptName",
  1286. su.name as "name",
  1287. sd.id as "deptId",
  1288. su.id as "userId",
  1289. su.mobile as "mobile",
  1290. su.dept_id as "deptId",
  1291. inf.url as "filePath",
  1292. sul.name as "leaderName",
  1293. sui.sex as "sex",
  1294. sur.role_id AS roleId
  1295. FROM
  1296. sys_user su
  1297. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1298. LEFT JOIN ins_upload_files inf on su.head_sculpture =inf.id
  1299. LEFT JOIN sys_user_role sur ON sur.user_id = su.id
  1300. LEFT JOIN sys_user sul on sul.id=su.leader_id
  1301. LEFT JOIN sys_user_info sui on sui .id =su.id
  1302. <where>
  1303. su.id LIKE '%M%'
  1304. and su.status = '1'
  1305. <if test="vo.managementSource != null and vo.managementSource!='' ">
  1306. AND sd.management_source =#{vo.managementSource}
  1307. </if>
  1308. <choose>
  1309. <when test='vo.managementSource == "2"'>
  1310. and (sur.role_id = 20 or sur.role_id = 21)
  1311. </when>
  1312. <otherwise>
  1313. </otherwise>
  1314. </choose>
  1315. <if test="vo.provinceId != null and vo.provinceId != ''">
  1316. and sd.id like concat('%',#{vo.provinceId},'%')
  1317. </if>
  1318. <if test="vo.cityId != null and vo.cityId != ''">
  1319. and sd.id like concat('%',#{vo.cityId},'%')
  1320. </if>
  1321. <if test="vo.countyId != null and vo.countyId != ''">
  1322. and sd.id like concat('%',#{vo.countyId},'%')
  1323. </if>
  1324. <if test="vo.houseId != null and vo.houseId != ''">
  1325. and sd.id like concat('%',#{vo.houseId},'%')
  1326. </if>
  1327. <if test="vo.name != null and vo.name != ''">
  1328. and su.name =#{vo.name}
  1329. </if>
  1330. <if test="vo.userCode != null and vo.userCode != ''">
  1331. and su.id =#{vo.userCode}
  1332. </if>
  1333. <if test="vo.phoneNumber != null and vo.phoneNumber != ''">
  1334. and su.mobile =#{vo.phoneNumber}
  1335. </if>
  1336. <if test="vo.leaderId != null and vo.leaderId != ''">
  1337. and su.leader_id =#{vo.leaderId}
  1338. </if>
  1339. </where>
  1340. </select>
  1341. <select id="getByIdsList" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1342. SELECT
  1343. su.name as "name",
  1344. sd.name as "deptName",
  1345. su.id as "userId",
  1346. su.dept_id as "deptId"
  1347. FROM
  1348. sys_user su
  1349. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1350. <where>
  1351. su.id LIKE '%M%'
  1352. and su.status = '1'
  1353. <if test="vo.ids != null and vo.ids.size()>0 ">
  1354. AND su.id IN
  1355. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  1356. #{item}
  1357. </foreach>
  1358. </if>
  1359. </where>
  1360. </select>
  1361. <select id="getByUserId" resultType="com.ydtech.modules.admin.model.SysUser">
  1362. select t.id id, t.name name, t.mobile mobile, t2.management_source managementSource,t.operatorCode
  1363. from sys_user t
  1364. left join sys_dept t2 on t.dept_id = t2.id
  1365. where t.id = #{id}
  1366. </select>
  1367. <select id="findByReferrerId" resultType="com.ydtech.modules.admin.model.vo.SysUserVO">
  1368. SELECT u.id, u.name
  1369. FROM sys_user u
  1370. where u.dept_id = #{deptId}
  1371. </select>
  1372. <select id="getTelemarketingPersonnelUserId" resultType="java.lang.String">
  1373. SELECT
  1374. u.id
  1375. FROM
  1376. sys_user u
  1377. LEFT JOIN sys_dept d ON u.dept_id = d.id
  1378. WHERE
  1379. d.management_source = '3'
  1380. </select>
  1381. <select id="queryQxFrontlineAgentList" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1382. SELECT
  1383. su.name as "name",
  1384. su.id as "userId"
  1385. FROM
  1386. sys_user su
  1387. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1388. <where>
  1389. su.id LIKE '%M%'
  1390. and su.status = '1'
  1391. AND sd.management_source =2
  1392. and (sur.role_id = 20 or sur.role_id = 21)
  1393. <if test="vo.provinceId != null and vo.provinceId != ''">
  1394. and sd.id like concat('%',#{vo.provinceId},'%')
  1395. </if>
  1396. <if test="vo.cityId != null and vo.cityId != ''">
  1397. and sd.id like concat('%',#{vo.cityId},'%')
  1398. </if>
  1399. <if test="vo.countyId != null and vo.countyId != ''">
  1400. and sd.id like concat('%',#{vo.countyId},'%')
  1401. </if>
  1402. </where>
  1403. </select>
  1404. <select id="findUserListByParam" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1405. SELECT
  1406. su.name as "name",
  1407. su.id as "userId",
  1408. su.status as status
  1409. FROM
  1410. sys_user su
  1411. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1412. LEFT JOIN ins_upload_files inf on su.head_sculpture =inf.id
  1413. LEFT JOIN sys_user_role sur ON sur.user_id = su.id
  1414. <where>
  1415. <if test="vo.ids != null and vo.ids.size()>0 ">
  1416. AND su.id IN
  1417. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  1418. #{item}
  1419. </foreach>
  1420. </if>
  1421. <if test="vo.name != null and vo.name != ''">
  1422. and su.name =#{vo.name}
  1423. </if>
  1424. <if test="vo.userCode != null and vo.userCode != ''">
  1425. and su.id =#{vo.userCode}
  1426. </if>
  1427. <if test="vo.phoneNumber != null and vo.phoneNumber != ''">
  1428. and su.mobile =#{vo.phoneNumber}
  1429. </if>
  1430. </where>
  1431. </select>
  1432. </mapper>