ActivityRegistrationDao.xml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="platform.modules.sys.dao.ActivityRegistrationDao">
  6. <select id="getRegistrationNumber" resultType="java.lang.Integer">
  7. SELECT
  8. count(id)
  9. FROM
  10. ac_activity_registration
  11. WHERE
  12. activity_id = #{activityId}
  13. AND review_state = 1
  14. </select>
  15. <select id="findRegistrationPage" parameterType="java.lang.Integer"
  16. resultType="platform.modules.sys.entity.ActivityRegistration">
  17. SELECT
  18. reg.id id,
  19. zuser.name user_name,
  20. reg.name name,
  21. reg.phone phone,
  22. reg.mail mail,
  23. reg.position position,
  24. reg.registration_way registration_way,
  25. reg.review_state review_state,
  26. reg.registration_time registration_time,
  27. reg.user_type user_type,
  28. reg.user_id user_id
  29. FROM
  30. ac_activity_registration reg
  31. LEFT JOIN (
  32. SELECT
  33. z.id id,
  34. s.name name,
  35. '4' type
  36. FROM
  37. s_street s
  38. JOIN z_user z ON z.street_id = s.id
  39. UNION
  40. SELECT
  41. z.id id,
  42. y.name name,
  43. '1' type
  44. FROM
  45. y_info y
  46. JOIN z_user z ON z.build_id = y.id
  47. UNION
  48. SELECT
  49. z.id id,
  50. c.company_name name,
  51. '3' type
  52. FROM
  53. y_company c
  54. JOIN z_user z ON z.company_id = c.id
  55. UNION
  56. SELECT
  57. z.id id,
  58. '政府' name,
  59. '0' type
  60. FROM
  61. sys_department s
  62. JOIN z_user z ON z.department_id = s.id
  63. UNION
  64. SELECT
  65. id,
  66. '个人' name,
  67. '5' type
  68. FROM
  69. z_user u
  70. ) zuser ON reg.user_id = zuser.id
  71. AND reg.user_type = zuser.type
  72. WHERE
  73. reg.activity_id = #{activityId}
  74. order by
  75. zuser.name,reg.create_time desc
  76. </select>
  77. <select id="findSginPage" parameterType="java.lang.Integer"
  78. resultType="platform.modules.sys.entity.ActivityRegistration">
  79. SELECT
  80. reg.id id,
  81. zuser.name user_name,
  82. reg.name name,
  83. reg.phone phone,
  84. reg.mail mail,
  85. reg.position position,
  86. reg.registration_way registration_way,
  87. reg.review_state review_state,
  88. reg.sign_state sign_state,
  89. reg.registration_time registration_time
  90. FROM
  91. ac_activity_registration reg
  92. LEFT JOIN (
  93. SELECT
  94. z.id id,
  95. s.name name,
  96. '4' type
  97. FROM
  98. s_street s
  99. JOIN z_user z ON z.street_id = s.id
  100. UNION
  101. SELECT
  102. z.id id,
  103. y.name name,
  104. '1' type
  105. FROM
  106. y_info y
  107. JOIN z_user z ON z.build_id = y.id
  108. UNION
  109. SELECT
  110. z.id id,
  111. c.company_name name,
  112. '3' type
  113. FROM
  114. y_company c
  115. JOIN z_user z ON z.company_id = c.id
  116. UNION
  117. SELECT
  118. z.id id,
  119. '政府' name,
  120. '0' type
  121. FROM
  122. sys_department s
  123. JOIN z_user z ON z.department_id = s.id
  124. ) zuser ON reg.user_id = zuser.id
  125. AND reg.user_type = zuser.type
  126. WHERE
  127. reg.activity_id = #{activityId}
  128. </select>
  129. <select id="findMyActivityPage" parameterType="platform.modules.sys.entity.ActivityRegistration"
  130. resultType="platform.modules.sys.entity.ActivityRegistration">
  131. select * from (
  132. SELECT
  133. reg.id id,
  134. detail.id activity_id,
  135. detail.activity_title activity_title,
  136. detail.activity_starttime activity_starttime,
  137. detail.activity_endtime activity_endtime,
  138. detail.activity_state activity_state,
  139. reg.name name,
  140. reg.phone phone,
  141. reg.mail mail,
  142. reg.position position,
  143. reg.registration_time registration_time,
  144. reg.review_state review_state,
  145. reg.sign_state sign_state,
  146. reg.user_id user_id,
  147. (select count(feedback.id) from ac_activity_feedback feedback
  148. WHERE feedback.activity_id = detail.id
  149. and feedback.user_id = #{activity.user_id}) feedbackNum
  150. FROM
  151. ac_activity_registration reg
  152. LEFT JOIN ac_activity_detail detail ON reg.activity_id = detail.id
  153. <if test="activity.activity_state == '3'.toString() ">
  154. JOIN ac_activity_feedback feedback ON feedback.activity_id = detail.id
  155. </if>
  156. <if test="activity.activity_state == '2'.toString() ">
  157. JOIN ac_activity_feedback feedback ON feedback.activity_id = detail.id
  158. </if>
  159. ) t
  160. WHERE
  161. user_id = #{activity.user_id}
  162. AND activity_state != '0'
  163. <if test="activity.activity_title != null and activity.activity_title != '' ">
  164. AND activity_title LIKE CONCAT('%',#{activity.activity_title},'%')
  165. </if>
  166. <if test="activity.activity_state == '0'.toString() ">
  167. AND review_state = "0"
  168. </if>
  169. <if test="activity.activity_state == '1'.toString() ">
  170. AND review_state = "1"
  171. AND (sign_state != "0" or sign_state is null)
  172. </if>
  173. <if test="activity.activity_state == '2'.toString() ">
  174. AND review_state = "1"
  175. AND sign_state = "0"
  176. AND feedbackNum <![CDATA[<=]]> 0
  177. </if>
  178. <if test="activity.activity_state == '3'.toString() ">
  179. AND review_state = "1"
  180. AND feedbackNum <![CDATA[>]]> 0
  181. </if>
  182. <if test="activity.activity_state == '4'.toString() ">
  183. AND (activity_state = "2" or review_state = "3" or review_state = "2")
  184. </if>
  185. <if test="activity.user_name != null and activity.user_name != '' ">
  186. AND name LIKE CONCAT('%',#{activity.user_name},'%')
  187. </if>
  188. </select>
  189. <update id="updateReviewStateBatch" parameterType="java.lang.String">
  190. update ac_activity_registration
  191. SET review_state = 0
  192. WHERE
  193. <if test="idList !=null and idList !=''">
  194. id in
  195. <foreach collection="idList" open="(" close=")" separator="," item="id">
  196. #{id}
  197. </foreach>
  198. </if>
  199. </update>
  200. <update id="updateStateBatch" parameterType="java.lang.String">
  201. update ac_activity_registration
  202. <set>
  203. <if test="activity.review_state != null and activity.review_state != '' ">
  204. review_state = #{activity.review_state},
  205. </if>
  206. <if test="activity.sign_state != null and activity.sign_state != '' ">
  207. sign_state = #{activity.sign_state},
  208. </if>
  209. </set>
  210. WHERE
  211. 1=1
  212. <if test="activity.review_state != null and activity.review_state != '' ">
  213. and review_state = '0'
  214. </if>
  215. <if test="activity.sign_state != null and activity.sign_state != '' ">
  216. and ISNULL(sign_state)
  217. </if>
  218. <if test="idList !=null and idList.size > 0 ">
  219. and id in
  220. <foreach collection="idList" open="(" close=")" separator="," item="id">
  221. #{id}
  222. </foreach>
  223. </if>
  224. </update>
  225. <update id="updateState" parameterType="platform.modules.sys.entity.ActivityRegistration">
  226. update ac_activity_registration
  227. <set>
  228. <if test="activity.review_state != null and activity.review_state != '' ">
  229. review_state = #{activity.review_state},
  230. </if>
  231. <if test="activity.sign_state != null and activity.sign_state != '' ">
  232. sign_state = #{activity.sign_state},
  233. </if>
  234. </set>
  235. WHERE
  236. 1=1
  237. <if test="activity.review_state != null and activity.review_state != '' ">
  238. and review_state = '0'
  239. </if>
  240. <if test="activity.sign_state != null and activity.sign_state != '' ">
  241. and ISNULL(sign_state)
  242. </if>
  243. and id = #{activity.id}
  244. </update>
  245. <select id="findByRelationIdAndType" parameterType="java.lang.String"
  246. resultType="platform.modules.sys.entity.ActivityRegistration">
  247. SELECT
  248. *
  249. FROM
  250. ac_activity_registration reg
  251. WHERE
  252. reg.del_flag = 0
  253. and reg.user_type = #{type}
  254. and reg.relation_id =#{rel}
  255. and reg.activity_id =#{activity_id}
  256. ORDER BY
  257. reg.create_time ASC
  258. </select>
  259. <select id="findRegistrationExport" parameterType="java.lang.Integer"
  260. resultType="platform.modules.sys.report.ActivityRegistrationExports">
  261. SELECT
  262. reg.id id,
  263. zuser.name user_name,
  264. reg.name name,
  265. reg.phone phone,
  266. reg.mail mail,
  267. reg.position position,
  268. reg.registration_way registration_way,
  269. reg.review_state review_state,
  270. reg.registration_time registration_time,
  271. reg.user_type user_type,
  272. reg.user_id user_id
  273. FROM
  274. ac_activity_registration reg
  275. LEFT JOIN (
  276. SELECT
  277. z.id id,
  278. s.name name,
  279. '4' type
  280. FROM
  281. s_street s
  282. JOIN z_user z ON z.street_id = s.id
  283. UNION
  284. SELECT
  285. z.id id,
  286. y.name name,
  287. '1' type
  288. FROM
  289. y_info y
  290. JOIN z_user z ON z.build_id = y.id
  291. UNION
  292. SELECT
  293. z.id id,
  294. c.company_name name,
  295. '3' type
  296. FROM
  297. y_company c
  298. JOIN z_user z ON z.company_id = c.id
  299. UNION
  300. SELECT
  301. z.id id,
  302. '政府' name,
  303. '0' type
  304. FROM
  305. sys_department s
  306. JOIN z_user z ON z.department_id = s.id
  307. ) zuser ON reg.user_id = zuser.id
  308. AND reg.user_type = zuser.type
  309. WHERE
  310. reg.activity_id = #{activityId}
  311. order by
  312. zuser.name,reg.create_time desc
  313. </select>
  314. <update id="adortRegister">
  315. UPDATE ac_activity_registration SET review_state = 3 WHERE id IN
  316. <foreach collection="list" item="id" index="index" open="(" close=")" separator=",">
  317. #{id}
  318. </foreach>
  319. </update>
  320. <select id="getActivityRegistration" resultType="platform.modules.sys.entity.ActivityRegistration">
  321. SELECT
  322. id,
  323. `name`,
  324. phone,
  325. mail,
  326. `position`,
  327. registration_time,
  328. CASE
  329. review_state
  330. WHEN 0 THEN
  331. '待审核'
  332. WHEN 1 THEN
  333. '通过'
  334. WHEN 2 THEN
  335. '退回' ELSE '取消报名'
  336. END review_state
  337. FROM
  338. ac_activity_registration
  339. WHERE
  340. activity_id = #{activityId}
  341. AND user_id = #{userId}
  342. </select>
  343. <select id="findPendingActivity" resultType="platform.modules.sys.entity.ActivityDetail">
  344. SELECT
  345. DISTINCT(ar.activity_id),ad.*
  346. FROM
  347. ac_activity_registration ar
  348. LEFT JOIN ac_activity_detail ad ON ad.id = ar.activity_id
  349. WHERE
  350. ar.del_flag = 0 AND ad.del_flag = 0 AND ad.activity_state = 1
  351. AND ar.user_id = #{userId} AND ar.review_state = 1
  352. AND ad.activity_starttime > NOW()
  353. </select>
  354. <select id="findCommentActivity" resultType="platform.modules.sys.entity.ActivityDetail">
  355. SELECT
  356. DISTINCT
  357. ( ar.activity_id ),
  358. ad.*
  359. FROM
  360. ac_activity_registration ar
  361. LEFT JOIN ac_activity_detail ad ON ad.id = ar.activity_id
  362. WHERE
  363. ar.del_flag = 0 AND ad.del_flag = 0 AND ad.activity_state = 1 AND ar.user_id = #{userId}
  364. AND ar.review_state = 1 AND ar.sign_state = 0
  365. AND (SELECT content FROM ac_activity_feedback WHERE activity_id = ad.id AND user_id = #{userId}) IS NULL
  366. AND ad.activity_endtime <![CDATA[ < ]]> NOW( )
  367. </select>
  368. <select id="findExpiredActivity" resultType="platform.modules.sys.entity.ActivityDetail">
  369. SELECT
  370. DISTINCT
  371. ( ar.activity_id ),
  372. ad.*
  373. FROM
  374. ac_activity_registration ar
  375. LEFT JOIN ac_activity_detail ad ON ad.id = ar.activity_id
  376. WHERE
  377. ar.del_flag = 0 AND ad.del_flag = 0 AND ad.activity_state = 1 AND ar.user_id = #{userId}
  378. AND (ar.review_state = 3 OR ar.sign_state = 1 OR ad.activity_state = 2)
  379. </select>
  380. <select id="findCompletedActivity" resultType="platform.modules.sys.entity.ActivityDetail">
  381. SELECT
  382. DISTINCT
  383. ( ar.activity_id ),
  384. ad.*
  385. FROM
  386. ac_activity_registration ar
  387. LEFT JOIN ac_activity_detail ad ON ad.id = ar.activity_id
  388. WHERE
  389. ar.del_flag = 0 AND ad.del_flag = 0 AND ad.activity_state = 1 AND ar.user_id = #{userId}
  390. AND ar.review_state = 1 AND ar.sign_state = 0
  391. AND (SELECT content FROM ac_activity_feedback WHERE activity_id = ad.id AND user_id = #{userId}) IS NOT NULL
  392. AND ad.activity_endtime <![CDATA[ < ]]> NOW( )
  393. </select>
  394. <select id="findPushActivity" resultType="platform.modules.sys.entity.ActivityDetail">
  395. SELECT
  396. ad.*
  397. FROM
  398. ac_activity_push ap
  399. LEFT JOIN ac_activity_detail ad ON ad.id = ap.activity_id
  400. WHERE
  401. ap.del_flag = 0
  402. AND ad.del_flag = 0
  403. AND ap.user_id = #{userId}
  404. </select>
  405. <select id="findCollectionActivity" resultType="platform.modules.sys.entity.ActivityDetail">
  406. SELECT
  407. IF
  408. (
  409. ad.activity_starttime > now( ),
  410. IF
  411. ( ( SELECT DISTINCT review_state FROM ac_activity_registration WHERE activity_id = ad.id AND review_state!=3 AND user_id = #{userId} ) = 1, 'pending', 'expired' ),
  412. IF
  413. (
  414. ad.activity_endtime <![CDATA[ < ]]> now( ),
  415. IF
  416. ( ( SELECT DISTINCT sign_state FROM ac_activity_registration WHERE activity_id = ad.id AND user_id = #{userId} ) = 1, 'expired', 'comment' ),
  417. IF
  418. (
  419. ( SELECT DISTINCT sign_state FROM ac_activity_registration WHERE activity_id = ad.id AND user_id = #{userId} ) = 1,
  420. 'expired',
  421. IF
  422. ( ( SELECT content FROM ac_activity_feedback WHERE activity_id = ad.id AND user_id = #{userId} ) IS NULL, 'comment', 'completed' )
  423. )
  424. )
  425. ) AS activity_type_status,
  426. ad.*
  427. FROM
  428. ac_activity_favourite af
  429. LEFT JOIN ac_activity_detail ad ON ad.id = af.activity_id
  430. WHERE
  431. af.del_flag = 0
  432. AND ad.del_flag = 0
  433. AND af.user_id = #{userId}
  434. </select>
  435. </mapper>