OrderMapper.xml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.caimei.mapper.OrderMapper">
  6. <sql id="cm_Order_List">
  7. orderID AS orderId,
  8. orderNo,
  9. organizeID AS organizeId,
  10. userID AS userId,
  11. buyUserID AS buyUserId,
  12. status,
  13. shopOrderIDs AS shopOrderIds,
  14. receiptStatus,
  15. payStatus,
  16. sendOutStatus,
  17. refundType,
  18. onlinePayFlag,
  19. payTotalFee,
  20. payableAmount,
  21. balancePayFee,
  22. discountFee,
  23. promotionFullReduction,
  24. note,
  25. orderSource,
  26. orderTime,
  27. productCount,
  28. presentCount,
  29. promotionalGiftsCount,
  30. invoiceFlag,
  31. clauseID AS clauseId,
  32. clauseContent,
  33. clauseName,
  34. freePostFlag,
  35. freight,
  36. closeReason
  37. </sql>
  38. <select id="findOrderList" resultType="com.caimei.model.vo.OrderVo">
  39. select
  40. <include refid="cm_Order_List"></include>
  41. from cm_order
  42. where delFlag = '0'
  43. AND organizeID = #{organizeId}
  44. <if test="userId != null ">
  45. AND userID = #{userId}
  46. </if>
  47. <if test="orderState == 1 ">
  48. AND status IN(11,12,13,21,22,23)
  49. </if>
  50. <if test="orderState == 2 ">
  51. AND status IN(11,12,21,22,31,32)
  52. </if>
  53. <if test="orderState == 3 ">
  54. AND status IN(12,13,22,23,32,33)
  55. </if>
  56. <if test="orderState == 4 ">
  57. AND refundType IN(1,2)
  58. </if>
  59. ORDER BY orderTime DESC
  60. </select>
  61. <select id="findLogistics" resultType="com.caimei.model.vo.LogisticsBatchVo">
  62. SELECT * FROM cm_logistics_batch WHERE orderID= #{orderId}
  63. </select>
  64. <select id="findAllShopOrder" resultType="com.caimei.model.vo.ShopOrderVo">
  65. SELECT
  66. cso.shopOrderID AS shopOrderId,
  67. cso.shopOrderNo,
  68. cso.orderID AS orderId,
  69. cso.organizeID AS organizeId,
  70. cso.userID AS userId,
  71. cso.shopID AS shopId,
  72. cso.itemCount,
  73. cso.totalAmount,
  74. cso.promotionFullReduction,
  75. s.name AS shopName,
  76. s.logo AS shopLogo
  77. FROM
  78. cm_shop_order cso
  79. LEFT JOIN shop s ON cso.shopID = s.shopID
  80. WHERE
  81. cso.orderID = #{orderId}
  82. AND cso.delFlag = '0'
  83. </select>
  84. <select id="findOrderProduct" resultType="com.caimei.model.vo.OrderProductVo">
  85. SELECT
  86. cop.orderProductID AS orderProductId,
  87. cop.orderID AS orderId,
  88. cop.shopOrderID AS shopOrderId,
  89. cop.shopID AS shopId,
  90. cop.productID AS productId,
  91. cop.organizeProductID AS organizeProductId,
  92. cop.organizeID AS organizeId,
  93. cop.num,
  94. cop.presentNum,
  95. cop.outStoreType,
  96. cop.productNo,
  97. cop.price,
  98. cop.normalPrice,
  99. cop.costPrice,
  100. cop.price1,
  101. cop.totalAmount,
  102. cop.totalFee,
  103. cop.shouldPayFee,
  104. cop.discount,
  105. cop.discountPrice,
  106. cop.includedTax,
  107. cop.invoiceType,
  108. cop.taxRate,
  109. cop.addedValueTax,
  110. cop.totalAddedValueTax,
  111. cop.notOutStore,
  112. cop.name,
  113. cop.productUnit,
  114. cop.productImage,
  115. cop.productType,
  116. cop.orderPromotionsId
  117. FROM
  118. cm_order_product cop
  119. WHERE
  120. cop.shopOrderID = #{shopOrderId}
  121. </select>
  122. <select id="findOrderPromotionsById" resultType="com.caimei.model.po.PromotionsPo">
  123. SELECT
  124. id,
  125. name,
  126. description,
  127. orderId,
  128. type,
  129. mode,
  130. touchPrice,
  131. reducedPrice,
  132. beginTime,
  133. endTime,
  134. status
  135. FROM
  136. cm_promotions_order
  137. WHERE
  138. id = #{orderPromotionsId}
  139. </select>
  140. <select id="findDiscernReceipt" resultType="com.caimei.model.vo.DiscernReceiptVo">
  141. SELECT
  142. cdr.*,
  143. cror.associateAmount
  144. FROM
  145. cm_receipt_order_relation cror
  146. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  147. WHERE
  148. cror.orderID = #{orderID}
  149. AND cror.relationType = '2'
  150. AND cror.delFlag = '0'
  151. AND cdr.delFlag = '0'
  152. AND cdr.receiptStatus = '3'
  153. AND cdr.payType != '16'
  154. ORDER BY
  155. cdr.receiptDate DESC
  156. </select>
  157. <select id="findOfflinePayment" resultType="com.caimei.model.vo.DiscernReceiptVo">
  158. SELECT
  159. cdr.*,cror.associateAmount
  160. FROM
  161. cm_receipt_order_relation cror
  162. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  163. WHERE
  164. cror.orderID = #{orderId}
  165. AND cror.relationType = '2'
  166. AND cror.delFlag = '0'
  167. AND cdr.delFlag = '0'
  168. AND cdr.receiptStatus IN(2,3)
  169. AND cdr.payWay = '2'
  170. LIMIT 1
  171. </select>
  172. <select id="findUserInfo" resultType="com.caimei.model.vo.UserInfoVo">
  173. SELECT
  174. id,
  175. name,
  176. shouHuoRen,
  177. mobile,
  178. province,
  179. city,
  180. town,
  181. address
  182. FROM
  183. bp_order_userinfo
  184. WHERE
  185. orderId = #{orderID}
  186. </select>
  187. <select id="findOrder" resultType="com.caimei.model.vo.OrderVo">
  188. SELECT
  189. <include refid="cm_Order_List"></include>
  190. FROM
  191. cm_order
  192. WHERE
  193. orderID = #{orderID}
  194. AND delFlag = '0'
  195. </select>
  196. <select id="returnedPurchase" resultType="integer">
  197. SELECT
  198. SUM(
  199. crpp.actualReturnedNum
  200. ) AS actualReturnedNum
  201. FROM
  202. cm_returned_purchase_product crpp
  203. LEFT JOIN cm_returned_purchase rp ON rp.id = crpp.returnedID
  204. WHERE
  205. crpp.productID = #{productId}
  206. AND crpp.shopOrderID = #{shopOrderId}
  207. AND rp.status = '2'
  208. AND rp.delFlag = '0'
  209. </select>
  210. <select id="actualCancelNum" resultType="integer">
  211. SELECT
  212. SUM(
  213. crpp.actualCancelNum
  214. ) AS actualCancelNum
  215. FROM
  216. cm_returned_purchase_product crpp
  217. LEFT JOIN cm_returned_purchase rp ON rp.id = crpp.returnedID
  218. WHERE
  219. crpp.productID = #{productId}
  220. AND crpp.shopOrderID = #{shopOrderId}
  221. AND rp.status = '2'
  222. AND rp.delFlag = '0'
  223. </select>
  224. <select id="getOrderInvoice" resultType="com.caimei.model.vo.OrderInvoiceVo">
  225. SELECT
  226. a.*
  227. FROM bp_order_invoice a
  228. WHERE a.orderId = #{orderId}
  229. </select>
  230. <select id="findReturnedPurchase" resultType="com.caimei.model.vo.ReturnedPurchaseVo">
  231. SELECT
  232. *
  233. FROM
  234. cm_returned_purchase
  235. WHERE
  236. orderID = #{orderId}
  237. AND STATUS = '2'
  238. ORDER BY
  239. confirmReturnTime DESC
  240. </select>
  241. <select id="findLogisticsRecord" resultType="com.caimei.model.vo.LogisticsRecordVo">
  242. SELECT
  243. clr.*,
  244. cop.productID
  245. FROM
  246. cm_logistics_record clr
  247. LEFT JOIN cm_order_product cop ON clr.orderProductID = cop.orderProductID
  248. WHERE
  249. clr.shopOrderID = #{shopOrderId}
  250. and clr.logisticsBatchID = #{batchId}
  251. </select>
  252. <select id="findLogisticsInfo" resultType="com.caimei.model.vo.LogisticsInformationVo">
  253. SELECT DISTINCT
  254. li.*,
  255. clb.deliveryTime
  256. FROM
  257. logistics_information li
  258. LEFT JOIN cm_logistics_batch clb ON clb.id = li.logisticsBatchID
  259. LEFT JOIN cm_logistics_record clr ON clr.logisticsBatchID=clb.id
  260. WHERE
  261. li.logisticsBatchID = #{logisticsBatchId}
  262. </select>
  263. <update id="updateLogisticsBatch" parameterType="int">
  264. UPDATE
  265. cm_logistics_batch
  266. SET
  267. status = '1',
  268. updateDate = NOW(),
  269. receiptTime = NOW()
  270. WHERE
  271. orderID = #{orderId}
  272. </update>
  273. <update id="updateOrderStatus">
  274. UPDATE
  275. cm_order
  276. SET
  277. status = #{status},
  278. updateDate = NOW()
  279. WHERE
  280. orderID = #{orderId}
  281. </update>
  282. <select id="queryCode" resultType="com.caimei.model.po.CmMallOrderShareCodePo">
  283. SELECT *
  284. FROM cm_mall_order_share_code
  285. WHERE orderID = #{orderId}
  286. AND delFlag = '0'
  287. </select>
  288. <update id="updateCode">
  289. UPDATE
  290. cm_mall_order_share_code
  291. SET
  292. shareCode = #{shareCode},
  293. expiredTime = #{expiredTime},
  294. delFlag = #{delFlag}
  295. WHERE
  296. orderID = #{orderID}
  297. </update>
  298. <delete id="deleteCodeRecord">
  299. DELETE FROM
  300. cm_mall_share_code_record
  301. WHERE
  302. orderID = #{orderId}
  303. </delete>
  304. <insert id="insertCode">
  305. INSERT INTO cm_mall_order_share_code (
  306. orderID, shareCode, ADDTIME, expiredTime,
  307. delFlag
  308. )
  309. VALUES
  310. (
  311. #{orderID}, #{shareCode}, #{addTime}, #{expiredTime},
  312. #{delFlag}
  313. )
  314. </insert>
  315. <select id="findShareCodeRecord" resultType="com.caimei.model.po.ShareCodeRecordPo">
  316. SELECT
  317. scr.*,
  318. osc.expiredTime
  319. FROM
  320. cm_mall_share_code_record scr
  321. LEFT JOIN cm_mall_order_share_code osc ON scr.shareCodeId = osc.id
  322. WHERE
  323. scr.openid = #{openid}
  324. AND osc.orderID = #{orderId}
  325. AND scr.delFlag = '0'
  326. </select>
  327. <insert id="insertShareCodeRecord">
  328. INSERT INTO cm_mall_share_code_record (
  329. openid, orderID, shareCodeId, addTime,
  330. delFlag
  331. )
  332. VALUES
  333. (
  334. #{openid}, #{orderID}, #{shareCodeId}, #{addTime},
  335. #{delFlag}
  336. )
  337. </insert>
  338. <update id="deleteOrder">
  339. UPDATE
  340. cm_order
  341. SET
  342. delFlag = 1,
  343. updateDate = NOW(),
  344. note = '用户发起删除订单'
  345. WHERE
  346. orderID = #{orderId}
  347. </update>
  348. <update id="deleteShopOrder">
  349. UPDATE cm_shop_order SET delFlag = 1 WHERE orderID = #{orderId}
  350. </update>
  351. <update id="deleteReceiptOrderRelation">
  352. UPDATE
  353. cm_receipt_order_relation
  354. SET
  355. delFlag = '1'
  356. WHERE
  357. orderID = #{orderID}
  358. </update>
  359. <update id="deleteDiscernReceipt">
  360. UPDATE
  361. cm_discern_receipt
  362. SET
  363. delFlag = '1'
  364. WHERE
  365. id = #{id}
  366. </update>
  367. <select id="findPayShopRecord" resultType="com.caimei.model.po.CmPayShopRecordPo">
  368. SELECT
  369. id,
  370. shopID,
  371. shopOrderID,
  372. shopOrderNo,
  373. payAmount,
  374. wipePayment,
  375. payType,
  376. payTime,
  377. payShopID,
  378. status,
  379. delFlag
  380. FROM
  381. cm_pay_shop_record
  382. WHERE
  383. delFlag = '0'
  384. AND shopOrderID = #{shopOrderId}
  385. ORDER BY payTime desc
  386. </select>
  387. <update id="deletePayShopRecord">
  388. UPDATE
  389. cm_pay_shop_record
  390. SET
  391. delFlag = '0'
  392. WHERE
  393. shopOrderID = #{shopOrderId}
  394. </update>
  395. <update id="updatePayShop">
  396. UPDATE
  397. cm_pay_shop
  398. SET
  399. delFlag = '0'
  400. WHERE
  401. id = #{payShopId}
  402. </update>
  403. <update id="cancelOrder">
  404. UPDATE
  405. cm_order
  406. SET
  407. STATUS = 6,
  408. updateDate = NOW(),
  409. closeReason = '用户主动取消订单',
  410. closeTime = NOW()
  411. WHERE
  412. orderID = #{orderId}
  413. </update>
  414. <select id="searchOrder" resultType="com.caimei.model.vo.OrderVo">
  415. SELECT
  416. co.orderID AS orderId,
  417. co.orderNo,
  418. co.organizeID AS organizeId,
  419. co.userID AS userId,
  420. co.buyUserID AS buyUserId,
  421. co.status,
  422. co.shopOrderIDs AS shopOrderIds,
  423. co.receiptStatus,
  424. co.payStatus,
  425. co.sendOutStatus,
  426. co.refundType,
  427. co.onlinePayFlag,
  428. co.payTotalFee,
  429. co.payableAmount,
  430. co.balancePayFee,
  431. co.discountFee,
  432. co.promotionFullReduction,
  433. co.note,
  434. co.orderSource,
  435. co.orderTime,
  436. co.productCount,
  437. co.presentCount,
  438. co.promotionalGiftsCount,
  439. co.invoiceFlag,
  440. co.clauseID AS clauseId,
  441. co.clauseContent,
  442. co.clauseName,
  443. co.freePostFlag,
  444. co.freight,
  445. co.closeReason
  446. FROM
  447. cm_order co
  448. LEFT JOIN cm_order_product cop ON co.orderID = cop.orderID
  449. WHERE
  450. co.organizeID = #{organizeId}
  451. AND co.delFlag = '0'
  452. AND cop.name LIKE CONCAT('%',#{searchWord},'%')
  453. GROUP BY
  454. co.orderID
  455. ORDER BY
  456. co.orderTime DESC
  457. </select>
  458. <select id="getSearchHistoryList" resultType="string">
  459. SELECT
  460. searchWord
  461. FROM
  462. cm_mall_order_search_history
  463. WHERE
  464. organizeID = #{organizeId}
  465. AND delFlag = 0
  466. ORDER BY
  467. searchDate DESC
  468. LIMIT
  469. 10
  470. </select>
  471. <delete id="deleteSearchHistory">
  472. DELETE FROM cm_mall_order_search_history WHERE organizeID = #{organizeId}
  473. </delete>
  474. <insert id="insertHistory">
  475. INSERT INTO `cm_mall_order_search_history` (
  476. `organizeID`, `openID`, `searchWord`,
  477. `searchDate`, `delFlag`
  478. )
  479. VALUES
  480. (
  481. #{organizeID}, #{openID}, #{searchWord},
  482. #{searchDate}, #{delFlag}
  483. )
  484. </insert>
  485. </mapper>