You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
5.3 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.hongshu.web.mapper.sys.SysStatisticsMapper">
<select id="getTotalData" resultType="java.util.Map">
SELECT (SELECT count(1) FROM sys_user t) AS allUserCount,
(SELECT count(1) FROM web_user t) AS allGptUserCount,
(SELECT count(1) FROM web_note t) AS allAssistantCount,
(SELECT count(1) FROM sys_dept t) AS allDeptCount,
(SELECT count(1) FROM sys_role t) AS allRoleCount,
(SELECT count(1) FROM web_album t) AS allAccessCount,
(SELECT count(1) FROM web_category t) AS allModelCount,
(SELECT count(1) FROM sys_job t) AS allJobCount
</select>
<select id="getLineData" resultType="java.util.Map">
SELECT t.date_string as dateString,
IFNULL(t1.count, 0) as `registerData`,
IFNULL(t2.count, 0) as `chatData`,
IFNULL(t3.count, 0) as `orderData`,
IFNULL(t4.count, 0) as `amountData`
FROM sys_date t
LEFT JOIN (SELECT DATE_FORMAT(t.create_time, '%Y-%m-%d') AS date,count(1) as `count`
FROM gpt_user t
WHERE t.create_time >= #{q.startDate}
AND t.create_time &lt;= #{q.endDate}
GROUP BY DATE_FORMAT(t.create_time, '%Y-%m-%d')) t1
ON t.date_string = t1.date
LEFT JOIN (SELECT DATE_FORMAT(t.create_time, '%Y-%m-%d') AS date,count(1) as `count`
FROM gpt_chat_message t
WHERE t.create_time >= #{q.startDate}
AND t.create_time &lt;= #{q.endDate}
GROUP BY DATE_FORMAT(t.create_time, '%Y-%m-%d')) t2
ON t.date_string = t2.date
LEFT JOIN (SELECT DATE_FORMAT(t.create_time, '%Y-%m-%d') AS date,count(1) as `count`
FROM gpt_order t
WHERE t.create_time >= #{q.startDate}
AND t.create_time &lt;= #{q.endDate}
GROUP BY DATE_FORMAT(t.create_time, '%Y-%m-%d')) t3
ON t.date_string = t3.date
LEFT JOIN (SELECT DATE_FORMAT(t.create_time, '%Y-%m-%d') AS date,count(1) as `count`
FROM gpt_order t
WHERE t.create_time >= #{q.startDate}
AND t.create_time &lt;= #{q.endDate}
GROUP BY DATE_FORMAT(t.create_time, '%Y-%m-%d')) t4
ON t.date_string = t4.date
WHERE t.date_time >= #{q.startDate}
AND t.date_time &lt;= #{q.endDate}
ORDER BY t.date_time
</select>
<select id="getRaddarData" resultType="java.util.Map">
SELECT t.date_string as `date`, IFNULL(t1.chatCount, 0) as chatCount, IFNULL(t1.drawCount, 0) AS drawCount
FROM sys_date t
LEFT JOIN (SELECT DATE_FORMAT(t.create_time, '%Y-%m-%d') AS date,SUM(if(t.content_type = 'text',1,0)) AS chatCount,
SUM(if(t.content_type = 'image',1,0)) AS drawCount
FROM gpt_chat_message t
WHERE t.create_time >= #{q.startDate}
AND t.create_time &lt;= #{q.endDate}
GROUP BY DATE_FORMAT(t.create_time, '%Y-%m-%d')) t1
ON t.date_string = t1.date
WHERE t.date_time >= #{q.startDate}
AND t.date_time &lt;= #{q.endDate}
ORDER BY t.date_time
</select>
<select id="getPieData" resultType="java.util.Map">
SELECT ifnull(SUM(q.a), 0) as a,
ifnull(SUM(q.b), 0) as b,
ifnull(SUM(q.c), 0) as c,
ifnull(SUM(q.d), 0) as d,
ifnull(SUM(q.e), 0) as e,
ifnull(SUM(q.f), 0) as f
FROM (SELECT (CASE WHEN t.model = 'CHAT_GPT' THEN 1 ELSE 0 END) as a,
(CASE WHEN t.model = 'WENXIN' THEN 1 ELSE 0 END) as b,
(CASE WHEN t.model = 'ZHIPU' THEN 1 ELSE 0 END) as c,
(CASE WHEN t.model = 'QIANWEN' THEN 1 ELSE 0 END) as d,
(CASE WHEN t.model = 'SPARK' THEN 1 ELSE 0 END) as e,
(CASE WHEN t.model = 'MOONSHOT' THEN 1 ELSE 0 END) as f
FROM gpt_chat_message t) as q
</select>
<select id="getBarData" resultType="java.util.Map">
SELECT t.date_string as `date`, IFNULL(t1.count, 0) AS 'value'
FROM sys_date t
LEFT JOIN (SELECT DATE_FORMAT(t.create_time, '%Y-%m-%d') AS date,count(1) as `count`
FROM sys_log t
WHERE t.create_time >= #{q.startDate}
AND t.create_time &lt;= #{q.endDate}
GROUP BY DATE_FORMAT(t.create_time, '%Y-%m-%d')) t1
ON t.date_string = t1.date
WHERE t.date_time >= #{q.startDate}
AND t.date_time &lt;= #{q.endDate}
ORDER BY t.date_time
</select>
</mapper>