SkuMapper.xml 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  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.yami.shop.dao.SkuMapper">
  4. <resultMap id="BaseResultMap" type="com.yami.shop.bean.model.Sku">
  5. <!--
  6. WARNING - @mbg.generated
  7. -->
  8. <id column="sku_id" jdbcType="BIGINT" property="skuId"/>
  9. <result column="prod_id" jdbcType="BIGINT" property="prodId"/>
  10. <result column="properties" jdbcType="VARCHAR" property="properties"/>
  11. <result column="ori_price" jdbcType="DECIMAL" property="oriPrice"/>
  12. <result column="price" jdbcType="DECIMAL" property="price"/>
  13. <result column="stocks" jdbcType="INTEGER" property="stocks"/>
  14. <result column="actual_stocks" jdbcType="INTEGER" property="actualStocks"/>
  15. <result column="status" jdbcType="TINYINT" property="status"/>
  16. <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
  17. <result column="rec_time" jdbcType="TIMESTAMP" property="recTime"/>
  18. <result column="party_code" jdbcType="VARCHAR" property="partyCode"/>
  19. <result column="model_id" jdbcType="VARCHAR" property="modelId"/>
  20. <result column="pic" jdbcType="VARCHAR" property="pic"/>
  21. <result column="sku_name" jdbcType="VARCHAR" property="skuName"/>
  22. <result column="is_delete" jdbcType="INTEGER" property="isDelete"/>
  23. </resultMap>
  24. <insert id="insertBatch">
  25. INSERT INTO `tz_sku` (
  26. `prod_id`,`properties`,`ori_price`,`price`,`stocks`,`actual_stocks`,
  27. `update_time`,`rec_time`,`party_code`,`model_id`, `pic`,
  28. `sku_name`,`prod_name`,`version`,`weight`,`volume`, `status`, `is_delete`, `sku_score`
  29. )
  30. VALUES
  31. <foreach collection="skuList" item="sku" separator=",">
  32. (
  33. #{prodId},#{sku.properties},#{sku.oriPrice},#{sku.price},#{sku.stocks},
  34. #{sku.actualStocks}, NOW(),NOW(),#{sku.partyCode},#{sku.modelId}, #{sku.pic},
  35. #{sku.skuName},#{sku.prodName},0,#{sku.weight},#{sku.volume}, #{sku.status},0, #{sku.skuScore}
  36. )
  37. </foreach>
  38. </insert>
  39. <select id="listByProdId" resultType="com.yami.shop.bean.model.Sku">
  40. select *
  41. from tz_sku
  42. where prod_id = #{prodId}
  43. and is_delete = 0
  44. </select>
  45. <select id="listByProdIdAndPlatform" resultType="com.yami.shop.bean.model.Sku">
  46. SELECT ts.sku_id,
  47. ts.prod_id,
  48. ts.sku_name,
  49. ts.prod_name,
  50. ts.ori_price,
  51. tcp.channel_prod_price AS price,
  52. ts.sku_score,
  53. ts.properties,
  54. ts.stocks,
  55. tss.shop_sku_stocks AS actual_stocks,
  56. ts.update_time,
  57. ts.rec_time,
  58. ts.party_code,
  59. ts.model_id,
  60. ts.pic,
  61. ts.version,
  62. ts.weight,
  63. ts.volume,
  64. ts.`status`,
  65. ts.is_delete,
  66. ts.weight_unit,
  67. ts.sku_code,
  68. ts.hb_spu_id,
  69. ts.hb_sku_id
  70. FROM tz_shop_sku AS tss
  71. LEFT JOIN tz_sku AS ts ON ts.sku_id = tss.sku_id
  72. LEFT JOIN tz_channel_prod AS tcp ON ts.sku_id = tcp.sku_id
  73. WHERE tss.spu_id = #{prodId}
  74. AND ts.is_delete = 0
  75. AND tcp.is_delete = 0
  76. AND ts.`status` = 1
  77. AND tss.shop_id = #{shopId}
  78. AND tcp.channel_id = #{platform}
  79. </select>
  80. <select id="listBySukIdAndPlatformShop" resultType="com.yami.shop.bean.model.Sku">
  81. SELECT ts.sku_id,
  82. ts.prod_id,
  83. ts.sku_name,
  84. ts.prod_name,
  85. ts.ori_price,
  86. tcp.channel_prod_price AS price,
  87. ts.sku_score,
  88. ts.properties,
  89. ts.stocks,
  90. tss.shop_sku_stocks AS actual_stocks,
  91. ts.update_time,
  92. ts.rec_time,
  93. ts.party_code,
  94. ts.model_id,
  95. ts.pic,
  96. ts.version,
  97. ts.weight,
  98. ts.volume,
  99. ts.`status`,
  100. ts.is_delete,
  101. ts.weight_unit,
  102. ts.sku_code,
  103. ts.hb_spu_id,
  104. ts.hb_sku_id
  105. FROM tz_sku AS ts
  106. LEFT JOIN tz_shop_sku AS tss ON ts.sku_id = tss.sku_id
  107. LEFT JOIN tz_channel_prod AS tcp ON ts.sku_id = tcp.sku_id
  108. WHERE ts.sku_id = #{skuId}
  109. AND ts.is_delete = 0
  110. AND tcp.is_delete = 0
  111. AND ts.`status` = 1
  112. AND tss.shop_id = #{shopId}
  113. AND tcp.channel_id = #{platform}
  114. LIMIT 1
  115. </select>
  116. <select id="listBySukIdAndPlatform" resultType="com.yami.shop.bean.model.Sku">
  117. SELECT ts.sku_id,
  118. ts.prod_id,
  119. ts.sku_name,
  120. ts.prod_name,
  121. ts.ori_price,
  122. tcp.channel_prod_price AS price,
  123. ts.sku_score,
  124. ts.properties,
  125. ts.stocks,
  126. tss.shop_sku_stocks AS actual_stocks,
  127. ts.update_time,
  128. ts.rec_time,
  129. ts.party_code,
  130. ts.model_id,
  131. ts.pic,
  132. ts.version,
  133. ts.weight,
  134. ts.volume,
  135. ts.`status`,
  136. ts.is_delete,
  137. ts.weight_unit,
  138. ts.sku_code,
  139. ts.hb_spu_id,
  140. ts.hb_sku_id
  141. FROM tz_sku AS ts
  142. LEFT JOIN tz_shop_sku AS tss ON ts.sku_id = tss.sku_id
  143. LEFT JOIN tz_channel_prod AS tcp ON ts.sku_id = tcp.sku_id
  144. WHERE ts.sku_id = #{skuId}
  145. AND ts.is_delete = 0
  146. AND tcp.is_delete = 0
  147. AND ts.`status` = 1
  148. AND tcp.channel_id = #{platform} LIMIT 1
  149. </select>
  150. <select id="selectByHbSkuId" resultType="com.yami.shop.bean.model.Sku">
  151. select *
  152. from tz_sku
  153. where hb_sku_id = #{hbSkuId}
  154. and is_delete = 0
  155. </select>
  156. <update id="updateStocks" parameterType="com.yami.shop.bean.model.Sku">
  157. update tz_sku
  158. set stocks = stocks - #{sku.stocks},
  159. version = version + 1,
  160. update_time = NOW()
  161. where sku_id = #{sku.skuId}
  162. and #{sku.stocks} &lt;= stocks
  163. </update>
  164. <update id="deleteByProdId">
  165. update tz_sku
  166. set is_delete = 1
  167. where prod_id = #{prodId}
  168. </update>
  169. <update id="returnStock">
  170. <foreach collection="skuCollect" item="changeStocks" index="skuId" separator=";">
  171. update tz_sku set stocks = stocks + #{changeStocks} where sku_id = #{skuId}
  172. </foreach>
  173. </update>
  174. </mapper>