cartMapper.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC
  4. "-//mybatis.org//DTD Mapper 3.0//EN"
  5. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  6. <!-- 命名,每一个映射对象不一样
  7. namespace:必须与对应的接口全类名一致
  8. -->
  9. <mapper namespace="com.iamberry.wechat.service.mapper.CartMapper">
  10. <!-- 查询用户购物车所有信息 -->
  11. <select id="selectCartByOpenId" parameterType="String" resultType="CartDto">
  12. SELECT
  13. C.CART_ID cartId, C.CART_PRODUCT_ID cartProductId,C.CART_COLOR_ID cartColorId, C.CART_NUM cartNum,
  14. P.PRODUCT_NAME productName, pc.COLOR_DISCOUNT productDiscount,
  15. pc.color_status productStatus,
  16. pc.COLOR_NAME productColor,
  17. pc.color_img productIntroduceImg,
  18. pc.COLOR_69CODE productRemark,
  19. P.PRODUCT_TYPE productType
  20. FROM
  21. TB_IAMBERRY_SHOP_CART C LEFT JOIN TB_IAMBERRY_PRODUCT_INFO P ON C.CART_PRODUCT_ID = P.PRODUCT_ID
  22. LEFT JOIN TB_IAMBERRY_PRODUCT_COLOR pc ON c.CART_COLOR_ID = pc.COLOR_ID
  23. WHERE
  24. C.CART_OPENID = #{openId}
  25. ORDER BY C.CART_ID DESC
  26. </select>
  27. <select id="getCartNumByCartOpenId" parameterType="String" resultType="Integer">
  28. SELECT
  29. sum(C.CART_NUM)
  30. FROM
  31. TB_IAMBERRY_SHOP_CART C
  32. WHERE
  33. C.CART_OPENID = #{0}
  34. </select>
  35. <!-- 修改购物车数量信息 -->
  36. <update id="updateCartByOpenId" parameterType="CartDto">
  37. UPDATE
  38. TB_IAMBERRY_SHOP_CART
  39. SET
  40. CART_NUM = #{cartNum}
  41. WHERE
  42. CART_OPENID = #{cartOpenId}
  43. AND
  44. CART_PRODUCT_ID = #{cartProductId}
  45. AND
  46. CART_COLOR_ID = #{cartColorId}
  47. </update>
  48. <!-- 根据商品id和openid查询购物车数量 -->
  49. <select id="getCartNumByOpenId" parameterType="CartDto" resultType="Integer">
  50. SELECT
  51. CART_NUM cartNum
  52. FROM
  53. TB_IAMBERRY_SHOP_CART
  54. WHERE
  55. CART_OPENID = #{cartOpenId}
  56. AND
  57. CART_PRODUCT_ID = #{cartProductId}
  58. AND
  59. CART_COLOR_ID = #{cartColorId}
  60. </select>
  61. <!-- 获取购物车信息看是否有记录该商品信息 -->
  62. <select id="getCartByCartProductId" parameterType="CartDto" resultType="CartDto">
  63. SELECT
  64. CART_ID cartId,
  65. CART_NUM cartNum
  66. FROM
  67. TB_IAMBERRY_SHOP_CART
  68. WHERE
  69. CART_OPENID = #{cartOpenId}
  70. AND
  71. CART_PRODUCT_ID = #{cartProductId}
  72. AND
  73. CART_COLOR_ID = #{cartColorId}
  74. </select>
  75. <!-- 新增购物车数据 -->
  76. <insert id="addProductToCart" parameterType="CartDto" useGeneratedKeys="true" keyProperty="cartId">
  77. INSERT INTO
  78. TB_IAMBERRY_SHOP_CART(CART_OPENID, CART_PRODUCT_ID, CART_NUM, CART_COLOR_ID,CART_CREATE_DATE)
  79. VALUES
  80. (#{cartOpenId}, #{cartProductId}, #{cartNum}, #{cartColorId}, NOW())
  81. </insert>
  82. <!-- 删除购物车物品信息 -->
  83. <delete id="deleteCartByCartId" parameterType="CartDto">
  84. DELETE FROM TB_IAMBERRY_SHOP_CART WHERE CART_PRODUCT_ID = #{cartProductId} AND CART_OPENID = #{cartOpenId} AND CART_COLOR_ID = #{cartColorId}
  85. </delete>
  86. <!-- 根据openid查看销售订单表数据 -->
  87. <select id="getOrderList" parameterType="ShopSalesOrderDto" resultType="ShopSalesOrderDto">
  88. SELECT
  89. SALES_ORDERID salesOrderid,
  90. SALES_STATUS salesStatus
  91. FROM
  92. TB_IAMBERRY_SHOP_SALES_ORDER
  93. WHERE
  94. SALES_OPENID = #{salesOpenid}
  95. </select>
  96. <!-- 分页查询销售订单表 -->
  97. <select id="selectShopOrder" parameterType="PaperBean" resultMap="orderListMap">
  98. SELECT DISTINCT O.SALES_ORDERID, O.SALES_STATUS, O.SALES_CREATE_DATE,
  99. O.SALES_AMOUNT, O.SALES_INTEGRAL_NUM, O.SALES_RATE_AMOUNT,
  100. O.SALES_ADDRESS_INFO, O.SALES_ADDRESS_NAME,
  101. O.SALES_USER_REMARK, O.SALES_POST_NUM, O.SALES_POST_FIRM,
  102. O.SALES_SEND_DATE, O.SALES_ADDRESS_POSTNUM,
  103. O.SALES_ADDRESS_TEL , 45*60-TIMESTAMPDIFF(SECOND,O.SALES_CREATE_DATE,NOW()) SALES_ADMIN_REMARK
  104. FROM
  105. TB_IAMBERRY_SHOP_SALES_ORDER O LEFT JOIN TB_IAMBERRY_SHOP_ORDER_ITEM I
  106. ON O.SALES_ORDERID = I.ITEM_SALES_ORDERID
  107. WHERE
  108. O.SALES_OPENID = #{text}
  109. AND
  110. O.SALES_ORDER_TYPE = 1
  111. <if test="status != null and status != ''">
  112. AND O.SALES_STATUS = #{status}
  113. </if>
  114. <if test="str != null">
  115. AND (I.ITEM_PRODUCT_NAME LIKE CONCAT('%',#{str},'%') OR I.ITEM_SALES_ORDERID LIKE CONCAT('%',#{str},'%'))
  116. </if>
  117. <if test="beginDate != null">
  118. AND DATE_FORMAT(O.SALES_CREATE_DATE, '%Y-%m-%d') = DATE_FORMAT(#{beginDate}, '%Y-%m-%d')
  119. </if>
  120. ORDER BY O.SALES_CREATE_DATE DESC
  121. LIMIT #{minNum}, #{maxNum}
  122. </select>
  123. <resultMap type="ShopOrderAndItemDto" id="orderListMap">
  124. <id column="SALES_ORDERID" property="salesOrderid"/>
  125. <result column="SALES_STATUS" property="salesStatus"/>
  126. <result column="SALES_CREATE_DATE" property="salesCreateDate"/>
  127. <result column="SALES_AMOUNT" property="salesAmount"/>
  128. <result column="SALES_INTEGRAL_NUM" property="salesIntegralNum"/>
  129. <result column="SALES_RATE_AMOUNT" property="salesRateAmount"/>
  130. <result column="SALES_ADDRESS_INFO" property="salesAddressInfo"/>
  131. <result column="SALES_ADDRESS_NAME" property="salesAddressName"/>
  132. <result column="SALES_USER_REMARK" property="salesUserRemark"/>
  133. <result column="SALES_POST_NUM" property="salesPostNum"/>
  134. <result column="SALES_POST_FIRM" property="salesPostFirm"/>
  135. <result column="SALES_SEND_DATE" property="salesSendDate"/>
  136. <result column="SALES_ADMIN_REMARK" property="salesAdminRemark"/>
  137. <result column="SALES_ADDRESS_POSTNUM" property="salesAddressPostnum"/>
  138. <result column="SALES_ADDRESS_TEL" property="salesAddressTel"/>
  139. <collection property="orderItemList" column="SALES_ORDERID" ofType="OrderItem" select="getOrderItemByOrderId"/>
  140. </resultMap>
  141. <select id="getOrderItemByOrderId" parameterType="String" resultType="OrderItem">
  142. SELECT I.ITEM_ID itemId,
  143. I.ITEM_SALES_ORDERID itemSalesOrderid, I.ITEM_PRODUCT_NAME itemProductName,
  144. I.ITEM_PRODUCT_DISCOUNT itemProductDiscount, I.ITEM_PRODUCT_PRICE itemProductPrice,
  145. I.ITEM_PRODUCT_PIC itemProductPic, I.ITEM_NUM itemNum, I.ITEM_TOTAL itemTotal,
  146. c.COLOR_DISCOUNT productDiscount,c.COLOR_PRICE productPrice,I.ITEM_PRODUCT_TYPE itemProductType,
  147. P.PRODUCT_STATUS productStatus,I.ITEM_PRODUCT_ID itemProductId,c.COLOR_NAME productColor,
  148. I.ITEM_COLOR_ID itemColorId
  149. FROM
  150. TB_IAMBERRY_SHOP_ORDER_ITEM I
  151. LEFT JOIN TB_IAMBERRY_PRODUCT_INFO P ON I.ITEM_PRODUCT_ID = P.PRODUCT_ID
  152. LEFT JOIN TB_IAMBERRY_PRODUCT_COLOR c ON i.ITEM_COLOR_ID = c.COLOR_ID
  153. WHERE
  154. I.ITEM_SALES_ORDERID = #{itemSalesOrderid}
  155. ORDER BY I.ITEM_ID DESC
  156. </select>
  157. <!-- 根据openid查询订单数量 -->
  158. <select id="getOrderNumByOpenId" parameterType="PaperBean" resultType="Integer">
  159. SELECT
  160. COUNT(O.SALES_ORDERID)
  161. FROM
  162. TB_IAMBERRY_SHOP_ORDER_ITEM I LEFT JOIN TB_IAMBERRY_SHOP_SALES_ORDER O
  163. ON O.SALES_ORDERID = I.ITEM_SALES_ORDERID
  164. WHERE
  165. O.SALES_OPENID = #{text}
  166. <if test="status != null and status != ''">
  167. AND O.SALES_STATUS = #{status}
  168. </if>
  169. <if test="str != null">
  170. AND (I.ITEM_PRODUCT_NAME LIKE CONCAT('%',#{str},'%') OR I.ITEM_SALES_ORDERID LIKE CONCAT('%',#{str},'%'))
  171. </if>
  172. <if test="beginDate != null">
  173. AND DATE_FORMAT(O.SALES_CREATE_DATE, '%Y-%m-%d') = DATE_FORMAT(#{beginDate}, '%Y-%m-%d')
  174. </if>
  175. </select>
  176. <!-- -->
  177. <select id="getShopOrderByOrderId" parameterType="java.lang.String" resultType="ShopSalesOrderDto">
  178. SELECT O.SALES_STATUS salesStatus, O.SALES_ORDERID salesOrderid, O.SALES_CREATE_DATE salesCreateDate,
  179. O.SALES_AMOUNT salesAmount, O.SALES_INTEGRAL_NUM salesIntegralNum, O.SALES_RATE_AMOUNT salesRateAmount,
  180. O.SALES_ADDRESS_INFO salesAddressInfo, O.SALES_ADDRESS_NAME salesAddressName, O.SALES_YET_AMOUNT salesYetAmount,
  181. O.SALES_USER_REMARK salesUserRemark, O.SALES_POST_NUM salesPostNum, O.SALES_POST_FIRM salesPostFirm,
  182. O.SALES_SEND_DATE salesSendDate, O.SALES_ADDRESS_POSTNUM salesAddressPostnum,O.SALES_ADDRESS_TEL salesAddressTel,
  183. O.SALES_LOCK_TYPE salesLockType,O.SALES_COUPON_RECEIVE_ID salesCouponReceiveId,
  184. O.SALES_BALANCE_AMOUNT balancePayAmount
  185. FROM
  186. TB_IAMBERRY_SHOP_SALES_ORDER O
  187. WHERE
  188. O.SALES_ORDERID = #{0}
  189. AND
  190. O.SALES_OPENID = #{1}
  191. AND
  192. O.SALES_ORDER_TYPE = 1
  193. </select>
  194. <!-- 根据订单id查询销售订单项 -->
  195. <select id="selectShopOrderItem" parameterType="java.lang.String" resultType="ShopOrderItemDto">
  196. SELECT I.ITEM_ID itemId, I.ITEM_SALES_ORDERID itemSalesOrderid, I.ITEM_PRODUCT_NAME itemProductName,
  197. I.ITEM_PRODUCT_DISCOUNT itemProductDiscount, I.ITEM_PRODUCT_PRICE itemProductPrice,
  198. I.ITEM_PRODUCT_PIC itemProductPic, I.ITEM_NUM itemNum, I.ITEM_TOTAL itemTotal,P.PRODUCT_STATUS productStatus,
  199. I.ITEM_PRODUCT_ID itemProductId, c.COLOR_NAME productColor,I.ITEM_PRODUCT_TYPE itemProductType,
  200. I.ITEM_COLOR_ID itemColorId
  201. FROM
  202. TB_IAMBERRY_SHOP_ORDER_ITEM I
  203. LEFT JOIN TB_IAMBERRY_PRODUCT_INFO P ON I.ITEM_PRODUCT_ID = P.PRODUCT_ID
  204. LEFT JOIN TB_IAMBERRY_PRODUCT_COLOR c ON I.ITEM_COLOR_ID = c.COLOR_ID
  205. WHERE
  206. ITEM_SALES_ORDERID = #{itemSalesOrderid}
  207. ORDER BY ITEM_ID
  208. </select>
  209. <!-- 根据优惠券id获取优惠券优惠价格 -->
  210. <select id="getCouponReduceByItemId" parameterType="CouponItem" resultType="CouponType">
  211. SELECT
  212. T.COUPON_TYPE couponType, T.COUPON_REDUCE couponReduce
  213. FROM
  214. TB_IAMBERRY_COUPON_TYPE T LEFT JOIN TB_IAMBERRY_COUPON_ITEM I
  215. ON T.COUPON_ID = I.COUPON_ID
  216. WHERE
  217. I.COUPON_ITEM_ID = #{couponItemId}
  218. AND
  219. I.COUPON_ITEM_USER_OPENID = #{couponItemUseropenid}
  220. </select>
  221. <!-- 根据购物车ID数组,批量获取购物车集合 -->
  222. <select id="selectCartItemByListId" parameterType="java.util.List" resultType="CartDto">
  223. SELECT
  224. C.CART_ID cartId, G.PRODUCT_ID cartProductId, pc.COLOR_ID cartColorId, G.PRODUCT_STATUS productStatus,
  225. C.CART_NUM cartNum, G.PRODUCT_NAME productName, pc.COLOR_DISCOUNT productPrice,
  226. pc.color_img productIntroduceImg,
  227. pc.COLOR_PRICE productDiscount, PC.COLOR_69CODE productRemark,
  228. pc.COLOR_NAME productColor, G.PRODUCT_TYPE productType
  229. FROM
  230. TB_IAMBERRY_SHOP_CART C
  231. LEFT JOIN TB_IAMBERRY_PRODUCT_INFO G ON C.CART_PRODUCT_ID = G.PRODUCT_ID
  232. LEFT JOIN TB_IAMBERRY_PRODUCT_COLOR PC ON C.CART_COLOR_ID = PC.COLOR_ID
  233. WHERE
  234. C.CART_ID IN (
  235. <foreach collection="array" item="item" separator=",">
  236. #{item}
  237. </foreach>)
  238. ORDER BY C.CART_ID DESC
  239. </select>
  240. <!-- 根据orderId查询订单状态,openid和发货时间 -->
  241. <select id="getOpenIdAndStatus" parameterType="String" resultType="ShopSalesOrderDto">
  242. SELECT
  243. SALES_OPENID salesOpenid, SALES_STATUS salesStatus,SALES_SEND_DATE salesSendDate,
  244. SALES_LOCK_TYPE salesLockType,SALES_COUPON_RECEIVE_ID salesCouponReceiveId
  245. FROM
  246. TB_IAMBERRY_SHOP_SALES_ORDER
  247. WHERE
  248. SALES_ORDERID = #{salesOrderid}
  249. </select>
  250. <!-- 根据购物车ID,批量擅长 -->
  251. <delete id="deleteBatchCartListById" parameterType="java.util.List">
  252. DELETE FROM
  253. TB_IAMBERRY_SHOP_CART
  254. WHERE
  255. CART_ID in (
  256. <foreach collection="list" item="item" separator=",">
  257. #{item}
  258. </foreach>
  259. )
  260. </delete>
  261. <!-- 根据orderId修改订单状态 -->
  262. <update id="updateOrderByOrderId" parameterType="Order">
  263. UPDATE
  264. TB_IAMBERRY_SHOP_SALES_ORDER
  265. SET
  266. SALES_STATUS = #{salesStatus},
  267. SALES_RETURN_DATE = NOW()
  268. <if test="couponId!=null and couponId!=''" >
  269. , SALES_COUPON_RECEIVE_ID=#{couponId}
  270. </if>
  271. <if test="salesReturnDes!=null and salesReturnDes!=''" >
  272. , SALES_RETURN_DES = #{salesReturnDes}
  273. </if>
  274. <if test="salesChangeOrderid != null and salesChangeOrderid != ''">
  275. , SALES_CHANGE_ORDERID = #{salesChangeOrderid}
  276. </if>
  277. WHERE
  278. SALES_ORDERID = #{salesOrderid}
  279. <if test="oldStatus!=null" >
  280. AND
  281. SALES_STATUS = #{oldStatus}
  282. </if>
  283. </update>
  284. <!-- 根据orderId修改订单状态 -->
  285. <update id="updateOrderByOrder" parameterType="Order">
  286. UPDATE
  287. TB_IAMBERRY_SHOP_SALES_ORDER
  288. <set>
  289. SALES_STATUS = #{salesStatus},
  290. <if test="salesReturnDate != null and salesReturnDate != ''">
  291. SALES_RETURN_DATE = #{salesReturnDate},
  292. </if>
  293. <if test="couponId!=null and couponId!=''" >
  294. SALES_COUPON_RECEIVE_ID=#{couponId},
  295. </if>
  296. <if test="salesReturnDes!=null and salesReturnDes!=''" >
  297. SALES_RETURN_DES = #{salesReturnDes},
  298. </if>
  299. <if test="salesChangeOrderid != null and salesChangeOrderid != ''">
  300. SALES_CHANGE_ORDERID = #{salesChangeOrderid},
  301. </if>
  302. </set>
  303. WHERE
  304. SALES_ORDERID = #{salesOrderid}
  305. <if test="oldStatus!=null" >
  306. AND SALES_STATUS = #{oldStatus}
  307. </if>
  308. </update>
  309. <!-- 根据openid和状态查询订单数量 -->
  310. <select id="selectOrderCount" parameterType="ShopSalesOrderDto" resultType="Integer">
  311. SELECT
  312. COUNT(SALES_ORDERID)
  313. FROM
  314. TB_IAMBERRY_SHOP_SALES_ORDER
  315. WHERE
  316. <![CDATA[SALES_STATUS >= #{salesStatus}]]>
  317. AND
  318. SALES_OPENID = #{salesOpenid}
  319. </select>
  320. </mapper>