SysUserMapper.xml 53 KB

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