RuoYi-Vue/xkt/src/main/resources/mapper/ShoppingCartMapper.xml

82 lines
2.9 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.xkt.mapper.ShoppingCartMapper">
<select id="selectDetailList" parameterType="Long" resultType="com.ruoyi.xkt.dto.userShoppingCart.ShopCartPageDetailResDTO">
SELECT
scd.id AS shopping_cart_detail_id,
scd.shopping_cart_id,
scd.store_prod_color_id,
scd.size,
scd.store_color_id,
scd.color_name,
scd.quantity,
spcp.price,
( scd.quantity * spcp.price ) AS amount
FROM
shopping_cart_detail scd
LEFT JOIN store_product_color_price spcp ON scd.store_prod_color_id = spcp.id
WHERE
scd.del_flag = 0
AND scd.shopping_cart_id IN
<foreach item="id" collection="shoppingCartIdList" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<select id="selectShopCartPage" resultType="com.ruoyi.xkt.dto.userShoppingCart.ShopCartPageResDTO">
SELECT DISTINCT
sc.id AS shopping_cart_id,
sc.store_id,
sc.store_prod_id,
s.store_name,
sp.prod_art_num,
sp.prod_title,
CASE
sp.prod_status
WHEN 2 THEN
'在售'
WHEN 4 THEN
'已下架'
WHEN 5 THEN
'已删除'
END AS prod_status
FROM
shopping_cart sc
JOIN store s ON sc.store_id = s.id
JOIN store_product sp ON sc.store_prod_id = sp.id
WHERE
sc.del_flag = 0
AND sc.user_id = #{userId}
AND sp.prod_status IN
<foreach item="status" collection="statusList" open="(" separator="," close=")">
#{status}
</foreach>
<if test="prodArtNum != null and prodArtNum != ''">
AND sp.prod_art_num like concat('%', #{prodArtNum}, '%')
</if>
<if test="storeName != null and storeName != ''">
AND s.store_name like concat('%', #{storeName}, '%')
</if>
ORDER BY
sc.store_id,
sc.id DESC
</select>
<select id="getStatusNum">
SELECT
IFNULL( SUM( CASE WHEN sp.prod_status IN ( 2 ) THEN 1 ELSE 0 END ), 0 ) AS onSaleNum,
IFNULL( SUM( CASE WHEN sp.prod_status IN ( 4, 5 ) THEN 1 ELSE 0 END ), 0 ) AS expiredNum
FROM
shopping_cart sc
JOIN store_product sp ON sc.store_prod_id = sp.id
WHERE
sc.del_flag = 0
AND sc.user_id = #{userId}
AND sc.create_time BETWEEN #{sixMonthAgo} AND #{now}
</select>
</mapper>