ActivityUserMapperMapper.xml 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701
  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. <!--
  4. 这个文件是自动生成的。
  5. 不要修改此文件。所有改动将在下次重新自动生成时丢失。
  6. -->
  7. <mapper namespace="com.ym.mec.biz.dal.dao.ActivityUserMapperDao">
  8. <resultMap type="com.ym.mec.biz.dal.entity.ActivityUserMapper" id="ActivityUserMapper">
  9. <result column="id_" property="id" />
  10. <result column="category_id_" property="categoryId" />
  11. <result column="give_category_id_" property="giveCategoryId" />
  12. <result column="single_course_time_" property="singleCourseTime" />
  13. <result column="give_single_course_time_" property="giveSingleCourseTime" />
  14. <result column="activity_id_" property="activityId" />
  15. <result column="user_id_" property="userId" />
  16. <result column="teacher_id_" property="teacherId" />
  17. <result column="vip_flag_" property="vipFlag" />
  18. <result column="give_vip_flag_" property="giveVipFlag" />
  19. <result column="practice_flag_" property="practiceFlag" />
  20. <result column="give_practice_flag_" property="givePracticeFlag" />
  21. <result column="member_flag_" property="memberFlag" />
  22. <result column="give_member_flag_" property="giveMemberFlag" />
  23. <result column="payment_order_id_" property="paymentOrderId" />
  24. <result column="vip_group_id_" property="vipGroupId" />
  25. <result column="total_course_num_" property="totalCourseNum" />
  26. <result column="total_give_course_num_" property="totalGiveCourseNum" />
  27. <result column="sub_course_num_" property="subCourseNum" />
  28. <result column="sub_give_course_num_" property="subGiveCourseNum" />
  29. <result column="give_vip_group_id_" property="giveVipGroupId" />
  30. <result column="member_order_id_" property="memberOrderId" />
  31. <result column="give_member_order_id_" property="giveMemberOrderId" />
  32. <result column="practice_group_id_" property="practiceGroupId" />
  33. <result column="give_practice_group_id_" property="givePracticeGroupId" />
  34. <result column="return_fee_" property="returnFee" />
  35. <result column="sub_no_course_price_" property="subNoCoursePrice" />
  36. <result column="actual_price_" property="actualPrice" />
  37. <result column="add_memo_" property="addMemo" />
  38. <result column="cut_memo_" property="cutMemo" />
  39. <result column="give_coupon_id_" property="giveCouponId" />
  40. <result column="create_time_" property="createTime" />
  41. <result column="calender_id_" property="calenderId" />
  42. <result column="organ_id_" property="organId" />
  43. <result column="update_time_" property="updateTime" />
  44. <result column="tenant_id_" property="tenantId" />
  45. </resultMap>
  46. <!-- 根据主键查询一条记录 -->
  47. <select id="get" resultMap="ActivityUserMapper" >
  48. SELECT * FROM activity_user_mapper WHERE id_ = #{id}
  49. </select>
  50. <!-- 全查询 -->
  51. <select id="findAll" resultMap="ActivityUserMapper">
  52. SELECT * FROM activity_user_mapper where tenant_id_ = #{tenantId} ORDER BY id_
  53. </select>
  54. <!-- 向数据库增加一条记录 -->
  55. <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.ActivityUserMapper" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
  56. INSERT INTO activity_user_mapper (activity_id_,user_id_,vip_flag_,give_vip_flag_,
  57. practice_flag_,give_practice_flag_,member_flag_,give_member_flag_,create_time_,update_time_,payment_order_id_,
  58. vip_group_id_,give_vip_group_id_,practice_group_id_,give_practice_group_id_,return_fee_,
  59. member_order_id_,give_member_order_id_,teacher_id_,actual_price_,add_memo_,cut_memo_,tenant_id_,give_coupon_id_,
  60. total_course_num_,total_give_course_num_,sub_course_num_,sub_give_course_num_,sub_no_course_price_,single_course_time_,
  61. give_single_course_time_,category_id_,give_category_id_,calender_id_,organ_id_)
  62. VALUES(#{activityId},#{userId},#{vipFlag},#{giveVipFlag},#{practiceFlag},
  63. #{givePracticeFlag},#{memberFlag},#{giveMemberFlag},NOW(),NOW(),#{paymentOrderId},#{vipGroupId},
  64. #{giveVipGroupId},#{practiceGroupId},#{givePracticeGroupId},#{returnFee},
  65. #{memberOrderId},#{giveMemberOrderId},#{teacherId},#{actualPrice},#{addMemo},#{cutMemo},#{tenantId},#{giveCouponId},
  66. #{totalCourseNum},#{totalGiveCourseNum},#{subCourseNum},#{subGiveCourseNum},#{subNoCoursePrice},
  67. #{singleCourseTime},#{giveSingleCourseTime},#{categoryId},#{giveCategoryId},#{calenderId},#{organId})
  68. </insert>
  69. <insert id="batchInsert">
  70. INSERT INTO activity_user_mapper (activity_id_,user_id_,vip_flag_,give_vip_flag_,
  71. practice_flag_,give_practice_flag_,member_flag_,give_member_flag_,create_time_,update_time_,payment_order_id_,
  72. vip_group_id_,give_vip_group_id_,practice_group_id_,give_practice_group_id_,return_fee_,member_order_id_,
  73. give_member_order_id_,teacher_id_,actual_price_,add_memo_,cut_memo_,tenant_id_,give_coupon_id_,
  74. total_course_num_,total_give_course_num_,sub_course_num_,sub_give_course_num_,sub_no_course_price_,single_course_time_,
  75. give_single_course_time_,category_id_,give_category_id_,calender_id_,organ_id_)
  76. VALUES
  77. <foreach collection="activityUserMappers" item="item" separator=",">
  78. (#{item.activityId},#{item.userId},#{item.vipFlag},#{item.giveVipFlag},#{item.practiceFlag},
  79. #{item.givePracticeFlag},#{item.memberFlag},#{item.giveMemberFlag},NOW(),NOW(),#{item.paymentOrderId},#{item.vipGroupId},
  80. #{item.giveVipGroupId},#{item.practiceGroupId},#{item.givePracticeGroupId},#{item.returnFee},
  81. #{item.memberOrderId},#{item.giveMemberOrderId},#{item.teacherId},#{item.actualPrice},#{item.addMemo},#{item.cutMemo},
  82. #{item.tenantId},#{item.giveCouponId},#{item.totalCourseNum},#{item.totalGiveCourseNum},#{item.subCourseNum},
  83. #{item.subGiveCourseNum},#{item.subNoCoursePrice},#{item.singleCourseTime},#{item.giveSingleCourseTime},
  84. #{item.categoryId},#{item.giveCategoryId},#{item.calenderId},#{item.organId})
  85. </foreach>
  86. </insert>
  87. <!-- 根据主键查询一条记录 -->
  88. <update id="update" parameterType="com.ym.mec.biz.dal.entity.ActivityUserMapper">
  89. UPDATE activity_user_mapper
  90. <set>
  91. <if test="calenderId != null">
  92. calender_id_ = #{calenderId},
  93. </if>
  94. <if test="singleCourseTime != null">
  95. single_course_time_ = #{singleCourseTime},
  96. </if>
  97. <if test="giveSingleCourseTime != null">
  98. give_single_course_time_ = #{giveSingleCourseTime},
  99. </if>
  100. <if test="totalCourseNum != null">
  101. total_course_num_ = #{totalCourseNum},
  102. </if>
  103. <if test="subNoCoursePrice != null">
  104. sub_no_course_price_ = #{subNoCoursePrice},
  105. </if>
  106. <if test="totalGiveCourseNum != null">
  107. total_give_course_num_ = #{totalGiveCourseNum},
  108. </if>
  109. <if test="subCourseNum != null">
  110. sub_course_num_ = #{subCourseNum},
  111. </if>
  112. <if test="subGiveCourseNum != null">
  113. sub_give_course_num_ = #{subGiveCourseNum},
  114. </if>
  115. <if test="giveCouponId != null">
  116. give_coupon_id_ = #{giveCouponId},
  117. </if>
  118. <if test="cutMemo != null">
  119. cut_memo_ = #{cutMemo},
  120. </if>
  121. <if test="addMemo != null">
  122. add_memo_ = #{addMemo},
  123. </if>
  124. <if test="actualPrice != null">
  125. actual_price_ = #{actualPrice},
  126. </if>
  127. <if test="teacherId != null">
  128. teacher_id_ = #{teacherId},
  129. </if>
  130. <if test="memberOrderId != null">
  131. member_order_id_ = #{memberOrderId},
  132. </if>
  133. <if test="giveMemberOrderId != null">
  134. give_member_order_id_ = #{giveMemberOrderId},
  135. </if>
  136. <if test="returnFee != null">
  137. return_fee_ = #{returnFee},
  138. </if>
  139. <if test="vipGroupId != null">
  140. vip_group_id_ = #{vipGroupId},
  141. </if>
  142. <if test="giveVipGroupId != null">
  143. give_vip_group_id_ = #{giveVipGroupId},
  144. </if>
  145. <if test="practiceGroupId != null">
  146. practice_group_id_ = #{practiceGroupId},
  147. </if>
  148. <if test="givePracticeGroupId != null">
  149. give_practice_group_id_ = #{givePracticeGroupId},
  150. </if>
  151. <if test="paymentOrderId != null">
  152. payment_order_id_ = #{paymentOrderId},
  153. </if>
  154. <if test="userId != null">
  155. user_id_ = #{userId},
  156. </if>
  157. <if test="givePracticeFlag != null">
  158. give_practice_flag_ = #{givePracticeFlag},
  159. </if>
  160. <if test="giveVipFlag != null">
  161. give_vip_flag_ = #{giveVipFlag},
  162. </if>
  163. <if test="vipFlag != null">
  164. vip_flag_ = #{vipFlag},
  165. </if>
  166. <if test="activityId != null">
  167. activity_id_ = #{activityId},
  168. </if>
  169. <if test="practiceFlag != null">
  170. practice_flag_ = #{practiceFlag},
  171. </if>
  172. <if test="memberFlag != null">
  173. member_flag_ = #{memberFlag},
  174. </if>
  175. <if test="giveMemberFlag != null">
  176. give_member_flag_ = #{giveMemberFlag},
  177. </if>
  178. update_time_ = NOW()
  179. </set>WHERE id_ = #{id} and tenant_id_ = #{tenantId}
  180. </update>
  181. <update id="use">
  182. UPDATE activity_user_mapper SET
  183. <if test="type == 'VIP'">
  184. vip_flag_ = 2,vip_group_id_ = #{groupId},update_time_ = NOW()
  185. WHERE vip_flag_ = 1
  186. </if>
  187. <if test="type == 'GIVE_VIP'">
  188. give_vip_flag_ = 2,give_vip_group_id_ = #{groupId},update_time_ = NOW()
  189. WHERE give_vip_flag_ = 1
  190. </if>
  191. <if test="type == 'PRACTICE'">
  192. practice_flag_ = 2,practice_group_id_ = #{groupId},update_time_ = NOW()
  193. WHERE practice_flag_ = 1
  194. </if>
  195. <if test="type == 'GIVE_PRACTICE'">
  196. give_practice_flag_ = 2,give_practice_group_id_ = #{groupId},update_time_ = NOW()
  197. WHERE give_practice_flag_ = 1
  198. </if>
  199. AND FIND_IN_SET(id_,#{activityUserMapperIds}) AND FIND_IN_SET(user_id_,#{studentIds}) AND return_fee_ = 0
  200. </update>
  201. <update id="updateTeacherId">
  202. UPDATE activity_user_mapper SET teacher_id_ = #{teacherId} WHERE user_id_ = #{userId}
  203. </update>
  204. <update id="batchUpdate">
  205. <foreach collection="useActivityUserMappers" item="entity" separator=";">
  206. UPDATE activity_user_mapper
  207. <set>
  208. <if test="entity.subNoCoursePrice != null">
  209. sub_no_course_price_ = #{entity.subNoCoursePrice},
  210. </if>
  211. <if test="entity.subCourseNum != null">
  212. sub_course_num_ = #{entity.subCourseNum},
  213. </if>
  214. <if test="entity.subGiveCourseNum != null">
  215. sub_give_course_num_ = #{entity.subGiveCourseNum},
  216. </if>
  217. <if test="entity.vipGroupId != null">
  218. vip_group_id_ = #{entity.vipGroupId},
  219. </if>
  220. <if test="entity.giveVipGroupId != null">
  221. give_vip_group_id_ = #{entity.giveVipGroupId},
  222. </if>
  223. <if test="entity.practiceGroupId != null">
  224. practice_group_id_ = #{entity.practiceGroupId},
  225. </if>
  226. <if test="entity.givePracticeGroupId != null">
  227. give_practice_group_id_ = #{entity.givePracticeGroupId},
  228. </if>
  229. <if test="entity.givePracticeFlag != null">
  230. give_practice_flag_ = #{entity.givePracticeFlag},
  231. </if>
  232. <if test="entity.giveVipFlag != null">
  233. give_vip_flag_ = #{entity.giveVipFlag},
  234. </if>
  235. <if test="entity.vipFlag != null">
  236. vip_flag_ = #{entity.vipFlag},
  237. </if>
  238. <if test="entity.practiceFlag != null">
  239. practice_flag_ = #{entity.practiceFlag},
  240. </if>
  241. update_time_ = NOW()
  242. </set>WHERE id_ = #{entity.id}
  243. </foreach>
  244. </update>
  245. <update id="batchUpdateFree">
  246. <foreach collection="useActivityUserMappers" item="entity" separator=";">
  247. UPDATE activity_user_mapper
  248. <set>
  249. <if test="entity.subGiveCourseNum != null">
  250. sub_give_course_num_ = #{entity.subGiveCourseNum},
  251. </if>
  252. <if test="entity.giveVipGroupId != null">
  253. give_vip_group_id_ = #{entity.giveVipGroupId},
  254. </if>
  255. <if test="entity.givePracticeGroupId != null">
  256. give_practice_group_id_ = #{entity.givePracticeGroupId},
  257. </if>
  258. <if test="entity.givePracticeFlag != null">
  259. give_practice_flag_ = #{entity.givePracticeFlag},
  260. </if>
  261. <if test="entity.giveVipFlag != null">
  262. give_vip_flag_ = #{entity.giveVipFlag},
  263. </if>
  264. update_time_ = NOW()
  265. </set>WHERE id_ = #{entity.id}
  266. </foreach>
  267. </update>
  268. <!-- 根据主键删除一条记录 -->
  269. <delete id="delete" >
  270. DELETE FROM activity_user_mapper WHERE id_ = #{id}
  271. </delete>
  272. <!-- 分页查询 -->
  273. <select id="queryPage" resultMap="ActivityUserMapper" parameterType="map">
  274. SELECT * FROM activity_user_mapper where tenant_id_ = #{tenantId}
  275. <if test="userId != null">
  276. AND user_id_ = #{userId}
  277. </if>
  278. <if test="activityId != null">
  279. AND activity_id_ = #{activityId}
  280. </if>
  281. ORDER BY id_ DESC
  282. <include refid="global.limit"/>
  283. </select>
  284. <!-- 查询当前表的总记录数 -->
  285. <select id="queryCount" resultType="int">
  286. SELECT COUNT(*) FROM activity_user_mapper where tenant_id_ = #{tenantId}
  287. <if test="userId != null">
  288. AND user_id_ = #{userId}
  289. </if>
  290. <if test="activityId != null">
  291. AND activity_id_ = #{activityId}
  292. </if>
  293. </select>
  294. <select id="findByStudentIdList" resultMap="ActivityUserMapper">
  295. SELECT * FROM activity_user_mapper
  296. WHERE return_fee_ = 0 AND FIND_IN_SET(user_id_,#{studentIds})
  297. <if test="activityId != null">
  298. AND activity_id_ = #{activityId}
  299. </if>
  300. <if test="type == 'GIVE_VIP'">
  301. AND give_vip_flag_ = 1
  302. </if>
  303. <if test="type == 'GIVE_PRACTICE'">
  304. AND give_practice_flag_ = 1
  305. </if>
  306. <if test="type == 'VIP'">
  307. AND vip_flag_ = 1
  308. </if>
  309. <if test="type == 'PRACTICE'">
  310. AND practice_flag_ = 1
  311. </if>
  312. GROUP BY user_id_
  313. </select>
  314. <select id="countActivityBuyNum" resultType="java.lang.Integer">
  315. SELECT count(id_) FROM activity_user_mapper
  316. WHERE activity_id_ = #{activityId} AND user_id_ = #{userId}
  317. </select>
  318. <select id="findVipUserMapper" resultMap="ActivityUserMapper">
  319. SELECT * FROM activity_user_mapper
  320. WHERE 1 = 1
  321. <if test="groupType == 'VIP'">
  322. AND (vip_group_id_ = #{groupId} OR give_vip_group_id_ = #{groupId})
  323. </if>
  324. <if test="groupType == 'PRACTICE'">
  325. AND (practice_group_id_ = #{groupId} OR give_practice_group_id_ = #{groupId})
  326. </if>
  327. <if test="studentId != null">
  328. AND user_id_ = #{studentId}
  329. </if>
  330. LIMIT 1
  331. </select>
  332. <select id="countActivityUserMapper" resultType="java.lang.Integer">
  333. SELECT COUNT(DISTINCT aum.user_id_)
  334. FROM activity_user_mapper aum
  335. LEFT JOIN sys_user su ON su.id_ = aum.user_id_
  336. LEFT JOIN organization o ON o.id_ = su.organ_id_
  337. WHERE aum.return_fee_ = 0 AND aum.activity_id_ = #{activityId}
  338. <if test="search != null and search != ''">
  339. AND (aum.user_id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
  340. </if>
  341. <if test="organId != null and organId != ''">
  342. AND FIND_IN_SET(su.organ_id_,#{organId})
  343. </if>
  344. </select>
  345. <resultMap id="ActivityStudentDto" type="com.ym.mec.biz.dal.dto.ActivityStudentDto">
  346. <result property="userId" column="user_id_"/>
  347. <result property="username" column="username_"/>
  348. <result property="organName" column="name_"/>
  349. <result property="phone" column="phone_"/>
  350. <result property="totalCourseNum" column="total_course_num_"/>
  351. <result property="subCourseNum" column="sub_course_num_"/>
  352. <result property="totalGiveCourseNum" column="total_give_course_num_"/>
  353. <result property="subGiveCourseNum" column="sub_give_course_num_"/>
  354. </resultMap>
  355. <select id="queryActivityUserMapper" resultMap="ActivityStudentDto">
  356. SELECT o.name_,aum.user_id_,su.username_,su.phone_,
  357. SUM(aum.total_course_num_) total_course_num_,
  358. SUM(aum.sub_course_num_) sub_course_num_,
  359. SUM(aum.total_give_course_num_) total_give_course_num_,
  360. SUM(aum.sub_give_course_num_) sub_give_course_num_
  361. FROM activity_user_mapper aum
  362. LEFT JOIN sys_user su ON su.id_ = aum.user_id_
  363. LEFT JOIN organization o ON o.id_ = su.organ_id_
  364. WHERE aum.return_fee_ = 0 AND aum.activity_id_ = #{activityId}
  365. <if test="search != null and search != ''">
  366. AND (aum.user_id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
  367. </if>
  368. <if test="organId != null and organId != ''">
  369. AND FIND_IN_SET(su.organ_id_,#{organId})
  370. </if>
  371. GROUP BY aum.user_id_
  372. <include refid="global.limit"/>
  373. </select>
  374. <select id="getStudentNoMapperInfo" resultType="Integer">
  375. SELECT CASE WHEN aum.give_practice_flag_ = 1 THEN vga.give_course_num_ ELSE 0 END total_num_
  376. FROM activity_user_mapper aum
  377. LEFT JOIN vip_group_activity vga ON vga.id_ = aum.activity_id_
  378. WHERE aum.return_fee_ = 0 AND aum.user_id_ = #{userId} AND aum.activity_id_ = #{activityId}
  379. GROUP BY aum.user_id_
  380. </select>
  381. <select id="exportStudentSubCourse" resultType="com.ym.mec.biz.dal.dto.ExportStudentSubCourse">
  382. select
  383. t.user_id_ as userId,
  384. su.username_ as username,
  385. t.activity_id_ as activityId,
  386. o.name_ as organizationName,
  387. vga.name_ as activityName,
  388. sum(if(t.vip_flag_ = 1 || t.practice_flag_ = 1 ,1,0)) as subCourseNum,
  389. sum(if(t.give_vip_flag_ = 1 || t.give_practice_flag_ = 1,1,0)) as subGiveCourseNum
  390. from activity_user_mapper t
  391. left join vip_group_activity vga on t.activity_id_ = vga.id_
  392. left join sys_user su on t.user_id_ = su.id_
  393. left join organization o on su.organ_id_ = o.id_
  394. where t.tenant_id_ = #{tenantId} and t.return_fee_ = 0
  395. and (t.vip_flag_ = 1 or t.give_vip_flag_ = 1 or t.practice_flag_ = 1 or t.give_practice_flag_ = 1)
  396. <if test="organId != null">
  397. AND FIND_IN_SET(su.organ_id_,#{organId})
  398. </if>
  399. group by t.user_id_ , t.activity_id_
  400. </select>
  401. <resultMap id="CourseFormDto" type="com.ym.mec.biz.dal.dto.CourseFormDto">
  402. <result property="id" column="id_"/>
  403. <result property="name" column="name_"/>
  404. <result property="num" column="num_"/>
  405. <result property="studentNum" column="student_num_"/>
  406. </resultMap>
  407. <select id="queryWaitCourseCategory" resultMap="CourseFormDto">
  408. SELECT CASE WHEN vgc.id_ IS NULL THEN '网管课' ELSE vgc.name_ END name_,
  409. CASE WHEN vgc.id_ IS NULL THEN 0 ELSE vgc.id_ END id_,COUNT(DISTINCT aum.user_id_) num_,
  410. CASE WHEN vgc.id_ IS NULL THEN 1 ELSE vgc.student_num_ END student_num_
  411. FROM (select category_id_,user_id_,teacher_id_ from activity_user_mapper aum WHERE aum.sub_course_num_ > 0 AND aum.return_fee_ = 0
  412. UNION ALL
  413. select give_category_id_ category_id_,user_id_,teacher_id_ from activity_user_mapper aum
  414. WHERE aum.sub_give_course_num_ > 0 AND aum.return_fee_ = 0) aum
  415. LEFT JOIN vip_group_category vgc ON aum.category_id_ = vgc.id_
  416. <if test="organIds != null and organIds != ''">
  417. LEFT JOIN sys_user su ON su.id_ = aum.user_id_
  418. </if>
  419. <where>
  420. <if test="userId != null">
  421. AND aum.teacher_id_ = #{userId}
  422. </if>
  423. <if test="organIds != null and organIds != ''">
  424. AND FIND_IN_SET(su.organ_id_,#{organIds})
  425. </if>
  426. </where>
  427. GROUP BY vgc.id_
  428. </select>
  429. <resultMap id="ActivityUserDto" type="com.ym.mec.biz.dal.dto.ActivityUserDto">
  430. <result property="userId" column="user_id_"/>
  431. <result property="username" column="username_"/>
  432. <result property="phone" column="phone_"/>
  433. <result property="subjectName" column="subject_name_"/>
  434. <result property="subjectId" column="subject_id_"/>
  435. <result property="subCourseNum" column="sub_course_num_"/>
  436. </resultMap>
  437. <select id="queryActivityStudentList" resultMap="ActivityUserDto">
  438. SELECT aum.user_id_,su.avatar_,sj.id_ subject_id_,su.username_,su.phone_,sj.name_ subject_name_,SUM(aum.sub_course_num_) sub_course_num_
  439. FROM (SELECT aum.id_,aum.user_id_,aum.sub_course_num_,
  440. aum.single_course_time_,aum.teacher_id_ from activity_user_mapper aum
  441. WHERE aum.sub_course_num_ > 0 AND aum.return_fee_ = 0
  442. <if test="queryInfo.categoryId != null">
  443. AND aum.category_id_ = #{queryInfo.categoryId}
  444. </if>
  445. <if test="queryInfo.categoryId == null">
  446. AND aum.category_id_ IS NULL
  447. </if>
  448. UNION ALL
  449. SELECT aum.id_,aum.user_id_,aum.sub_give_course_num_ sub_course_num_,
  450. aum.give_single_course_time_ single_course_time_,aum.teacher_id_ from activity_user_mapper aum
  451. WHERE aum.sub_give_course_num_ > 0 AND aum.return_fee_ = 0
  452. <if test="queryInfo.categoryId != null">
  453. AND aum.give_category_id_ = #{queryInfo.categoryId}
  454. </if>
  455. <if test="queryInfo.categoryId == null">
  456. AND aum.give_category_id_ IS NULL
  457. </if>
  458. ) aum
  459. LEFT JOIN sys_user su ON su.id_ = aum.user_id_
  460. LEFT JOIN student s ON s.user_id_ = aum.user_id_
  461. LEFT JOIN subject sj ON sj.id_ = s.subject_id_list_
  462. <where>
  463. <if test="queryInfo.search != null and queryInfo.search != ''">
  464. AND (su.id_ = #{queryInfo.search}
  465. OR su.username_ LIKE CONCAT('%',#{queryInfo.search},'%')
  466. OR su.phone_ LIKE CONCAT('%',#{queryInfo.search},'%'))
  467. </if>
  468. <if test="queryInfo.singleCourseTime != null">
  469. AND aum.single_course_time_ = #{queryInfo.singleCourseTime}
  470. </if>
  471. <if test="queryInfo.organIds != null and queryInfo.organIds != ''">
  472. AND FIND_IN_SET(su.organ_id_,#{queryInfo.organIds})
  473. </if>
  474. <if test="queryInfo.subjectIds != null and queryInfo.subjectIds != ''">
  475. AND FIND_IN_SET(sj.id_,#{queryInfo.subjectIds})
  476. </if>
  477. <if test="queryInfo.teacherId != null">
  478. AND aum.teacher_id_ = #{queryInfo.teacherId}
  479. </if>
  480. <if test="queryInfo.studentIds != null and queryInfo.studentIds.size > 0">
  481. AND aum.user_id_ IN
  482. <foreach collection="queryInfo.studentIds" item="studentId" open="(" separator="," close=")">
  483. #{studentId}
  484. </foreach>
  485. </if>
  486. </where>
  487. GROUP BY aum.user_id_
  488. ORDER BY sj.id_ DESC,sub_course_num_ DESC
  489. </select>
  490. <select id="queryActivityCourseTimeList" resultType="java.lang.Integer">
  491. select distinct aum.single_course_time_ from activity_user_mapper aum
  492. left join sys_user su on su.id_ = aum.user_id_
  493. where aum.return_fee_ = 0 and aum.total_course_num_ > 0
  494. <if test="queryInfo.categoryId != null">
  495. AND aum.category_id_ = #{queryInfo.categoryId}
  496. </if>
  497. <if test="queryInfo.categoryId == null">
  498. AND aum.category_id_ IS NULL
  499. </if>
  500. <if test="queryInfo.teacherId != null">
  501. AND aum.teacher_id_ = #{queryInfo.teacherId}
  502. </if>
  503. <if test="queryInfo.organIds != null and queryInfo.organIds != ''">
  504. AND FIND_IN_SET(su.organ_id_,#{queryInfo.organIds})
  505. </if>
  506. union
  507. select distinct aum.give_single_course_time_ from activity_user_mapper aum
  508. left join sys_user su on su.id_ = aum.user_id_
  509. where aum.return_fee_ = 0 and aum.sub_give_course_num_ > 0
  510. <if test="queryInfo.categoryId != null">
  511. AND aum.give_category_id_ = #{queryInfo.categoryId}
  512. </if>
  513. <if test="queryInfo.categoryId == null">
  514. AND aum.give_category_id_ IS NULL
  515. </if>
  516. <if test="queryInfo.teacherId != null">
  517. AND aum.teacher_id_ = #{queryInfo.teacherId}
  518. </if>
  519. <if test="queryInfo.organIds != null and queryInfo.organIds != ''">
  520. AND FIND_IN_SET(su.organ_id_,#{queryInfo.organIds})
  521. </if>
  522. </select>
  523. <select id="findTotalByStudents" resultMap="ActivityUserMapper">
  524. select aum.id_, category_id_,user_id_,sub_course_num_,vip_group_id_, give_vip_group_id_, practice_group_id_,
  525. give_practice_group_id_,actual_price_,sub_no_course_price_
  526. from activity_user_mapper aum
  527. WHERE aum.user_id_ IN
  528. <foreach collection="dto.studentIdList" item="userId" open="(" separator="," close=")">
  529. #{userId}
  530. </foreach>
  531. and aum.single_course_time_ = #{dto.classMinutes} and return_fee_ = 0 and aum.sub_course_num_ > 0
  532. <if test="dto.categoryId != null">
  533. AND aum.category_id_ = #{dto.categoryId}
  534. </if>
  535. <if test="dto.categoryId == null">
  536. AND aum.category_id_ IS NULL
  537. </if>
  538. UNION ALL
  539. select aum.id_,give_category_id_ category_id_, user_id_,sub_give_course_num_ sub_course_num_,vip_group_id_, give_vip_group_id_, practice_group_id_, give_practice_group_id_,0 actual_price_,0 sub_no_course_price_
  540. from activity_user_mapper aum
  541. WHERE aum.user_id_ IN
  542. <foreach collection="dto.studentIdList" item="userId" open="(" separator="," close=")">
  543. #{userId}
  544. </foreach>
  545. and aum.give_single_course_time_ = #{dto.classMinutes} and return_fee_ = 0 and aum.sub_give_course_num_ > 0
  546. <if test="dto.categoryId != null">
  547. AND aum.give_category_id_ = #{dto.categoryId}
  548. </if>
  549. <if test="dto.categoryId == null">
  550. AND aum.give_category_id_ IS NULL
  551. </if>
  552. </select>
  553. <select id="findByStudents" resultMap="ActivityUserMapper">
  554. select * from activity_user_mapper aum
  555. WHERE aum.user_id_ IN
  556. <foreach collection="studentIdList" item="userId" open="(" separator="," close=")">
  557. #{userId}
  558. </foreach>
  559. and aum.single_course_time_ = #{classMinutes} and return_fee_ = 0 and aum.sub_course_num_ > 0
  560. <if test="categoryId != null">
  561. AND aum.category_id_ = #{categoryId}
  562. </if>
  563. <if test="categoryId == null">
  564. AND aum.category_id_ IS NULL
  565. </if>
  566. </select>
  567. <select id="findByStudents1" resultMap="ActivityUserMapper">
  568. select * from activity_user_mapper aum
  569. WHERE aum.user_id_ IN
  570. <foreach collection="studentIdList" item="userId" open="(" separator="," close=")">
  571. #{userId}
  572. </foreach>
  573. and aum.give_single_course_time_ = #{classMinutes} and return_fee_ = 0 and aum.sub_give_course_num_ > 0
  574. <if test="categoryId != null">
  575. AND aum.give_category_id_ = #{categoryId}
  576. </if>
  577. <if test="categoryId == null">
  578. AND aum.give_category_id_ IS NULL
  579. </if>
  580. </select>
  581. <select id="findByIds" resultMap="ActivityUserMapper">
  582. SELECT * FROM activity_user_mapper aum WHERE FIND_IN_SET(aum.id_,#{activityUserMapperIds})
  583. </select>
  584. <resultMap id="ActivityUserMapperDetailDto" type="com.ym.mec.biz.dal.dto.ActivityUserMapperDetailDto">
  585. <result property="activityId" column="activity_id_"/>
  586. <result property="addMemo" column="add_memo_"/>
  587. <result property="subCourseNum" column="sub_course_num_"/>
  588. <result property="totalCourseNum" column="total_course_num_"/>
  589. <result property="createTime" column="create_time_"/>
  590. <result property="freeFlag" column="free_flag_"/>
  591. <result property="subCoursePrice" column="sub_no_course_price_"/>
  592. <result property="categoryName" column="name_"/>
  593. </resultMap>
  594. <select id="queryDetailPage" resultMap="ActivityUserMapperDetailDto">
  595. select aum.id_,aum.activity_id_,aum.add_memo_,vga.name_,aum.sub_course_num_,aum.total_course_num_,
  596. aum.create_time_,false free_flag_,aum.sub_no_course_price_ from activity_user_mapper aum
  597. left join vip_group_category vga ON vga.id_ = aum.category_id_
  598. where (aum.vip_flag_ > 0 OR aum.practice_flag_ > 0) AND aum.return_fee_ = 0
  599. <include refid="countDetailPageSql"/>
  600. UNION ALL
  601. select aum.id_,aum.activity_id_,aum.add_memo_,vga.name_,aum.sub_give_course_num_ sub_course_num_,
  602. aum.total_give_course_num_ total_course_num_,aum.create_time_,true free_flag_,0 sub_no_course_price_ from activity_user_mapper aum
  603. left join vip_group_category vga ON vga.id_ = aum.give_category_id_
  604. where (aum.give_vip_flag_ > 0 OR aum.give_practice_flag_ > 0) AND aum.return_fee_ = 0
  605. <include refid="countDetailPageSql"/>
  606. order by id_ DESC
  607. <include refid="global.limit"/>
  608. </select>
  609. <select id="countDetailPage" resultType="java.lang.Integer">
  610. select COUNT(aum.id_) from (select aum.id_ from activity_user_mapper aum
  611. where (aum.vip_flag_ > 0 OR aum.practice_flag_ > 0) AND aum.return_fee_ = 0
  612. <include refid="countDetailPageSql"/>
  613. UNION ALL
  614. select aum.id_ from activity_user_mapper aum
  615. where (aum.give_vip_flag_ > 0 OR aum.give_practice_flag_ > 0) AND aum.return_fee_ = 0
  616. <include refid="countDetailPageSql"/>
  617. ) aum
  618. </select>
  619. <sql id="countDetailPageSql">
  620. <if test="search != null and search != ''">
  621. AND (aum.activity_id_ = #{search} OR aum.add_memo_ LIKE CONCAT('%',#{search},'%'))
  622. </if>
  623. <if test="userId != null">
  624. AND aum.user_id_ = #{userId}
  625. </if>
  626. </sql>
  627. <resultMap id="ActivityUserMapperSumDto" type="com.ym.mec.biz.dal.dto.ActivityUserMapperSumDto">
  628. <result property="organId" column="organ_id_"/>
  629. <result property="userId" column="user_id_"/>
  630. <result property="username" column="username_"/>
  631. <result property="phone" column="phone_"/>
  632. <result property="one" column="one"/>
  633. <result property="two" column="two"/>
  634. <result property="three" column="three"/>
  635. <result property="four" column="four"/>
  636. <result property="five" column="five"/>
  637. <result property="six" column="six"/>
  638. <result property="seven" column="seven"/>
  639. <result property="theory" column="theory"/>
  640. <result property="practice" column="practice"/>
  641. </resultMap>
  642. <sql id="querySumPageSql">
  643. <where>
  644. <if test="organId != null and organId != ''">
  645. AND FIND_IN_SET(su.organ_id_,#{organId})
  646. </if>
  647. <if test="search != null and search != ''">
  648. AND (su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%') OR su.id_ = #{search})
  649. </if>
  650. </where>
  651. </sql>
  652. <select id="countSumPage" resultType="java.lang.Integer">
  653. select COUNT(DISTINCT aum.user_id_)
  654. from (select aum.user_id_,aum.category_id_,aum.sub_course_num_,aum.total_course_num_
  655. from activity_user_mapper aum
  656. left join vip_group_category vgc ON vgc.id_ = aum.category_id_
  657. where aum.return_fee_ = 0 and aum.total_course_num_ > 0
  658. UNION ALL
  659. select aum.user_id_,aum.give_category_id_ category_id_,aum.sub_give_course_num_,aum.total_give_course_num_
  660. from activity_user_mapper aum
  661. left join vip_group_category vgc ON vgc.id_ = aum.category_id_
  662. where aum.return_fee_ = 0 and aum.total_give_course_num_ > 0) aum
  663. left join sys_user su ON su.id_ = aum.user_id_
  664. <include refid="querySumPageSql"/>
  665. </select>
  666. <select id="querySumPage" resultType="com.ym.mec.biz.dal.dto.ActivityUserMapperSumDto">
  667. select aum.user_id_,su.organ_id_,su.username_,su.phone_,
  668. CONCAT(SUM(CASE WHEN vgc.name_ = '1v1' THEN aum.total_course_num_ - aum.sub_course_num_ ELSE 0 END) ,'/',SUM(CASE WHEN vgc.name_ = '1v1' THEN aum.total_course_num_ ELSE 0 END)) 'one',
  669. CONCAT(SUM(CASE WHEN vgc.name_ = '1v2' THEN aum.total_course_num_ - aum.sub_course_num_ ELSE 0 END) ,'/',SUM(CASE WHEN vgc.name_ = '1v2' THEN aum.total_course_num_ ELSE 0 END)) 'two',
  670. CONCAT(SUM(CASE WHEN vgc.name_ = '1v3' THEN aum.total_course_num_ - aum.sub_course_num_ ELSE 0 END) ,'/',SUM(CASE WHEN vgc.name_ = '1v3' THEN aum.total_course_num_ ELSE 0 END)) 'three',
  671. CONCAT(SUM(CASE WHEN vgc.name_ = '1v4' THEN aum.total_course_num_ - aum.sub_course_num_ ELSE 0 END) ,'/',SUM(CASE WHEN vgc.name_ = '1v4' THEN aum.total_course_num_ ELSE 0 END)) 'four',
  672. CONCAT(SUM(CASE WHEN vgc.name_ = '1v5' THEN aum.total_course_num_ - aum.sub_course_num_ ELSE 0 END) ,'/',SUM(CASE WHEN vgc.name_ = '1v5' THEN aum.total_course_num_ ELSE 0 END)) 'five',
  673. CONCAT(SUM(CASE WHEN vgc.name_ = '1v6' THEN aum.total_course_num_ - aum.sub_course_num_ ELSE 0 END) ,'/',SUM(CASE WHEN vgc.name_ = '1v6' THEN aum.total_course_num_ ELSE 0 END)) 'six',
  674. CONCAT(SUM(CASE WHEN vgc.name_ = '1v7' THEN aum.total_course_num_ - aum.sub_course_num_ ELSE 0 END) ,'/',SUM(CASE WHEN vgc.name_ = '1v7' THEN aum.total_course_num_ ELSE 0 END)) 'seven',
  675. CONCAT(SUM(CASE WHEN vgc.name_ = '乐理课' THEN aum.total_course_num_ - aum.sub_course_num_ ELSE 0 END) ,'/',SUM(CASE WHEN vgc.name_ = '乐理课' THEN aum.total_course_num_ ELSE 0 END)) 'theory',
  676. CONCAT(SUM(CASE WHEN vgc.name_ IS NULL THEN aum.total_course_num_ - aum.sub_course_num_ ELSE 0 END) ,'/',SUM(CASE WHEN vgc.name_ IS NULL THEN aum.total_course_num_ ELSE 0 END)) 'practice'
  677. from (select aum.user_id_,aum.category_id_,aum.sub_course_num_,aum.total_course_num_
  678. from activity_user_mapper aum
  679. left join vip_group_category vgc ON vgc.id_ = aum.category_id_
  680. where aum.return_fee_ = 0 and aum.total_course_num_ > 0
  681. UNION ALL
  682. select aum.user_id_,aum.give_category_id_ category_id_,aum.sub_give_course_num_,aum.total_give_course_num_
  683. from activity_user_mapper aum
  684. left join vip_group_category vgc ON vgc.id_ = aum.category_id_
  685. where aum.return_fee_ = 0 and aum.total_give_course_num_ > 0) aum
  686. left join vip_group_category vgc ON vgc.id_ = aum.category_id_
  687. left join sys_user su ON su.id_ = aum.user_id_
  688. <include refid="querySumPageSql"/>
  689. group by aum.user_id_
  690. <include refid="global.limit"/>
  691. </select>
  692. </mapper>