OrderClubMapper.xml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581
  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.caimei365.order.mapper.OrderClubMapper">
  4. <update id="updateSecondStatus">
  5. UPDATE cm_second_hand_detail SET sold = #{sold}
  6. WHERE productID = #{productId} AND secondHandType=1
  7. </update>
  8. <update id="updateUserMoneyByUserId">
  9. UPDATE USER SET userMoney = #{userMoney}
  10. WHERE userID = #{userId}
  11. </update>
  12. <update id="updateAbleUserMoneyByUserId">
  13. UPDATE USER SET ableUserMoney = #{ableUserMoney}
  14. WHERE userID = #{userId}
  15. </update>
  16. <update id="updateOrderStatus">
  17. UPDATE cm_order SET
  18. status = #{status}
  19. <if test="receiptStatus != null and receiptStatus != ''">
  20. ,receiptStatus = #{receiptStatus}
  21. </if>
  22. <if test="payStatus != null and payStatus != ''">
  23. ,payStatus = #{payStatus}
  24. </if>
  25. <if test="confirmFlag != null and confirmFlag != ''">
  26. ,confirmFlag = #{confirmFlag}
  27. </if>
  28. <if test="confirmTime != null and confirmTime != ''">
  29. ,confirmTime = #{confirmTime}
  30. </if>
  31. <if test="affirmPaymentFlag != null and affirmPaymentFlag != ''">
  32. ,affirmPaymentFlag = #{affirmPaymentFlag}
  33. </if>
  34. ,updateDate = #{updateDate}
  35. WHERE orderID = #{orderId}
  36. </update>
  37. <update id="cancelBalanceRecord">
  38. UPDATE cm_user_balance_record SET
  39. remark = #{remark},
  40. delFlag = #{delFlag}
  41. WHERE userId = #{userId} AND orderId = #{orderId}
  42. </update>
  43. <update id="cancelMainOrder">
  44. UPDATE cm_order SET
  45. status = #{status},
  46. closeReason = #{closeReason},
  47. closeTime = #{closeTime}
  48. WHERE orderID = #{orderId}
  49. </update>
  50. <update id="deleteMainOrder">
  51. UPDATE cm_order SET delFlag=1, note=#{note}
  52. WHERE orderID = #{orderId}
  53. </update>
  54. <update id="deleteShopOrder">
  55. UPDATE cm_shop_order SET delFlag=1
  56. WHERE shopOrderID IN
  57. <foreach collection="shopOrderIds" open="(" separator="," close=")" item="shopOrderId">
  58. #{shopOrderId}
  59. </foreach>
  60. </update>
  61. <update id="deleteOrderReceiptRelation">
  62. UPDATE cm_receipt_order_relation SET delFlag=1
  63. WHERE orderID = #{orderId}
  64. </update>
  65. <update id="deleteDiscernReceipt">
  66. UPDATE cm_discern_receipt SET delFlag=1
  67. WHERE id IN
  68. <foreach collection="receiptIds" open="(" separator="," close=")" item="receiptId">
  69. #{receiptId}
  70. </foreach>
  71. </update>
  72. <update id="deletePayShopRecord">
  73. UPDATE cm_pay_shop_record SET delFlag = 1
  74. WHERE shopOrderID IN
  75. <foreach collection="shopOrderIds" open="(" separator="," close=")" item="shopOrderId">
  76. #{shopOrderId}
  77. </foreach>
  78. </update>
  79. <update id="deletePayShop">
  80. UPDATE cm_pay_shop SET delFlag = 1
  81. WHERE id = IN
  82. <foreach collection="payIds" open="(" separator="," close=")" item="payId">
  83. #{payId}
  84. </foreach>
  85. </update>
  86. <update id="updateLogisticsBatch">
  87. UPDATE cm_logistics_batch
  88. SET status = 1, updateDate = NOW(), receiptTime = NOW()
  89. WHERE orderID = #{orderId}
  90. </update>
  91. <update id="updateOrderShareCode">
  92. UPDATE cm_mall_order_share_code
  93. SET shareCode = #{shareCode}, expiredTime = #{expiredTime}, delFlag = #{delFlag}
  94. WHERE id = #{id}
  95. </update>
  96. <update id="updateCouponClubStatus">
  97. UPDATE cm_coupon_club SET
  98. status = 2, useDate = NOW(), orderId = #{orderId}
  99. WHERE id = #{clubCouponId}
  100. </update>
  101. <delete id="deleteOrderSearchHistory">
  102. DELETE FROM user_order_history WHERE userId=#{userId}
  103. </delete>
  104. <delete id="deleteOrderShareCodeRecord">
  105. DELETE FROM cm_mall_share_code_record WHERE orderID = #{orderId}
  106. </delete>
  107. <update id="deleteCouponClubById">
  108. update cm_coupon_club set delFlag = '1' where id = #{clubCouponId}
  109. </update>
  110. <insert id="insertOrderShareCode">
  111. INSERT INTO cm_mall_order_share_code (orderID, shareCode, addTime, expiredTime, delFlag)
  112. VALUES (#{orderId}, #{shareCode}, #{addTime}, #{expiredTime}, #{delFlag})
  113. </insert>
  114. <insert id="insertOrderShareCodeRecord">
  115. INSERT INTO cm_mall_share_code_record (openid, orderID, shareCodeId, addTime, delFlag)
  116. VALUES (#{openId}, #{orderId}, #{shareCodeId}, #{addTime}, #{delFlag})
  117. </insert>
  118. <insert id="insertCouponClub">
  119. INSERT INTO cm_coupon_club(userId, couponId, orderId, returnedId, source, status, createDate, useDate, delFlag)
  120. VALUES (#{userId},#{couponId},#{orderId},#{returnedId},#{source},#{status},#{createDate},#{useDate},#{delFlag})
  121. </insert>
  122. <insert id="insertCouponRecord">
  123. INSERT INTO cm_coupon_buyrecord(couponId,payStatus,userId,orderId,delflag)
  124. values (#{couponId},1,#{userId},#{orderId},0)
  125. </insert>
  126. <select id="countMainOrderByOrderId" resultType="java.lang.Integer">
  127. SELECT COUNT(*) FROM cm_order WHERE orderID = #{orderId}
  128. </select>
  129. <select id="getMainOrderByOrderId" resultType="com.caimei365.order.model.po.OrderPo">
  130. SELECT
  131. ifnull(orderSeen,0) AS orderSeen,
  132. orderID AS orderId,
  133. shopOrderIds,
  134. orderSource,
  135. orderNo,
  136. userID AS userId,
  137. clubID AS clubId,
  138. buyUserID AS buyUserId,
  139. orderTime AS orderTime,
  140. updateDate AS updateDate,
  141. delFlag,
  142. userBeans,
  143. orderType,
  144. orderSubmitType,
  145. confirmFlag,
  146. onlinePayFlag,
  147. splitFlag,
  148. payFlag,
  149. receiptStatus,
  150. payStatus,
  151. zeroCostFlag,
  152. sendOutStatus,
  153. refundType,
  154. affirmPaymentFlag,
  155. productCount,
  156. presentCount,
  157. promotionalGiftsCount,
  158. hasActProduct,
  159. promotionFullReduction,
  160. svipFullReduction,
  161. secondHandOrderFlag,
  162. invoiceFlag,
  163. freePostFlag AS postageFlag,
  164. freight AS postage,
  165. productTotalFee,
  166. orderTotalFee,
  167. payTotalFee,
  168. payableAmount,
  169. balancePayFee,
  170. discountFee,
  171. couponAmount,
  172. status,
  173. confirmTime,
  174. payTime,
  175. rebateFlag,
  176. clauseID AS clauseId,
  177. clauseName
  178. FROM cm_order
  179. WHERE orderID = #{orderId}
  180. </select>
  181. <select id="getOrderProductList" resultType="com.caimei365.order.model.po.OrderProductPo">
  182. SELECT
  183. cop.orderID AS orderId,
  184. cop.orderNo,
  185. cop.shopOrderID AS shopOrderId,
  186. cop.shopOrderNo,
  187. cop.orderPromotionsId,
  188. cop.productId,
  189. cop.shopID AS shopId,
  190. cop.name,
  191. cop.productImage AS image,
  192. cop.price,
  193. cop.shopName,
  194. cop.costPrice,
  195. cop.normalPrice,
  196. cop.ladderPriceFlag,
  197. cop.discountPrice,
  198. cop.discount,
  199. cop.totalAmount,
  200. cop.totalFee,
  201. cop.shouldPayFee,
  202. cop.productUnit,
  203. cop.num,
  204. IFNULL(cop.presentNum,0) AS presentNum,
  205. cop.discountFee,
  206. cop.includedTax,
  207. cop.invoiceType,
  208. cop.taxRate,
  209. cop.addedValueTax,
  210. cop.totalAddedValueTax,
  211. cop.singleShouldPayTotalTax,
  212. cop.shouldPayTotalTax,
  213. cop.shopProductAmount,
  214. cop.singleShopFee,
  215. cop.shopFee,
  216. cop.singleOtherFee,
  217. cop.otherFee,
  218. cop.singleCmFee,
  219. cop.cmFee,
  220. cop.payStatus,
  221. cop.buyAgainFlag,
  222. cop.notOutStore,
  223. cop.isActProduct AS actProduct,
  224. p.productCategory AS productCategory
  225. FROM cm_order_product cop
  226. LEFT JOIN product p ON p.productID = cop.productID
  227. WHERE cop.orderID = #{orderID}
  228. </select>
  229. <select id="getOrderReceiptIds" resultType="java.lang.String">
  230. SELECT c.id
  231. FROM cm_discern_receipt c
  232. LEFT JOIN cm_receipt_order_relation r ON r.receiptID = c.id
  233. WHERE r.orderID = #{orderID}
  234. AND r.relationType = '2'
  235. AND r.delFlag = '0'
  236. AND c.delFlag = '0'
  237. AND c.receiptStatus = '3'
  238. AND c.payType != '16'
  239. </select>
  240. <select id="getPayShopIds" resultType="java.lang.String">
  241. SELECT payShopID FROM cm_pay_shop_record
  242. WHERE delFlag = 0
  243. AND shopOrderID IN
  244. <foreach collection="shopOrderIds" open="(" separator="," close=")" item="shopOrderId">
  245. #{shopOrderId}
  246. </foreach>
  247. </select>
  248. <select id="getOrderCount" resultType="java.lang.Integer">
  249. SELECT COUNT(*) FROM cm_order
  250. WHERE delFlag = 0 AND userID = #{userId}
  251. <if test="orderState == 1 ">
  252. AND status = '0'
  253. </if>
  254. <if test="orderState == 2 ">
  255. AND status IN(11,12,13,21,22,23)
  256. </if>
  257. <if test="orderState == 3 ">
  258. AND status IN(11,12,21,22,31,32)
  259. </if>
  260. <if test="orderState == 4 ">
  261. AND status IN(12,13,22,23,32,33)
  262. </if>
  263. <if test="orderState == 5 ">
  264. AND refundType IN(1,2)
  265. </if>
  266. </select>
  267. <select id="getOrderSeenCount" resultType="java.lang.Integer">
  268. SELECT COUNT(*) FROM cm_order
  269. WHERE delFlag = 0 AND userID = #{userId}
  270. <if test="orderState == 1 ">
  271. AND status = '0'
  272. </if>
  273. <if test="orderState == 2 ">
  274. AND status IN(11,12,13,21,22,23)
  275. </if>
  276. <if test="orderState == 3 ">
  277. AND status IN(11,12,21,22,31,32)
  278. </if>
  279. <if test="orderState == 4 ">
  280. AND status IN(12,13,22,23,32,33)
  281. </if>
  282. <if test="orderState == 5 ">
  283. AND refundType IN(1,2)
  284. </if>
  285. AND orderSeen = 2
  286. </select>
  287. <select id="getOrderList" resultType="com.caimei365.order.model.vo.OrderVo">
  288. SELECT
  289. ifnull(orderSeen,0) AS orderSeen,
  290. orderID AS orderId,
  291. shopOrderIds,
  292. orderSource,
  293. orderNo,
  294. userID AS userId,
  295. clubID AS clubId,
  296. buyUserID AS buyUserId,
  297. orderTime,
  298. updateDate,
  299. delFlag,
  300. userBeans,
  301. orderType,
  302. orderSubmitType,
  303. confirmFlag,
  304. onlinePayFlag,
  305. splitFlag,
  306. payFlag,
  307. receiptStatus,
  308. payStatus,
  309. zeroCostFlag,
  310. sendOutStatus,
  311. refundType,
  312. affirmPaymentFlag,
  313. productCount,
  314. presentCount,
  315. promotionalGiftsCount,
  316. hasActProduct,
  317. promotionFullReduction,
  318. secondHandOrderFlag,
  319. invoiceFlag,
  320. freePostFlag AS postageFlag,
  321. freight AS postage,
  322. productTotalFee,
  323. orderTotalFee,
  324. payTotalFee,
  325. payableAmount,
  326. balancePayFee,
  327. discountFee,
  328. couponAmount,
  329. status,
  330. confirmTime,
  331. payTime,
  332. rebateFlag,
  333. clauseID AS clauseId,
  334. clauseName
  335. FROM cm_order
  336. WHERE delFlag = 0 AND userID = #{userId}
  337. <if test="orderState == 1 ">
  338. AND status = '0'
  339. </if>
  340. <if test="orderState == 2 ">
  341. AND status IN(11,12,13,21,22,23)
  342. </if>
  343. <if test="orderState == 3 ">
  344. AND status IN(11,12,21,22,31,32)
  345. </if>
  346. <if test="orderState == 4 ">
  347. AND status IN(12,13,22,23,32,33)
  348. </if>
  349. <if test="orderState == 5 ">
  350. AND refundType IN(1,2)
  351. </if>
  352. <if test="orderNo != null and orderNo != '' ">
  353. AND orderNo = #{orderNo}
  354. </if>
  355. <if test="beginTime != null and beginTime != '' ">
  356. AND orderTime <![CDATA[>=]]> #{beginTime}
  357. </if>
  358. <if test="endTime != null and endTime != '' ">
  359. AND orderTime <![CDATA[<=]]> #{endTime}
  360. </if>
  361. ORDER BY orderTime DESC
  362. </select>
  363. <select id="getOrderListByKeyword" resultType="com.caimei365.order.model.vo.OrderVo">
  364. SELECT DISTINCT
  365. ifnull(co.orderSeen,0) AS orderSeen,
  366. co.orderID AS orderId,
  367. shopOrderIds,
  368. co.orderSource,
  369. co.orderNo,
  370. co.userID AS userId,
  371. co.clubID AS clubId,
  372. co.buyUserID AS buyUserId,
  373. co.orderTime,
  374. co.updateDate,
  375. co.delFlag,
  376. co.userBeans,
  377. co.orderType,
  378. co.orderSubmitType,
  379. co.confirmFlag,
  380. co.onlinePayFlag,
  381. co.splitFlag,
  382. co.payFlag,
  383. co.receiptStatus,
  384. co.payStatus,
  385. co.zeroCostFlag,
  386. co.sendOutStatus,
  387. co.refundType,
  388. co.affirmPaymentFlag,
  389. co.productCount,
  390. co.presentCount,
  391. co.promotionalGiftsCount,
  392. co.hasActProduct,
  393. co.promotionFullReduction,
  394. co.secondHandOrderFlag,
  395. co.invoiceFlag,
  396. co.freePostFlag AS postageFlag,
  397. co.freight AS postage,
  398. co.productTotalFee,
  399. co.orderTotalFee,
  400. co.payTotalFee,
  401. co.payableAmount,
  402. co.balancePayFee,
  403. co.discountFee,
  404. co.couponAmount,
  405. co.status,
  406. co.confirmTime,
  407. co.payTime,
  408. co.rebateFlag,
  409. co.clauseID AS clauseId,
  410. co.clauseName
  411. FROM cm_order co
  412. LEFT JOIN cm_order_product cop ON co.orderID = cop.orderID
  413. WHERE co.delFlag = 0 AND co.userID = #{userId}
  414. AND cop.name LIKE CONCAT('%',#{searchWord},'%')
  415. GROUP BY co.orderID, co.orderTime
  416. ORDER BY co.orderTime DESC
  417. </select>
  418. <select id="getOrderSearchHistory" resultType="com.caimei365.order.model.vo.SearchHistoryVo">
  419. SELECT id, userId, searchWord, searchDate, delFlag
  420. FROM user_order_history
  421. WHERE userId = #{userId}
  422. ORDER BY id DESC
  423. </select>
  424. <select id="getReturnedPurchaseList" resultType="com.caimei365.order.model.vo.ReturnedPurchaseVo">
  425. SELECT
  426. id,
  427. returnedNo,
  428. orderID AS orderId,
  429. userID AS userId,
  430. status,
  431. returnedWay,
  432. payType,
  433. operatingOrderStatus,
  434. bankAccountName,
  435. bankAccountNo,
  436. openBank,
  437. bankAccountType,
  438. returnedPurchaseFee,
  439. refundFee,
  440. refundBalanceFee,
  441. refundOnlineFee,
  442. refundOfflineFee,
  443. image1,
  444. image2,
  445. image3,
  446. image4,
  447. image5,
  448. reviewImage1,
  449. reviewImage2,
  450. reviewImage3,
  451. reviewImage4,
  452. reviewImage5,
  453. remarks,
  454. reviewRemarks,
  455. applicationUserID AS applicationUserId,
  456. returnTime,
  457. reviewUserID AS reviewUserId,
  458. confirmReturnTime,
  459. delFlag
  460. FROM cm_returned_purchase
  461. WHERE orderID = #{orderId} AND STATUS = '2'
  462. ORDER BY confirmReturnTime DESC
  463. </select>
  464. <select id="getClauseById" resultType="com.caimei365.order.model.vo.ClauseVo">
  465. SELECT
  466. id,
  467. name,
  468. content,
  469. clauseType,
  470. enabledStatus
  471. FROM bp_clause
  472. where id = #{clauseId}
  473. </select>
  474. <select id="getBatchShopOrderIds" resultType="java.lang.String">
  475. SELECT shopOrderID
  476. FROM cm_logistics_record
  477. WHERE orderID = #{orderId}
  478. AND logisticsBatchID = #{id}
  479. </select>
  480. <select id="getOrderCodeById" resultType="com.caimei365.order.model.vo.OrderShareCodeVo">
  481. SELECT
  482. id,
  483. orderID AS orderId,
  484. shareCode,
  485. addTime,
  486. expiredTime,
  487. delFlag
  488. FROM cm_mall_order_share_code
  489. WHERE orderID = #{orderId} AND delFlag = '0'
  490. LIMIT 1
  491. </select>
  492. <select id="countShareCodeRecord" resultType="java.lang.Integer">
  493. SELECT COUNT(*)
  494. FROM cm_mall_share_code_record scr
  495. LEFT JOIN cm_mall_order_share_code osc ON scr.shareCodeId = osc.id
  496. WHERE scr.openid = #{openId} AND osc.orderID = #{orderId}
  497. AND scr.delFlag = '0' AND osc.expiredTime > NOW()
  498. </select>
  499. <select id="getOpenidListByPermission" resultType="java.lang.String">
  500. SELECT DISTINCT scr.openid FROM cm_mall_share_code_record scr
  501. LEFT JOIN cm_mall_order_share_code osc ON scr.orderId = osc.orderId
  502. WHERE scr.orderId=#{orderId}
  503. </select>
  504. <select id="getOrderId" resultType="java.lang.String">
  505. SELECT DISTINCT p.name FROM product p
  506. LEFT JOIN cm_order_product cmp ON p.productID = cmp.productID
  507. LEFT JOIN `cm_order` cm ON cm.orderNo=cmp.orderNo
  508. WHERE cmp.orderId=#{orderId} AND cm.status=0
  509. </select>
  510. <select id="getpayTotalFee" resultType="java.lang.Double">
  511. SELECT payTotalFee FROM cm_order WHERE orderId=#{orderId}
  512. </select>
  513. <select id="getpayTime" resultType="java.lang.String">
  514. SELECT payTime FROM cm_order WHERE orderId=#{orderId}
  515. </select>
  516. <select id="getreceiptStatus" resultType="java.lang.Integer">
  517. SELECT receiptStatus FROM cm_order WHERE orderId=#{orderId}
  518. </select>
  519. <select id="getsecondHandOrderFlag" resultType="java.lang.Integer">
  520. SELECT secondHandOrderFlag FROM cm_order WHERE orderId=#{orderId}
  521. </select>
  522. <select id="getrebateFlag" resultType="java.lang.Integer">
  523. SELECT rebateFlag FROM cm_order WHERE orderId=#{orderId}
  524. </select>
  525. <select id="getOrderNo" resultType="java.lang.String">
  526. SELECT DISTINCT cm.orderNo FROM product p
  527. LEFT JOIN cm_order_product cmp ON p.productID = cmp.productID
  528. LEFT JOIN `cm_order` cm ON cm.orderNo=cmp.orderNo
  529. WHERE cmp.orderId=#{orderId} AND cm.status=0
  530. </select>
  531. <select id="getClubCouponById" resultType="com.caimei365.order.model.vo.CouponVo">
  532. SELECT
  533. a.id AS clubCouponId,
  534. cc.id AS couponId,
  535. cc.couponAmount,
  536. cc.touchPrice,
  537. cc.startDate,
  538. cc.endDate,
  539. cc.couponType,
  540. cc.userId,
  541. cc.shopId,
  542. cc.productType,
  543. cc.categoryType
  544. FROM cm_coupon_club a
  545. LEFT JOIN cm_coupon cc ON a.couponId = cc.id
  546. WHERE if(cc.moneyCouponFlag=2,cc.delFlag = 0,cc.id>0)
  547. AND a.delFlag = 0
  548. AND a.couponId = #{clubCouponId}
  549. AND a.status = 1
  550. AND NOW() <![CDATA[ > ]]> startDate
  551. AND NOW() <![CDATA[ < ]]> if(receiveFlag = 1,endDate,date_add(if((SELECT registerTime FROM user WHERE userID = #{userId}) <![CDATA[ > ]]> startDate and (SELECT registerTime FROM user WHERE userID = #{userId}) <![CDATA[ < ]]> endDate,(SELECT registerTime FROM user WHERE userID = #{userId}),startDate),
  552. interval receivePeriod day))
  553. AND cc.status != 2
  554. </select>
  555. <select id="getOrderCouponRecord" resultType="com.caimei365.order.model.po.CouponOrderRecordPo">
  556. SELECT id, orderId, clubCouponId, couponType, couponAmount, touchPrice, createDate
  557. FROM cm_coupon_order_record
  558. WHERE orderId = #{orderId}
  559. </select>
  560. <select id="getCouponClubById" resultType="com.caimei365.order.model.po.CouponClubPo">
  561. SELECT userId,couponId
  562. FROM cm_coupon_club
  563. WHERE id = #{clubCouponId}
  564. </select>
  565. <select id="getLatestOrderId" resultType="java.lang.Integer">
  566. SELECT orderID FROM cm_order
  567. WHERE userId = #{userId}
  568. ORDER BY orderID DESC limit 1
  569. </select>
  570. <select id="findUserId" resultType="java.lang.Integer">
  571. select userId from cm_order where orderID = #{orderId}
  572. </select>
  573. </mapper>