ReceiptMapper.xml 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881
  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. <update id="updateShopOrderPayStatus">
  137. UPDATE cm_shop_order SET payStatus = #{payStatus} WHERE shopOrderID = #{shopOrderId}
  138. </update>
  139. <update id="updateShopRebateAmount">
  140. UPDATE shop s SET s.rebateAmount = (IFNULL(s.rebateAmount, 0) + #{amount}), s.ableRebateAmount = (IFNULL(s.ableRebateAmount, 0) + #{amount})
  141. WHERE s.shopID = #{shopId}
  142. </update>
  143. <select id="getReceiptUserByOpenid" resultType="com.caimei365.order.model.vo.ReceiptUserVo">
  144. SELECT DISTINCT id, user_type AS userType, name, mobile, openid, unionId, password
  145. FROM cm_receipt_user
  146. WHERE openid = #{openid} AND del_flag = 0
  147. </select>
  148. <select id="getReceiptUserByMobile" resultType="com.caimei365.order.model.vo.ReceiptUserVo">
  149. SELECT DISTINCT id, user_type AS userType, name, mobile, openid, unionId, password
  150. FROM cm_receipt_user
  151. WHERE mobile = #{mobile} AND del_flag = 0
  152. </select>
  153. <select id="getReceiptUserNameById" resultType="java.lang.String">
  154. SELECT DISTINCT name FROM cm_receipt_user WHERE id = #{id}
  155. </select>
  156. <select id="getPermissionsByUserId" resultType="java.lang.Integer">
  157. SELECT permission_id FROM cm_receipt_user_permission WHERE user_id = #{userId}
  158. </select>
  159. <select id="getReceiptType" resultType="com.caimei365.order.model.vo.ReceiptTypeVo">
  160. SELECT `id`,`type` FROM cm_receipt_type ORDER BY id
  161. </select>
  162. <select id="getReceiptTypeById" resultType="com.caimei365.order.model.vo.ReceiptTypeVo">
  163. SELECT `id`,`type` FROM cm_receipt_type WHERE id = #{id}
  164. </select>
  165. <select id="getReceiptTypeStrById" resultType="java.lang.String">
  166. SELECT `type` FROM cm_receipt_type WHERE id = #{id}
  167. </select>
  168. <select id="getReceivablesTypeId" resultType="java.lang.Integer">
  169. SELECT DISTINCT IFNULL(id, 0) FROM cm_receipt_type WHERE type=#{type}
  170. </select>
  171. <select id="getPaidAmountByOrderId" resultType="java.lang.Double">
  172. SELECT IFNULL(SUM(cror.associateAmount), 0)
  173. FROM cm_receipt_order_relation cror
  174. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  175. <where>
  176. <if test="orderId != null and orderId != ''">
  177. AND cror.orderID = #{orderId} AND cror.relationType = 2
  178. </if>
  179. AND cdr.receiptStatus in(2,3)
  180. AND cdr.payWay != '3'
  181. AND cdr.delFlag = '0'
  182. AND cror.delFlag = '0'
  183. </where>
  184. </select>
  185. <select id="getUncheckAmount" resultType="java.lang.Double">
  186. SELECT IFNULL(SUM(cror.associateAmount), 0)
  187. FROM cm_receipt_order_relation cror
  188. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  189. <where>
  190. <if test="orderId != null and orderId != ''">
  191. AND cror.orderID = #{orderId} AND cror.relationType = 2
  192. </if>
  193. AND cdr.receiptStatus = '2'
  194. AND cdr.delFlag = '0'
  195. AND cror.delFlag = '0'
  196. </where>
  197. </select>
  198. <select id="getReturnedAmount" resultType="java.lang.Double">
  199. SELECT IFNULL(SUM(returnedPurchaseFee), 0) FROM cm_returned_purchase
  200. <where>
  201. <if test="orderId != null and orderId != ''">
  202. AND orderID = #{orderId}
  203. </if>
  204. AND status = '2'
  205. </where>
  206. </select>
  207. <select id="getReceiptNumByOrderId" resultType="java.lang.Integer">
  208. SELECT IFNULL(SUM(a.num),0) FROM cm_logistics_record a
  209. LEFT JOIN cm_logistics_batch b ON a.logisticsBatchID = b.id
  210. WHERE b.orderID = #{orderId} AND b.status = '1'
  211. </select>
  212. <select id="getReturnAndCancelNum" resultType="java.lang.Integer">
  213. SELECT IFNULL(SUM(a.actualReturnedNum + a.actualCancelNum),0)
  214. FROM cm_returned_purchase_product a
  215. LEFT JOIN cm_returned_purchase b ON a.returnedID = b.id
  216. WHERE b.orderID = #{orderId} AND b.status = '2' AND b.delFlag = '0'
  217. </select>
  218. <select id="getServiceProviderId" resultType="java.lang.Integer">
  219. SELECT s.serviceProviderID FROM serviceprovider s
  220. LEFT JOIN USER u ON s.userID = u.userID
  221. WHERE s.unionId = #{unionId} AND u.validFlag = 1
  222. LIMIT 1
  223. </select>
  224. <select id="getClubUserIdBySpId" resultType="java.lang.Integer">
  225. SELECT userID FROM club WHERE spID = #{spId}
  226. </select>
  227. <select id="getReceiptBySmsMd5Code" resultType="com.caimei365.order.model.vo.ReceiptVo">
  228. SELECT DISTINCT
  229. cdr.id,
  230. cdr.payWay,
  231. cdr.payType,
  232. cdr.receiptType,
  233. cdr.receiptStatus,
  234. cdr.receiptAmount,
  235. cdr.smsContent,
  236. cdr.smsMd5Code,
  237. cdr.receiptDate,
  238. cdr.confirmDate,
  239. cdr.handlingFee,
  240. cdr.orderFlag,
  241. cdr.noOrderReason,
  242. cdr.reviewReason,
  243. IFNULL((
  244. SELECT SUM(b.associateAmount) FROM cm_receipt_order_relation b WHERE b.receiptID = cdr.id AND b.delFlag = '0'
  245. ), 0) AS associateAmount
  246. FROM cm_discern_receipt cdr
  247. LEFT JOIN cm_receipt_order_relation cror ON (cror.receiptID = cdr.id AND cror.delFlag = '0')
  248. WHERE cdr.smsMd5Code = #{smsMd5Code} AND cdr.delFlag = '0'
  249. </select>
  250. <select id="getReceiptList" resultType="com.caimei365.order.model.vo.ReceiptVo" parameterType="com.caimei365.order.model.bo.ReceiptParamsBo">
  251. SELECT DISTINCT
  252. cdr.id,
  253. cdr.payWay,
  254. cdr.payType,
  255. cdr.receiptType,
  256. cdr.receiptStatus,
  257. cdr.receiptAmount,
  258. cdr.smsContent,
  259. cdr.smsMd5Code,
  260. cdr.receiptDate,
  261. cdr.confirmDate,
  262. cdr.handlingFee,
  263. cdr.orderFlag,
  264. cdr.noOrderReason,
  265. cdr.reviewReason,
  266. CASE WHEN cror.relationType = 2 THEN co.organizeID
  267. WHEN cror.relationType = 1 THEN cso.organizeID
  268. ELSE '' END AS organizeId,
  269. CASE WHEN cror.relationType = 2 THEN co.userID
  270. WHEN cror.relationType = 1 THEN cso.userID
  271. ELSE '' END AS userId,
  272. IFNULL((
  273. SELECT SUM(b.associateAmount) FROM cm_receipt_order_relation b WHERE b.receiptID = cdr.id AND b.delFlag = '0'
  274. ), 0) AS associateAmount
  275. FROM cm_discern_receipt cdr
  276. LEFT JOIN cm_receipt_order_relation cror ON (cror.receiptID = cdr.id AND cror.delFlag = '0')
  277. LEFT JOIN cm_order co ON (cror.orderID = co.orderID AND cror.relationType = 2)
  278. LEFT JOIN cm_shop_order cso ON (cror.orderID = cso.shopOrderID AND cror.relationType = 1)
  279. WHERE cdr.delFlag = '0'
  280. <if test="id != null and id != ''">
  281. AND cdr.id = #{id}
  282. </if>
  283. <if test="receiptType != null and receiptType != ''">
  284. AND cdr.receiptType = #{receiptType}
  285. </if>
  286. <if test="smsMd5Code != null and smsMd5Code != ''">
  287. AND cdr.smsMd5Code = #{smsMd5Code}
  288. </if>
  289. <if test="startDate != null and startDate != ''">
  290. AND cdr.receiptDate <![CDATA[ > ]]> #{startDate}
  291. </if>
  292. <if test="endDate != null and endDate != ''">
  293. AND cdr.receiptDate <![CDATA[ < ]]> #{endDate}
  294. </if>
  295. <if test="receiptStatusArr != null">
  296. AND cdr.receiptStatus in
  297. <foreach collection="receiptStatusArr" open="(" close=")" separator="," item="val">
  298. #{val}
  299. </foreach>
  300. </if>
  301. <if test="userIds != null and userIds.size() > 0">
  302. AND ((co.userID IN
  303. <foreach collection="userIds" open="(" close=")" separator="," item="val">
  304. #{val}
  305. </foreach>
  306. AND cror.relationType = 2 )
  307. OR (cso.userID IN
  308. <foreach collection="userIds" open="(" close=")" separator="," item="val">
  309. #{val}
  310. </foreach>
  311. AND cror.relationType = 1)
  312. OR cror.orderID IS NULL)
  313. </if>
  314. ORDER BY cdr.updateDate desc
  315. </select>
  316. <select id="getReceiptDetail" resultType="com.caimei365.order.model.vo.ReceiptVo">
  317. SELECT DISTINCT
  318. cdr.id,
  319. cdr.payWay,
  320. cdr.payType,
  321. cdr.receiptType,
  322. cdr.receiptStatus,
  323. cdr.receiptAmount,
  324. cdr.smsContent,
  325. cdr.smsMd5Code,
  326. cdr.receiptDate,
  327. cdr.confirmDate,
  328. cdr.reviewDate,
  329. cdr.cancelDate,
  330. cdr.handlingFee,
  331. cdr.orderFlag,
  332. cdr.noOrderReason,
  333. cdr.cancelReason,
  334. cdr.confirmType,
  335. cdr.reviewReason,
  336. receiptUserPermissionID AS receiptUserPermissionId,
  337. confirmUserPermissionID AS confirmUserPermissionId,
  338. reviewUserPermissionID AS reviewUserPermissionId,
  339. cancelUserPermissionID AS cancelUserPermissionId,
  340. CASE WHEN cror.relationType = 2 THEN co.organizeID
  341. WHEN cror.relationType = 1 THEN cso.organizeID
  342. ELSE '' END AS organizeId,
  343. CASE WHEN cror.relationType = 2 THEN co.userID
  344. WHEN cror.relationType = 1 THEN cso.userID
  345. ELSE '' END AS userId,
  346. IFNULL((
  347. SELECT SUM(b.associateAmount) FROM cm_receipt_order_relation b WHERE b.receiptID = cdr.id AND b.delFlag = '0'
  348. ), 0) AS associateAmount
  349. FROM cm_discern_receipt cdr
  350. LEFT JOIN cm_receipt_order_relation cror ON (cror.receiptID = cdr.id AND cror.delFlag = '0')
  351. LEFT JOIN cm_order co ON (cror.orderID = co.orderID AND cror.relationType = 2)
  352. LEFT JOIN cm_shop_order cso ON (cror.orderID = cso.shopOrderID AND cror.relationType = 1)
  353. WHERE cdr.delFlag = '0' AND cdr.id = #{id}
  354. </select>
  355. <select id="getReceiptOrders" resultType="com.caimei365.order.model.vo.OrderVo">
  356. SELECT
  357. IFNULL(o.orderSeen,0) AS orderSeen,
  358. o.orderID AS orderId,
  359. o.shopOrderIds,
  360. o.orderSource,
  361. o.orderNo,
  362. o.userID AS userId,
  363. o.clubID AS clubId,
  364. o.organizeID AS organizeId,
  365. o.buyUserID AS buyUserId,
  366. o.orderTime AS orderTime,
  367. o.updateDate AS updateDate,
  368. o.delFlag,
  369. o.userBeans,
  370. o.orderType,
  371. o.orderSubmitType,
  372. o.confirmFlag,
  373. o.onlinePayFlag,
  374. o.splitFlag,
  375. o.payFlag,
  376. o.receiptStatus,
  377. o.payStatus,
  378. o.zeroCostFlag,
  379. o.sendOutStatus,
  380. o.refundType,
  381. o.affirmPaymentFlag,
  382. o.productCount,
  383. o.presentCount,
  384. o.promotionalGiftsCount,
  385. o.hasActProduct,
  386. o.promotionFullReduction,
  387. o.svipFullReduction,
  388. o.secondHandOrderFlag,
  389. o.invoiceFlag,
  390. o.freePostFlag AS postageFlag,
  391. o.freight AS postage,
  392. o.productTotalFee,
  393. o.orderTotalFee,
  394. o.payTotalFee,
  395. o.payableAmount,
  396. o.balancePayFee,
  397. o.discountFee,
  398. o.couponAmount,
  399. o.status,
  400. o.confirmTime,
  401. o.payTime,
  402. o.rebateFlag,
  403. o.clauseID AS clauseId,
  404. o.clauseName,
  405. IFNULL(u.userName,'') AS userName
  406. FROM cm_order o
  407. INNER JOIN cm_receipt_order_relation cror ON o.orderID = cror.orderID
  408. INNER JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  409. LEFT JOIN USER u ON o.userID = u.userID
  410. WHERE cdr.id = #{receiptId}
  411. AND o.delFlag = '0'
  412. AND cror.delFlag = '0'
  413. AND cdr.delFlag = '0'
  414. ORDER BY o.orderTime DESC
  415. </select>
  416. <select id="getOrderListByParams" resultType="com.caimei365.order.model.vo.OrderVo">
  417. SELECT DISTINCT
  418. IFNULL(o.orderSeen,0) AS orderSeen,
  419. o.orderID AS orderId,
  420. o.shopOrderIds,
  421. o.orderSource,
  422. o.orderNo,
  423. o.userID AS userId,
  424. o.clubID AS clubId,
  425. o.organizeID AS organizeId,
  426. o.buyUserID AS buyUserId,
  427. o.orderTime AS orderTime,
  428. o.updateDate AS updateDate,
  429. o.delFlag,
  430. o.userBeans,
  431. o.orderType,
  432. o.orderSubmitType,
  433. o.confirmFlag,
  434. o.onlinePayFlag,
  435. o.splitFlag,
  436. o.payFlag,
  437. o.receiptStatus,
  438. o.payStatus,
  439. o.zeroCostFlag,
  440. o.sendOutStatus,
  441. o.refundType,
  442. o.affirmPaymentFlag,
  443. o.productCount,
  444. o.presentCount,
  445. o.promotionalGiftsCount,
  446. o.hasActProduct,
  447. o.promotionFullReduction,
  448. o.svipFullReduction,
  449. o.secondHandOrderFlag,
  450. o.invoiceFlag,
  451. o.freePostFlag AS postageFlag,
  452. o.freight AS postage,
  453. o.productTotalFee,
  454. o.orderTotalFee,
  455. o.payTotalFee,
  456. o.payableAmount,
  457. o.balancePayFee,
  458. o.discountFee,
  459. o.couponAmount,
  460. o.status,
  461. o.confirmTime,
  462. o.payTime,
  463. o.rebateFlag,
  464. o.clauseID AS clauseId,
  465. o.clauseName,
  466. <if test="organizeId == 0 or organizeId == null">
  467. IFNULL(u.userName, u.name) AS userName,
  468. </if>
  469. <if test="organizeId > 0">
  470. IFNULL(u.name, u.userName) AS userName,
  471. </if>
  472. '0' AS haveReturning,
  473. '0' AS haveReceipting
  474. FROM cm_order o
  475. LEFT JOIN user u ON o.userID = u.userID
  476. LEFT JOIN cm_order_product cop ON o.orderID = cop.orderID
  477. <where>
  478. <if test="excludeOrderId != null and excludeOrderId != ''">
  479. AND o.orderID != #{excludeOrderId}
  480. </if>
  481. <if test="orderId != null and orderId != ''">
  482. AND o.orderID = #{orderId}
  483. </if>
  484. AND o.delFlag = '0'
  485. AND o.organizeID = #{organizeId}
  486. AND o.receiptStatus IN
  487. <foreach collection="receiptStatusArr" open="(" close=")" item="receiptStatus" separator=",">
  488. #{receiptStatus}
  489. </foreach>
  490. AND o.status IN
  491. <foreach collection="orderStatusList" open="(" close=")" item="status" separator=",">
  492. #{status}
  493. </foreach>
  494. <if test="userIds != null and userIds.size() > 0">
  495. AND o.userID IN
  496. <foreach collection="userIds" open="(" close=")" separator="," item="val">
  497. #{val}
  498. </foreach>
  499. </if>
  500. <if test="userName != null and userName != ''">
  501. AND (u.userName LIKE CONCAT('%',#{userName},'%') OR u.name LIKE CONCAT('%',#{userName},'%'))
  502. </if>
  503. AND o.rebateFlag = 0
  504. <if test="orderType == null or orderType == 0">
  505. AND cop.productID NOT IN(6060, 6061, 6062, 6063, 6064,6065, 6066, 6067, 6068, 6069)
  506. </if>
  507. <if test="orderType != null and orderType == 1">
  508. AND cop.productID IN(6060, 6061, 6062, 6063, 6064,6065, 6066, 6067, 6068, 6069)
  509. </if>
  510. </where>
  511. <if test="orderId != null and orderId != ''">
  512. ORDER BY (CASE WHEN o.orderID=#{orderId} THEN 1 ELSE 2 END),o.orderTime DESC
  513. </if>
  514. <if test="orderId == null or orderId == ''">
  515. ORDER BY o.orderTime DESC
  516. </if>
  517. </select>
  518. <select id="getOrderListByOrderIds" resultType="com.caimei365.order.model.vo.OrderVo">
  519. SELECT DISTINCT
  520. IFNULL(o.orderSeen,0) AS orderSeen,
  521. o.orderID AS orderId,
  522. o.shopOrderIds,
  523. o.orderSource,
  524. o.orderNo,
  525. o.userID AS userId,
  526. o.clubID AS clubId,
  527. o.organizeID AS organizeId,
  528. o.buyUserID AS buyUserId,
  529. o.orderTime AS orderTime,
  530. o.updateDate AS updateDate,
  531. o.delFlag,
  532. o.userBeans,
  533. o.orderType,
  534. o.orderSubmitType,
  535. o.confirmFlag,
  536. o.onlinePayFlag,
  537. o.splitFlag,
  538. o.payFlag,
  539. o.receiptStatus,
  540. o.payStatus,
  541. o.zeroCostFlag,
  542. o.sendOutStatus,
  543. o.refundType,
  544. o.affirmPaymentFlag,
  545. o.productCount,
  546. o.presentCount,
  547. o.promotionalGiftsCount,
  548. o.hasActProduct,
  549. o.promotionFullReduction,
  550. o.svipFullReduction,
  551. o.secondHandOrderFlag,
  552. o.invoiceFlag,
  553. o.freePostFlag AS postageFlag,
  554. o.freight AS postage,
  555. o.productTotalFee,
  556. o.orderTotalFee,
  557. o.payTotalFee,
  558. o.payableAmount,
  559. o.balancePayFee,
  560. o.discountFee,
  561. o.couponAmount,
  562. o.status,
  563. o.confirmTime,
  564. o.payTime,
  565. o.rebateFlag,
  566. o.clauseID AS clauseId,
  567. o.clauseName
  568. FROM cm_order o
  569. WHERE o.delFlag = '0' AND o.orderID IN
  570. <foreach collection="orderIdS" open="(" close=")" separator="," item="orderId">
  571. #{orderId}
  572. </foreach>
  573. order by o.payableAmount, o.orderID
  574. </select>
  575. <select id="countHaveReturning" resultType="java.lang.Integer">
  576. SELECT IFNULL(COUNT(id), 0) FROM cm_returned_purchase WHERE orderID = #{orderID} AND status = 1 AND delFlag = 0
  577. </select>
  578. <select id="countHaveReceipting" resultType="java.lang.Integer">
  579. SELECT IFNULL(COUNT(cror.id), 0) FROM cm_receipt_order_relation cror
  580. INNER JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  581. WHERE cror.orderID = #{orderID} AND cror.delFlag = 0 AND cdr.delFlag = 0 AND cdr.receiptStatus = 2
  582. </select>
  583. <select id="getOnlineReceiptId" resultType="java.lang.Integer">
  584. SELECT
  585. cdr.id
  586. FROM cm_receipt_order_relation cror
  587. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  588. WHERE cror.orderID = #{orderId}
  589. AND cror.relationType = '2'
  590. AND cror.delFlag = '0'
  591. AND cdr.delFlag = '0'
  592. AND cdr.receiptStatus = '3'
  593. AND cdr.payWay = '1'
  594. LIMIT 1
  595. </select>
  596. <select id="getRefundFeeByOrderId" resultType="com.caimei365.order.model.vo.ReturnedPurchaseVo">
  597. SELECT
  598. id,
  599. returnedPurchaseFee,
  600. refundFee
  601. FROM cm_returned_purchase
  602. WHERE orderID = #{orderId} AND STATUS = '2'
  603. </select>
  604. <select id="getShopOrderListByReceiptId" resultType="com.caimei365.order.model.vo.ShopOrderVo">
  605. SELECT DISTINCT
  606. cso.shopOrderId AS shopOrderId,
  607. cso.shopOrderNo,
  608. cso.orderID AS orderId,
  609. cso.orderNo,
  610. cso.shopID AS shopId,
  611. cso.note,
  612. cso.userID AS userId,
  613. cso.clubID AS clubId,
  614. cso.spID AS spId,
  615. cso.orderPromotionsId,
  616. cso.promotionFullReduction,
  617. cso.brokerage,
  618. cso.canRefundAmount,
  619. cso.itemCount,
  620. cso.totalAmount,
  621. cso.productAmount,
  622. cso.needPayAmount,
  623. cso.shopProductAmount,
  624. cso.shopPostFee,
  625. cso.shopTaxFee,
  626. cso.shouldPayShopAmount,
  627. cso.payedShopAmount,
  628. cso.orderTime,
  629. cso.orderSubmitType,
  630. cso.payStatus,
  631. cso.sendOutStatus,
  632. cso.splitFlag,
  633. cso.shopOtherFee,
  634. s.name AS shopName
  635. FROM cm_receipt_order_relation cror
  636. LEFT JOIN cm_shop_order cso ON cso.shopOrderID = cror.orderID
  637. LEFT JOIN shop s ON s.shopID = cso.shopID
  638. WHERE cror.delFlag = '0' AND cror.relationType = '1' AND cror.receiptID = #{receiptId}
  639. </select>
  640. <select id="getRefundShopOrders" resultType="com.caimei365.order.model.vo.ShopOrderVo">
  641. SELECT DISTINCT
  642. cso.shopOrderId AS shopOrderId,
  643. cso.shopOrderNo,
  644. cso.orderID AS orderId,
  645. cso.orderNo,
  646. cso.shopID AS shopId,
  647. cso.note,
  648. cso.userID AS userId,
  649. cso.clubID AS clubId,
  650. cso.spID AS spId,
  651. cso.orderPromotionsId,
  652. cso.promotionFullReduction,
  653. cso.brokerage,
  654. cso.canRefundAmount,
  655. cso.itemCount,
  656. cso.totalAmount,
  657. cso.productAmount,
  658. cso.needPayAmount,
  659. cso.shopProductAmount,
  660. cso.shopPostFee,
  661. cso.shopTaxFee,
  662. cso.shouldPayShopAmount,
  663. cso.payedShopAmount,
  664. cso.orderTime,
  665. cso.orderSubmitType,
  666. cso.payStatus,
  667. cso.sendOutStatus,
  668. cso.splitFlag,
  669. cso.shopOtherFee,
  670. s.name AS shopName,
  671. IFNULL((SELECT SUM(refundAmount) FROM cm_refund_shop_record WHERE shopOrderID = cso.shopOrderID AND delFlag = 0), 0) AS shopRefundAmount
  672. FROM cm_shop_order cso
  673. LEFT JOIN shop s ON s.shopID = cso.shopID
  674. LEFT JOIN cm_receipt_order_relation cror ON cso.shopOrderID = cror.orderID AND cror.relationType = 1
  675. LEFT JOIN cm_discern_receipt cdr ON cdr.id = cror.receiptID AND cdr.receiptType = 5 AND cdr.receiptStatus = 2
  676. LEFT JOIN user u ON u.userID = cso.userID
  677. WHERE cso.delFlag = 0
  678. AND (cror.delFlag = 0 OR cror.id IS NULL)
  679. <if test="shopName != null">
  680. AND cso.orderID = #{orderId}
  681. </if>
  682. <if test="shopName != null and shopName != ''">
  683. AND s.name LIKE CONCAT('%',#{shopName},'%')
  684. </if>
  685. <if test="userName != null and userName != ''">
  686. AND u.userName LIKE CONCAT('%',#{userName},'%')
  687. </if>
  688. <if test="confirmedType == 2">
  689. AND cdr.receiptStatus = 2
  690. </if>
  691. GROUP BY cso.shopOrderID
  692. <if test="confirmedType != 2">
  693. HAVING IFNULL(cso.payedShopAmount, 0) > IFNULL((SELECT SUM(refundAmount) FROM cm_refund_shop_record WHERE shopOrderID = cso.shopOrderID AND delFlag = 0), 0)
  694. </if>
  695. ORDER BY cso.orderTime DESC
  696. </select>
  697. <select id="getRebateShopOrders" resultType="com.caimei365.order.model.vo.ShopOrderVo">
  698. SELECT DISTINCT
  699. cso.shopOrderId AS shopOrderId,
  700. cso.shopOrderNo,
  701. cso.orderID AS orderId,
  702. cso.orderNo,
  703. cso.shopID AS shopId,
  704. cso.note,
  705. cso.userID AS userId,
  706. cso.clubID AS clubId,
  707. cso.spID AS spId,
  708. cso.orderPromotionsId,
  709. cso.promotionFullReduction,
  710. cso.brokerage,
  711. cso.canRefundAmount,
  712. cso.itemCount,
  713. cso.totalAmount,
  714. cso.productAmount,
  715. cso.needPayAmount,
  716. cso.shopProductAmount,
  717. cso.shopPostFee,
  718. cso.shopTaxFee,
  719. cso.shouldPayShopAmount,
  720. cso.payedShopAmount,
  721. cso.orderTime,
  722. cso.orderSubmitType,
  723. cso.payStatus,
  724. cso.sendOutStatus,
  725. cso.splitFlag,
  726. cso.shopOtherFee,
  727. s.name AS shopName,
  728. IF((SELECT (crpp.id) FROM cm_returned_purchase_product crpp LEFT JOIN cm_returned_purchase crp ON crp.id = crpp.returnedID
  729. WHERE crpp.shopOrderID = cso.shopOrderID AND crp.status = '1' AND crp.delFlag = 0 LIMIT 1) > 0, 1, 0) AS haveReturning
  730. FROM cm_shop_order cso
  731. LEFT JOIN shop s ON s.shopID = cso.shopID
  732. LEFT JOIN cm_order co ON co.orderID = cso.orderID
  733. <where>
  734. <if test="shopName != null and shopName != ''">
  735. AND s.name LIKE CONCAT('%', #{shopName}, '%')
  736. </if>
  737. AND cso.delFlag = '0'
  738. AND co.delFlag = '0'
  739. AND cso.shopOrderID NOT IN (
  740. SELECT DISTINCT cror.orderID FROM cm_receipt_order_relation cror LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  741. WHERE cror.delFlag = '0' AND cror.relationType = '1' AND cdr.receiptStatus = '2' AND cror.orderID IS NOT NULL
  742. )
  743. AND cso.orderID NOT IN (
  744. SELECT DISTINCT cror.orderID FROM cm_receipt_order_relation cror
  745. WHERE cror.delFlag = '0' AND cror.relationType = '2' AND cror.orderID IS NOT NULL
  746. )
  747. AND co.receiptStatus != '3'
  748. AND co.rebateFlag = 1
  749. </where>
  750. ORDER BY cso.shopOrderID DESC
  751. </select>
  752. <select id="getShopOrderById" resultType="com.caimei365.order.model.vo.ShopOrderVo">
  753. SELECT
  754. shopOrderID AS shopOrderId,
  755. shopOrderNo,
  756. orderID AS orderId,
  757. orderNo,
  758. shopID AS shopId,
  759. note,
  760. userID AS userId,
  761. clubID AS clubId,
  762. spID AS spId,
  763. orderPromotionsId,
  764. promotionFullReduction,
  765. brokerage,
  766. canRefundAmount,
  767. itemCount,
  768. totalAmount,
  769. productAmount,
  770. needPayAmount,
  771. shopProductAmount,
  772. shopPostFee,
  773. shopTaxFee,
  774. shouldPayShopAmount,
  775. payedShopAmount,
  776. outStoreNum,
  777. IFNULL(presentNum,0) AS presentNum,
  778. orderTime,
  779. orderSubmitType,
  780. payStatus,
  781. sendOutStatus,
  782. splitFlag
  783. FROM cm_shop_order
  784. WHERE shopOrderID = #{shopOrderId} AND delFlag = '0'
  785. </select>
  786. <select id="countAllPayAssociateAmount" resultType="java.lang.Double">
  787. SELECT IFNULL(SUM(cror.associateAmount), 0) FROM cm_receipt_order_relation cror
  788. LEFT JOIN cm_discern_receipt cdr on cror.receiptID = cdr.id
  789. WHERE cror.delFlag = '0' AND cdr.delFlag = '0' AND cdr.payWay != '3' AND cdr.receiptStatus in(2,3)
  790. <if test="orderID != null and orderID != ''">
  791. AND cror.orderID = #{orderId} AND cror.relationType = 2
  792. </if>
  793. </select>
  794. <select id="countNeedPayAmount" resultType="java.lang.Double">
  795. SELECT IFNULL(SUM(cso.needPayAmount), 0) FROM cm_receipt_order_relation cror
  796. LEFT JOIN cm_discern_receipt cdr ON cdr.id = cror.receiptID
  797. LEFT JOIN cm_shop_order cso ON cso.shopOrderID = cror.orderID
  798. WHERE cror.delFlag = '0' AND cror.relationType = '1' AND cdr.receiptType = 3
  799. AND cdr.delFlag = '0' AND cdr.receiptStatus = '2'
  800. AND cror.orderID IN (SELECT shopOrderID FROM cm_shop_order cso1 WHERE cso1.orderID = #{orderId})
  801. </select>
  802. <select id="getRebatePayTypeList" resultType="java.lang.Integer">
  803. SELECT cdr.payType
  804. FROM cm_receipt_order_relation cror
  805. LEFT JOIN cm_discern_receipt cdr ON cdr.id = cror.receiptID
  806. WHERE cror.relationType = '1' AND cror.delFlag = '0'
  807. AND cror.orderID = #{shopOrderId} and cdr.receiptType = '3'
  808. </select>
  809. <select id="getOpenidListByPermission" resultType="java.lang.String">
  810. SELECT DISTINCT cru.openid FROM cm_receipt_user cru
  811. LEFT JOIN cm_receipt_user_permission crup ON crup.user_id = cru.id
  812. WHERE crup.permission_id IN
  813. <foreach collection="permissions" open="(" close=")" item="permission" separator=",">
  814. #{permission}
  815. </foreach>
  816. AND cru.del_flag = 0
  817. </select>
  818. <select id="countAssociateAmountById" resultType="java.lang.Double">
  819. SELECT IFNULL(SUM(associateAmount), 0) FROM cm_receipt_order_relation WHERE receiptID = #{receiptId}
  820. </select>
  821. <select id="getRefundShopAmount" resultType="java.lang.Double">
  822. SELECT IFNULL(SUM(refundAmount), 0) FROM cm_refund_shop_record WHERE shopOrderID = #{shopOrderId} AND delFlag = 0
  823. </select>
  824. <select id="getShopIdList" resultType="java.lang.Integer">
  825. SELECT DISTINCT shopID FROM cm_shop_order WHERE shopOrderID IN
  826. <foreach collection="shopOrderIdArr" open="(" close=")" item="shopOrderId" separator=",">
  827. #{shopOrderId}
  828. </foreach>
  829. </select>
  830. <select id="getSubShopOrderList" resultType="java.lang.Integer">
  831. SELECT cso2.shopOrderID FROM cm_shop_order cso1
  832. LEFT JOIN cm_order co ON co.orderID = cso1.orderID
  833. LEFT JOIN cm_shop_order cso2 ON cso2.orderID = co.orderID
  834. WHERE cso1.shopOrderID = #{shopOrderId}
  835. </select>
  836. <select id="getSubShopOrderRebate" resultType="java.lang.Integer">
  837. SELECT cror.orderID FROM cm_receipt_order_relation cror
  838. WHERE cror.delFlag = '0' AND cror.relationType = '1' AND cror.orderID IN
  839. <foreach collection="shopOrderIdList" open="(" close=")" item="shopOrderId" separator=",">
  840. #{shopOrderId}
  841. </foreach>
  842. AND cror.orderID IS NOT NULL
  843. </select>
  844. <insert id="insertRefundShop" keyColumn="id" keyProperty="id" parameterType="com.caimei365.order.model.po.RefundShopPo" useGeneratedKeys="true">
  845. INSERT INTO cm_refund_shop(shopID, operator, operatTime, refundAmount, refundType, remark, refundWay, refundBalanceAmount)
  846. VALUES (#{shopId}, #{operator}, #{operateTime}, #{refundAmount}, #{refundType}, #{remark}, #{refundWay}, #{refundBalanceAmount})
  847. </insert>
  848. <insert id="insertRefundShopRecord" keyColumn="id" keyProperty="id" parameterType="com.caimei365.order.model.po.RefundShopRecordPo" useGeneratedKeys="true">
  849. INSERT INTO cm_refund_shop_record(shopID, shopOrderID, shopOrderNo, refundAmount, refundType, refundTime, refundShopID)
  850. VALUES (#{shopId}, #{shopOrderId}, #{shopOrderNo}, #{refundAmount}, #{refundType}, #{refundTime}, #{refundShopId})
  851. </insert>
  852. <insert id="insertRebateRecord" keyColumn="id" keyProperty="id" parameterType="com.caimei365.order.model.po.RebateRecordPo" useGeneratedKeys="true">
  853. INSERT INTO cm_rebate_record(type, shopId, receiptID, shopOrderId, rebateAmount, operatTime)
  854. VALUES (#{type}, #{shopId}, #{receiptId}, #{shopOrderId}, #{rebateAmount}, #{operateTime})
  855. </insert>
  856. <select id="getOrderReceiptRelationList" resultType="com.caimei365.order.model.po.OrderReceiptRelationPo">
  857. SELECT
  858. cror.id,
  859. cror.relationType,
  860. cror.receiptId,
  861. cror.associateAmount,
  862. cror.orderId,
  863. cror.delFlag,
  864. cror.mbOrderId,
  865. cror.orderRequestNo,
  866. cror.splitStatus
  867. FROM cm_receipt_order_relation cror
  868. WHERE cror.receiptID = #{receiptId}
  869. ORDER BY cror.id DESC
  870. </select>
  871. <select id="getPendingAuditCount" resultType="java.lang.Integer">
  872. SELECT COUNT(*) FROM cm_receipt_order_relation cror
  873. LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
  874. WHERE cror.orderID = #{orderId}
  875. AND cror.relationType = '2'
  876. AND cror.delFlag = '0'
  877. AND cdr.delFlag = '0'
  878. AND cdr.receiptStatus IN (2,4)
  879. </select>
  880. </mapper>