u
This commit is contained in:
1 parent
835958886e
commit
d04d22723b
155 files changed
+543
-9793
No files matched your search
@@ -0,0 +1,110 @@
|
||||
-- name: ListMoneyRecords :many
|
||||
SELECT
|
||||
mr.*,
|
||||
u.username AS username
|
||||
FROM money_record mr
|
||||
LEFT JOIN space_member su
|
||||
ON su.user_id = mr.user_id
|
||||
LEFT JOIN "user" u
|
||||
ON u.id = mr.user_id
|
||||
WHERE
|
||||
mr.record_time BETWEEN $2 AND $3
|
||||
AND (
|
||||
-- 空间账本:属于当前空间的用户
|
||||
su.user_id IS NOT NULL
|
||||
-- 个人账本:当前用户
|
||||
OR mr.user_id = $1
|
||||
)
|
||||
ORDER BY
|
||||
mr.record_time DESC,
|
||||
mr.create_time DESC;
|
||||
|
||||
|
||||
-- name: InsertMoneyRecord :exec
|
||||
INSERT INTO money_record (
|
||||
id,
|
||||
category_id,
|
||||
user_id,
|
||||
amount,
|
||||
remark,
|
||||
record_time,
|
||||
create_time,
|
||||
update_time
|
||||
) VALUES (
|
||||
$1, $2, $3, $4, $5,$6,NOW(),NOW()
|
||||
);
|
||||
|
||||
-- name: GetMoneyRecordById :one
|
||||
SELECT * FROM money_record WHERE id = $1;
|
||||
|
||||
-- name: UpdateMoneyRecord :exec
|
||||
UPDATE money_record
|
||||
SET
|
||||
category_id = $2,
|
||||
amount = $3,
|
||||
remark = $4,
|
||||
record_time = $5,
|
||||
update_time = NOW()
|
||||
WHERE id = $1
|
||||
RETURNING *;
|
||||
|
||||
-- name: DeleteMoneyRecord :exec
|
||||
DELETE FROM money_record WHERE id = $1;
|
||||
|
||||
-- name: DeleteMoneyRecordByCategoryId :exec
|
||||
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_member su ON su.user_id = $2 -- 连接 space_member 表,查找该用户在空间中的信息
|
||||
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_member su ON su.user_id = $1 -- 连接 space_member 表,查找该用户在空间中的信息
|
||||
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;
|
||||
@@ -0,0 +1,2 @@
|
||||
-- name: ListMoneySysCategory :many
|
||||
SELECT * FROM money_sys_category;
|
||||
@@ -0,0 +1,30 @@
|
||||
-- name: BatchInsertMoneyUserCategories :copyfrom
|
||||
INSERT INTO money_user_category (id, user_id, name, icon, type, sort_number)
|
||||
VALUES ($1, $2, $3, $4, $5, $6);
|
||||
|
||||
-- name: FindUserMoneyCategoriesByUserID :many
|
||||
SELECT *
|
||||
FROM money_user_category
|
||||
WHERE user_id = $1;
|
||||
|
||||
-- name: DeleteMoneyCategoryById :exec
|
||||
DELETE FROM money_user_category
|
||||
WHERE id = $1;
|
||||
|
||||
-- name: BatchUpdateMoneyCategorySort :batchexec
|
||||
UPDATE money_user_category
|
||||
SET sort_number = $2
|
||||
WHERE id = $1;
|
||||
|
||||
-- name: DeleteMoneyCategoryByUserId :exec
|
||||
DELETE FROM money_user_category
|
||||
WHERE user_id = $1;
|
||||
|
||||
-- name: InsertMoneyUserCategory :exec
|
||||
INSERT INTO money_user_category (id, user_id, name, icon, type, sort_number,create_time,update_time)
|
||||
VALUES ($1, $2, $3, $4, $5, $6,NOW(),NOW());
|
||||
|
||||
-- name: UpdateMoneyCategory :exec
|
||||
UPDATE money_user_category
|
||||
SET icon = $2,name = $3,update_time = NOW()
|
||||
WHERE id = $1;
|
||||
@@ -0,0 +1,26 @@
|
||||
-- 新增分享空间
|
||||
-- name: InsertSpace :exec
|
||||
INSERT INTO space (
|
||||
id,name,invite_code,create_time,update_time
|
||||
) VALUES ($1,$2,$3,NOW(),NOW());
|
||||
|
||||
-- 删除分享空间
|
||||
-- name: DeleteSpace :exec
|
||||
DELETE FROM space WHERE id = $1;
|
||||
|
||||
-- 根据id获取分享空间信息
|
||||
-- name: GetSpaceById :one
|
||||
SELECT * FROM space WHERE id = $1;
|
||||
|
||||
|
||||
-- 查询用户所在的空间信息
|
||||
-- name: GetSpaceByUserId :one
|
||||
SELECT s.*, m.role
|
||||
FROM space s
|
||||
JOIN space_member m
|
||||
ON s.id = m.space_id
|
||||
WHERE m.user_id = $1;
|
||||
|
||||
-- 根据邀请码查询空间
|
||||
-- name: FindSpaceByInviteCode :one
|
||||
SELECT * FROM space WHERE invite_code = $1;
|
||||
@@ -0,0 +1,44 @@
|
||||
-- 插入空间用户
|
||||
-- name: InsertSpaceMember :exec
|
||||
INSERT INTO space_member(id,space_id,user_id,role,join_time)
|
||||
VALUES ($1,$2,$3,$4,NOW());
|
||||
|
||||
-- name: ListSpaceMembers :many
|
||||
SELECT
|
||||
u.id AS user_id,
|
||||
u.username AS user_name,
|
||||
u.avatar AS user_avatar,
|
||||
u.last_login_time AS last_login_time,
|
||||
su.role
|
||||
FROM space_member su
|
||||
INNER JOIN "user" u ON su.user_id = u.id
|
||||
WHERE su.space_id = $1
|
||||
ORDER BY su.role DESC, u.username ASC;
|
||||
|
||||
-- 获取空间用户
|
||||
-- name: GetSpaceMember :one
|
||||
SELECT *
|
||||
FROM space_member
|
||||
WHERE user_id = $1;
|
||||
|
||||
-- 删除某个用户在所有空间的关系
|
||||
-- name: DeleteSpaceMemberByUserID :exec
|
||||
DELETE FROM space_member
|
||||
WHERE user_id = $1;
|
||||
|
||||
-- 删除某个用户在指定空间中的关系
|
||||
-- name: DeleteSpaceMemberBySpaceIDAndUserID :exec
|
||||
DELETE FROM space_member
|
||||
WHERE space_id = $1
|
||||
AND user_id = $2;
|
||||
|
||||
-- 删除某个空间下的所有用户
|
||||
-- name: DeleteSpaceMembersBySpaceID :exec
|
||||
DELETE FROM space_member
|
||||
WHERE space_id = $1;
|
||||
|
||||
-- 修改角色
|
||||
-- name: UpdateSpaceMemberRole :exec
|
||||
UPDATE space_member
|
||||
SET role = $1
|
||||
WHERE user_id = $2 AND space_id = $3;
|
||||
@@ -0,0 +1,32 @@
|
||||
-- name: FindUserByOpenID :one
|
||||
SELECT
|
||||
u.id AS user_id,
|
||||
u.username,
|
||||
u.avatar,
|
||||
u.status,
|
||||
o.type AS login_type,
|
||||
o.openid
|
||||
FROM user_oauth o
|
||||
JOIN "user" u ON u.id = o.user_id
|
||||
WHERE o.openid = $1
|
||||
AND o.type = $2
|
||||
LIMIT 1;
|
||||
|
||||
-- name: InsertUser :exec
|
||||
INSERT INTO "user" (
|
||||
id,
|
||||
username,
|
||||
avatar,
|
||||
status,
|
||||
create_time,
|
||||
update_time,
|
||||
last_login_time
|
||||
) VALUES (
|
||||
$1, $2, $3,$4, NOW(), NOW(),now()
|
||||
)
|
||||
RETURNING id;
|
||||
|
||||
-- name: UpdateUserLastLoginTime :exec
|
||||
UPDATE "user"
|
||||
SET last_login_time = NOW()
|
||||
WHERE id = $1;
|
||||
@@ -0,0 +1,13 @@
|
||||
-- name: InsertUserOAuth :exec
|
||||
INSERT INTO user_oauth (
|
||||
id,
|
||||
user_id,
|
||||
type,
|
||||
openid,
|
||||
create_time,
|
||||
update_time
|
||||
) VALUES (
|
||||
$1, $2, $3, $4, NOW(), NOW()
|
||||
);
|
||||
|
||||
|
||||
Reference in new issue
Block a user