This commit is contained in:
oneao committed 2026-01-30 17:22:20 +08:00
1 parent c62c9d080b
commit 6a8c31e20c
29 files changed
+1454 -357

No files matched your search

@@ -52,4 +52,59 @@ RETURNING *;
DELETE FROM money_record WHERE id = $1;
-- name: DeleteMoneyRecordByCategoryId :exec
DELETE FROM money_record WHERE user_id = $1 AND category_id = $2;
DELETE FROM money_record WHERE user_id = $1 AND category_id = $2;
-- 折线图:按天、月、年汇总金额
-- name: ListMoneyRecordsByLineAnalysis :many
SELECT
CASE
WHEN $1 = 0 THEN to_char(mr.record_time, 'DD') -- 日分析,转换为文本
WHEN $1 = 1 THEN to_char(mr.record_time, 'MM') -- 月分析,转换为文本
WHEN $1 = 2 THEN to_char(mr.record_time, 'YYYY') -- 年分析,转换为文本
END AS period,
SUM(mr.amount)::DECIMAL AS total_amount
FROM
money_record mr
LEFT JOIN
money_user_category muc ON mr.category_id = muc.id -- 连接 money_user_category 获取 type
LEFT JOIN
space_user su ON su.user_id = $2 -- 连接 space_user 表,查找该用户在空间中的信息
LEFT JOIN
space s ON s.id = su.space_id -- 连接 space 表,获取空间信息
WHERE
(
(su.user_id IS NOT NULL) -- 用户在空间,查询该空间内所有人的数据
OR (mr.user_id = $1) -- 用户不在空间,查询该用户个人的账本数据
)
AND mr.record_time BETWEEN $3 AND $4 -- 时间范围
AND muc.type = $5 -- 收入或支出类型
GROUP BY
period
ORDER BY
period;
-- 饼图:按类别汇总金额
-- name: ListMoneyRecordsByPieAnalysis :many
SELECT
muc.name,
SUM(mr.amount)::DECIMAL AS total_amount
FROM
money_record mr
LEFT JOIN
money_user_category muc ON mr.category_id = muc.id
LEFT JOIN
space_user su ON su.user_id = $1 -- 连接 space_user 表,查找该用户在空间中的信息
LEFT JOIN
space s ON s.id = su.space_id -- 连接 space 表,获取空间信息
WHERE
(
(su.user_id IS NOT NULL) -- 用户在空间,查询该空间内所有人的数据
OR (mr.user_id = $1) -- 用户不在空间,查询该用户个人的账本数据
)
AND mr.record_time BETWEEN $2 AND $3 -- 时间范围
AND muc.type = $4 -- 收入或支出类型
GROUP BY
muc.name
ORDER BY
total_amount DESC;