From 7bcdcd13cb028f757dee3469aca476277dfaf033 Mon Sep 17 00:00:00 2001 From: danial Date: Sun, 14 Dec 2025 19:34:03 +0800 Subject: [PATCH] =?UTF-8?q?feat(database):=20=E5=A2=9E=E5=8A=A0=E5=9F=BA?= =?UTF-8?q?=E7=BA=BF=E7=89=88=E6=9C=AC=E6=94=AF=E6=8C=81=E5=B9=B6=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E6=95=B0=E6=8D=AE=E5=BA=93=E8=BF=81=E7=A7=BB=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在.env.example中添加BASELINE_VERSION配置说明,支持首次部署已有数据库设定 - docker-compose.yml中增加BASELINE_VERSION环境变量传递及命令行基线参数支持 - README.md增加首次部署与后续部署的详细操作说明,强调基线版本设置要求 - 修改schema.sql,重构多张表结构,新增账户历史、代付相关多表设计 - 调整商户隐藏记录、偷卡配置等表,优化字段及索引设计 - 新增atlas_schema_revisions表,支持数据库迁移版本管理 - 删除部分旧表结构,新增限制IP访问相关表支持安全功能 - 迁移文件atlas.sum更新,反映新的迁移文件及校验哈希变化 --- .env.example | 3 + README.md | 15 ++ docker-compose.yml | 4 + migrations/20251214113053.sql | 0 migrations/atlas.sum | 3 +- schema.sql | 392 ++++++++++++++++++---------------- 6 files changed, 228 insertions(+), 189 deletions(-) create mode 100644 migrations/20251214113053.sql diff --git a/.env.example b/.env.example index fd9ec79..9a1c9bb 100644 --- a/.env.example +++ b/.env.example @@ -4,3 +4,6 @@ DB_PASSWORD=your_password DB_HOST=mysql_host DB_PORT=3306 DB_NAME=production_db + +# 首次部署到已有数据库时设置(之后留空) +# BASELINE_VERSION=20251213191759 diff --git a/README.md b/README.md index e9868d2..a09a014 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,8 @@ #### 方式一:Docker Compose(推荐) +**首次部署到已有数据库:** + ```bash # 1. 复制环境变量配置 cp .env.example .env @@ -39,14 +41,25 @@ cp .env.example .env # DB_HOST=mysql_host # DB_PORT=3306 # DB_NAME=production_db +# BASELINE_VERSION=20251213191759 # 首次部署时取消注释 # 3. 执行迁移 docker-compose up db-migrate ``` +**后续部署(数据库已有迁移历史):** + +```bash +# .env 文件中注释掉或删除 BASELINE_VERSION +# 然后执行: +docker-compose up db-migrate +``` + #### 方式二:Docker Run ```bash +atlas schema inspect --env local --format '{{ sql . }}' > schema.sql && echo "已更新 schema.sql + docker build -t db-migrate:latest . docker run --rm \ -e DB_URL="mysql://user:password@host:3306/database" \ @@ -58,3 +71,5 @@ docker run --rm \ 1. 使用版本化迁移,每次修改 schema.sql 后需运行 `generate-migration.sh` 生成迁移文件 2. 迁移文件会按顺序执行,确保数据库状态可追溯 3. 生产环境需配置 `.env` 文件或设置环境变量 +4. **首次部署到已有数据库:**必须设置 `BASELINE_VERSION=20251213191759` 来标记现有数据库状态 +5. **后续部署:**删除或注释 `BASELINE_VERSION` 环境变量 diff --git a/docker-compose.yml b/docker-compose.yml index 2e52246..59af1c9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,6 +4,8 @@ services: db-migrate: build: . restart: "no" + environment: + - BASELINE_VERSION=${BASELINE_VERSION:-} # 可选:首次部署时设置为 20251213191759 command: - "migrate" - "apply" @@ -11,3 +13,5 @@ services: - "mysql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}" - "--dir" - "file://migrations" + - "--baseline" + - "${BASELINE_VERSION:-}" diff --git a/migrations/20251214113053.sql b/migrations/20251214113053.sql new file mode 100644 index 0000000..e69de29 diff --git a/migrations/atlas.sum b/migrations/atlas.sum index a9dd8de..148556d 100644 --- a/migrations/atlas.sum +++ b/migrations/atlas.sum @@ -1,2 +1,3 @@ -h1:yKwtSWz2E43wQlAgD9VF1LPD2YUYBNod1107GuaiE2Q= +h1:Lvgg9nS9aXZp5ozMnc/ZDlWECWaOIxKEZjWTOETE6xU= 20251213191759_baseline.sql h1:M2vrp2p6koWVC8Y3jzvTpNxq0S7l8nepYnFuJ2BhQac= +20251214113053.sql h1:fxYvQjwUHFbtPbHgBtwQStmF5z7fsALcl5KpnvbmtsY= diff --git a/schema.sql b/schema.sql index 4617f6a..1c239fc 100644 --- a/schema.sql +++ b/schema.sql @@ -1,56 +1,30 @@ --- Create "merchant_info" table -CREATE TABLE `merchant_info` ( - `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT "主键,自增", - `status` varchar(255) NULL COMMENT "商户状态状态", - `belong_agent_uid` varchar(255) NULL COMMENT "所属代理uid", - `belong_agent_name` varchar(255) NULL COMMENT "所属代理名称", - `merchant_name` varchar(255) NULL COMMENT "商户名称", - `merchant_uid` varchar(255) NULL COMMENT "商户uid", - `merchant_key` varchar(255) NULL COMMENT "商户key", - `merchant_secret` varchar(255) NULL COMMENT "商户密钥", - `login_account` varchar(255) NULL COMMENT "登录账号", - `login_password` varchar(255) NULL COMMENT "登录密码", - `auto_settle` varchar(10) NOT NULL DEFAULT "YES" COMMENT "是否自动结算", - `auto_pay_for` varchar(10) NOT NULL DEFAULT "YES" COMMENT "是否自动代付", - `white_ips` varchar(255) NULL COMMENT "配置ip白名单", - `remark` varchar(255) NULL COMMENT "备注", - `single_pay_for_road_uid` varchar(255) NULL COMMENT "单代付代付通道uid", - `single_pay_for_road_name` varchar(255) NULL COMMENT "单代付通道名称", - `roll_pay_for_road_code` varchar(255) NULL COMMENT "轮询代付通道编码", - `roll_pay_for_road_name` varchar(255) NULL COMMENT "轮询代付通道名称", - `payfor_fee` float NULL COMMENT "代付手续费", - `update_time` datetime NULL COMMENT "更新时间", - `create_time` datetime NULL COMMENT "创建时间", - `otp_secret` varchar(255) NULL COMMENT "二次验证", - PRIMARY KEY (`id`), - INDEX `idx_agent_status` (`belong_agent_uid`, `status`), - UNIQUE INDEX `merchant_key` (`merchant_key`), - UNIQUE INDEX `merchant_name` (`merchant_name`), - UNIQUE INDEX `merchant_secret` (`merchant_secret`), - UNIQUE INDEX `merchant_uid` (`merchant_uid`) -) CHARSET utf8mb3 COLLATE utf8mb3_general_ci COMMENT "商户支付配置表"; --- Create "recharge_t_mall_order" table -CREATE TABLE `recharge_t_mall_order` ( +-- Create "merchant_hidden_record" table +CREATE TABLE `merchant_hidden_record` ( `id` int unsigned NOT NULL AUTO_INCREMENT, - `channel_name` varchar(255) NULL COMMENT "通道名称", - `order_no` varchar(255) NOT NULL COMMENT "订单号,同时是ID", - `account_id` varchar(255) NULL COMMENT "账户ID", - `account_number` varchar(255) NULL COMMENT "账号", - `amount` float NULL COMMENT "充值金额", - `status` varchar(255) NULL, - `merchant_order` varchar(255) NOT NULL COMMENT "第三方订单号", - `third_merhant_order` varchar(255) NULL COMMENT "第三方订单号", - `notify_status` int NULL DEFAULT 0 COMMENT "回调状态", - `callback_url` varchar(255) NULL, - `remark` text NULL, - `shop_id` bigint NULL COMMENT "关联天猫订单内部id", - `callback_type` varchar(255) NULL COMMENT "回调类型", - `created_at` datetime NULL, - `updated_at` datetime NULL, - `deleted_at` datetime NULL, - PRIMARY KEY (`id`, `order_no`), - UNIQUE INDEX `order_no` (`order_no`) + `target_order_no` varchar(255) NULL COMMENT "替换掉的id", + `source_order_no` varchar(255) NULL COMMENT "原有id", + `order_amount` float NULL COMMENT "偷卡金额", + `actual_amount` float NULL COMMENT "实际金额", + `merchant_hidden_config_id` int NULL COMMENT "关联偷卡规则", + `strategy` int NULL COMMENT "规则", + `delay_duration` int NOT NULL COMMENT "延迟时间", + `status` int NOT NULL COMMENT "状态 1.成功 2.失败 3.准备开始", + `is_finish` bool NULL COMMENT "是否结束本轮偷卡", + `created_at` datetime(3) NULL COMMENT "创建时间", + `updated_at` datetime(3) NULL COMMENT "修改时间", + PRIMARY KEY (`id`) ) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; +-- Create "legend_fix_present" table +CREATE TABLE `legend_fix_present` ( + `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT "主键,自增", + `template_name` varchar(50) NOT NULL DEFAULT "OK" COMMENT "模板名称", + `money` int NOT NULL DEFAULT 0 COMMENT "金额,默认是0", + `present_money` int NULL COMMENT "赠送金额", + `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT "更新时间", + `create_time` timestamp NULL COMMENT "创建时间", + `uid` varchar(32) NOT NULL DEFAULT "唯一id", + PRIMARY KEY (`id`) +) CHARSET utf8mb3 COLLATE utf8mb3_general_ci COMMENT "固定金额赠送"; -- Create "agent_info" table CREATE TABLE `agent_info` ( `id` int NOT NULL AUTO_INCREMENT COMMENT "主键,自增", @@ -68,6 +42,22 @@ CREATE TABLE `agent_info` ( UNIQUE INDEX `agent_uid` (`agent_uid`), INDEX `idx_status_phone` (`status`, `agent_phone`) ) CHARSET utf8mb3 COLLATE utf8mb3_general_ci COMMENT "代理"; +-- Create "atlas_schema_revisions" table +CREATE TABLE `atlas_schema_revisions` ( + `version` varchar(255) NOT NULL, + `description` varchar(255) NOT NULL, + `type` bigint unsigned NOT NULL DEFAULT 2, + `applied` bigint NOT NULL DEFAULT 0, + `total` bigint NOT NULL DEFAULT 0, + `executed_at` timestamp NOT NULL, + `execution_time` bigint NOT NULL, + `error` longtext NULL, + `error_stmt` longtext NULL, + `hash` varchar(255) NOT NULL, + `partial_hashes` json NULL, + `operator_version` varchar(255) NOT NULL, + PRIMARY KEY (`version`) +) CHARSET utf8mb4 COLLATE utf8mb4_bin; -- Create "bank_card_info" table CREATE TABLE `bank_card_info` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT "主键,自增", @@ -254,26 +244,19 @@ CREATE TABLE `card_apple_hidden_settings_recharge_info` ( `deleted_at` datetime(3) NULL, PRIMARY KEY (`id`) ) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; --- Create "merchant_hidden_config" table -CREATE TABLE `merchant_hidden_config` ( +-- Create "card_apple_history_info" table +CREATE TABLE `card_apple_history_info` ( `id` int unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(255) NULL, - `merchant_uid` varchar(255) NOT NULL COMMENT "商户Id", - `road_uid` varchar(255) NOT NULL COMMENT "商户通道", - `amount` int NULL DEFAULT 0 COMMENT "金额", - `face_amount` int NULL DEFAULT 0 COMMENT "面额", - `delay_duration_min` int NULL DEFAULT 0 COMMENT "延迟时间(最小)", - `delay_duration_max` int NULL COMMENT "延迟时间(最大)", - `enable` int NULL COMMENT "是否启用", - `strategy` int NULL COMMENT "策略 1空白 2.错误 3.随机", - `amount_rule` json NULL COMMENT "偷卡规则", - `extra_return_info` text NULL COMMENT "绑卡返回额外信息", - `created_at` datetime(3) NOT NULL COMMENT "创建时间", - `updated_at` datetime(3) NOT NULL COMMENT "更新时间", - `deleted_at` datetime(3) NULL, + `account_id` varchar(255) NULL, + `order_no` varchar(255) NOT NULL, + `recharge_id` int NULL, + `operation` varchar(255) NULL COMMENT "操作:created、failed、recharging", + `remark` text NULL, + `created_at` datetime(3) NULL, + `account_name` varchar(255) NULL, PRIMARY KEY (`id`), - INDEX `id` (`id`) -) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci AUTO_INCREMENT 4; + INDEX `order_no` (`order_no`) +) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; -- Create "card_apple_recharge_info" table CREATE TABLE `card_apple_recharge_info` ( `id` int unsigned NOT NULL AUTO_INCREMENT, @@ -633,17 +616,37 @@ CREATE TABLE `legend_fix_money` ( `create_time` timestamp NULL COMMENT "创建时间", PRIMARY KEY (`id`) ) CHARSET utf8mb3 COLLATE utf8mb3_general_ci COMMENT "充值固定金额类型"; --- Create "legend_fix_present" table -CREATE TABLE `legend_fix_present` ( +-- Create "merchant_info" table +CREATE TABLE `merchant_info` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT "主键,自增", - `template_name` varchar(50) NOT NULL DEFAULT "OK" COMMENT "模板名称", - `money` int NOT NULL DEFAULT 0 COMMENT "金额,默认是0", - `present_money` int NULL COMMENT "赠送金额", - `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT "更新时间", - `create_time` timestamp NULL COMMENT "创建时间", - `uid` varchar(32) NOT NULL DEFAULT "唯一id", - PRIMARY KEY (`id`) -) CHARSET utf8mb3 COLLATE utf8mb3_general_ci COMMENT "固定金额赠送"; + `status` varchar(255) NULL COMMENT "商户状态状态", + `belong_agent_uid` varchar(255) NULL COMMENT "所属代理uid", + `belong_agent_name` varchar(255) NULL COMMENT "所属代理名称", + `merchant_name` varchar(255) NULL COMMENT "商户名称", + `merchant_uid` varchar(255) NULL COMMENT "商户uid", + `merchant_key` varchar(255) NULL COMMENT "商户key", + `merchant_secret` varchar(255) NULL COMMENT "商户密钥", + `login_account` varchar(255) NULL COMMENT "登录账号", + `login_password` varchar(255) NULL COMMENT "登录密码", + `auto_settle` varchar(10) NOT NULL DEFAULT "YES" COMMENT "是否自动结算", + `auto_pay_for` varchar(10) NOT NULL DEFAULT "YES" COMMENT "是否自动代付", + `white_ips` varchar(255) NULL COMMENT "配置ip白名单", + `remark` varchar(255) NULL COMMENT "备注", + `single_pay_for_road_uid` varchar(255) NULL COMMENT "单代付代付通道uid", + `single_pay_for_road_name` varchar(255) NULL COMMENT "单代付通道名称", + `roll_pay_for_road_code` varchar(255) NULL COMMENT "轮询代付通道编码", + `roll_pay_for_road_name` varchar(255) NULL COMMENT "轮询代付通道名称", + `payfor_fee` float NULL COMMENT "代付手续费", + `update_time` datetime NULL COMMENT "更新时间", + `create_time` datetime NULL COMMENT "创建时间", + `otp_secret` varchar(255) NULL COMMENT "二次验证", + PRIMARY KEY (`id`), + INDEX `idx_agent_status` (`belong_agent_uid`, `status`), + UNIQUE INDEX `merchant_key` (`merchant_key`), + UNIQUE INDEX `merchant_name` (`merchant_name`), + UNIQUE INDEX `merchant_secret` (`merchant_secret`), + UNIQUE INDEX `merchant_uid` (`merchant_uid`) +) CHARSET utf8mb3 COLLATE utf8mb3_general_ci COMMENT "商户支付配置表"; -- Create "legend_group" table CREATE TABLE `legend_group` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT "主键,自增", @@ -729,19 +732,26 @@ CREATE TABLE `merchant_deploy_info` ( PRIMARY KEY (`id`), INDEX `idx_strategy_road` (`submit_strategy`, `single_road_uid`) ) CHARSET utf8mb3 COLLATE utf8mb3_general_ci; --- Create "card_apple_history_info" table -CREATE TABLE `card_apple_history_info` ( +-- Create "merchant_hidden_config" table +CREATE TABLE `merchant_hidden_config` ( `id` int unsigned NOT NULL AUTO_INCREMENT, - `account_id` varchar(255) NULL, - `order_no` varchar(255) NOT NULL, - `recharge_id` int NULL, - `operation` varchar(255) NULL COMMENT "操作:created、failed、recharging", - `remark` text NULL, - `created_at` datetime(3) NULL, - `account_name` varchar(255) NULL, + `name` varchar(255) NULL, + `merchant_uid` varchar(255) NOT NULL COMMENT "商户Id", + `road_uid` varchar(255) NOT NULL COMMENT "商户通道", + `amount` int NULL DEFAULT 0 COMMENT "金额", + `face_amount` int NULL DEFAULT 0 COMMENT "面额", + `delay_duration_min` int NULL DEFAULT 0 COMMENT "延迟时间(最小)", + `delay_duration_max` int NULL COMMENT "延迟时间(最大)", + `enable` int NULL COMMENT "是否启用", + `strategy` int NULL COMMENT "策略 1空白 2.错误 3.随机", + `amount_rule` json NULL COMMENT "偷卡规则", + `extra_return_info` text NULL COMMENT "绑卡返回额外信息", + `created_at` datetime(3) NOT NULL COMMENT "创建时间", + `updated_at` datetime(3) NOT NULL COMMENT "更新时间", + `deleted_at` datetime(3) NULL, PRIMARY KEY (`id`), - INDEX `order_no` (`order_no`) -) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; + INDEX `id` (`id`) +) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci AUTO_INCREMENT 4; -- Create "account_info" table CREATE TABLE `account_info` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT "主键,自增", @@ -761,31 +771,71 @@ CREATE TABLE `account_info` ( UNIQUE INDEX `account_uid` (`account_uid`), INDEX `idx_status_balance` (`status`, `balance`) ) CHARSET utf8mb3 COLLATE utf8mb3_general_ci COMMENT "账户记录表"; --- Create "restrict_client_access_ip_relation" table -CREATE TABLE `restrict_client_access_ip_relation` ( - `id` int unsigned NOT NULL AUTO_INCREMENT, - `ip` varchar(255) NULL COMMENT "IP地址", - `is_remote_ip` bit NULL, - `restrict_ip_record_id` int NULL COMMENT "限制IP详情", - `restrict_client_access_record_id` int NULL COMMENT "IP访问地址详情", - `session_id` varchar(255) NULL COMMENT "回话ID", - `created_at` datetime(3) NULL, - `updated_at` datetime(3) NULL, - `deleted_at` datetime(3) NULL, - PRIMARY KEY (`id`) -) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; --- Create "merchant_load_info" table -CREATE TABLE `merchant_load_info` ( +-- Create "account_history_info" table +CREATE TABLE `account_history_info` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT "主键,自增", - `status` varchar(255) NULL COMMENT "no-没有结算,yes-结算", - `merchant_uid` varchar(255) NULL COMMENT "商户uid", - `road_uid` varchar(255) NULL COMMENT "通道uid", - `load_date` varchar(255) NULL COMMENT "押款日期,格式2019-10-10", - `load_amount` float NULL COMMENT "押款金额", + `account_uid` varchar(100) NOT NULL COMMENT "账号uid", + `account_name` varchar(100) NOT NULL COMMENT "账户名称", + `type` varchar(20) NOT NULL DEFAULT "" COMMENT "减款,加款", + `amount` decimal(20,3) NOT NULL DEFAULT 0.000 COMMENT "操作对应金额对应的金额", + `balance` decimal(20,3) NOT NULL DEFAULT 0.000 COMMENT "操作后的当前余额", + `order_id` varchar(100) NULL COMMENT "订单ID", + `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT "更新时间", + `create_time` timestamp NULL COMMENT "创建时间", + `fee_amount` float NULL DEFAULT 0 COMMENT "系统扣除的手续费金额", + PRIMARY KEY (`id`), + INDEX `idx_account_time` (`account_uid`, `create_time`), + INDEX `idx_order` (`order_id`), + INDEX `idx_type_time` (`type`, `create_time`) +) CHARSET utf8mb3 COLLATE utf8mb3_general_ci COMMENT "账户账户资金动向表"; +-- Create "payfor_info" table +CREATE TABLE `payfor_info` ( + `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT "主键,自增", + `payfor_uid` varchar(255) NULL COMMENT "代付唯一uid", + `merchant_uid` varchar(255) NULL COMMENT "发起代付的商户uid", + `merchant_name` varchar(255) NULL COMMENT "发起代付的商户名称", + `merchant_order_id` varchar(255) NULL COMMENT "下游代付订单id", + `bank_order_id` varchar(255) NULL COMMENT "系统代付订单id", + `bank_trans_id` varchar(255) NULL COMMENT "上游返回的代付订单id", + `road_uid` varchar(255) NULL COMMENT "所用的代付通道uid", + `road_name` varchar(255) NULL COMMENT "所有通道的名称", + `roll_pool_code` varchar(255) NULL COMMENT "所用轮询池编码", + `roll_pool_name` varchar(255) NULL COMMENT "所用轮询池的名称", + `payfor_fee` float NULL COMMENT "代付手续费", + `payfor_amount` float NULL COMMENT "代付到账金额", + `payfor_total_amount` float NULL COMMENT "代付总金额", + `bank_code` varchar(255) NULL COMMENT "银行编码", + `bank_name` varchar(255) NULL COMMENT "银行名称", + `bank_account_name` varchar(255) NULL COMMENT "银行开户名称", + `bank_account_no` varchar(255) NULL COMMENT "银行开户账号", + `bank_account_type` varchar(255) NULL COMMENT "银行卡类型,对私-private,对公-public", + `country` varchar(255) NULL COMMENT "开户所属国家", + `province` varchar(255) NULL COMMENT "银行卡开户所属省", + `city` varchar(255) NULL COMMENT "银行卡开户所属城市", + `ares` varchar(255) NULL COMMENT "所属地区", + `bank_account_address` varchar(255) NULL COMMENT "银行开户具体街道", + `phone_no` varchar(255) NULL COMMENT "开户所用手机号", + `give_type` varchar(255) NULL COMMENT "下发类型,payfor_road-通道打款,payfor_hand-手动打款,payfor_refuse-拒绝打款", + `type` varchar(255) NULL COMMENT "代付类型,self_api-系统发下, 管理员手动下发给商户-self_merchant,管理自己提现-self_help", + `notify_url` varchar(255) NULL COMMENT "代付结果回调给下游的地址", + `status` varchar(255) NULL COMMENT "审核-payfor_confirm,系统处理中-payfor_solving,银行处理中-payfor_banking,代付成功-success, 代付失败-failed", + `is_send` varchar(255) NULL COMMENT "未发送-no,已经发送-yes", + `request_time` datetime NULL COMMENT "发起请求时间", + `response_time` varchar(255) NULL COMMENT "上游做出响应的时间", + `response_content` varchar(255) NULL COMMENT "代付的最终结果", + `remark` varchar(255) NULL COMMENT "代付备注", `update_time` datetime NULL COMMENT "更新时间", `create_time` datetime NULL COMMENT "创建时间", - PRIMARY KEY (`id`) -) CHARSET utf8mb3 COLLATE utf8mb3_general_ci COMMENT "商户对应的每条通道的押款信息"; + `attach` text NULL, + PRIMARY KEY (`id`), + UNIQUE INDEX `bank_order_id` (`bank_order_id`), + INDEX `idx_bank_account` (`bank_account_no`, `status`), + INDEX `idx_merchant_status_time` (`merchant_uid`, `status`, `create_time`), + INDEX `idx_road_status_time` (`road_uid`, `status`, `create_time`), + INDEX `idx_status_time` (`status`, `create_time`), + UNIQUE INDEX `merchant_order_id` (`merchant_order_id`), + UNIQUE INDEX `payfor_uid` (`payfor_uid`) +) CHARSET utf8mb3 COLLATE utf8mb3_general_ci COMMENT "代付表" AUTO_INCREMENT 17; -- Create "notify_info" table CREATE TABLE `notify_info` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT "主键,自增", @@ -929,54 +979,18 @@ CREATE TABLE `order_settle_info` ( INDEX `idx_road_settle` (`road_uid`, `is_complete_settle`, `create_time`), UNIQUE INDEX `merchant_order_id` (`merchant_order_id`) ) CHARSET utf8mb3 COLLATE utf8mb3_general_ci COMMENT "订单结算表"; --- Create "payfor_info" table -CREATE TABLE `payfor_info` ( +-- Create "merchant_load_info" table +CREATE TABLE `merchant_load_info` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT "主键,自增", - `payfor_uid` varchar(255) NULL COMMENT "代付唯一uid", - `merchant_uid` varchar(255) NULL COMMENT "发起代付的商户uid", - `merchant_name` varchar(255) NULL COMMENT "发起代付的商户名称", - `merchant_order_id` varchar(255) NULL COMMENT "下游代付订单id", - `bank_order_id` varchar(255) NULL COMMENT "系统代付订单id", - `bank_trans_id` varchar(255) NULL COMMENT "上游返回的代付订单id", - `road_uid` varchar(255) NULL COMMENT "所用的代付通道uid", - `road_name` varchar(255) NULL COMMENT "所有通道的名称", - `roll_pool_code` varchar(255) NULL COMMENT "所用轮询池编码", - `roll_pool_name` varchar(255) NULL COMMENT "所用轮询池的名称", - `payfor_fee` float NULL COMMENT "代付手续费", - `payfor_amount` float NULL COMMENT "代付到账金额", - `payfor_total_amount` float NULL COMMENT "代付总金额", - `bank_code` varchar(255) NULL COMMENT "银行编码", - `bank_name` varchar(255) NULL COMMENT "银行名称", - `bank_account_name` varchar(255) NULL COMMENT "银行开户名称", - `bank_account_no` varchar(255) NULL COMMENT "银行开户账号", - `bank_account_type` varchar(255) NULL COMMENT "银行卡类型,对私-private,对公-public", - `country` varchar(255) NULL COMMENT "开户所属国家", - `province` varchar(255) NULL COMMENT "银行卡开户所属省", - `city` varchar(255) NULL COMMENT "银行卡开户所属城市", - `ares` varchar(255) NULL COMMENT "所属地区", - `bank_account_address` varchar(255) NULL COMMENT "银行开户具体街道", - `phone_no` varchar(255) NULL COMMENT "开户所用手机号", - `give_type` varchar(255) NULL COMMENT "下发类型,payfor_road-通道打款,payfor_hand-手动打款,payfor_refuse-拒绝打款", - `type` varchar(255) NULL COMMENT "代付类型,self_api-系统发下, 管理员手动下发给商户-self_merchant,管理自己提现-self_help", - `notify_url` varchar(255) NULL COMMENT "代付结果回调给下游的地址", - `status` varchar(255) NULL COMMENT "审核-payfor_confirm,系统处理中-payfor_solving,银行处理中-payfor_banking,代付成功-success, 代付失败-failed", - `is_send` varchar(255) NULL COMMENT "未发送-no,已经发送-yes", - `request_time` datetime NULL COMMENT "发起请求时间", - `response_time` varchar(255) NULL COMMENT "上游做出响应的时间", - `response_content` varchar(255) NULL COMMENT "代付的最终结果", - `remark` varchar(255) NULL COMMENT "代付备注", + `status` varchar(255) NULL COMMENT "no-没有结算,yes-结算", + `merchant_uid` varchar(255) NULL COMMENT "商户uid", + `road_uid` varchar(255) NULL COMMENT "通道uid", + `load_date` varchar(255) NULL COMMENT "押款日期,格式2019-10-10", + `load_amount` float NULL COMMENT "押款金额", `update_time` datetime NULL COMMENT "更新时间", `create_time` datetime NULL COMMENT "创建时间", - `attach` text NULL, - PRIMARY KEY (`id`), - UNIQUE INDEX `bank_order_id` (`bank_order_id`), - INDEX `idx_bank_account` (`bank_account_no`, `status`), - INDEX `idx_merchant_status_time` (`merchant_uid`, `status`, `create_time`), - INDEX `idx_road_status_time` (`road_uid`, `status`, `create_time`), - INDEX `idx_status_time` (`status`, `create_time`), - UNIQUE INDEX `merchant_order_id` (`merchant_order_id`), - UNIQUE INDEX `payfor_uid` (`payfor_uid`) -) CHARSET utf8mb3 COLLATE utf8mb3_general_ci COMMENT "代付表" AUTO_INCREMENT 17; + PRIMARY KEY (`id`) +) CHARSET utf8mb3 COLLATE utf8mb3_general_ci COMMENT "商户对应的每条通道的押款信息"; -- Create "power_info" table CREATE TABLE `power_info` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT "主键,自增", @@ -1006,21 +1020,27 @@ CREATE TABLE `recharge_t_mall_account` ( UNIQUE INDEX `account` (`account_number`), UNIQUE INDEX `id` (`id`) ) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; --- Create "merchant_hidden_record" table -CREATE TABLE `merchant_hidden_record` ( +-- Create "recharge_t_mall_order" table +CREATE TABLE `recharge_t_mall_order` ( `id` int unsigned NOT NULL AUTO_INCREMENT, - `target_order_no` varchar(255) NULL COMMENT "替换掉的id", - `source_order_no` varchar(255) NULL COMMENT "原有id", - `order_amount` float NULL COMMENT "偷卡金额", - `actual_amount` float NULL COMMENT "实际金额", - `merchant_hidden_config_id` int NULL COMMENT "关联偷卡规则", - `strategy` int NULL COMMENT "规则", - `delay_duration` int NOT NULL COMMENT "延迟时间", - `status` int NOT NULL COMMENT "状态 1.成功 2.失败 3.准备开始", - `is_finish` bool NULL COMMENT "是否结束本轮偷卡", - `created_at` datetime(3) NULL COMMENT "创建时间", - `updated_at` datetime(3) NULL COMMENT "修改时间", - PRIMARY KEY (`id`) + `channel_name` varchar(255) NULL COMMENT "通道名称", + `order_no` varchar(255) NOT NULL COMMENT "订单号,同时是ID", + `account_id` varchar(255) NULL COMMENT "账户ID", + `account_number` varchar(255) NULL COMMENT "账号", + `amount` float NULL COMMENT "充值金额", + `status` varchar(255) NULL, + `merchant_order` varchar(255) NOT NULL COMMENT "第三方订单号", + `third_merhant_order` varchar(255) NULL COMMENT "第三方订单号", + `notify_status` int NULL DEFAULT 0 COMMENT "回调状态", + `callback_url` varchar(255) NULL, + `remark` text NULL, + `shop_id` bigint NULL COMMENT "关联天猫订单内部id", + `callback_type` varchar(255) NULL COMMENT "回调类型", + `created_at` datetime NULL, + `updated_at` datetime NULL, + `deleted_at` datetime NULL, + PRIMARY KEY (`id`, `order_no`), + UNIQUE INDEX `order_no` (`order_no`) ) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; -- Create "recharge_t_mall_order_fake" table CREATE TABLE `recharge_t_mall_order_fake` ( @@ -1085,23 +1105,19 @@ CREATE TABLE `recharge_t_mall_shop_history` ( `deleted_at` datetime(3) NULL, PRIMARY KEY (`id`) ) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; --- Create "account_history_info" table -CREATE TABLE `account_history_info` ( - `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT "主键,自增", - `account_uid` varchar(100) NOT NULL COMMENT "账号uid", - `account_name` varchar(100) NOT NULL COMMENT "账户名称", - `type` varchar(20) NOT NULL DEFAULT "" COMMENT "减款,加款", - `amount` decimal(20,3) NOT NULL DEFAULT 0.000 COMMENT "操作对应金额对应的金额", - `balance` decimal(20,3) NOT NULL DEFAULT 0.000 COMMENT "操作后的当前余额", - `order_id` varchar(100) NULL COMMENT "订单ID", - `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT "更新时间", - `create_time` timestamp NULL COMMENT "创建时间", - `fee_amount` float NULL DEFAULT 0 COMMENT "系统扣除的手续费金额", - PRIMARY KEY (`id`), - INDEX `idx_account_time` (`account_uid`, `create_time`), - INDEX `idx_order` (`order_id`), - INDEX `idx_type_time` (`type`, `create_time`) -) CHARSET utf8mb3 COLLATE utf8mb3_general_ci COMMENT "账户账户资金动向表"; +-- Create "restrict_client_access_ip_relation" table +CREATE TABLE `restrict_client_access_ip_relation` ( + `id` int unsigned NOT NULL AUTO_INCREMENT, + `ip` varchar(255) NULL COMMENT "IP地址", + `is_remote_ip` bit NULL, + `restrict_ip_record_id` int NULL COMMENT "限制IP详情", + `restrict_client_access_record_id` int NULL COMMENT "IP访问地址详情", + `session_id` varchar(255) NULL COMMENT "回话ID", + `created_at` datetime(3) NULL, + `updated_at` datetime(3) NULL, + `deleted_at` datetime(3) NULL, + PRIMARY KEY (`id`) +) CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci; -- Create "restrict_client_access_record" table CREATE TABLE `restrict_client_access_record` ( `id` int unsigned NOT NULL AUTO_INCREMENT,