OrderMapper.xml 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626
  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. co.orderID AS orderId,
  8. co.orderNo,
  9. co.organizeID AS organizeId,
  10. co.userID AS userId,
  11. co.buyUserID AS buyUserId,
  12. co.status,
  13. co.shopOrderIDs AS shopOrderIds,
  14. co.receiptStatus,
  15. co.payStatus,
  16. co.sendOutStatus,
  17. co.refundType,
  18. co.onlinePayFlag,
  19. co.payTotalFee,
  20. co.payableAmount,
  21. co.balancePayFee,
  22. co.discountFee,
  23. co.promotionFullReduction,
  24. co.note,
  25. co.orderSource,
  26. co.orderTime,
  27. co.productCount,
  28. co.presentCount,
  29. co.promotionalGiftsCount,
  30. co.invoiceFlag,
  31. co.clauseID AS clauseId,
  32. co.clauseContent,
  33. co.clauseName,
  34. co.freePostFlag,
  35. co.freight,
  36. co.couponAmount,
  37. co.paySuccessCounter,
  38. co.closeReason,
  39. co.reductionAmount,
  40. if(chcm.id is not null,true,false) as collageFlag,
  41. chc.id as collageId,
  42. chc.status as collageStatus,
  43. chc.endTime as collageEndTime
  44. </sql>
  45. <select id="findOrderList" resultType="com.caimei.model.vo.OrderVo">
  46. select
  47. <include refid="cm_Order_List"></include>
  48. from cm_order co
  49. left join cm_hehe_collage_member chcm on co.orderID = chcm.orderId
  50. left join cm_hehe_collage chc on chcm.collageId = chc.id
  51. where co.delFlag = '0'
  52. AND co.orderType = 2
  53. <if test="userId != null ">
  54. AND co.userID = #{userId}
  55. </if>
  56. <if test="orderState == 1 ">
  57. AND co.status IN(11,12,13,21,22,23)
  58. </if>
  59. <if test="orderState == 2 ">
  60. AND co.status IN(11,12,21,22,31,32)
  61. </if>
  62. <if test="orderState == 3 ">
  63. AND co.status IN(12,13,22,23,32,33)
  64. </if>
  65. <if test="orderState == 4 ">
  66. AND co.refundType IN(1,2)
  67. </if>
  68. <if test="orderState == 5">
  69. AND chcm.id is not null and co.refundType not in (1,2) and chc.status = 1
  70. </if>
  71. ORDER BY co.orderTime DESC
  72. </select>
  73. <select id="findLogistics" resultType="com.caimei.model.vo.LogisticsBatchVo">
  74. SELECT
  75. `id`,
  76. `shopOrderID` AS shopOrderId,
  77. `orderID` AS orderId,
  78. `outStoreTimes`,
  79. `mailer`,
  80. `shopID` AS shopId,
  81. `deliveryTime`,
  82. `receiptTime`,
  83. `remarkImage`,
  84. `remark`,
  85. `status`
  86. FROM
  87. `cm_logistics_batch`
  88. WHERE
  89. orderID = #{orderId}
  90. </select>
  91. <select id="findAllShopOrder" resultType="com.caimei.model.vo.ShopOrderVo">
  92. SELECT
  93. cso.shopOrderID AS shopOrderId,
  94. cso.shopOrderNo,
  95. cso.orderID AS orderId,
  96. cso.userID AS userId,
  97. cso.shopID AS shopId,
  98. cso.itemCount,
  99. cso.totalAmount,
  100. cso.note,
  101. cso.shopPostFee,
  102. cso.needPayAmount,
  103. cso.eachDiscount,
  104. cso.realPay,
  105. cso.receiptAmount,
  106. cso.receiptStatus,
  107. (ifnull(cso.realPay,0)-ifnull(cso.receiptAmount,0)) as restAmount,
  108. s.name AS shopName,
  109. s.logo AS shopLogo
  110. FROM
  111. cm_shop_order cso
  112. LEFT JOIN shop s ON cso.shopID = s.shopID
  113. WHERE
  114. cso.orderID = #{orderId}
  115. AND cso.delFlag = '0'
  116. </select>
  117. <select id="findOrderProduct" resultType="com.caimei.model.vo.OrderProductVo">
  118. SELECT
  119. cop.orderProductID AS orderProductId,
  120. cop.orderID AS orderId,
  121. cop.shopOrderID AS shopOrderId,
  122. cop.shopID AS shopId,
  123. cop.productID AS productId,
  124. cop.num,
  125. cop.presentNum,
  126. cop.outStoreType,
  127. cop.productNo,
  128. cop.price,
  129. cop.normalPrice,
  130. cop.costPrice,
  131. cop.totalAmount,
  132. cop.totalFee,
  133. cop.shouldPayFee,
  134. cop.discount,
  135. cop.discountPrice,
  136. cop.includedTax,
  137. cop.invoiceType,
  138. cop.taxRate,
  139. cop.addedValueTax,
  140. cop.totalAddedValueTax,
  141. cop.notOutStore,
  142. cop.name,
  143. cop.productUnit,
  144. cop.productImage,
  145. cop.productType,
  146. cop.ladderPriceFlag,
  147. cop.heUserId
  148. FROM
  149. cm_order_product cop
  150. WHERE
  151. cop.shopOrderID = #{shopOrderId}
  152. </select>
  153. <select id="findDiscernReceipt" resultType="com.caimei.model.vo.DiscernReceiptVo">
  154. SELECT
  155. cdr.id,
  156. cdr.receiptDate,
  157. cror.associateAmount
  158. FROM
  159. cm_receipt_order_relation cror
  160. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  161. WHERE
  162. cror.orderID = #{orderID}
  163. AND cror.relationType = '2'
  164. AND cror.delFlag = '0'
  165. AND cdr.delFlag = '0'
  166. AND cdr.receiptStatus = '3'
  167. AND cdr.payType != '16'
  168. ORDER BY
  169. cdr.receiptDate DESC
  170. </select>
  171. <select id="findUserInfo" resultType="com.caimei.model.vo.UserInfoVo">
  172. SELECT
  173. id,
  174. name,
  175. shouHuoRen,
  176. mobile,
  177. province as provinceName,
  178. city as cityName,
  179. town as townName,
  180. address
  181. FROM
  182. bp_order_userinfo
  183. WHERE
  184. orderId = #{orderID}
  185. </select>
  186. <select id="findOrder" resultType="com.caimei.model.vo.OrderVo">
  187. SELECT
  188. <include refid="cm_Order_List"></include>
  189. FROM
  190. cm_order co
  191. left join cm_hehe_collage_member chcm on co.orderID = chcm.orderId
  192. left join cm_hehe_collage chc on chcm.collageId = chc.id
  193. WHERE
  194. co.orderID = #{orderID}
  195. AND co.delFlag = '0'
  196. </select>
  197. <select id="returnedPurchase" resultType="integer">
  198. SELECT
  199. SUM(
  200. crpp.actualReturnedNum
  201. ) AS actualReturnedNum
  202. FROM
  203. cm_returned_purchase_product crpp
  204. LEFT JOIN cm_returned_purchase rp ON rp.id = crpp.returnedID
  205. WHERE
  206. crpp.productID = #{productId}
  207. AND crpp.shopOrderID = #{shopOrderId}
  208. AND rp.status = '2'
  209. AND rp.delFlag = '0'
  210. </select>
  211. <select id="actualCancelNum" resultType="integer">
  212. SELECT
  213. SUM(
  214. crpp.actualCancelNum
  215. ) AS actualCancelNum
  216. FROM
  217. cm_returned_purchase_product crpp
  218. LEFT JOIN cm_returned_purchase rp ON rp.id = crpp.returnedID
  219. WHERE
  220. crpp.productID = #{productId}
  221. AND crpp.shopOrderID = #{shopOrderId}
  222. AND rp.status = '2'
  223. AND rp.delFlag = '0'
  224. </select>
  225. <select id="findReturnedPurchase" resultType="java.math.BigDecimal">
  226. SELECT
  227. SUM(refundFee)
  228. FROM
  229. cm_returned_purchase
  230. WHERE
  231. orderID = #{orderId}
  232. AND STATUS = '2'
  233. </select>
  234. <select id="findLogisticsRecord" resultType="com.caimei.model.vo.LogisticsRecordVo">
  235. SELECT
  236. clr.id,
  237. clr.logisticsBatchID AS logisticsBatchId,
  238. clr.shopOrderID AS shopOrderId,
  239. clr.orderID AS orderId,
  240. clr.orderProductID AS orderProductId,
  241. clr.buyNum,
  242. clr.num,
  243. clr.productID AS productId,
  244. clr.productName,
  245. clr.image,
  246. cop.productID
  247. FROM
  248. cm_logistics_record clr
  249. LEFT JOIN cm_order_product cop ON clr.orderProductID = cop.orderProductID
  250. WHERE
  251. clr.shopOrderID = #{shopOrderId}
  252. and clr.logisticsBatchID = #{batchId}
  253. </select>
  254. <select id="findLogisticsInfo" resultType="com.caimei.model.vo.LogisticsInformationVo">
  255. SELECT DISTINCT
  256. li.`orderProductID` AS orderProductId,
  257. li.`shopOrderID` AS shopOrderId,
  258. li.`orderID` AS orderId,
  259. li.`nu`,
  260. li.`state`,
  261. li.`info`,
  262. li.`logisticsCompanyName`,
  263. li.`logisticsCompanyCode`,
  264. li.`shopID`,
  265. li.`remarks`,
  266. li.`logisticsBatchID` AS logisticsBatchId,
  267. clb.deliveryTime
  268. FROM
  269. logistics_information li
  270. LEFT JOIN cm_logistics_batch clb ON clb.id = li.logisticsBatchID
  271. LEFT JOIN cm_logistics_record clr ON clr.logisticsBatchID=clb.id
  272. WHERE
  273. li.logisticsBatchID = #{logisticsBatchId}
  274. </select>
  275. <update id="updateLogisticsBatch" parameterType="int">
  276. UPDATE
  277. cm_logistics_batch
  278. SET
  279. status = '1',
  280. updateDate = NOW(),
  281. receiptTime = NOW()
  282. WHERE
  283. orderID = #{orderId}
  284. </update>
  285. <update id="updateOrderStatus">
  286. UPDATE
  287. cm_order
  288. SET
  289. status = #{status},
  290. updateDate = NOW()
  291. WHERE
  292. orderID = #{orderId}
  293. </update>
  294. <update id="deleteOrder">
  295. UPDATE
  296. cm_order
  297. SET
  298. delFlag = 1,
  299. updateDate = NOW(),
  300. note = '用户发起删除订单'
  301. WHERE
  302. orderID = #{orderId}
  303. </update>
  304. <update id="deleteShopOrder">
  305. UPDATE cm_shop_order SET delFlag = 1 WHERE orderID = #{orderId}
  306. </update>
  307. <update id="deleteReceiptOrderRelation">
  308. UPDATE
  309. cm_receipt_order_relation
  310. SET
  311. delFlag = '1'
  312. WHERE
  313. orderID = #{orderID}
  314. </update>
  315. <update id="deleteDiscernReceipt">
  316. UPDATE
  317. cm_discern_receipt
  318. SET
  319. delFlag = '1'
  320. WHERE
  321. id = #{id}
  322. </update>
  323. <select id="findPayShopRecord" resultType="com.caimei.model.po.CmPayShopRecordPo">
  324. SELECT
  325. id,
  326. shopID,
  327. shopOrderID,
  328. shopOrderNo,
  329. payAmount,
  330. wipePayment,
  331. payType,
  332. payTime,
  333. payShopID,
  334. status,
  335. delFlag
  336. FROM
  337. cm_pay_shop_record
  338. WHERE
  339. delFlag = '0'
  340. AND shopOrderID = #{shopOrderId}
  341. ORDER BY payTime desc
  342. </select>
  343. <update id="deletePayShopRecord">
  344. UPDATE
  345. cm_pay_shop_record
  346. SET
  347. delFlag = '0'
  348. WHERE
  349. shopOrderID = #{shopOrderId}
  350. </update>
  351. <update id="updatePayShop">
  352. UPDATE
  353. cm_pay_shop
  354. SET
  355. delFlag = '0'
  356. WHERE
  357. id = #{payShopId}
  358. </update>
  359. <update id="cancelOrder">
  360. UPDATE
  361. cm_order
  362. SET
  363. STATUS = 6,
  364. updateDate = NOW(),
  365. closeReason = #{reason},
  366. closeTime = NOW()
  367. WHERE
  368. orderID = #{orderId}
  369. </update>
  370. <select id="searchOrder" resultType="com.caimei.model.vo.OrderVo">
  371. SELECT
  372. <include refid="cm_Order_List"></include>
  373. FROM
  374. cm_order co
  375. LEFT JOIN cm_order_product cop ON co.orderID = cop.orderID
  376. left join cm_hehe_collage_member chcm on co.orderID = chcm.orderId
  377. left join cm_hehe_collage chc on chcm.collageId = chc.id
  378. WHERE
  379. co.userID = #{userId}
  380. AND co.delFlag = '0'
  381. AND cop.name LIKE CONCAT('%',#{searchWord},'%')
  382. GROUP BY
  383. co.orderID
  384. ORDER BY
  385. co.orderTime DESC
  386. </select>
  387. <select id="getSearchHistoryList" resultType="string">
  388. SELECT
  389. searchWord
  390. FROM
  391. user_order_history
  392. WHERE
  393. userId = #{userId}
  394. AND delFlag = 0
  395. ORDER BY
  396. searchDate DESC
  397. LIMIT
  398. 10
  399. </select>
  400. <delete id="deleteSearchHistory">
  401. DELETE FROM user_order_history WHERE userId = #{userId}
  402. </delete>
  403. <insert id="insertHistory">
  404. INSERT INTO `user_order_history` (
  405. `userId`, `searchWord`, `searchDate`,
  406. `delFlag`
  407. )
  408. VALUES
  409. (
  410. #{userId}, #{searchWord}, #{searchDate},
  411. #{delFlag}
  412. )
  413. </insert>
  414. <select id="getHistoryIdByWord" resultType="long">
  415. SELECT
  416. id
  417. FROM
  418. user_order_history
  419. WHERE
  420. searchWord = #{userId}
  421. AND userId = #{searchWord}
  422. AND delFlag = 0
  423. </select>
  424. <update id="updateHistoryById">
  425. UPDATE user_order_history SET searchDate = #{searchDate} WHERE id = #{id}
  426. </update>
  427. <update id="revertCoupon">
  428. update cm_hehe_receive_coupon
  429. set source = 2,
  430. status = 1,
  431. orderId =null,
  432. useTime= null
  433. where id = #{receiveCouponId}
  434. </update>
  435. <delete id="deleteHistoryByUserId">
  436. DELETE FROM user_order_history
  437. WHERE userId=#{userId}
  438. AND id NOT IN (
  439. SELECT temp.id FROM (
  440. SELECT id FROM user_order_history WHERE userId=#{userId} ORDER BY id DESC LIMIT 10
  441. ) AS temp
  442. )
  443. </delete>
  444. <select id="findOrderCount" resultType="integer">
  445. SELECT
  446. COUNT(*)
  447. FROM
  448. cm_order co
  449. left join cm_hehe_collage_member chcm on co.orderID = chcm.orderId
  450. left join cm_hehe_collage chc on chcm.collageId = chc.id
  451. WHERE
  452. co.userId = #{userId}
  453. AND co.delFlag = '0'
  454. <if test="status == 0">
  455. AND co.status = '0'
  456. </if>
  457. <if test="status == 1 ">
  458. AND co.status IN(11,12,13,21,22,23)
  459. </if>
  460. <if test="status == 2 ">
  461. AND co.status IN(11,12,21,22,31,32)
  462. </if>
  463. <if test="status == 3 ">
  464. AND co.status IN(12,13,22,23,32,33)
  465. </if>
  466. <if test="status == 4 ">
  467. AND co.refundType IN(1,2)
  468. </if>
  469. <if test="status == 5">
  470. AND chcm.id is not null and co.refundType not in (1,2) and chc.status = 1
  471. </if>
  472. </select>
  473. <select id="dealerOrderList" resultType="com.caimei.model.vo.OrderVo">
  474. SELECT
  475. <include refid="cm_Order_List"></include>
  476. FROM
  477. cm_order co
  478. LEFT JOIN cm_order_product cop ON co.orderID = cop.orderID
  479. left join cm_hehe_collage_member chcm on co.orderID = chcm.orderId
  480. left join cm_hehe_collage chc on chcm.collageId = chc.id
  481. WHERE
  482. co.delFlag = '0'
  483. AND co.orderType = 2
  484. <if test="orderType == 0">
  485. AND (
  486. cop.heUserId = #{userId}
  487. OR co.userID = #{userId}
  488. )
  489. </if>
  490. <if test="orderType == 1">
  491. AND cop.heUserId = #{userId}
  492. AND co.userID != #{userId}
  493. </if>
  494. <if test="orderType == 2">
  495. AND co.userID = #{userId}
  496. </if>
  497. <if test="orderState == 1 ">
  498. AND co.status IN(11,12,13,21,22,23)
  499. </if>
  500. <if test="orderState == 2 ">
  501. AND co.status IN(11,12,21,22,31,32)
  502. </if>
  503. <if test="orderState == 3 ">
  504. AND co.status IN(12,13,22,23,32,33)
  505. </if>
  506. <if test="orderState == 4 ">
  507. AND co.refundType IN(1,2)
  508. </if>
  509. <if test="orderState == 5">
  510. AND chcm.id is not null and co.refundType not in (1,2) and chc.status = 1
  511. </if>
  512. <if test="searchWord != null and searchWord != ''">
  513. AND cop.name LIKE CONCAT('%',#{searchWord},'%')
  514. </if>
  515. GROUP BY
  516. co.orderID
  517. ORDER BY
  518. co.orderTime DESC
  519. </select>
  520. <select id="findOrderProductAll" resultType="com.caimei.model.vo.OrderProductVo">
  521. SELECT
  522. productID AS productId,
  523. heUserId,
  524. name,
  525. productImage,
  526. num
  527. FROM
  528. cm_order_product
  529. WHERE
  530. orderID = #{orderId}
  531. </select>
  532. <select id="findProductStatus" resultType="integer">
  533. SELECT validFlag FROM cm_hehe_product WHERE productId = #{productId}
  534. </select>
  535. <select id="findOrderCoupon" resultType="java.lang.Integer">
  536. select receiveCouponId from cm_hehe_coupon_order_record where orderId = #{orderId}
  537. </select>
  538. <select id="getShopOrderByOrderId" resultType="com.caimei.model.vo.ShopOrderVo">
  539. SELECT
  540. shopOrderID AS shopOrderId,
  541. shopOrderNo,
  542. orderID AS orderId,
  543. orderNo,
  544. shopID AS shopId,
  545. note,
  546. userID AS userId,
  547. clubID AS clubId,
  548. spID AS spId,
  549. orderPromotionsId,
  550. promotionFullReduction,
  551. brokerage,
  552. canRefundAmount,
  553. itemCount,
  554. totalAmount,
  555. productAmount,
  556. needPayAmount,
  557. shopProductAmount,
  558. shopPostFee,
  559. shopTaxFee,
  560. shouldPayShopAmount,
  561. orderTime,
  562. orderSubmitType,
  563. payStatus,
  564. sendOutStatus,
  565. splitFlag,
  566. realPay,
  567. receiptAmount,
  568. receiptStatus
  569. FROM cm_shop_order
  570. WHERE delFlag = 0
  571. AND shopOrderID = #{shopOrderId}
  572. </select>
  573. <select id="getShopOrderDiscernReceipt" resultType="com.caimei.model.vo.DiscernReceiptVo">
  574. SELECT
  575. cdr.id,
  576. cdr.payWay,
  577. cdr.payType,
  578. cdr.receiptType,
  579. cdr.receiptStatus,
  580. cdr.receiptAmount,
  581. cdr.confirmType,
  582. cdr.receiptDate,
  583. cdr.confirmDate,
  584. cdr.reviewDate,
  585. cdr.updateDate,
  586. cdr.delFlag,
  587. cror.associateAmount
  588. FROM cm_receipt_order_relation cror
  589. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  590. WHERE cror.orderID = #{orderId} AND cror.relationType = '2'
  591. AND cror.delFlag = '0' AND cdr.delFlag = '0' AND cdr.receiptStatus = '3' AND cdr.payType != '16' AND cdr.receiptStatus IN(2,3)
  592. ORDER BY cdr.receiptDate DESC
  593. </select>
  594. </mapper>