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
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 <= #{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 <= #{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 <= #{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 <= #{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 <= #{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 <= #{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 <= #{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 <= #{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 <= #{q.endDate}
|
|
ORDER BY t.date_time
|
|
</select>
|
|
|
|
</mapper>
|