UserOrderDetailMapper.xml 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  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.yonge.cooleshow.biz.dal.dao.UserOrderDetailDao">
  4. <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.UserOrderDetail">
  5. <result column="id_" property="id" />
  6. <result column="order_no_" property="orderNo" />
  7. <result column="sub_order_no_" property="subOrderNo" />
  8. <result column="merch_id_" property="merchId" />
  9. <result column="good_type_" property="goodType" />
  10. <result column="biz_id_" property="bizId" />
  11. <result column="biz_content_" property="bizContent" />
  12. <result column="good_name_" property="goodName" />
  13. <result column="good_url_" property="goodUrl" />
  14. <result column="original_price_" property="originalPrice" />
  15. <result column="expect_price_" property="expectPrice" />
  16. <result column="actual_price_" property="actualPrice" />
  17. <result column="coupon_amount_" property="couponAmount" />
  18. <result column="good_num_" property="goodNum" />
  19. <result column="good_price_" property="goodPrice" />
  20. <result column="plantform_fee_" property="plantformFee" />
  21. <result column="plantform_fee_rate_" property="plantformFeeRate" />
  22. <result column="create_time_" property="createTime" />
  23. <result column="update_time_" property="updateTime" />
  24. <result column="tenant_group_album_id_" property="tenantGroupAlbumId" />
  25. <result column="biz_json_" property="bizJson" />
  26. </resultMap>
  27. <!-- 表字段 -->
  28. <sql id="baseColumns">
  29. t.id_ as id
  30. , t.order_no_ as orderNo
  31. , t.sub_order_no_ as subOrderNo
  32. , t.merch_id_ as merchId
  33. , t.good_type_ as goodType
  34. , t.biz_id_ as bizId
  35. , t.biz_content_ as bizContent
  36. , t.good_name_ as goodName
  37. , t.good_url_ as goodUrl
  38. , t.original_price_ as originalPrice
  39. , t.expect_price_ as expectPrice
  40. , t.actual_price_ as actualPrice
  41. , t.coupon_amount_ as couponAmount
  42. , t.good_num_ as goodNum
  43. , t.good_price_ as goodPrice
  44. , t.plantform_fee_ as plantformFee
  45. , t.plantform_fee_rate_ as plantformFeeRate
  46. , t.account_config_ as accountConfig
  47. , t.tenant_group_album_id_ as tenantGroupAlbumId
  48. , t.create_time_ as createTime
  49. , t.update_time_ as updateTime
  50. , t.biz_json_ as bizJson
  51. , t.gift_flag_ as giftFlag
  52. , t.discount_json_ as discountJson
  53. </sql>
  54. <select id="detail" resultType="com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo">
  55. SELECT
  56. <include refid="baseColumns"/>,
  57. o.order_client_ as orderClient,
  58. o.user_id_ as userId,
  59. o.recom_user_id_ as recomUserId
  60. FROM user_order_detail t
  61. left join user_order o on t.order_no_ = o.order_no_
  62. where t.id_ = #{id}
  63. </select>
  64. <select id="detailByOrderNo" resultType="com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo">
  65. SELECT
  66. <include refid="baseColumns"/>,
  67. o.order_client_ as orderClient,
  68. o.user_id_ as userId,
  69. o.recom_user_id_ as recomUserId
  70. FROM user_order_detail t
  71. left join user_order o on t.order_no_ = o.order_no_
  72. where t.order_no_ = #{orderNo}
  73. </select>
  74. <sql id="selectSql">
  75. SELECT
  76. <include refid="baseColumns" />,
  77. o.order_client_ as orderClient,
  78. o.user_id_ as userId,
  79. o.recom_user_id_ as recomUserId
  80. FROM user_order_detail t
  81. left join user_order o on t.order_no_ = o.order_no_
  82. <where>
  83. <if test="param.orderNo != null and param.orderNo != ''">
  84. AND t.order_no_ = #{param.orderNo}
  85. </if>
  86. <if test="param.ids != null and param.ids.size()>0">
  87. AND t.id_ IN
  88. <foreach collection="param.ids " item="id" open="(" close=")" separator=",">
  89. #{id}
  90. </foreach>
  91. </if>
  92. </where>
  93. </sql>
  94. <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo">
  95. <include refid="selectSql"/>
  96. </select>
  97. <select id="selectList" resultType="com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo">
  98. <include refid="selectSql"/>
  99. </select>
  100. <select id="getOrderDetilListByOrderNo" resultType="com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo">
  101. SELECT
  102. <include refid="baseColumns" />,
  103. o.recom_user_id_ as recomUserId,
  104. o.order_client_ as orderClient,
  105. u.avatar_ as avatar,
  106. u.username_ as username,
  107. a.star_grade_ as starGrade
  108. FROM user_order_detail t
  109. left join user_order o on t.order_no_ = o.order_no_
  110. left join sys_user u on t.merch_id_ = u.id_
  111. left join teacher_total a on t.merch_id_ = a.user_id_
  112. where t.order_no_ = #{orderNo}
  113. </select>
  114. <select id="getOrderDetilListByOrderNos" resultType="com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo">
  115. SELECT
  116. <include refid="baseColumns" />,
  117. o.recom_user_id_ as recomUserId,
  118. o.order_client_ as orderClient,
  119. u.avatar_ as avatar,
  120. u.username_ as username,
  121. a.star_grade_ as starGrade
  122. FROM user_order_detail t
  123. left join user_order o on t.order_no_ = o.order_no_
  124. left join sys_user u on t.merch_id_ = u.id_
  125. left join teacher_total a on t.merch_id_ = a.user_id_
  126. <where>
  127. <if test="orderNos != null and orderNos.size() != 0">
  128. and t.order_no_ in
  129. <foreach collection="orderNos" close=")" open="(" separator="," item="item">
  130. #{item}
  131. </foreach>
  132. </if>
  133. </where>
  134. </select>
  135. <select id="getActivityGoodsCount" resultType="int">
  136. SELECT ifnull(sum(t.good_num_),0) as goodNum
  137. FROM user_order_detail t
  138. left join user_order o on t.order_no_ = o.order_no_
  139. where o.activity_id_ = #{activityId}
  140. and o.user_id_ = #{userId}
  141. and o.order_client_ = #{client}
  142. and o.status_ in ('PAID','WAIT_PAY','PAYING')
  143. and t.gift_flag_ = 0
  144. </select>
  145. <select id="liveBuyTotal"
  146. resultType="com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper$CourseExposureTotal">
  147. select c.type,SUM(c.exposureNum) exposureNum,c.date from (
  148. select uod.good_type_ type,COUNT(distinct uod.order_no_) exposureNum,
  149. DATE_FORMAT(uod.create_time_,#{groupBy}) 'date' from user_order_detail uod
  150. left join user_order uo ON uo.order_no_ = uod.order_no_
  151. left join course_group cg On cg.id_ = uod.biz_id_
  152. where cg.teacher_id_ = #{param.teacherId} AND uo.status_ = 'PAID'
  153. AND DATE_FORMAT(uod.create_time_, '%Y-%m-%d') BETWEEN #{param.startTime} AND #{param.endTime}
  154. <if test="param.type != null and param.type != ''">
  155. and uod.good_type_ = #{param.type}
  156. </if>
  157. group by DATE_FORMAT(uod.create_time_,#{groupBy})
  158. UNION ALL
  159. select uod.good_type_ type,COUNT(distinct uod.order_no_) exposureNum,
  160. DATE_FORMAT(uod.create_time_,#{groupBy}) 'date' from user_order_detail uod
  161. left join user_order uo ON uo.order_no_ = uod.order_no_
  162. left join video_lesson_group cg On cg.id_ = uod.biz_id_
  163. where cg.teacher_id_ = #{param.teacherId} AND uo.status_ = 'PAID'
  164. AND DATE_FORMAT(uod.create_time_, '%Y-%m-%d') BETWEEN #{param.startTime} AND #{param.endTime}
  165. <if test="param.type != null and param.type != ''">
  166. and uod.good_type_ = #{param.type}
  167. </if>
  168. group by DATE_FORMAT(uod.create_time_,#{groupBy})) c
  169. group by c.date ORDER BY c.date
  170. </select>
  171. <select id="videoBuyTotal"
  172. resultType="com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper$CourseExposureTotal">
  173. select uod.good_type_ type,COUNT(distinct uod.order_no_) exposureNum,
  174. DATE_FORMAT(uod.create_time_,#{groupBy}) 'date' from user_order_detail uod
  175. left join user_order uo ON uo.order_no_ = uod.order_no_
  176. left join video_lesson_group cg On cg.id_ = uod.biz_id_
  177. where uod.good_type_ = 'VIDEO' AND cg.teacher_id_ = #{param.teacherId} AND uo.status_ = 'PAID'
  178. AND DATE_FORMAT(uod.create_time_, '%Y-%m-%d') BETWEEN #{param.startTime} AND #{param.endTime}
  179. group by DATE_FORMAT(uod.create_time_,#{groupBy}) order by 'date'
  180. </select>
  181. <select id="musicSheetBuyTotal"
  182. resultType="com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper$CourseExposureTotal">
  183. select uod.good_type_ type,COUNT(distinct uod.order_no_) exposureNum,
  184. DATE_FORMAT(uod.create_time_,#{groupBy}) 'date' from user_order_detail uod
  185. left join user_order uo ON uo.order_no_ = uod.order_no_
  186. left join music_sheet ms ON ms.id_ = uod.biz_id_
  187. where uod.good_type_ = 'MUSIC' AND uo.status_ = 'PAID' AND ms.source_type_ = 'TEACHER' AND ms.create_by_ = #{param.teacherId}
  188. AND DATE_FORMAT(uod.create_time_, '%Y-%m-%d') BETWEEN #{param.startTime} AND #{param.endTime}
  189. group by DATE_FORMAT(uod.create_time_,#{groupBy}) order by 'date'
  190. </select>
  191. <select id="getPayingCourseGroupOrder" resultType="java.lang.String">
  192. SELECT distinct t.order_no_ FROM user_order_detail t
  193. LEFT JOIN user_order o ON t.order_no_ = o.order_no_
  194. WHERE t.biz_id_ = #{groupId}
  195. AND t.good_type_ in ('LIVE','GROUP')
  196. AND o.status_ IN ('WAIT_PAY','PAYING')
  197. </select>
  198. </mapper>