Files
aida-seller/src/main/resources/mapper/OrderItemMapper.xml
2026-05-29 10:06:21 +08:00

67 lines
2.5 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.aida.seller.module.order.mapper.OrderItemMapper">
<select id="selectAssetsPage" resultType="com.aida.seller.module.order.vo.AssetsItemVO">
SELECT
soi.listing_id,
soi.listing_name,
soi.thumbnail_url,
soi.price,
soi.create_time
FROM seller_order_item soi
INNER JOIN seller_orders so ON soi.order_id = so.id
INNER JOIN seller_listing l ON soi.listing_id = l.id
WHERE soi.deleted = 0
AND so.deleted = 0
AND so.buyer_id = #{dto.buyerId}
AND so.status = 1
<if test="dto.categories != null and dto.categories.size() > 0">
AND (
<foreach collection="dto.categories" item="cat" separator=" OR ">
JSON_CONTAINS(soi.product_category, #{cat})
</foreach>
)
</if>
<if test="dto.designFor != null and dto.designFor != '' and dto.designFor != 'all'">
AND l.design_for = #{dto.designFor}
</if>
ORDER BY soi.create_time DESC
LIMIT #{offset}, #{size}
</select>
<select id="selectAssetsCount" resultType="java.lang.Long">
SELECT COUNT(*)
FROM seller_order_item soi
INNER JOIN seller_orders so ON soi.order_id = so.id
INNER JOIN seller_listing l ON soi.listing_id = l.id
WHERE soi.deleted = 0
AND so.deleted = 0
AND so.buyer_id = #{dto.buyerId}
AND so.status = 1
<if test="dto.categories != null and dto.categories.size() > 0">
AND (
<foreach collection="dto.categories" item="cat" separator=" OR ">
JSON_CONTAINS(soi.product_category, #{cat})
</foreach>
)
</if>
<if test="dto.designFor != null and dto.designFor != '' and dto.designFor != 'all'">
AND l.design_for = #{dto.designFor}
</if>
</select>
<update id="incrementSalesVolumeByOrderIds">
UPDATE seller_listing
SET sales_volume = sales_volume + 1
WHERE id IN (
SELECT DISTINCT listing_id FROM seller_order_item
WHERE order_id IN
<foreach collection="orderIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
)
</update>
</mapper>