OrderMapper.xml 18 KB

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