CouponMapper.xml 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.caimei365.commodity.mapper.CouponMapper">
  6. <select id="findCouponClub" resultType="com.caimei365.commodity.model.vo.CouponVo">
  7. SELECT
  8. cc.`id` AS "couponId",
  9. cc.`couponAmount`,
  10. cc.`touchPrice`,
  11. cc.`startDate`,
  12. cc.`endDate`,
  13. cc.`couponType`,
  14. cc.`userId`,
  15. cc.`shopId`,
  16. cc.`productType`,
  17. cc.`categoryType`
  18. FROM
  19. cm_coupon_club a
  20. LEFT JOIN cm_coupon cc ON a.couponId = cc.id
  21. WHERE
  22. cc.delFlag = 0
  23. AND a.delFlag = 0
  24. AND a.userId = #{userId}
  25. <if test="status == 1">
  26. AND a.status = 1
  27. AND NOW() BETWEEN cc.startDate
  28. AND cc.endDate
  29. </if>
  30. <if test="status == 2">
  31. AND a.status = 2
  32. AND NOW() BETWEEN cc.startDate
  33. AND cc.endDate
  34. </if>
  35. <if test="status == 3">
  36. AND NOW() NOT BETWEEN cc.startDate
  37. AND cc.endDate
  38. </if>
  39. AND cc.status != 2
  40. ORDER BY
  41. a.createDate DESC
  42. </select>
  43. <select id="findCouponById" resultType="com.caimei365.commodity.model.vo.ActivityCouponVo">
  44. SELECT
  45. id AS "couponId",
  46. NAME,
  47. pcBanner,
  48. appletsBanner
  49. FROM
  50. cm_coupon
  51. WHERE
  52. productType = 2
  53. AND delFlag = 0
  54. AND couponType = 0
  55. AND NOW() BETWEEN startDate
  56. AND endDate
  57. AND status != 2
  58. AND id = #{couponId}
  59. </select>
  60. <select id="findCouponProduct" resultType="com.caimei365.commodity.model.vo.ProductItemVo">
  61. SELECT
  62. p.productID AS productId,
  63. p.actStatus,
  64. p.name,
  65. p.aliasName,
  66. p.mainImage AS image,
  67. p.unit,
  68. p.productCode AS CODE,
  69. p.price1TextFlag AS priceFlag,
  70. p.price1 AS price,
  71. p.costPrice,
  72. p.costCheckFlag,
  73. p.shopID AS shopId,
  74. p.searchKey AS keyword,
  75. p.price8Text AS beautyActFlag,
  76. p.minBuyNumber AS minBuyNumber,
  77. p.maxBuyNumber AS maxBuyNumber,
  78. p.ladderPriceFlag,
  79. p.normalPrice,
  80. p.step,
  81. p.shopID AS shopId,
  82. p.taxPoint AS taxRate,
  83. p.includedTax,
  84. p.invoiceType,
  85. p.productCategory AS productCategory,
  86. p.validFlag,
  87. p.featuredFlag,
  88. p.commodityType,
  89. p.bigTypeID AS bigTypeId,
  90. p.smallTypeID AS smallTypeId,
  91. p.tinyTypeID AS tinyTypeId
  92. FROM
  93. cm_coupon_product a
  94. LEFT JOIN product p ON a.productId = p.productID
  95. WHERE
  96. a.delFlag = 0
  97. AND a.couponId = #{couponId}
  98. <if test="source == 1">
  99. AND a.pcStatus = 1
  100. </if>
  101. <if test="source == 2">
  102. AND a.appletsStatus = 1
  103. </if>
  104. ORDER BY
  105. -a.sort DESC
  106. </select>
  107. <select id="findCouponList" resultType="com.caimei365.commodity.model.vo.CouponVo">
  108. SELECT
  109. `id` AS "couponId",
  110. `couponAmount`,
  111. `touchPrice`,
  112. `startDate`,
  113. `endDate`,
  114. `couponType`,
  115. `userId`,
  116. `shopId`,
  117. `productType`,
  118. `categoryType`
  119. FROM
  120. cm_coupon
  121. WHERE
  122. delFlag = 0
  123. AND NOW() BETWEEN startDate
  124. AND endDate
  125. AND status != 2
  126. AND couponsMode = 0
  127. <if test="userId == null or userId == 0">
  128. AND couponType != 2
  129. </if>
  130. <if test="userId > 0">
  131. AND id NOT IN(SELECT couponId FROM cm_coupon_club WHERE userId = #{userId})
  132. AND (couponType IN (0,1,3)
  133. OR couponType = 2 AND userId = #{userId}
  134. OR (SELECT registerTime FROM USER WHERE userID = #{userId}) <![CDATA[ >= ]]> startDate)
  135. </if>
  136. ORDER BY
  137. createDate DESC
  138. </select>
  139. <select id="getCoupons" resultType="com.caimei365.commodity.model.vo.CouponVo">
  140. SELECT
  141. `id` AS "couponId",
  142. `couponAmount`,
  143. `touchPrice`,
  144. `startDate`,
  145. `endDate`,
  146. `couponType`,
  147. `userId`,
  148. `shopId`,
  149. `productType`,
  150. `categoryType`
  151. FROM
  152. cm_coupon
  153. WHERE
  154. delFlag = 0
  155. AND status != 2
  156. AND id = #{couponId}
  157. </select>
  158. <select id="findCouponRedemptionCode" resultType="com.caimei365.commodity.model.po.CouponRedemptionCodePo">
  159. SELECT
  160. `id`,
  161. `couponId`,
  162. `clubCouponId`,
  163. `redemptionCode`,
  164. `status`,
  165. `redemptionTime`,
  166. `addTime`
  167. FROM
  168. `cm_coupon_redemption_code`
  169. WHERE
  170. redemptionCode = #{redemptionCode}
  171. </select>
  172. <select id="findCouponClubByUserId" resultType="integer">
  173. SELECT
  174. `id`
  175. FROM
  176. `cm_coupon_club`
  177. WHERE
  178. userId = #{userId}
  179. AND couponId = #{couponId}
  180. </select>
  181. <insert id="insertCouponClub" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
  182. INSERT INTO `cm_coupon_club` (
  183. `userId`,
  184. `couponId`,
  185. `orderId`,
  186. `source`,
  187. `status`,
  188. `createDate`,
  189. `useDate`,
  190. `delFlag`
  191. )
  192. VALUES
  193. (
  194. #{userId},
  195. #{couponId},
  196. #{orderId},
  197. #{source},
  198. #{status},
  199. #{createDate},
  200. #{useDate},
  201. #{delFlag}
  202. )
  203. </insert>
  204. <update id="updateRedemptionCode">
  205. UPDATE
  206. cm_coupon_redemption_code
  207. SET
  208. STATUS = 2,
  209. redemptionTime = NOW(),
  210. clubCouponId = #{clubCouponId}
  211. WHERE
  212. id = #{id}
  213. </update>
  214. </mapper>