CloudTeacherOrderMapper.xml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  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.ym.mec.biz.dal.dao.CloudTeacherOrderDao">
  4. <resultMap id="CloudTeacherOrder" type="com.ym.mec.biz.dal.entity.CloudTeacherOrder">
  5. <!--@mbg.generated-->
  6. <!--@Table cloud_teacher_order-->
  7. <id column="id_" property="id"/>
  8. <result column="organ_id_" property="organId"/>
  9. <result column="student_id_" property="studentId"/>
  10. <result column="type_" property="type"/>
  11. <result column="level_" property="level"/>
  12. <result column="time_" property="time"/>
  13. <result column="amount_" property="amount"/>
  14. <result column="refund_amount_" property="refundAmount"/>
  15. <result column="status_" property="status"/>
  16. <result column="start_time_" property="startTime"/>
  17. <result column="end_time_" property="endTime"/>
  18. <result column="order_id_" property="orderId"/>
  19. <result column="remark_" property="remark"/>
  20. <result column="active_remark_" property="activeRemark"/>
  21. <result column="version_" property="version"/>
  22. <result column="create_time_" property="createTime"/>
  23. <result column="update_time_" property="updateTime"/>
  24. <result column="music_group_id_" property="musicGroupId"/>
  25. <result column="tenant_id_" property="tenantId" />
  26. </resultMap>
  27. <resultMap type="com.ym.mec.biz.dal.dto.CloudTeacherOrderDto" id="CloudTeacherOrderDto">
  28. <id column="id_" property="cloudTeacherOrder.id"/>
  29. <result column="organ_id_" property="cloudTeacherOrder.organId"/>
  30. <result column="student_id_" property="cloudTeacherOrder.studentId"/>
  31. <result column="type_" property="cloudTeacherOrder.type"/>
  32. <result column="level_" property="cloudTeacherOrder.level"/>
  33. <result column="time_" property="cloudTeacherOrder.time"/>
  34. <result column="amount_" property="cloudTeacherOrder.amount"/>
  35. <result column="refund_amount_" property="cloudTeacherOrder.refundAmount"/>
  36. <result column="status_" property="cloudTeacherOrder.status"/>
  37. <result column="start_time_" property="cloudTeacherOrder.startTime"/>
  38. <result column="end_time_" property="cloudTeacherOrder.endTime"/>
  39. <result column="order_id_" property="cloudTeacherOrder.orderId"/>
  40. <result column="trans_status_" property="studentPaymentOrder.status"/>
  41. <result column="expect_amount_" property="studentPaymentOrder.expectAmount"/>
  42. <result column="pay_time_" property="studentPaymentOrder.payTime"/>
  43. <result column="order_create_time_" property="studentPaymentOrder.createTime"/>
  44. <result column="name_" property="memberRankSetting.name"/>
  45. <result column="icon_" property="memberRankSetting.icon"/>
  46. <result column="music_group_id_" property="studentPaymentOrder.musicGroupId"/>
  47. </resultMap>
  48. <select id="get" resultMap="CloudTeacherOrder">
  49. <!--@mbg.generated-->
  50. select * from cloud_teacher_order where id_ = #{id}
  51. </select>
  52. <delete id="delete">
  53. <!--@mbg.generated-->
  54. delete from cloud_teacher_order
  55. where id_ = #{id}
  56. </delete>
  57. <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.CloudTeacherOrder"
  58. useGeneratedKeys="true">
  59. <!--@mbg.generated-->
  60. insert into cloud_teacher_order (organ_id_,student_id_, type_, level_, time_, amount_, refund_amount_, status_,
  61. order_id_,start_time_,end_time_,remark_, create_time_, update_time_,music_group_id_,active_remark_,tenant_id_)
  62. values (#{organId},#{studentId}, #{type},#{level}, #{time}, #{amount}, #{refundAmount},
  63. #{status},#{orderId},#{startTime},#{endTime}, #{remark}, NOW(), NOW(),#{musicGroupId},#{activeRemark},#{tenantId})
  64. </insert>
  65. <update id="update" parameterType="com.ym.mec.biz.dal.entity.CloudTeacherOrder">
  66. <!--@mbg.generated-->
  67. update cloud_teacher_order
  68. <set>
  69. <if test="activeRemark != null">
  70. active_remark_ = #{activeRemark},
  71. </if>
  72. <if test="musicGroupId != null">
  73. music_group_id_ = #{musicGroupId},
  74. </if>
  75. <if test="organId != null">
  76. organ_id_ = #{organId},
  77. </if>
  78. <if test="studentId != null">
  79. student_id_ = #{studentId},
  80. </if>
  81. <if test="type != null">
  82. type_ = #{type},
  83. </if>
  84. <if test="level != null">
  85. level_ = #{level},
  86. </if>
  87. <if test="time != null">
  88. time_ = #{time},
  89. </if>
  90. <if test="amount != null">
  91. amount_ = #{amount},
  92. </if>
  93. <if test="refundAmount != null">
  94. refund_amount_ = #{refundAmount},
  95. </if>
  96. <if test="status != null">
  97. status_ = #{status},
  98. </if>
  99. <if test="startTime != null">
  100. start_time_ = #{startTime},
  101. </if>
  102. <if test="endTime != null">
  103. end_time_ = #{endTime},
  104. </if>
  105. <if test="orderId != null">
  106. order_id_ = #{orderId},
  107. </if>
  108. <if test="remark != null">
  109. remark_ = #{remark},
  110. </if>
  111. version_ = version_+1,
  112. update_time_ = NOW(),
  113. </set>
  114. where id_ = #{id} AND version_ = #{version} and tenant_id_ = #{tenantId}
  115. </update>
  116. <!-- 全查询 -->
  117. <select id="findAll" resultMap="CloudTeacherOrder">
  118. SELECT *
  119. FROM cloud_teacher_order where tenant_id_ = #{tenantId}
  120. </select>
  121. <!-- 分页查询 -->
  122. <select id="queryPage" resultMap="CloudTeacherOrderDto" parameterType="map">
  123. SELECT cto.*,spo.status_ trans_status_,spo.expect_amount_,spo.pay_time_,spo.create_time_ order_create_time_,mrs.name_,mrs.icon_ FROM cloud_teacher_order cto
  124. left join student_payment_order spo on cto.order_id_ = spo.id_
  125. left join member_rank_setting mrs on mrs.id_ = cto.level_
  126. where spo.type_ = 'MEMBER'
  127. <if test="status != null">
  128. and cto.status_ = #{status}
  129. </if>
  130. <if test="studentId != null">
  131. and cto.student_id_ = #{studentId}
  132. </if>
  133. <if test="tenantId != null">
  134. and cto.tenant_id_ = #{tenantId}
  135. </if>
  136. order by spo.pay_time_ desc,spo.id_ desc
  137. <include refid="global.limit"/>
  138. </select>
  139. <!-- 查询当前表的总记录数 -->
  140. <select id="queryCount" resultType="int">
  141. SELECT COUNT(cto.id_)
  142. FROM cloud_teacher_order cto LEFT JOIN student_payment_order spo on cto.order_id_ = spo.id_
  143. where spo.type_ = 'MEMBER'
  144. <if test="status != null">
  145. and cto.status_ = #{status}
  146. </if>
  147. <if test="studentId != null">
  148. and cto.student_id_ = #{studentId}
  149. </if>
  150. <if test="tenantId != null">
  151. and cto.tenant_id_ = #{tenantId}
  152. </if>
  153. order by cto.create_time_ desc
  154. </select>
  155. <select id="getNoStartCloudTeacherOrder" resultMap="CloudTeacherOrder">
  156. SELECT cto.*
  157. FROM cloud_teacher_order cto
  158. WHERE cto.status_ = 1 and cto.tenant_id_ = #{tenantId}
  159. </select>
  160. <select id="getStudentCloudTeacherOrders" resultMap="CloudTeacherOrder">
  161. SELECT *
  162. FROM cloud_teacher_order
  163. WHERE order_id_ IN (
  164. SELECT id_
  165. FROM student_payment_order
  166. WHERE status_ = 'SUCCESS'
  167. AND user_id_ IN
  168. <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
  169. #{studentId}
  170. </foreach>
  171. GROUP BY user_id_
  172. )
  173. AND student_id_ IN
  174. <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
  175. #{studentId}
  176. </foreach>
  177. AND status_ IN (1,2)
  178. </select>
  179. <select id="getStudentCloudTeacherOrder" resultMap="CloudTeacherOrder">
  180. SELECT *
  181. FROM cloud_teacher_order
  182. WHERE student_id_ = #{studentId}
  183. <if test="musicGroupId != null and musicGroupId != ''">
  184. AND music_group_id_ = #{musicGroupId}
  185. </if>
  186. AND status_ IN (1, 2)
  187. </select>
  188. <select id="queryByOrderId" resultMap="CloudTeacherOrder">
  189. SELECT cto.* FROM cloud_teacher_order cto
  190. WHERE order_id_ = #{orderId}
  191. </select>
  192. <select id="queryOrderInfoByOrderId" resultMap="CloudTeacherOrderDto">
  193. SELECT cto.*,spo.status_ trans_status_,spo.expect_amount_,mrs.name_,mrs.icon_ FROM cloud_teacher_order cto
  194. left join student_payment_order spo on cto.order_id_ = spo.id_
  195. left join member_rank_setting mrs on mrs.id_ = cto.level_
  196. where spo.type_ = 'MEMBER' and order_id_ = #{orderId}
  197. </select>
  198. <select id="queryNoStartByUserIds" resultType="java.util.Map">
  199. SELECT student_id_ 'key',create_time_ 'value' FROM cloud_teacher_order
  200. WHERE status_ = 1
  201. <if test="userIds != null and userIds.size > 0">
  202. AND student_id_ IN
  203. <foreach collection="userIds" separator="," item="userId" open="(" close=")">
  204. #{userId}
  205. </foreach>
  206. </if>
  207. <if test="isMusicMember = 'true'">
  208. AND music_group_id_ IS NOT NULL
  209. </if>
  210. GROUP BY student_id_
  211. </select>
  212. <resultMap id="CloudTeacherActiveTargetDetailDto" type="com.ym.mec.biz.dal.dto.CloudTeacherActiveTargetDetailDto">
  213. <result property="userId" column="student_id_"/>
  214. <result property="username" column="username_"/>
  215. <result property="amount" column="amount_"/>
  216. <result property="remark" column="remark_"/>
  217. <result property="cooperationName" column="cooperation_name_"/>
  218. <result property="musicGroupName" column="music_group_name_"/>
  219. <result property="chargeType" column="charge_type_name_"/>
  220. <result property="subjectName" column="subject_name_"/>
  221. <result property="currentGradeNum" column="current_grade_num_"/>
  222. <result property="teacherName" column="teacher_name_"/>
  223. <result property="createTime" column="create_time_"/>
  224. </resultMap>
  225. <select id="queryCloudTeacherActiveDetail" resultMap="CloudTeacherActiveTargetDetailDto">
  226. SELECT su.username_,cto.remark_,cto.amount_,cto.student_id_,GROUP_CONCAT(DISTINCT co.name_) cooperation_name_,
  227. GROUP_CONCAT(DISTINCT mg.name_) music_group_name_,GROUP_CONCAT(DISTINCT ct.name_) charge_type_name_,
  228. sj.name_ subject_name_,st.current_grade_num_,sus.real_name_ teacher_name_,cto.create_time_
  229. FROM cloud_teacher_order cto
  230. LEFT JOIN sys_user su ON su.id_ = cto.student_id_
  231. LEFT JOIN student_registration sr ON sr.user_id_ = cto.student_id_ AND sr.music_group_status_ = 'NORMAL'
  232. LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_ AND mg.status_ = 'PROGRESS'
  233. LEFT JOIN cooperation_organ co ON co.id_ = mg.cooperation_organ_id_
  234. LEFT JOIN charge_type ct ON ct.id_ = mg.charge_type_id_
  235. LEFT JOIN student st ON st.user_id_ = cto.student_id_
  236. LEFT JOIN sys_user sus ON sus.id_ = st.teacher_id_
  237. LEFT JOIN `subject` sj ON sj.id_ = st.subject_id_list_
  238. <include refid="queryCloudTeacherActiveDetailSql"/>
  239. GROUP BY cto.id_
  240. ORDER BY cto.id_ DESC
  241. <include refid="global.limit"/>
  242. </select>
  243. <select id="countCloudTeacherActiveDetail" resultType="int">
  244. SELECT COUNT(DISTINCT cto.id_)
  245. FROM cloud_teacher_order cto
  246. LEFT JOIN sys_user su ON su.id_ = cto.student_id_
  247. LEFT JOIN student st ON st.user_id_ = cto.student_id_
  248. LEFT JOIN student_registration sr ON sr.user_id_ = cto.student_id_ AND sr.music_group_status_ = 'NORMAL'
  249. LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_ AND mg.status_ = 'PROGRESS'
  250. <include refid="queryCloudTeacherActiveDetailSql"/>
  251. </select>
  252. <select id="queryActiveOrderPage" resultType="string">
  253. SELECT GROUP_CONCAT(DISTINCT cto.remark_) FROM cloud_teacher_order cto
  254. LEFT JOIN student_payment_order spo ON spo.id_ = cto.order_id_
  255. WHERE spo.status_ = 'SUCCESS' AND cto.active_remark_ = #{activeRemark}
  256. AND cto.student_id_ = #{userId} AND cto.remark_ != '单月'
  257. <if test="remark != null and remark != ''">
  258. AND cto.remark_ = #{remark}
  259. </if>
  260. </select>
  261. <select id="getStudentIds" resultType="java.lang.Integer">
  262. SELECT DISTINCT student_id_ FROM cloud_teacher_order WHERE active_remark_ IS NULL AND status_ != 0 and tenant_id_ = #{tenantId}
  263. </select>
  264. <select id="queryActiveAmountMap" resultType="java.util.Map">
  265. SELECT student_id_ 'key',SUM(amount_) 'value' FROM cloud_teacher_order
  266. WHERE status_ != 0 AND active_remark_ = '202109'
  267. <if test="studentIds != null and studentIds.size > 0">
  268. AND student_id_ IN
  269. <foreach collection="studentIds" separator="," item="userId" open="(" close=")">
  270. #{userId}
  271. </foreach>
  272. </if>
  273. GROUP BY student_id_
  274. </select>
  275. <sql id="queryCloudTeacherActiveDetailSql">
  276. <where>
  277. cto.status_ != 0 AND cto.active_remark_ = '202109'
  278. <if test="organIds != null and organIds != ''">
  279. AND FIND_IN_SET(su.organ_id_,#{organIds})
  280. </if>
  281. <if test="search != null and search != ''">
  282. AND (su.id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR mg.id_ LIKE CONCAT('%',#{search},'%'))
  283. </if>
  284. <if test="chargeType != null">
  285. AND mg.charge_type_id_ = #{chargeType}
  286. </if>
  287. <if test="subjectId != null">
  288. AND st.subject_id_list_ = #{subjectId}
  289. </if>
  290. <if test="teacherId != null">
  291. AND st.teacher_id_ = #{teacherId}
  292. </if>
  293. <if test="tenantId != null">
  294. AND cto.tenant_id_ = #{tenantId}
  295. </if>
  296. <if test="remarkType != null and remarkType != ''">
  297. AND cto.remark_ = #{remarkType}
  298. </if>
  299. </where>
  300. </sql>
  301. </mapper>