CartClubMapper.xml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375
  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.CartClubMapper">
  4. <!-- 购物车供应商列表 -->
  5. <select id="getCartShops" resultType="com.caimei365.order.model.vo.CartShopVo">
  6. SELECT DISTINCT c.shopID AS shopId,
  7. s.name AS shopName,
  8. s.logo AS shopLogo,
  9. s.shopType as shopType
  10. FROM cm_cart c
  11. LEFT JOIN shop s ON c.shopID = s.shopID
  12. WHERE c.userID = #{userId}
  13. GROUP BY c.shopID, c.cm_cartID
  14. ORDER BY c.cm_cartID DESC
  15. </select>
  16. <select id="getCartShopsByProductIds" resultType="com.caimei365.order.model.vo.CartShopVo">
  17. SELECT DISTINCT
  18. c.shopID AS shopId,
  19. s.name AS shopName,
  20. s.logo AS shopLogo,
  21. p.returnGoodsStutas,
  22. s.shopType as shopType
  23. <if test="status!=null and status == 1">
  24. ,p.splitCode
  25. </if>
  26. FROM cm_cart c
  27. LEFT JOIN shop s ON c.shopID = s.shopID
  28. LEFT JOIN product p ON c.productID = p.productID
  29. WHERE c.userID = #{userId}
  30. AND c.skuId in
  31. <foreach collection="skuIds" open="(" separator="," close=")" item="skuId">
  32. #{skuId}
  33. </foreach>
  34. GROUP BY c.shopID, c.cm_cartID
  35. ORDER BY c.cm_cartID DESC
  36. </select>
  37. <select id="getShopsByProductIds" resultType="com.caimei365.order.model.vo.CartShopVo">
  38. SELECT DISTINCT
  39. s.shopID AS shopId,
  40. s.name AS shopName,
  41. s.logo AS shopLogo,
  42. p.returnGoodsStutas,
  43. p.productType
  44. FROM shop s
  45. LEFT JOIN product p ON p.shopID = s.shopID
  46. WHERE
  47. p.productID in
  48. <foreach collection="productIds" open="(" separator="," close=")" item="productId">
  49. #{productId}
  50. </foreach>
  51. GROUP BY s.shopID
  52. </select>
  53. <select id="getCartProductsByShopId" resultType="com.caimei365.order.model.vo.CartItemVo">
  54. SELECT c.cm_cartID AS id,
  55. c.productCount AS number,
  56. p.productID AS productId,
  57. p.shopID AS shopId,
  58. p.`name` AS `name`,
  59. p.mainImage AS image,
  60. p.productCode,
  61. c.skuId,
  62. cs.price,
  63. cs.price AS originalPrice,
  64. cs.unit AS unit,
  65. cs.stock AS stock,
  66. p.step AS step,
  67. ifnull(cs.minBuyNumber,(select buyNum from product_ladder_price where skuId=c.skuId order by buyNum asc limit 1)) AS min,
  68. p.priceFlag,
  69. ifnull(cs.ladderPriceFlag, 0) AS ladderFlag,
  70. p.includedTax AS includedTax,
  71. p.invoiceType AS invoiceType,
  72. p.taxPoint AS taxRate,
  73. p.productCategory,
  74. p.validFlag AS validFlag,
  75. p.visibility,
  76. if(csp.id is not null and csp.status = 0, 1, 0) as svipProductFlag,
  77. # csp.priceType as svipPriceType,
  78. # csp.discount as svipDiscount,
  79. # csp.discountPrice as svipDiscountPrice,
  80. p.productType
  81. FROM cm_cart c
  82. LEFT JOIN product P on c.productID = p.productID
  83. LEFT JOIN cm_sku cs ON c.skuId = cs.skuId
  84. LEFT JOIN cm_svip_product csp ON c.productID = csp.productId
  85. WHERE c.userID = #{userId}
  86. and p.shopID = #{shopId}
  87. ORDER BY c.cm_cartID DESC
  88. </select>
  89. <select id="getCartOrganizeProductsByShopId" resultType="com.caimei365.order.model.vo.CartItemVo">
  90. SELECT c.cm_cartID AS id,
  91. c.productCount AS number,
  92. p.productID AS productId,
  93. p.shopID AS shopId,
  94. p.`name` AS `name`,
  95. p.mainImage AS image,
  96. p.productCode,
  97. c.skuId,
  98. cmps.price,
  99. cmps.price AS originalPrice,
  100. cs.unit AS unit,
  101. cs.stock AS stock,
  102. p.step AS step,
  103. IFNULL(cs.minBuyNumber,(SELECT buyNum FROM product_ladder_price WHERE skuId=c.skuId ORDER BY buyNum ASC LIMIT 1)) AS MIN,
  104. p.priceFlag,
  105. IFNULL(cs.ladderPriceFlag, 0) AS ladderFlag,
  106. p.includedTax AS includedTax,
  107. p.invoiceType AS invoiceType,
  108. p.taxPoint AS taxRate,
  109. p.productCategory,
  110. cmop.validFlag AS validFlag,
  111. p.visibility,
  112. p.productType
  113. FROM cm_cart c
  114. LEFT JOIN product P ON c.productID = p.productID
  115. LEFT JOIN cm_sku cs ON c.skuId = cs.skuId
  116. LEFT JOIN cm_mall_product_sku cmps ON cmps.skuId = cs.skuId
  117. LEFT JOIN cm_mall_organize_products cmop ON cmop.productId = c.productId
  118. WHERE c.userID = #{userId}
  119. and p.shopID = #{shopId}
  120. and cmop.organizeID = #{organizeId}
  121. ORDER BY c.cm_cartID DESC
  122. </select>
  123. <select id="getCartProductsByShopIdAndProductIds" resultType="com.caimei365.order.model.vo.CartItemVo">
  124. SELECT
  125. c.skuId AS skuId,
  126. c.cm_cartID AS id,
  127. c.productCount AS number,
  128. p.productID AS productId,
  129. p.shopID AS shopId,
  130. p.`name` AS `name`,
  131. p.mainImage AS image,
  132. p.productCode,
  133. cs.price,
  134. cs.price AS originalPrice,
  135. cs.unit AS unit,
  136. ifnull(cs.stock,0) AS stock,
  137. p.step AS step,
  138. ifnull(cs.minBuyNumber,(select buyNum from product_ladder_price where skuId=c.skuId order by buyNum asc limit 1))AS min,
  139. p.priceFlag,
  140. cs.ladderPriceFlag AS ladderFlag,
  141. p.includedTax AS includedTax,
  142. p.invoiceType AS invoiceType,
  143. p.taxPoint AS taxRate,
  144. p.productCategory,
  145. p.validFlag AS validFlag,
  146. p.visibility,
  147. p.commodityType as commodityType,
  148. if(csp.id is not null and csp.status = 0,1,0) as svipProductFlag,
  149. # csp.priceType as svipPriceType,
  150. # csp.discount as svipDiscount,
  151. # csp.discountPrice as svipDiscountPrice,
  152. p.productType,
  153. p.splitCode
  154. FROM cm_cart c
  155. LEFT JOIN product p ON c.productID = p.productID
  156. LEFT JOIN cm_sku cs ON c.skuId = cs.skuId
  157. LEFT JOIN cm_svip_product csp ON p.productID = csp.productId
  158. WHERE c.userID = #{userId} and p.shopID = #{shopId}
  159. AND p.validFlag='2'
  160. <if test="splitCode !=null and splitCode !=''">
  161. AND p.splitCode = #{splitCode}
  162. </if>
  163. AND cs.skuId in
  164. <foreach collection="skuIds" open="(" separator="," close=")" item="skuId">
  165. #{skuId}
  166. </foreach>
  167. ORDER BY c.cm_cartID DESC
  168. </select>
  169. <select id="getProductsByShopIdAndProductIds" resultType="com.caimei365.order.model.vo.CartItemVo">
  170. SELECT
  171. cs.skuId AS skuId,
  172. p.productID AS productId,
  173. p.shopID AS shopId,
  174. p.`name` AS `name`,
  175. p.mainImage AS image,
  176. p.productCode,
  177. cs.price,
  178. cs.price AS originalPrice,
  179. cs.unit AS unit,
  180. cs.stock AS stock,
  181. p.step AS step,
  182. ifnull(cs.minBuyNumber ,(SELECT buyNum FROM product_ladder_price WHERE skuId=cs.skuId ORDER BY buyNum ASC LIMIT 1)) AS min,
  183. p.priceFlag,
  184. cs.ladderPriceFlag AS ladderFlag,
  185. p.includedTax AS includedTax,
  186. p.invoiceType AS invoiceType,
  187. p.taxPoint AS taxRate,
  188. p.productCategory,
  189. p.validFlag AS validFlag,
  190. p.visibility,
  191. p.commodityType as commodityType,
  192. if(csp.id is not null and csp.status = 0,1,0) as svipProductFlag,
  193. # csp.priceType as svipPriceType,
  194. # csp.discount as svipDiscount,
  195. # csp.discountPrice as svipDiscountPrice,
  196. p.productType
  197. FROM cm_sku cs
  198. LEFT JOIN product p on cs.productId = p.productID
  199. LEFT JOIN cm_svip_product csp ON p.productID = csp.productId
  200. WHERE p.shopID = #{shopId}
  201. AND p.validFlag='2' AND cs.skuId in
  202. <foreach collection="skuIdList" open="(" separator="," close=")" item="skuId">
  203. #{skuId}
  204. </foreach>
  205. </select>
  206. <select id="getCartProductList" resultType="com.caimei365.order.model.vo.CartItemVo">
  207. SELECT c.skuId as skuId,
  208. c.cm_cartID AS id,
  209. c.productCount AS number,
  210. p.productID AS productId,
  211. p.shopID AS shopId,
  212. p.`name` AS `name`,
  213. p.mainImage AS image,
  214. p.productCode,
  215. cs.price,
  216. cs.price AS originalPrice,
  217. cs.unit AS unit,
  218. cs.stock AS stock,
  219. p.step AS step,
  220. cs.minBuyNumber AS min,
  221. p.priceFlag,
  222. cs.ladderPriceFlag AS ladderFlag,
  223. p.includedTax AS includedTax,
  224. p.invoiceType AS invoiceType,
  225. p.taxPoint AS taxRate,
  226. p.productCategory,
  227. p.visibility,
  228. p.validFlag AS validFlag,
  229. p.productType
  230. FROM cm_cart c
  231. LEFT JOIN product p ON c.productID = p.productID
  232. LEFT JOIN cm_sku cs ON cs.skuId = c.skuId
  233. WHERE p.validFlag = '2'
  234. AND c.userID = #{userId}
  235. AND p.priceFlag != '1'
  236. AND cs.stock != '0'
  237. AND cs.stock <![CDATA[ >= ]]> c.productCount
  238. ORDER BY c.cm_cartID DESC
  239. </select>
  240. <select id="getCartPo" resultType="com.caimei365.order.model.po.CartPo">
  241. SELECT c.cm_cartID AS id,
  242. c.productCount,
  243. c.productID AS productId,
  244. c.shopID AS shopId,
  245. c.userID AS userId,
  246. c.skuId
  247. FROM cm_cart c
  248. WHERE c.skuId = #{skuId}
  249. and c.userID = #{userId}
  250. ORDER BY c.cm_cartID DESC
  251. limit 1
  252. </select>
  253. <update id="updateCart" parameterType="com.caimei365.order.model.po.CartPo">
  254. UPDATE cm_cart
  255. set productCount = #{productCount},
  256. addTime = #{addTime},
  257. productId = (select productId from cm_sku where skuId = #{skuId}),
  258. shopId = (select shopId
  259. from product p
  260. left join cm_sku cs on p.productId = cs.productId
  261. where cs.skuId = #{skuId})
  262. WHERE userID = #{userId}
  263. AND skuId = #{skuId}
  264. </update>
  265. <insert id="insertCart" keyColumn="cm_cartID" keyProperty="id" parameterType="com.caimei365.order.model.po.CartPo"
  266. useGeneratedKeys="true">
  267. INSERT INTO cm_cart (skuId, shopID, productID, userID, productCount, addTime, reBuyFlag)
  268. VALUES (#{skuId},
  269. (select shopId from product p left join cm_sku cs on p.productId = cs.productId where cs.skuId = #{skuId}),
  270. (select productId from cm_sku where skuId = #{skuId}), #{userId},
  271. #{productCount},
  272. #{addTime}, #{reBuyFlag})
  273. </insert>
  274. <delete id="deleteCartByProductIds">
  275. DELETE FROM cm_cart
  276. WHERE userID = #{userId}
  277. AND skuId in
  278. <foreach collection="skuIds" open="(" separator="," close=")" item="skuId">
  279. #{skuId}
  280. </foreach>
  281. </delete>
  282. <delete id="deleteUserInvoice">
  283. delete
  284. from cm_user_invoiceinfo
  285. where userId = #{userId}
  286. </delete>
  287. <delete id="deleteCartSku">
  288. delete
  289. from cm_cart
  290. where skuId = #{oldSkuId}
  291. and userId = #{userId}
  292. </delete>
  293. <insert id="insertUserInvoice">
  294. INSERT INTO cm_user_invoiceinfo (userId, invoiceTitle, corporationTaxNum,
  295. registeredAddress, registeredPhone, bankAccountNo, openBank)
  296. VALUES (#{userId}, #{invoiceTitle}, #{corporationTaxNum},
  297. #{registeredAddress}, #{registeredPhone}, #{bankAccountNo}, #{openBank})
  298. </insert>
  299. <update id="updateUserInvoice">
  300. UPDATE cm_user_invoiceinfo
  301. SET invoiceTitle = #{invoiceTitle},
  302. corporationTaxNum = #{corporationTaxNum},
  303. registeredAddress = #{registeredAddress},
  304. registeredPhone = #{registeredPhone},
  305. bankAccountNo = #{bankAccountNo},
  306. openBank = #{openBank}
  307. WHERE userId = #{userId}
  308. </update>
  309. <select id="getUserInvoice" resultType="com.caimei365.order.model.vo.InvoiceVo">
  310. SELECT id,
  311. userId,
  312. invoiceTitle,
  313. corporationTaxNum,
  314. registeredAddress,
  315. registeredPhone,
  316. bankAccountNo,
  317. openBank
  318. FROM cm_user_invoiceinfo
  319. WHERE userId = #{userId}
  320. order by id desc
  321. limit 1
  322. </select>
  323. <select id="getCartItemByProductId" resultType="com.caimei365.order.model.vo.CartItemVo">
  324. SELECT cs.skuId,
  325. p.productID AS productId,
  326. p.shopID AS shopId,
  327. p.`name` AS `name`,
  328. p.mainImage AS image,
  329. p.productCode,
  330. cs.price,
  331. cs.price AS originalPrice,
  332. cs.unit AS unit,
  333. ifnull(cs.stock,0) AS stock,
  334. p.step AS step,
  335. ifnull(cs.minBuyNumber,(select buyNum from product_ladder_price where skuId=cs.skuId order by buyNum asc limit 1)) AS min,
  336. p.priceFlag,
  337. cs.ladderPriceFlag AS ladderFlag,
  338. p.includedTax AS includedTax,
  339. p.invoiceType AS invoiceType,
  340. p.taxPoint AS taxRate,
  341. p.productCategory,
  342. p.validFlag AS validFlag,
  343. p.visibility,
  344. p.commodityType AS commodityType,
  345. if(csp.id is not null and csp.status = 0, 1, 0) as svipProductFlag,
  346. # csp.priceType as svipPriceType,
  347. # csp.discount as svipDiscount,
  348. # csp.discountPrice as svipDiscountPrice,
  349. p.productType,
  350. p.returnGoodsStutas
  351. FROM cm_sku cs
  352. LEFT JOIN product p on p.productID = cs.productId
  353. LEFT JOIN cm_svip_product csp ON p.productID = csp.productId
  354. WHERE p.validFlag = '2'
  355. AND cs.skuId = #{skuId}
  356. </select>
  357. <select id="findVipCoupon" resultType="java.lang.Integer">
  358. select couponId
  359. from cm_svip_coupon
  360. </select>
  361. <select id="getClubTypeById" resultType="java.lang.Integer">
  362. SELECT firstClubType
  363. FROM club
  364. WHERE userID = #{userId}
  365. </select>
  366. <select id="getHelpContent" resultType="java.lang.String">
  367. select content from helppage where helpPageID=#{helpId}
  368. </select>
  369. </mapper>