355 lines
14 KiB
XML
355 lines
14 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.StoreProductMapper">
|
|
|
|
<select id="fuzzyQueryResPicList" resultType="com.ruoyi.xkt.dto.storeProduct.StoreProdFuzzyResPicDTO">
|
|
SELECT
|
|
sp.id AS storeProdId,
|
|
sp.store_id AS storeId,
|
|
sp.prod_art_num AS prodArtNum,
|
|
sf.file_url AS mainPicUrl
|
|
FROM
|
|
store_product sp
|
|
LEFT JOIN store_product_file spf ON sp.id = spf.store_prod_id AND spf.order_num = 1 AND spf.file_type = 1 AND spf.del_flag = 0
|
|
JOIN sys_file sf ON spf.file_id = sf.id
|
|
WHERE
|
|
sp.del_flag = 0
|
|
AND sp.prod_status IN (2,3)
|
|
AND sp.store_id = #{storeId}
|
|
<if test="prodArtNum != null and prodArtNum != ''">
|
|
AND sp.prod_art_num like concat('%', #{prodArtNum}, '%')
|
|
</if>
|
|
</select>
|
|
|
|
<select id="selectESDTOList" resultType="com.ruoyi.xkt.dto.storeProduct.ProductESDTO">
|
|
SELECT DISTINCT
|
|
sp.id,
|
|
s.store_name AS storeName,
|
|
sf.file_url AS mainPic,
|
|
spca.suitable_season AS season,
|
|
spca.style AS style,
|
|
spcp.min_price AS prodPrice,
|
|
spc1.`name` AS prodCateName,
|
|
spc2.id AS parCateId,
|
|
spc2.`name` AS parCateName
|
|
FROM
|
|
store_product sp
|
|
JOIN store s ON sp.store_id = s.id
|
|
JOIN store_product_file spf ON sp.id = spf.store_prod_id AND spf.del_flag = 0 AND spf.file_type = 1 AND spf.order_num = 1
|
|
JOIN sys_file sf ON spf.file_id = sf.id
|
|
JOIN store_product_category_attribute spca ON sp.id = spca.store_prod_id
|
|
JOIN sys_product_category spc1 ON sp.prod_cate_id = spc1.id
|
|
JOIN sys_product_category spc2 ON spc1.parent_id = spc2.id
|
|
LEFT JOIN ( SELECT store_prod_id, MIN( price ) AS min_price FROM store_product_color_size GROUP BY store_prod_id ) spcp ON sp.id = spcp.store_prod_id
|
|
WHERE
|
|
sp.del_flag = 0
|
|
AND sp.private_item = 0
|
|
AND sp.id IN
|
|
<foreach item="id" collection="idList" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
</select>
|
|
|
|
|
|
<select id="selectSkuList" resultType="com.ruoyi.xkt.dto.storeProduct.StoreProdSkuDTO" >
|
|
SELECT
|
|
spc.id AS storeProdColorId,
|
|
spc.store_prod_id,
|
|
spc.store_color_id,
|
|
spc.color_name,
|
|
spc.order_num,
|
|
spcs.price,
|
|
spcs.size,
|
|
spcs.standard,
|
|
spcs.id AS store_prod_color_size_id
|
|
FROM
|
|
store_product_color spc
|
|
JOIN store_product_color_size spcs ON spc.store_color_id = spcs.store_color_id AND spc.store_prod_id = spcs.store_prod_id AND spcs.del_flag = 0
|
|
WHERE
|
|
spc.del_flag = 0
|
|
AND spc.prod_status IN (2,3)
|
|
AND spcs.standard = 1
|
|
AND spc.store_prod_id = #{storeProdId}
|
|
</select>
|
|
|
|
<select id="selectPriceAndMainPicList" resultType="com.ruoyi.xkt.dto.storeProduct.StoreProdPriceAndMainPicDTO">
|
|
SELECT
|
|
sp.id AS storeProdId,
|
|
sp.prod_art_num AS prodArtNum,
|
|
sf.file_url AS mainPicUrl,
|
|
sp.prod_title,
|
|
MIN( spcs.price ) AS minPrice
|
|
FROM
|
|
store_product sp
|
|
JOIN store_product_color_size spcs ON sp.id = spcs.store_prod_id AND spcs.del_flag = 0
|
|
JOIN store_product_file spf ON sp.id = spf.store_prod_id AND spf.del_flag = 0 AND spf.file_type = 1 AND spf.order_num = 1
|
|
JOIN sys_file sf ON spf.file_id = sf.id
|
|
WHERE
|
|
sp.del_flag = 0
|
|
AND sp.prod_status IN (2,3)
|
|
AND sp.id IN
|
|
<foreach item="id" collection="storeProdIdList" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
GROUP BY
|
|
sp.id,
|
|
sf.file_url
|
|
</select>
|
|
|
|
<select id="selectPriceAndMainPicAndTagList" resultType="com.ruoyi.xkt.dto.storeProduct.StoreProdPriceAndMainPicAndTagDTO">
|
|
SELECT
|
|
sp.id AS storeProdId,
|
|
sp.prod_cate_id,
|
|
spc.`name` AS prodCateName,
|
|
spc.parent_id AS parCateId,
|
|
sp.prod_art_num AS prodArtNum,
|
|
sf.file_url AS mainPicUrl,
|
|
sf.file_name AS mainPicName,
|
|
sf.file_size AS mainPicSize,
|
|
sp.prod_title,
|
|
MIN( spcs.price ) AS minPrice,
|
|
sp.store_id,
|
|
s.store_name,
|
|
GROUP_CONCAT( DISTINCT dpt.tag ORDER BY dpt.type ASC ) AS tagStr,
|
|
EXISTS( SELECT 1 FROM store_product_file spf2 WHERE spf2.store_prod_id = sp.id AND spf2.del_flag = 0 AND spf2.file_type = 2 LIMIT 1 ) AS hasVideo
|
|
FROM
|
|
store_product sp
|
|
JOIN store_product_color_size spcs ON sp.id = spcs.store_prod_id AND spcs.del_flag = 0
|
|
JOIN store_product_file spf ON sp.id = spf.store_prod_id AND spf.del_flag = 0 AND spf.file_type = 1 AND spf.order_num = 1
|
|
JOIN sys_file sf ON spf.file_id = sf.id
|
|
JOIN store s ON sp.store_id = s.id
|
|
JOIN sys_product_category spc ON sp.prod_cate_id = spc.id
|
|
LEFT JOIN daily_prod_tag dpt ON sp.id = dpt.store_prod_id AND dpt.del_flag = 0
|
|
WHERE
|
|
sp.del_flag = 0
|
|
AND sp.prod_status IN (2,3)
|
|
AND sp.id IN
|
|
<foreach item="id" collection="storeProdIdList" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
GROUP BY
|
|
sp.id,
|
|
sf.file_url,
|
|
sf.file_name,
|
|
sf.file_size
|
|
</select>
|
|
|
|
<select id="getStoreProdViewAttr" resultType="com.ruoyi.xkt.dto.storeProduct.StoreProdViewDTO">
|
|
SELECT
|
|
sp.id AS storeProdId,
|
|
sp.prod_art_num,
|
|
sp.prod_title,
|
|
SUM( IFNULL( sps.img_search_count, 0 ) ) AS img_search_count,
|
|
sf.file_url AS mainPicUrl,
|
|
GROUP_CONCAT( DISTINCT dpt.tag ORDER BY dpt.type ) AS tagStr,
|
|
sp.store_id,
|
|
s.store_name,
|
|
MIN( spcs.price ) AS price
|
|
FROM
|
|
store_product sp
|
|
LEFT JOIN store_product_statistics sps ON sp.id = sps.store_prod_id AND sps.voucher_date BETWEEN #{voucherDateStart} AND #{voucherDateEnd}
|
|
LEFT JOIN store_product_file spf ON sp.id = spf.store_prod_id AND spf.del_flag = 0 AND spf.file_type = 1 AND spf.order_num = 1
|
|
LEFT JOIN sys_file sf ON spf.file_id = sf.id
|
|
LEFT JOIN store s ON sp.store_id = s.id
|
|
LEFT JOIN store_product_color_size spcs ON sp.id = spcs.store_prod_id AND spcs.del_flag = 0
|
|
LEFT JOIN daily_prod_tag dpt ON sp.id = dpt.store_prod_id AND dpt.del_flag = 0
|
|
WHERE
|
|
sp.del_flag = 0
|
|
AND sp.prod_status IN (2,3)
|
|
AND sp.id IN
|
|
<foreach item="id" collection="storeProdIdList" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
GROUP BY
|
|
sp.id,
|
|
sf.file_url
|
|
</select>
|
|
|
|
|
|
<select id="getSearchHotViewAttr" resultType="com.ruoyi.xkt.dto.storeProduct.StoreProdViewDTO">
|
|
SELECT
|
|
sp.id AS storeProdId,
|
|
sp.prod_art_num,
|
|
sp.prod_title,
|
|
sf.file_url AS mainPicUrl,
|
|
GROUP_CONCAT( DISTINCT dpt.tag ORDER BY dpt.type ) AS tagStr,
|
|
sp.store_id,
|
|
s.store_name,
|
|
MIN( spcs.price ) AS price
|
|
FROM
|
|
store_product sp
|
|
JOIN store_product_file spf ON sp.id = spf.store_prod_id AND spf.del_flag = 0 AND spf.file_type = 1 AND spf.order_num = 1
|
|
JOIN sys_file sf ON spf.file_id = sf.id
|
|
JOIN store s ON sp.store_id = s.id
|
|
JOIN store_product_color_size spcs ON sp.id = spcs.store_prod_id AND spcs.del_flag = 0
|
|
LEFT JOIN daily_prod_tag dpt ON sp.id = dpt.store_prod_id AND dpt.del_flag = 0
|
|
WHERE
|
|
sp.del_flag = 0
|
|
AND sp.id IN
|
|
<foreach item="id" collection="storeProdIdList" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
GROUP BY
|
|
sp.id,
|
|
sf.file_url
|
|
</select>
|
|
|
|
|
|
<select id="selectTop20List" resultType="com.ruoyi.xkt.dto.dailyStoreTag.DailyStoreTagDTO">
|
|
SELECT
|
|
sp.store_id,
|
|
SUM( id ) AS count
|
|
FROM
|
|
store_product sp
|
|
WHERE
|
|
sp.del_flag = 0
|
|
AND sp.create_time between #{oneWeekAgo} AND #{yesterday}
|
|
GROUP BY
|
|
sp.store_id
|
|
ORDER BY
|
|
count DESC
|
|
LIMIT 20
|
|
</select>
|
|
|
|
<select id="selectPCProdInfo" resultType="com.ruoyi.xkt.dto.storeProduct.StoreProdPCResDTO">
|
|
SELECT
|
|
s.id AS store_id,
|
|
s.store_name,
|
|
sp.id AS storeProdId,
|
|
sp.prod_art_num,
|
|
sp.prod_title,
|
|
sp.create_time,
|
|
spd.detail,
|
|
<if test="userId != null">
|
|
EXISTS ( SELECT 1 FROM user_favorites uf WHERE sp.id = uf.store_prod_id AND uf.del_flag = 0 AND uf.user_id = #{userId} ) AS collectProd
|
|
</if>
|
|
<if test="userId == null">
|
|
false AS collectProd
|
|
</if>
|
|
FROM
|
|
store_product sp
|
|
JOIN store_product_detail spd ON sp.id = spd.store_prod_id AND spd.del_flag = 0
|
|
JOIN store s ON sp.store_id = s.id
|
|
WHERE
|
|
sp.del_flag = 0
|
|
AND sp.id = #{storeProdId}
|
|
</select>
|
|
|
|
|
|
<select id="getStatusNum" resultType="com.ruoyi.xkt.dto.storeProduct.StoreProdStatusCountResDTO">
|
|
SELECT
|
|
COALESCE ( SUM( CASE WHEN sp.del_flag = 0 AND sp.prod_status = 2 THEN 1 ELSE 0 END ), 0 ) AS onSaleNum,
|
|
COALESCE ( SUM( CASE WHEN sp.del_flag = 0 AND sp.prod_status = 3 THEN 1 ELSE 0 END ), 0 ) AS tailGoodsNum,
|
|
COALESCE ( SUM( CASE WHEN sp.del_flag = 0 AND sp.prod_status = 4 THEN 1 ELSE 0 END ), 0 ) AS offSaleNum
|
|
FROM
|
|
store_product sp
|
|
WHERE
|
|
sp.del_flag = 0
|
|
AND sp.private_item = 0
|
|
AND sp.store_id = #{storeId}
|
|
</select>
|
|
|
|
|
|
<select id="getStatusCateNum" resultType="com.ruoyi.xkt.dto.storeProduct.StoreProdStatusCateCountDTO">
|
|
SELECT
|
|
sp.prod_status,
|
|
sp.prod_cate_id,
|
|
sp.prod_cate_name,
|
|
COUNT( sp.id ) AS cateCount
|
|
FROM
|
|
store_product sp
|
|
WHERE
|
|
sp.del_flag = 0
|
|
AND sp.private_item = 0
|
|
AND sp.store_id = #{storeId}
|
|
GROUP BY
|
|
sp.prod_status,
|
|
sp.prod_cate_id,
|
|
sp.prod_cate_name
|
|
ORDER BY
|
|
cateCount DESC
|
|
</select>
|
|
|
|
<select id="getAppInfo" resultType="com.ruoyi.xkt.dto.storeProduct.StoreProdAppResDTO">
|
|
SELECT DISTINCT
|
|
sp.id AS storeProdId,
|
|
sp.store_id,
|
|
s.store_name,
|
|
sp.prod_art_num,
|
|
sp.prod_title,
|
|
sp.create_time,
|
|
MIN( DISTINCT spcs.price ) AS minPrice,
|
|
GROUP_CONCAT( DISTINCT dpt.tag ORDER BY dpt.type ASC ) AS tagStr,
|
|
spd.detail,
|
|
<if test="userId != null">
|
|
EXISTS ( SELECT 1 FROM user_favorites uf WHERE sp.id = uf.store_prod_id AND uf.del_flag = 0 AND uf.user_id = #{userId} ) AS collectProd
|
|
</if>
|
|
FROM
|
|
store_product sp
|
|
JOIN store s ON sp.store_id = s.id
|
|
JOIN store_product_detail spd ON sp.id = spd.store_prod_id AND spd.del_flag = 0
|
|
JOIN store_product_color_size spcs ON sp.id = spcs.store_prod_id AND spcs.del_flag = 0
|
|
LEFT JOIN daily_prod_tag dpt ON sp.id = dpt.store_prod_id AND dpt.del_flag = 0
|
|
WHERE
|
|
sp.del_flag = 0 AND sp.id = #{storeProdId}
|
|
GROUP BY
|
|
sp.id,
|
|
spd.detail
|
|
</select>
|
|
|
|
<select id="selectLatest10List" resultType="com.ruoyi.xkt.dto.storeHomepage.StoreRecommendResDTO">
|
|
SELECT
|
|
sp.id AS storeProdId,
|
|
sp.store_id,
|
|
s.store_name,
|
|
sp.prod_art_num,
|
|
sp.prod_title,
|
|
MIN( spcs.price ) AS minPrice,
|
|
false AS advert
|
|
FROM
|
|
store_product sp
|
|
JOIN store s ON sp.store_id = s.id
|
|
JOIN store_product_color_size spcs ON sp.id = spcs.store_prod_id AND spcs.del_flag = 0
|
|
WHERE
|
|
sp.del_flag = 0
|
|
AND sp.store_id = #{storeId}
|
|
GROUP BY
|
|
sp.id
|
|
ORDER BY
|
|
sp.create_time DESC
|
|
LIMIT 10
|
|
</select>
|
|
|
|
<select id="selectDownloadProdInfo" resultType="com.ruoyi.xkt.dto.storeProduct.StoreProdPcDownloadInfoResDTO">
|
|
SELECT
|
|
s.store_name,
|
|
sp.prod_art_num,
|
|
sf.file_url AS mainPicUrl
|
|
FROM
|
|
store_product sp
|
|
JOIN store s ON sp.store_id = s.id
|
|
JOIN store_product_file spf ON sp.id = spf.store_prod_id AND spf.file_type = 1 AND spf.order_num = 1 AND spf.del_flag = 0
|
|
JOIN sys_file sf ON spf.file_id = sf.id
|
|
WHERE
|
|
sp.del_flag = 0 AND sp.id = #{storeProdId}
|
|
</select>
|
|
|
|
<select id="filterInvalidStoreProd">
|
|
SELECT
|
|
sp.id AS storeProductId
|
|
FROM
|
|
store_product sp JOIN store s ON sp.store_id = s.id AND s.del_flag = 0
|
|
WHERE
|
|
sp.del_flag = 0 AND sp.private_item = 0
|
|
<if test="storeProdIdList != null">
|
|
AND sp.id IN
|
|
<foreach item="item" collection="storeProdIdList" index="index" open="(" close=")" separator=",">
|
|
#{item}
|
|
</foreach>
|
|
</if>
|
|
</select>
|
|
|
|
|
|
</mapper> |