130 lines
3.9 KiB
XML
130 lines
3.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="cn.iocoder.mall.order.biz.dao.CartMapper">
|
|
|
|
<sql id="FIELDS">
|
|
id, status, delete_time, selected, user_id,
|
|
spu_id, sku_id, quantity, order_id, order_create_time,
|
|
create_time
|
|
</sql>
|
|
|
|
<select id="selectById" parameterType="Integer" resultType="CartItemDO">
|
|
SELECT
|
|
<include refid="FIELDS" />
|
|
FROM cart_item
|
|
WHERE id = #{id}
|
|
-- AND deleted = 0
|
|
</select>
|
|
|
|
<select id="selectByIds" resultType="CartItemDO">
|
|
SELECT
|
|
<include refid="FIELDS" />
|
|
FROM cart_item
|
|
WHERE id IN
|
|
<foreach item="id" collection="ids" separator="," open="(" close=")" index="">
|
|
#{id}
|
|
</foreach>
|
|
-- AND deleted = 0
|
|
</select>
|
|
|
|
<select id="selectByUserIdAndSkuIdAndStatus" resultType="CartItemDO">
|
|
SELECT
|
|
<include refid="FIELDS" />
|
|
FROM cart_item
|
|
WHERE user_id = #{userId}
|
|
AND sku_id = #{skuId}
|
|
AND status = #{status}
|
|
-- AND deleted = 0
|
|
LIMIT 1
|
|
</select>
|
|
|
|
<select id="selectByUserIdAndStatusAndSelected" resultType="CartItemDO">
|
|
SELECT
|
|
<include refid="FIELDS" />
|
|
FROM cart_item
|
|
WHERE user_id = #{userId}
|
|
AND status = #{status}
|
|
<if test="selected != null">
|
|
AND selected = #{selected}
|
|
</if>
|
|
-- AND deleted = 0
|
|
</select>
|
|
|
|
<select id="selectQuantitySumByUserIdAndStatus" resultType="Integer">
|
|
SELECT
|
|
SUM(quantity)
|
|
FROM cart_item
|
|
WHERE user_id = #{userId}
|
|
AND status = #{status}
|
|
-- AND deleted = 0
|
|
</select>
|
|
|
|
<insert id="insert" parameterType="CartItemDO" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
|
|
INSERT INTO cart_item (
|
|
status, delete_time, selected, user_id,
|
|
spu_id, sku_id, quantity, order_id, order_create_time,
|
|
create_time
|
|
) VALUES (
|
|
#{status}, #{deleteTime}, #{selected}, #{userId},
|
|
#{spuId}, #{skuId}, #{quantity}, #{orderId}, #{orderCreateTime},
|
|
#{createTime}
|
|
)
|
|
</insert>
|
|
|
|
<update id="update" parameterType="CartItemDO">
|
|
UPDATE cart_item
|
|
<set>
|
|
<if test="status != null">
|
|
status = #{status},
|
|
</if>
|
|
<if test="deleteTime != null">
|
|
delete_time = #{deleteTime},
|
|
</if>
|
|
<if test="selected != null">
|
|
selected = #{selected},
|
|
</if>
|
|
<if test="quantity != null">
|
|
quantity = #{quantity},
|
|
</if>
|
|
<if test="orderId != null">
|
|
order_id = #{orderId},
|
|
</if>
|
|
<if test="orderCreateTime != null">
|
|
order_create_time = #{orderCreateTime},
|
|
</if>
|
|
<if test="price != null">
|
|
price = #{price},
|
|
</if>
|
|
<if test="quantity != null">
|
|
quantity = #{quantity},
|
|
</if>
|
|
</set>
|
|
WHERE id = #{id}
|
|
</update>
|
|
|
|
<update id="updateQuantity" parameterType="CartItemDO">
|
|
UPDATE cart_item
|
|
SET quantity = quantity + #{quantityIncr}
|
|
WHERE id = #{id}
|
|
</update>
|
|
|
|
<update id="updateListByUserIdAndSkuId">
|
|
UPDATE cart_item
|
|
<set>
|
|
<if test="selected != null">
|
|
selected = #{selected},
|
|
</if>
|
|
<if test="status != null">
|
|
status = #{status},
|
|
</if>
|
|
</set>
|
|
WHERE user_id = #{userId}
|
|
AND sku_id IN
|
|
<foreach item="skuId" collection="skuIds" separator="," open="(" close=")" index="">
|
|
#{skuId}
|
|
</foreach>
|
|
-- AND deleted = 0
|
|
</update>
|
|
|
|
</mapper>
|