OmsOrderDao.xml 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  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.admin.dao.OmsOrderDao">
  4. <resultMap id="orderDetailResultMap" type="com.yonge.cooleshow.admin.dto.OmsOrderDetail" extends="com.yonge.cooleshow.mbg.mapper.OmsOrderMapper.BaseResultMap">
  5. <collection property="orderItemList" resultMap="com.yonge.cooleshow.mbg.mapper.OmsOrderItemMapper.BaseResultMap" columnPrefix="item_"/>
  6. <collection property="historyList" resultMap="com.yonge.cooleshow.mbg.mapper.OmsOrderOperateHistoryMapper.BaseResultMap" columnPrefix="history_"/>
  7. </resultMap>
  8. <resultMap id="orderResultMap" type="com.yonge.cooleshow.admin.dto.OrderVo" extends="com.yonge.cooleshow.mbg.mapper.OmsOrderMapper.BaseResultMap">
  9. <result column="userId" property="userId" />
  10. <result column="username" property="username" />
  11. <result column="phone" property="phone" />
  12. <result column="userType" property="userType" />
  13. </resultMap>
  14. <select id="getList" resultMap="orderResultMap">
  15. SELECT o.*,
  16. um.id as userId,
  17. um.username as username,
  18. um.phone as phone,
  19. o.platform_type as userType
  20. FROM
  21. oms_order o
  22. left join ums_member um on um.id = member_id
  23. WHERE
  24. o.delete_status = 0
  25. <if test="queryParam.orderSn!=null and queryParam.orderSn!=''">
  26. AND o.order_sn = #{queryParam.orderSn}
  27. </if>
  28. <if test="queryParam.orderSns != null and queryParam.orderSns.size > 0">
  29. AND o.order_sn IN
  30. <foreach collection="queryParam.orderSns" item="orderSn" separator="," open="(" close=")">
  31. #{orderSn}
  32. </foreach>
  33. </if>
  34. <if test="queryParam.status!=null">
  35. AND o.`status` = #{queryParam.status}
  36. </if>
  37. <if test="queryParam.sourceType!=null">
  38. AND o.source_type = #{queryParam.sourceType}
  39. </if>
  40. <if test="queryParam.orderType!=null">
  41. AND o.order_type = #{queryParam.orderType}
  42. </if>
  43. <if test="queryParam.createTime!=null and queryParam.createTime!=''">
  44. AND DATE_FORMAT(o.create_time, '%Y-%m-%d') BETWEEN #{queryParam.createTime} AND #{queryParam.endTime}
  45. </if>
  46. <if test="queryParam.receiverKeyword!=null and queryParam.receiverKeyword!=''">
  47. AND (
  48. o.receiver_name LIKE concat("%",#{queryParam.receiverKeyword},"%")
  49. OR o.receiver_phone LIKE concat("%",#{queryParam.receiverKeyword},"%")
  50. )
  51. </if>
  52. order by o.id desc
  53. </select>
  54. <update id="delivery">
  55. UPDATE oms_order
  56. SET
  57. delivery_sn = CASE id
  58. <foreach collection="list" item="item">
  59. WHEN #{item.orderId} THEN #{item.deliverySn}
  60. </foreach>
  61. END,
  62. delivery_company = CASE id
  63. <foreach collection="list" item="item">
  64. WHEN #{item.orderId} THEN #{item.deliveryCompany}
  65. </foreach>
  66. END,
  67. delivery_time = CASE id
  68. <foreach collection="list" item="item">
  69. WHEN #{item.orderId} THEN now()
  70. </foreach>
  71. END,
  72. `status` = CASE id
  73. <foreach collection="list" item="item">
  74. WHEN #{item.orderId} THEN 2
  75. </foreach>
  76. END
  77. WHERE
  78. id IN
  79. <foreach collection="list" item="item" separator="," open="(" close=")">
  80. #{item.orderId}
  81. </foreach>
  82. AND `status` = 1
  83. </update>
  84. <select id="getDetail" resultMap="orderDetailResultMap">
  85. SELECT o.*,
  86. oi.id item_id,
  87. oi.product_id item_product_id,
  88. oi.product_sn item_product_sn,
  89. oi.product_pic item_product_pic,
  90. oi.product_name item_product_name,
  91. oi.product_brand item_product_brand,
  92. oi.product_price item_product_price,
  93. oi.product_quantity item_product_quantity,
  94. oi.product_attr item_product_attr,
  95. oh.id history_id,
  96. oh.operate_man history_operate_man,
  97. oh.create_time history_create_time,
  98. oh.order_status history_order_status,
  99. oh.note history_note
  100. FROM
  101. oms_order o
  102. LEFT JOIN oms_order_item oi ON o.id = oi.order_id
  103. LEFT JOIN oms_order_operate_history oh ON o.id = oh.order_id
  104. WHERE
  105. o.id = #{id}
  106. ORDER BY oi.id ASC,oh.create_time DESC
  107. </select>
  108. <select id="getUserOrderInfoList" resultType="java.util.Map">
  109. select
  110. member_id as userId,
  111. min(payment_time) as receiveTime
  112. from oms_order
  113. <where>
  114. <if test="startTime != null and startTime !=''">
  115. and payment_time &gt;= #{startTime}
  116. </if>
  117. <if test="endTime != null and endTime != ''">
  118. and payment_time &lt;= #{endTime}
  119. </if>
  120. <if test="userIdList != null and userIdList.size() != 0">
  121. and member_id in
  122. <foreach collection="userIdList" separator="," close=")" open="(" item="item">
  123. #{item}
  124. </foreach>
  125. </if>
  126. </where>
  127. group by member_id
  128. </select>
  129. <select id="selectOrderStatusNum" resultType="com.yonge.cooleshow.admin.dto.HomeStatistical">
  130. select
  131. sum(if(status = 0 or status = 6,1,0)) as waitPayOrder,
  132. sum(if(status = 1,1,0)) as waitOutOrder,
  133. sum(if(status = 2,1,0)) as outOrder,
  134. sum(if(status = 3,1,0)) as successOrder,
  135. sum(if(status = 2 and confirm_status = 0,1,0)) as waitReceiptOrder
  136. from oms_order where delete_status = 0
  137. </select>
  138. <select id="selectOrderCountAndAmount" resultType="com.yonge.cooleshow.admin.dto.OrderStatistical">
  139. select
  140. <choose>
  141. <when test="dateFormat == 'DAY'">
  142. date_format(create_time,'%Y-%m-%d') as date,
  143. </when>
  144. <when test="dateFormat == 'WEEK'">
  145. YEARWEEK(date_format(create_time,'%Y-%m-%d'),7) as date,
  146. </when>
  147. <when test="dateFormat == 'MONTH'">
  148. date_format(create_time,'%Y-%m') as date,
  149. </when>
  150. </choose>
  151. count(1) as orderNum,
  152. sum(pay_amount) as orderAmount
  153. from oms_order
  154. where status in (1,2,3) and create_time between #{startTime} and #{endTime}
  155. group by
  156. <choose>
  157. <when test="dateFormat == 'DAY'">
  158. date_format(create_time,'%Y-%m-%d')
  159. </when>
  160. <when test="dateFormat == 'WEEK'">
  161. YEARWEEK(date_format(create_time,'%Y-%m-%d'),7)
  162. </when>
  163. <when test="dateFormat == 'MONTH'">
  164. date_format(create_time,'%Y-%m')
  165. </when>
  166. </choose>
  167. order by
  168. <choose>
  169. <when test="dateFormat == 'DAY'">
  170. date_format(create_time,'%Y-%m-%d')
  171. </when>
  172. <when test="dateFormat == 'WEEK'">
  173. YEARWEEK(date_format(create_time,'%Y-%m-%d'),7)
  174. </when>
  175. <when test="dateFormat == 'MONTH'">
  176. date_format(create_time,'%Y-%m')
  177. </when>
  178. </choose>
  179. </select>
  180. <select id="queryOrderDetail" resultType="com.yonge.cooleshow.admin.dto.OrderDetailVo">
  181. select o.name_ organName,oo.member_id memberId,oo.member_username memberUsername,spo.trans_no_ transNo,oo.order_sn orderSn,
  182. uop.open_type_ openTypeEnum,spo.mer_nos_ merNos,spo.expect_amount_ expectAmount,oo.payment_time paymentTime,
  183. pp.product_sn productSn,ooi.product_name productName,ooi.product_quantity productQuantity,oo.receiver_name receiverName,oo.receiver_phone receiverPhone,
  184. CONCAT(oo.receiver_province,oo.receiver_city,oo.receiver_region,oo.receiver_detail_address) receiverDetailAddress,
  185. oo.delivery_company deliveryCompany,oo.delivery_sn deliverySn,oo.note,ooi.product_attr productAttr
  186. from oms_order oo
  187. left join mec_pro.student_payment_order spo ON spo.order_no_ = oo.order_sn
  188. left join mec_pro.organization o ON o.id_ = spo.organ_id_
  189. left join user_order_payment uop ON uop.order_no_ = oo.order_sn AND uop.status_ = 'succeeded'
  190. left join oms_order_item ooi ON ooi.order_id = oo.id
  191. left join pms_product pp ON pp.id = ooi.product_sku_id
  192. <where>
  193. oo.delete_status = 0
  194. <if test="queryParam.orderSn!=null and queryParam.orderSn!=''">
  195. AND oo.order_sn = #{queryParam.orderSn}
  196. </if>
  197. <if test="queryParam.status!=null">
  198. AND oo.`status` = #{queryParam.status}
  199. </if>
  200. <if test="queryParam.sourceType!=null">
  201. AND oo.source_type = #{queryParam.sourceType}
  202. </if>
  203. <if test="queryParam.orderType!=null">
  204. AND oo.order_type = #{queryParam.orderType}
  205. </if>
  206. <if test="queryParam.createTime!=null and queryParam.createTime!=''">
  207. AND oo.create_time LIKE concat(#{queryParam.createTime},"%")
  208. </if>
  209. <if test="queryParam.receiverKeyword!=null and queryParam.receiverKeyword!=''">
  210. AND (
  211. oo.receiver_name LIKE concat("%",#{queryParam.receiverKeyword},"%")
  212. OR o.receiver_phone LIKE concat("%",#{queryParam.receiverKeyword},"%")
  213. )
  214. </if>
  215. </where>
  216. order by oo.id desc
  217. </select>
  218. <select id="getDeliveryList" resultType="java.lang.String">
  219. select order_sn from oms_order where status != 1 AND id IN
  220. <foreach collection="orderIds" item="item" separator="," open="(" close=")">
  221. #{item}
  222. </foreach>
  223. </select>
  224. </mapper>