SysUserMapper.xml 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902
  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. LEFT 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. LEFT 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. LEFT 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. LEFT 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. io.username,
  548. iac.company_id,
  549. iac.inscompany
  550. </select>
  551. <select id="getUserMainWaitAuditSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  552. SELECT
  553. io.userid,
  554. io.username,
  555. iac.company_id as companyId,
  556. iac.inscompany as insCompany,
  557. COUNT(*) AS quoteNum,
  558. SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum
  559. FROM
  560. ins_orders io
  561. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  562. WHERE
  563. iac.orderstatus IN (1)
  564. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  565. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  566. </if>
  567. <if test="quUserNumDto.userIds != null">
  568. and io.userid IN
  569. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  570. #{id}
  571. </foreach>
  572. </if>
  573. GROUP BY
  574. io.userid,
  575. io.username,
  576. iac.company_id,
  577. iac.inscompany
  578. </select>
  579. <select id="getUserMainWaitPaySum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  580. SELECT
  581. io.userid,
  582. io.username,
  583. iac.company_id as companyId,
  584. iac.inscompany as insCompany,
  585. COUNT(*) AS quoteNum,
  586. SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum
  587. FROM
  588. ins_orders io
  589. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  590. WHERE
  591. iac.orderstatus IN (2)
  592. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  593. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  594. </if>
  595. <if test="quUserNumDto.userIds != null">
  596. and io.userid IN
  597. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  598. #{id}
  599. </foreach>
  600. </if>
  601. GROUP BY
  602. io.userid,
  603. io.username,
  604. iac.company_id,
  605. iac.inscompany
  606. </select>
  607. <select id="getUserMainAcceptInsuranceSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  608. SELECT
  609. io.userid,
  610. io.username,
  611. iac.company_id as companyId,
  612. iac.inscompany as insCompany,
  613. COUNT(*) AS quoteNum,
  614. SUM(CASE WHEN io.orderstatus = 3 THEN 1 ELSE 0 END) AS mainAcceptInsuranceSum
  615. FROM
  616. ins_orders io
  617. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  618. WHERE
  619. iac.orderstatus IN (3)
  620. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  621. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  622. </if>
  623. <if test="quUserNumDto.userIds != null">
  624. and io.userid IN
  625. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  626. #{id}
  627. </foreach>
  628. </if>
  629. GROUP BY
  630. io.userid,
  631. io.username,
  632. iac.company_id,
  633. iac.inscompany
  634. </select>
  635. <select id="getAllUsersByHospitality" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  636. SELECT
  637. su.id as userId,
  638. su.name,
  639. info.sex,
  640. su.mobile,
  641. su.status,
  642. sd.id as deptId,
  643. sd.name as deptName,
  644. t4.id as roleId,
  645. t4.name as roleName,
  646. sd.management_source as managementSource,
  647. psd.id as pDeptId,
  648. psd.name as pDeptName,
  649. "" as noType
  650. FROM
  651. sys_user su
  652. LEFT JOIN sys_user_info info ON info.id = su.id
  653. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  654. left join sys_dept psd on psd.id = sd.parent_id
  655. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  656. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  657. AND sd.del_flag = '0'
  658. WHERE
  659. su.status =1 AND su.id LIKE '%M%'
  660. <if test='user !=null '>
  661. <if test='user.name !=null and user.name!="" '>
  662. and su.name = #{user.name}
  663. </if>
  664. <if test='user.userId !=null and user.userId!="" '>
  665. and su.id = #{user.userId}
  666. </if>
  667. <if test='user.mobile !=null and user.mobile!="" '>
  668. and su.mobile = #{user.mobile}
  669. </if>
  670. <if test='user.identity !=null and user.identity!="" '>
  671. and su.identity = #{user.identity}
  672. </if>
  673. </if>
  674. </select>
  675. <select id="getCustomerUsers" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  676. SELECT
  677. t1.id AS userId,
  678. t1.NAME AS NAME,
  679. t1.mobile AS mobile,
  680. t1.`status` AS `status`,
  681. t2.id AS deptId,
  682. t2.`name` AS deptName,
  683. sd2.id AS pDeptId,
  684. sd2.`name` AS pDeptName
  685. FROM
  686. sys_user t1
  687. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  688. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  689. WHERE
  690. t1.`status` = 1
  691. AND t1.id NOT LIKE '%M%'
  692. <if test='user !=null '>
  693. <if test='user.name !=null and user.name!="" '>
  694. and t1.name = #{user.name}
  695. </if>
  696. <if test='user.userId !=null and user.userId!="" '>
  697. and t1.id = #{user.userId}
  698. </if>
  699. <if test='user.mobile !=null and user.mobile!="" '>
  700. and t1.mobile = #{user.mobile}
  701. </if>
  702. <if test='user.identity !=null and user.identity!="" '>
  703. and t1.identity = #{user.identity}
  704. </if>
  705. </if>
  706. </select>
  707. <select id="getDeptIdsByRoleIdsAndUserIds" resultType="String">
  708. SELECT
  709. t2.id
  710. FROM
  711. sys_user t1
  712. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  713. LEFT JOIN sys_user_role sur ON sur.user_id = t1.id
  714. WHERE
  715. t1.`status` = 1
  716. <if test="userIds != null and userIds.size>0" >
  717. AND
  718. t1.id IN
  719. <foreach collection="userIds" item="item" open="(" separator="," close=")">
  720. #{item}
  721. </foreach>
  722. </if>
  723. <if test="roleIds != null and roleIds.size>0" >
  724. AND
  725. sur.role_id IN
  726. <foreach collection="roleIds" item="item" open="(" separator="," close=")">
  727. #{item}
  728. </foreach>
  729. </if>
  730. GROUP BY t2.id
  731. </select>
  732. <select id="findUserListByPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  733. SELECT
  734. t1.id AS userId,
  735. t1.NAME AS NAME,
  736. t1.mobile AS mobile,
  737. t1.`status` AS `status`,
  738. t2.id AS deptId,
  739. t2.`name` AS deptName,
  740. sd2.id AS pDeptId,
  741. sd2.`name` AS pDeptName,
  742. CASE
  743. WHEN ( SELECT count( 0 ) FROM sys_user_link_pl_agreement link WHERE link.user_id = t1.id) > 0 THEN
  744. true ELSE false
  745. END AS flag
  746. FROM
  747. sys_user t1
  748. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  749. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  750. WHERE
  751. t1.`status` = 1
  752. AND t1.id NOT LIKE '%M%'
  753. <if test='user !=null '>
  754. <if test='user.name !=null and user.name!="" '>
  755. and t1.name like CONCAT('%', #{user.name}, '%')
  756. </if>
  757. <if test='user.userId !=null and user.userId!="" '>
  758. and t1.id = #{user.userId}
  759. </if>
  760. <if test='user.mobile !=null and user.mobile!="" '>
  761. and t1.mobile = #{user.mobile}
  762. </if>
  763. <if test='user.deptId !=null and user.deptId!="" '>
  764. and t2.id like CONCAT('', #{user.deptId}, '%')
  765. </if>
  766. </if>
  767. order by flag desc
  768. </select>
  769. <select id="getDeptIdsByUserIds" resultType="String">
  770. SELECT
  771. t2.id
  772. FROM
  773. sys_user t1
  774. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  775. WHERE
  776. t1.`status` = 1
  777. AND EXISTS (
  778. SELECT
  779. *
  780. FROM
  781. (
  782. SELECT
  783. t1.id
  784. FROM
  785. sys_user t1
  786. LEFT JOIN sys_user_role sur ON sur.user_id = t1.id
  787. WHERE
  788. t1.`status` = 1
  789. AND t1.leader_id = #{userId}
  790. AND EXISTS (
  791. SELECT
  792. *
  793. FROM
  794. ( 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
  795. WHERE
  796. roleAll.id = sur.role_id
  797. )
  798. ) users
  799. WHERE
  800. users.id = t1.id
  801. )
  802. GROUP BY
  803. t2.id
  804. </select>
  805. <select id="findUserListByAreaPage" 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. CASE
  816. WHEN ( SELECT count( 0 ) FROM sys_user_link_area link WHERE link.user_id = t1.id) > 0 THEN
  817. true ELSE false
  818. END AS flag
  819. FROM
  820. sys_user t1
  821. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  822. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  823. WHERE
  824. t1.`status` = 1
  825. AND t1.id NOT LIKE '%M%'
  826. <if test='user !=null '>
  827. <if test='user.name !=null and user.name!="" '>
  828. and t1.name like CONCAT('%', #{user.name}, '%')
  829. </if>
  830. <if test='user.userId !=null and user.userId!="" '>
  831. and t1.id = #{user.userId}
  832. </if>
  833. <if test='user.mobile !=null and user.mobile!="" '>
  834. and t1.mobile = #{user.mobile}
  835. </if>
  836. <if test='user.deptId !=null and user.deptId!="" '>
  837. and t2.id like CONCAT('', #{user.deptId}, '%')
  838. </if>
  839. </if>
  840. order by flag desc
  841. </select>
  842. <select id="getAgentUserIdsByAreaIds" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  843. SELECT
  844. su.id AS userId,
  845. su.dept_id AS deptId
  846. FROM
  847. sys_user su
  848. LEFT JOIN sys_user_info info ON info.id = su.id
  849. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  850. LEFT JOIN sys_dept psd ON psd.id = sd.parent_id
  851. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  852. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  853. AND sd.del_flag = '0'
  854. AND su.STATUS = 1
  855. WHERE
  856. t3.role_id =20
  857. AND sd.management_source = 2
  858. </select>
  859. </mapper>