SellOrderMapper.xml 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599
  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.SellOrderDao">
  4. <resultMap id="SellOrder" type="com.ym.mec.biz.dal.entity.SellOrder">
  5. <!--@mbg.generated-->
  6. <!--@Table sell_order-->
  7. <id column="id_" property="id"/>
  8. <result column="organ_id_" property="organId"/>
  9. <result column="edu_teacher_id_" property="eduTeacherId"/>
  10. <result column="eduTeacher" property="eduTeacher"/>
  11. <result column="cooperation_organ_id_" property="cooperationOrganId"/>
  12. <result column="school_name_" property="schoolName"/>
  13. <result column="trans_no_" property="transNo"/>
  14. <result column="order_no_" property="orderNo"/>
  15. <result column="order_id_" property="orderId"/>
  16. <result column="expect_amount_" property="expectAmount"/>
  17. <result column="actual_amount_" property="actualAmount"/>
  18. <result column="balance_amount_" property="balanceAmount"/>
  19. <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  20. <result column="parent_goods_id_" property="parentGoodsId"/>
  21. <result column="goods_id_" property="goodsId"/>
  22. <result column="goods_name_" property="goodsName"/>
  23. <result column="sell_cost_" property="sellCost"/>
  24. <result column="sell_cost2_" property="sellCost2"/>
  25. <result column="num_" property="num"/>
  26. <result column="user_id_" property="userId"/>
  27. <result column="user_name_" property="userName"/>
  28. <result column="phone_" property="phone"/>
  29. <result column="organ_name_" property="organName"/>
  30. <result column="user_id_" property="userId"/>
  31. <result column="payment_channel_" property="paymentChannel"/>
  32. <result column="mer_no_" property="merNo"/>
  33. <result column="batch_no_" property="batchNo"/>
  34. <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  35. <result column="refund_time_" property="refundTime"/>
  36. <result column="sell_time_" property="sellTime"/>
  37. <result column="create_ime_" property="createIme"/>
  38. <result column="update_time_" property="updateTime"/>
  39. <result column="receive_status_" property="receiveStatus"/>
  40. <result column="stock_type_" property="stockType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  41. <result column="account_type_" property="accountType"
  42. typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  43. </resultMap>
  44. <sql id="Base_Column_List">
  45. <!--@mbg.generated-->
  46. id_, edu_teacher_id_,organ_id_, cooperation_organ_id_, trans_no_,order_id_, order_no_, expect_amount_,
  47. actual_amount_,balance_amount_, sell_cost_, sell_cost2_, type_,parent_goods_id_, goods_id_,goods_name_, num_,
  48. user_id_,
  49. payment_channel_,mer_no_,batch_no_,stock_type_,account_type_,status_, refund_time_,sell_time_, create_ime_,
  50. update_time_
  51. </sql>
  52. <select id="get" parameterType="java.lang.Integer" resultMap="SellOrder">
  53. <!--@mbg.generated-->
  54. select
  55. <include refid="Base_Column_List"/>
  56. from sell_order
  57. where id_ = #{id}
  58. </select>
  59. <delete id="delete" parameterType="java.lang.Integer">
  60. <!--@mbg.generated-->
  61. delete from sell_order
  62. where id_ = #{id}
  63. </delete>
  64. <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.SellOrder"
  65. useGeneratedKeys="true">
  66. <!--@mbg.generated-->
  67. insert into sell_order (edu_teacher_id_,organ_id_, cooperation_organ_id_, trans_no_,order_id_, order_no_,
  68. expect_amount_,actual_amount_,balance_amount_, type_,parent_goods_id_, goods_id_,goods_name_, sell_cost_,
  69. sell_cost2_, num_, user_id_, payment_channel_,
  70. mer_no_,batch_no_,stock_type_,account_type_, refund_time_,sell_time_, create_ime_, update_time_)
  71. values (#{eduTeacherId},#{organId}, #{cooperationOrganId}, #{transNo}, #{orderNo},#{orderId}, #{expectAmount},
  72. #{actualAmount}, #{balanceAmount}, #{type},#{parentGoodsId}, #{goodsId}, #{goodsName}, #{sellCost},
  73. #{sellCost2}, #{num}, #{userId},
  74. #{paymentChannel}, #{merNo},#{batchNo},
  75. #{stockType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{accountType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  76. #{refundTime},#{sellTime}, #{createIme}, #{updateTime})
  77. </insert>
  78. <update id="update" parameterType="com.ym.mec.biz.dal.entity.SellOrder">
  79. <!--@mbg.generated-->
  80. update sell_order
  81. <set>
  82. <if test="eduTeacherId != null">
  83. edu_teacher_id_ = #{eduTeacherId},
  84. </if>
  85. <if test="organId != null">
  86. organ_id_ = #{organId},
  87. </if>
  88. <if test="cooperationOrganId != null">
  89. cooperation_organ_id_ = #{cooperationOrganId},
  90. </if>
  91. <if test="transNo != null">
  92. trans_no_ = #{transNo},
  93. </if>
  94. <if test="orderId != null">
  95. order_id_ = #{orderId},
  96. </if>
  97. <if test="orderNo != null">
  98. order_no_ = #{orderNo},
  99. </if>
  100. <if test="expectAmount != null">
  101. expect_amount_ = #{expectAmount},
  102. </if>
  103. <if test="actualAmount != null">
  104. actual_amount_ = #{actualAmount},
  105. </if>
  106. <if test="balanceAmount != null">
  107. balance_amount_ = #{balanceAmount},
  108. </if>
  109. <if test="type != null">
  110. type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  111. </if>
  112. <if test="parentGoodsId != null">
  113. parent_goods_id_ = #{parentGoodsId},
  114. </if>
  115. <if test="goodsId != null">
  116. goods_id_ = #{goodsId},
  117. </if>
  118. <if test="goodsName != null">
  119. goods_name_ = #{goodsName},
  120. </if>
  121. <if test="sellCost != null">
  122. sell_cost_ = #{sellCost},
  123. </if>
  124. <if test="sellCost2 != null">
  125. sell_cost2_ = #{sellCost2},
  126. </if>
  127. <if test="num != null">
  128. num_ = #{num},
  129. </if>
  130. <if test="userId != null">
  131. user_id_ = #{userId},
  132. </if>
  133. <if test="paymentChannel != null">
  134. payment_channel_ = #{paymentChannel},
  135. </if>
  136. <if test="merNo != null">
  137. mer_no_ = #{merNo},
  138. </if>
  139. <if test="batchNo != null">
  140. batch_no_ = #{batchNo},
  141. </if>
  142. <if test="stockType != null">
  143. stock_type_ = #{stockType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  144. </if>
  145. <if test="accountType != null">
  146. account_type_ = #{accountType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  147. </if>
  148. <if test="status != null">
  149. status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  150. </if>
  151. <if test="refundTime != null">
  152. refund_time_ = #{refundTime},
  153. </if>
  154. <if test="sellTime != null">
  155. sell_time_ = #{sellTime},
  156. </if>
  157. <if test="createIme != null">
  158. create_ime_ = #{createIme},
  159. </if>
  160. <if test="updateTime != null">
  161. update_time_ = #{updateTime},
  162. </if>
  163. </set>
  164. where id_ = #{id}
  165. </update>
  166. <update id="batchUpdate" parameterType="com.ym.mec.biz.dal.entity.SellOrder">
  167. <foreach collection="sellOrders" item="sellOrder" separator=";">
  168. update sell_order
  169. <set>
  170. <if test="sellOrder.eduTeacherId != null">
  171. edu_teacher_id_ = #{sellOrder.eduTeacherId},
  172. </if>
  173. <if test="sellOrder.organId != null">
  174. organ_id_ = #{sellOrder.organId},
  175. </if>
  176. <if test="sellOrder.cooperationOrganId != null">
  177. cooperation_organ_id_ = #{sellOrder.cooperationOrganId},
  178. </if>
  179. <if test="sellOrder.transNo != null">
  180. trans_no_ = #{sellOrder.transNo},
  181. </if>
  182. <if test="sellOrder.orderId != null">
  183. order_id_ = #{sellOrder.orderId},
  184. </if>
  185. <if test="sellOrder.orderNo != null">
  186. order_no_ = #{sellOrder.orderNo},
  187. </if>
  188. <if test="sellOrder.expectAmount != null">
  189. expect_amount_ = #{sellOrder.expectAmount},
  190. </if>
  191. <if test="sellOrder.actualAmount != null">
  192. actual_amount_ = #{sellOrder.actualAmount},
  193. </if>
  194. <if test="sellOrder.balanceAmount != null">
  195. balance_amount_ = #{sellOrder.balanceAmount},
  196. </if>
  197. <if test="sellOrder.type != null">
  198. type_ = #{sellOrder.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  199. </if>
  200. <if test="sellOrder.parentGoodsId != null">
  201. parent_goods_id_ = #{sellOrder.parentGoodsId},
  202. </if>
  203. <if test="sellOrder.goodsId != null">
  204. goods_id_ = #{sellOrder.goodsId},
  205. </if>
  206. <if test="sellOrder.goodsName != null">
  207. goods_name_ = #{sellOrder.goodsName},
  208. </if>
  209. <if test="sellOrder.sellCost != null">
  210. sell_cost_ = #{sellOrder.sellCost},
  211. </if>
  212. <if test="sellOrder.sellCost2 != null">
  213. sell_cost2_ = #{sellOrder.sellCost2},
  214. </if>
  215. <if test="sellOrder.num != null">
  216. num_ = #{sellOrder.num},
  217. </if>
  218. <if test="sellOrder.userId != null">
  219. user_id_ = #{sellOrder.userId},
  220. </if>
  221. <if test="sellOrder.paymentChannel != null">
  222. payment_channel_ = #{sellOrder.paymentChannel},
  223. </if>
  224. <if test="sellOrder.merNo != null">
  225. mer_no_ = #{sellOrder.merNo},
  226. </if>
  227. <if test="sellOrder.batchNo != null">
  228. batch_no_ = #{sellOrder.batchNo},
  229. </if>
  230. <if test="sellOrder.stockType != null">
  231. stock_type_ = #{sellOrder.stockType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  232. </if>
  233. <if test="sellOrder.accountType != null">
  234. account_type_ = #{sellOrder.accountType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  235. </if>
  236. <if test="sellOrder.status != null">
  237. status_ = #{sellOrder.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  238. </if>
  239. <if test="sellOrder.refundTime != null">
  240. refund_time_ = #{sellOrder.refundTime},
  241. </if>
  242. <if test="sellOrder.sellTime != null">
  243. sell_time_ = #{sellOrder.sellTime},
  244. </if>
  245. <if test="sellOrder.createIme != null">
  246. create_ime_ = #{sellOrder.createIme},
  247. </if>
  248. update_time_ = NOW()
  249. </set>
  250. where id_ = #{sellOrder.id}
  251. </foreach>
  252. </update>
  253. <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
  254. insert into sell_order (organ_id_, cooperation_organ_id_, trans_no_,order_id_, order_no_, expect_amount_,
  255. actual_amount_,balance_amount_, type_, parent_goods_id_, goods_id_,goods_name_, sell_cost_, sell_cost2_, num_,
  256. user_id_, payment_channel_,
  257. mer_no_,batch_no_,stock_type_,account_type_, sell_time_,edu_teacher_id_, create_ime_, update_time_)
  258. VALUE
  259. <foreach collection="sellOrders" separator="," item="sellOrder">
  260. (#{sellOrder.organId},#{sellOrder.cooperationOrganId},#{sellOrder.transNo},#{sellOrder.orderId},#{sellOrder.orderNo},
  261. #{sellOrder.expectAmount},#{sellOrder.actualAmount},#{sellOrder.balanceAmount},#{sellOrder.type},#{sellOrder.parentGoodsId},#{sellOrder.goodsId},
  262. #{sellOrder.goodsName},#{sellOrder.sellCost},#{sellOrder.sellCost2},#{sellOrder.num},#{sellOrder.userId},
  263. #{sellOrder.paymentChannel},#{sellOrder.merNo},#{sellOrder.batchNo},
  264. #{sellOrder.stockType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{sellOrder.accountType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  265. #{sellOrder.sellTime},#{sellOrder.eduTeacherId},NOW(),NOW())
  266. </foreach>
  267. </insert>
  268. <!-- 分页查询 -->
  269. <select id="queryPage" resultMap="SellOrder" parameterType="map">
  270. SELECT so.*,su.username_ user_name_,su.phone_,o.name_ organ_name_,co.name_ school_name_,t.real_name_
  271. eduTeacher,spo.receive_status_
  272. FROM sell_order so
  273. LEFT JOIN sys_user su ON so.user_id_ = su.id_
  274. LEFT JOIN organization o ON o.id_ = so.organ_id_
  275. LEFT JOIN cooperation_organ co ON co.id_= so.cooperation_organ_id_
  276. LEFT JOIN sys_user t ON t.id_ = so.edu_teacher_id_
  277. LEFT JOIN student_payment_order spo ON so.order_id_ = spo.id_
  278. <include refid="queryPageSql"/>
  279. ORDER BY so.create_ime_ DESC
  280. <include refid="global.limit"/>
  281. </select>
  282. <!-- 查询当前表的总记录数 -->
  283. <select id="queryCount" resultType="int">
  284. SELECT COUNT(*) FROM sell_order so
  285. LEFT JOIN student_payment_order spo ON so.order_id_ = spo.id_
  286. <include refid="queryPageSql"/>
  287. </select>
  288. <sql id="queryPageSql">
  289. <where>
  290. <if test="search != null and search != ''">
  291. AND (so.order_no_ = #{search} OR so.trans_no_ = #{search})
  292. </if>
  293. <if test="organIdList != null and organIdList != ''">
  294. AND FIND_IN_SET(so.organ_id_,#{organIdList})
  295. </if>
  296. <if test="goodsName != null and goodsName != ''">
  297. AND so.goods_name_ LIKE CONCAT('%',#{goodsName},'%')
  298. </if>
  299. <if test="cooperationOrganId != null">
  300. AND so.cooperation_organ_id_ = #{cooperationOrganId}
  301. </if>
  302. <if test="status != null">
  303. AND so.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  304. </if>
  305. <if test="type != null">
  306. AND so.type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  307. </if>
  308. <if test="receiveStatus != null and receiveStatus != ''">
  309. AND spo.receive_status_ = #{receiveStatus}
  310. </if>
  311. <if test="startTime != null">
  312. AND so.sell_time_ >= #{startTime}
  313. </if>
  314. <if test="endTime != null">
  315. AND so.sell_time_ &lt;= #{endTime}
  316. </if>
  317. </where>
  318. </sql>
  319. <!-- 获取分部学校的收入支出(乐团订单) -->
  320. <select id="getMusicGroupMonthReport" resultMap="com.ym.mec.biz.dal.dao.OperatingReportDao.OperatingReport"><![CDATA[
  321. SELECT spo.organ_id_,
  322. co.id_ cooperation_organ_id_,
  323. SUM(so.actual_amount_) sell_amount_,
  324. SUM(so.sell_cost_ * so.num_) sell_cost_
  325. FROM student_payment_order spo
  326. LEFT JOIN sell_order so on so.order_id_ = spo.id_
  327. LEFT JOIN music_group mg ON mg.id_ = spo.music_group_id_
  328. LEFT JOIN cooperation_organ co ON co.id_ = mg.cooperation_organ_id_
  329. WHERE spo.status_ = 'SUCCESS'
  330. AND spo.group_type_ = 'MUSIC'
  331. AND spo.create_time_ >= #{startTime}
  332. AND spo.create_time_ <= #{endTime}
  333. GROUP BY spo.organ_id_, co.id_
  334. ]]></select>
  335. <select id="getMusicGroupIncome" resultMap="com.ym.mec.biz.dal.dao.OperatingReportDao.OperatingReport"><![CDATA[
  336. SELECT spo.organ_id_,
  337. co.id_ cooperation_organ_id_,
  338. SUM(spo.actual_amount_) income_total_
  339. FROM student_payment_order spo
  340. LEFT JOIN music_group mg ON mg.id_ = spo.music_group_id_
  341. LEFT JOIN cooperation_organ co ON co.id_ = mg.cooperation_organ_id_
  342. WHERE spo.status_ = 'SUCCESS'
  343. AND spo.group_type_ = 'MUSIC'
  344. AND spo.create_time_ >= #{startTime}
  345. AND spo.create_time_ <= #{endTime}
  346. GROUP BY spo.organ_id_, co.id_
  347. ]]></select>
  348. <!-- 获取分部学校的收入支出(VIP,网管课) -->
  349. <select id="getMusicVipPracticeMonthReport" resultMap="com.ym.mec.biz.dal.dao.OperatingReportDao.OperatingReport"><![CDATA[
  350. SELECT spo.organ_id_,
  351. co.id_ cooperation_organ_id_,
  352. SUM(spo.actual_amount_) income_total_
  353. FROM student_payment_order spo
  354. LEFT JOIN
  355. (SELECT MIN(music_group_id_) music_group_id_, user_id_
  356. FROM student_registration
  357. WHERE music_group_status_ = 'NORMAL'
  358. GROUP BY user_id_) sr
  359. ON sr.user_id_ = spo.user_id_
  360. LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_
  361. LEFT JOIN cooperation_organ co ON co.id_ = mg.cooperation_organ_id_
  362. WHERE spo.status_ = 'SUCCESS'
  363. AND spo.group_type_ IN ('VIP', 'PRACTICE')
  364. AND spo.create_time_ >= #{startTime}
  365. AND spo.create_time_ <= #{endTime}
  366. GROUP BY spo.organ_id_, co.id_
  367. ]]></select>
  368. <!-- 获取分部学校的收入支出(外部添加订单) -->
  369. <select id="getOutOrderMonthReport" resultMap="com.ym.mec.biz.dal.dao.OperatingReportDao.OperatingReport"><![CDATA[
  370. SELECT spo.organ_id_,
  371. co.id_ cooperation_organ_id_,
  372. SUM(so.actual_amount_) sell_amount_,
  373. SUM(so.sell_cost_ * so.num_) sell_cost_
  374. FROM student_payment_order spo
  375. LEFT JOIN sell_order so on so.order_id_ = spo.id_
  376. LEFT JOIN cooperation_organ co ON co.id_ = spo.music_group_id_
  377. WHERE spo.status_ = 'SUCCESS'
  378. AND spo.group_type_ = 'OUTORDER'
  379. AND spo.create_time_ >= #{startTime}
  380. AND spo.create_time_ <= #{endTime}
  381. GROUP BY spo.organ_id_, co.id_
  382. ]]></select>
  383. <!-- 获取分部学校的收入支出(外部添加订单) -->
  384. <select id="getOutOrderIncome" resultMap="com.ym.mec.biz.dal.dao.OperatingReportDao.OperatingReport"><![CDATA[
  385. SELECT spo.organ_id_,
  386. co.id_ cooperation_organ_id_,
  387. SUM(spo.actual_amount_) income_total_
  388. FROM student_payment_order spo
  389. LEFT JOIN cooperation_organ co ON co.id_ = spo.music_group_id_
  390. WHERE spo.status_ = 'SUCCESS'
  391. AND spo.group_type_ = 'OUTORDER'
  392. AND spo.create_time_ >= #{startTime}
  393. AND spo.create_time_ <= #{endTime}
  394. GROUP BY spo.organ_id_, co.id_
  395. ]]></select>
  396. <!-- 获取分部学校的收入(充值) -->
  397. <select id="getRechargeMonthReport" resultMap="com.ym.mec.biz.dal.dao.OperatingReportDao.OperatingReport"><![CDATA[
  398. SELECT spo.organ_id_,
  399. co.id_ cooperation_organ_id_,
  400. SUM(spo.actual_amount_) income_total_,
  401. SUM(spo.actual_amount_) other_income_
  402. FROM student_payment_order spo
  403. LEFT JOIN sporadic_charge_info sci ON sci.id_ = spo.music_group_id_
  404. LEFT JOIN music_group mg ON mg.id_ = sci.music_group_id_
  405. LEFT JOIN cooperation_organ co ON co.id_ = mg.cooperation_organ_id_
  406. WHERE spo.status_ = 'SUCCESS'
  407. AND spo.group_type_ = 'SPORADIC'
  408. AND sci.charge_type_ = '9'
  409. AND spo.create_time_ >= #{startTime}
  410. AND spo.create_time_ <= #{endTime}
  411. GROUP BY spo.organ_id_, co.id_
  412. ]]></select>
  413. <!-- 获取分部学校的收入(零星支付) -->
  414. <select id="getSporadicMonthReport" resultMap="com.ym.mec.biz.dal.dao.OperatingReportDao.OperatingReport"><![CDATA[
  415. SELECT spo.organ_id_,
  416. co.id_ cooperation_organ_id_,
  417. SUM(spo.actual_amount_) income_total_
  418. FROM student_payment_order spo
  419. LEFT JOIN sporadic_charge_info sci ON sci.id_ = spo.music_group_id_
  420. LEFT JOIN music_group mg ON mg.id_ = sci.music_group_id_
  421. LEFT JOIN cooperation_organ co ON co.id_ = mg.cooperation_organ_id_
  422. WHERE spo.status_ = 'SUCCESS'
  423. AND spo.group_type_ = 'SPORADIC'
  424. AND sci.charge_type_ != '9'
  425. AND spo.create_time_ >= #{startTime}
  426. AND spo.create_time_ <= #{endTime}
  427. GROUP BY spo.organ_id_, co.id_
  428. ]]></select>
  429. <!-- 获取分部学校的收入支出(维修、商品销售订单) -->
  430. <select id="getRepairGoodsSellGroupMonthReport"
  431. resultMap="com.ym.mec.biz.dal.dao.OperatingReportDao.OperatingReport"><![CDATA[
  432. SELECT spo.organ_id_,
  433. SUM(so.actual_amount_) sell_amount_,
  434. SUM(so.sell_cost_ * so.num_) sell_cost_
  435. FROM student_payment_order spo
  436. LEFT JOIN sell_order so on so.order_id_ = spo.id_
  437. WHERE spo.status_ = 'SUCCESS'
  438. AND spo.group_type_ = 'REPAIR'
  439. AND spo.create_time_ >= #{startTime}
  440. AND spo.create_time_ <= #{endTime}
  441. GROUP BY spo.organ_id_
  442. ]]></select>
  443. <!-- 获取分部学校的收入支出(维修、商品销售订单) -->
  444. <select id="getRepairGoodsSellGroupIncome"
  445. resultMap="com.ym.mec.biz.dal.dao.OperatingReportDao.OperatingReport"><![CDATA[
  446. SELECT spo.organ_id_,
  447. SUM(spo.actual_amount_) income_total_
  448. FROM student_payment_order spo
  449. LEFT JOIN sell_order so on so.order_id_ = spo.id_
  450. WHERE spo.status_ = 'SUCCESS'
  451. AND spo.group_type_ = 'REPAIR'
  452. AND spo.create_time_ >= #{startTime}
  453. AND spo.create_time_ <= #{endTime}
  454. GROUP BY spo.organ_id_
  455. ]]></select>
  456. <!-- 获取分部学校的收入支出(商品销售订单) -->
  457. <select id="getGoodsSellGroupMonthReport"
  458. resultMap="com.ym.mec.biz.dal.dao.OperatingReportDao.OperatingReport"><![CDATA[
  459. SELECT spo.organ_id_,
  460. so.cooperation_organ_id_,
  461. SUM(so.actual_amount_) income_total_,
  462. SUM(so.actual_amount_) sell_amount_,
  463. SUM(so.sell_cost_ * so.num_) sell_cost_
  464. FROM student_payment_order spo
  465. LEFT JOIN sell_order so on so.order_id_ = spo.id_
  466. WHERE spo.status_ = 'SUCCESS'
  467. AND spo.group_type_ = 'GOODS_SELL'
  468. AND spo.create_time_ >= #{startTime}
  469. AND spo.create_time_ <= #{endTime}
  470. GROUP BY spo.organ_id_, so.cooperation_organ_id_
  471. ]]></select>
  472. <!-- 获取订单的销售列表 -->
  473. <select id="getOrderSellOrder" resultMap="SellOrder">
  474. SELECT *
  475. FROM sell_order
  476. WHERE order_id_ = #{orderId}
  477. </select>
  478. <delete id="deleteByOrderId">
  479. DELETE
  480. FROM sell_order
  481. WHERE order_id_ = #{orderId}
  482. </delete>
  483. <select id="getOrderSellCost" resultType="decimal">
  484. SELECT SUM(sell_cost_ * num_)
  485. FROM sell_order
  486. WHERE order_id_ = #{orderId}
  487. </select>
  488. <!-- 获取分部学校的收入支出(声部更改) -->
  489. <select id="getSubjectChangeMonthReport"
  490. resultMap="com.ym.mec.biz.dal.dao.OperatingReportDao.OperatingReport"><![CDATA[
  491. SELECT spo.organ_id_,
  492. spo.music_group_id_ cooperation_organ_id_,
  493. SUM(so.actual_amount_) sell_amount_,
  494. SUM(so.sell_cost_ * so.num_) sell_cost_
  495. FROM student_payment_order spo
  496. LEFT JOIN sell_order so on so.order_id_ = spo.id_
  497. WHERE spo.status_ = 'SUCCESS'
  498. AND spo.group_type_ = 'SUBJECT_CHANGE'
  499. AND spo.create_time_ >= #{startTime}
  500. AND spo.create_time_ <= #{endTime}
  501. GROUP BY spo.organ_id_, spo.music_group_id_
  502. ]]></select>
  503. <!-- 获取分部学校的收入支出(声部更改) -->
  504. <select id="getSubjectChangeGroupIncome"
  505. resultMap="com.ym.mec.biz.dal.dao.OperatingReportDao.OperatingReport"><![CDATA[
  506. SELECT spo.organ_id_,
  507. spo.music_group_id_ cooperation_organ_id_,
  508. SUM(spo.actual_amount_) income_total_
  509. FROM student_payment_order spo
  510. WHERE spo.status_ = 'SUCCESS'
  511. AND spo.group_type_ = 'SUBJECT_CHANGE'
  512. AND spo.create_time_ >= #{startTime}
  513. AND spo.create_time_ <= #{endTime}
  514. GROUP BY spo.organ_id_, spo.music_group_id_
  515. ]]></select>
  516. <!-- 获取退货订单的收入和成本 -->
  517. <select id="getRefundIncome" resultMap="com.ym.mec.biz.dal.dao.OperatingReportDao.OperatingReport"><![CDATA[
  518. SELECT organ_id_,
  519. cooperation_organ_id_,
  520. -SUM(sell_cost_ * num_) sell_cost_
  521. FROM sell_order
  522. WHERE status_ = 1
  523. AND refund_time_ >= #{startTime}
  524. AND refund_time_ <= #{endTime}
  525. GROUP BY organ_id_, cooperation_organ_id_
  526. ]]></select>
  527. <select id="getSellOrders" resultMap="SellOrder">
  528. SELECT * FROM sell_order WHERE id_ IN
  529. <foreach collection="sellOrderIds" item="id" open="(" close=")" separator=",">
  530. #{id}
  531. </foreach>
  532. </select>
  533. <select id="getSellOrderByParentGoodsId" resultMap="SellOrder">
  534. SELECT * FROM sell_order WHERE order_id_ = #{orderId} AND status_=0
  535. <if test="parentGoodsId != null">
  536. AND parent_goods_id_ = #{parentGoodsId}
  537. </if>
  538. </select>
  539. <select id="getNoneBatchNoSellOrderIds" resultType="int">
  540. SELECT id_
  541. FROM sell_order
  542. WHERE status_ = 0
  543. AND stock_type_ IS NOT NULL
  544. AND batch_no_ IS NULL
  545. ORDER BY sell_time_
  546. </select>
  547. <select id="getRefundSellOrder" resultMap="SellOrder">
  548. SELECT *
  549. FROM sell_order
  550. WHERE order_id_ = #{orderId}
  551. AND status_ = 1
  552. </select>
  553. <select id="lockSellOrders" resultMap="SellOrder">
  554. SELECT * FROM sell_order WHERE id_ IN
  555. <foreach collection="sellOrderIds" item="sellOrderId" open="(" close=")" separator=",">
  556. #{sellOrderId}
  557. </foreach>
  558. </select>
  559. <select id="getFeeByType" resultType="com.ym.mec.biz.dal.dto.StudentPaymentOrderExportDto">
  560. SELECT MAX(spo.expect_amount_) expectAmount,
  561. SUM(IF(g.type_ = 'INSTRUMENT', so.expect_amount_, 0)) musicalFee,
  562. SUM(IF(g.type_ != 'INSTRUMENT', so.expect_amount_, 0)) teachingFee
  563. FROM student_payment_order spo
  564. LEFT JOIN sell_order so ON spo.id_ = so.order_id_
  565. LEFT JOIN goods g ON IF(so.parent_goods_id_ IS NOT NULL,g.id_ = so.parent_goods_id_,g.id_ = so.goods_id_)
  566. WHERE spo.id_ = #{orderId}
  567. </select>
  568. </mapper>