OmsOrderDao.xml 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  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.status!=null">
  29. AND o.`status` = #{queryParam.status}
  30. </if>
  31. <if test="queryParam.sourceType!=null">
  32. AND o.source_type = #{queryParam.sourceType}
  33. </if>
  34. <if test="queryParam.orderType!=null">
  35. AND o.order_type = #{queryParam.orderType}
  36. </if>
  37. <if test="queryParam.createTime!=null and queryParam.createTime!=''">
  38. AND o.create_time LIKE concat(#{queryParam.createTime},"%")
  39. </if>
  40. <if test="queryParam.receiverKeyword!=null and queryParam.receiverKeyword!=''">
  41. AND (
  42. o.receiver_name LIKE concat("%",#{queryParam.receiverKeyword},"%")
  43. OR o.receiver_phone LIKE concat("%",#{queryParam.receiverKeyword},"%")
  44. )
  45. </if>
  46. order by o.id desc
  47. </select>
  48. <update id="delivery">
  49. UPDATE oms_order
  50. SET
  51. delivery_sn = CASE id
  52. <foreach collection="list" item="item">
  53. WHEN #{item.orderId} THEN #{item.deliverySn}
  54. </foreach>
  55. END,
  56. delivery_company = CASE id
  57. <foreach collection="list" item="item">
  58. WHEN #{item.orderId} THEN #{item.deliveryCompany}
  59. </foreach>
  60. END,
  61. delivery_time = CASE id
  62. <foreach collection="list" item="item">
  63. WHEN #{item.orderId} THEN now()
  64. </foreach>
  65. END,
  66. `status` = CASE id
  67. <foreach collection="list" item="item">
  68. WHEN #{item.orderId} THEN 2
  69. </foreach>
  70. END
  71. WHERE
  72. id IN
  73. <foreach collection="list" item="item" separator="," open="(" close=")">
  74. #{item.orderId}
  75. </foreach>
  76. AND `status` = 1
  77. </update>
  78. <select id="getDetail" resultMap="orderDetailResultMap">
  79. SELECT o.*,
  80. oi.id item_id,
  81. oi.product_id item_product_id,
  82. oi.product_sn item_product_sn,
  83. oi.product_pic item_product_pic,
  84. oi.product_name item_product_name,
  85. oi.product_brand item_product_brand,
  86. oi.product_price item_product_price,
  87. oi.product_quantity item_product_quantity,
  88. oi.product_attr item_product_attr,
  89. if(oora.status is null,-1,oora.status) item_returnStatus,
  90. if(oora.status = 1, 4,if(oora.status = 2, 3, if(o.status = 2, 2, 1))) item_productStatus,
  91. oh.id history_id,
  92. oh.operate_man history_operate_man,
  93. oh.create_time history_create_time,
  94. oh.order_status history_order_status,
  95. oh.note history_note
  96. FROM
  97. oms_order o
  98. LEFT JOIN oms_order_item oi ON o.id = oi.order_id
  99. LEFT JOIN oms_order_operate_history oh ON o.id = oh.order_id
  100. left join oms_order_return_apply oora on oi.id = oora.order_item_id
  101. WHERE
  102. o.id = #{id}
  103. ORDER BY oi.id ASC,oh.create_time DESC
  104. </select>
  105. <select id="getUserOrderInfoList" resultType="java.util.Map">
  106. select
  107. member_id as userId,
  108. min(payment_time) as receiveTime
  109. from oms_order
  110. <where>
  111. <if test="startTime != null and startTime !=''">
  112. and payment_time &gt;= #{startTime}
  113. </if>
  114. <if test="endTime != null and endTime != ''">
  115. and payment_time &lt;= #{endTime}
  116. </if>
  117. <if test="userIdList != null and userIdList.size() != 0">
  118. and member_id in
  119. <foreach collection="userIdList" separator="," close=")" open="(" item="item">
  120. #{item}
  121. </foreach>
  122. </if>
  123. </where>
  124. group by member_id
  125. </select>
  126. <select id="selectOrderStatusNum" resultType="com.yonge.cooleshow.admin.dto.HomeStatistical">
  127. select
  128. sum(if(status = 0 or status = 6,1,0)) as waitPayOrder,
  129. sum(if(status = 1,1,0)) as waitOutOrder,
  130. sum(if(status = 2,1,0)) as outOrder,
  131. sum(if(status = 3,1,0)) as successOrder,
  132. sum(if(status = 2 and confirm_status = 0,1,0)) as waitReceiptOrder
  133. from oms_order where delete_status = 0
  134. </select>
  135. <select id="selectOrderCountAndAmount" resultType="com.yonge.cooleshow.admin.dto.OrderStatistical">
  136. select
  137. <choose>
  138. <when test="dateFormat == 'DAY'">
  139. date_format(create_time,'%Y-%m-%d') as date,
  140. </when>
  141. <when test="dateFormat == 'WEEK'">
  142. YEARWEEK(date_format(create_time,'%Y-%m-%d'),7) as date,
  143. </when>
  144. <when test="dateFormat == 'MONTH'">
  145. date_format(create_time,'%Y-%m') as date,
  146. </when>
  147. </choose>
  148. count(1) as orderNum,
  149. sum(pay_amount) as orderAmount
  150. from oms_order
  151. where status in (1,2,3) and create_time between #{startTime} and #{endTime}
  152. group by
  153. <choose>
  154. <when test="dateFormat == 'DAY'">
  155. date_format(create_time,'%Y-%m-%d')
  156. </when>
  157. <when test="dateFormat == 'WEEK'">
  158. YEARWEEK(date_format(create_time,'%Y-%m-%d'),7)
  159. </when>
  160. <when test="dateFormat == 'MONTH'">
  161. date_format(create_time,'%Y-%m')
  162. </when>
  163. </choose>
  164. order by
  165. <choose>
  166. <when test="dateFormat == 'DAY'">
  167. date_format(create_time,'%Y-%m-%d')
  168. </when>
  169. <when test="dateFormat == 'WEEK'">
  170. YEARWEEK(date_format(create_time,'%Y-%m-%d'),7)
  171. </when>
  172. <when test="dateFormat == 'MONTH'">
  173. date_format(create_time,'%Y-%m')
  174. </when>
  175. </choose>
  176. </select>
  177. </mapper>