OrderCommonMapper.xml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455
  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.brokerage,
  21. cso.canRefundAmount,
  22. cso.itemCount,
  23. cso.totalAmount,
  24. cso.productAmount,
  25. cso.needPayAmount,
  26. cso.shopProductAmount,
  27. cso.shopPostFee,
  28. cso.shopTaxFee,
  29. cso.shouldPayShopAmount,
  30. cso.orderTime,
  31. cso.orderSubmitType,
  32. cso.splitFlag,
  33. cso.sendOutStatus,
  34. s.name AS shopName,
  35. s.logo AS shopLogo
  36. FROM cm_shop_order cso
  37. LEFT JOIN shop s ON cso.shopID = s.shopID
  38. WHERE cso.delFlag = 0
  39. AND cso.shopOrderID IN
  40. <foreach collection="shopOrderIds" open="(" separator="," close=")" item="shopOrderId">
  41. #{shopOrderId}
  42. </foreach>
  43. </select>
  44. <select id="getOrderPromotionsById" resultType="com.caimei365.order.model.vo.PromotionsVo">
  45. SELECT
  46. id,
  47. name,
  48. description,
  49. orderId,
  50. type,
  51. mode,
  52. touchPrice,
  53. reducedPrice,
  54. beginTime,
  55. endTime,
  56. status
  57. FROM cm_promotions_order
  58. WHERE id = #{orderPromotionsId}
  59. </select>
  60. <select id="getShopOrderProduct" resultType="com.caimei365.order.model.vo.OrderProductVo">
  61. SELECT
  62. cop.orderProductID AS orderProductId,
  63. cop.orderID AS orderId,
  64. cop.orderNo,
  65. cop.shopOrderID AS shopOrderId,
  66. cop.shopOrderNo,
  67. cop.orderPromotionsId,
  68. cop.productId,
  69. cop.shopId,
  70. cop.name,
  71. cop.productImage AS image,
  72. cop.price,
  73. cop.shopName,
  74. cop.costPrice,
  75. cop.normalPrice,
  76. cop.ladderPriceFlag,
  77. cop.discountPrice,
  78. cop.discount,
  79. cop.totalAmount,
  80. cop.totalFee,
  81. cop.shouldPayFee,
  82. cop.productUnit,
  83. cop.num,
  84. cop.presentNum,
  85. cop.discountFee,
  86. cop.includedTax,
  87. cop.invoiceType,
  88. cop.taxRate,
  89. cop.addedValueTax,
  90. cop.totalAddedValueTax,
  91. cop.singleShouldPayTotalTax,
  92. cop.shouldPayTotalTax,
  93. cop.shopProductAmount,
  94. cop.singleShopFee,
  95. cop.shopFee,
  96. cop.singleOtherFee,
  97. cop.otherFee,
  98. cop.singleCmFee,
  99. cop.cmFee,
  100. cop.payStatus,
  101. cop.buyAgainFlag,
  102. cop.notOutStore,
  103. cop.isActProduct AS actProduct,
  104. cop.productType,
  105. p.productCategory as productCategory
  106. FROM cm_order_product cop
  107. LEFT JOIN product p ON cop.productID = p.productID
  108. WHERE cop.shopOrderID = #{shopOrderId}
  109. </select>
  110. <select id="getDiscernReceipt" resultType="com.caimei365.order.model.vo.DiscernReceiptVo">
  111. SELECT
  112. cdr.id,
  113. cdr.payWay,
  114. cdr.payType,
  115. cdr.receiptType,
  116. cdr.receiptStatus,
  117. cdr.receiptAmount,
  118. cdr.confirmType,
  119. cdr.receiptDate,
  120. cdr.confirmDate,
  121. cdr.reviewDate,
  122. cdr.updateDate,
  123. cdr.delFlag,
  124. cror.associateAmount
  125. FROM cm_receipt_order_relation cror
  126. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  127. WHERE ((cror.orderID = #{orderId} AND cror.relationType = '2') OR (cror.orderID = #{shopOrderId} AND cror.relationType = '1'))
  128. AND cror.delFlag = '0' AND cdr.delFlag = '0' AND cdr.receiptStatus = '3' AND cdr.payType != '16' AND cdr.receiptStatus IN(2,3)
  129. ORDER BY cdr.receiptDate DESC
  130. </select>
  131. <select id="getRebateAmountByShopOrder" resultType="java.lang.Double">
  132. SELECT
  133. receiptAmount
  134. FROM cm_receipt_order_relation cror
  135. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  136. WHERE cror.delFlag = '0'
  137. AND cror.orderID = #{shopOrderId}
  138. AND cror.relationType = 1
  139. AND cdr.receiptStatus= '2'
  140. </select>
  141. <select id="countOfflinePayment" resultType="java.lang.Integer">
  142. SELECT count(*)
  143. FROM cm_receipt_order_relation cror
  144. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  145. WHERE cror.orderID = #{orderId}
  146. AND cror.relationType = '2' AND cror.delFlag = '0'
  147. AND cdr.delFlag = '0' AND cdr.receiptStatus IN(2,3) AND cdr.payWay = '2'
  148. </select>
  149. <select id="getShouldPayShopAmountList" resultType="java.lang.Double">
  150. SELECT shouldPayShopAmount FROM cm_shop_order WHERE orderID = #{orderId} AND delFlag = '0'
  151. </select>
  152. <update id="updateSearchHistory">
  153. UPDATE user_order_history SET
  154. userId = #{userId},
  155. searchWord = #{searchWord},
  156. searchDate = #{searchDate},
  157. delFlag = #{delFlag}
  158. WHERE id = #{id}
  159. </update>
  160. <delete id="deleteSearchHistoryLimit">
  161. DELETE FROM user_order_history
  162. WHERE userId=#{userId}
  163. AND id NOT IN (
  164. SELECT temp.id FROM (SELECT id FROM user_order_history WHERE userId=#{userId} ORDER BY id DESC LIMIT 10) AS temp
  165. )
  166. </delete>
  167. <insert id="insertSearchHistory">
  168. INSERT INTO user_order_history (userId, searchWord, searchDate, delFlag)
  169. VALUES (#{userId}, #{searchWord}, #{searchDate}, #{delFlag})
  170. </insert>
  171. <select id="getSearchHistoryIdByWord" resultType="java.lang.Integer">
  172. SELECT id FROM user_order_history
  173. WHERE searchWord = #{searchWord}
  174. ORDER BY id DESC
  175. LIMIT 1
  176. </select>
  177. <select id="countSearchHistory" resultType="java.lang.Integer">
  178. SELECT COUNT(*) FROM user_order_history WHERE userId = #{userId}
  179. </select>
  180. <select id="getOrderProductByOrderId" resultType="com.caimei365.order.model.vo.OrderProductVo">
  181. SELECT
  182. cop.orderProductID AS orderProductId,
  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,
  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. cop.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. cop.productType,
  225. p.productCategory as productCategory
  226. FROM cm_order_product cop
  227. LEFT JOIN product p ON cop.productID = p.productID
  228. WHERE orderID = #{orderId}
  229. ORDER BY cop.discountPrice DESC
  230. </select>
  231. <select id="countReturnedNum" resultType="java.lang.Integer">
  232. SELECT SUM(crpp.actualReturnedNum)
  233. FROM cm_returned_purchase_product crpp
  234. LEFT JOIN cm_returned_purchase rp ON rp.id = crpp.returnedID
  235. WHERE crpp.productID = #{productId}
  236. AND crpp.shopOrderID = #{shopOrderId}
  237. AND rp.status = '2' AND rp.delFlag = '0'
  238. </select>
  239. <select id="countActualCancelNum" resultType="java.lang.Integer">
  240. SELECT SUM(crpp.actualCancelNum)
  241. FROM cm_returned_purchase_product crpp
  242. LEFT JOIN cm_returned_purchase rp ON rp.id = crpp.returnedID
  243. WHERE crpp.productID = #{productId}
  244. AND crpp.shopOrderID = #{shopOrderId}
  245. AND rp.status = '2' AND rp.delFlag = '0'
  246. </select>
  247. <select id="getOrderByOrderId" resultType="com.caimei365.order.model.vo.OrderVo">
  248. SELECT
  249. orderID AS orderId,
  250. shopOrderIds,
  251. orderSource,
  252. orderNo,
  253. organizeID AS organizeId,
  254. userID AS userId,
  255. clubID AS clubId,
  256. buyUserID AS buyUserId,
  257. orderTime AS orderTime,
  258. updateDate AS updateDate,
  259. delFlag,
  260. userBeans,
  261. orderType,
  262. orderSubmitType,
  263. confirmFlag,
  264. onlinePayFlag,
  265. splitFlag,
  266. payFlag,
  267. receiptStatus,
  268. payStatus,
  269. zeroCostFlag,
  270. sendOutStatus,
  271. refundType,
  272. affirmPaymentFlag,
  273. productCount,
  274. presentCount,
  275. promotionalGiftsCount,
  276. hasActProduct,
  277. promotionFullReduction,
  278. secondHandOrderFlag,
  279. invoiceFlag,
  280. freePostFlag AS postageFlag,
  281. freight AS postage,
  282. productTotalFee,
  283. orderTotalFee,
  284. payTotalFee,
  285. payableAmount,
  286. balancePayFee,
  287. status,
  288. paySuccessCounter,
  289. confirmTime,
  290. payTime,
  291. rebateFlag,
  292. clauseID AS clauseId,
  293. clauseName
  294. FROM cm_order
  295. WHERE orderID = #{orderId}
  296. </select>
  297. <select id="getShopOrderListByOrderId" resultType="com.caimei365.order.model.vo.ShopOrderVo">
  298. SELECT
  299. shopOrderID AS shopOrderId,
  300. shopOrderNo,
  301. orderID AS orderId,
  302. orderNo,
  303. shopID AS shopId,
  304. note,
  305. userID AS userId,
  306. clubID AS clubId,
  307. spID AS spId,
  308. orderPromotionsId,
  309. promotionFullReduction,
  310. brokerage,
  311. canRefundAmount,
  312. itemCount,
  313. totalAmount,
  314. productAmount,
  315. needPayAmount,
  316. shopProductAmount,
  317. shopPostFee,
  318. shopTaxFee,
  319. shouldPayShopAmount,
  320. orderTime,
  321. orderSubmitType,
  322. payStatus,
  323. sendOutStatus,
  324. splitFlag
  325. FROM cm_shop_order
  326. WHERE delFlag = 0
  327. AND orderID = #{orderId}
  328. </select>
  329. <select id="getLogisticsBatchList" resultType="com.caimei365.order.model.vo.LogisticsBatchVo">
  330. SELECT
  331. id,
  332. shopOrderID AS shopOrderId,
  333. orderID AS orderId,
  334. outStoreTimes,
  335. status,
  336. mailer,
  337. shopID AS shopId,
  338. updateDate,
  339. deliveryTime,
  340. receiptTime,
  341. remarkImage,
  342. remark
  343. FROM cm_logistics_batch WHERE orderID= #{orderId}
  344. </select>
  345. <select id="getLogisticsRecord" resultType="com.caimei365.order.model.vo.LogisticsRecordVo">
  346. SELECT
  347. clr.id,
  348. clr.logisticsBatchID AS logisticsBatchId,
  349. clr.shopOrderID AS shopOrderId,
  350. clr.orderID AS orderId,
  351. clr.orderProductID AS orderProductId,
  352. clr.buyNum,
  353. clr.num,
  354. clr.productID AS productId,
  355. clr.productName,
  356. clr.image
  357. FROM cm_logistics_record clr
  358. WHERE clr.shopOrderID = #{shopOrderId} AND clr.logisticsBatchID = #{logisticsBatchId}
  359. </select>
  360. <select id="getLogisticsInfoList" resultType="com.caimei365.order.model.vo.LogisticsInformationVo">
  361. SELECT DISTINCT
  362. li.id,
  363. li.logisticsBatchID AS logisticsBatchId,
  364. li.type,
  365. li.shopOrderID AS shopOrderId,
  366. li.orderProductID AS orderProductId,
  367. li.orderID AS orderId,
  368. li.nu,
  369. li.state,
  370. li.info,
  371. li.logisticsCompanyName,
  372. li.logisticsCompanyCode,
  373. li.shopID AS shopId,
  374. li.updateDate,
  375. li.remarks
  376. FROM logistics_information li
  377. WHERE li.logisticsBatchID = #{logisticsBatchId}
  378. </select>
  379. <select id="getPrevCouponList" resultType="com.caimei365.order.model.vo.CouponVo">
  380. SELECT
  381. id AS couponId,
  382. couponAmount,
  383. touchPrice,
  384. startDate,
  385. endDate,
  386. couponType,
  387. userId,
  388. shopId,
  389. productType,
  390. categoryType
  391. FROM cm_coupon
  392. WHERE delFlag = 0 AND couponsMode = 0 AND status != 2
  393. AND (NOW() BETWEEN startDate AND endDate)
  394. <if test="userId == null or userId == 0">
  395. AND couponType != 2
  396. </if>
  397. <if test="userId > 0">
  398. AND id NOT IN(SELECT couponId FROM cm_coupon_club WHERE userId = #{userId})
  399. AND (couponType IN (0,1,3)
  400. OR couponType = 2 AND userId = #{userId}
  401. OR ((SELECT registerTime FROM USER WHERE userID = #{userId}) <![CDATA[ >= ]]> startDate
  402. AND couponType = 4))
  403. </if>
  404. ORDER BY createDate DESC
  405. </select>
  406. <select id="getClubCouponList" resultType="com.caimei365.order.model.vo.CouponVo">
  407. SELECT
  408. a.id AS clubCouponId,
  409. cc.id AS couponId,
  410. cc.couponAmount,
  411. cc.touchPrice,
  412. cc.startDate,
  413. cc.endDate,
  414. cc.couponType,
  415. cc.userId,
  416. cc.shopId,
  417. cc.productType,
  418. cc.categoryType
  419. FROM cm_coupon_club a
  420. LEFT JOIN cm_coupon cc ON a.couponId = cc.id
  421. WHERE cc.delFlag = 0
  422. AND a.delFlag = 0
  423. AND a.userId = #{userId}
  424. AND a.status = 1
  425. AND NOW() BETWEEN cc.startDate
  426. AND cc.endDate
  427. AND cc.status != 2
  428. ORDER BY a.createDate DESC
  429. </select>
  430. <select id="getCouponProductIds" resultType="java.lang.Integer">
  431. SELECT productId FROM cm_coupon_product
  432. WHERE couponId = #{couponId}
  433. <if test="source == 1">
  434. AND pcStatus = 1
  435. </if>
  436. <if test="source == 2">
  437. AND appletsStatus = 1
  438. </if>
  439. </select>
  440. <select id="getOrderInvoice" resultType="com.caimei365.order.model.vo.InvoiceVo">
  441. SELECT
  442. id,
  443. type,
  444. orderId,
  445. invoiceTitle,
  446. corporationTaxNum,
  447. registeredAddress,
  448. registeredPhone,
  449. bankAccountNo,
  450. openBank
  451. FROM bp_order_invoice
  452. WHERE orderId = #{orderId}
  453. LIMIT 1
  454. </select>
  455. </mapper>