u
This commit is contained in:
1 parent
46106d0c76
commit
34240d2e16
36 files changed
+2853
-165
No files matched your search
@@ -1,3 +1,26 @@
|
||||
-- name: BatchInsertFinanceCategorySpace :copyfrom
|
||||
INSERT INTO finance_category_space (id, space_id, name, icon, type, sort_number,create_by,update_by)
|
||||
VALUES ($1, $2, $3, $4, $5, $6,$7,$8);
|
||||
VALUES ($1, $2, $3, $4, $5, $6,$7,$8);
|
||||
|
||||
-- name: ListFinanceCategories :many
|
||||
SELECT * FROM finance_category_space WHERE space_id = $1;
|
||||
|
||||
-- name: GetFinanceCategoryByName :one
|
||||
SELECT * FROM finance_category_space WHERE space_id = $1 AND name = $2 AND type = $3;
|
||||
|
||||
-- name: InsertFinanceCategory :exec
|
||||
INSERT INTO finance_category_space(id,space_id,name,icon,type,sort_number,create_by,update_by,create_time,update_time)
|
||||
values ($1,$2,$3,$4,$5,$6,$7,$8,NOW(),NOW());
|
||||
|
||||
-- name: BatchUpdateFinanceCategorySortNumber :batchexec
|
||||
UPDATE finance_category_space
|
||||
SET sort_number = $1,update_by = $2,update_time = NOW()
|
||||
WHERE id = $3;
|
||||
|
||||
-- name: DeleteFinanceCategory :exec
|
||||
DELETE FROM finance_category_space WHERE id = $1;
|
||||
|
||||
-- name: UpdateFinanceCategory :exec
|
||||
UPDATE finance_category_space
|
||||
SET name = $1,icon = $2,update_by = $3,update_time = NOW()
|
||||
WHERE id = $4;
|
||||
@@ -0,0 +1,40 @@
|
||||
-- name: ListFinanceRecords :many
|
||||
SELECT
|
||||
fr.*,
|
||||
su.member_name
|
||||
FROM finance_record fr
|
||||
LEFT JOIN space_member su
|
||||
ON fr.space_id = su.space_id
|
||||
AND fr.update_by = su.user_id
|
||||
WHERE
|
||||
fr.space_id = $1
|
||||
AND fr.record_time >= $2
|
||||
AND fr.record_time < $3
|
||||
AND (
|
||||
$4 = 0
|
||||
OR fr.category_id = $4
|
||||
)
|
||||
ORDER BY
|
||||
fr.record_time DESC,
|
||||
fr.create_time DESC;
|
||||
|
||||
-- name: InsertFinanceRecord :exec
|
||||
INSERT INTO finance_record(id,category_id,space_id,amount,record_time,remark,create_by,update_by,create_time,update_time)
|
||||
VALUES ($1,$2,$3,$4,$5,$6,$7,$8,NOW(),NOW());
|
||||
|
||||
-- name: UpdateFinanceRecord :exec
|
||||
UPDATE finance_record
|
||||
SET
|
||||
category_id = $2,
|
||||
amount = $3,
|
||||
remark = $4,
|
||||
record_time = $5,
|
||||
update_by = $6,
|
||||
update_time = NOW()
|
||||
WHERE id = $1;
|
||||
|
||||
-- name: DeleteFinanceRecord :exec
|
||||
DELETE FROM finance_record WHERE id = $1;
|
||||
|
||||
-- name: DeleteFinanceRecordByCategoryId :exec
|
||||
DELETE FROM finance_record WHERE category_id = $1;
|
||||
@@ -16,6 +16,59 @@ var (
|
||||
ErrBatchAlreadyClosed = errors.New("batch already closed")
|
||||
)
|
||||
|
||||
const batchUpdateFinanceCategorySortNumber = `-- name: BatchUpdateFinanceCategorySortNumber :batchexec
|
||||
UPDATE finance_category_space
|
||||
SET sort_number = $1,update_by = $2,update_time = NOW()
|
||||
WHERE id = $3
|
||||
`
|
||||
|
||||
type BatchUpdateFinanceCategorySortNumberBatchResults struct {
|
||||
br pgx.BatchResults
|
||||
tot int
|
||||
closed bool
|
||||
}
|
||||
|
||||
type BatchUpdateFinanceCategorySortNumberParams struct {
|
||||
SortNumber int32
|
||||
UpdateBy int64
|
||||
ID int64
|
||||
}
|
||||
|
||||
func (q *Queries) BatchUpdateFinanceCategorySortNumber(ctx context.Context, arg []BatchUpdateFinanceCategorySortNumberParams) *BatchUpdateFinanceCategorySortNumberBatchResults {
|
||||
batch := &pgx.Batch{}
|
||||
for _, a := range arg {
|
||||
vals := []interface{}{
|
||||
a.SortNumber,
|
||||
a.UpdateBy,
|
||||
a.ID,
|
||||
}
|
||||
batch.Queue(batchUpdateFinanceCategorySortNumber, vals...)
|
||||
}
|
||||
br := q.db.SendBatch(ctx, batch)
|
||||
return &BatchUpdateFinanceCategorySortNumberBatchResults{br, len(arg), false}
|
||||
}
|
||||
|
||||
func (b *BatchUpdateFinanceCategorySortNumberBatchResults) Exec(f func(int, error)) {
|
||||
defer b.br.Close()
|
||||
for t := 0; t < b.tot; t++ {
|
||||
if b.closed {
|
||||
if f != nil {
|
||||
f(t, ErrBatchAlreadyClosed)
|
||||
}
|
||||
continue
|
||||
}
|
||||
_, err := b.br.Exec()
|
||||
if f != nil {
|
||||
f(t, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (b *BatchUpdateFinanceCategorySortNumberBatchResults) Close() error {
|
||||
b.closed = true
|
||||
return b.br.Close()
|
||||
}
|
||||
|
||||
const batchUpdateSpaceSortNumber = `-- name: BatchUpdateSpaceSortNumber :batchexec
|
||||
UPDATE space_member
|
||||
SET sort_number = $1
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
|
||||
package repo
|
||||
|
||||
import (
|
||||
"context"
|
||||
)
|
||||
|
||||
type BatchInsertFinanceCategorySpaceParams struct {
|
||||
ID int64
|
||||
SpaceID int64
|
||||
@@ -15,3 +19,128 @@ type BatchInsertFinanceCategorySpaceParams struct {
|
||||
CreateBy int64
|
||||
UpdateBy int64
|
||||
}
|
||||
|
||||
const deleteFinanceCategory = `-- name: DeleteFinanceCategory :exec
|
||||
DELETE FROM finance_category_space WHERE id = $1
|
||||
`
|
||||
|
||||
func (q *Queries) DeleteFinanceCategory(ctx context.Context, id int64) error {
|
||||
_, err := q.db.Exec(ctx, deleteFinanceCategory, id)
|
||||
return err
|
||||
}
|
||||
|
||||
const getFinanceCategoryByName = `-- name: GetFinanceCategoryByName :one
|
||||
SELECT id, space_id, name, icon, type, sort_number, create_by, create_time, update_by, update_time FROM finance_category_space WHERE space_id = $1 AND name = $2 AND type = $3
|
||||
`
|
||||
|
||||
type GetFinanceCategoryByNameParams struct {
|
||||
SpaceID int64
|
||||
Name string
|
||||
Type int16
|
||||
}
|
||||
|
||||
func (q *Queries) GetFinanceCategoryByName(ctx context.Context, arg GetFinanceCategoryByNameParams) (FinanceCategorySpace, error) {
|
||||
row := q.db.QueryRow(ctx, getFinanceCategoryByName, arg.SpaceID, arg.Name, arg.Type)
|
||||
var i FinanceCategorySpace
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.SpaceID,
|
||||
&i.Name,
|
||||
&i.Icon,
|
||||
&i.Type,
|
||||
&i.SortNumber,
|
||||
&i.CreateBy,
|
||||
&i.CreateTime,
|
||||
&i.UpdateBy,
|
||||
&i.UpdateTime,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const insertFinanceCategory = `-- name: InsertFinanceCategory :exec
|
||||
INSERT INTO finance_category_space(id,space_id,name,icon,type,sort_number,create_by,update_by,create_time,update_time)
|
||||
values ($1,$2,$3,$4,$5,$6,$7,$8,NOW(),NOW())
|
||||
`
|
||||
|
||||
type InsertFinanceCategoryParams struct {
|
||||
ID int64
|
||||
SpaceID int64
|
||||
Name string
|
||||
Icon string
|
||||
Type int16
|
||||
SortNumber int32
|
||||
CreateBy int64
|
||||
UpdateBy int64
|
||||
}
|
||||
|
||||
func (q *Queries) InsertFinanceCategory(ctx context.Context, arg InsertFinanceCategoryParams) error {
|
||||
_, err := q.db.Exec(ctx, insertFinanceCategory,
|
||||
arg.ID,
|
||||
arg.SpaceID,
|
||||
arg.Name,
|
||||
arg.Icon,
|
||||
arg.Type,
|
||||
arg.SortNumber,
|
||||
arg.CreateBy,
|
||||
arg.UpdateBy,
|
||||
)
|
||||
return err
|
||||
}
|
||||
|
||||
const listFinanceCategories = `-- name: ListFinanceCategories :many
|
||||
SELECT id, space_id, name, icon, type, sort_number, create_by, create_time, update_by, update_time FROM finance_category_space WHERE space_id = $1
|
||||
`
|
||||
|
||||
func (q *Queries) ListFinanceCategories(ctx context.Context, spaceID int64) ([]FinanceCategorySpace, error) {
|
||||
rows, err := q.db.Query(ctx, listFinanceCategories, spaceID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []FinanceCategorySpace
|
||||
for rows.Next() {
|
||||
var i FinanceCategorySpace
|
||||
if err := rows.Scan(
|
||||
&i.ID,
|
||||
&i.SpaceID,
|
||||
&i.Name,
|
||||
&i.Icon,
|
||||
&i.Type,
|
||||
&i.SortNumber,
|
||||
&i.CreateBy,
|
||||
&i.CreateTime,
|
||||
&i.UpdateBy,
|
||||
&i.UpdateTime,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const updateFinanceCategory = `-- name: UpdateFinanceCategory :exec
|
||||
UPDATE finance_category_space
|
||||
SET name = $1,icon = $2,update_by = $3,update_time = NOW()
|
||||
WHERE id = $4
|
||||
`
|
||||
|
||||
type UpdateFinanceCategoryParams struct {
|
||||
Name string
|
||||
Icon string
|
||||
UpdateBy int64
|
||||
ID int64
|
||||
}
|
||||
|
||||
func (q *Queries) UpdateFinanceCategory(ctx context.Context, arg UpdateFinanceCategoryParams) error {
|
||||
_, err := q.db.Exec(ctx, updateFinanceCategory,
|
||||
arg.Name,
|
||||
arg.Icon,
|
||||
arg.UpdateBy,
|
||||
arg.ID,
|
||||
)
|
||||
return err
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.30.0
|
||||
// source: finance_record.sql
|
||||
|
||||
package repo
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/jackc/pgx/v5/pgtype"
|
||||
)
|
||||
|
||||
const deleteFinanceRecord = `-- name: DeleteFinanceRecord :exec
|
||||
DELETE FROM finance_record WHERE id = $1
|
||||
`
|
||||
|
||||
func (q *Queries) DeleteFinanceRecord(ctx context.Context, id int64) error {
|
||||
_, err := q.db.Exec(ctx, deleteFinanceRecord, id)
|
||||
return err
|
||||
}
|
||||
|
||||
const deleteFinanceRecordByCategoryId = `-- name: DeleteFinanceRecordByCategoryId :exec
|
||||
DELETE FROM finance_record WHERE category_id = $1
|
||||
`
|
||||
|
||||
func (q *Queries) DeleteFinanceRecordByCategoryId(ctx context.Context, categoryID int64) error {
|
||||
_, err := q.db.Exec(ctx, deleteFinanceRecordByCategoryId, categoryID)
|
||||
return err
|
||||
}
|
||||
|
||||
const insertFinanceRecord = `-- name: InsertFinanceRecord :exec
|
||||
INSERT INTO finance_record(id,category_id,space_id,amount,record_time,remark,create_by,update_by,create_time,update_time)
|
||||
VALUES ($1,$2,$3,$4,$5,$6,$7,$8,NOW(),NOW())
|
||||
`
|
||||
|
||||
type InsertFinanceRecordParams struct {
|
||||
ID int64
|
||||
CategoryID int64
|
||||
SpaceID int64
|
||||
Amount pgtype.Numeric
|
||||
RecordTime pgtype.Date
|
||||
Remark pgtype.Text
|
||||
CreateBy int64
|
||||
UpdateBy int64
|
||||
}
|
||||
|
||||
func (q *Queries) InsertFinanceRecord(ctx context.Context, arg InsertFinanceRecordParams) error {
|
||||
_, err := q.db.Exec(ctx, insertFinanceRecord,
|
||||
arg.ID,
|
||||
arg.CategoryID,
|
||||
arg.SpaceID,
|
||||
arg.Amount,
|
||||
arg.RecordTime,
|
||||
arg.Remark,
|
||||
arg.CreateBy,
|
||||
arg.UpdateBy,
|
||||
)
|
||||
return err
|
||||
}
|
||||
|
||||
const listFinanceRecords = `-- name: ListFinanceRecords :many
|
||||
SELECT
|
||||
fr.id, fr.category_id, fr.space_id, fr.amount, fr.remark, fr.record_time, fr.create_by, fr.create_time, fr.update_by, fr.update_time,
|
||||
su.member_name
|
||||
FROM finance_record fr
|
||||
LEFT JOIN space_member su
|
||||
ON fr.space_id = su.space_id
|
||||
AND fr.update_by = su.user_id
|
||||
WHERE
|
||||
fr.space_id = $1
|
||||
AND fr.record_time >= $2
|
||||
AND fr.record_time < $3
|
||||
AND (
|
||||
$4 = 0
|
||||
OR fr.category_id = $4
|
||||
)
|
||||
ORDER BY
|
||||
fr.record_time DESC,
|
||||
fr.create_time DESC
|
||||
`
|
||||
|
||||
type ListFinanceRecordsParams struct {
|
||||
SpaceID int64
|
||||
RecordTime pgtype.Date
|
||||
RecordTime_2 pgtype.Date
|
||||
Column4 interface{}
|
||||
}
|
||||
|
||||
type ListFinanceRecordsRow struct {
|
||||
ID int64
|
||||
CategoryID int64
|
||||
SpaceID int64
|
||||
Amount pgtype.Numeric
|
||||
Remark pgtype.Text
|
||||
RecordTime pgtype.Date
|
||||
CreateBy int64
|
||||
CreateTime pgtype.Timestamptz
|
||||
UpdateBy int64
|
||||
UpdateTime pgtype.Timestamptz
|
||||
MemberName pgtype.Text
|
||||
}
|
||||
|
||||
func (q *Queries) ListFinanceRecords(ctx context.Context, arg ListFinanceRecordsParams) ([]ListFinanceRecordsRow, error) {
|
||||
rows, err := q.db.Query(ctx, listFinanceRecords,
|
||||
arg.SpaceID,
|
||||
arg.RecordTime,
|
||||
arg.RecordTime_2,
|
||||
arg.Column4,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []ListFinanceRecordsRow
|
||||
for rows.Next() {
|
||||
var i ListFinanceRecordsRow
|
||||
if err := rows.Scan(
|
||||
&i.ID,
|
||||
&i.CategoryID,
|
||||
&i.SpaceID,
|
||||
&i.Amount,
|
||||
&i.Remark,
|
||||
&i.RecordTime,
|
||||
&i.CreateBy,
|
||||
&i.CreateTime,
|
||||
&i.UpdateBy,
|
||||
&i.UpdateTime,
|
||||
&i.MemberName,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const updateFinanceRecord = `-- name: UpdateFinanceRecord :exec
|
||||
UPDATE finance_record
|
||||
SET
|
||||
category_id = $2,
|
||||
amount = $3,
|
||||
remark = $4,
|
||||
record_time = $5,
|
||||
update_by = $6,
|
||||
update_time = NOW()
|
||||
WHERE id = $1
|
||||
`
|
||||
|
||||
type UpdateFinanceRecordParams struct {
|
||||
ID int64
|
||||
CategoryID int64
|
||||
Amount pgtype.Numeric
|
||||
Remark pgtype.Text
|
||||
RecordTime pgtype.Date
|
||||
UpdateBy int64
|
||||
}
|
||||
|
||||
func (q *Queries) UpdateFinanceRecord(ctx context.Context, arg UpdateFinanceRecordParams) error {
|
||||
_, err := q.db.Exec(ctx, updateFinanceRecord,
|
||||
arg.ID,
|
||||
arg.CategoryID,
|
||||
arg.Amount,
|
||||
arg.Remark,
|
||||
arg.RecordTime,
|
||||
arg.UpdateBy,
|
||||
)
|
||||
return err
|
||||
}
|
||||
@@ -31,6 +31,19 @@ type FinanceCategorySpace struct {
|
||||
UpdateTime pgtype.Timestamptz
|
||||
}
|
||||
|
||||
type FinanceRecord struct {
|
||||
ID int64
|
||||
CategoryID int64
|
||||
SpaceID int64
|
||||
Amount pgtype.Numeric
|
||||
Remark pgtype.Text
|
||||
RecordTime pgtype.Date
|
||||
CreateBy int64
|
||||
CreateTime pgtype.Timestamptz
|
||||
UpdateBy int64
|
||||
UpdateTime pgtype.Timestamptz
|
||||
}
|
||||
|
||||
type Space struct {
|
||||
ID int64
|
||||
Name string
|
||||
|
||||
@@ -66,6 +66,7 @@ create table space_member
|
||||
unique (space_id, user_id)
|
||||
);
|
||||
|
||||
--记账分类默认表
|
||||
create table finance_category_default
|
||||
(
|
||||
id bigint not null
|
||||
@@ -78,6 +79,7 @@ create table finance_category_default
|
||||
update_time timestamp with time zone default now()
|
||||
);
|
||||
|
||||
--记账分类空间表
|
||||
create table finance_category_space
|
||||
(
|
||||
id bigint not null
|
||||
@@ -93,4 +95,19 @@ create table finance_category_space
|
||||
update_time timestamp with time zone default now()
|
||||
);
|
||||
|
||||
-- 记账记录表
|
||||
create table finance_record
|
||||
(
|
||||
id bigint not null
|
||||
primary key,
|
||||
category_id bigint not null,
|
||||
space_id bigint not null,
|
||||
amount numeric(12, 2) not null,
|
||||
remark varchar(255),
|
||||
record_time date,
|
||||
create_by bigint not null,
|
||||
create_time timestamp with time zone default now(),
|
||||
update_by bigint not null,
|
||||
update_time timestamp with time zone default now()
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user