ReceiptMapper.xml 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689
  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.ReceiptMapper">
  4. <insert id="insertReceipt" keyColumn="id" keyProperty="id" parameterType="com.caimei365.order.model.po.ReceiptPo" useGeneratedKeys="true">
  5. INSERT INTO cm_discern_receipt(
  6. payWay,
  7. payType,
  8. receiptType,
  9. receiptStatus,
  10. smsContent,
  11. smsMd5Code,
  12. receiptAmount,
  13. handlingFee,
  14. confirmType,
  15. receiptUserPermissionID,
  16. confirmUserPermissionID,
  17. reviewUserPermissionID,
  18. cancelUserPermissionID,
  19. noOrderReason,
  20. reviewReason,
  21. rebateRemarks,
  22. cancelReason,
  23. receiptDate,
  24. confirmDate,
  25. reviewDate,
  26. cancelDate,
  27. updateDate,
  28. delFlag
  29. ) VALUES (
  30. #{payWay},
  31. #{payType},
  32. #{receiptType},
  33. #{receiptStatus},
  34. #{smsContent},
  35. #{smsMd5Code},
  36. #{receiptAmount},
  37. #{handlingFee},
  38. #{confirmType},
  39. #{receiptUserPermissionId},
  40. #{confirmUserPermissionId},
  41. #{reviewUserPermissionId},
  42. #{cancelUserPermissionId},
  43. #{noOrderReason},
  44. #{reviewReason},
  45. #{rebateRemarks},
  46. #{cancelReason},
  47. #{receiptDate},
  48. #{confirmDate},
  49. #{reviewDate},
  50. #{cancelDate},
  51. #{updateDate},
  52. #{delFlag}
  53. )
  54. </insert>
  55. <update id="updateReceipt" parameterType="com.caimei365.order.model.po.ReceiptPo">
  56. update cm_discern_receipt
  57. <set >
  58. <if test="payWay != null" >
  59. payWay = #{payWay},
  60. </if>
  61. <if test="payType != null" >
  62. payType = #{payType},
  63. </if>
  64. <if test="receiptType != null" >
  65. receiptType = #{receiptType},
  66. </if>
  67. <if test="receiptStatus != null" >
  68. receiptStatus = #{receiptStatus},
  69. </if>
  70. <if test="smsContent != null" >
  71. smsContent = #{smsContent},
  72. </if>
  73. <if test="smsMd5Code != null" >
  74. smsMd5Code = #{smsMd5Code},
  75. </if>
  76. <if test="orderFlag != null" >
  77. orderFlag = #{orderFlag},
  78. </if>
  79. <if test="receiptAmount != null" >
  80. receiptAmount = #{receiptAmount},
  81. </if>
  82. <if test="handlingFee != null" >
  83. handlingFee = #{handlingFee},
  84. </if>
  85. <if test="confirmType != null" >
  86. confirmType = #{confirmType},
  87. </if>
  88. <if test="confirmUserPermissionId != null" >
  89. confirmUserPermissionID = #{confirmUserPermissionId},
  90. </if>
  91. <if test="reviewUserPermissionId != null" >
  92. reviewUserPermissionID = #{reviewUserPermissionId},
  93. </if>
  94. <if test="cancelUserPermissionId != null" >
  95. cancelUserPermissionID = #{cancelUserPermissionId},
  96. </if>
  97. <if test="noOrderReason != null" >
  98. noOrderReason = #{noOrderReason},
  99. </if>
  100. <if test="reviewReason != null" >
  101. reviewReason = #{reviewReason},
  102. </if>
  103. <if test="cancelReason != null" >
  104. cancelReason = #{cancelReason},
  105. </if>
  106. <if test="receiptDate != null" >
  107. receiptDate = #{receiptDate},
  108. </if>
  109. <if test="confirmDate != null" >
  110. confirmDate = #{confirmDate},
  111. </if>
  112. <if test="reviewDate != null" >
  113. reviewDate = #{reviewDate},
  114. </if>
  115. <if test="cancelDate != null" >
  116. cancelDate = #{cancelDate},
  117. </if>
  118. <if test="updateDate != null" >
  119. updateDate = #{updateDate},
  120. </if>
  121. <if test="delFlag != null" >
  122. delFlag = #{delFlag},
  123. </if>
  124. <if test="rebateRemarks != null" >
  125. rebateRemarks = #{rebateRemarks},
  126. </if>
  127. </set>
  128. where id = #{id}
  129. </update>
  130. <update id="updateOpenidByMobile">
  131. UPDATE cm_receipt_user SET openid=#{openid},unionId=#{unionId} WHERE mobile = #{mobile}
  132. </update>
  133. <update id="deleteReceiptRelation">
  134. UPDATE cm_receipt_order_relation SET delFlag = '1' WHERE receiptID = #{receiptId}
  135. </update>
  136. <select id="getReceiptUserByOpenid" resultType="com.caimei365.order.model.vo.ReceiptUserVo">
  137. SELECT DISTINCT id, user_type AS userType, name, mobile, openid, unionId, password
  138. FROM cm_receipt_user
  139. WHERE openid = #{openid} AND del_flag = 0
  140. </select>
  141. <select id="getReceiptUserByMobile" resultType="com.caimei365.order.model.vo.ReceiptUserVo">
  142. SELECT DISTINCT id, user_type AS userType, name, mobile, openid, unionId, password
  143. FROM cm_receipt_user
  144. WHERE mobile = #{mobile} AND del_flag = 0
  145. </select>
  146. <select id="getPermissionsByUserId" resultType="java.lang.Integer">
  147. SELECT permission FROM cm_receipt_user_permission WHERE user_id = #{userId}
  148. </select>
  149. <select id="getReceiptType" resultType="com.caimei365.order.model.vo.ReceiptTypeVo">
  150. SELECT `id`,`type` FROM cm_receipt_type ORDER BY id
  151. </select>
  152. <select id="getReceiptTypeById" resultType="com.caimei365.order.model.vo.ReceiptTypeVo">
  153. SELECT `id`,`type` FROM cm_receipt_type WHERE id = #{id}
  154. </select>
  155. <select id="getReceivablesTypeId" resultType="java.lang.Integer">
  156. SELECT DISTINCT IFNULL(id, 0) FROM cm_receipt_type WHERE type=#{type}
  157. </select>
  158. <select id="getPaidAmountByOrderId" resultType="java.lang.Double">
  159. SELECT IFNULL(SUM(cror.associateAmount), 0)
  160. FROM cm_receipt_order_relation cror
  161. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  162. <where>
  163. <if test="orderId != null and orderId != ''">
  164. AND cror.orderID = #{orderId} AND cror.relationType = 2
  165. </if>
  166. AND cdr.receiptStatus in(2,3)
  167. AND cdr.payWay != '3'
  168. AND cdr.delFlag = '0'
  169. AND cror.delFlag = '0'
  170. </where>
  171. </select>
  172. <select id="getUncheckAmount" resultType="java.lang.Double">
  173. SELECT IFNULL(SUM(cror.associateAmount), 0)
  174. FROM cm_receipt_order_relation cror
  175. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  176. <where>
  177. <if test="orderId != null and orderId != ''">
  178. AND cror.orderID = #{orderId} AND cror.relationType = 2
  179. </if>
  180. AND cdr.receiptStatus = '2'
  181. AND cdr.delFlag = '0'
  182. AND cror.delFlag = '0'
  183. </where>
  184. </select>
  185. <select id="getReturnedAmount" resultType="java.lang.Double">
  186. SELECT IFNULL(SUM(returnedPurchaseFee), 0) FROM cm_returned_purchase
  187. <where>
  188. <if test="orderId != null and orderId != ''">
  189. AND orderID = #{orderId}
  190. </if>
  191. AND status = '2'
  192. </where>
  193. </select>
  194. <select id="getReceiptNumByOrderId" resultType="java.lang.Integer">
  195. SELECT IFNULL(SUM(a.num),0) FROM cm_logistics_record a
  196. LEFT JOIN cm_logistics_batch b ON a.logisticsBatchID = b.id
  197. WHERE b.orderID = #{orderId} AND b.status = '1'
  198. </select>
  199. <select id="getReturnAndCancelNum" resultType="java.lang.Integer">
  200. SELECT IFNULL(SUM(a.actualReturnedNum + a.actualCancelNum),0)
  201. FROM cm_returned_purchase_product a
  202. LEFT JOIN cm_returned_purchase b ON a.returnedID = b.id
  203. WHERE b.orderID = #{orderId} AND b.status = '2' AND b.delFlag = '0'
  204. </select>
  205. <select id="getServiceProviderId" resultType="java.lang.Integer">
  206. SELECT s.serviceProviderID FROM serviceprovider s
  207. LEFT JOIN USER u ON s.userID = u.userID
  208. WHERE s.unionId = #{unionId} AND u.validFlag = 1
  209. LIMIT 1
  210. </select>
  211. <select id="getClubUserIdBySpId" resultType="java.lang.Integer">
  212. SELECT userID FROM club WHERE spID = #{spId}
  213. </select>
  214. <select id="getReceiptBySmsMd5Code" resultType="com.caimei365.order.model.vo.ReceiptVo">
  215. SELECT DISTINCT
  216. cdr.id,
  217. cdr.payWay,
  218. cdr.payType,
  219. cdr.receiptType,
  220. cdr.receiptStatus,
  221. cdr.receiptAmount,
  222. cdr.smsContent,
  223. cdr.smsMd5Code,
  224. cdr.receiptDate,
  225. cdr.confirmDate,
  226. cdr.handlingFee,
  227. cdr.orderFlag,
  228. cdr.noOrderReason,
  229. IFNULL((
  230. SELECT SUM(b.associateAmount) FROM cm_receipt_order_relation b WHERE b.receiptID = cdr.id AND b.delFlag = '0'
  231. ), 0) AS associateAmount
  232. FROM cm_discern_receipt cdr
  233. LEFT JOIN cm_receipt_order_relation cror ON (cror.receiptID = cdr.id AND cror.delFlag = '0')
  234. WHERE cdr.smsMd5Code = #{smsMd5Code} AND cdr.delFlag = '0'
  235. </select>
  236. <select id="getReceiptList" resultType="com.caimei365.order.model.vo.ReceiptVo" parameterType="com.caimei365.order.model.bo.ReceiptParamsBo">
  237. SELECT DISTINCT
  238. cdr.id,
  239. cdr.payWay,
  240. cdr.payType,
  241. cdr.receiptType,
  242. cdr.receiptStatus,
  243. cdr.receiptAmount,
  244. cdr.smsContent,
  245. cdr.smsMd5Code,
  246. cdr.receiptDate,
  247. cdr.confirmDate,
  248. cdr.handlingFee,
  249. cdr.orderFlag,
  250. cdr.noOrderReason,
  251. CASE WHEN cror.relationType = 2 THEN co.organizeID
  252. WHEN cror.relationType = 1 THEN cso.organizeID
  253. ELSE '' END AS organizeId,
  254. CASE WHEN cror.relationType = 2 THEN co.userID
  255. WHEN cror.relationType = 1 THEN cso.userID
  256. ELSE '' END AS userId,
  257. IFNULL((
  258. SELECT SUM(b.associateAmount) FROM cm_receipt_order_relation b WHERE b.receiptID = cdr.id AND b.delFlag = '0'
  259. ), 0) AS associateAmount
  260. FROM cm_discern_receipt cdr
  261. LEFT JOIN cm_receipt_order_relation cror ON (cror.receiptID = cdr.id AND cror.delFlag = '0')
  262. LEFT JOIN cm_order co ON (cror.orderID = co.orderID AND cror.relationType = 2)
  263. LEFT JOIN cm_shop_order cso ON (cror.orderID = cso.shopOrderID AND cror.relationType = 1)
  264. WHERE cdr.delFlag = '0'
  265. <if test="id != null and id != ''">
  266. AND cdr.id = #{id}
  267. </if>
  268. <if test="receiptType != null and receiptType != ''">
  269. AND cdr.receiptType = #{receiptType}
  270. </if>
  271. <if test="smsMd5Code != null and smsMd5Code != ''">
  272. AND cdr.smsMd5Code = #{smsMd5Code}
  273. </if>
  274. <if test="startDate != null and startDate != ''">
  275. AND cdr.receiptDate <![CDATA[ > ]]> #{startDate}
  276. </if>
  277. <if test="endDate != null and endDate != ''">
  278. AND cdr.receiptDate <![CDATA[ < ]]> #{endDate}
  279. </if>
  280. <if test="receiptStatusArr != null and receiptStatusArr != ''">
  281. AND cdr.receiptStatus in
  282. <foreach collection="receiptStatusArr" open="(" close=")" separator="," item="val">
  283. #{val}
  284. </foreach>
  285. </if>
  286. <if test="userIds != null and userIds.size() > 0 and receiptStatus != 1">
  287. AND ((co.userID IN
  288. <foreach collection="userIds" open="(" close=")" separator="," item="val">
  289. #{val}
  290. </foreach>
  291. AND cror.relationType = 2 )
  292. OR (cso.userID IN
  293. <foreach collection="userIds" open="(" close=")" separator="," item="val">
  294. #{val}
  295. </foreach>
  296. AND cror.relationType = 1)
  297. OR cror.orderID IS NULL)
  298. </if>
  299. ORDER BY cdr.receiptDate desc
  300. </select>
  301. <select id="getReceiptDetail" resultType="com.caimei365.order.model.vo.ReceiptVo">
  302. SELECT DISTINCT
  303. cdr.id,
  304. cdr.payWay,
  305. cdr.payType,
  306. cdr.receiptType,
  307. cdr.receiptStatus,
  308. cdr.receiptAmount,
  309. cdr.smsContent,
  310. cdr.smsMd5Code,
  311. cdr.receiptDate,
  312. cdr.confirmDate,
  313. cdr.handlingFee,
  314. cdr.orderFlag,
  315. cdr.noOrderReason,
  316. cru.name AS confirmUserName,
  317. su.fullName AS cancelUserName,
  318. CASE WHEN cror.relationType = 2 THEN co.organizeID
  319. WHEN cror.relationType = 1 THEN cso.organizeID
  320. ELSE '' END AS organizeId,
  321. CASE WHEN cror.relationType = 2 THEN co.userID
  322. WHEN cror.relationType = 1 THEN cso.userID
  323. ELSE '' END AS userId,
  324. IFNULL((
  325. SELECT SUM(b.associateAmount) FROM cm_receipt_order_relation b WHERE b.receiptID = cdr.id AND b.delFlag = '0'
  326. ), 0) AS associateAmount
  327. FROM cm_discern_receipt cdr
  328. LEFT JOIN cm_receipt_order_relation cror ON (cror.receiptID = cdr.id AND cror.delFlag = '0')
  329. LEFT JOIN cm_receipt_user cru ON cru.id = cdr.confirmUserPermissionID
  330. LEFT JOIN system_user su ON su.id = cdr.cancelUserPermissionID
  331. LEFT JOIN cm_order co ON (cror.orderID = co.orderID AND cror.relationType = 2)
  332. LEFT JOIN cm_shop_order cso ON (cror.orderID = cso.shopOrderID AND cror.relationType = 1)
  333. WHERE cdr.delFlag = '0' AND cdr.id = #{id}
  334. </select>
  335. <select id="getReceiptOrders" resultType="com.caimei365.order.model.vo.OrderVo">
  336. SELECT
  337. IFNULL(o.orderSeen,0) AS orderSeen,
  338. o.orderID AS orderId,
  339. o.shopOrderIds,
  340. o.orderSource,
  341. o.orderNo,
  342. o.userID AS userId,
  343. o.clubID AS clubId,
  344. o.buyUserID AS buyUserId,
  345. o.orderTime AS orderTime,
  346. o.updateDate AS updateDate,
  347. o.delFlag,
  348. o.userBeans,
  349. o.orderType,
  350. o.orderSubmitType,
  351. o.confirmFlag,
  352. o.onlinePayFlag,
  353. o.splitFlag,
  354. o.payFlag,
  355. o.receiptStatus,
  356. o.payStatus,
  357. o.zeroCostFlag,
  358. o.sendOutStatus,
  359. o.refundType,
  360. o.affirmPaymentFlag,
  361. o.productCount,
  362. o.presentCount,
  363. o.promotionalGiftsCount,
  364. o.hasActProduct,
  365. o.promotionFullReduction,
  366. o.svipFullReduction,
  367. o.secondHandOrderFlag,
  368. o.invoiceFlag,
  369. o.freePostFlag AS postageFlag,
  370. o.freight AS postage,
  371. o.productTotalFee,
  372. o.orderTotalFee,
  373. o.payTotalFee,
  374. o.payableAmount,
  375. o.balancePayFee,
  376. o.discountFee,
  377. o.couponAmount,
  378. o.status,
  379. o.confirmTime,
  380. o.payTime,
  381. o.rebateFlag,
  382. o.clauseID AS clauseId,
  383. o.clauseName,
  384. IFNULL(u.userName,'') AS userName
  385. FROM cm_order o
  386. INNER JOIN cm_receipt_order_relation cror ON o.orderID = cror.orderID
  387. INNER JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  388. LEFT JOIN USER u ON o.userID = u.userID
  389. WHERE cdr.id = #{receiptId}
  390. AND o.delFlag = '0'
  391. AND cror.delFlag = '0'
  392. AND cdr.delFlag = '0'
  393. ORDER BY o.orderTime DESC
  394. </select>
  395. <select id="getOrderListByParams" resultType="com.caimei365.order.model.vo.OrderVo">
  396. SELECT DISTINCT
  397. IFNULL(o.orderSeen,0) AS orderSeen,
  398. o.orderID AS orderId,
  399. o.shopOrderIds,
  400. o.orderSource,
  401. o.orderNo,
  402. o.userID AS userId,
  403. o.clubID AS clubId,
  404. o.buyUserID AS buyUserId,
  405. o.orderTime AS orderTime,
  406. o.updateDate AS updateDate,
  407. o.delFlag,
  408. o.userBeans,
  409. o.orderType,
  410. o.orderSubmitType,
  411. o.confirmFlag,
  412. o.onlinePayFlag,
  413. o.splitFlag,
  414. o.payFlag,
  415. o.receiptStatus,
  416. o.payStatus,
  417. o.zeroCostFlag,
  418. o.sendOutStatus,
  419. o.refundType,
  420. o.affirmPaymentFlag,
  421. o.productCount,
  422. o.presentCount,
  423. o.promotionalGiftsCount,
  424. o.hasActProduct,
  425. o.promotionFullReduction,
  426. o.svipFullReduction,
  427. o.secondHandOrderFlag,
  428. o.invoiceFlag,
  429. o.freePostFlag AS postageFlag,
  430. o.freight AS postage,
  431. o.productTotalFee,
  432. o.orderTotalFee,
  433. o.payTotalFee,
  434. o.payableAmount,
  435. o.balancePayFee,
  436. o.discountFee,
  437. o.couponAmount,
  438. o.status,
  439. o.confirmTime,
  440. o.payTime,
  441. o.rebateFlag,
  442. o.clauseID AS clauseId,
  443. o.clauseName,
  444. <if test="organizeID == 0 or organizeID == null">
  445. IFNULL(u.userName, u.name) AS userName,
  446. </if>
  447. <if test="organizeID > 0">
  448. u.name AS "userName",
  449. IFNULL(u.name, u.userName) AS userName,
  450. </if>
  451. '0' AS haveReturning,
  452. '0' AS haveReceipting
  453. FROM cm_order o
  454. LEFT JOIN user u ON o.userID = u.userID
  455. LEFT JOIN cm_order_product cop ON o.orderID = cop.orderID
  456. <where>
  457. <if test="excludeOrderId != null and excludeOrderId != ''">
  458. AND o.orderID != #{excludeOrderId}
  459. </if>
  460. <if test="orderId != null and orderId != ''">
  461. AND o.orderID = #{orderId}
  462. </if>
  463. AND o.delFlag = '0'
  464. AND o.organizeID = #{organizeId}
  465. AND o.receiptStatus IN
  466. <foreach collection="receiptStatusArr" open="(" close=")" item="receiptStatus" separator=",">
  467. #{receiptStatus}
  468. </foreach>
  469. AND o.status IN
  470. <foreach collection="orderStatusList" open="(" close=")" item="status" separator=",">
  471. #{status}
  472. </foreach>
  473. <if test="userIds != null and userIds.size() > 0">
  474. AND o.userID IN
  475. <foreach collection="userIds" open="(" close=")" separator="," item="val">
  476. #{val}
  477. </foreach>
  478. </if>
  479. <if test="userName != null and userName != ''">
  480. AND (u.userName LIKE CONCAT('%',#{userName},'%') OR u.name LIKE CONCAT('%',#{userName},'%'))
  481. </if>
  482. AND o.rebateFlag = 0
  483. <if test="orderType == null or orderType == 0">
  484. AND cop.productID NOT IN(6060, 6061, 6062, 6063, 6064,6065, 6066, 6067, 6068, 6069)
  485. </if>
  486. <if test="orderType != null and orderType == 1">
  487. AND cop.productID IN(6060, 6061, 6062, 6063, 6064,6065, 6066, 6067, 6068, 6069)
  488. </if>
  489. </where>
  490. <if test="orderId != null and orderId != ''">
  491. ORDER BY (CASE WHEN o.orderID=#{orderId} THEN 1 ELSE 2 END),o.orderTime DESC
  492. </if>
  493. <if test="orderId == null or orderId == ''">
  494. ORDER BY o.orderTime DESC
  495. </if>
  496. </select>
  497. <select id="getOrderListByOrderIds" resultType="com.caimei365.order.model.vo.OrderVo">
  498. SELECT DISTINCT
  499. IFNULL(o.orderSeen,0) AS orderSeen,
  500. o.orderID AS orderId,
  501. o.shopOrderIds,
  502. o.orderSource,
  503. o.orderNo,
  504. o.userID AS userId,
  505. o.clubID AS clubId,
  506. o.buyUserID AS buyUserId,
  507. o.orderTime AS orderTime,
  508. o.updateDate AS updateDate,
  509. o.delFlag,
  510. o.userBeans,
  511. o.orderType,
  512. o.orderSubmitType,
  513. o.confirmFlag,
  514. o.onlinePayFlag,
  515. o.splitFlag,
  516. o.payFlag,
  517. o.receiptStatus,
  518. o.payStatus,
  519. o.zeroCostFlag,
  520. o.sendOutStatus,
  521. o.refundType,
  522. o.affirmPaymentFlag,
  523. o.productCount,
  524. o.presentCount,
  525. o.promotionalGiftsCount,
  526. o.hasActProduct,
  527. o.promotionFullReduction,
  528. o.svipFullReduction,
  529. o.secondHandOrderFlag,
  530. o.invoiceFlag,
  531. o.freePostFlag AS postageFlag,
  532. o.freight AS postage,
  533. o.productTotalFee,
  534. o.orderTotalFee,
  535. o.payTotalFee,
  536. o.payableAmount,
  537. o.balancePayFee,
  538. o.discountFee,
  539. o.couponAmount,
  540. o.status,
  541. o.confirmTime,
  542. o.payTime,
  543. o.rebateFlag,
  544. o.clauseID AS clauseId,
  545. o.clauseName
  546. FROM cm_order o
  547. WHERE o.delFlag = '0' AND o.orderID IN
  548. <foreach collection="orderIdS" open="(" close=")" separator="," item="orderId">
  549. #{orderId}
  550. </foreach>
  551. order by o.payableAmount, o.orderID
  552. </select>
  553. <select id="countHaveReturning" resultType="java.lang.Integer">
  554. SELECT IFNULL(COUNT(id), 0) FROM cm_returned_purchase WHERE orderID = #{orderID} AND status = 1 AND delFlag = 0
  555. </select>
  556. <select id="countHaveReceipting" resultType="java.lang.Integer">
  557. SELECT IFNULL(COUNT(cror.id), 0) FROM cm_receipt_order_relation cror
  558. INNER JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  559. WHERE cror.orderID = #{orderID} AND cror.delFlag = 0 AND cdr.delFlag = 0 AND cdr.receiptStatus = 2
  560. </select>
  561. <select id="getOnlineReceiptId" resultType="java.lang.Integer">
  562. SELECT
  563. cdr.id
  564. FROM cm_receipt_order_relation cror
  565. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  566. WHERE cror.orderID = #{orderId}
  567. AND cror.relationType = '2'
  568. AND cror.delFlag = '0'
  569. AND cdr.delFlag = '0'
  570. AND cdr.receiptStatus = '3'
  571. AND cdr.payWay = '1'
  572. LIMIT 1
  573. </select>
  574. <select id="getRefundFeeByOrderId" resultType="com.caimei365.order.model.vo.ReturnedPurchaseVo">
  575. SELECT
  576. id,
  577. returnedPurchaseFee,
  578. refundFee
  579. FROM cm_returned_purchase
  580. WHERE orderID = #{orderId} AND STATUS = '2'
  581. </select>
  582. <select id="getShopOrderListByReceiptId" resultType="com.caimei365.order.model.vo.ShopOrderVo">
  583. SELECT DISTINCT
  584. cso.shopOrderId AS shopOrderId,
  585. cso.shopOrderNo,
  586. cso.orderID AS orderId,
  587. cso.orderNo,
  588. cso.shopID AS shopId,
  589. cso.note,
  590. cso.userID AS userId,
  591. cso.clubID AS clubId,
  592. cso.spID AS spId,
  593. cso.orderPromotionsId,
  594. cso.promotionFullReduction,
  595. cso.brokerage,
  596. cso.canRefundAmount,
  597. cso.itemCount,
  598. cso.totalAmount,
  599. cso.productAmount,
  600. cso.needPayAmount,
  601. cso.shopProductAmount,
  602. cso.shopPostFee,
  603. cso.shopTaxFee,
  604. cso.shouldPayShopAmount,
  605. cso.payedShopAmount,
  606. cso.orderTime,
  607. cso.orderSubmitType,
  608. cso.payStatus,
  609. cso.sendOutStatus,
  610. cso.splitFlag,
  611. s.name AS shopName
  612. FROM cm_receipt_order_relation cror
  613. LEFT JOIN cm_shop_order cso ON cso.shopOrderID = cror.orderID
  614. LEFT JOIN shop s ON s.shopID = cso.shopID
  615. WHERE cror.delFlag = '0' AND cror.relationType = '1' AND cror.receiptID = #{receiptId}
  616. </select>
  617. <select id="getRefundShopOrders" resultType="com.caimei365.order.model.vo.ShopOrderVo">
  618. SELECT DISTINCT
  619. cso.shopOrderId AS shopOrderId,
  620. cso.shopOrderNo,
  621. cso.orderID AS orderId,
  622. cso.orderNo,
  623. cso.shopID AS shopId,
  624. cso.note,
  625. cso.userID AS userId,
  626. cso.clubID AS clubId,
  627. cso.spID AS spId,
  628. cso.orderPromotionsId,
  629. cso.promotionFullReduction,
  630. cso.brokerage,
  631. cso.canRefundAmount,
  632. cso.itemCount,
  633. cso.totalAmount,
  634. cso.productAmount,
  635. cso.needPayAmount,
  636. cso.shopProductAmount,
  637. cso.shopPostFee,
  638. cso.shopTaxFee,
  639. cso.shouldPayShopAmount,
  640. cso.payedShopAmount,
  641. cso.orderTime,
  642. cso.orderSubmitType,
  643. cso.payStatus,
  644. cso.sendOutStatus,
  645. cso.splitFlag,
  646. s.name AS shopName,
  647. IFNULL((SELECT SUM(refundAmount) FROM cm_refund_shop_record WHERE shopOrderID = cso.shopOrderID AND delFlag = 0), 0) AS shopRefundAmount
  648. FROM cm_shop_order cso
  649. LEFT JOIN shop s ON s.shopID = cso.shopID
  650. LEFT JOIN cm_receipt_order_relation cror ON cso.shopOrderID = cror.orderID AND cror.relationType = 1
  651. LEFT JOIN cm_discern_receipt cdr ON cdr.id = cror.receiptID AND cdr.receiptType = 5 AND cdr.receiptStatus = 2
  652. LEFT JOIN user u ON u.userID = cso.userID
  653. WHERE cso.delFlag = 0
  654. AND (cror.delFlag = 0 OR cror.id IS NULL)
  655. <if test="shopName != null">
  656. AND cso.orderID = #{orderId}
  657. </if>
  658. <if test="shopName != null and shopName != ''">
  659. AND s.name LIKE CONCAT('%',#{shopName},'%')
  660. </if>
  661. <if test="userName != null and userName != ''">
  662. AND u.userName LIKE CONCAT('%',#{userName},'%')
  663. </if>
  664. <if test="confirmedType == 2">
  665. AND cdr.receiptStatus = 2
  666. </if>
  667. GROUP BY cso.shopOrderID
  668. <if test="confirmedType != 2">
  669. HAVING IFNULL(cso.payedShopAmount, 0) > IFNULL((SELECT SUM(refundAmount) FROM cm_refund_shop_record WHERE shopOrderID = cso.shopOrderID AND delFlag = 0), 0)
  670. </if>
  671. ORDER BY cso.orderTime DESC
  672. </select>
  673. <select id="countAllPayAssociateAmount" resultType="java.lang.Double">
  674. SELECT IFNULL(SUM(cror.associateAmount), 0) FROM cm_receipt_order_relation cror
  675. LEFT JOIN cm_discern_receipt cdr on cror.receiptID = cdr.id
  676. WHERE cror.delFlag = '0' AND cdr.delFlag = '0' AND cdr.payWay != '3' AND cdr.receiptStatus in(2,3)
  677. <if test="orderID != null and orderID != ''">
  678. AND cror.orderID = #{orderId} AND cror.relationType = 2
  679. </if>
  680. </select>
  681. <select id="countNeedPayAmount" resultType="java.lang.Double">
  682. SELECT SUM(cso.needPayAmount) FROM cm_receipt_order_relation cror
  683. LEFT JOIN cm_discern_receipt cdr ON cdr.id = cror.receiptID
  684. LEFT JOIN cm_shop_order cso ON cso.shopOrderID = cror.orderID
  685. WHERE cror.delFlag = '0' AND cror.relationType = '1' AND cdr.receiptType = 3
  686. AND cdr.delFlag = '0' AND cdr.receiptStatus = '2'
  687. AND cror.orderID IN (SELECT shopOrderID FROM cm_shop_order cso1 WHERE cso1.orderID = #{orderId})
  688. </select>
  689. </mapper>