<?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.system.mapper.TIndexMenuMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.ruoyi.system.domain.TIndexMenu">
|
<id column="id" property="id" />
|
<result column="menu_name" property="menuName" />
|
<result column="menu_sort" property="menuSort" />
|
<result column="create_by" property="createBy" />
|
<result column="create_time" property="createTime" />
|
<result column="is_delete" property="isDelete" />
|
</resultMap>
|
<resultMap id="tree" type="com.ruoyi.system.dto.AllertTitleDto">
|
<id column="tid" property="id" />
|
<result column="titile_name" property="name" />
|
<collection property="children" ofType="com.ruoyi.system.domain.TTitleMajor">
|
<id column="id" property="id"/>
|
<result column="major_name" property="majorName" />
|
</collection>
|
</resultMap>
|
|
|
<resultMap id="regionTree" type="com.ruoyi.system.dto.RegionDto">
|
<result column="province_name" property="name" />
|
<collection property="children" ofType="com.ruoyi.system.dto.RegionChildrenDto">
|
<id column="id" property="id"/>
|
<result column="major_name" property="name" />
|
</collection>
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
id, menu_name, menu_sort, create_by, create_time, is_delete
|
</sql>
|
<select id="allert" resultMap="tree">
|
SELECT tt.id as tid, tt.titile_name,tm.id,tm.major_name
|
FROM t_technical_title tt
|
LEFT JOIN t_title_major tm on tm.technical_id = tt.id
|
WHERE 1=1 and tt.is_delete = 0 and tm.is_delete = 0
|
<if test="cityCode != null and cityCode.size() > 0">
|
<foreach collection="cityCode" item="id" separator=",">
|
OR FIND_IN_SET(#{id}, tm.region_ids)
|
</foreach>
|
</if>
|
|
|
</select>
|
<select id="userUp" resultType="java.util.Map">
|
SELECT
|
m.month AS MONTH,
|
COALESCE(t.count, 0) AS count
|
FROM
|
(SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 5 MONTH), '%Y-%m') AS month
|
UNION ALL
|
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 4 MONTH), '%Y-%m')
|
UNION ALL
|
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH), '%Y-%m')
|
UNION ALL
|
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 2 MONTH), '%Y-%m')
|
UNION ALL
|
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m')
|
UNION ALL
|
SELECT DATE_FORMAT(CURDATE(), '%Y-%m')) m
|
LEFT JOIN (
|
SELECT
|
DATE_FORMAT(create_time, '%Y-%m') AS MONTH,
|
COUNT(1) AS count
|
FROM
|
t_app_user
|
WHERE
|
create_time >= DATE_SUB(CURDATE(), INTERVAL 6 MONTH)
|
GROUP BY
|
DATE_FORMAT(create_time, '%Y-%m')
|
) t ON m.month = t.MONTH
|
ORDER BY
|
m.month;
|
|
|
</select>
|
<select id="dayCount" resultType="java.util.Map">
|
SELECT
|
h.TIME,
|
COALESCE(o.orderCount, 0) AS orderCount,
|
COALESCE(o.goodType1Count, 0) AS goodType1Count,
|
COALESCE(o.goodType2Count, 0) AS goodType2Count,
|
COALESCE(o.goodType3Count, 0) AS goodType3Count
|
FROM
|
(SELECT DISTINCT LPAD(HOUR(TIMESTAMPADD(HOUR, h.n, '1970-01-01 00:00:00')), 2, '0') + ':00' AS TIME
|
FROM (SELECT 0 n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL
|
SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL
|
SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL
|
SELECT 18 UNION ALL SELECT 19 UNION ALL SELECT 20 UNION ALL SELECT 21 UNION ALL SELECT 22 UNION ALL SELECT 23) h) h
|
LEFT JOIN (
|
SELECT
|
DATE_FORMAT(create_time, '%H:00') AS TIME,
|
COUNT(1) AS orderCount,
|
SUM(CASE WHEN good_type = 1 THEN 1 ELSE 0 END) AS goodType1Count,
|
SUM(CASE WHEN good_type = 2 THEN 1 ELSE 0 END) AS goodType2Count,
|
SUM(CASE WHEN good_type = 3 THEN 1 ELSE 0 END) AS goodType3Count
|
FROM
|
t_order
|
WHERE DATE(create_time ) = CURDATE()
|
<if test="paymentStatus != null ">
|
AND payment_status = #{paymentStatus}
|
</if>
|
GROUP BY
|
DATE_FORMAT(create_time, '%H:00')
|
) o ON h.TIME = o.TIME
|
ORDER BY
|
h.TIME
|
</select>
|
<select id="weekCount" resultType="java.util.Map">
|
SELECT
|
d.date AS TIME,
|
COALESCE(SUM(CASE WHEN o.good_type = 1 THEN 1 ELSE 0 END), 0) AS goodType1Count,
|
COALESCE(SUM(CASE WHEN o.good_type = 2 THEN 1 ELSE 0 END), 0) AS goodType2Count,
|
COALESCE(SUM(CASE WHEN o.good_type = 3 THEN 1 ELSE 0 END), 0) AS goodType3Count
|
FROM
|
(SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) + INTERVAL n DAY AS date
|
FROM (SELECT 0 n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) n) d
|
LEFT JOIN
|
t_order o ON DATE(o.create_time) = d.date
|
<if test="paymentStatus != null ">
|
AND o.payment_status = #{paymentStatus}
|
</if>
|
GROUP BY
|
d.date
|
ORDER BY
|
d.date
|
</select>
|
<select id="monthCount" resultType="java.util.Map">
|
SELECT
|
d.date AS TIME,
|
COALESCE(SUM(CASE WHEN o.good_type = 1 THEN 1 ELSE 0 END), 0) AS goodType1Count,
|
COALESCE(SUM(CASE WHEN o.good_type = 2 THEN 1 ELSE 0 END), 0) AS goodType2Count,
|
COALESCE(SUM(CASE WHEN o.good_type = 3 THEN 1 ELSE 0 END), 0) AS goodType3Count
|
FROM
|
(SELECT DATE_SUB(CURDATE(), INTERVAL DAY(CURDATE()) - 1 DAY) + INTERVAL n DAY AS date
|
FROM (SELECT 0 n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL
|
SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL
|
SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL
|
SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 19 UNION ALL
|
SELECT 20 UNION ALL SELECT 21 UNION ALL SELECT 22 UNION ALL SELECT 23 UNION ALL SELECT 24 UNION ALL
|
SELECT 25 UNION ALL SELECT 26 UNION ALL SELECT 27 UNION ALL SELECT 28 UNION ALL SELECT 29 UNION ALL
|
SELECT 30 UNION ALL SELECT 31) n
|
WHERE DATE_SUB(CURDATE(), INTERVAL DAY(CURDATE()) - 1 DAY) + INTERVAL n DAY <= LAST_DAY(CURDATE())) d
|
LEFT JOIN
|
t_order o ON DATE(o.create_time) = d.date
|
<if test="paymentStatus != null ">
|
AND o.payment_status = #{paymentStatus}
|
</if>
|
GROUP BY
|
d.date
|
ORDER BY
|
d.date
|
</select>
|
<select id="yearCount" resultType="java.util.Map">
|
SELECT
|
d.month AS TIME,
|
COALESCE(SUM(CASE WHEN o.good_type = 1 THEN 1 ELSE 0 END), 0) AS goodType1Count,
|
COALESCE(SUM(CASE WHEN o.good_type = 2 THEN 1 ELSE 0 END), 0) AS goodType2Count,
|
COALESCE(SUM(CASE WHEN o.good_type = 3 THEN 1 ELSE 0 END), 0) AS goodType3Count,
|
o.payment_amount
|
FROM
|
(SELECT CONCAT(YEAR(CURDATE()), '-', LPAD(n, 2, '0')) AS month
|
FROM (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL
|
SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL
|
SELECT 11 UNION ALL SELECT 12) n) d
|
LEFT JOIN
|
t_order o ON DATE_FORMAT(o.create_time, '%Y-%m') = d.month
|
<if test="paymentStatus != null ">
|
AND o.payment_status = #{paymentStatus}
|
</if>
|
GROUP BY
|
d.month
|
ORDER BY
|
d.month
|
</select>
|
<select id="searchDayCount" resultType="java.util.Map">
|
SELECT
|
d.date AS TIME,
|
COALESCE(SUM(CASE WHEN o.good_type = 1 THEN 1 ELSE 0 END), 0) AS goodType1Count,
|
COALESCE(SUM(CASE WHEN o.good_type = 2 THEN 1 ELSE 0 END), 0) AS goodType2Count,
|
COALESCE(SUM(CASE WHEN o.good_type = 3 THEN 1 ELSE 0 END), 0) AS goodType3Count
|
FROM
|
(SELECT
|
DATE_ADD(#{startDate}, INTERVAL n DAY) AS date
|
FROM
|
(SELECT 0 n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL
|
SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL
|
SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL
|
SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 19 UNION ALL
|
SELECT 20 UNION ALL SELECT 21 UNION ALL SELECT 22 UNION ALL SELECT 23 UNION ALL SELECT 24 UNION ALL
|
SELECT 25 UNION ALL SELECT 26 UNION ALL SELECT 27 UNION ALL SELECT 28 UNION ALL SELECT 29 UNION ALL
|
SELECT 30 UNION ALL SELECT 31) n
|
WHERE
|
DATE_ADD(#{startDate}, INTERVAL n DAY) <= #{endDate}) d
|
LEFT JOIN
|
t_order o ON DATE(o.create_time) = d.date
|
<if test="paymentStatus != null ">
|
AND o.payment_status = #{paymentStatus}
|
</if>
|
GROUP BY
|
d.date
|
ORDER BY
|
d.date;
|
|
</select>
|
<select id="count1" resultType="java.util.Map">
|
select sum(payment_amount),count(1)
|
from t_order
|
<where>
|
<if test="dayType == 1">
|
and DATE(create_time ) = CURDATE()
|
</if>
|
<if test="dayType == 2">
|
AND YEARWEEK(create_time, 1) = YEARWEEK(CURDATE(), 1)
|
</if>
|
<if test="dayType == 3">
|
AND YEAR(create_time) = YEAR(CURDATE()) AND MONTH(create_time) = MONTH(CURDATE())
|
</if>
|
<if test="dayType == 4">
|
AND YEAR(create_time) = YEAR(CURDATE())
|
</if>
|
<if test="dayType == 5">
|
AND DATE(create_time) >= #{startDate} and DATE(create_time) <= #{endDate}
|
</if>
|
<if test="paymentStatus!=null">
|
AND payment_status = #{paymentStatus}
|
</if>
|
</where>
|
</select>
|
|
</mapper>
|