SysUserMapper.xml 83 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133
  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.id != null &amp;&amp; sysUser.name != ''">
  47. and su.id = #{sysUser.id}
  48. </if>
  49. <if test="sysUser.name != null &amp;&amp; sysUser.name != ''">
  50. and (su.name = #{sysUser.name} or su.id = #{sysUser.name})
  51. </if>
  52. <if test="sysUser.mobile != null &amp;&amp; sysUser.mobile != ''">
  53. and su.mobile = #{sysUser.mobile}
  54. </if>
  55. <if test="sysUser.roleId != null &amp;&amp; sysUser.roleId != ''">
  56. and sur.role_id = #{sysUser.roleId}
  57. </if>
  58. <if test="sysUser.status != null">
  59. and su.status = #{sysUser.status}
  60. </if>
  61. <if test="containsSubDept != null &amp;&amp; containsSubDept == 0">
  62. and su.dept_id = #{sysUser.deptId}
  63. </if>
  64. <if test="containsSubDept != null &amp;&amp; containsSubDept == 1">
  65. <!-- 查询子部门 -->
  66. and su.dept_id like concat('%',#{sysUser.deptId},'%')
  67. </if>
  68. </where>
  69. </sql>
  70. <sql id="Sys_User_Where_Clause_deptName">
  71. <where>
  72. <if test="sysUser.name != null &amp;&amp; sysUser.name != ''">
  73. and (su.name = #{sysUser.name} or su.id = #{sysUser.name})
  74. </if>
  75. <if test="sysUser.mobile != null &amp;&amp; sysUser.mobile != ''">
  76. and su.mobile = #{sysUser.mobile}
  77. </if>
  78. <if test="sysUser.roleId != null &amp;&amp; sysUser.roleId != ''">
  79. and sur.role_id = #{sysUser.roleId}
  80. </if>
  81. <if test="sysUser.status != null">
  82. and su.status = #{sysUser.status}
  83. </if>
  84. <if test="sysUser.deptName != null &amp;&amp; sysUser.deptName != ''">
  85. and sd.name like concat('%',#{sysUser.deptName},'%')
  86. </if>
  87. <if test="sysUser.id != null and sysUser.id!= ''">
  88. and su.id = #{sysUser.id}
  89. </if>
  90. </where>
  91. </sql>
  92. <select id="selectUserPage" resultMap="sysUserMap">
  93. select
  94. <include refid="Sys_User_Column_List"/>
  95. <include refid="Sys_User_Where_Clause"></include>
  96. <if test="sysUser.deptName != null &amp;&amp; sysUser.deptName != ''">
  97. <include refid="Sys_User_Where_Clause_deptName"></include>
  98. </if>
  99. </select>
  100. <select id="gainUserBaseInfo" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  101. select
  102. su.id as userId,
  103. su.name,
  104. info.sex,
  105. su.mobile,
  106. su.status,
  107. sd.id as deptId,
  108. sd.name as deptName,
  109. psd.id as pDeptId,
  110. psd.name as pDeptName,
  111. t4.id as roleId,
  112. t4.name as roleName,
  113. (select approve_by from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveBy,
  114. (select approve_time from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as
  115. approveTime,
  116. (select id from sys_dept where id = psd.parent_id ) as levelFourDeptId,
  117. (select name from sys_dept where id = psd.parent_id) as levelFourDeptName
  118. from sys_user su
  119. left join sys_dept sd on su.dept_id=sd.id
  120. left join sys_dept psd on sd.parent_id=psd.id
  121. left join sys_user_info info on info.id=su.id
  122. left join sys_user_role t3 on su.id=t3.user_id
  123. left join sys_role t4 on t3.role_id=t4.id
  124. where 1=1
  125. AND sd.id &lt;&gt; ''
  126. <if test='user !=null '>
  127. <if test='user.status !=null and user.status!="" '>
  128. and su.status = #{user.status}
  129. </if>
  130. <if test='user.name !=null and user.name!="" '>
  131. and su.name like concat('%',#{user.name},'%')
  132. </if>
  133. <if test='user.userId !=null and user.userId!="" '>
  134. and su.id = #{user.userId}
  135. </if>
  136. <if test='user.mobile !=null and user.mobile!="" '>
  137. and su.mobile = #{user.mobile}
  138. </if>
  139. <if test='user.deptId !=null and user.deptId!="" '>
  140. and su.dept_id like concat('%',#{user.deptId},'%')
  141. </if>
  142. <if test='user.roleId !=null and user.roleId!="" '>
  143. and t3.role_id in (${user.roleId})
  144. </if>
  145. </if>
  146. </select>
  147. <select id="findUserList" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  148. SELECT
  149. su.id as userId,
  150. su.name,
  151. info.sex,
  152. su.mobile,
  153. su.status,
  154. su.type,
  155. su.level,
  156. su.referrer_id as referrerId,
  157. sd.id as deptId,
  158. sd.name as deptName,
  159. t4.id as roleId,
  160. t4.name as roleName,
  161. sd.management_source,
  162. psd.id as pDeptId,
  163. psd.name as pDeptName,
  164. su.create_time as submitTime,
  165. (select approve_by from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveBy,
  166. (select approve_time from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as
  167. approveTime
  168. FROM
  169. sys_user su
  170. LEFT JOIN sys_user_info info ON info.id = su.id
  171. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  172. left join sys_dept psd on psd.id = sd.parent_id
  173. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  174. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  175. AND sd.del_flag = '0'
  176. WHERE
  177. 1=1
  178. <if test='user !=null '>
  179. <if test='user.status !=null and user.status!="" '>
  180. and su.status = #{user.status}
  181. </if>
  182. <if test='user.examine != 0'>
  183. and su.status not in (0,1)
  184. </if>
  185. <if test='user.name !=null and user.name!="" '>
  186. and su.name like concat('%',#{user.name},'%')
  187. </if>
  188. <if test='user.userId !=null and user.userId!="" '>
  189. and su.id = #{user.userId}
  190. </if>
  191. <if test='user.mobile !=null and user.mobile!="" '>
  192. and su.mobile = #{user.mobile}
  193. </if>
  194. <if test='user.deptId !=null and user.deptId!="" '>
  195. and su.dept_id like concat('%',#{user.deptId},'%')
  196. </if>
  197. <if test='user.leaderName !=null and user.leaderName!="" '>
  198. and su.leader_name like concat('%',#{user.leaderName},'%')
  199. </if>
  200. <if test='user.roleId !=null and user.roleId!="" '>
  201. and t3.role_id in (${user.roleId})
  202. </if>
  203. <if test="user.agentFlag !=null and user.agentFlag != 0 ">
  204. and sd.management_source = #{user.agentFlag}
  205. </if>
  206. <if test="user.agentFlag != null and user.agentFlag == 0">
  207. and sd.management_source is null
  208. </if>
  209. </if>
  210. order by su.create_time desc
  211. </select>
  212. <select id="findAllUserList" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  213. SELECT
  214. su.id as userId,
  215. su.name,
  216. info.sex,
  217. su.mobile,
  218. su.status,
  219. sd.id as deptId,
  220. sd.name as deptName,
  221. t4.id as roleId,
  222. t4.name as roleName,
  223. sd.management_source,
  224. psd.id as pDeptId,
  225. psd.name as pDeptName
  226. FROM
  227. sys_user su
  228. LEFT JOIN sys_user_info info ON info.id = su.id
  229. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  230. left join sys_dept psd on psd.id = sd.parent_id
  231. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  232. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  233. AND sd.del_flag = '0'
  234. WHERE
  235. 1=1
  236. <if test='user !=null '>
  237. <if test='user.status !=null and user.status!="" '>
  238. and su.status = #{user.status}
  239. </if>
  240. <if test='user.name !=null and user.name!="" '>
  241. and su.name like concat('%',#{user.name},'%')
  242. </if>
  243. <if test='user.userId !=null and user.userId!="" '>
  244. and su.id = #{user.userId}
  245. </if>
  246. <if test='user.mobile !=null and user.mobile!="" '>
  247. and su.mobile = #{user.mobile}
  248. </if>
  249. <if test='user.deptId !=null and user.deptId!="" '>
  250. and su.dept_id like concat('%',#{user.deptId},'%')
  251. </if>
  252. <if test='user.leaderName !=null and user.leaderName!="" '>
  253. and su.leader_name like concat('%',#{user.leaderName},'%')
  254. </if>
  255. <if test='user.roleId !=null and user.roleId!="" '>
  256. and t3.role_id in (${user.roleId})
  257. </if>
  258. </if>
  259. </select>
  260. <select id="findBackUserList" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  261. SELECT
  262. su.id as userId,
  263. su.name,
  264. su.position_name,
  265. info.sex,
  266. su.mobile,
  267. su.status,
  268. su.type,
  269. su.level,
  270. su.referrer_id as referrerId,
  271. sd.id as deptId,
  272. sd.name as deptName,
  273. t4.id as roleId,
  274. t4.name as roleName,
  275. sd.management_source,
  276. psd.id as pDeptId,
  277. psd.name as pDeptName,
  278. su.create_time as submitTime,
  279. (select approve_by from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveBy,
  280. (select approve_time from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as
  281. approveTime
  282. FROM
  283. sys_user su
  284. LEFT JOIN sys_user_info info ON info.id = su.id
  285. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  286. left join sys_dept psd on psd.id = sd.parent_id
  287. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  288. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  289. AND sd.del_flag = '0'
  290. WHERE
  291. 1=1
  292. <if test='user !=null '>
  293. <if test='user.status !=null and user.status!="" '>
  294. and su.status = #{user.status}
  295. </if>
  296. <if test='user.examine != 0'>
  297. and su.status not in (0,1)
  298. </if>
  299. <if test='user.name !=null and user.name!="" '>
  300. and su.name like concat('%',#{user.name},'%')
  301. </if>
  302. <if test='user.userId !=null and user.userId!="" '>
  303. and su.id = #{user.userId}
  304. </if>
  305. <if test='user.mobile !=null and user.mobile!="" '>
  306. and su.mobile = #{user.mobile}
  307. </if>
  308. <if test='user.deptId !=null and user.deptId!="" '>
  309. and su.dept_id like concat('%',#{user.deptId},'%')
  310. </if>
  311. <if test='user.leaderName !=null and user.leaderName!="" '>
  312. and su.leader_name like concat('%',#{user.leaderName},'%')
  313. </if>
  314. <if test="user.agentFlag !=null and user.agentFlag != 0 ">
  315. and sd.management_source = #{user.agentFlag}
  316. </if>
  317. <if test="user.agentFlag != null and user.agentFlag == 0">
  318. and sd.management_source is null
  319. </if>
  320. and su.id NOT LIKE '%M%'
  321. </if>
  322. order by su.create_time desc
  323. </select>
  324. <select id="findBackUserList1" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  325. SELECT
  326. su.id as userId,
  327. su.name,
  328. su.position_name,
  329. info.sex,
  330. su.mobile,
  331. su.status,
  332. sd.id as deptId,
  333. sd.name as deptName,
  334. t4.id as roleId,
  335. t4.name as roleName,
  336. sd.management_source,
  337. psd.id as pDeptId,
  338. psd.name as pDeptName
  339. FROM
  340. sys_user su
  341. LEFT JOIN sys_user_info info ON info.id = su.id
  342. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  343. left join sys_dept psd on psd.id = sd.parent_id
  344. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  345. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  346. AND sd.del_flag = '0'
  347. WHERE
  348. 1=1
  349. and su.status = '1'
  350. <if test='user !=null '>
  351. <if test='user.name !=null and user.name!="" '>
  352. and su.name like concat('%',#{user.name},'%')
  353. </if>
  354. <if test='user.userId !=null and user.userId!="" '>
  355. and su.id = #{user.userId}
  356. </if>
  357. <if test='user.mobile !=null and user.mobile!="" '>
  358. and su.mobile = #{user.mobile}
  359. </if>
  360. <if test='user.deptId !=null and user.deptId!="" '>
  361. and su.dept_id like concat('%',#{user.deptId},'%')
  362. </if>
  363. <if test='user.leaderName !=null and user.leaderName!="" '>
  364. and su.leader_name like concat('%',#{user.leaderName},'%')
  365. </if>
  366. <if test="user.agentFlag !=null and user.agentFlag != 0 ">
  367. and sd.management_source = #{user.agentFlag}
  368. </if>
  369. <if test="user.agentFlag != null and user.agentFlag == 0">
  370. and sd.management_source is null
  371. </if>
  372. and su.id NOT LIKE '%M%'
  373. </if>
  374. </select>
  375. <resultMap id="QuTeamNumMap" type="com.ydtech.modules.admin.model.QuTeamNum">
  376. <id column="id" javaType="String" jdbcType="VARCHAR" property="deptId"/>
  377. <result column="name" javaType="String" jdbcType="VARCHAR" property="deptName"/>
  378. <result column="orderstatus" javaType="String" jdbcType="VARCHAR" property="orderStatus"/>
  379. <result column="companyId" javaType="String" jdbcType="VARCHAR" property="companyId"/>
  380. <result column="insCompany" javaType="String" jdbcType="VARCHAR" property="insCompany"/>
  381. <result column="count" javaType="String" jdbcType="VARCHAR" property="count"/>
  382. <result column="jqpremium" javaType="String" jdbcType="VARCHAR" property="jqPremiumSum"/>
  383. <result column="sypremium" javaType="String" jdbcType="VARCHAR" property="syPremiumSum"/>
  384. <result column="taxamount" javaType="String" jdbcType="VARCHAR" property="taxaMountSum"/>
  385. </resultMap>
  386. <select id="getDept" resultMap="QuTeamNumMap">
  387. SELECT
  388. sd.id,
  389. sd.name,
  390. i.orderstatus,
  391. i.count,
  392. i.jqpremium,
  393. i.sypremium,
  394. i.taxamount
  395. FROM
  396. sys_dept sd
  397. LEFT JOIN (
  398. SELECT
  399. io.deptid AS deptid,
  400. iac.orderstatus AS orderstatus,
  401. count(*) AS count,
  402. sum( iac.jqpremium ) AS jqpremium,
  403. sum( iac.sypremium ) AS sypremium,
  404. sum( iac.taxamount ) AS taxamount
  405. FROM
  406. ins_orders io
  407. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  408. WHERE
  409. iac.orderstatus in (1,2,3)
  410. <if test="quTeamNumDto.createTimeStart != null">
  411. and io.createtime &gt;= #{quTeamNumDto.createTimeStart}
  412. </if>
  413. <if test="quTeamNumDto.createTimeEnd != null">
  414. and io.createtime &lt;= #{quTeamNumDto.createTimeEnd}
  415. </if>
  416. GROUP BY
  417. iac.orderstatus,
  418. io.userid,
  419. io.deptid
  420. ) AS i ON i.deptid = sd.id
  421. WHERE
  422. sd.del_flag = 0
  423. <if test="quTeamNumDto.deptId != null and quTeamNumDto.deptId != ''">
  424. and sd.id like concat(#{quTeamNumDto.deptId},'%')
  425. </if>
  426. <if test="quTeamNumDto.deptName != null and quTeamNumDto.deptName != ''">
  427. and sd.name like concat(#{quTeamNumDto.deptName},'%')
  428. </if>
  429. </select>
  430. <select id="getDeptByCompany" resultMap="QuTeamNumMap">
  431. SELECT
  432. iac.company_id as companyId,
  433. iac.inscompany as insCompany,
  434. COUNT(*) AS quoteNum,
  435. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS
  436. submitNum,
  437. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  438. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremium,
  439. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremium,
  440. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamount,
  441. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN
  442. iac.sypremium ELSE 0 END) AS totalSumpremium
  443. FROM
  444. ins_orders io
  445. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  446. WHERE
  447. iac.orderstatus IN ( 1, 2, 3 )
  448. <if test="quTeamNumDto.deptId != null and quTeamNumDto.deptId != ''">
  449. and io.deptid = #{quTeamNumDto.deptId}
  450. </if>
  451. GROUP BY
  452. iac.company_id,
  453. iac.inscompany
  454. </select>
  455. <resultMap id="QuUserNumMap" type="com.ydtech.modules.admin.model.QuTeamNum">
  456. <id column="id" javaType="String" jdbcType="VARCHAR" property="userId"/>
  457. <result column="name" javaType="String" jdbcType="VARCHAR" property="userName"/>
  458. <result column="orderstatus" javaType="String" jdbcType="VARCHAR" property="orderStatus"/>
  459. <result column="count" javaType="String" jdbcType="VARCHAR" property="count"/>
  460. <result column="jqpremium" javaType="String" jdbcType="VARCHAR" property="jqPremiumSum"/>
  461. <result column="sypremium" javaType="String" jdbcType="VARCHAR" property="syPremiumSum"/>
  462. <result column="taxamount" javaType="String" jdbcType="VARCHAR" property="taxaMountSum"/>
  463. </resultMap>
  464. <select id="getUser" resultMap="QuUserNumMap">
  465. SELECT
  466. su.id,
  467. su.name,
  468. i.orderstatus,
  469. i.count,
  470. i.jqpremium,
  471. i.sypremium,
  472. i.taxamount
  473. FROM
  474. sys_user su
  475. LEFT JOIN (
  476. SELECT
  477. io.userid AS userid,
  478. iac.orderstatus AS orderstatus,
  479. count(*) AS count,
  480. sum( iac.jqpremium ) AS jqpremium,
  481. sum( iac.sypremium ) AS sypremium,
  482. sum( iac.taxamount ) AS taxamount
  483. FROM
  484. ins_orders io
  485. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  486. WHERE
  487. iac.orderstatus in (1,2,3)
  488. <if test="quTeamNumDto.createTimeStart != null">
  489. and io.createtime &gt;= #{quTeamNumDto.createTimeStart}
  490. </if>
  491. <if test="quTeamNumDto.createTimeEnd != null">
  492. and io.createtime &lt;= #{quTeamNumDto.createTimeEnd}
  493. </if>
  494. GROUP BY
  495. iac.orderstatus,
  496. io.userid
  497. ) AS i ON i.userid = su.id
  498. WHERE
  499. su.status = 1
  500. <if test="quTeamNumDto.deptId != null and quTeamNumDto.deptId != ''">
  501. and su.dept_id like concat(#{quTeamNumDto.deptId},'%')
  502. </if>
  503. <if test="quTeamNumDto.userName != null and quTeamNumDto.userName != ''">
  504. and su.name like concat(#{quTeamNumDto.userName},'%')
  505. </if>
  506. </select>
  507. <select id="findListByDeptId" resultType="com.ydtech.modules.admin.model.vo.SysUserVO">
  508. SELECT
  509. su.id,
  510. su.name
  511. FROM
  512. sys_user su
  513. WHERE
  514. su.status = 1
  515. <if test="sysUser.deptId != null and sysUser.deptId != ''">
  516. and su.dept_id = #{sysUser.deptId}
  517. </if>
  518. <if test="sysUser.id != null and sysUser.id != ''">
  519. and su.id != #{sysUser.id}
  520. </if>
  521. </select>
  522. <select id="findListByDeptIdNew" resultType="com.ydtech.modules.admin.model.vo.SysUserVO">
  523. SELECT
  524. su.id,
  525. su.name
  526. FROM
  527. sys_user su
  528. WHERE
  529. su.status = 1
  530. <if test="sysUser.deptId != null and sysUser.deptId != ''">
  531. and su.id like concat('%',#{sysUser.deptId},'%')
  532. </if>
  533. <if test="sysUser.id != null and sysUser.id != ''">
  534. and su.id != #{sysUser.id}
  535. </if>
  536. </select>
  537. <select id="getUserNum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  538. SELECT
  539. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping}) AS areacode,
  540. COUNT(*) AS quoteNum,
  541. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS
  542. submitNum,
  543. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  544. SUM(CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS subWaitAuditSum,
  545. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END) AS subWaitPaySum,
  546. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS subAcceptInsuranceSum,
  547. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
  548. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
  549. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
  550. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN
  551. iac.sypremium ELSE 0 END) AS totalSumpremium
  552. FROM
  553. ins_orders io
  554. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  555. WHERE
  556. iac.orderstatus IN ( 0 ,1, 2, 3, 4 )
  557. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  558. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  559. </if>
  560. <if test="quUserNumDto.userIds != null">
  561. and io.userid IN
  562. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  563. #{id}
  564. </foreach>
  565. </if>
  566. GROUP BY
  567. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping})
  568. </select>
  569. <select id="getMainWaitAuditSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  570. SELECT
  571. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping}) AS areacode,
  572. SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum
  573. FROM
  574. ins_orders io
  575. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  576. WHERE
  577. iac.orderstatus IN (1)
  578. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  579. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  580. </if>
  581. <if test="quUserNumDto.userIds != null">
  582. and io.userid IN
  583. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  584. #{id}
  585. </foreach>
  586. </if>
  587. GROUP BY
  588. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping})
  589. </select>
  590. <select id="getMainWaitPaySum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  591. SELECT
  592. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping}) AS areacode,
  593. SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum
  594. FROM
  595. ins_orders io
  596. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  597. WHERE
  598. iac.orderstatus IN (2)
  599. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  600. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  601. </if>
  602. <if test="quUserNumDto.userIds != null">
  603. and io.userid IN
  604. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  605. #{id}
  606. </foreach>
  607. </if>
  608. GROUP BY
  609. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping})
  610. </select>
  611. <select id="getMainAcceptInsuranceSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  612. SELECT
  613. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping}) AS areacode,
  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. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping})
  631. </select>
  632. <select id="getUserByCompany" resultType="com.ydtech.modules.admin.model.QuUserNum">
  633. SELECT
  634. iac.company_id as companyId,
  635. iac.inscompany as insCompany,
  636. COUNT(*) AS quoteNum,
  637. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS
  638. submitNum,
  639. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  640. SUM(CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS subWaitAuditSum,
  641. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END) AS subWaitPaySum,
  642. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS subAcceptInsuranceSum,
  643. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
  644. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
  645. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
  646. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN
  647. iac.sypremium ELSE 0 END) AS totalSumpremium
  648. FROM
  649. ins_orders io
  650. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  651. WHERE
  652. iac.orderstatus IN ( 0, 1, 2, 3, 4 )
  653. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  654. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  655. </if>
  656. <if test="quUserNumDto.userIds != null">
  657. and io.userid IN
  658. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  659. #{id}
  660. </foreach>
  661. </if>
  662. GROUP BY
  663. iac.company_id,
  664. iac.inscompany
  665. </select>
  666. <select id="getComMainWaitAuditSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  667. SELECT
  668. iac.company_id as companyId,
  669. iac.inscompany as insCompany,
  670. SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum
  671. FROM
  672. ins_orders io
  673. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  674. WHERE
  675. iac.orderstatus IN (1)
  676. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  677. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  678. </if>
  679. <if test="quUserNumDto.userIds != null">
  680. and io.userid IN
  681. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  682. #{id}
  683. </foreach>
  684. </if>
  685. GROUP BY
  686. iac.company_id,
  687. iac.inscompany
  688. </select>
  689. <select id="getComMainWaitPaySum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  690. SELECT
  691. iac.company_id as companyId,
  692. iac.inscompany as insCompany,
  693. SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum
  694. FROM
  695. ins_orders io
  696. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  697. WHERE
  698. iac.orderstatus IN (2)
  699. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  700. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  701. </if>
  702. <if test="quUserNumDto.userIds != null">
  703. and io.userid IN
  704. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  705. #{id}
  706. </foreach>
  707. </if>
  708. GROUP BY
  709. iac.company_id,
  710. iac.inscompany
  711. </select>
  712. <select id="getComMainAcceptInsuranceSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  713. SELECT
  714. iac.company_id as companyId,
  715. iac.inscompany as insCompany,
  716. SUM(CASE WHEN io.orderstatus = 3 THEN 1 ELSE 0 END) AS mainAcceptInsuranceSum
  717. FROM
  718. ins_orders io
  719. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  720. WHERE
  721. iac.orderstatus IN (3)
  722. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  723. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  724. </if>
  725. <if test="quUserNumDto.userIds != null">
  726. and io.userid IN
  727. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  728. #{id}
  729. </foreach>
  730. </if>
  731. GROUP BY
  732. iac.company_id,
  733. iac.inscompany
  734. </select>
  735. <select id="getUserDetail" resultType="com.ydtech.modules.admin.model.QuUserNum">
  736. SELECT
  737. io.userid,
  738. io.username,
  739. COUNT(*) AS quoteNum,
  740. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS
  741. submitNum,
  742. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  743. SUM(CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS subWaitAuditSum,
  744. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END) AS subWaitPaySum,
  745. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS subAcceptInsuranceSum,
  746. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
  747. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
  748. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
  749. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN
  750. iac.sypremium ELSE 0 END) AS totalSumpremium
  751. FROM
  752. ins_orders io
  753. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  754. WHERE
  755. iac.orderstatus IN ( 0 ,1, 2, 3, 4 )
  756. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  757. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  758. </if>
  759. <if test="quUserNumDto.userIds != null">
  760. and io.userid IN
  761. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  762. #{id}
  763. </foreach>
  764. </if>
  765. GROUP BY
  766. io.userid,
  767. io.username
  768. </select>
  769. <select id="getUserMainWaitAuditSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  770. SELECT
  771. io.userid,
  772. io.username,
  773. SUM(CASE WHEN io.orderstatus = 1 THEN 1 ELSE 0 END) AS mainWaitAuditSum
  774. FROM
  775. ins_orders io
  776. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  777. WHERE
  778. iac.orderstatus IN (1)
  779. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  780. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  781. </if>
  782. <if test="quUserNumDto.userIds != null">
  783. and io.userid IN
  784. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  785. #{id}
  786. </foreach>
  787. </if>
  788. GROUP BY
  789. io.userid,
  790. io.username
  791. </select>
  792. <select id="getUserMainWaitPaySum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  793. SELECT
  794. io.userid,
  795. io.username,
  796. SUM(CASE WHEN io.orderstatus = 2 THEN 1 ELSE 0 END) AS mainWaitPaySum
  797. FROM
  798. ins_orders io
  799. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  800. WHERE
  801. iac.orderstatus IN (2)
  802. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  803. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  804. </if>
  805. <if test="quUserNumDto.userIds != null">
  806. and io.userid IN
  807. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  808. #{id}
  809. </foreach>
  810. </if>
  811. GROUP BY
  812. io.userid,
  813. io.username
  814. </select>
  815. <select id="getUserMainAcceptInsuranceSum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  816. SELECT
  817. io.userid,
  818. io.username,
  819. SUM(CASE WHEN io.orderstatus = 3 THEN 1 ELSE 0 END) AS mainAcceptInsuranceSum
  820. FROM
  821. ins_orders io
  822. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  823. WHERE
  824. iac.orderstatus IN (3)
  825. <if test="quUserNumDto.createTimeStart != null and quUserNumDto.createTimeEnd != null">
  826. and io.createtime BETWEEN #{quUserNumDto.createTimeStart} AND #{quUserNumDto.createTimeEnd}
  827. </if>
  828. <if test="quUserNumDto.userIds != null">
  829. and io.userid IN
  830. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  831. #{id}
  832. </foreach>
  833. </if>
  834. GROUP BY
  835. io.userid,
  836. io.username
  837. </select>
  838. <select id="getAllUsersByHospitality" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  839. SELECT
  840. su.id as userId,
  841. su.name,
  842. info.sex,
  843. info.live_address,
  844. su.mobile,
  845. su.leader_id,
  846. su.leader_name,
  847. su.status,
  848. su.identity,
  849. sd.id as deptId,
  850. sd.name as deptName,
  851. t4.id as roleId,
  852. t4.name as roleName,
  853. sd.management_source as managementSource,
  854. psd.id as pDeptId,
  855. psd.name as pDeptName,
  856. "" as noType,
  857. psd.name as fiveDeptName,
  858. ppsd.name as fourDeptName,
  859. pppsd.name as threeDeptName,
  860. ppppsd.name as twoDeptName,
  861. case when IFNULL(su.openid,'')='' then '否' else '是' end as weChatAuthenticationFlag,
  862. case when IFNULL(su.alipay,'')='' then '否' else '是' end as alipayCertificationFlag,
  863. (select case when count(0) >0 then '是' else '否' end from sys_user_bank_card bc where bc.user_id =su.id and
  864. bc.audit_status =1 ) AS bindBankNumberFlag
  865. FROM
  866. sys_user su
  867. LEFT JOIN sys_user_info info ON info.id = su.id
  868. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  869. LEFT JOIN sys_dept psd on psd.id = sd.parent_id
  870. LEFT JOIN sys_dept ppsd on ppsd.id = psd.parent_id
  871. LEFT JOIN sys_dept pppsd on pppsd.id = ppsd.parent_id
  872. LEFT JOIN sys_dept ppppsd on ppppsd.id = pppsd.parent_id
  873. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  874. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  875. AND sd.del_flag = '0'
  876. WHERE
  877. su.status != 0 AND su.id LIKE '%M%' and su.id!='admin'
  878. <if test='user !=null '>
  879. <if test='user.name !=null and user.name!="" '>
  880. and su.name like concat('%', #{user.name}, '%')
  881. </if>
  882. <if test='user.userId !=null and user.userId!="" '>
  883. and su.id like concat('%', #{user.userId}, '%')
  884. </if>
  885. <if test='user.mobile !=null and user.mobile!="" '>
  886. and su.mobile like concat('%', #{user.mobile}, '%')
  887. </if>
  888. <if test='user.identity !=null and user.identity!="" '>
  889. and su.identity like concat('%', #{user.identity}, '%')
  890. </if>
  891. </if>
  892. </select>
  893. <select id="getCustomerUsers" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  894. SELECT
  895. t1.id AS userId,
  896. t1.NAME AS NAME,
  897. t1.mobile AS mobile,
  898. t1.`status` AS `status`,
  899. t2.id AS deptId,
  900. t2.`name` AS deptName,
  901. sd2.id AS pDeptId,
  902. sd2.`name` AS pDeptName
  903. FROM
  904. sys_user t1
  905. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  906. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  907. WHERE
  908. t1.`status` = 1
  909. AND t1.id NOT LIKE '%M%'
  910. <if test='user !=null '>
  911. <if test='user.name !=null and user.name!="" '>
  912. and t1.name = #{user.name}
  913. </if>
  914. <if test='user.userId !=null and user.userId!="" '>
  915. and t1.id = #{user.userId}
  916. </if>
  917. <if test='user.mobile !=null and user.mobile!="" '>
  918. and t1.mobile = #{user.mobile}
  919. </if>
  920. <if test='user.identity !=null and user.identity!="" '>
  921. and t1.identity = #{user.identity}
  922. </if>
  923. </if>
  924. </select>
  925. <select id="getDeptIdsByRoleIdsAndUserIds" resultType="String">
  926. SELECT
  927. t2.id
  928. FROM
  929. sys_user t1
  930. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  931. LEFT JOIN sys_user_role sur ON sur.user_id = t1.id
  932. WHERE
  933. t1.`status` = 1
  934. <if test="userIds != null and userIds.size>0">
  935. AND
  936. t1.id IN
  937. <foreach collection="userIds" item="item" open="(" separator="," close=")">
  938. #{item}
  939. </foreach>
  940. </if>
  941. <if test="roleIds != null and roleIds.size>0">
  942. AND
  943. sur.role_id IN
  944. <foreach collection="roleIds" item="item" open="(" separator="," close=")">
  945. #{item}
  946. </foreach>
  947. </if>
  948. GROUP BY t2.id
  949. </select>
  950. <select id="findUserListByPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  951. SELECT
  952. t1.id AS userId,
  953. t1.NAME AS NAME,
  954. t1.mobile AS mobile,
  955. t1.`status` AS `status`,
  956. t2.id AS deptId,
  957. t2.`name` AS deptName,
  958. sd2.id AS pDeptId,
  959. sd2.`name` AS pDeptName,
  960. CASE
  961. WHEN ( SELECT count( 0 ) FROM sys_user_link_pl_agreement link WHERE link.user_id = t1.id) > 0 THEN
  962. true ELSE false
  963. END AS flag
  964. FROM
  965. sys_user t1
  966. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  967. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  968. WHERE
  969. t1.`status` = 1
  970. AND t1.id NOT LIKE '%M%'
  971. <if test='user !=null '>
  972. <if test='user.name !=null and user.name!="" '>
  973. and t1.name like CONCAT('%', #{user.name}, '%')
  974. </if>
  975. <if test='user.userId !=null and user.userId!="" '>
  976. and t1.id = #{user.userId}
  977. </if>
  978. <if test='user.mobile !=null and user.mobile!="" '>
  979. and t1.mobile = #{user.mobile}
  980. </if>
  981. <if test='user.deptId !=null and user.deptId!="" '>
  982. and t2.id like CONCAT('', #{user.deptId}, '%')
  983. </if>
  984. </if>
  985. order by flag desc
  986. </select>
  987. <select id="getDeptIdsByUserIds" resultType="String">
  988. SELECT t2.id
  989. FROM sys_user t1
  990. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  991. WHERE t1.`status` = 1
  992. AND EXISTS (SELECT *
  993. FROM (SELECT t1.id
  994. FROM sys_user t1
  995. LEFT JOIN sys_user_role sur ON sur.user_id = t1.id
  996. WHERE t1.`status` = 1
  997. AND t1.leader_id = #{userId}
  998. AND EXISTS (SELECT *
  999. FROM (SELECT 1 AS id
  1000. UNION ALL
  1001. SELECT 15
  1002. UNION ALL
  1003. SELECT 16
  1004. UNION ALL
  1005. SELECT 17
  1006. UNION ALL
  1007. SELECT 18
  1008. UNION ALL
  1009. SELECT 21) roleAll
  1010. WHERE roleAll.id = sur.role_id)) users
  1011. WHERE users.id = t1.id)
  1012. GROUP BY t2.id
  1013. </select>
  1014. <select id="findUserListByAreaPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  1015. SELECT
  1016. t1.id AS userId,
  1017. t1.NAME AS NAME,
  1018. t1.mobile AS mobile,
  1019. t1.`status` AS `status`,
  1020. t2.id AS deptId,
  1021. t2.`name` AS deptName,
  1022. sd2.id AS pDeptId,
  1023. sd2.`name` AS pDeptName,
  1024. CASE
  1025. WHEN ( SELECT count( 0 ) FROM sys_user_link_area link WHERE link.user_id = t1.id) > 0 THEN
  1026. true ELSE false
  1027. END AS flag
  1028. FROM
  1029. sys_user t1
  1030. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  1031. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  1032. WHERE
  1033. t1.`status` = 1
  1034. AND t1.id NOT LIKE '%M%'
  1035. <if test='user !=null '>
  1036. <if test='user.name !=null and user.name!="" '>
  1037. and t1.name like CONCAT('%', #{user.name}, '%')
  1038. </if>
  1039. <if test='user.userId !=null and user.userId!="" '>
  1040. and t1.id = #{user.userId}
  1041. </if>
  1042. <if test='user.mobile !=null and user.mobile!="" '>
  1043. and t1.mobile = #{user.mobile}
  1044. </if>
  1045. <if test='user.deptId !=null and user.deptId!="" '>
  1046. and t2.id like CONCAT('', #{user.deptId}, '%')
  1047. </if>
  1048. </if>
  1049. order by flag desc
  1050. </select>
  1051. <select id="getAgentUserIdsByAreaIds" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  1052. SELECT su.id AS userId,
  1053. su.dept_id AS deptId
  1054. FROM sys_user su
  1055. LEFT JOIN sys_user_info info ON info.id = su.id
  1056. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1057. LEFT JOIN sys_dept psd ON psd.id = sd.parent_id
  1058. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1059. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  1060. AND sd.del_flag = '0'
  1061. AND su.STATUS = 1
  1062. WHERE t3.role_id = 20
  1063. AND sd.management_source = 2
  1064. </select>
  1065. <select id="getCountByDeptAndRoleId" resultType="Integer">
  1066. SELECT count(0)
  1067. FROM sys_user su
  1068. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1069. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  1070. WHERE su.dept_id = #{user.deptId}
  1071. AND t4.id = #{user.roleId}
  1072. </select>
  1073. <select id="findTDZUserIdByDeptId" resultType="String">
  1074. SELECT su.id
  1075. FROM sys_user su
  1076. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1077. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  1078. WHERE su.dept_id = #{deptId}
  1079. AND t4.id = 21
  1080. </select>
  1081. <select id="findSumCountAndAvgAge" resultType="java.util.HashMap">
  1082. SELECT count(su.id) AS sumCount,
  1083. FLOOR(
  1084. avg(
  1085. TIMESTAMPDIFF(
  1086. YEAR, STR_TO_DATE(SUBSTRING(su.identity, 7, 8), '%Y%m%d'),
  1087. CURDATE()))) AS avgAge
  1088. FROM sys_user su
  1089. WHERE su.dept_id LIKE CONCAT(#{deptId}, '%')
  1090. AND su.identity IS NOT NULL
  1091. </select>
  1092. <select id="findEducationSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1093. SELECT uinfo.education AS NAME,
  1094. count(uinfo.education) AS count
  1095. FROM
  1096. sys_user su
  1097. LEFT JOIN sys_user_info uinfo
  1098. ON su.id = uinfo.id
  1099. WHERE
  1100. su.dept_id LIKE CONCAT( #{deptId}
  1101. , '%' )
  1102. AND uinfo.education IS NOT NULL
  1103. GROUP BY
  1104. uinfo.education
  1105. </select>
  1106. <select id="findQXTDSumCountAndAvgAge" resultType="java.util.HashMap">
  1107. SELECT count(su.id) AS sumCount,
  1108. FLOOR(
  1109. avg(
  1110. TIMESTAMPDIFF(
  1111. YEAR, STR_TO_DATE(SUBSTRING(su.identity, 7, 8), '%Y%m%d'),
  1112. CURDATE()))) AS avgAge
  1113. FROM sys_user su
  1114. LEFT JOIN sys_user_role ro ON su.id = ro.user_id
  1115. WHERE su.dept_id LIKE CONCAT(#{deptId}, '%')
  1116. AND ro.role_id = 21
  1117. </select>
  1118. <select id="findQXDLSumCountAndAvgAge" resultType="java.util.HashMap">
  1119. SELECT count(su.id) AS sumCount,
  1120. FLOOR(
  1121. avg(
  1122. TIMESTAMPDIFF(
  1123. YEAR, STR_TO_DATE(SUBSTRING(su.identity, 7, 8), '%Y%m%d'),
  1124. CURDATE()))) AS avgAge
  1125. FROM sys_user su
  1126. LEFT JOIN sys_dept dept ON su.dept_id = dept.id
  1127. WHERE su.dept_id LIKE CONCAT(#{deptId}, '%')
  1128. AND dept.management_source = #{type}
  1129. </select>
  1130. <select id="findQXTDAreaSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1131. SELECT sa.area_cname AS NAME,
  1132. count(0) AS count
  1133. FROM
  1134. sys_user su
  1135. LEFT JOIN sys_user_role ro
  1136. ON su.id = ro.user_id
  1137. LEFT JOIN sys_area sa ON sa.area_code = SUBSTRING ( LPAD( su.id, 8, 0 ), 3, 8 )
  1138. WHERE
  1139. su.dept_id LIKE CONCAT( #{deptId}
  1140. , '%' )
  1141. AND ro.role_id=21
  1142. AND sa.area_cname IS NOT NULL
  1143. GROUP BY
  1144. sa.area_cname
  1145. </select>
  1146. <select id="findQXDLAreaSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1147. SELECT sa.area_cname AS NAME,
  1148. count(0) AS count
  1149. FROM
  1150. sys_user su
  1151. LEFT JOIN sys_dept sd
  1152. ON su.dept_id = sd.id
  1153. LEFT JOIN sys_area sa ON sa.area_code = SUBSTRING ( LPAD( su.id, 8, 0 ), 3, 8 )
  1154. WHERE
  1155. sd.management_source = 2
  1156. AND sd.del_flag = '0'
  1157. AND su.STATUS = 1
  1158. AND sa.area_cname IS NOT NULL
  1159. GROUP BY
  1160. sa.area_cname
  1161. </select>
  1162. <select id="findQXTDSexSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1163. SELECT CASE
  1164. WHEN
  1165. uinfo.sex = 'M' THEN
  1166. '男'
  1167. WHEN uinfo.sex = 'F' THEN
  1168. '女'
  1169. ELSE ''
  1170. END AS NAME,
  1171. count(0) AS count
  1172. FROM
  1173. sys_user su
  1174. LEFT JOIN sys_user_info uinfo
  1175. ON su.id = uinfo.id
  1176. LEFT JOIN sys_user_role ro ON su.id = ro.user_id
  1177. WHERE
  1178. su.dept_id LIKE CONCAT(#{deptId}
  1179. , '%' )
  1180. AND ro.role_id = 21
  1181. AND uinfo.sex IS NOT NULL
  1182. GROUP BY
  1183. uinfo.sex
  1184. </select>
  1185. <select id="findQXDLSexSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1186. SELECT CASE
  1187. WHEN
  1188. uinfo.sex = 'M' THEN
  1189. '男'
  1190. WHEN uinfo.sex = 'F' THEN
  1191. '女'
  1192. ELSE ''
  1193. END AS NAME,
  1194. count(0) AS count
  1195. FROM
  1196. sys_user su
  1197. LEFT JOIN sys_user_info uinfo
  1198. ON uinfo.id = su.id
  1199. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1200. WHERE
  1201. sd.management_source = 2
  1202. AND sd.del_flag = '0'
  1203. AND su.STATUS = 1
  1204. AND uinfo.sex IS NOT NULL
  1205. GROUP BY
  1206. uinfo.sex
  1207. </select>
  1208. <select id="findQXTDWhSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1209. SELECT su.leader_name as name,
  1210. count(0) AS count
  1211. FROM
  1212. sys_user su
  1213. LEFT JOIN sys_user_role ro
  1214. ON su.id = ro.user_id
  1215. WHERE
  1216. su.dept_id LIKE CONCAT(#{deptId}
  1217. , '%' )
  1218. AND ro.role_id = 21
  1219. AND su.leader_name IS NOT NULL
  1220. GROUP BY
  1221. su.leader_name
  1222. </select>
  1223. <select id="findQXDLWhSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1224. SELECT su.leader_name as name,
  1225. count(0) AS count
  1226. FROM
  1227. sys_user su
  1228. LEFT JOIN sys_dept sd
  1229. ON su.dept_id = sd.id
  1230. WHERE
  1231. sd.management_source = 2
  1232. AND sd.del_flag = '0'
  1233. AND su.STATUS = 1
  1234. AND su.leader_name IS NOT NULL
  1235. GROUP BY
  1236. su.leader_name
  1237. </select>
  1238. <select id="queryQXQDReportData"
  1239. resultType="com.ydtech.modules.admin.model.report.user.QianLineQDPersonnelReportDto">
  1240. SELECT su.name as userName,
  1241. su.leader_name as leadName,
  1242. "渠道" as typeName,
  1243. "" as qdType
  1244. FROM sys_user su
  1245. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1246. WHERE sd.management_source = 1
  1247. AND sd.del_flag = '0'
  1248. AND su.STATUS = 1
  1249. and su.leader_name is not null
  1250. </select>
  1251. <select id="findQXDLUserList" resultType="com.ydtech.modules.admin.model.SysUser">
  1252. SELECT su.id as id,
  1253. su.name as name
  1254. FROM sys_user su
  1255. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1256. WHERE sd.management_source = 2
  1257. AND sd.del_flag = '0'
  1258. AND su.STATUS = 1
  1259. AND su.leader_name IS NOT NULL
  1260. GROUP BY su.leader_name
  1261. </select>
  1262. <select id="findHxUserList" resultType="com.ydtech.modules.admin.model.SysUser">
  1263. SELECT t1.id AS id,
  1264. t1.NAME AS NAME,
  1265. t1.mobile AS mobile,
  1266. t1.`status` AS `status`,
  1267. t2.id AS deptId,
  1268. t2.`name` AS deptName,
  1269. sd2.id AS pDeptId,
  1270. sd2.`name` AS pDeptName
  1271. FROM sys_user t1
  1272. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  1273. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  1274. WHERE t1.`status` = 1
  1275. AND t1.id NOT LIKE '%M%'
  1276. </select>
  1277. <select id="findHxUserListNew" resultType="com.ydtech.modules.admin.model.SysUser">
  1278. SELECT t1.id AS id,
  1279. t1.NAME AS NAME,
  1280. t1.mobile AS mobile,
  1281. t1.`status` AS `status`,
  1282. t2.id AS deptId,
  1283. t2.id AS parentId,
  1284. t2.`name` AS deptName,
  1285. sd2.id AS pDeptId,
  1286. sd2.`name` AS pDeptName
  1287. FROM sys_user t1
  1288. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  1289. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  1290. WHERE t1.`status` = 1
  1291. AND t1.id NOT LIKE '%M%'
  1292. </select>
  1293. <select id="queryHXReportDataNew" resultType="java.util.HashMap">
  1294. SELECT
  1295. IFNULL(sum(info.salary),0) as "salary",
  1296. IFNULL(sum(case when info.sex ='M' THEN 1 ELSE 0 END ),0) as "manSex",
  1297. IFNULL(sum(case when info.sex ='F' THEN 1 ELSE 0 END),0) as "femaleSex",
  1298. IFNULL(sum(case when info.sex ='M' THEN 1 ELSE 0 END ) / (sum(case when info.sex ='M' THEN 1 ELSE 0 END ) +
  1299. sum(case when info.sex ='F' THEN 1 ELSE 0 END)),0) as "manProportion",
  1300. IFNULL(sum(case when info.sex ='F' THEN 1 ELSE 0 END) / (sum(case when info.sex ='M' THEN 1 ELSE 0 END ) +
  1301. sum(case when info.sex ='F' THEN 1 ELSE 0 END)),0) as "femaleProportion",
  1302. IFNULL(sum(case when info.is_speciality ='1' THEN 1 ELSE 0 END),0) as "computerSpecialityPersion",
  1303. IFNULL(sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END),0) as "otherSpecialityPersion",
  1304. IFNULL(sum(case when info.is_speciality ='1' THEN 1 ELSE 0 END) / (sum(case when info.is_speciality ='1' THEN 1
  1305. ELSE 0 END) + sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END)),0) as "computerSpecialityProportion",
  1306. IFNULL(sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END) / (sum(case when info.is_speciality ='1' THEN 1
  1307. ELSE 0 END) + sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END)),0) as "otherSpecialityProportion",
  1308. IFNULL(sum(case when su.status ='1' THEN 1 Else 0 END),0) as "onJobUser",
  1309. IFNULL(sum(case when su.status ='0' THEN 1 Else 0 END),0) as "departUser",
  1310. IFNULL(sum(case when su.status ='6' THEN 1 Else 0 END),0) as "pendingApproval",
  1311. IFNULL(sum(case when su.status ='7' THEN 1 Else 0 END),0) as "reviewRejected",
  1312. IFNULL(sum(case when su.status ='2' THEN 1 Else 0 END),0) as "companyReview",
  1313. IFNULL(sum(case when su.status ='3' THEN 1 Else 0 END),0) as "entryReview",
  1314. IFNULL(sum(case when su.status ='4' THEN 1 Else 0 END),0) as "leavingCompanyReview",
  1315. IFNULL(sum(case when su.status ='5' THEN 1 Else 0 END),0) as "departureReviewRejected",
  1316. IFNULL(sum(case when su.status ='1' THEN 1 Else 0 END),0) / count(su.id) as "onJobUserProportion",
  1317. IFNULL(sum(case when su.status ='0' THEN 1 Else 0 END),0) / count(su.id) as "departUserProportion",
  1318. IFNULL(sum(case when su.status ='6' THEN 1 Else 0 END),0) / count(su.id) as "pendingApprovalProportion",
  1319. IFNULL(sum(case when su.status ='7' THEN 1 Else 0 END),0) / count(su.id) as "reviewRejectedProportion",
  1320. IFNULL(sum(case when su.status ='2' THEN 1 Else 0 END),0) / count(su.id) as "companyReviewProportion",
  1321. IFNULL(sum(case when su.status ='3' THEN 1 Else 0 END),0) / count(su.id) as "entryReviewProportion",
  1322. IFNULL(sum(case when su.status ='4' THEN 1 Else 0 END),0) / count(su.id) as "leavingCompanyReviewProportion",
  1323. IFNULL(sum(case when su.status ='5' THEN 1 Else 0 END),0) / count(su.id) as "departureReviewRejectedProportion"
  1324. FROM
  1325. sys_user su
  1326. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1327. LEFT JOIN sys_user_info info ON info.id = su.id
  1328. <where>
  1329. info.id is not null
  1330. and su.id NOT LIKE '%M%'
  1331. <if test="vo.provinceId != null and vo.provinceId != ''">
  1332. and sd.id like concat('%',#{vo.provinceId},'%')
  1333. </if>
  1334. <if test="vo.cityId != null and vo.cityId != ''">
  1335. and sd.id like concat('%',#{vo.cityId},'%')
  1336. </if>
  1337. <if test="vo.countyId != null and vo.countyId != ''">
  1338. and sd.id like concat('%',#{vo.countyId},'%')
  1339. </if>
  1340. <if test="vo.houseId != null and vo.houseId != ''">
  1341. and sd.id like concat('%',#{vo.houseId},'%')
  1342. </if>
  1343. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size >0">
  1344. and su.dept_id IN
  1345. <foreach collection="vo.deptIds" item="id" index="index" open="(" close=")" separator=",">
  1346. #{id}
  1347. </foreach>
  1348. </if>
  1349. </where>
  1350. </select>
  1351. <select id="queryQxFrontlineAgent" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1352. SELECT
  1353. sd.name as "deptName",
  1354. su.name as "name",
  1355. sd.id as "deptId",
  1356. su.id as "userId",
  1357. su.mobile as "mobile",
  1358. su.dept_id as "deptId",
  1359. inf.url as "filePath",
  1360. sul.name as "leaderName",
  1361. sui.sex as "sex",
  1362. sur.role_id AS roleId
  1363. FROM
  1364. sys_user su
  1365. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1366. LEFT JOIN ins_upload_files inf on su.head_sculpture =inf.id
  1367. LEFT JOIN sys_user_role sur ON sur.user_id = su.id
  1368. LEFT JOIN sys_user sul on sul.id=su.leader_id
  1369. LEFT JOIN sys_user_info sui on sui .id =su.id
  1370. <where>
  1371. su.id LIKE '%M%'
  1372. and su.status = '1'
  1373. <if test="vo.managementSource != null and vo.managementSource!='' ">
  1374. AND sd.management_source =#{vo.managementSource}
  1375. </if>
  1376. <choose>
  1377. <when test='vo.managementSource == "2"'>
  1378. and (sur.role_id = 20 or sur.role_id = 21)
  1379. </when>
  1380. <when test='vo.managementSource == "1"'>
  1381. and (sur.role_id = 19 or sur.role_id = 21)
  1382. </when>
  1383. <otherwise>
  1384. </otherwise>
  1385. </choose>
  1386. <if test="vo.provinceId != null and vo.provinceId != ''">
  1387. and sd.id like concat('%',#{vo.provinceId},'%')
  1388. </if>
  1389. <if test="vo.cityId != null and vo.cityId != ''">
  1390. and sd.id like concat('%',#{vo.cityId},'%')
  1391. </if>
  1392. <if test="vo.countyId != null and vo.countyId != ''">
  1393. and sd.id like concat('%',#{vo.countyId},'%')
  1394. </if>
  1395. <if test="vo.houseId != null and vo.houseId != ''">
  1396. and sd.id like concat('%',#{vo.houseId},'%')
  1397. </if>
  1398. <if test="vo.name != null and vo.name != ''">
  1399. and su.name =#{vo.name}
  1400. </if>
  1401. <if test="vo.userCode != null and vo.userCode != ''">
  1402. and su.id =#{vo.userCode}
  1403. </if>
  1404. <if test="vo.phoneNumber != null and vo.phoneNumber != ''">
  1405. and su.mobile =#{vo.phoneNumber}
  1406. </if>
  1407. <if test="vo.leaderId != null and vo.leaderId != ''">
  1408. and su.leader_id =#{vo.leaderId}
  1409. </if>
  1410. <if test="vo.leaderName != null and vo.leaderName != ''">
  1411. and su.leader_name =#{vo.leaderName}
  1412. </if>
  1413. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  1414. AND sd.id in
  1415. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  1416. #{item}
  1417. </foreach>
  1418. </if>
  1419. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  1420. AND su.id in
  1421. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  1422. #{item}
  1423. </foreach>
  1424. </if>
  1425. </where>
  1426. </select>
  1427. <select id="getQxFrontlineAgentList" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1428. SELECT
  1429. sd.name as "deptName",
  1430. su.name as "name",
  1431. sd.id as "deptId",
  1432. su.id as "userId",
  1433. su.mobile as "mobile",
  1434. su.dept_id as "deptId",
  1435. inf.url as "filePath",
  1436. sul.name as "leaderName",
  1437. sui.sex as "sex",
  1438. sur.role_id AS roleId
  1439. FROM
  1440. sys_user su
  1441. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1442. LEFT JOIN ins_upload_files inf on su.head_sculpture =inf.id
  1443. LEFT JOIN sys_user_role sur ON sur.user_id = su.id
  1444. LEFT JOIN sys_user sul on sul.id=su.leader_id
  1445. LEFT JOIN sys_user_info sui on sui .id =su.id
  1446. <where>
  1447. su.id LIKE '%M%'
  1448. and su.status = '1'
  1449. <if test="vo.managementSource != null and vo.managementSource!='' ">
  1450. AND sd.management_source =#{vo.managementSource}
  1451. </if>
  1452. <choose>
  1453. <when test='vo.managementSource == "2"'>
  1454. and (sur.role_id = 20 or sur.role_id = 21)
  1455. </when>
  1456. <when test='vo.managementSource == "1"'>
  1457. and (sur.role_id = 19 or sur.role_id = 21)
  1458. </when>
  1459. <otherwise>
  1460. </otherwise>
  1461. </choose>
  1462. <if test="vo.provinceId != null and vo.provinceId != ''">
  1463. and sd.id like concat('%',#{vo.provinceId},'%')
  1464. </if>
  1465. <if test="vo.cityId != null and vo.cityId != ''">
  1466. and sd.id like concat('%',#{vo.cityId},'%')
  1467. </if>
  1468. <if test="vo.countyId != null and vo.countyId != ''">
  1469. and sd.id like concat('%',#{vo.countyId},'%')
  1470. </if>
  1471. <if test="vo.houseId != null and vo.houseId != ''">
  1472. and sd.id like concat('%',#{vo.houseId},'%')
  1473. </if>
  1474. <if test="vo.name != null and vo.name != ''">
  1475. and su.name =#{vo.name}
  1476. </if>
  1477. <if test="vo.userCode != null and vo.userCode != ''">
  1478. and su.id =#{vo.userCode}
  1479. </if>
  1480. <if test="vo.phoneNumber != null and vo.phoneNumber != ''">
  1481. and su.mobile =#{vo.phoneNumber}
  1482. </if>
  1483. <!-- <if test="vo.leaderId != null and vo.leaderId != ''">-->
  1484. <!-- and su.leader_id =#{vo.leaderId}-->
  1485. <!-- </if>-->
  1486. <if test="vo.leaderIds != null and vo.leaderIds != '' and vo.leaderIds.size() > 0">
  1487. AND su.leader_id in
  1488. <foreach collection="vo.leaderIds" item="item" open="(" separator="," close=")">
  1489. #{item}
  1490. </foreach>
  1491. </if>
  1492. <if test="vo.leaderName != null and vo.leaderName != ''">
  1493. and su.leader_name =#{vo.leaderName}
  1494. </if>
  1495. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  1496. AND sd.id in
  1497. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  1498. #{item}
  1499. </foreach>
  1500. </if>
  1501. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  1502. AND su.id in
  1503. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  1504. #{item}
  1505. </foreach>
  1506. </if>
  1507. </where>
  1508. </select>
  1509. <select id="getByIdsList" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1510. SELECT
  1511. su.name as "name",
  1512. sd.name as "deptName",
  1513. su.id as "userId",
  1514. su.dept_id as "deptId"
  1515. FROM
  1516. sys_user su
  1517. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1518. <where>
  1519. su.id LIKE '%M%'
  1520. and su.status = '1'
  1521. <if test="vo.ids != null and vo.ids.size()>0 ">
  1522. AND su.id IN
  1523. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  1524. #{item}
  1525. </foreach>
  1526. </if>
  1527. </where>
  1528. </select>
  1529. <select id="getByUserId" resultType="com.ydtech.modules.admin.model.SysUser">
  1530. select t.id id,
  1531. t.name name,
  1532. t.mobile mobile,
  1533. t2.management_source managementSource,
  1534. t.operatorCode,
  1535. t2.id deptId
  1536. from sys_user t
  1537. left join sys_dept t2 on t.dept_id = t2.id
  1538. where t.id = #{id}
  1539. </select>
  1540. <select id="findByReferrerId" resultType="com.ydtech.modules.admin.model.vo.SysUserVO">
  1541. SELECT u.id, u.name
  1542. FROM sys_user u
  1543. <where>
  1544. <if test="deptId != null and deptId != ''">
  1545. and u.dept_id = #{deptId}
  1546. </if>
  1547. </where>
  1548. </select>
  1549. <select id="getTelemarketingPersonnelUserId" resultType="java.lang.String">
  1550. SELECT u.id
  1551. FROM sys_user u
  1552. LEFT JOIN sys_dept d ON u.dept_id = d.id
  1553. WHERE d.management_source = '3'
  1554. </select>
  1555. <select id="queryQxFrontlineAgentList" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1556. SELECT
  1557. su.name as "name",
  1558. su.id as "userId"
  1559. FROM
  1560. sys_user su
  1561. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1562. LEFT JOIN sys_user_role sur ON sur.user_id = su.id
  1563. <where>
  1564. su.id LIKE '%M%'
  1565. and su.status = '1'
  1566. AND sd.management_source =2
  1567. and (sur.role_id = 20 or sur.role_id = 21)
  1568. <if test="vo.provinceId != null and vo.provinceId != ''">
  1569. and sd.id like concat('%',#{vo.provinceId},'%')
  1570. </if>
  1571. <if test="vo.cityId != null and vo.cityId != ''">
  1572. and sd.id like concat('%',#{vo.cityId},'%')
  1573. </if>
  1574. <if test="vo.countyId != null and vo.countyId != ''">
  1575. and sd.id like concat('%',#{vo.countyId},'%')
  1576. </if>
  1577. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  1578. AND sd.id in
  1579. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  1580. #{item}
  1581. </foreach>
  1582. </if>
  1583. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  1584. AND su.id in
  1585. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  1586. #{item}
  1587. </foreach>
  1588. </if>
  1589. <if test="vo.houseId != null and vo.houseId != ''">
  1590. and sd.id like concat('%',#{vo.houseId},'%')
  1591. </if>
  1592. <if test="vo.name != null and vo.name != ''">
  1593. and su.name =#{vo.name}
  1594. </if>
  1595. <if test="vo.userCode != null and vo.userCode != ''">
  1596. and su.id =#{vo.userCode}
  1597. </if>
  1598. <if test="vo.phoneNumber != null and vo.phoneNumber != ''">
  1599. and su.mobile =#{vo.phoneNumber}
  1600. </if>
  1601. <if test="vo.leaderId != null and vo.leaderId != ''">
  1602. and su.leader_id =#{vo.leaderId}
  1603. </if>
  1604. <if test="vo.leaderName != null and vo.leaderName != ''">
  1605. and su.leader_name =#{vo.leaderName}
  1606. </if>
  1607. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  1608. AND sd.id in
  1609. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  1610. #{item}
  1611. </foreach>
  1612. </if>
  1613. </where>
  1614. </select>
  1615. <select id="findUserListByParam" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1616. SELECT
  1617. su.name as "name",
  1618. su.id as "userId",
  1619. su.status as status
  1620. FROM
  1621. sys_user su
  1622. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1623. LEFT JOIN ins_upload_files inf on su.head_sculpture =inf.id
  1624. LEFT JOIN sys_user_role sur ON sur.user_id = su.id
  1625. <where>
  1626. <if test="vo.ids != null and vo.ids.size()>0 ">
  1627. AND su.id IN
  1628. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  1629. #{item}
  1630. </foreach>
  1631. </if>
  1632. <if test="vo.name != null and vo.name != ''">
  1633. and su.name =#{vo.name}
  1634. </if>
  1635. <if test="vo.userCode != null and vo.userCode != ''">
  1636. and su.id =#{vo.userCode}
  1637. </if>
  1638. <if test="vo.phoneNumber != null and vo.phoneNumber != ''">
  1639. and su.mobile =#{vo.phoneNumber}
  1640. </if>
  1641. </where>
  1642. </select>
  1643. <select id="getAllAgent" resultType="com.ydtech.modules.admin.model.SysUser">
  1644. SELECT
  1645. su.id as "id",
  1646. eur.referrer_id as "parentId",
  1647. su.name as "name"
  1648. FROM
  1649. sys_user su
  1650. LEFT JOIN sys_user_info info ON info.id = su.id
  1651. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1652. LEFT JOIN sys_dept psd ON psd.id = sd.parent_id
  1653. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1654. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  1655. left join esm_user_referrer eur on eur.id =su.id
  1656. WHERE
  1657. (t3.role_id = 20 or t3.role_id = 21)
  1658. and sd.management_source = 2
  1659. AND sd.del_flag = '0'
  1660. AND su.STATUS = 1
  1661. <if test="ids !=null and ids !='' and ids .size()>0">
  1662. AND
  1663. su.id IN
  1664. <foreach collection="ids" item="item" open="(" separator="," close=")">
  1665. #{item}
  1666. </foreach>
  1667. </if>
  1668. <choose>
  1669. <when test="pid !=null and pid !=''">
  1670. and eur.id != eur.referrer_id
  1671. and eur.referrer_id =#{pid}
  1672. </when>
  1673. <when test='pid == null'>
  1674. and eur.id =eur.referrer_id
  1675. and (eur.level = '1' or eur.level ='0')
  1676. </when>
  1677. </choose>
  1678. </select>
  1679. <select id="selectForAgentsAndChannelsPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  1680. SELECT
  1681. su.id as userId,
  1682. su.name,
  1683. info.sex,
  1684. su.mobile,
  1685. su.status,
  1686. su.leader_id,
  1687. su.leader_name,
  1688. sd.id as deptId,
  1689. sd.name as deptName,
  1690. t4.id as roleId,
  1691. t4.name as roleName,
  1692. sd.management_source,
  1693. psd.id as pDeptId,
  1694. psd.name as pDeptName,
  1695. su.create_time as submitTime,
  1696. IF(su.leader_id = #{sysUserVO.leaderId},TRUE,FALSE) AS selectedNot,
  1697. (select approve_by from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveBy,
  1698. (select approve_time from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as
  1699. approveTime
  1700. FROM
  1701. sys_user su
  1702. LEFT JOIN sys_user_info info ON info.id = su.id
  1703. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1704. left join sys_dept psd on psd.id = sd.parent_id
  1705. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1706. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  1707. AND sd.del_flag = '0'
  1708. WHERE
  1709. 1=1
  1710. <if test='sysUserVO !=null '>
  1711. <if test='sysUserVO.leaderId !=null and sysUserVO.leaderId!="" '>
  1712. and su.leader_id = #{sysUserVO.leaderId}
  1713. </if>
  1714. <if test='sysUserVO.status !=null and sysUserVO.status!="" '>
  1715. and su.status = #{sysUserVO.status}
  1716. </if>
  1717. <if test='sysUserVO.name !=null and sysUserVO.name!="" '>
  1718. and su.name like concat('%',#{sysUserVO.name},'%')
  1719. </if>
  1720. <if test='sysUserVO.userId !=null and sysUserVO.userId!="" '>
  1721. and su.id = #{sysUserVO.userId}
  1722. </if>
  1723. <if test='sysUserVO.mobile !=null and sysUserVO.mobile!="" '>
  1724. and su.mobile = #{sysUserVO.mobile}
  1725. </if>
  1726. <if test='sysUserVO.deptId !=null and sysUserVO.deptId!="" '>
  1727. and su.dept_id like concat('%',#{sysUserVO.deptId},'%')
  1728. </if>
  1729. <if test='sysUserVO.leaderName !=null and sysUserVO.leaderName!="" '>
  1730. and su.leader_name like concat('%',#{sysUserVO.leaderName},'%')
  1731. </if>
  1732. <if test='sysUserVO.roleId !=null and sysUserVO.roleId!="" '>
  1733. and t3.role_id in (${sysUserVO.roleId})
  1734. </if>
  1735. <if test="sysUserVO.agentFlag !=null and sysUserVO.agentFlag != 0 ">
  1736. and sd.management_source = #{sysUserVO.agentFlag}
  1737. </if>
  1738. <if test="sysUserVO.agentFlag != null and sysUserVO.agentFlag == 0">
  1739. and sd.management_source is null
  1740. </if>
  1741. <if test="sysUserVO.notSelected != null and sysUserVO.notSelected == 0">
  1742. AND (su.leader_id IS NULL OR su.leader_id = '')
  1743. </if>
  1744. </if>
  1745. ORDER BY selectedNot DESC
  1746. </select>
  1747. <select id="selectHxUserList" resultType="java.util.Map">
  1748. SELECT * FROM
  1749. (
  1750. SELECT
  1751. t1.id AS id,
  1752. t1.name AS name,
  1753. t1.mobile AS mobile,
  1754. (
  1755. SELECT
  1756. COUNT(1)
  1757. FROM
  1758. sys_user su
  1759. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1760. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1761. AND sd.del_flag = '0'
  1762. WHERE 1 = 1
  1763. <if test='sysUserDto.roleId !=null and sysUserDto.roleId!="" '>and t3.role_id in (${sysUserDto.roleId})
  1764. and sd.management_source = #{sysUserDto.agentFlag}
  1765. </if>
  1766. <if test="
  1767. sysUserDto.agentFlag !=null and sysUserDto.agentFlag != 0 "></if>
  1768. <if test="sysUserDto.agentFlag != null and sysUserDto.agentFlag == 0">
  1769. and sd.management_source is null
  1770. </if>
  1771. AND su.leader_id = t1.id
  1772. ) totalNum
  1773. FROM
  1774. sys_user t1
  1775. WHERE
  1776. t1.`status` = 1 AND t1.id NOT LIKE '%M%'
  1777. ) AS t order by t.totalNum desc
  1778. </select>
  1779. <update id="cancelManagementPersonnel">
  1780. UPDATE sys_user SET leader_id = NULL , leader_name = NULL WHERE id in
  1781. <foreach item="item" collection="managementDto.userIds" open="(" separator="," close=")">
  1782. #{item}
  1783. </foreach>
  1784. </update>
  1785. <update id="updateManagementPersonnel">
  1786. UPDATE sys_user SET leader_id = #{managementDto.leaderId} , leader_name = #{managementDto.leaderName} WHERE id
  1787. in
  1788. <foreach item="item" collection="managementDto.userIds" open="(" separator="," close=")">
  1789. #{item}
  1790. </foreach>
  1791. </update>
  1792. <select id="findDxUserList" resultType="com.ydtech.modules.admin.model.SysUser">
  1793. SELECT t1.id AS id,
  1794. t1.NAME AS NAME
  1795. FROM sys_user t1
  1796. WHERE t1.`status` = 1
  1797. AND t1.id NOT LIKE '%M%'
  1798. UNION
  1799. SELECT t1.id AS id,
  1800. t1.NAME AS NAME
  1801. FROM sys_user t1
  1802. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  1803. WHERE t1.`status` = 1
  1804. AND t1.id LIKE '%M%'
  1805. AND t2.management_source = 3
  1806. </select>
  1807. <select id="findQXDLUserListNew" resultType="com.ydtech.modules.admin.model.SysUser">
  1808. SELECT
  1809. su.id as "id",
  1810. su.leader_id as "leaderId",
  1811. su.leader_name as "leaderName",
  1812. su.name as "name",
  1813. sd.management_source as "managementSource"
  1814. FROM
  1815. sys_user su
  1816. LEFT JOIN sys_user_info info ON info.id = su.id
  1817. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1818. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1819. WHERE
  1820. (t3.role_id = 20 or t3.role_id = 21)
  1821. and sd.management_source = 2
  1822. AND sd.del_flag = '0'
  1823. AND su.STATUS = 1
  1824. <if test="vo.deptId !=null and vo.deptId!=''">
  1825. and su.dept_id like concat('%',#{vo.deptId},'%')
  1826. </if>
  1827. <if test="vo.userId !=null and vo.userId!='' ">
  1828. and su.id =#{vo.userId}
  1829. </if>
  1830. <if test="vo.leaderId !=null and vo.leaderId!='' ">
  1831. and su.leader_id =#{vo.leaderId}
  1832. </if>
  1833. <if test="vo.userName !=null and vo.userName!='' ">
  1834. and su.name =#{vo.userName}
  1835. </if>
  1836. </select>
  1837. <select id="getChanelList" resultType="com.ydtech.modules.admin.model.SysUser">
  1838. SELECT
  1839. su.id as "id",
  1840. su.leader_id as "leaderId",
  1841. su.leader_name as "leaderName",
  1842. su.name as "name",
  1843. sd.management_source as "managementSource"
  1844. FROM
  1845. sys_user su
  1846. LEFT JOIN sys_user_info info ON info.id = su.id
  1847. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1848. WHERE
  1849. sd.management_source = 1
  1850. AND sd.del_flag = '0'
  1851. AND su.STATUS = 1
  1852. <if test="vo.deptId !=null and vo.deptId!=''">
  1853. and su.dept_id like concat('%',#{vo.deptId},'%')
  1854. </if>
  1855. <if test="vo.userId !=null and vo.userId!='' ">
  1856. and su.id =#{vo.userId}
  1857. </if>
  1858. <if test="vo.leaderId !=null and vo.leaderId!='' ">
  1859. and su.leader_id =#{vo.leaderId}
  1860. </if>
  1861. <if test="vo.userName !=null and vo.userName!='' ">
  1862. and su.name =#{vo.userName}
  1863. </if>
  1864. </select>
  1865. <select id="selectByParams" resultType="com.ydtech.modules.admin.model.SysUser">
  1866. SELECT
  1867. su.*,
  1868. sd.*
  1869. FROM
  1870. sys_user su
  1871. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1872. WHERE
  1873. su.leader_id IS NOT NULL
  1874. AND su.id NOT LIKE '%M%'
  1875. AND su.STATUS = '1'
  1876. <if test = "leaderId !=null and leaderId !=''" >
  1877. AND su.leader_id = #{leaderId}
  1878. </if>
  1879. AND EXISTS (
  1880. SELECT
  1881. 1
  1882. FROM
  1883. sys_user su1
  1884. LEFT JOIN sys_user su2 ON su2.leader_id = su1.id
  1885. LEFT JOIN sys_user su3 ON su3.leader_id = su2.id
  1886. WHERE
  1887. su1.id = su.id
  1888. AND (
  1889. SELECT
  1890. count( 0 )
  1891. FROM
  1892. (
  1893. SELECT
  1894. sd1.management_source
  1895. FROM
  1896. sys_user su4
  1897. LEFT JOIN sys_dept sd1 ON sd1.id = su4.dept_id
  1898. WHERE
  1899. su4.id IN ( su1.id, su2.id, su3.id )
  1900. <if test="managementSource !=null and managementSource !=''">
  1901. and sd1.management_source=#{managementSource}
  1902. </if>
  1903. ) AS subquery
  1904. ORDER BY 1
  1905. ) > 0 )
  1906. </select>
  1907. <select id="selectByParamsTreeUser" resultType="com.ydtech.modules.admin.model.SysUser">
  1908. select * from sys_user su
  1909. left join sys_dept sd on sd.id =su.dept_id
  1910. <where>
  1911. su.leader_id is not null
  1912. AND su.id not LIKE '%M%'
  1913. AND su.status ='1'
  1914. <if test="leaderId !=null and leaderId !=''">
  1915. and su.leader_id =#{leaderId}
  1916. </if>
  1917. </where>
  1918. </select>
  1919. <select id="getGroupByUserId" resultType="java.lang.String">
  1920. select id
  1921. from sys_user
  1922. where (manager_id = #{userId} or id = #{userId})
  1923. </select>
  1924. <select id="getLeadListDeptId" resultType="com.ydtech.modules.admin.model.SysUser">
  1925. SELECT t1.id AS id,
  1926. t1.NAME AS NAME
  1927. FROM sys_user t1
  1928. WHERE t1.`status` = 1
  1929. AND t1.id NOT LIKE '%M%'
  1930. </select>
  1931. <select id="selectByLeadId" resultType="com.ydtech.modules.admin.model.SysUser">
  1932. select *
  1933. from sys_user su
  1934. where su.status = 1
  1935. and su.id NOT LIKE '%M%'
  1936. and su.leader_id = #{userId}
  1937. </select>
  1938. <select id="querySourceId" resultType="com.ydtech.modules.admin.model.SysUser">
  1939. select *
  1940. from sys_user su
  1941. left join sys_dept sd on su.dept_id = sd.id
  1942. where su.status != 0 and sd.management_source in (1,2)
  1943. and su.leader_id = #{id}
  1944. </select>
  1945. <select id="queryByUserId" resultType="com.ydtech.modules.admin.model.vo.AppUserInfoVo">
  1946. select su.id as userId,
  1947. su.name as userName,
  1948. su.mobile as mobile,
  1949. su.position_name as positionName,
  1950. sd.name as deptName,
  1951. sui.sex as sex,
  1952. sui.we_chat as weChat,
  1953. DATE_FORMAT(sui.entry_time, '%Y-%m-%d') as entryTime
  1954. from sys_user su
  1955. left join sys_dept sd on su.dept_id = sd.id
  1956. left join sys_user_info sui on su.id = sui.id
  1957. where su.id = #{userId}
  1958. </select>
  1959. <select id="getByRoleIdAndDeptId" resultType="com.ydtech.modules.admin.model.SysUser">
  1960. select *
  1961. from sys_user su
  1962. left join sys_user_role sur on su.id = sur.user_id
  1963. where sur.role_id = #{roleId}
  1964. and su.dept_id = #{deptId}
  1965. limit 1
  1966. </select>
  1967. <select id="selectLeaderBylanderInfo" resultType="com.ydtech.modules.admin.model.SysUser">
  1968. SELECT *
  1969. FROM sys_user AS su
  1970. LEFT JOIN sys_dept sd ON su.id = sd.id
  1971. <where>
  1972. <if test="deptId != null and deptId != ''">
  1973. AND su.dept_id = #{deptId}
  1974. </if>
  1975. <if test="leaderId != null and leaderId != ''">
  1976. AND su.leader_id = #{leaderId}
  1977. </if>
  1978. <if test="userId != null and userId != ''">
  1979. AND su.id = #{userId}
  1980. </if>
  1981. AND sd.management_source IS NULL
  1982. AND su.id NOT LIKE '%M%'
  1983. </where>
  1984. </select>
  1985. <select id="findDxZyUserList" resultType="com.ydtech.modules.admin.model.SysUser">
  1986. SELECT t1.id AS id,
  1987. t1.NAME AS NAME
  1988. FROM sys_user t1
  1989. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  1990. WHERE t1.`status` = 1
  1991. AND t1.id LIKE '%M%'
  1992. AND t2.management_source = 3
  1993. </select>
  1994. <select id="selectByUserId" resultType="com.ydtech.modules.admin.model.SysUser">
  1995. SELECT su.*,sd.name as dept_name
  1996. from sys_user su left join sys_dept sd on su.dept_id = sd.id
  1997. where 1 = 1
  1998. <foreach collection="ids" item="item" open="and" separator="or">
  1999. su.id = #{item}
  2000. </foreach>
  2001. </select>
  2002. <select id="findAllUsers" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  2003. SELECT
  2004. t1.id AS userId,
  2005. t1.NAME AS NAME,
  2006. t1.mobile AS mobile,
  2007. t1.`status` AS `status`,
  2008. t2.id AS deptId,
  2009. t2.`name` AS deptName,
  2010. sd2.id AS pDeptId,
  2011. sd2.`name` AS pDeptName
  2012. FROM
  2013. sys_user t1
  2014. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  2015. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  2016. WHERE
  2017. t1.`status` = 1
  2018. <if test='user !=null '>
  2019. <if test='user.name !=null and user.name!="" '>
  2020. and t1.name like CONCAT('%', #{user.name}, '%')
  2021. </if>
  2022. <if test='user.userId !=null and user.userId!="" '>
  2023. and t1.id = #{user.userId}
  2024. </if>
  2025. <if test='user.mobile !=null and user.mobile!="" '>
  2026. and t1.mobile = #{user.mobile}
  2027. </if>
  2028. <if test='user.deptId !=null and user.deptId!="" '>
  2029. and t2.id like CONCAT('', #{user.deptId}, '%')
  2030. </if>
  2031. </if>
  2032. </select>
  2033. </mapper>