SubjectChangeMapper.xml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  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.SubjectChangeDao">
  4. <resultMap id="SubjectChange" type="com.ym.mec.biz.dal.entity.SubjectChange">
  5. <!--@mbg.generated-->
  6. <!--@Table subject_change-->
  7. <id column="id_" property="id"/>
  8. <result column="edu_teacher_id_" property="eduTeacherId"/>
  9. <result column="eduTeacher" property="eduTeacher"/>
  10. <result column="student_id_" property="studentId"/>
  11. <result column="studentName" property="studentName"/>
  12. <result column="organ_id_" property="organId"/>
  13. <result column="organName" property="organName"/>
  14. <result column="cooperation_organ_id_" property="cooperationOrganId"/>
  15. <result column="cooperationOrganName" property="cooperationOrganName"/>
  16. <result column="music_group_id_" property="musicGroupId"/>
  17. <result column="musicGroupName" property="musicGroupName"/>
  18. <result column="original_order_id_" property="originalOrderId"/>
  19. <result column="original_subject_id_" property="originalSubjectId"/>
  20. <result column="original_course_fee_" property="originalCourseFee"/>
  21. <result column="original_musical_" property="originalMusical"/>
  22. <result column="original_musical_price_" property="originalMusicalPrice"/>
  23. <result column="original_accessories_" property="originalAccessories"/>
  24. <result column="original_accessories_price_" property="originalAccessoriesPrice"/>
  25. <result column="original_cost_" property="originalCost"/>
  26. <result column="original_kit_group_purchase_type_" property="originalKitGroupPurchaseType"
  27. typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  28. <result column="kit_group_purchase_type_" property="kitGroupPurchaseType"
  29. typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  30. <result column="change_subject_id_" property="changeSubjectId"/>
  31. <result column="change_course_fee_" property="changeCourseFee"/>
  32. <result column="change_musical_" property="changeMusical"/>
  33. <result column="change_musical_price_" property="changeMusicalPrice"/>
  34. <result column="change_accessories_" property="changeAccessories"/>
  35. <result column="change_accessories_price_" property="changeAccessoriesPrice"/>
  36. <result column="change_cost_" property="changeCost"/>
  37. <result column="goods_margin_" property="goodsMargin"/>
  38. <result column="course_margin_" property="courseMargin"/>
  39. <result column="cost_margin_" property="costMargin"/>
  40. <result column="sell_amount_" property="sellAmount"/>
  41. <result column="order_id_" property="orderId"/>
  42. <result column="order_no_" property="orderNo"/>
  43. <result column="trans_no_" property="transNo"/>
  44. <result column="payment_channel_" property="paymentChannel"/>
  45. <result column="mer_no_" property="merNo"/>
  46. <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  47. <result column="sell_time_" property="sellTime"/>
  48. <result column="create_time_" property="createTime"/>
  49. <result column="update_time" property="updateTime"/>
  50. <result column="version_" property="version"/>
  51. </resultMap>
  52. <sql id="Base_Column_List">
  53. <!--@mbg.generated-->
  54. id_,edu_teacher_id_,student_id_,organ_id_,cooperation_organ_id_,
  55. music_group_id_,original_order_id_,original_subject_id_,original_course_fee_, original_musical_,
  56. original_musical_price_,
  57. original_accessories_,original_accessories_price_,original_kit_group_purchase_type_,kit_group_purchase_type_,change_subject_id_,
  58. change_course_fee_, change_musical_,
  59. original_cost_,change_musical_price_,change_accessories_, change_accessories_price_,change_cost_, goods_margin_,
  60. course_margin_,cost_margin_,sell_amount_,order_id_,order_no_,trans_no_,
  61. status_,payment_channel_,mer_no_,sell_time_,create_time_,
  62. update_time,version_
  63. </sql>
  64. <select id="get" parameterType="java.lang.Integer" resultMap="SubjectChange">
  65. <!--@mbg.generated-->
  66. select
  67. <include refid="Base_Column_List"/>
  68. from subject_change
  69. where id_ = #{id}
  70. </select>
  71. <delete id="delete" parameterType="java.lang.Integer">
  72. <!--@mbg.generated-->
  73. delete from subject_change
  74. where id_ = #{id}
  75. </delete>
  76. <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.SubjectChange"
  77. useGeneratedKeys="true">
  78. <!--@mbg.generated-->
  79. insert into subject_change
  80. (student_id_,edu_teacher_id_,organ_id_,cooperation_organ_id_,music_group_id_,original_order_id_,original_subject_id_,original_course_fee_,
  81. original_musical_,
  82. original_musical_price_,original_accessories_,original_accessories_price_,original_cost_,original_kit_group_purchase_type_,kit_group_purchase_type_,
  83. change_subject_id_,change_course_fee_, change_musical_, change_musical_price_,
  84. change_accessories_, change_accessories_price_, change_cost_,goods_margin_,
  85. course_margin_,cost_margin_,sell_amount_,order_id_,
  86. order_no_,trans_no_,status_,sell_time_, create_time_, update_time,version_)
  87. values
  88. (#{studentId},#{eduTeacherId},#{organId},#{cooperationOrganId},#{musicGroupId},#{originalOrderId},#{originalSubjectId},#{originalCourseFee},
  89. #{originalMusical},
  90. #{originalMusicalPrice},
  91. #{originalAccessories},
  92. #{originalAccessoriesPrice},#{originalCost},#{originalKitGroupPurchaseType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  93. #{kitGroupPurchaseType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  94. #{changeSubjectId},#{changeCourseFee}, #{changeMusical},
  95. #{changeMusicalPrice}, #{changeAccessories}, #{changeAccessoriesPrice},#{changeCost}, #{goodsMargin},
  96. #{courseMargin},#{costMargin},
  97. #{sellAmount},#{orderId},#{orderNo},#{transNo},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{sellTime},
  98. #{createTime}, #{updateTime},#{version})
  99. </insert>
  100. <update id="update" parameterType="com.ym.mec.biz.dal.entity.SubjectChange">
  101. <!--@mbg.generated-->
  102. update subject_change
  103. <set>
  104. <if test="eduTeacherId !=null ">
  105. edu_teacher_id_ = #{eduTeacherId},
  106. </if>
  107. <if test="studentId != null">
  108. student_id_ = #{studentId},
  109. </if>
  110. <if test="organId != null">
  111. organ_id_ = #{organId},
  112. </if>
  113. <if test="musicGroupId != null">
  114. music_group_id_ = #{musicGroupId},
  115. </if>
  116. <if test="originalCourseFee != null">
  117. original_course_fee_ = #{originalCourseFee},
  118. </if>
  119. <if test="originalMusical != null">
  120. original_musical_ = #{originalMusical},
  121. </if>
  122. <if test="originalMusicalPrice != null">
  123. original_musical_price_ = #{originalMusicalPrice},
  124. </if>
  125. <if test="originalAccessories != null">
  126. original_accessories_ = #{originalAccessories},
  127. </if>
  128. <if test="originalAccessoriesPrice != null">
  129. original_accessories_price_ = #{originalAccessoriesPrice},
  130. </if>
  131. <if test="originalCost != null">
  132. original_cost_ = #{originalCost},
  133. </if>
  134. <if test="changeCourseFee != null">
  135. change_course_fee_ = #{changeCourseFee},
  136. </if>
  137. <if test="changeMusical != null">
  138. change_musical_ = #{changeMusical},
  139. </if>
  140. <if test="changeMusicalPrice != null">
  141. change_musical_price_ = #{changeMusicalPrice},
  142. </if>
  143. <if test="changeAccessories != null">
  144. change_accessories_ = #{changeAccessories},
  145. </if>
  146. <if test="changeAccessoriesPrice != null">
  147. change_accessories_price_ = #{changeAccessoriesPrice},
  148. </if>
  149. <if test="changeCost != null">
  150. change_cost_ = #{changeCost},
  151. </if>
  152. <if test="goodsMargin != null">
  153. goods_margin_ = #{goodsMargin},
  154. </if>
  155. <if test="courseMargin != null">
  156. course_margin_ = #{courseMargin},
  157. </if>
  158. <if test="costMargin != null">
  159. cost_margin_ = #{costMargin},
  160. </if>
  161. <if test="sellAmount != null">
  162. sell_amount_ = #{sellAmount},
  163. </if>
  164. <if test="orderId != null">
  165. order_id_ = #{orderId},
  166. </if>
  167. <if test="orderNo != null">
  168. order_no_ = #{orderNo},
  169. </if>
  170. <if test="transNo != null">
  171. trans_no_ = #{transNo},
  172. </if>
  173. <if test="status != null">
  174. status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  175. </if>
  176. <if test="paymentChannel != null">
  177. payment_channel_=#{paymentChannel},
  178. </if>
  179. <if test="merNo != null">
  180. mer_no_ = #{merNo},
  181. </if>
  182. <if test="sellTime != null">
  183. sell_time_ = #{sellTime},
  184. </if>
  185. <if test="createTime != null">
  186. create_time_ = #{createTime},
  187. </if>
  188. <if test="updateTime != null">
  189. update_time = #{updateTime},
  190. </if>
  191. version_ = version_+1
  192. </set>
  193. where id_ = #{id} AND version_ = #{version}
  194. </update>
  195. <select id="getStudentLastChange" resultMap="SubjectChange">
  196. SELECT *
  197. FROM subject_change
  198. WHERE student_id_ = #{studentId}
  199. AND music_group_id_ = #{musicGroupId}
  200. AND status_ = 2
  201. ORDER BY create_time_ DESC
  202. LIMIT 1
  203. </select>
  204. <select id="getChangeInfo" resultMap="SubjectChange">
  205. SELECT sc.*, su.username_ studentName
  206. FROM subject_change sc
  207. LEFT jOIN sys_user su ON su.id_ = sc.student_id_
  208. WHERE sc.id_ = #{id}
  209. </select>
  210. <select id="getMusicGroupWaitPay" resultMap="SubjectChange">
  211. SELECT *
  212. FROM subject_change
  213. WHERE music_group_id_ = #{musicGroupId}
  214. AND status_ IN (0, 1)
  215. </select>
  216. <select id="queryPage" resultMap="SubjectChange">
  217. SELECT * FROM subject_change sc
  218. <include refid="queryPageSql"/>
  219. ORDER BY sc.id_ DESC
  220. <include refid="global.limit"/>
  221. </select>
  222. <select id="getPageList" resultMap="SubjectChange">
  223. SELECT sc.*,s.username_ studentName,o.name_ organName,co.name_ cooperationOrganName,edu.real_name_ eduTeacher,
  224. mg.name_ musicGroupName FROM subject_change sc
  225. LEFT JOIN music_group mg ON mg.id_ = sc.music_group_id_
  226. LEFT JOIN sys_user s ON sc.student_id_ = s.id_
  227. LEFT JOIN sys_user edu ON edu.id_ = sc.edu_teacher_id_
  228. LEFT JOIN organization o ON sc.organ_id_ = o.id_
  229. LEFT JOIN cooperation_organ co ON sc.cooperation_organ_id_ = co.id_
  230. <include refid="queryPageSql"/>
  231. ORDER BY sc.sell_time_ DESC
  232. <include refid="global.limit"/>
  233. </select>
  234. <sql id="queryPageSql">
  235. <where>
  236. <if test="search != null and search != ''">
  237. AND (sc.order_no_ = #{search} OR sc.trans_no_ = #{search} OR s.username_ LIKE CONCAT('%',#{search},'%'))
  238. </if>
  239. <if test="organIdList != null and organIdList != ''">
  240. AND FIND_IN_SET(sc.organ_id_,#{organIdList})
  241. </if>
  242. <if test="status != null">
  243. AND sc.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  244. </if>
  245. <if test="cooperationOrganId != null">
  246. AND sc.cooperation_organ_id_ = #{cooperationOrganId}
  247. </if>
  248. <if test="startTime != null">
  249. AND sc.sell_time_ >= #{startTime}
  250. </if>
  251. <if test="endTime != null">
  252. AND sc.sell_time_ &lt;= #{endTime}
  253. </if>
  254. </where>
  255. </sql>
  256. <select id="queryCount" resultType="int">
  257. SELECT COUNT(*) FROM subject_change sc
  258. LEFT JOIN sys_user s ON sc.student_id_ = s.id_
  259. <include refid="queryPageSql"/>
  260. </select>
  261. <select id="getChangeGoods" resultMap="SubjectChange">
  262. SELECT GROUP_CONCAT(sc.original_musical_) musicGroupName,
  263. GROUP_CONCAT(sc.original_accessories_) original_accessories_,
  264. GROUP_CONCAT(sc.change_musical_) trans_no_,
  265. GROUP_CONCAT(sc.change_accessories_) change_accessories_
  266. FROM subject_change sc
  267. LEFT JOIN student_registration sr ON sc.student_id_ = sr.user_id_
  268. WHERE sc.music_group_id_ = #{musicGroupId}
  269. AND sc.status_ = 2
  270. AND sr.music_group_status_ != 'QUIT'
  271. GROUP BY sc.music_group_id_
  272. </select>
  273. <resultMap id="SubjectChangeDto" type="com.ym.mec.biz.dal.entity.SubjectChange" extends="SubjectChange">
  274. <collection property="changeMusicalGoods" ofType="com.ym.mec.biz.dal.entity.Goods">
  275. <result property="id" column="musical_id_"/>
  276. <result property="name" column="musical_name_"/>
  277. </collection>
  278. <collection property="changeAccessoriesGoods" ofType="com.ym.mec.biz.dal.entity.Goods">
  279. <result property="id" column="accessories_id_"/>
  280. <result property="name" column="accessories_name_"/>
  281. </collection>
  282. </resultMap>
  283. <select id="getStudentGoods" resultMap="SubjectChangeDto">
  284. SELECT sc.*, m.id_ musical_id_, m.name_ musical_name_, a.id_ accessories_id_, a.name_ accessories_name_
  285. FROM subject_change sc
  286. LEFT JOIN goods m ON m.id_ = sc.change_musical_
  287. LEFT JOIN goods a ON FIND_IN_SET(a.id_, sc.change_accessories_)
  288. WHERE sc.id_ IN (
  289. SELECT MAX(id_)
  290. FROM subject_change
  291. WHERE music_group_id_ = #{musicGroupId}
  292. AND status_ = 2
  293. GROUP BY student_id_
  294. )
  295. </select>
  296. <select id="getStudentWaitPay" resultMap="SubjectChange">
  297. SELECT *
  298. FROM subject_change
  299. WHERE music_group_id_ = #{musicGroupId}
  300. AND student_id_ = #{studentId}
  301. AND status_ IN (0, 1)
  302. LIMIT 1
  303. </select>
  304. <select id="getMargin" resultMap="SubjectChange">
  305. SELECT student_id_,SUM(goods_margin_+course_margin_) goods_margin_
  306. FROM subject_change
  307. WHERE music_group_id_ = #{musicGroupId}
  308. AND status_ = 2
  309. GROUP BY student_id_
  310. </select>
  311. </mapper>