SysUserMapper.xml 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898
  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. from sys_user su
  83. left join sys_dept sd on su.dept_id=sd.id
  84. left join sys_dept psd on sd.parent_id=psd.id
  85. left join sys_user_info info on info.id=su.id
  86. left join sys_user_role t3 on su.id=t3.user_id
  87. left join sys_role t4 on t3.role_id=t4.id
  88. where 1=1
  89. AND sd.id &lt;&gt; ''
  90. <if test='user !=null '>
  91. <if test='user.status !=null and user.status!="" '>
  92. and su.status = #{user.status}
  93. </if>
  94. <if test='user.name !=null and user.name!="" '>
  95. and su.name like concat('%',#{user.name},'%')
  96. </if>
  97. <if test='user.userId !=null and user.userId!="" '>
  98. and su.id = #{user.userId}
  99. </if>
  100. <if test='user.mobile !=null and user.mobile!="" '>
  101. and su.mobile = #{user.mobile}
  102. </if>
  103. <if test='user.deptId !=null and user.deptId!="" '>
  104. and su.dept_id like concat('%',#{user.deptId},'%')
  105. </if>
  106. <if test='user.roleId !=null and user.roleId!="" '>
  107. and t3.role_id in (${user.roleId})
  108. </if>
  109. </if>
  110. </select>
  111. <select id="findUserList" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  112. SELECT
  113. su.id as userId,
  114. su.name,
  115. info.sex,
  116. su.mobile,
  117. su.status,
  118. sd.id as deptId,
  119. sd.name as deptName,
  120. t4.id as roleId,
  121. t4.name as roleName,
  122. sd.management_source,
  123. psd.id as pDeptId,
  124. psd.name as pDeptName
  125. FROM
  126. sys_user su
  127. LEFT JOIN sys_user_info info ON info.id = su.id
  128. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  129. left join sys_dept psd on psd.id = sd.parent_id
  130. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  131. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  132. AND sd.del_flag = '0'
  133. WHERE
  134. 1=1
  135. <if test='user !=null '>
  136. <if test='user.status !=null and user.status!="" '>
  137. and su.status = #{user.status}
  138. </if>
  139. <if test='user.name !=null and user.name!="" '>
  140. and su.name like concat('%',#{user.name},'%')
  141. </if>
  142. <if test='user.userId !=null and user.userId!="" '>
  143. and su.id = #{user.userId}
  144. </if>
  145. <if test='user.mobile !=null and user.mobile!="" '>
  146. and su.mobile = #{user.mobile}
  147. </if>
  148. <if test='user.deptId !=null and user.deptId!="" '>
  149. and su.dept_id like concat('%',#{user.deptId},'%')
  150. </if>
  151. <if test='user.leaderName !=null and user.leaderName!="" '>
  152. and su.leader_name like concat('%',#{user.leaderName},'%')
  153. </if>
  154. <if test='user.roleId !=null and user.roleId!="" '>
  155. and t3.role_id in (${user.roleId})
  156. </if>
  157. <if test="user.agentFlag !=null and user.agentFlag != 0 ">
  158. and sd.management_source = #{user.agentFlag}
  159. </if>
  160. <if test="user.agentFlag != null and user.agentFlag == 0">
  161. and sd.management_source is null
  162. </if>
  163. </if>
  164. </select>
  165. <select id="findBackUserList" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  166. SELECT
  167. su.id as userId,
  168. su.name,
  169. info.sex,
  170. su.mobile,
  171. su.status,
  172. sd.id as deptId,
  173. sd.name as deptName,
  174. t4.id as roleId,
  175. t4.name as roleName,
  176. sd.management_source,
  177. psd.id as pDeptId,
  178. psd.name as pDeptName
  179. FROM
  180. sys_user su
  181. LEFT JOIN sys_user_info info ON info.id = su.id
  182. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  183. left join sys_dept psd on psd.id = sd.parent_id
  184. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  185. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  186. AND sd.del_flag = '0'
  187. WHERE
  188. 1=1
  189. <if test='user !=null '>
  190. <if test='user.status !=null and user.status!="" '>
  191. and su.status = #{user.status}
  192. </if>
  193. <if test='user.name !=null and user.name!="" '>
  194. and su.name like concat('%',#{user.name},'%')
  195. </if>
  196. <if test='user.userId !=null and user.userId!="" '>
  197. and su.id = #{user.userId}
  198. </if>
  199. <if test='user.mobile !=null and user.mobile!="" '>
  200. and su.mobile = #{user.mobile}
  201. </if>
  202. <if test='user.deptId !=null and user.deptId!="" '>
  203. and su.dept_id like concat('%',#{user.deptId},'%')
  204. </if>
  205. <if test='user.leaderName !=null and user.leaderName!="" '>
  206. and su.leader_name like concat('%',#{user.leaderName},'%')
  207. </if>
  208. <if test="user.agentFlag !=null and user.agentFlag != 0 ">
  209. and sd.management_source = #{user.agentFlag}
  210. </if>
  211. <if test="user.agentFlag != null and user.agentFlag == 0">
  212. and sd.management_source is null
  213. </if>
  214. and su.id NOT LIKE '%M%'
  215. </if>
  216. </select>
  217. <resultMap id="QuTeamNumMap" type="com.ydtech.modules.admin.model.QuTeamNum">
  218. <id column="id" javaType="String" jdbcType="VARCHAR" property="deptId"/>
  219. <result column="name" javaType="String" jdbcType="VARCHAR" property="deptName"/>
  220. <result column="orderstatus" javaType="String" jdbcType="VARCHAR" property="orderStatus"/>
  221. <result column="companyId" javaType="String" jdbcType="VARCHAR" property="companyId"/>
  222. <result column="insCompany" javaType="String" jdbcType="VARCHAR" property="insCompany"/>
  223. <result column="count" javaType="String" jdbcType="VARCHAR" property="count"/>
  224. <result column="jqpremium" javaType="String" jdbcType="VARCHAR" property="jqPremiumSum"/>
  225. <result column="sypremium" javaType="String" jdbcType="VARCHAR" property="syPremiumSum"/>
  226. <result column="taxamount" javaType="String" jdbcType="VARCHAR" property="taxaMountSum"/>
  227. </resultMap>
  228. <select id="getDept" resultMap="QuTeamNumMap">
  229. SELECT
  230. sd.id,
  231. sd.name,
  232. i.orderstatus,
  233. i.count,
  234. i.jqpremium,
  235. i.sypremium,
  236. i.taxamount
  237. FROM
  238. sys_dept sd
  239. LEFT JOIN (
  240. SELECT
  241. io.deptid AS deptid,
  242. iac.orderstatus AS orderstatus,
  243. count(*) AS count,
  244. sum( iac.jqpremium ) AS jqpremium,
  245. sum( iac.sypremium ) AS sypremium,
  246. sum( iac.taxamount ) AS taxamount
  247. FROM
  248. ins_orders io
  249. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  250. WHERE
  251. iac.orderstatus in (1,2,3)
  252. <if test="quTeamNumDto.createTimeStart != null">
  253. and io.createtime &gt;= #{quTeamNumDto.createTimeStart}
  254. </if>
  255. <if test="quTeamNumDto.createTimeEnd != null">
  256. and io.createtime &lt;= #{quTeamNumDto.createTimeEnd}
  257. </if>
  258. GROUP BY
  259. iac.orderstatus,
  260. io.userid,
  261. io.deptid
  262. ) AS i ON i.deptid = sd.id
  263. WHERE
  264. sd.del_flag = 0
  265. <if test="quTeamNumDto.deptId != null and quTeamNumDto.deptId != ''">
  266. and sd.id like concat(#{quTeamNumDto.deptId},'%')
  267. </if>
  268. <if test="quTeamNumDto.deptName != null and quTeamNumDto.deptName != ''">
  269. and sd.name like concat(#{quTeamNumDto.deptName},'%')
  270. </if>
  271. </select>
  272. <select id="getDeptByCompany" resultMap="QuTeamNumMap">
  273. SELECT
  274. iac.company_id as companyId,
  275. iac.inscompany as insCompany,
  276. COUNT(*) AS quoteNum,
  277. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
  278. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  279. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremium,
  280. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremium,
  281. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamount,
  282. 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
  283. FROM
  284. ins_orders io
  285. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  286. WHERE
  287. iac.orderstatus IN ( 1, 2, 3 )
  288. <if test="quTeamNumDto.deptId != null and quTeamNumDto.deptId != ''">
  289. and io.deptid = #{quTeamNumDto.deptId}
  290. </if>
  291. GROUP BY
  292. iac.company_id,
  293. iac.inscompany
  294. </select>
  295. <resultMap id="QuUserNumMap" type="com.ydtech.modules.admin.model.QuTeamNum">
  296. <id column="id" javaType="String" jdbcType="VARCHAR" property="userId"/>
  297. <result column="name" javaType="String" jdbcType="VARCHAR" property="userName"/>
  298. <result column="orderstatus" javaType="String" jdbcType="VARCHAR" property="orderStatus"/>
  299. <result column="count" javaType="String" jdbcType="VARCHAR" property="count"/>
  300. <result column="jqpremium" javaType="String" jdbcType="VARCHAR" property="jqPremiumSum"/>
  301. <result column="sypremium" javaType="String" jdbcType="VARCHAR" property="syPremiumSum"/>
  302. <result column="taxamount" javaType="String" jdbcType="VARCHAR" property="taxaMountSum"/>
  303. </resultMap>
  304. <select id="getUser" resultMap="QuUserNumMap">
  305. SELECT
  306. su.id,
  307. su.name,
  308. i.orderstatus,
  309. i.count,
  310. i.jqpremium,
  311. i.sypremium,
  312. i.taxamount
  313. FROM
  314. sys_user su
  315. LEFT JOIN (
  316. SELECT
  317. io.userid AS userid,
  318. iac.orderstatus AS orderstatus,
  319. count(*) AS count,
  320. sum( iac.jqpremium ) AS jqpremium,
  321. sum( iac.sypremium ) AS sypremium,
  322. sum( iac.taxamount ) AS taxamount
  323. FROM
  324. ins_orders io
  325. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  326. WHERE
  327. iac.orderstatus in (1,2,3)
  328. <if test="quTeamNumDto.createTimeStart != null">
  329. and io.createtime &gt;= #{quTeamNumDto.createTimeStart}
  330. </if>
  331. <if test="quTeamNumDto.createTimeEnd != null">
  332. and io.createtime &lt;= #{quTeamNumDto.createTimeEnd}
  333. </if>
  334. GROUP BY
  335. iac.orderstatus,
  336. io.userid
  337. ) AS i ON i.userid = su.id
  338. WHERE
  339. su.status = 1
  340. <if test="quTeamNumDto.deptId != null and quTeamNumDto.deptId != ''">
  341. and su.dept_id like concat(#{quTeamNumDto.deptId},'%')
  342. </if>
  343. <if test="quTeamNumDto.userName != null and quTeamNumDto.userName != ''">
  344. and su.name like concat(#{quTeamNumDto.userName},'%')
  345. </if>
  346. </select>
  347. <select id="findListByDeptId" resultType="com.ydtech.modules.admin.model.vo.SysUserVO">
  348. SELECT
  349. su.id,
  350. su.name
  351. FROM
  352. sys_user su
  353. WHERE
  354. su.status = 1
  355. <if test="sysUser.deptId != null and sysUser.deptId != ''">
  356. and su.dept_id = #{sysUser.deptId}
  357. </if>
  358. <if test="sysUser.id != null and sysUser.id != ''">
  359. and su.id != #{sysUser.id}
  360. </if>
  361. </select>
  362. <select id="getUserNum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  363. SELECT
  364. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping}) AS areacode,
  365. COUNT(*) AS quoteNum,
  366. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
  367. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  368. SUM(CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS subWaitAuditSum,
  369. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END) AS subWaitPaySum,
  370. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS subAcceptInsuranceSum,
  371. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
  372. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
  373. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
  374. 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
  375. FROM
  376. ins_orders io
  377. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  378. WHERE
  379. iac.orderstatus IN ( 0 ,1, 2, 3, 4 )
  380. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  381. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  382. </if>
  383. <if test="quUserNumDto.userIds != null">
  384. and io.userid IN
  385. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  386. #{id}
  387. </foreach>
  388. </if>
  389. GROUP BY
  390. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping})
  391. </select>
  392. <select id="getMainOrderDetails" resultType="com.ydtech.modules.admin.model.QuUserNum">
  393. SELECT
  394. SUBSTRING(io.userid, 3, 4) AS areacode,
  395. SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum,
  396. SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum,
  397. SUM(CASE WHEN io.orderstatus = 3 THEN 1 ELSE 0 END) AS mainAcceptInsuranceSum
  398. FROM
  399. ins_orders io
  400. WHERE
  401. io.orderstatus IN (1,2,3)
  402. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  403. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  404. </if>
  405. <if test="quUserNumDto.userIds != null">
  406. and io.userid IN
  407. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  408. #{id}
  409. </foreach>
  410. </if>
  411. GROUP BY
  412. SUBSTRING(io.userid, 3, 4)
  413. </select>
  414. <select id="getUserByCompany" resultType="com.ydtech.modules.admin.model.QuUserNum">
  415. SELECT
  416. iac.company_id as companyId,
  417. iac.inscompany as insCompany,
  418. COUNT(*) AS quoteNum,
  419. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
  420. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  421. SUM(CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS subWaitAuditSum,
  422. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END) AS subWaitPaySum,
  423. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS subAcceptInsuranceSum,
  424. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
  425. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
  426. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
  427. 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
  428. FROM
  429. ins_orders io
  430. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  431. WHERE
  432. iac.orderstatus IN ( 0, 1, 2, 3, 4 )
  433. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  434. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  435. </if>
  436. <if test="quUserNumDto.userIds != null">
  437. and io.userid IN
  438. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  439. #{id}
  440. </foreach>
  441. </if>
  442. GROUP BY
  443. iac.company_id,
  444. iac.inscompany
  445. </select>
  446. <select id="getComMainWaitAuditSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  447. SELECT
  448. iac.company_id as companyId,
  449. iac.inscompany as insCompany,
  450. SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum
  451. FROM
  452. ins_orders io
  453. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  454. WHERE
  455. iac.orderstatus IN (1)
  456. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  457. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  458. </if>
  459. <if test="quUserNumDto.userIds != null">
  460. and io.userid IN
  461. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  462. #{id}
  463. </foreach>
  464. </if>
  465. GROUP BY
  466. iac.company_id,
  467. iac.inscompany
  468. </select>
  469. <select id="getComMainWaitPaySum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  470. SELECT
  471. iac.company_id as companyId,
  472. iac.inscompany as insCompany,
  473. SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum
  474. FROM
  475. ins_orders io
  476. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  477. WHERE
  478. iac.orderstatus IN (2)
  479. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  480. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  481. </if>
  482. <if test="quUserNumDto.userIds != null">
  483. and io.userid IN
  484. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  485. #{id}
  486. </foreach>
  487. </if>
  488. GROUP BY
  489. iac.company_id,
  490. iac.inscompany
  491. </select>
  492. <select id="getComMainAcceptInsuranceSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  493. SELECT
  494. iac.company_id as companyId,
  495. iac.inscompany as insCompany,
  496. SUM(CASE WHEN io.orderstatus = 3 THEN 1 ELSE 0 END) AS mainAcceptInsuranceSum
  497. FROM
  498. ins_orders io
  499. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  500. WHERE
  501. iac.orderstatus IN (3)
  502. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  503. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  504. </if>
  505. <if test="quUserNumDto.userIds != null">
  506. and io.userid IN
  507. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  508. #{id}
  509. </foreach>
  510. </if>
  511. GROUP BY
  512. iac.company_id,
  513. iac.inscompany
  514. </select>
  515. <select id="getUserDetail" resultType="com.ydtech.modules.admin.model.QuUserNum">
  516. SELECT
  517. io.userid,
  518. io.username,
  519. iac.company_id as companyId,
  520. iac.inscompany as insCompany,
  521. COUNT(*) AS quoteNum,
  522. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
  523. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  524. SUM(CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS subWaitAuditSum,
  525. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END) AS subWaitPaySum,
  526. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS subAcceptInsuranceSum,
  527. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
  528. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
  529. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
  530. 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
  531. FROM
  532. ins_orders io
  533. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  534. WHERE
  535. iac.orderstatus IN ( 0 ,1, 2, 3, 4 )
  536. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  537. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  538. </if>
  539. <if test="quUserNumDto.userIds != null">
  540. and io.userid IN
  541. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  542. #{id}
  543. </foreach>
  544. </if>
  545. GROUP BY
  546. io.userid,
  547. iac.company_id,
  548. iac.inscompany
  549. </select>
  550. <select id="getUserMainWaitAuditSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  551. SELECT
  552. io.userid,
  553. io.username,
  554. iac.company_id as companyId,
  555. iac.inscompany as insCompany,
  556. COUNT(*) AS quoteNum,
  557. SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum
  558. FROM
  559. ins_orders io
  560. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  561. WHERE
  562. iac.orderstatus IN (1)
  563. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  564. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  565. </if>
  566. <if test="quUserNumDto.userIds != null">
  567. and io.userid IN
  568. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  569. #{id}
  570. </foreach>
  571. </if>
  572. GROUP BY
  573. io.userid,
  574. iac.company_id,
  575. iac.inscompany
  576. </select>
  577. <select id="getUserMainWaitPaySum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  578. SELECT
  579. io.userid,
  580. io.username,
  581. iac.company_id as companyId,
  582. iac.inscompany as insCompany,
  583. COUNT(*) AS quoteNum,
  584. SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum
  585. FROM
  586. ins_orders io
  587. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  588. WHERE
  589. iac.orderstatus IN (2)
  590. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  591. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  592. </if>
  593. <if test="quUserNumDto.userIds != null">
  594. and io.userid IN
  595. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  596. #{id}
  597. </foreach>
  598. </if>
  599. GROUP BY
  600. io.userid,
  601. iac.company_id,
  602. iac.inscompany
  603. </select>
  604. <select id="getUserMainAcceptInsuranceSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  605. SELECT
  606. io.userid,
  607. io.username,
  608. iac.company_id as companyId,
  609. iac.inscompany as insCompany,
  610. COUNT(*) AS quoteNum,
  611. SUM(CASE WHEN io.orderstatus = 3 THEN 1 ELSE 0 END) AS mainAcceptInsuranceSum
  612. FROM
  613. ins_orders io
  614. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  615. WHERE
  616. iac.orderstatus IN (3)
  617. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  618. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  619. </if>
  620. <if test="quUserNumDto.userIds != null">
  621. and io.userid IN
  622. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  623. #{id}
  624. </foreach>
  625. </if>
  626. GROUP BY
  627. io.userid,
  628. iac.company_id,
  629. iac.inscompany
  630. </select>
  631. <select id="getAllUsersByHospitality" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  632. SELECT
  633. su.id as userId,
  634. su.name,
  635. info.sex,
  636. su.mobile,
  637. su.status,
  638. sd.id as deptId,
  639. sd.name as deptName,
  640. t4.id as roleId,
  641. t4.name as roleName,
  642. sd.management_source as managementSource,
  643. psd.id as pDeptId,
  644. psd.name as pDeptName,
  645. "" as noType
  646. FROM
  647. sys_user su
  648. LEFT JOIN sys_user_info info ON info.id = su.id
  649. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  650. left join sys_dept psd on psd.id = sd.parent_id
  651. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  652. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  653. AND sd.del_flag = '0'
  654. WHERE
  655. su.status =1 AND su.id LIKE '%M%'
  656. <if test='user !=null '>
  657. <if test='user.name !=null and user.name!="" '>
  658. and su.name = #{user.name}
  659. </if>
  660. <if test='user.userId !=null and user.userId!="" '>
  661. and su.id = #{user.userId}
  662. </if>
  663. <if test='user.mobile !=null and user.mobile!="" '>
  664. and su.mobile = #{user.mobile}
  665. </if>
  666. <if test='user.identity !=null and user.identity!="" '>
  667. and su.identity = #{user.identity}
  668. </if>
  669. </if>
  670. </select>
  671. <select id="getCustomerUsers" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  672. SELECT
  673. t1.id AS userId,
  674. t1.NAME AS NAME,
  675. t1.mobile AS mobile,
  676. t1.`status` AS `status`,
  677. t2.id AS deptId,
  678. t2.`name` AS deptName,
  679. sd2.id AS pDeptId,
  680. sd2.`name` AS pDeptName
  681. FROM
  682. sys_user t1
  683. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  684. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  685. WHERE
  686. t1.`status` = 1
  687. AND t1.id NOT LIKE '%M%'
  688. <if test='user !=null '>
  689. <if test='user.name !=null and user.name!="" '>
  690. and t1.name = #{user.name}
  691. </if>
  692. <if test='user.userId !=null and user.userId!="" '>
  693. and t1.id = #{user.userId}
  694. </if>
  695. <if test='user.mobile !=null and user.mobile!="" '>
  696. and t1.mobile = #{user.mobile}
  697. </if>
  698. <if test='user.identity !=null and user.identity!="" '>
  699. and t1.identity = #{user.identity}
  700. </if>
  701. </if>
  702. </select>
  703. <select id="getDeptIdsByRoleIdsAndUserIds" resultType="String">
  704. SELECT
  705. t2.id
  706. FROM
  707. sys_user t1
  708. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  709. LEFT JOIN sys_user_role sur ON sur.user_id = t1.id
  710. WHERE
  711. t1.`status` = 1
  712. <if test="userIds != null and userIds.size>0" >
  713. AND
  714. t1.id IN
  715. <foreach collection="userIds" item="item" open="(" separator="," close=")">
  716. #{item}
  717. </foreach>
  718. </if>
  719. <if test="roleIds != null and roleIds.size>0" >
  720. AND
  721. sur.role_id IN
  722. <foreach collection="roleIds" item="item" open="(" separator="," close=")">
  723. #{item}
  724. </foreach>
  725. </if>
  726. GROUP BY t2.id
  727. </select>
  728. <select id="findUserListByPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  729. SELECT
  730. t1.id AS userId,
  731. t1.NAME AS NAME,
  732. t1.mobile AS mobile,
  733. t1.`status` AS `status`,
  734. t2.id AS deptId,
  735. t2.`name` AS deptName,
  736. sd2.id AS pDeptId,
  737. sd2.`name` AS pDeptName,
  738. CASE
  739. WHEN ( SELECT count( 0 ) FROM sys_user_link_pl_agreement link WHERE link.user_id = t1.id) > 0 THEN
  740. true ELSE false
  741. END AS flag
  742. FROM
  743. sys_user t1
  744. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  745. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  746. WHERE
  747. t1.`status` = 1
  748. AND t1.id NOT LIKE '%M%'
  749. <if test='user !=null '>
  750. <if test='user.name !=null and user.name!="" '>
  751. and t1.name like CONCAT('%', #{user.name}, '%')
  752. </if>
  753. <if test='user.userId !=null and user.userId!="" '>
  754. and t1.id = #{user.userId}
  755. </if>
  756. <if test='user.mobile !=null and user.mobile!="" '>
  757. and t1.mobile = #{user.mobile}
  758. </if>
  759. <if test='user.deptId !=null and user.deptId!="" '>
  760. and t2.id like CONCAT('', #{user.deptId}, '%')
  761. </if>
  762. </if>
  763. order by flag desc
  764. </select>
  765. <select id="getDeptIdsByUserIds" resultType="String">
  766. SELECT
  767. t2.id
  768. FROM
  769. sys_user t1
  770. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  771. WHERE
  772. t1.`status` = 1
  773. AND EXISTS (
  774. SELECT
  775. *
  776. FROM
  777. (
  778. SELECT
  779. t1.id
  780. FROM
  781. sys_user t1
  782. LEFT JOIN sys_user_role sur ON sur.user_id = t1.id
  783. WHERE
  784. t1.`status` = 1
  785. AND t1.leader_id = #{userId}
  786. AND EXISTS (
  787. SELECT
  788. *
  789. FROM
  790. ( 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
  791. WHERE
  792. roleAll.id = sur.role_id
  793. )
  794. ) users
  795. WHERE
  796. users.id = t1.id
  797. )
  798. GROUP BY
  799. t2.id
  800. </select>
  801. <select id="findUserListByAreaPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  802. SELECT
  803. t1.id AS userId,
  804. t1.NAME AS NAME,
  805. t1.mobile AS mobile,
  806. t1.`status` AS `status`,
  807. t2.id AS deptId,
  808. t2.`name` AS deptName,
  809. sd2.id AS pDeptId,
  810. sd2.`name` AS pDeptName,
  811. CASE
  812. WHEN ( SELECT count( 0 ) FROM sys_user_link_area link WHERE link.user_id = t1.id) > 0 THEN
  813. true ELSE false
  814. END AS flag
  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 like CONCAT('%', #{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.deptId !=null and user.deptId!="" '>
  833. and t2.id like CONCAT('', #{user.deptId}, '%')
  834. </if>
  835. </if>
  836. order by flag desc
  837. </select>
  838. <select id="getAgentUserIdsByAreaIds" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  839. SELECT
  840. su.id,
  841. su.dept_id AS deptId
  842. FROM
  843. sys_user su
  844. LEFT JOIN sys_user_info info ON info.id = su.id
  845. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  846. LEFT JOIN sys_dept psd ON psd.id = sd.parent_id
  847. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  848. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  849. AND sd.del_flag = '0'
  850. AND su.STATUS = 1
  851. WHERE
  852. t3.role_id =20
  853. AND sd.management_source = 2
  854. </select>
  855. </mapper>