From 49c233a9146a2065289cdde358c58315365ca66a Mon Sep 17 00:00:00 2001 From: vipg Date: Fri, 14 Nov 2025 15:22:30 +0800 Subject: [PATCH] add --- .../.env | 0 .../deploy.sh | 0 .../dev-test.sh | 0 .../dev.sh | 0 .../docker-compose-dev.yaml | 0 .../docker-compose.yaml | 0 .../scripts/db-lanuch-entrypoint.sh | 0 .../sql/01_uuid_v7_setup.sql | 0 .../sql/02_create_country_table.sql | 0 .../sql/03_create_name_table.sql | 60 +++++++++++++++++++ .../sql/04_create_code_table.sql | 0 .../sql/05_create_info_view.sql | 0 .../src/Dockerfile | 0 .../src/db/postgres.go | 0 .../src/go.mod | 0 .../src/go.sum | 0 .../src/logger/logger.go | 0 .../src/logic/create.go | 0 .../src/logic/delete.go | 0 .../src/logic/read.go | 0 .../src/logic/update.go | 0 .../src/main.go | 0 .../sql/03_create_name_table.sql | 32 ---------- 23 files changed, 60 insertions(+), 32 deletions(-) rename backend/{futures_trading_record => futures_trade_record}/.env (100%) rename backend/{futures_trading_record => futures_trade_record}/deploy.sh (100%) rename backend/{futures_trading_record => futures_trade_record}/dev-test.sh (100%) rename backend/{futures_trading_record => futures_trade_record}/dev.sh (100%) rename backend/{futures_trading_record => futures_trade_record}/docker-compose-dev.yaml (100%) rename backend/{futures_trading_record => futures_trade_record}/docker-compose.yaml (100%) rename backend/{futures_trading_record => futures_trade_record}/scripts/db-lanuch-entrypoint.sh (100%) rename backend/{futures_trading_record => futures_trade_record}/sql/01_uuid_v7_setup.sql (100%) rename backend/{futures_trading_record => futures_trade_record}/sql/02_create_country_table.sql (100%) create mode 100644 backend/futures_trade_record/sql/03_create_name_table.sql rename backend/{futures_trading_record => futures_trade_record}/sql/04_create_code_table.sql (100%) rename backend/{futures_trading_record => futures_trade_record}/sql/05_create_info_view.sql (100%) rename backend/{futures_trading_record => futures_trade_record}/src/Dockerfile (100%) rename backend/{futures_trading_record => futures_trade_record}/src/db/postgres.go (100%) rename backend/{futures_trading_record => futures_trade_record}/src/go.mod (100%) rename backend/{futures_trading_record => futures_trade_record}/src/go.sum (100%) rename backend/{futures_trading_record => futures_trade_record}/src/logger/logger.go (100%) rename backend/{futures_trading_record => futures_trade_record}/src/logic/create.go (100%) rename backend/{futures_trading_record => futures_trade_record}/src/logic/delete.go (100%) rename backend/{futures_trading_record => futures_trade_record}/src/logic/read.go (100%) rename backend/{futures_trading_record => futures_trade_record}/src/logic/update.go (100%) rename backend/{futures_trading_record => futures_trade_record}/src/main.go (100%) delete mode 100644 backend/futures_trading_record/sql/03_create_name_table.sql diff --git a/backend/futures_trading_record/.env b/backend/futures_trade_record/.env similarity index 100% rename from backend/futures_trading_record/.env rename to backend/futures_trade_record/.env diff --git a/backend/futures_trading_record/deploy.sh b/backend/futures_trade_record/deploy.sh similarity index 100% rename from backend/futures_trading_record/deploy.sh rename to backend/futures_trade_record/deploy.sh diff --git a/backend/futures_trading_record/dev-test.sh b/backend/futures_trade_record/dev-test.sh similarity index 100% rename from backend/futures_trading_record/dev-test.sh rename to backend/futures_trade_record/dev-test.sh diff --git a/backend/futures_trading_record/dev.sh b/backend/futures_trade_record/dev.sh similarity index 100% rename from backend/futures_trading_record/dev.sh rename to backend/futures_trade_record/dev.sh diff --git a/backend/futures_trading_record/docker-compose-dev.yaml b/backend/futures_trade_record/docker-compose-dev.yaml similarity index 100% rename from backend/futures_trading_record/docker-compose-dev.yaml rename to backend/futures_trade_record/docker-compose-dev.yaml diff --git a/backend/futures_trading_record/docker-compose.yaml b/backend/futures_trade_record/docker-compose.yaml similarity index 100% rename from backend/futures_trading_record/docker-compose.yaml rename to backend/futures_trade_record/docker-compose.yaml diff --git a/backend/futures_trading_record/scripts/db-lanuch-entrypoint.sh b/backend/futures_trade_record/scripts/db-lanuch-entrypoint.sh similarity index 100% rename from backend/futures_trading_record/scripts/db-lanuch-entrypoint.sh rename to backend/futures_trade_record/scripts/db-lanuch-entrypoint.sh diff --git a/backend/futures_trading_record/sql/01_uuid_v7_setup.sql b/backend/futures_trade_record/sql/01_uuid_v7_setup.sql similarity index 100% rename from backend/futures_trading_record/sql/01_uuid_v7_setup.sql rename to backend/futures_trade_record/sql/01_uuid_v7_setup.sql diff --git a/backend/futures_trading_record/sql/02_create_country_table.sql b/backend/futures_trade_record/sql/02_create_country_table.sql similarity index 100% rename from backend/futures_trading_record/sql/02_create_country_table.sql rename to backend/futures_trade_record/sql/02_create_country_table.sql diff --git a/backend/futures_trade_record/sql/03_create_name_table.sql b/backend/futures_trade_record/sql/03_create_name_table.sql new file mode 100644 index 0000000..cd25725 --- /dev/null +++ b/backend/futures_trade_record/sql/03_create_name_table.sql @@ -0,0 +1,60 @@ +-- 切换到目标数据库 +\c postgres; + +CREATE OR REPLACE FUNCTION update_name_modified_column() +RETURNS TRIGGER AS $$ +BEGIN + NEW.updated_at = CURRENT_TIMESTAMP; + RETURN NEW; +END; +$$ LANGUAGE plpgsql VOLATILE; + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'trade_records') THEN + -- 创建交易记录表(根据业务场景命名为 trade_records,可按需修改) +CREATE TABLE trade_records ( + -- 主键 UUID,默认使用 PostgreSQL 内置函数生成唯一值 + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + + -- 开仓日期相关(整数类型,限制合理范围避免无效数据) + open_year INT NOT NULL CHECK (open_year > 1900 AND open_year <= EXTRACT(YEAR FROM CURRENT_DATE) + 1), + open_month INT NOT NULL CHECK (open_month BETWEEN 1 AND 12), + open_day INT NOT NULL CHECK (open_day BETWEEN 1 AND 31), + + -- 品种、合约、方向(字符串类型,根据业务长度调整 varchar 长度) + variety VARCHAR(50) NOT NULL, -- 品种(如:黄金、原油) + contract VARCHAR(50) NOT NULL, -- 合约(如:AU2406、CL2407) + direction VARCHAR(20) NOT NULL CHECK (direction IN ('多头', '空头', '买入', '卖出')), -- 限制合法方向值 + + -- 开仓相关数值(使用 numeric 类型替代 double,避免浮点数精度丢失,适合金融数据) + open_price NUMERIC(12, 6) NOT NULL, -- 开仓价格(精度:整数位6位+小数位6位,可按需调整) + open_commission NUMERIC(10, 6) NOT NULL DEFAULT 0.00, -- 开仓手续费(默认0) + + -- 平仓日期相关(允许 NULL,未平仓时为空) + close_year INT CHECK (close_year IS NULL OR (close_year > 1900 AND close_year <= EXTRACT(YEAR FROM CURRENT_DATE) + 1)), + close_month INT CHECK (close_month IS NULL OR close_month BETWEEN 1 AND 12), + close_day INT CHECK (close_day IS NULL OR close_day BETWEEN 1 AND 31), + + -- 平仓相关数值(允许 NULL,未平仓时为空;同样使用 numeric 保证精度) + close_price NUMERIC(12, 6), -- 平仓价格 + close_commission NUMERIC(10, 6) DEFAULT 0.00, -- 平仓手续费(默认0) + close_price_diff NUMERIC(12, 6), -- 平仓差价 + tick_price NUMERIC(12, 6), -- 跳点价格 + price_diff_profit NUMERIC(12, 6), -- 差价盈亏 + total_commission NUMERIC(10, 6) DEFAULT 0.00, -- 总手续费(开仓+平仓,可通过触发器自动计算) + close_profit NUMERIC(12, 6) -- 平仓盈亏 + deleted BOOLEAN NOT NULL DEFAULT FALSE, + created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP +); + CREATE TRIGGER update_name_updated_at + BEFORE UPDATE ON "name" + FOR EACH ROW + EXECUTE FUNCTION update_name_modified_column(); + + RAISE NOTICE 'Created name table and trigger'; + ELSE + RAISE NOTICE 'name table already exists'; + END IF; +END $$; \ No newline at end of file diff --git a/backend/futures_trading_record/sql/04_create_code_table.sql b/backend/futures_trade_record/sql/04_create_code_table.sql similarity index 100% rename from backend/futures_trading_record/sql/04_create_code_table.sql rename to backend/futures_trade_record/sql/04_create_code_table.sql diff --git a/backend/futures_trading_record/sql/05_create_info_view.sql b/backend/futures_trade_record/sql/05_create_info_view.sql similarity index 100% rename from backend/futures_trading_record/sql/05_create_info_view.sql rename to backend/futures_trade_record/sql/05_create_info_view.sql diff --git a/backend/futures_trading_record/src/Dockerfile b/backend/futures_trade_record/src/Dockerfile similarity index 100% rename from backend/futures_trading_record/src/Dockerfile rename to backend/futures_trade_record/src/Dockerfile diff --git a/backend/futures_trading_record/src/db/postgres.go b/backend/futures_trade_record/src/db/postgres.go similarity index 100% rename from backend/futures_trading_record/src/db/postgres.go rename to backend/futures_trade_record/src/db/postgres.go diff --git a/backend/futures_trading_record/src/go.mod b/backend/futures_trade_record/src/go.mod similarity index 100% rename from backend/futures_trading_record/src/go.mod rename to backend/futures_trade_record/src/go.mod diff --git a/backend/futures_trading_record/src/go.sum b/backend/futures_trade_record/src/go.sum similarity index 100% rename from backend/futures_trading_record/src/go.sum rename to backend/futures_trade_record/src/go.sum diff --git a/backend/futures_trading_record/src/logger/logger.go b/backend/futures_trade_record/src/logger/logger.go similarity index 100% rename from backend/futures_trading_record/src/logger/logger.go rename to backend/futures_trade_record/src/logger/logger.go diff --git a/backend/futures_trading_record/src/logic/create.go b/backend/futures_trade_record/src/logic/create.go similarity index 100% rename from backend/futures_trading_record/src/logic/create.go rename to backend/futures_trade_record/src/logic/create.go diff --git a/backend/futures_trading_record/src/logic/delete.go b/backend/futures_trade_record/src/logic/delete.go similarity index 100% rename from backend/futures_trading_record/src/logic/delete.go rename to backend/futures_trade_record/src/logic/delete.go diff --git a/backend/futures_trading_record/src/logic/read.go b/backend/futures_trade_record/src/logic/read.go similarity index 100% rename from backend/futures_trading_record/src/logic/read.go rename to backend/futures_trade_record/src/logic/read.go diff --git a/backend/futures_trading_record/src/logic/update.go b/backend/futures_trade_record/src/logic/update.go similarity index 100% rename from backend/futures_trading_record/src/logic/update.go rename to backend/futures_trade_record/src/logic/update.go diff --git a/backend/futures_trading_record/src/main.go b/backend/futures_trade_record/src/main.go similarity index 100% rename from backend/futures_trading_record/src/main.go rename to backend/futures_trade_record/src/main.go diff --git a/backend/futures_trading_record/sql/03_create_name_table.sql b/backend/futures_trading_record/sql/03_create_name_table.sql deleted file mode 100644 index ac6a51f..0000000 --- a/backend/futures_trading_record/sql/03_create_name_table.sql +++ /dev/null @@ -1,32 +0,0 @@ --- 切换到目标数据库 -\c postgres; - -CREATE OR REPLACE FUNCTION update_name_modified_column() -RETURNS TRIGGER AS $$ -BEGIN - NEW.updated_at = CURRENT_TIMESTAMP; - RETURN NEW; -END; -$$ LANGUAGE plpgsql VOLATILE; - -DO $$ -BEGIN - IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'name') THEN - CREATE TABLE name ( - id UUID DEFAULT gen_random_uuid_v7() PRIMARY KEY NOT NULL, - futures_trading_record_id UUID NOT NULL, - name VARCHAR NOT NULL, - deleted BOOLEAN NOT NULL DEFAULT FALSE, - created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, - updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP - ); - CREATE TRIGGER update_name_updated_at - BEFORE UPDATE ON "name" - FOR EACH ROW - EXECUTE FUNCTION update_name_modified_column(); - - RAISE NOTICE 'Created name table and trigger'; - ELSE - RAISE NOTICE 'name table already exists'; - END IF; -END $$; \ No newline at end of file