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

191 lines
6.6 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.StoreProductFileMapper">
<update id="updateDelFlagByStoreProdId" parameterType="Long">
UPDATE store_product_file SET del_flag = 2 WHERE store_prod_id = #{storeProdId}
</update>
<select id="selectListByStoreProdId" parameterType="Long" resultType="com.ruoyi.xkt.dto.storeProductFile.StoreProdFileResDTO">
SELECT
spf.store_prod_id AS storeProdId,
spf.file_id AS fileId,
sf.file_url AS fileUrl,
spf.file_type AS fileType,
sf.file_name AS fileName,
spf.file_size AS fileSize,
spf.order_num AS orderNum
FROM
store_product_file spf JOIN sys_file sf ON spf.file_id = sf.id
WHERE
spf.del_flag = 0 AND spf.file_type IN (1,2,3) AND spf.store_prod_id = #{storeProdId}
</select>
<select id="selectMainPicByStoreProdIdList" resultType="com.ruoyi.xkt.dto.storeProductFile.StoreProdMainPicDTO">
SELECT
spf.store_prod_id AS storeProdId,
sf.file_url AS fileUrl
FROM
store_product_file spf
JOIN sys_file sf ON spf.file_id = sf.id
WHERE
spf.del_flag = 0
<if test="storeProdIdList != null and storeProdIdList.size() > 0">
AND spf.store_prod_id in
<foreach item="storeProdId" collection="storeProdIdList" open="(" separator="," close=")">
#{storeProdId}
</foreach>
</if>
<if test="fileType != null">
AND spf.file_type = #{fileType}
</if>
<if test="orderNum != null">
AND spf.order_num = #{orderNum}
</if>
</select>
<select id="selectPicSpaceList" >
SELECT
sp.prod_art_num AS prodArtNum,
sp.id AS storeProdId,
sf.file_url AS fileUrl
FROM
store_product_file spf
JOIN sys_file sf ON spf.file_id = sf.id
JOIN store_product sp ON spf.store_prod_id = sp.id
WHERE
spf.del_flag = 0
AND spf.file_type = #{fileType}
AND spf.store_id = #{storeId}
<if test="storeProdIdList != null and storeProdIdList.size() > 0">
AND spf.store_prod_id in
<foreach item="storeProdId" collection="storeProdIdList" open="(" separator="," close=")">
#{storeProdId}
</foreach>
</if>
ORDER BY
spf.store_prod_id DESC,
spf.order_num
</select>
<select id="selectTotalMainPicList" resultType="com.ruoyi.xkt.dto.storeProductFile.StoreProdFileResDTO">
SELECT
spf.store_prod_id AS storeProdId,
spf.file_id AS fileId,
sf.file_url AS fileUrl,
spf.file_type AS fileType,
spf.file_size AS fileSize,
sf.file_name AS fileName,
spf.order_num AS orderNum
FROM
store_product_file spf
JOIN sys_file sf ON spf.file_id = sf.id
WHERE
spf.del_flag = 0
AND spf.file_type = #{fileType}
AND spf.store_id = #{storeId}
</select>
<select id="selectMainPic" >
SELECT
spf.store_prod_id,
sf.file_url
FROM
store_product_file spf
JOIN store_product sp ON spf.store_prod_id = sp.id
JOIN sys_file sf ON spf.file_id = sf.id
WHERE
spf.del_flag = 0
AND spf.file_type = 1
AND spf.order_num = 1
AND spf.store_prod_id IN
<foreach item="id" collection="storeProdIdList" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<select id="selectLatestFourProdList" resultType="com.ruoyi.xkt.dto.storeProductFile.StoreProdFileLatestFourProdDTO">
WITH RankedProducts AS (
SELECT
spf.store_prod_id,
spf.store_id,
sf.file_url AS mainPicUrl,
ROW_NUMBER() OVER ( PARTITION BY spf.store_id ORDER BY spf.create_time DESC ) AS rank_num
FROM
store_product_file spf
JOIN store_product sp ON spf.store_prod_id = sp.id
JOIN sys_file sf ON spf.file_id = sf.id
JOIN store s ON spf.store_id = s.id
WHERE
spf.del_flag = 0
AND spf.file_type = 1
AND spf.order_num = 1
) SELECT
store_prod_id,
store_id,
mainPicUrl
FROM
RankedProducts
WHERE
rank_num &lt;= 4
ORDER BY
store_id,
rank_num
</select>
<select id="selectVideoAndMainPicList" resultType="com.ruoyi.xkt.dto.storeProductFile.StoreProdFileResDTO">
SELECT
spf.store_prod_id,
spf.file_id,
sf.file_url,
sf.file_name,
sf.file_size,
spf.file_type,
spf.order_num
FROM
store_product_file spf
JOIN sys_file sf ON spf.file_id = sf.id
WHERE
spf.del_flag = 0
AND spf.store_prod_id = #{storeProdId}
<if test="fileTypeList != null and fileTypeList.size() > 0">
AND spf.file_type IN
<foreach item="fileType" collection="fileTypeList" open="(" separator="," close=")">
#{fileType}
</foreach>
</if>
</select>
<select id="selectRandomStoreFileList" resultType="com.ruoyi.xkt.dto.advertRound.app.strength.APPStrengthStoreFileDTO">
SELECT
store_id,
sf.file_url AS mainPicUrl
FROM
(
SELECT
store_id,
file_id
FROM
store_product_file
WHERE
del_flag = 0 AND store_id IN
<foreach item="id" collection="storeIdList" open="(" separator="," close=")">
#{id}
</foreach>
AND file_type = 1
GROUP BY
store_id,
file_id
ORDER BY
RAND()
LIMIT 1
) AS random_files
JOIN sys_file sf ON random_files.file_id = sf.id;
</select>
</mapper>