ShiShiYiBan/yudao-module-mall/yudao-module-statistics-biz/src/main/resources/mapper/trade/TradeOrderStatisticsMapper.xml

115 lines
4.6 KiB
XML
Raw Normal View History

2023-10-06 14:15:59 +08:00
<?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.yudao.module.statistics.dal.mysql.trade.TradeOrderStatisticsMapper">
2023-10-16 20:01:25 +08:00
<!-- TODO @疯狂:是返回不是的 MemberAreaStatisticsRespBO 哈 -->
2023-10-09 23:27:10 +08:00
<select id="selectSummaryListByAreaId"
resultType="cn.iocoder.yudao.module.statistics.controller.admin.member.vo.MemberAreaStatisticsRespVO">
SELECT receiver_area_id AS areaId,
2023-10-16 13:00:14 +08:00
(SELECT COUNT(DISTINCT s.user_id)
2023-10-09 23:27:10 +08:00
FROM trade_order AS s
2023-10-16 13:00:14 +08:00
WHERE s.receiver_area_id = m.receiver_area_id) AS orderCreateUserCount,
(SELECT COUNT(DISTINCT s.user_id)
2023-10-09 23:27:10 +08:00
FROM trade_order AS s
WHERE s.receiver_area_id = m.receiver_area_id
AND s.pay_status = TRUE
2023-10-16 13:00:14 +08:00
AND s.deleted = FALSE) AS orderPayUserCount,
2023-10-09 23:27:10 +08:00
(SELECT SUM(s.pay_price)
FROM trade_order AS s
WHERE s.receiver_area_id = m.receiver_area_id
AND s.pay_status = TRUE
AND s.deleted = FALSE) AS orderPayPrice
FROM trade_order m
WHERE deleted = FALSE
GROUP BY receiver_area_id
</select>
<select id="selectUserCountByCreateTimeBetween" resultType="java.lang.Integer">
2023-10-16 09:51:20 +08:00
SELECT COUNT(DISTINCT (user_id))
2023-10-09 23:27:10 +08:00
FROM trade_order
WHERE deleted = FALSE
AND create_time BETWEEN #{beginTime} AND #{endTime}
</select>
<select id="selectUserCountByPayTimeBetween" resultType="java.lang.Integer">
2023-10-16 09:51:20 +08:00
SELECT COUNT(DISTINCT (user_id))
2023-10-06 14:15:59 +08:00
FROM trade_order
2023-10-11 12:32:28 +08:00
WHERE pay_time BETWEEN #{beginTime} AND #{endTime}
2023-10-09 23:27:10 +08:00
AND pay_status = TRUE
2023-10-11 12:32:28 +08:00
AND deleted = FALSE
2023-10-09 23:27:10 +08:00
</select>
<select id="selectCountByCreateTimeBetween" resultType="java.lang.Integer">
SELECT COUNT(1)
FROM trade_order
2023-10-11 12:32:28 +08:00
WHERE create_time BETWEEN #{beginTime} AND #{endTime}
AND deleted = FALSE
2023-10-09 23:27:10 +08:00
</select>
<select id="selectCountByPayTimeBetween" resultType="java.lang.Integer">
SELECT COUNT(1)
FROM trade_order
WHERE pay_status = TRUE
AND create_time BETWEEN #{beginTime} AND #{endTime}
2023-10-11 12:32:28 +08:00
AND deleted = FALSE
2023-10-09 23:27:10 +08:00
</select>
<select id="selectSummaryPriceByPayTimeBetween" resultType="java.lang.Integer">
SELECT SUM(pay_price)
FROM trade_order AS s
WHERE s.pay_status = TRUE
AND deleted = FALSE
AND create_time BETWEEN #{beginTime} AND #{endTime}
2023-10-06 14:15:59 +08:00
</select>
2023-10-11 12:32:28 +08:00
2023-10-16 09:51:20 +08:00
<select id="selectListByPayTimeBetweenAndGroupByDay"
resultType="cn.iocoder.yudao.module.statistics.controller.admin.trade.vo.TradeOrderTrendRespVO">
SELECT DATE_FORMAT(pay_time, '%Y-%m-%d') AS date,
COUNT(1) AS orderPayCount,
SUM(pay_price) AS orderPayPrice
FROM trade_order
WHERE pay_status = TRUE
AND create_time BETWEEN #{beginTime} AND #{endTime}
AND deleted = FALSE
GROUP BY date
</select>
<select id="selectListByPayTimeBetweenAndGroupByMonth"
resultType="cn.iocoder.yudao.module.statistics.controller.admin.trade.vo.TradeOrderTrendRespVO">
SELECT DATE_FORMAT(pay_time, '%Y-%m') AS date,
COUNT(1) AS orderPayCount,
SUM(pay_price) AS orderPayPrice
FROM trade_order
WHERE pay_status = TRUE
AND create_time BETWEEN #{beginTime} AND #{endTime}
AND deleted = FALSE
GROUP BY date
</select>
<select id="selectCountByStatus" resultType="java.lang.Long">
SELECT COUNT(1)
FROM trade_order
2023-10-16 20:01:25 +08:00
WHERE status = #{status}
AND deleted = FALSE
2023-10-16 09:51:20 +08:00
</select>
<select id="selectCountByStatusAndPickUpStoreIdIsNotNull" resultType="java.lang.Long">
SELECT COUNT(1)
FROM trade_order
WHERE status = #{status}
AND pick_up_store_id IS NOT NULL
AND deleted = FALSE
</select>
<select id="selectPaySummaryByStatusAndPayTimeBetween"
resultType="cn.iocoder.yudao.module.statistics.controller.admin.trade.vo.TradeOrderSummaryRespVO">
SELECT IFNULL(SUM(pay_price), 0) AS orderPayPrice,
COUNT(1) AS orderPayCount
FROM trade_order
WHERE status = #{status}
AND pay_time BETWEEN #{beginTime} AND #{endTime}
AND deleted = FALSE
</select>
2023-10-06 14:15:59 +08:00
</mapper>