RuoYi-Vue/ruoyi-quartz/src/main/resources/mapper/quartz/DailySaleMapper.xml

53 lines
1.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.DailySaleMapper">
<select id="selectDailySale" resultType="com.ruoyi.xkt.dto.dailySale.DailySaleDTO">
SELECT
ssd.store_id,
COALESCE ( SUM( CASE WHEN ssd.sale_type = 1 THEN ssd.amount ELSE 0 END ), 0 ) AS saleAmount,
COALESCE ( SUM( CASE WHEN ssd.sale_type = 2 THEN ssd.amount ELSE 0 END ), 0 ) AS refundAmount,
COALESCE ( SUM( CASE WHEN ssd.sale_type = 1 THEN ssd.quantity ELSE 0 END ), 0 ) AS saleNum,
COALESCE ( SUM( CASE WHEN ssd.sale_type = 2 THEN ssd.quantity ELSE 0 END ), 0 ) AS refundNum,
COALESCE ( COUNT( ssd.store_cus_id ), 0 ) AS customerNum,
COALESCE ( SUM( sps.quantity ), 0 ) AS storageNum
FROM
store_sale_detail ssd
LEFT JOIN store_product_storage sps ON ssd.store_id = sps.store_id
WHERE
ssd.del_flag = 0 AND ssd.voucher_date = #{voucherDate}
GROUP BY
ssd.store_id
</select>
<select id="selectSaleThousand" resultType="com.ruoyi.xkt.dto.dailyStoreTag.DailyStoreTagDTO">
SELECT DISTINCT
store_id
FROM
daily_sale
WHERE
voucher_date BETWEEN #{yesterday} AND #{oneMonthAgo}
GROUP BY
store_id
HAVING
SUM( sale_num ) >= 1000
</select>
<select id="selectTop10List" resultType="com.ruoyi.xkt.dto.dailyStoreTag.DailyStoreTagDTO">
SELECT DISTINCT
store_id
FROM
daily_sale
WHERE
voucher_date BETWEEN #{yesterday} AND #{oneMonthAgo}
GROUP BY
store_id
ORDER BY
SUM(IFNULL( sale_num, 0 )) DESC
LIMIT 10
</select>
</mapper>