OrderCommonMapper.xml 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580
  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.OrderCommonMapper">
  4. <select id="countLogisticsBatch" resultType="java.lang.Integer">
  5. SELECT COUNT(*) FROM cm_logistics_batch WHERE orderID= #{orderId}
  6. </select>
  7. <select id="getShopOrderList" resultType="com.caimei365.order.model.vo.ShopOrderVo">
  8. SELECT
  9. cso.shopOrderID AS shopOrderId,
  10. cso.shopOrderNo,
  11. cso.orderID AS orderId,
  12. cso.orderNo,
  13. cso.shopID AS shopId,
  14. cso.note,
  15. cso.userID AS userId,
  16. cso.clubID AS clubId,
  17. cso.spID AS spId,
  18. cso.orderPromotionsId,
  19. cso.promotionFullReduction,
  20. cso.svipShopReduction,
  21. cso.brokerage,
  22. cso.canRefundAmount,
  23. cso.itemCount,
  24. cso.totalAmount,
  25. cso.productAmount,
  26. cso.needPayAmount,
  27. cso.shopProductAmount,
  28. cso.shopPostFee,
  29. cso.shopTaxFee,
  30. cso.shouldPayShopAmount,
  31. cso.orderTime,
  32. cso.orderSubmitType,
  33. cso.splitFlag,
  34. cso.sendOutStatus,
  35. s.name AS shopName,
  36. s.logo AS shopLogo,
  37. s.shopType as shopType
  38. FROM cm_shop_order cso
  39. LEFT JOIN shop s ON cso.shopID = s.shopID
  40. WHERE cso.delFlag = 0
  41. AND cso.shopOrderID IN
  42. <foreach collection="shopOrderIds" open="(" separator="," close=")" item="shopOrderId">
  43. #{shopOrderId}
  44. </foreach>
  45. </select>
  46. <select id="getOrderPromotionsById" resultType="com.caimei365.order.model.vo.PromotionsVo">
  47. SELECT
  48. id,
  49. name,
  50. description,
  51. orderId,
  52. type,
  53. mode,
  54. touchPrice,
  55. reducedPrice,
  56. beginTime,
  57. endTime,
  58. status
  59. FROM cm_promotions_order
  60. WHERE id = #{orderPromotionsId}
  61. </select>
  62. <select id="getShopOrderProduct" resultType="com.caimei365.order.model.vo.OrderProductVo">
  63. SELECT
  64. cop.orderProductID AS orderProductId,
  65. cop.orderID AS orderId,
  66. cop.orderNo,
  67. cop.shopOrderID AS shopOrderId,
  68. cop.shopOrderNo,
  69. cop.orderPromotionsId,
  70. cop.productId,
  71. cop.shopId,
  72. cop.name,
  73. cop.productImage AS image,
  74. cop.price,
  75. cop.shopName,
  76. cop.costPrice,
  77. cop.normalPrice,
  78. cop.ladderPriceFlag,
  79. cop.discountPrice,
  80. cop.discount,
  81. cop.totalAmount,
  82. cop.totalFee,
  83. cop.shouldPayFee,
  84. cop.productUnit,
  85. cop.num,
  86. cop.presentNum,
  87. cop.discountFee,
  88. cop.includedTax,
  89. cop.invoiceType,
  90. cop.taxRate,
  91. cop.addedValueTax,
  92. cop.totalAddedValueTax,
  93. cop.singleShouldPayTotalTax,
  94. cop.shouldPayTotalTax,
  95. cop.shopProductAmount,
  96. cop.singleShopFee,
  97. cop.shopFee,
  98. cop.singleOtherFee,
  99. cop.otherFee,
  100. cop.singleCmFee,
  101. cop.cmFee,
  102. cop.payStatus,
  103. cop.buyAgainFlag,
  104. cop.notOutStore,
  105. cop.isActProduct AS actProduct,
  106. cop.productType,
  107. cop.svipPriceFlag,
  108. cop.svipPriceType,
  109. cop.svipDiscount,
  110. p.productCategory as productCategory
  111. FROM cm_order_product cop
  112. LEFT JOIN product p ON cop.productID = p.productID
  113. WHERE cop.shopOrderID = #{shopOrderId}
  114. </select>
  115. <select id="getDiscernReceipt" resultType="com.caimei365.order.model.vo.DiscernReceiptVo">
  116. SELECT
  117. cdr.id,
  118. cdr.payWay,
  119. cdr.payType,
  120. cdr.receiptType,
  121. cdr.receiptStatus,
  122. cdr.receiptAmount,
  123. cdr.confirmType,
  124. cdr.receiptDate,
  125. cdr.confirmDate,
  126. cdr.reviewDate,
  127. cdr.updateDate,
  128. cdr.delFlag,
  129. cror.associateAmount
  130. FROM cm_receipt_order_relation cror
  131. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  132. WHERE ((cror.orderID = #{orderId} AND cror.relationType = '2') OR (cror.orderID = #{shopOrderId} AND cror.relationType = '1'))
  133. AND cror.delFlag = '0' AND cdr.delFlag = '0' AND cdr.receiptStatus = '3' AND cdr.payType != '16' AND cdr.receiptStatus IN(2,3)
  134. ORDER BY cdr.receiptDate DESC
  135. </select>
  136. <select id="getVipDiscernReceipt" resultType="com.caimei365.order.model.vo.DiscernReceiptVo">
  137. SELECT
  138. cdr.id,
  139. cdr.payWay,
  140. cdr.payType,
  141. cdr.receiptType,
  142. cdr.receiptStatus,
  143. cdr.receiptAmount,
  144. cdr.confirmType,
  145. cdr.receiptDate,
  146. cdr.confirmDate,
  147. cdr.reviewDate,
  148. cdr.updateDate,
  149. cdr.delFlag,
  150. cror.mbOrderId,
  151. cror.associateAmount
  152. FROM cm_receipt_order_relation cror LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  153. WHERE vipRecordId = #{vipRecordId} AND cror.relationType = '3' AND cror.delFlag = '0' AND cdr.delFlag = '0'
  154. </select>
  155. <select id="getRebateAmountByShopOrder" resultType="java.lang.Double">
  156. SELECT
  157. receiptAmount
  158. FROM cm_receipt_order_relation cror
  159. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  160. WHERE cror.delFlag = '0'
  161. AND cror.orderID = #{shopOrderId}
  162. AND cror.relationType = 1
  163. AND cdr.receiptStatus= '2'
  164. </select>
  165. <select id="countOfflinePayment" resultType="java.lang.Integer">
  166. SELECT count(*)
  167. FROM cm_receipt_order_relation cror
  168. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  169. WHERE cror.orderID = #{orderId}
  170. AND cror.relationType = '2' AND cror.delFlag = '0'
  171. AND cdr.delFlag = '0' AND cdr.receiptStatus IN(2,3) AND cdr.payWay = '2'
  172. </select>
  173. <select id="getShouldPayShopAmountList" resultType="java.lang.Double">
  174. SELECT shouldPayShopAmount FROM cm_shop_order WHERE orderID = #{orderId} AND delFlag = '0'
  175. </select>
  176. <update id="updateSearchHistory">
  177. UPDATE user_order_history SET
  178. userId = #{userId},
  179. searchWord = #{searchWord},
  180. searchDate = #{searchDate},
  181. delFlag = #{delFlag}
  182. WHERE id = #{id}
  183. </update>
  184. <delete id="deleteSearchHistoryLimit">
  185. DELETE FROM user_order_history
  186. WHERE userId=#{userId}
  187. AND id NOT IN (
  188. SELECT temp.id FROM (SELECT id FROM user_order_history WHERE userId=#{userId} ORDER BY id DESC LIMIT 10) AS temp
  189. )
  190. </delete>
  191. <insert id="insertSearchHistory">
  192. INSERT INTO user_order_history (userId, searchWord, searchDate, delFlag)
  193. VALUES (#{userId}, #{searchWord}, #{searchDate}, #{delFlag})
  194. </insert>
  195. <select id="getSearchHistoryIdByWord" resultType="java.lang.Integer">
  196. SELECT id FROM user_order_history
  197. WHERE searchWord = #{searchWord}
  198. ORDER BY id DESC
  199. LIMIT 1
  200. </select>
  201. <select id="countSearchHistory" resultType="java.lang.Integer">
  202. SELECT COUNT(*) FROM user_order_history WHERE userId = #{userId}
  203. </select>
  204. <select id="getOrderProductByOrderId" resultType="com.caimei365.order.model.vo.OrderProductVo">
  205. SELECT
  206. cop.orderProductID AS orderProductId,
  207. cop.orderID AS orderId,
  208. cop.orderNo,
  209. cop.shopOrderID AS shopOrderId,
  210. cop.shopOrderNo,
  211. cop.orderPromotionsId,
  212. cop.productId,
  213. cop.shopId,
  214. cop.name,
  215. cop.productImage AS image,
  216. cop.price,
  217. cop.shopName,
  218. IF(cop.shopid=998 AND co.freight> 0,co.freight,cop.costPrice)AS costPrice,
  219. cop.normalPrice,
  220. cop.ladderPriceFlag,
  221. cop.discountPrice,
  222. cop.discount,
  223. cop.totalAmount,
  224. cop.totalFee,
  225. cop.shouldPayFee,
  226. cop.productUnit,
  227. cop.num,
  228. cop.presentNum,
  229. cop.discountFee,
  230. cop.includedTax,
  231. cop.invoiceType,
  232. cop.taxRate,
  233. cop.addedValueTax,
  234. cop.totalAddedValueTax,
  235. cop.singleShouldPayTotalTax,
  236. cop.shouldPayTotalTax,
  237. cop.shopProductAmount,
  238. cop.singleShopFee,
  239. cop.shopFee,
  240. cop.singleOtherFee,
  241. cop.otherFee,
  242. cop.singleCmFee,
  243. cop.cmFee,
  244. cop.payStatus,
  245. cop.buyAgainFlag,
  246. cop.notOutStore,
  247. cop.isActProduct AS actProduct,
  248. cop.productType,
  249. p.productCategory as productCategory,
  250. p.splitCode
  251. FROM cm_order_product cop
  252. LEFT JOIN product p ON cop.productID = p.productID
  253. LEFT JOIN cm_order co ON cop.orderId=co.orderId
  254. WHERE co.orderID = #{orderId}
  255. AND IF(co.userBeans=0,1=1,cop.shopid!=998)
  256. ORDER BY cop.discountPrice DESC
  257. </select>
  258. <select id="countReturnedNum" resultType="java.lang.Integer">
  259. SELECT SUM(crpp.actualReturnedNum)
  260. FROM cm_returned_purchase_product crpp
  261. LEFT JOIN cm_returned_purchase rp ON rp.id = crpp.returnedID
  262. WHERE crpp.productID = #{productId}
  263. AND crpp.shopOrderID = #{shopOrderId}
  264. AND rp.status = '2' AND rp.delFlag = '0'
  265. </select>
  266. <select id="countActualCancelNum" resultType="java.lang.Integer">
  267. SELECT SUM(crpp.actualCancelNum)
  268. FROM cm_returned_purchase_product crpp
  269. LEFT JOIN cm_returned_purchase rp ON rp.id = crpp.returnedID
  270. WHERE crpp.productID = #{productId}
  271. AND crpp.shopOrderID = #{shopOrderId}
  272. AND rp.status = '2' AND rp.delFlag = '0'
  273. </select>
  274. <select id="getOrderByOrderId" resultType="com.caimei365.order.model.vo.OrderVo">
  275. SELECT
  276. orderID AS orderId,
  277. shopOrderIds,
  278. orderSource,
  279. orderNo,
  280. organizeID AS organizeId,
  281. userID AS userId,
  282. clubID AS clubId,
  283. buyUserID AS buyUserId,
  284. orderTime AS orderTime,
  285. updateDate AS updateDate,
  286. delFlag,
  287. userBeans,
  288. orderType,
  289. orderSubmitType,
  290. confirmFlag,
  291. onlinePayFlag,
  292. splitFlag,
  293. payFlag,
  294. receiptStatus,
  295. payStatus,
  296. zeroCostFlag,
  297. sendOutStatus,
  298. refundType,
  299. affirmPaymentFlag,
  300. productCount,
  301. presentCount,
  302. promotionalGiftsCount,
  303. hasActProduct,
  304. promotionFullReduction,
  305. secondHandOrderFlag,
  306. invoiceFlag,
  307. freePostFlag AS postageFlag,
  308. freight AS postage,
  309. productTotalFee,
  310. orderTotalFee,
  311. payTotalFee,
  312. payableAmount,
  313. balancePayFee,
  314. discountFee,
  315. status,
  316. paySuccessCounter,
  317. confirmTime,
  318. payTime,
  319. rebateFlag,
  320. clauseID AS clauseId,
  321. clauseName
  322. FROM cm_order
  323. WHERE orderID = #{orderId}
  324. </select>
  325. <select id="getOrderByShopOrderId" resultType="com.caimei365.order.model.vo.OrderVo">
  326. SELECT
  327. co.orderID AS orderId,
  328. co.shopOrderIds,
  329. co.orderSource,
  330. co.orderNo,
  331. co.organizeID AS organizeId,
  332. co.userID AS userId,
  333. co.clubID AS clubId,
  334. co.buyUserID AS buyUserId,
  335. co.orderTime AS orderTime,
  336. co.updateDate AS updateDate,
  337. co.delFlag,
  338. co.userBeans,
  339. co.orderType,
  340. co.orderSubmitType,
  341. co.confirmFlag,
  342. co.onlinePayFlag,
  343. co.splitFlag,
  344. co.payFlag,
  345. co.receiptStatus,
  346. co.payStatus,
  347. co.zeroCostFlag,
  348. co.sendOutStatus,
  349. co.refundType,
  350. co.affirmPaymentFlag,
  351. co.productCount,
  352. co.presentCount,
  353. co.promotionalGiftsCount,
  354. co.hasActProduct,
  355. co.promotionFullReduction,
  356. co.secondHandOrderFlag,
  357. co.invoiceFlag,
  358. co.freePostFlag AS postageFlag,
  359. co.freight AS postage,
  360. co.productTotalFee,
  361. co.orderTotalFee,
  362. co.payTotalFee,
  363. co.payableAmount,
  364. co.balancePayFee,
  365. co.discountFee,
  366. co.status,
  367. co.paySuccessCounter,
  368. co.confirmTime,
  369. co.payTime,
  370. co.rebateFlag,
  371. co.clauseID AS clauseId,
  372. co.clauseName
  373. FROM cm_shop_order cso
  374. LEFT JOIN cm_order co ON cso.orderID = co.orderID
  375. WHERE cso.shopOrderID = #{shopOrderId}
  376. </select>
  377. <select id="getShopOrderListByOrderId" resultType="com.caimei365.order.model.vo.ShopOrderVo">
  378. SELECT
  379. shopOrderID AS shopOrderId,
  380. shopOrderNo,
  381. orderID AS orderId,
  382. orderNo,
  383. shopID AS shopId,
  384. note,
  385. userID AS userId,
  386. clubID AS clubId,
  387. spID AS spId,
  388. orderPromotionsId,
  389. promotionFullReduction,
  390. brokerage,
  391. canRefundAmount,
  392. itemCount,
  393. totalAmount,
  394. productAmount,
  395. needPayAmount,
  396. shopProductAmount,
  397. shopPostFee,
  398. shopTaxFee,
  399. shouldPayShopAmount,
  400. orderTime,
  401. orderSubmitType,
  402. payStatus,
  403. sendOutStatus,
  404. splitFlag
  405. FROM cm_shop_order
  406. WHERE delFlag = 0
  407. AND orderID = #{orderId}
  408. </select>
  409. <select id="getLogisticsBatchList" resultType="com.caimei365.order.model.vo.LogisticsBatchVo">
  410. SELECT
  411. id,
  412. shopOrderID AS shopOrderId,
  413. orderID AS orderId,
  414. outStoreTimes,
  415. status,
  416. mailer,
  417. shopID AS shopId,
  418. updateDate,
  419. deliveryTime,
  420. receiptTime,
  421. remarkImage,
  422. remark
  423. FROM cm_logistics_batch WHERE orderID= #{orderId}
  424. </select>
  425. <select id="getLogisticsRecord" resultType="com.caimei365.order.model.vo.LogisticsRecordVo">
  426. SELECT
  427. clr.id,
  428. clr.logisticsBatchID AS logisticsBatchId,
  429. clr.shopOrderID AS shopOrderId,
  430. clr.orderID AS orderId,
  431. clr.orderProductID AS orderProductId,
  432. clr.buyNum,
  433. clr.num,
  434. clr.productID AS productId,
  435. clr.productName,
  436. clr.image
  437. FROM cm_logistics_record clr
  438. WHERE clr.shopOrderID = #{shopOrderId} AND clr.logisticsBatchID = #{logisticsBatchId}
  439. </select>
  440. <select id="getLogisticsInfoList" resultType="com.caimei365.order.model.vo.LogisticsInformationVo">
  441. SELECT DISTINCT
  442. li.id,
  443. li.logisticsBatchID AS logisticsBatchId,
  444. li.type,
  445. li.shopOrderID AS shopOrderId,
  446. li.orderProductID AS orderProductId,
  447. li.orderID AS orderId,
  448. li.nu,
  449. li.state,
  450. li.info,
  451. li.logisticsCompanyName,
  452. li.logisticsCompanyCode,
  453. li.shopID AS shopId,
  454. li.updateDate,
  455. li.remarks
  456. FROM logistics_information li
  457. WHERE li.logisticsBatchID = #{logisticsBatchId}
  458. </select>
  459. <select id="getPrevCouponList" resultType="com.caimei365.order.model.vo.CouponVo">
  460. SELECT
  461. id AS couponId,
  462. couponAmount,
  463. touchPrice,
  464. moneyCouponPrice,
  465. moneyCouponFlag,
  466. moneyCouponType,
  467. <if test="userId == null || userId == 0">
  468. startDate,
  469. endDate,
  470. </if>
  471. <if test="userId >0">
  472. if(#{registerTime} <![CDATA[ > ]]> startDate,#{registerTime},startDate) as startDate,
  473. if(receiveFlag=1,endDate,date_add(if(#{registerTime} <![CDATA[ > ]]> startDate and #{registerTime} <![CDATA[ < ]]> endDate,#{registerTime},startDate),interval receivePeriod day)) as endDate,
  474. </if>
  475. couponType,
  476. userId,
  477. shopId,
  478. productType,
  479. categoryType
  480. FROM cm_coupon
  481. WHERE delFlag = 0 AND couponsMode = 0 AND status != 2
  482. <if test="userId == null or userId == 0">
  483. AND couponType != 2
  484. AND NOW() <![CDATA[ > ]]> startDate
  485. AND NOW() <![CDATA[ < ]]> if(receiveFlag = 1,endDate,date_add(startDate,interval receivePeriod day))
  486. </if>
  487. <if test="userId > 0">
  488. AND id NOT IN(SELECT couponId FROM cm_coupon_club WHERE userId = #{userId})
  489. AND (couponType IN (0,1,3)
  490. OR (couponType = 2 AND userId = #{userId})
  491. OR ((SELECT registerTime FROM USER WHERE userID = #{userId}) <![CDATA[ >= ]]> startDate
  492. AND couponType = 4))
  493. and NOW() <![CDATA[ > ]]> startDate
  494. and NOW() <![CDATA[ < ]]> if(receiveFlag = 1,endDate,
  495. date_add(if(#{registerTime} <![CDATA[ > ]]> startDate and #{registerTime} <![CDATA[ < ]]> endDate,#{registerTime},startDate),
  496. interval receivePeriod day))
  497. </if>
  498. ORDER BY createDate DESC
  499. </select>
  500. <select id="getClubCouponList" resultType="com.caimei365.order.model.vo.CouponVo">
  501. SELECT
  502. a.id AS clubCouponId,
  503. cc.id AS couponId,
  504. cc.couponAmount,
  505. cc.touchPrice,
  506. cc.moneyCouponFlag,
  507. cc.moneyCouponPrice,
  508. cc.moneyCouponType,
  509. if(cc.vipFlag = 1,cc.startDate,a.createDate) as startDate,
  510. if(cc.vipFlag = 1,cc.endDate,date_add(a.createDate,interval cc.usePeriod day)) as endDate,
  511. cc.couponType,
  512. cc.userId,
  513. cc.shopId,
  514. cc.productType,
  515. cc.categoryType
  516. FROM cm_coupon_club a
  517. LEFT JOIN cm_coupon cc ON a.couponId = cc.id
  518. WHERE cc.delFlag = 0
  519. AND a.delFlag = 0
  520. AND a.userId = #{userId}
  521. AND a.status = 1
  522. AND if(cc.vipFlag = 1,
  523. NOW() BETWEEN cc.startDate AND cc.endDate,
  524. NOW() BETWEEN a.createDate AND date_add(a.createDate,interval cc.usePeriod day))
  525. AND cc.status != 2
  526. ORDER BY a.createDate DESC
  527. </select>
  528. <select id="getCouponProductIds" resultType="java.lang.Integer">
  529. SELECT productId FROM cm_coupon_product
  530. WHERE couponId = #{couponId}
  531. <if test="source == 1">
  532. AND pcStatus = 1
  533. </if>
  534. <if test="source == 2">
  535. AND appletsStatus = 1
  536. </if>
  537. </select>
  538. <select id="getOrderInvoice" resultType="com.caimei365.order.model.vo.InvoiceVo">
  539. SELECT
  540. id,
  541. type,
  542. orderId,
  543. invoiceTitle,
  544. corporationTaxNum,
  545. registeredAddress,
  546. registeredPhone,
  547. bankAccountNo,
  548. openBank
  549. FROM bp_order_invoice
  550. WHERE orderId = #{orderId}
  551. LIMIT 1
  552. </select>
  553. <select id="getUserRegisterTime" resultType="java.util.Date">
  554. select registerTime from user where userID = #{userId}
  555. </select>
  556. <select id="findUserMoney" resultType="java.lang.Double">
  557. SELECT SUM(amount)
  558. FROM cm_user_balance_record
  559. WHERE orderId = #{orderId}
  560. AND balanceType = 1
  561. AND delflag = 0
  562. </select>
  563. <select id="findOnlineMoney" resultType="java.lang.Double">
  564. SELECT SUM(amount)
  565. FROM cm_user_balance_record
  566. WHERE orderId = #{orderId}
  567. AND balanceType = 10
  568. AND delflag = 0
  569. </select>
  570. <select id="finduserBean" resultType="java.lang.Integer">
  571. select userBeans from cm_order where orderID = #{orderId}
  572. </select>
  573. <select id="findSplitCode" resultType="java.lang.Integer">
  574. SELECT COUNT(*)
  575. FROM product p
  576. LEFT JOIN cm_order_product cop ON cop.productid=p.productid
  577. WHERE cop.orderId = #{orderId}
  578. AND (p.splitCode IS NULL OR p.splitCode = '')
  579. </select>
  580. </mapper>