SysUserMapper.xml 87 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255
  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 AND su.type != 4
  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.new_app,
  848. su.status,
  849. su.identity,
  850. sd.id as deptId,
  851. sd.name as deptName,
  852. t4.id as roleId,
  853. t4.name as roleName,
  854. sd.management_source as managementSource,
  855. psd.id as pDeptId,
  856. psd.name as pDeptName,
  857. "" as noType,
  858. psd.name as fiveDeptName,
  859. ppsd.name as fourDeptName,
  860. pppsd.name as threeDeptName,
  861. ppppsd.name as twoDeptName,
  862. case when IFNULL(su.openid,'')='' then '否' else '是' end as weChatAuthenticationFlag,
  863. case when IFNULL(su.alipay,'')='' then '否' else '是' end as alipayCertificationFlag,
  864. (select case when count(0) >0 then '是' else '否' end from sys_user_bank_card bc where bc.user_id =su.id and
  865. bc.audit_status =1 ) AS bindBankNumberFlag
  866. FROM
  867. sys_user su
  868. LEFT JOIN sys_user_info info ON info.id = su.id
  869. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  870. LEFT JOIN sys_dept psd on psd.id = sd.parent_id
  871. LEFT JOIN sys_dept ppsd on ppsd.id = psd.parent_id
  872. LEFT JOIN sys_dept pppsd on pppsd.id = ppsd.parent_id
  873. LEFT JOIN sys_dept ppppsd on ppppsd.id = pppsd.parent_id
  874. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  875. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  876. AND sd.del_flag = '0'
  877. WHERE
  878. (su.status != 0 and su.status != 9) AND su.id LIKE '%M%' and su.id!='admin'
  879. <if test='user !=null '>
  880. <if test='user.name !=null and user.name!="" '>
  881. and su.name like concat('%', #{user.name}, '%')
  882. </if>
  883. <if test='user.userId !=null and user.userId!="" '>
  884. and su.id like concat('%', #{user.userId}, '%')
  885. </if>
  886. <if test='user.mobile !=null and user.mobile!="" '>
  887. and su.mobile like concat('%', #{user.mobile}, '%')
  888. </if>
  889. <if test='user.identity !=null and user.identity!="" '>
  890. and su.identity like concat('%', #{user.identity}, '%')
  891. </if>
  892. </if>
  893. </select>
  894. <select id="getCustomerUsers" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  895. SELECT
  896. t1.id AS userId,
  897. t1.NAME AS NAME,
  898. t1.mobile AS mobile,
  899. t1.`status` AS `status`,
  900. t2.id AS deptId,
  901. t2.`name` AS deptName,
  902. sd2.id AS pDeptId,
  903. sd2.`name` AS pDeptName
  904. FROM
  905. sys_user t1
  906. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  907. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  908. WHERE
  909. t1.`status` = 1
  910. AND t1.id NOT LIKE '%M%'
  911. <if test='user !=null '>
  912. <if test='user.name !=null and user.name!="" '>
  913. and t1.name = #{user.name}
  914. </if>
  915. <if test='user.userId !=null and user.userId!="" '>
  916. and t1.id = #{user.userId}
  917. </if>
  918. <if test='user.mobile !=null and user.mobile!="" '>
  919. and t1.mobile = #{user.mobile}
  920. </if>
  921. <if test='user.identity !=null and user.identity!="" '>
  922. and t1.identity = #{user.identity}
  923. </if>
  924. </if>
  925. </select>
  926. <select id="getDeptIdsByRoleIdsAndUserIds" resultType="String">
  927. SELECT
  928. t2.id
  929. FROM
  930. sys_user t1
  931. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  932. LEFT JOIN sys_user_role sur ON sur.user_id = t1.id
  933. WHERE
  934. t1.`status` = 1
  935. <if test="userIds != null and userIds.size>0">
  936. AND
  937. t1.id IN
  938. <foreach collection="userIds" item="item" open="(" separator="," close=")">
  939. #{item}
  940. </foreach>
  941. </if>
  942. <if test="roleIds != null and roleIds.size>0">
  943. AND
  944. sur.role_id IN
  945. <foreach collection="roleIds" item="item" open="(" separator="," close=")">
  946. #{item}
  947. </foreach>
  948. </if>
  949. GROUP BY t2.id
  950. </select>
  951. <select id="findUserListByPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  952. SELECT
  953. t1.id AS userId,
  954. t1.NAME AS NAME,
  955. t1.mobile AS mobile,
  956. t1.`status` AS `status`,
  957. t2.id AS deptId,
  958. t2.`name` AS deptName,
  959. sd2.id AS pDeptId,
  960. sd2.`name` AS pDeptName,
  961. CASE
  962. WHEN ( SELECT count( 0 ) FROM sys_user_link_pl_agreement link WHERE link.user_id = t1.id) > 0 THEN
  963. true ELSE false
  964. END AS flag
  965. FROM
  966. sys_user t1
  967. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  968. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  969. WHERE
  970. t1.`status` = 1
  971. AND t1.id NOT LIKE '%M%'
  972. <if test='user !=null '>
  973. <if test='user.name !=null and user.name!="" '>
  974. and t1.name like CONCAT('%', #{user.name}, '%')
  975. </if>
  976. <if test='user.userId !=null and user.userId!="" '>
  977. and t1.id = #{user.userId}
  978. </if>
  979. <if test='user.mobile !=null and user.mobile!="" '>
  980. and t1.mobile = #{user.mobile}
  981. </if>
  982. <if test='user.deptId !=null and user.deptId!="" '>
  983. and t2.id like CONCAT('', #{user.deptId}, '%')
  984. </if>
  985. </if>
  986. order by flag desc
  987. </select>
  988. <select id="getDeptIdsByUserIds" resultType="String">
  989. SELECT t2.id
  990. FROM sys_user t1
  991. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  992. WHERE t1.`status` = 1
  993. AND EXISTS (SELECT *
  994. FROM (SELECT t1.id
  995. FROM sys_user t1
  996. LEFT JOIN sys_user_role sur ON sur.user_id = t1.id
  997. WHERE t1.`status` = 1
  998. AND t1.leader_id = #{userId}
  999. AND EXISTS (SELECT *
  1000. FROM (SELECT 1 AS id
  1001. UNION ALL
  1002. SELECT 15
  1003. UNION ALL
  1004. SELECT 16
  1005. UNION ALL
  1006. SELECT 17
  1007. UNION ALL
  1008. SELECT 18
  1009. UNION ALL
  1010. SELECT 21) roleAll
  1011. WHERE roleAll.id = sur.role_id)) users
  1012. WHERE users.id = t1.id)
  1013. GROUP BY t2.id
  1014. </select>
  1015. <select id="findUserListByAreaPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  1016. SELECT
  1017. t1.id AS userId,
  1018. t1.NAME AS NAME,
  1019. t1.mobile AS mobile,
  1020. t1.`status` AS `status`,
  1021. t2.id AS deptId,
  1022. t2.`name` AS deptName,
  1023. sd2.id AS pDeptId,
  1024. sd2.`name` AS pDeptName,
  1025. CASE
  1026. WHEN ( SELECT count( 0 ) FROM sys_user_link_area link WHERE link.user_id = t1.id) > 0 THEN
  1027. true ELSE false
  1028. END AS flag
  1029. FROM
  1030. sys_user t1
  1031. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  1032. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  1033. WHERE
  1034. t1.`status` = 1
  1035. AND t1.id NOT LIKE '%M%'
  1036. <if test='user !=null '>
  1037. <if test='user.name !=null and user.name!="" '>
  1038. and t1.name like CONCAT('%', #{user.name}, '%')
  1039. </if>
  1040. <if test='user.userId !=null and user.userId!="" '>
  1041. and t1.id = #{user.userId}
  1042. </if>
  1043. <if test='user.mobile !=null and user.mobile!="" '>
  1044. and t1.mobile = #{user.mobile}
  1045. </if>
  1046. <if test='user.deptId !=null and user.deptId!="" '>
  1047. and t2.id like CONCAT('', #{user.deptId}, '%')
  1048. </if>
  1049. </if>
  1050. order by flag desc
  1051. </select>
  1052. <select id="getAgentUserIdsByAreaIds" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  1053. SELECT su.id AS userId,
  1054. su.dept_id AS deptId
  1055. FROM sys_user su
  1056. LEFT JOIN sys_user_info info ON info.id = su.id
  1057. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1058. LEFT JOIN sys_dept psd ON psd.id = sd.parent_id
  1059. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1060. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  1061. AND sd.del_flag = '0'
  1062. AND su.STATUS = 1
  1063. WHERE t3.role_id = 20
  1064. AND sd.management_source = 2
  1065. </select>
  1066. <select id="getCountByDeptAndRoleId" resultType="Integer">
  1067. SELECT count(0)
  1068. FROM sys_user su
  1069. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1070. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  1071. WHERE su.dept_id = #{user.deptId}
  1072. AND t4.id = #{user.roleId}
  1073. </select>
  1074. <select id="findTDZUserIdByDeptId" resultType="String">
  1075. SELECT su.id
  1076. FROM sys_user su
  1077. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1078. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  1079. WHERE su.dept_id = #{deptId}
  1080. AND t4.id = 21
  1081. </select>
  1082. <select id="findSumCountAndAvgAge" resultType="java.util.HashMap">
  1083. SELECT count(su.id) AS sumCount,
  1084. FLOOR(
  1085. avg(
  1086. TIMESTAMPDIFF(
  1087. YEAR, STR_TO_DATE(SUBSTRING(su.identity, 7, 8), '%Y%m%d'),
  1088. CURDATE()))) AS avgAge
  1089. FROM sys_user su
  1090. WHERE su.dept_id LIKE CONCAT(#{deptId}, '%')
  1091. AND su.identity IS NOT NULL
  1092. </select>
  1093. <select id="findEducationSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1094. SELECT uinfo.education AS NAME,
  1095. count(uinfo.education) AS count
  1096. FROM
  1097. sys_user su
  1098. LEFT JOIN sys_user_info uinfo
  1099. ON su.id = uinfo.id
  1100. WHERE
  1101. su.dept_id LIKE CONCAT( #{deptId}
  1102. , '%' )
  1103. AND uinfo.education IS NOT NULL
  1104. GROUP BY
  1105. uinfo.education
  1106. </select>
  1107. <select id="findQXTDSumCountAndAvgAge" resultType="java.util.HashMap">
  1108. SELECT count(su.id) AS sumCount,
  1109. FLOOR(
  1110. avg(
  1111. TIMESTAMPDIFF(
  1112. YEAR, STR_TO_DATE(SUBSTRING(su.identity, 7, 8), '%Y%m%d'),
  1113. CURDATE()))) AS avgAge
  1114. FROM sys_user su
  1115. LEFT JOIN sys_user_role ro ON su.id = ro.user_id
  1116. WHERE su.dept_id LIKE CONCAT(#{deptId}, '%')
  1117. AND ro.role_id = 21
  1118. </select>
  1119. <select id="findQXDLSumCountAndAvgAge" resultType="java.util.HashMap">
  1120. SELECT count(su.id) AS sumCount,
  1121. FLOOR(
  1122. avg(
  1123. TIMESTAMPDIFF(
  1124. YEAR, STR_TO_DATE(SUBSTRING(su.identity, 7, 8), '%Y%m%d'),
  1125. CURDATE()))) AS avgAge
  1126. FROM sys_user su
  1127. LEFT JOIN sys_dept dept ON su.dept_id = dept.id
  1128. WHERE su.dept_id LIKE CONCAT(#{deptId}, '%')
  1129. AND dept.management_source = #{type}
  1130. </select>
  1131. <select id="findQXTDAreaSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1132. SELECT sa.area_cname AS NAME,
  1133. count(0) AS count
  1134. FROM
  1135. sys_user su
  1136. LEFT JOIN sys_user_role ro
  1137. ON su.id = ro.user_id
  1138. LEFT JOIN sys_area sa ON sa.area_code = SUBSTRING ( LPAD( su.id, 8, 0 ), 3, 8 )
  1139. WHERE
  1140. su.dept_id LIKE CONCAT( #{deptId}
  1141. , '%' )
  1142. AND ro.role_id=21
  1143. AND sa.area_cname IS NOT NULL
  1144. GROUP BY
  1145. sa.area_cname
  1146. </select>
  1147. <select id="findQXDLAreaSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1148. SELECT sa.area_cname AS NAME,
  1149. count(0) AS count
  1150. FROM
  1151. sys_user su
  1152. LEFT JOIN sys_dept sd
  1153. ON su.dept_id = sd.id
  1154. LEFT JOIN sys_area sa ON sa.area_code = SUBSTRING ( LPAD( su.id, 8, 0 ), 3, 8 )
  1155. WHERE
  1156. sd.management_source = 2
  1157. AND sd.del_flag = '0'
  1158. AND su.STATUS = 1
  1159. AND sa.area_cname IS NOT NULL
  1160. GROUP BY
  1161. sa.area_cname
  1162. </select>
  1163. <select id="findQXTDSexSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1164. SELECT CASE
  1165. WHEN
  1166. uinfo.sex = 'M' THEN
  1167. '男'
  1168. WHEN uinfo.sex = 'F' THEN
  1169. '女'
  1170. ELSE ''
  1171. END AS NAME,
  1172. count(0) AS count
  1173. FROM
  1174. sys_user su
  1175. LEFT JOIN sys_user_info uinfo
  1176. ON su.id = uinfo.id
  1177. LEFT JOIN sys_user_role ro ON su.id = ro.user_id
  1178. WHERE
  1179. su.dept_id LIKE CONCAT(#{deptId}
  1180. , '%' )
  1181. AND ro.role_id = 21
  1182. AND uinfo.sex IS NOT NULL
  1183. GROUP BY
  1184. uinfo.sex
  1185. </select>
  1186. <select id="findQXDLSexSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1187. SELECT CASE
  1188. WHEN
  1189. uinfo.sex = 'M' THEN
  1190. '男'
  1191. WHEN uinfo.sex = 'F' THEN
  1192. '女'
  1193. ELSE ''
  1194. END AS NAME,
  1195. count(0) AS count
  1196. FROM
  1197. sys_user su
  1198. LEFT JOIN sys_user_info uinfo
  1199. ON uinfo.id = su.id
  1200. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1201. WHERE
  1202. sd.management_source = 2
  1203. AND sd.del_flag = '0'
  1204. AND su.STATUS = 1
  1205. AND uinfo.sex IS NOT NULL
  1206. GROUP BY
  1207. uinfo.sex
  1208. </select>
  1209. <select id="findQXTDWhSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1210. SELECT su.leader_name as name,
  1211. count(0) AS count
  1212. FROM
  1213. sys_user su
  1214. LEFT JOIN sys_user_role ro
  1215. ON su.id = ro.user_id
  1216. WHERE
  1217. su.dept_id LIKE CONCAT(#{deptId}
  1218. , '%' )
  1219. AND ro.role_id = 21
  1220. AND su.leader_name IS NOT NULL
  1221. GROUP BY
  1222. su.leader_name
  1223. </select>
  1224. <select id="findQXDLWhSumCount" resultType="com.ydtech.modules.admin.model.dto.ReportDto">
  1225. SELECT su.leader_name as name,
  1226. count(0) AS count
  1227. FROM
  1228. sys_user su
  1229. LEFT JOIN sys_dept sd
  1230. ON su.dept_id = sd.id
  1231. WHERE
  1232. sd.management_source = 2
  1233. AND sd.del_flag = '0'
  1234. AND su.STATUS = 1
  1235. AND su.leader_name IS NOT NULL
  1236. GROUP BY
  1237. su.leader_name
  1238. </select>
  1239. <select id="queryQXQDReportData"
  1240. resultType="com.ydtech.modules.admin.model.report.user.QianLineQDPersonnelReportDto">
  1241. SELECT su.name as userName,
  1242. su.leader_name as leadName,
  1243. "渠道" as typeName,
  1244. "" as qdType
  1245. FROM sys_user su
  1246. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1247. WHERE sd.management_source = 1
  1248. AND sd.del_flag = '0'
  1249. AND su.STATUS = 1
  1250. and su.leader_name is not null
  1251. </select>
  1252. <select id="findQXDLUserList" resultType="com.ydtech.modules.admin.model.SysUser">
  1253. SELECT su.id as id,
  1254. su.name as name
  1255. FROM sys_user su
  1256. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1257. WHERE sd.management_source = 2
  1258. AND sd.del_flag = '0'
  1259. AND su.STATUS = 1
  1260. AND su.leader_name IS NOT NULL
  1261. GROUP BY su.leader_name
  1262. </select>
  1263. <select id="findHxUserList" resultType="com.ydtech.modules.admin.model.SysUser">
  1264. SELECT t1.id AS id,
  1265. t1.NAME AS NAME,
  1266. t1.mobile AS mobile,
  1267. t1.`status` AS `status`,
  1268. t2.id AS deptId,
  1269. t2.`name` AS deptName,
  1270. sd2.id AS pDeptId,
  1271. sd2.`name` AS pDeptName
  1272. FROM sys_user t1
  1273. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  1274. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  1275. WHERE t1.`status` = 1
  1276. AND t1.id NOT LIKE '%M%'
  1277. </select>
  1278. <select id="findHxUserListNew" resultType="com.ydtech.modules.admin.model.SysUser">
  1279. SELECT t1.id AS id,
  1280. t1.NAME AS NAME,
  1281. t1.mobile AS mobile,
  1282. t1.`status` AS `status`,
  1283. t2.id AS deptId,
  1284. t2.id AS parentId,
  1285. t2.`name` AS deptName,
  1286. sd2.id AS pDeptId,
  1287. sd2.`name` AS pDeptName
  1288. FROM sys_user t1
  1289. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  1290. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  1291. WHERE t1.`status` = 1
  1292. AND t1.id NOT LIKE '%M%'
  1293. </select>
  1294. <select id="queryHXReportDataNew" resultType="java.util.HashMap">
  1295. SELECT
  1296. IFNULL(sum(info.salary),0) as "salary",
  1297. IFNULL(sum(case when info.sex ='M' THEN 1 ELSE 0 END ),0) as "manSex",
  1298. IFNULL(sum(case when info.sex ='F' THEN 1 ELSE 0 END),0) as "femaleSex",
  1299. IFNULL(sum(case when info.sex ='M' THEN 1 ELSE 0 END ) / (sum(case when info.sex ='M' THEN 1 ELSE 0 END ) +
  1300. sum(case when info.sex ='F' THEN 1 ELSE 0 END)),0) as "manProportion",
  1301. IFNULL(sum(case when info.sex ='F' THEN 1 ELSE 0 END) / (sum(case when info.sex ='M' THEN 1 ELSE 0 END ) +
  1302. sum(case when info.sex ='F' THEN 1 ELSE 0 END)),0) as "femaleProportion",
  1303. IFNULL(sum(case when info.is_speciality ='1' THEN 1 ELSE 0 END),0) as "computerSpecialityPersion",
  1304. IFNULL(sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END),0) as "otherSpecialityPersion",
  1305. IFNULL(sum(case when info.is_speciality ='1' THEN 1 ELSE 0 END) / (sum(case when info.is_speciality ='1' THEN 1
  1306. ELSE 0 END) + sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END)),0) as "computerSpecialityProportion",
  1307. IFNULL(sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END) / (sum(case when info.is_speciality ='1' THEN 1
  1308. ELSE 0 END) + sum(case when info.is_speciality ='0' THEN 1 ELSE 0 END)),0) as "otherSpecialityProportion",
  1309. IFNULL(sum(case when su.status ='1' THEN 1 Else 0 END),0) as "onJobUser",
  1310. IFNULL(sum(case when su.status ='0' THEN 1 Else 0 END),0) as "departUser",
  1311. IFNULL(sum(case when su.status ='6' THEN 1 Else 0 END),0) as "pendingApproval",
  1312. IFNULL(sum(case when su.status ='7' THEN 1 Else 0 END),0) as "reviewRejected",
  1313. IFNULL(sum(case when su.status ='2' THEN 1 Else 0 END),0) as "companyReview",
  1314. IFNULL(sum(case when su.status ='3' THEN 1 Else 0 END),0) as "entryReview",
  1315. IFNULL(sum(case when su.status ='4' THEN 1 Else 0 END),0) as "leavingCompanyReview",
  1316. IFNULL(sum(case when su.status ='5' THEN 1 Else 0 END),0) as "departureReviewRejected",
  1317. IFNULL(sum(case when su.status ='1' THEN 1 Else 0 END),0) / count(su.id) as "onJobUserProportion",
  1318. IFNULL(sum(case when su.status ='0' THEN 1 Else 0 END),0) / count(su.id) as "departUserProportion",
  1319. IFNULL(sum(case when su.status ='6' THEN 1 Else 0 END),0) / count(su.id) as "pendingApprovalProportion",
  1320. IFNULL(sum(case when su.status ='7' THEN 1 Else 0 END),0) / count(su.id) as "reviewRejectedProportion",
  1321. IFNULL(sum(case when su.status ='2' THEN 1 Else 0 END),0) / count(su.id) as "companyReviewProportion",
  1322. IFNULL(sum(case when su.status ='3' THEN 1 Else 0 END),0) / count(su.id) as "entryReviewProportion",
  1323. IFNULL(sum(case when su.status ='4' THEN 1 Else 0 END),0) / count(su.id) as "leavingCompanyReviewProportion",
  1324. IFNULL(sum(case when su.status ='5' THEN 1 Else 0 END),0) / count(su.id) as "departureReviewRejectedProportion"
  1325. FROM
  1326. sys_user su
  1327. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1328. LEFT JOIN sys_user_info info ON info.id = su.id
  1329. <where>
  1330. info.id is not null
  1331. and su.id NOT LIKE '%M%'
  1332. AND ( su.type != '1' and su.type != '2' )
  1333. and su.dept_id in(SELECT val FROM ins_dept_configuration )
  1334. <if test="vo.provinceId != null and vo.provinceId != ''">
  1335. and sd.id like concat('%',#{vo.provinceId},'%')
  1336. </if>
  1337. <if test="vo.cityId != null and vo.cityId != ''">
  1338. and sd.id like concat('%',#{vo.cityId},'%')
  1339. </if>
  1340. <if test="vo.countyId != null and vo.countyId != ''">
  1341. and sd.id like concat('%',#{vo.countyId},'%')
  1342. </if>
  1343. <if test="vo.houseId != null and vo.houseId != ''">
  1344. and sd.id like concat('%',#{vo.houseId},'%')
  1345. </if>
  1346. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size >0">
  1347. and su.dept_id IN
  1348. <foreach collection="vo.deptIds" item="id" index="index" open="(" close=")" separator=",">
  1349. #{id}
  1350. </foreach>
  1351. </if>
  1352. </where>
  1353. </select>
  1354. <select id="queryQxFrontlineAgent" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1355. SELECT
  1356. sd.name as "deptName",
  1357. su.name as "name",
  1358. sd.id as "deptId",
  1359. su.id as "userId",
  1360. su.mobile as "mobile",
  1361. su.dept_id as "deptId",
  1362. inf.url as "filePath",
  1363. sul.name as "leaderName",
  1364. sui.sex as "sex",
  1365. sur.role_id AS roleId
  1366. FROM
  1367. sys_user su
  1368. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1369. LEFT JOIN ins_upload_files inf on su.head_sculpture =inf.id
  1370. LEFT JOIN sys_user_role sur ON sur.user_id = su.id
  1371. LEFT JOIN sys_user sul on sul.id=su.leader_id
  1372. LEFT JOIN sys_user_info sui on sui .id =su.id
  1373. <where>
  1374. su.id LIKE '%M%'
  1375. and su.status = '1'
  1376. <if test="vo.managementSource != null and vo.managementSource!='' ">
  1377. AND sd.management_source =#{vo.managementSource}
  1378. </if>
  1379. <choose>
  1380. <when test='vo.managementSource == "2"'>
  1381. and (sur.role_id = 20 or sur.role_id = 21)
  1382. </when>
  1383. <when test='vo.managementSource == "1"'>
  1384. and (sur.role_id = 19 or sur.role_id = 21)
  1385. </when>
  1386. <otherwise>
  1387. </otherwise>
  1388. </choose>
  1389. <if test="vo.provinceId != null and vo.provinceId != ''">
  1390. and sd.id like concat('%',#{vo.provinceId},'%')
  1391. </if>
  1392. <if test="vo.cityId != null and vo.cityId != ''">
  1393. and sd.id like concat('%',#{vo.cityId},'%')
  1394. </if>
  1395. <if test="vo.countyId != null and vo.countyId != ''">
  1396. and sd.id like concat('%',#{vo.countyId},'%')
  1397. </if>
  1398. <if test="vo.houseId != null and vo.houseId != ''">
  1399. and sd.id like concat('%',#{vo.houseId},'%')
  1400. </if>
  1401. <if test="vo.name != null and vo.name != ''">
  1402. and su.name =#{vo.name}
  1403. </if>
  1404. <if test="vo.userCode != null and vo.userCode != ''">
  1405. and su.id =#{vo.userCode}
  1406. </if>
  1407. <if test="vo.phoneNumber != null and vo.phoneNumber != ''">
  1408. and su.mobile =#{vo.phoneNumber}
  1409. </if>
  1410. <if test="vo.leaderId != null and vo.leaderId != ''">
  1411. and su.leader_id =#{vo.leaderId}
  1412. </if>
  1413. <if test="vo.leaderName != null and vo.leaderName != ''">
  1414. and su.leader_name =#{vo.leaderName}
  1415. </if>
  1416. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  1417. AND sd.id in
  1418. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  1419. #{item}
  1420. </foreach>
  1421. </if>
  1422. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  1423. AND su.id in
  1424. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  1425. #{item}
  1426. </foreach>
  1427. </if>
  1428. </where>
  1429. </select>
  1430. <select id="getQxFrontlineAgentList" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1431. SELECT
  1432. su.leader_id as "leaderId",
  1433. sd.name as "deptName",
  1434. su.name as "name",
  1435. sd.id as "deptId",
  1436. su.id as "userId",
  1437. su.mobile as "mobile",
  1438. su.dept_id as "deptId",
  1439. inf.url as "filePath",
  1440. sul.name as "leaderName",
  1441. sui.sex as "sex",
  1442. sur.role_id AS roleId
  1443. FROM
  1444. sys_user su
  1445. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1446. LEFT JOIN ins_upload_files inf on su.head_sculpture =inf.id
  1447. LEFT JOIN sys_user_role sur ON sur.user_id = su.id
  1448. LEFT JOIN sys_user sul on sul.id=su.leader_id
  1449. LEFT JOIN sys_user_info sui on sui .id =su.id
  1450. <where>
  1451. su.id LIKE '%M%'
  1452. and su.status = '1'
  1453. <if test="vo.managementSource != null and vo.managementSource!='' ">
  1454. AND sd.management_source =#{vo.managementSource}
  1455. </if>
  1456. <choose>
  1457. <when test='vo.managementSource == "2"'>
  1458. and (sur.role_id = 20 or sur.role_id = 21)
  1459. </when>
  1460. <when test='vo.managementSource == "1"'>
  1461. and (sur.role_id = 19 or sur.role_id = 21)
  1462. </when>
  1463. <otherwise>
  1464. </otherwise>
  1465. </choose>
  1466. <if test="vo.provinceId != null and vo.provinceId != ''">
  1467. and sd.id like concat('%',#{vo.provinceId},'%')
  1468. </if>
  1469. <if test="vo.cityId != null and vo.cityId != ''">
  1470. and sd.id like concat('%',#{vo.cityId},'%')
  1471. </if>
  1472. <if test="vo.countyId != null and vo.countyId != ''">
  1473. and sd.id like concat('%',#{vo.countyId},'%')
  1474. </if>
  1475. <if test="vo.houseId != null and vo.houseId != ''">
  1476. and sd.id like concat('%',#{vo.houseId},'%')
  1477. </if>
  1478. <if test="vo.name != null and vo.name != ''">
  1479. and su.name =#{vo.name}
  1480. </if>
  1481. <if test="vo.userCode != null and vo.userCode != ''">
  1482. and su.id =#{vo.userCode}
  1483. </if>
  1484. <if test="vo.phoneNumber != null and vo.phoneNumber != ''">
  1485. and su.mobile =#{vo.phoneNumber}
  1486. </if>
  1487. <!-- <if test="vo.leaderId != null and vo.leaderId != ''">-->
  1488. <!-- and su.leader_id =#{vo.leaderId}-->
  1489. <!-- </if>-->
  1490. <if test="vo.leaderIds != null and vo.leaderIds != '' and vo.leaderIds.size() > 0">
  1491. AND su.leader_id in
  1492. <foreach collection="vo.leaderIds" item="item" open="(" separator="," close=")">
  1493. #{item}
  1494. </foreach>
  1495. </if>
  1496. <if test="vo.leaderName != null and vo.leaderName != ''">
  1497. and su.leader_name =#{vo.leaderName}
  1498. </if>
  1499. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  1500. AND sd.id in
  1501. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  1502. #{item}
  1503. </foreach>
  1504. </if>
  1505. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  1506. AND su.id in
  1507. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  1508. #{item}
  1509. </foreach>
  1510. </if>
  1511. </where>
  1512. </select>
  1513. <select id="getByIdsList" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1514. SELECT
  1515. su.name as "name",
  1516. sd.name as "deptName",
  1517. su.id as "userId",
  1518. su.dept_id as "deptId"
  1519. FROM
  1520. sys_user su
  1521. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1522. <where>
  1523. su.id LIKE '%M%'
  1524. and su.status = '1'
  1525. <if test="vo.ids != null and vo.ids.size()>0 ">
  1526. AND su.id IN
  1527. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  1528. #{item}
  1529. </foreach>
  1530. </if>
  1531. </where>
  1532. </select>
  1533. <select id="getByUserId" resultType="com.ydtech.modules.admin.model.SysUser">
  1534. select t.id id,
  1535. t.name name,
  1536. t.mobile mobile,
  1537. t.leader_id leaderId,
  1538. t2.management_source managementSource,
  1539. t.operatorCode,
  1540. t.identity,
  1541. t2.id deptId,
  1542. t2.management_source dept_type
  1543. from sys_user t
  1544. left join sys_dept t2 on t.dept_id = t2.id
  1545. where t.id = #{id}
  1546. </select>
  1547. <select id="findByReferrerId" resultType="com.ydtech.modules.admin.model.vo.SysUserVO">
  1548. SELECT u.id, u.name
  1549. FROM sys_user u
  1550. <where>
  1551. <if test="deptId != null and deptId != ''">
  1552. and u.dept_id = #{deptId}
  1553. </if>
  1554. </where>
  1555. </select>
  1556. <select id="getTelemarketingPersonnelUserId" resultType="java.lang.String">
  1557. SELECT u.id
  1558. FROM sys_user u
  1559. LEFT JOIN sys_dept d ON u.dept_id = d.id
  1560. WHERE d.management_source = '3'
  1561. </select>
  1562. <select id="queryQxFrontlineAgentList" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1563. SELECT
  1564. su.name as "name",
  1565. su.id as "userId"
  1566. FROM
  1567. sys_user su
  1568. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1569. LEFT JOIN sys_user_role sur ON sur.user_id = su.id
  1570. <where>
  1571. su.id LIKE '%M%'
  1572. and su.status = '1'
  1573. AND sd.management_source =2
  1574. and (sur.role_id = 20 or sur.role_id = 21)
  1575. <if test="vo.provinceId != null and vo.provinceId != ''">
  1576. and sd.id like concat('%',#{vo.provinceId},'%')
  1577. </if>
  1578. <if test="vo.cityId != null and vo.cityId != ''">
  1579. and sd.id like concat('%',#{vo.cityId},'%')
  1580. </if>
  1581. <if test="vo.countyId != null and vo.countyId != ''">
  1582. and sd.id like concat('%',#{vo.countyId},'%')
  1583. </if>
  1584. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  1585. AND sd.id in
  1586. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  1587. #{item}
  1588. </foreach>
  1589. </if>
  1590. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  1591. AND su.id in
  1592. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  1593. #{item}
  1594. </foreach>
  1595. </if>
  1596. <if test="vo.houseId != null and vo.houseId != ''">
  1597. and sd.id like concat('%',#{vo.houseId},'%')
  1598. </if>
  1599. <if test="vo.name != null and vo.name != ''">
  1600. and su.name =#{vo.name}
  1601. </if>
  1602. <if test="vo.userCode != null and vo.userCode != ''">
  1603. and su.id =#{vo.userCode}
  1604. </if>
  1605. <if test="vo.phoneNumber != null and vo.phoneNumber != ''">
  1606. and su.mobile =#{vo.phoneNumber}
  1607. </if>
  1608. <if test="vo.leaderId != null and vo.leaderId != ''">
  1609. and su.leader_id =#{vo.leaderId}
  1610. </if>
  1611. <if test="vo.leaderName != null and vo.leaderName != ''">
  1612. and su.leader_name =#{vo.leaderName}
  1613. </if>
  1614. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  1615. AND sd.id in
  1616. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  1617. #{item}
  1618. </foreach>
  1619. </if>
  1620. </where>
  1621. </select>
  1622. <select id="findUserListByParam" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1623. SELECT
  1624. su.name as "name",
  1625. su.id as "userId",
  1626. su.status as status
  1627. FROM
  1628. sys_user su
  1629. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1630. LEFT JOIN ins_upload_files inf on su.head_sculpture =inf.id
  1631. LEFT JOIN sys_user_role sur ON sur.user_id = su.id
  1632. <where>
  1633. <if test="vo.ids != null and vo.ids.size()>0 ">
  1634. AND su.id IN
  1635. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  1636. #{item}
  1637. </foreach>
  1638. </if>
  1639. <if test="vo.name != null and vo.name != ''">
  1640. and su.name =#{vo.name}
  1641. </if>
  1642. <if test="vo.userCode != null and vo.userCode != ''">
  1643. and su.id =#{vo.userCode}
  1644. </if>
  1645. <if test="vo.phoneNumber != null and vo.phoneNumber != ''">
  1646. and su.mobile =#{vo.phoneNumber}
  1647. </if>
  1648. </where>
  1649. </select>
  1650. <select id="getAllAgent" resultType="com.ydtech.modules.admin.model.SysUser">
  1651. SELECT
  1652. su.id as "id",
  1653. eur.referrer_id as "parentId",
  1654. su.name as "name"
  1655. FROM
  1656. sys_user su
  1657. LEFT JOIN sys_user_info info ON info.id = su.id
  1658. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1659. LEFT JOIN sys_dept psd ON psd.id = sd.parent_id
  1660. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1661. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  1662. left join esm_user_referrer eur on eur.id =su.id
  1663. WHERE
  1664. (t3.role_id = 20 or t3.role_id = 21)
  1665. and sd.management_source = 2
  1666. AND sd.del_flag = '0'
  1667. AND su.STATUS = 1
  1668. <if test="ids !=null and ids !='' and ids .size()>0">
  1669. AND
  1670. su.id IN
  1671. <foreach collection="ids" item="item" open="(" separator="," close=")">
  1672. #{item}
  1673. </foreach>
  1674. </if>
  1675. <choose>
  1676. <when test="pid !=null and pid !=''">
  1677. and eur.id != eur.referrer_id
  1678. and eur.referrer_id =#{pid}
  1679. </when>
  1680. <when test='pid == null'>
  1681. and eur.id =eur.referrer_id
  1682. and (eur.level = '1' or eur.level ='0')
  1683. </when>
  1684. </choose>
  1685. </select>
  1686. <select id="selectForAgentsAndChannelsPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  1687. SELECT
  1688. su.id as userId,
  1689. su.name,
  1690. info.sex,
  1691. su.mobile,
  1692. su.status,
  1693. su.leader_id,
  1694. su.leader_name,
  1695. sd.id as deptId,
  1696. sd.name as deptName,
  1697. t4.id as roleId,
  1698. t4.name as roleName,
  1699. sd.management_source,
  1700. psd.id as pDeptId,
  1701. psd.name as pDeptName,
  1702. su.create_time as submitTime,
  1703. IF(su.leader_id = #{sysUserVO.leaderId},TRUE,FALSE) AS selectedNot,
  1704. (select approve_by from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveBy,
  1705. (select approve_time from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as
  1706. approveTime
  1707. FROM
  1708. sys_user su
  1709. LEFT JOIN sys_user_info info ON info.id = su.id
  1710. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1711. left join sys_dept psd on psd.id = sd.parent_id
  1712. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1713. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  1714. AND sd.del_flag = '0'
  1715. WHERE
  1716. 1=1
  1717. <if test='sysUserVO !=null '>
  1718. <if test='sysUserVO.leaderId !=null and sysUserVO.leaderId!="" '>
  1719. and su.leader_id = #{sysUserVO.leaderId}
  1720. </if>
  1721. <if test='sysUserVO.status !=null and sysUserVO.status!="" '>
  1722. and su.status = #{sysUserVO.status}
  1723. </if>
  1724. <if test='sysUserVO.name !=null and sysUserVO.name!="" '>
  1725. and su.name like concat('%',#{sysUserVO.name},'%')
  1726. </if>
  1727. <if test='sysUserVO.userId !=null and sysUserVO.userId!="" '>
  1728. and su.id = #{sysUserVO.userId}
  1729. </if>
  1730. <if test='sysUserVO.mobile !=null and sysUserVO.mobile!="" '>
  1731. and su.mobile = #{sysUserVO.mobile}
  1732. </if>
  1733. <if test='sysUserVO.deptId !=null and sysUserVO.deptId!="" '>
  1734. and su.dept_id like concat('%',#{sysUserVO.deptId},'%')
  1735. </if>
  1736. <if test='sysUserVO.leaderName !=null and sysUserVO.leaderName!="" '>
  1737. and su.leader_name like concat('%',#{sysUserVO.leaderName},'%')
  1738. </if>
  1739. <if test='sysUserVO.roleId !=null and sysUserVO.roleId!="" '>
  1740. and t3.role_id in (${sysUserVO.roleId})
  1741. </if>
  1742. <if test="sysUserVO.agentFlag !=null and sysUserVO.agentFlag != 0 ">
  1743. and sd.management_source = #{sysUserVO.agentFlag}
  1744. </if>
  1745. <if test="sysUserVO.agentFlag != null and sysUserVO.agentFlag == 0">
  1746. and sd.management_source is null
  1747. </if>
  1748. <if test="sysUserVO.notSelected != null and sysUserVO.notSelected == 0">
  1749. AND (su.leader_id IS NULL OR su.leader_id = '')
  1750. </if>
  1751. </if>
  1752. ORDER BY selectedNot DESC
  1753. </select>
  1754. <select id="selectHxUserList" resultType="java.util.Map">
  1755. SELECT * FROM
  1756. (
  1757. SELECT
  1758. t1.id AS id,
  1759. t1.name AS name,
  1760. t1.mobile AS mobile,
  1761. (
  1762. SELECT
  1763. COUNT(1)
  1764. FROM
  1765. sys_user su
  1766. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1767. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1768. AND sd.del_flag = '0'
  1769. WHERE 1 = 1
  1770. <if test='sysUserDto.roleId !=null and sysUserDto.roleId!="" '>and t3.role_id in (${sysUserDto.roleId})
  1771. and sd.management_source = #{sysUserDto.agentFlag}
  1772. </if>
  1773. <if test="
  1774. sysUserDto.agentFlag !=null and sysUserDto.agentFlag != 0 "></if>
  1775. <if test="sysUserDto.agentFlag != null and sysUserDto.agentFlag == 0">
  1776. and sd.management_source is null
  1777. </if>
  1778. AND su.leader_id = t1.id
  1779. ) totalNum
  1780. FROM
  1781. sys_user t1
  1782. WHERE
  1783. t1.`status` = 1 AND t1.id NOT LIKE '%M%'
  1784. ) AS t order by t.totalNum desc
  1785. </select>
  1786. <update id="cancelManagementPersonnel">
  1787. UPDATE sys_user SET leader_id = NULL , leader_name = NULL WHERE id in
  1788. <foreach item="item" collection="managementDto.userIds" open="(" separator="," close=")">
  1789. #{item}
  1790. </foreach>
  1791. </update>
  1792. <update id="updateManagementPersonnel">
  1793. UPDATE sys_user SET leader_id = #{managementDto.leaderId} , leader_name = #{managementDto.leaderName} WHERE id
  1794. in
  1795. <foreach item="item" collection="managementDto.userIds" open="(" separator="," close=")">
  1796. #{item}
  1797. </foreach>
  1798. </update>
  1799. <select id="findDxUserList" resultType="com.ydtech.modules.admin.model.SysUser">
  1800. SELECT t1.id AS id,
  1801. t1.NAME AS NAME
  1802. FROM sys_user t1
  1803. WHERE t1.`status` = 1
  1804. AND t1.id NOT LIKE '%M%'
  1805. UNION
  1806. SELECT t1.id AS id,
  1807. t1.NAME AS NAME
  1808. FROM sys_user t1
  1809. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  1810. WHERE t1.`status` = 1
  1811. AND t1.id LIKE '%M%'
  1812. AND t2.management_source = 3
  1813. </select>
  1814. <select id="findQXDLUserListNew" resultType="com.ydtech.modules.admin.model.SysUser">
  1815. SELECT
  1816. su.id as "id",
  1817. su.leader_id as "leaderId",
  1818. su.leader_name as "leaderName",
  1819. su.name as "name",
  1820. sd.management_source as "managementSource"
  1821. FROM
  1822. sys_user su
  1823. LEFT JOIN sys_user_info info ON info.id = su.id
  1824. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1825. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  1826. WHERE
  1827. (t3.role_id = 20 or t3.role_id = 21)
  1828. and sd.management_source = 2
  1829. AND sd.del_flag = '0'
  1830. AND su.STATUS = 1
  1831. <if test="vo.deptId !=null and vo.deptId!=''">
  1832. and su.dept_id like concat('%',#{vo.deptId},'%')
  1833. </if>
  1834. <if test="vo.userId !=null and vo.userId!='' ">
  1835. and su.id =#{vo.userId}
  1836. </if>
  1837. <if test="vo.leaderId !=null and vo.leaderId!='' ">
  1838. and su.leader_id =#{vo.leaderId}
  1839. </if>
  1840. <if test="vo.userName !=null and vo.userName!='' ">
  1841. and su.name =#{vo.userName}
  1842. </if>
  1843. </select>
  1844. <select id="getChanelList" resultType="com.ydtech.modules.admin.model.SysUser">
  1845. SELECT
  1846. su.id as "id",
  1847. su.leader_id as "leaderId",
  1848. su.leader_name as "leaderName",
  1849. su.name as "name",
  1850. sd.management_source as "managementSource"
  1851. FROM
  1852. sys_user su
  1853. LEFT JOIN sys_user_info info ON info.id = su.id
  1854. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  1855. WHERE
  1856. sd.management_source = 1
  1857. AND sd.del_flag = '0'
  1858. AND su.STATUS = 1
  1859. <if test="vo.deptId !=null and vo.deptId!=''">
  1860. and su.dept_id like concat('%',#{vo.deptId},'%')
  1861. </if>
  1862. <if test="vo.userId !=null and vo.userId!='' ">
  1863. and su.id =#{vo.userId}
  1864. </if>
  1865. <if test="vo.leaderId !=null and vo.leaderId!='' ">
  1866. and su.leader_id =#{vo.leaderId}
  1867. </if>
  1868. <if test="vo.userName !=null and vo.userName!='' ">
  1869. and su.name =#{vo.userName}
  1870. </if>
  1871. </select>
  1872. <select id="selectByParams" resultType="com.ydtech.modules.admin.model.SysUser">
  1873. SELECT
  1874. su.*,
  1875. sd.*
  1876. FROM
  1877. sys_user su
  1878. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  1879. WHERE
  1880. su.leader_id IS NOT NULL
  1881. AND su.id NOT LIKE '%M%'
  1882. AND su.STATUS = '1'
  1883. <if test = "leaderId !=null and leaderId !=''" >
  1884. AND su.leader_id = #{leaderId}
  1885. </if>
  1886. AND EXISTS (
  1887. SELECT
  1888. 1
  1889. FROM
  1890. sys_user su1
  1891. LEFT JOIN sys_user su2 ON su2.leader_id = su1.id
  1892. LEFT JOIN sys_user su3 ON su3.leader_id = su2.id
  1893. WHERE
  1894. su1.id = su.id
  1895. AND (
  1896. SELECT
  1897. count( 0 )
  1898. FROM
  1899. (
  1900. SELECT
  1901. sd1.management_source
  1902. FROM
  1903. sys_user su4
  1904. LEFT JOIN sys_dept sd1 ON sd1.id = su4.dept_id
  1905. WHERE
  1906. su4.id IN ( su1.id, su2.id, su3.id )
  1907. <if test="managementSource !=null and managementSource !=''">
  1908. and sd1.management_source=#{managementSource}
  1909. </if>
  1910. ) AS subquery
  1911. ORDER BY 1
  1912. ) > 0 )
  1913. </select>
  1914. <select id="selectByParamsTreeUser" resultType="com.ydtech.modules.admin.model.SysUser">
  1915. select * from sys_user su
  1916. left join sys_dept sd on sd.id =su.dept_id
  1917. <where>
  1918. su.leader_id is not null
  1919. AND su.id not LIKE '%M%'
  1920. AND su.status ='1'
  1921. <if test="leaderId !=null and leaderId !=''">
  1922. and su.leader_id =#{leaderId}
  1923. </if>
  1924. </where>
  1925. </select>
  1926. <select id="getGroupByUserId" resultType="java.lang.String">
  1927. select id
  1928. from sys_user
  1929. where (manager_id = #{userId} or id = #{userId})
  1930. </select>
  1931. <select id="getLeadListDeptId" resultType="com.ydtech.modules.admin.model.SysUser">
  1932. SELECT t1.id AS id,
  1933. t1.NAME AS NAME
  1934. FROM sys_user t1
  1935. WHERE t1.`status` = 1
  1936. AND t1.id NOT LIKE '%M%'
  1937. </select>
  1938. <select id="selectByLeadId" resultType="com.ydtech.modules.admin.model.SysUser">
  1939. select *
  1940. from sys_user su
  1941. where su.status = 1
  1942. and su.id NOT LIKE '%M%'
  1943. and su.leader_id = #{userId}
  1944. </select>
  1945. <select id="querySourceId" resultType="com.ydtech.modules.admin.model.SysUser">
  1946. select *
  1947. from sys_user su
  1948. left join sys_dept sd on su.dept_id = sd.id
  1949. where su.status != 0 and sd.management_source in (1,2)
  1950. and su.leader_id = #{id}
  1951. </select>
  1952. <select id="queryByUserId" resultType="com.ydtech.modules.admin.model.vo.AppUserInfoVo">
  1953. select su.id as userId,
  1954. su.name as userName,
  1955. su.mobile as mobile,
  1956. su.position_name as positionName,
  1957. sd.name as deptName,
  1958. sui.sex as sex,
  1959. sui.we_chat as weChat,
  1960. DATE_FORMAT(sui.entry_time, '%Y-%m-%d') as entryTime
  1961. from sys_user su
  1962. left join sys_dept sd on su.dept_id = sd.id
  1963. left join sys_user_info sui on su.id = sui.id
  1964. where su.id = #{userId}
  1965. </select>
  1966. <select id="getByRoleIdAndDeptId" resultType="com.ydtech.modules.admin.model.SysUser">
  1967. select *
  1968. from sys_user su
  1969. left join sys_user_role sur on su.id = sur.user_id
  1970. where sur.role_id = #{roleId}
  1971. and su.dept_id = #{deptId}
  1972. limit 1
  1973. </select>
  1974. <select id="selectLeaderBylanderInfo" resultType="com.ydtech.modules.admin.model.SysUser">
  1975. SELECT *
  1976. FROM sys_user AS su
  1977. LEFT JOIN sys_dept sd ON su.id = sd.id
  1978. <where>
  1979. <if test="deptId != null and deptId != ''">
  1980. AND su.dept_id = #{deptId}
  1981. </if>
  1982. <if test="leaderId != null and leaderId != ''">
  1983. AND su.leader_id = #{leaderId}
  1984. </if>
  1985. <if test="userId != null and userId != ''">
  1986. AND su.id = #{userId}
  1987. </if>
  1988. AND sd.management_source IS NULL
  1989. AND su.id NOT LIKE '%M%'
  1990. </where>
  1991. </select>
  1992. <select id="queryUpTheLeader" resultType="com.ydtech.modules.admin.model.SysUser">
  1993. WITH RECURSIVE Subordinates AS (
  1994. SELECT
  1995. u.id,
  1996. u.name,
  1997. u.leader_id,
  1998. l.name AS leader_name,
  1999. 1 AS level
  2000. FROM sys_user u
  2001. LEFT JOIN sys_user l ON u.leader_id = l.id
  2002. WHERE
  2003. u.leader_id = #{userId}
  2004. AND u.id NOT LIKE '%M%'
  2005. UNION ALL
  2006. SELECT
  2007. u.id,
  2008. u.name,
  2009. u.leader_id,
  2010. l.name AS leader_name,
  2011. s.level + 1
  2012. FROM sys_user u
  2013. INNER JOIN Subordinates s ON u.leader_id = s.id
  2014. LEFT JOIN sys_user l ON u.leader_id = l.id
  2015. WHERE
  2016. u.id NOT LIKE '%M%'
  2017. )
  2018. SELECT * FROM Subordinates;
  2019. </select>
  2020. <select id="queryByBusinessGrouping" resultType="com.ydtech.modules.admin.model.SysUser">
  2021. SELECT u.*
  2022. FROM sys_user u
  2023. INNER JOIN sys_business_grouping bg1 ON u.id = bg1.user_id
  2024. INNER JOIN sys_business_grouping bg2
  2025. ON bg1.grouping_id = bg2.grouping_id
  2026. AND bg2.user_id = #{userId}
  2027. </select>
  2028. <select id="findDxZyUserList" resultType="com.ydtech.modules.admin.model.SysUser">
  2029. SELECT t1.id AS id,
  2030. t1.NAME AS NAME
  2031. FROM sys_user t1
  2032. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  2033. WHERE t1.`status` = 1
  2034. AND t1.id LIKE '%M%'
  2035. AND t2.management_source = 3
  2036. </select>
  2037. <select id="selectByUserId" resultType="com.ydtech.modules.admin.model.SysUser">
  2038. SELECT su.*,sd.name as dept_name
  2039. from sys_user su left join sys_dept sd on su.dept_id = sd.id
  2040. where 1 = 1
  2041. <foreach collection="ids" item="item" open="and" separator="or">
  2042. su.id = #{item}
  2043. </foreach>
  2044. </select>
  2045. <select id="findAllUsers" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  2046. SELECT
  2047. t1.id AS userId,
  2048. t1.NAME AS NAME,
  2049. t1.mobile AS mobile,
  2050. t1.`status` AS `status`,
  2051. t2.id AS deptId,
  2052. t2.`name` AS deptName,
  2053. sd2.id AS pDeptId,
  2054. sd2.`name` AS pDeptName
  2055. FROM
  2056. sys_user t1
  2057. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  2058. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  2059. WHERE
  2060. t1.`status` = 1
  2061. <if test='user !=null '>
  2062. <if test='user.name !=null and user.name!="" '>
  2063. and t1.name like CONCAT('%', #{user.name}, '%')
  2064. </if>
  2065. <if test='user.userId !=null and user.userId!="" '>
  2066. and t1.id = #{user.userId}
  2067. </if>
  2068. <if test='user.mobile !=null and user.mobile!="" '>
  2069. and t1.mobile = #{user.mobile}
  2070. </if>
  2071. <if test='user.deptId !=null and user.deptId!="" '>
  2072. and t2.id like CONCAT('', #{user.deptId}, '%')
  2073. </if>
  2074. </if>
  2075. </select>
  2076. <select id="findByPhoneNotPartner" resultType="com.ydtech.modules.admin.model.SysUser">
  2077. SELECT
  2078. u.*
  2079. FROM
  2080. sys_user u
  2081. LEFT JOIN sys_user_role r ON r.user_id = u.id
  2082. WHERE
  2083. r.role_id != 108 AND u.mobile = #{phone}
  2084. ORDER BY u.create_time DESC LIMIT 1
  2085. </select>
  2086. <select id="getPartnerVersion" resultType="java.lang.String">
  2087. SELECT
  2088. CASE
  2089. WHEN EXISTS ( SELECT id FROM partner_user WHERE user_id = #{userId} ) THEN 1
  2090. WHEN EXISTS ( SELECT id FROM sys_partner WHERE user_id = #{userId} ) THEN 2
  2091. ELSE 3
  2092. END AS result;
  2093. </select>
  2094. <select id="findPartnerUserList" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  2095. SELECT
  2096. su.id as userId,
  2097. su.name,
  2098. su.position_name,
  2099. info.sex,
  2100. su.mobile,
  2101. su.status,
  2102. su.type,
  2103. su.level,
  2104. su.referrer_id as referrerId,
  2105. sd.id as deptId,
  2106. sd.name as deptName,
  2107. t4.id as roleId,
  2108. t4.name as roleName,
  2109. sd.management_source,
  2110. psd.id as pDeptId,
  2111. psd.name as pDeptName,
  2112. su.create_time as submitTime,
  2113. (select approve_by from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveBy,
  2114. (select approve_time from sys_user_track where user_id = su.id ORDER BY approve_time desc LIMIT 1) as
  2115. approveTime
  2116. FROM
  2117. sys_user su
  2118. LEFT JOIN sys_user_info info ON info.id = su.id
  2119. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  2120. left join sys_dept psd on psd.id = sd.parent_id
  2121. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  2122. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  2123. AND sd.del_flag = '0'
  2124. WHERE
  2125. su.status in(6,2) and su.type = 4 and t3.role_id = 108
  2126. <if test='user !=null '>
  2127. <if test='user.name !=null and user.name!="" '>
  2128. and su.name like concat('%',#{user.name},'%')
  2129. </if>
  2130. <if test='user.userId !=null and user.userId!="" '>
  2131. and su.id = #{user.userId}
  2132. </if>
  2133. <if test='user.mobile !=null and user.mobile!="" '>
  2134. and su.mobile = #{user.mobile}
  2135. </if>
  2136. <if test='user.deptId !=null and user.deptId!="" '>
  2137. and su.dept_id like concat('%',#{user.deptId},'%')
  2138. </if>
  2139. <if test='user.leaderName !=null and user.leaderName!="" '>
  2140. and su.leader_name like concat('%',#{user.leaderName},'%')
  2141. </if>
  2142. </if>
  2143. order by su.create_time desc
  2144. </select>
  2145. </mapper>