重构代码结构与认证体系,集成异步任务消费者
This commit is contained in:
@@ -1,50 +0,0 @@
|
||||
name: server-pre
|
||||
|
||||
services:
|
||||
|
||||
postgres:
|
||||
image: postgres:17
|
||||
environment:
|
||||
POSTGRES_USER: ${DB_USERNAME}
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||
POSTGRES_DB: ${DB_NAME}
|
||||
ports:
|
||||
- "5434:5432"
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
|
||||
redis:
|
||||
image: redis:7.4
|
||||
restart: always
|
||||
ports:
|
||||
- "6380:6379"
|
||||
|
||||
platform:
|
||||
build:
|
||||
context: ../..
|
||||
dockerfile: Dockerfile
|
||||
environment:
|
||||
- RUN_MODE=production
|
||||
- DB_PORT=5434
|
||||
- REDIS_PORT=6380
|
||||
ports:
|
||||
- "8081:8080"
|
||||
depends_on:
|
||||
- postgres
|
||||
- redis
|
||||
|
||||
vector:
|
||||
image: timberio/vector:0.47.0-alpine
|
||||
volumes:
|
||||
- ./vector/vector.toml:/etc/vector/vector.toml
|
||||
- vector_data:/var/lib/vector
|
||||
ports:
|
||||
- "9000:9000"
|
||||
command: ["vector", "-c", "/etc/vector/vector.toml"]
|
||||
depends_on:
|
||||
- postgres
|
||||
- platform
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
vector_data:
|
||||
@@ -1,43 +0,0 @@
|
||||
## 源配置:从 Docker 获取容器日志
|
||||
|
||||
[sources.platform_logs]
|
||||
type = "docker_logs"
|
||||
include_containers = ["platform"]
|
||||
|
||||
## 转换配置:为日志添加元数据
|
||||
|
||||
[transforms.platform_logs_parse]
|
||||
type = "remap"
|
||||
inputs = ["platform_logs"]
|
||||
source = '''
|
||||
.container = "platform"
|
||||
json, err = parse_json(.message)
|
||||
if err != null {
|
||||
log.error("日志转换 json 格式失败: {}", err)
|
||||
.tag = "error"
|
||||
return
|
||||
}
|
||||
. = merge(., json)
|
||||
'''
|
||||
|
||||
[transform.platform_logs_route]
|
||||
type = "route"
|
||||
inputs = ["platform_logs_parse"]
|
||||
|
||||
[transform.platform_logs_route.route]
|
||||
request = '.message == "接口请求"'
|
||||
usage = '.message == "创建通道"'
|
||||
|
||||
## 输出配置:将日志保存到 postgresql
|
||||
|
||||
[sinks.platform_logs_request]
|
||||
type = "postgres"
|
||||
inputs = ["platform_logs_route.request"]
|
||||
|
||||
[sinks.platform_logs_login]
|
||||
type = "postgres"
|
||||
inputs = ["platform_logs_route.login"]
|
||||
|
||||
[sinks.platform_logs_usage]
|
||||
type = "postgres"
|
||||
inputs = ["platform_logs_route.usage"]
|
||||
@@ -5,32 +5,32 @@
|
||||
-- logs_request
|
||||
drop table if exists logs_request cascade;
|
||||
create table logs_request (
|
||||
id serial primary key,
|
||||
id serial primary key,
|
||||
|
||||
identity int not null,
|
||||
visitor int,
|
||||
ip varchar(45) not null,
|
||||
ua varchar(255),
|
||||
ip varchar(45) not null,
|
||||
ua varchar(255) not null,
|
||||
user_id int,
|
||||
client_id int,
|
||||
|
||||
method varchar(10) not null,
|
||||
path varchar(255) not null,
|
||||
method varchar(10) not null,
|
||||
path varchar(255) not null,
|
||||
|
||||
status int not null,
|
||||
error text,
|
||||
status int not null,
|
||||
error text,
|
||||
|
||||
time timestamp not null,
|
||||
latency varchar(255) not null
|
||||
time timestamp not null,
|
||||
latency varchar(255) not null
|
||||
);
|
||||
create index logs_request_identity_index on logs_request (identity);
|
||||
create index logs_request_visitor_index on logs_request (visitor);
|
||||
create index logs_request_user_id_index on logs_request (user_id);
|
||||
create index logs_request_client_id_index on logs_request (client_id);
|
||||
|
||||
-- logs_access表字段注释
|
||||
comment on table logs_request is '访问日志表';
|
||||
comment on column logs_request.id is '访问日志ID';
|
||||
comment on column logs_request.identity is '访客身份:0-游客,1-用户,2-管理员,3-公共服务,4-安全服务,5-内部服务';
|
||||
comment on column logs_request.visitor is '访客ID';
|
||||
comment on column logs_request.ip is 'IP地址';
|
||||
comment on column logs_request.ua is '用户代理';
|
||||
comment on column logs_request.user_id is '用户ID';
|
||||
comment on column logs_request.client_id is '客户端ID';
|
||||
comment on column logs_request.method is '请求方法';
|
||||
comment on column logs_request.path is '请求路径';
|
||||
comment on column logs_request.status is '响应状态码';
|
||||
@@ -131,8 +131,8 @@ create table admin (
|
||||
last_login timestamp,
|
||||
last_login_host varchar(45),
|
||||
last_login_agent varchar(255),
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
);
|
||||
create index admin_status_index on admin (status);
|
||||
@@ -161,8 +161,8 @@ create table admin_role (
|
||||
id serial primary key,
|
||||
name varchar(255) not null unique,
|
||||
description varchar(255),
|
||||
active bool default true,
|
||||
sort int default 0,
|
||||
active bool default true,
|
||||
sort int default 0,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
@@ -190,8 +190,8 @@ create table announcement (
|
||||
pin bool not null default false,
|
||||
status int not null default 1,
|
||||
sort int not null default 0,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
);
|
||||
create index announcement_status_index on announcement (status);
|
||||
@@ -220,9 +220,7 @@ comment on column announcement.deleted_at is '删除时间';
|
||||
drop table if exists "user" cascade;
|
||||
create table "user" (
|
||||
id serial primary key,
|
||||
admin_id int references admin (id) --
|
||||
on update cascade --
|
||||
on delete set null,
|
||||
admin_id int,
|
||||
phone varchar(255) not null unique,
|
||||
username varchar(255),
|
||||
email varchar(255),
|
||||
@@ -239,8 +237,8 @@ create table "user" (
|
||||
last_login timestamp,
|
||||
last_login_host varchar(45),
|
||||
last_login_agent varchar(255),
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
);
|
||||
create index user_admin_id_index on "user" (admin_id);
|
||||
@@ -278,8 +276,8 @@ create table user_role (
|
||||
id serial primary key,
|
||||
name varchar(255) not null unique,
|
||||
description varchar(255),
|
||||
active bool default true,
|
||||
sort int default 0,
|
||||
active bool default true,
|
||||
sort int default 0,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
@@ -305,21 +303,18 @@ comment on column user_role.deleted_at is '删除时间';
|
||||
|
||||
drop table if exists client cascade;
|
||||
create table client (
|
||||
id serial primary key,
|
||||
client_id varchar(255) not null unique,
|
||||
client_secret varchar(255) not null,
|
||||
redirect_uri varchar(255),
|
||||
grant_code bool not null default false,
|
||||
grant_client bool not null default false,
|
||||
grant_refresh bool not null default false,
|
||||
grant_password bool not null default false,
|
||||
spec int not null,
|
||||
name varchar(255) not null,
|
||||
icon varchar(255),
|
||||
status int not null default 1,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
id serial primary key,
|
||||
client_id varchar(255) not null unique,
|
||||
client_secret varchar(255) not null,
|
||||
redirect_uri varchar(255),
|
||||
spec int not null,
|
||||
name varchar(255) not null,
|
||||
icon varchar(255),
|
||||
status int not null default 1,
|
||||
type int not null default 0,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
);
|
||||
|
||||
create index client_client_id_index on client (client_id);
|
||||
@@ -333,14 +328,11 @@ comment on column client.id is '客户端ID';
|
||||
comment on column client.client_id is 'OAuth2客户端标识符';
|
||||
comment on column client.client_secret is 'OAuth2客户端密钥';
|
||||
comment on column client.redirect_uri is 'OAuth2 重定向URI';
|
||||
comment on column client.grant_code is '允许授权码授予';
|
||||
comment on column client.grant_client is '允许客户端凭证授予';
|
||||
comment on column client.grant_refresh is '允许刷新令牌授予';
|
||||
comment on column client.grant_password is '允许密码授予';
|
||||
comment on column client.spec is '安全规范:1-native,2-browser,3-web,4-trusted';
|
||||
comment on column client.spec is '安全规范:1-native,2-browser,3-web,4-api';
|
||||
comment on column client.name is '名称';
|
||||
comment on column client.icon is '图标URL';
|
||||
comment on column client.status is '状态:0-禁用,1-正常';
|
||||
comment on column client.type is '类型:0-普通,1-官方';
|
||||
comment on column client.created_at is '创建时间';
|
||||
comment on column client.updated_at is '更新时间';
|
||||
comment on column client.deleted_at is '删除时间';
|
||||
@@ -355,25 +347,22 @@ comment on column client.deleted_at is '删除时间';
|
||||
drop table if exists session cascade;
|
||||
create table session (
|
||||
id serial primary key,
|
||||
user_id int references "user" (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
client_id int references client (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
user_id int,
|
||||
admin_id int,
|
||||
client_id int,
|
||||
ip varchar(45),
|
||||
ua varchar(255),
|
||||
grant_type varchar(255) not null default 0,
|
||||
access_token varchar(255) not null unique,
|
||||
access_token_expires timestamp not null,
|
||||
refresh_token varchar(255) unique,
|
||||
refresh_token_expires timestamp,
|
||||
scopes varchar(255),
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
);
|
||||
create index session_user_id_index on session (user_id);
|
||||
create index session_admin_id_index on session (admin_id);
|
||||
create index session_client_id_index on session (client_id);
|
||||
create index session_access_token_index on session (access_token);
|
||||
create index session_refresh_token_index on session (refresh_token);
|
||||
@@ -384,10 +373,10 @@ create index session_deleted_at_index on session (deleted_at);
|
||||
comment on table session is '会话表';
|
||||
comment on column session.id is '会话ID';
|
||||
comment on column session.user_id is '用户ID';
|
||||
comment on column session.admin_id is '管理员ID';
|
||||
comment on column session.client_id is '客户端ID';
|
||||
comment on column session.ip is 'IP地址';
|
||||
comment on column session.ua is '用户代理';
|
||||
comment on column session.grant_type is '授权类型:authorization_code-授权码模式,client_credentials-客户端凭证模式,refresh_token-刷新令牌模式,password-密码模式';
|
||||
comment on column session.access_token is '访问令牌';
|
||||
comment on column session.access_token_expires is '访问令牌过期时间';
|
||||
comment on column session.refresh_token is '刷新令牌';
|
||||
@@ -401,9 +390,7 @@ comment on column session.deleted_at is '删除时间';
|
||||
drop table if exists permission cascade;
|
||||
create table permission (
|
||||
id serial primary key,
|
||||
parent_id int references permission (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
parent_id int,
|
||||
name varchar(255) not null unique,
|
||||
description varchar(255),
|
||||
created_at timestamp default current_timestamp,
|
||||
@@ -428,12 +415,8 @@ comment on column permission.deleted_at is '删除时间';
|
||||
drop table if exists user_role_link cascade;
|
||||
create table user_role_link (
|
||||
id serial primary key,
|
||||
user_id int not null references "user" (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
role_id int not null references user_role (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
user_id int not null,
|
||||
role_id int not null,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
@@ -455,12 +438,8 @@ comment on column user_role_link.deleted_at is '删除时间';
|
||||
drop table if exists admin_role_link cascade;
|
||||
create table admin_role_link (
|
||||
id serial primary key,
|
||||
admin_id int not null references admin (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
role_id int not null references admin_role (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
admin_id int not null,
|
||||
role_id int not null,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
@@ -482,12 +461,8 @@ comment on column admin_role_link.deleted_at is '删除时间';
|
||||
drop table if exists user_role_permission_link cascade;
|
||||
create table user_role_permission_link (
|
||||
id serial primary key,
|
||||
role_id int not null references user_role (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
permission_id int not null references permission (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
role_id int not null,
|
||||
permission_id int not null,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
@@ -509,12 +484,8 @@ comment on column user_role_permission_link.deleted_at is '删除时间';
|
||||
drop table if exists admin_role_permission_link cascade;
|
||||
create table admin_role_permission_link (
|
||||
id serial primary key,
|
||||
role_id int not null references admin_role (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
permission_id int not null references permission (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
role_id int not null,
|
||||
permission_id int not null,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
@@ -536,12 +507,8 @@ comment on column admin_role_permission_link.deleted_at is '删除时间';
|
||||
drop table if exists client_permission_link cascade;
|
||||
create table client_permission_link (
|
||||
id serial primary key,
|
||||
client_id int not null references client (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
permission_id int not null references permission (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
client_id int not null,
|
||||
permission_id int not null,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
@@ -602,9 +569,7 @@ comment on column proxy.deleted_at is '删除时间';
|
||||
drop table if exists edge cascade;
|
||||
create table edge (
|
||||
id serial primary key,
|
||||
proxy_id int references proxy (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
proxy_id int,
|
||||
type int not null,
|
||||
version int not null,
|
||||
name varchar(255) not null unique,
|
||||
@@ -614,10 +579,10 @@ create table edge (
|
||||
city varchar(255) not null,
|
||||
proxy_port int,
|
||||
status int not null default 0,
|
||||
rtt int default 0,
|
||||
loss int default 0,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
rtt int default 0,
|
||||
loss int default 0,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
);
|
||||
create index edge_proxy_id_index on edge (proxy_id);
|
||||
@@ -650,9 +615,7 @@ comment on column edge.deleted_at is '删除时间';
|
||||
drop table if exists whitelist cascade;
|
||||
create table whitelist (
|
||||
id serial primary key,
|
||||
user_id int not null references "user" (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
user_id int not null,
|
||||
host varchar(45) not null,
|
||||
remark varchar(255),
|
||||
created_at timestamp default current_timestamp,
|
||||
@@ -677,18 +640,10 @@ comment on column whitelist.deleted_at is '删除时间';
|
||||
drop table if exists channel cascade;
|
||||
create table channel (
|
||||
id serial primary key,
|
||||
user_id int not null references "user" (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
proxy_id int not null references proxy (id) --
|
||||
on update cascade --
|
||||
on delete set null,
|
||||
edge_id int references edge (id) --
|
||||
on update cascade --
|
||||
on delete set null,
|
||||
resource_id int not null references resource (id) --
|
||||
on update cascade --
|
||||
on delete set null,
|
||||
user_id int not null,
|
||||
proxy_id int not null,
|
||||
edge_id int,
|
||||
resource_id int not null,
|
||||
proxy_host varchar(255) not null default '',
|
||||
proxy_port int not null,
|
||||
edge_host varchar(255),
|
||||
@@ -699,8 +654,8 @@ create table channel (
|
||||
username varchar(255),
|
||||
password varchar(255),
|
||||
expiration timestamp not null,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
);
|
||||
create index channel_user_id_index on channel (user_id);
|
||||
@@ -748,8 +703,8 @@ create table product (
|
||||
description varchar(255),
|
||||
sort int not null default 0,
|
||||
status int not null default 1,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
);
|
||||
create index product_deleted_at_index on product (deleted_at);
|
||||
@@ -770,14 +725,12 @@ comment on column product.deleted_at is '删除时间';
|
||||
drop table if exists resource cascade;
|
||||
create table resource (
|
||||
id serial primary key,
|
||||
user_id int not null references "user" (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
user_id int not null,
|
||||
resource_no varchar(255) unique,
|
||||
active bool not null default true,
|
||||
type int not null,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
);
|
||||
create index resource_user_id_index on resource (user_id);
|
||||
@@ -797,13 +750,11 @@ comment on column resource.created_at is '创建时间';
|
||||
comment on column resource.updated_at is '更新时间';
|
||||
comment on column resource.deleted_at is '删除时间';
|
||||
|
||||
-- resource_short
|
||||
-- resource_short
|
||||
drop table if exists resource_short cascade;
|
||||
create table resource_short (
|
||||
id serial primary key,
|
||||
resource_id int not null references resource (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
resource_id int not null,
|
||||
type int not null,
|
||||
live int not null,
|
||||
expire timestamp,
|
||||
@@ -832,9 +783,7 @@ comment on column resource_short.daily_last is '今日最后使用时间';
|
||||
drop table if exists resource_long cascade;
|
||||
create table resource_long (
|
||||
id serial primary key,
|
||||
resource_id int not null references resource (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
resource_id int not null,
|
||||
type int not null,
|
||||
live int not null,
|
||||
expire timestamp,
|
||||
@@ -869,9 +818,7 @@ comment on column resource_long.daily_last is '今日最后使用时间';
|
||||
drop table if exists trade cascade;
|
||||
create table trade (
|
||||
id serial primary key,
|
||||
user_id int not null references "user" (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
user_id int not null,
|
||||
inner_no varchar(255) not null unique,
|
||||
outer_no varchar(255),
|
||||
type int not null,
|
||||
@@ -887,8 +834,8 @@ create table trade (
|
||||
payment_url text,
|
||||
completed_at timestamp,
|
||||
canceled_at timestamp,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
);
|
||||
create index trade_user_id_index on trade (user_id);
|
||||
@@ -923,17 +870,13 @@ comment on column trade.deleted_at is '删除时间';
|
||||
drop table if exists refund cascade;
|
||||
create table refund (
|
||||
id serial primary key,
|
||||
trade_id int not null references trade (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
product_id int references product (id) --
|
||||
on update cascade --
|
||||
on delete set null,
|
||||
trade_id int not null,
|
||||
product_id int,
|
||||
amount decimal(12, 2) not null default 0,
|
||||
reason varchar(255),
|
||||
status int not null default 0,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
);
|
||||
create index refund_trade_id_index on refund (trade_id);
|
||||
@@ -956,24 +899,16 @@ comment on column refund.deleted_at is '删除时间';
|
||||
drop table if exists bill cascade;
|
||||
create table bill (
|
||||
id serial primary key,
|
||||
user_id int not null references "user" (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
trade_id int references trade (id) --
|
||||
on update cascade --
|
||||
on delete set null,
|
||||
resource_id int references resource (id) --
|
||||
on update cascade --
|
||||
on delete set null,
|
||||
refund_id int references refund (id) --
|
||||
on update cascade --
|
||||
on delete set null,
|
||||
user_id int not null,
|
||||
trade_id int,
|
||||
resource_id int,
|
||||
refund_id int,
|
||||
bill_no varchar(255) not null unique,
|
||||
info varchar(255),
|
||||
type int not null,
|
||||
amount decimal(12, 2) not null default 0,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
);
|
||||
create index bill_user_id_index on bill (user_id);
|
||||
@@ -1003,17 +938,15 @@ comment on column bill.deleted_at is '删除时间';
|
||||
drop table if exists coupon cascade;
|
||||
create table coupon (
|
||||
id serial primary key,
|
||||
user_id int references "user" (id)
|
||||
on update cascade
|
||||
on delete cascade,
|
||||
user_id int,
|
||||
code varchar(255) not null unique,
|
||||
remark varchar(255),
|
||||
amount decimal(12, 2) not null default 0,
|
||||
min_amount decimal(12, 2) not null default 0,
|
||||
status int not null default 0,
|
||||
expire_at timestamp,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
created_at timestamp default current_timestamp,
|
||||
updated_at timestamp default current_timestamp,
|
||||
deleted_at timestamp
|
||||
);
|
||||
create index coupon_user_id_index on coupon (user_id);
|
||||
@@ -1035,4 +968,119 @@ comment on column coupon.created_at is '创建时间';
|
||||
comment on column coupon.updated_at is '更新时间';
|
||||
comment on column coupon.deleted_at is '删除时间';
|
||||
|
||||
-- endregion
|
||||
|
||||
-- ====================
|
||||
-- region 外键约束
|
||||
-- ====================
|
||||
|
||||
-- user表外键
|
||||
alter table "user"
|
||||
add constraint fk_user_admin_id foreign key (admin_id) references admin (id) on delete set null;
|
||||
|
||||
-- session表外键
|
||||
alter table session
|
||||
add constraint fk_session_user_id foreign key (user_id) references "user" (id) on delete cascade;
|
||||
alter table session
|
||||
add constraint fk_session_client_id foreign key (client_id) references client (id) on delete cascade;
|
||||
|
||||
-- permission表外键
|
||||
alter table permission
|
||||
add constraint fk_permission_parent_id foreign key (parent_id) references permission (id) on delete set null;
|
||||
|
||||
-- user_role_link表外键
|
||||
alter table user_role_link
|
||||
add constraint fk_user_role_link_user_id foreign key (user_id) references "user" (id) on delete cascade;
|
||||
alter table user_role_link
|
||||
add constraint fk_user_role_link_role_id foreign key (role_id) references user_role (id) on delete cascade;
|
||||
|
||||
-- admin_role_link表外键
|
||||
alter table admin_role_link
|
||||
add constraint fk_admin_role_link_admin_id foreign key (admin_id) references admin (id) on delete cascade;
|
||||
alter table admin_role_link
|
||||
add constraint fk_admin_role_link_role_id foreign key (role_id) references admin_role (id) on delete cascade;
|
||||
|
||||
-- user_role_permission_link表外键
|
||||
alter table user_role_permission_link
|
||||
add constraint fk_user_role_permission_link_role_id foreign key (role_id) references user_role (id) on delete cascade;
|
||||
alter table user_role_permission_link
|
||||
add constraint fk_user_role_permission_link_permission_id foreign key (permission_id) references permission (id) on delete cascade;
|
||||
|
||||
-- admin_role_permission_link表外键
|
||||
alter table admin_role_permission_link
|
||||
add constraint fk_admin_role_permission_link_role_id foreign key (role_id) references admin_role (id) on delete cascade;
|
||||
alter table admin_role_permission_link
|
||||
add constraint fk_admin_role_permission_link_permission_id foreign key (permission_id) references permission (id) on delete cascade;
|
||||
|
||||
-- client_permission_link表外键
|
||||
alter table client_permission_link
|
||||
add constraint fk_client_permission_link_client_id foreign key (client_id) references client (id) on delete cascade;
|
||||
alter table client_permission_link
|
||||
add constraint fk_client_permission_link_permission_id foreign key (permission_id) references permission (id) on delete cascade;
|
||||
|
||||
-- edge表外键
|
||||
alter table edge
|
||||
add constraint fk_edge_proxy_id foreign key (proxy_id) references proxy (id) on delete cascade;
|
||||
|
||||
-- whitelist表外键
|
||||
alter table whitelist
|
||||
add constraint fk_whitelist_user_id foreign key (user_id) references "user" (id) on delete cascade;
|
||||
|
||||
-- channel表外键
|
||||
alter table channel
|
||||
add constraint fk_channel_user_id foreign key (user_id) references "user" (id) on delete cascade;
|
||||
alter table channel
|
||||
add constraint fk_channel_proxy_id foreign key (proxy_id) references proxy (id) on delete set null;
|
||||
alter table channel
|
||||
add constraint fk_channel_edge_id foreign key (edge_id) references edge (id) on delete set null;
|
||||
alter table channel
|
||||
add constraint fk_channel_resource_id foreign key (resource_id) references resource (id) on delete set null;
|
||||
|
||||
-- resource表外键
|
||||
alter table resource
|
||||
add constraint fk_resource_user_id foreign key (user_id) references "user" (id) on delete cascade;
|
||||
|
||||
-- resource_short表外键
|
||||
alter table resource_short
|
||||
add constraint fk_resource_short_resource_id foreign key (resource_id) references resource (id) on delete cascade;
|
||||
|
||||
-- resource_long表外键
|
||||
alter table resource_long
|
||||
add constraint fk_resource_long_resource_id foreign key (resource_id) references resource (id) on delete cascade;
|
||||
|
||||
-- trade表外键
|
||||
alter table trade
|
||||
add constraint fk_trade_user_id foreign key (user_id) references "user" (id) on delete set null;
|
||||
|
||||
-- refund表外键
|
||||
alter table refund
|
||||
add constraint fk_refund_trade_id foreign key (trade_id) references trade (id) on delete cascade;
|
||||
alter table refund
|
||||
add constraint fk_refund_product_id foreign key (product_id) references product (id) on delete set null;
|
||||
|
||||
-- bill表外键
|
||||
alter table bill
|
||||
add constraint fk_bill_user_id foreign key (user_id) references "user" (id) on delete cascade;
|
||||
alter table bill
|
||||
add constraint fk_bill_trade_id foreign key (trade_id) references trade (id) on delete set null;
|
||||
alter table bill
|
||||
add constraint fk_bill_resource_id foreign key (resource_id) references resource (id) on delete set null;
|
||||
alter table bill
|
||||
add constraint fk_bill_refund_id foreign key (refund_id) references refund (id) on delete set null;
|
||||
|
||||
-- coupon表外键
|
||||
alter table coupon
|
||||
add constraint fk_coupon_user_id foreign key (user_id) references "user" (id) on delete cascade;
|
||||
|
||||
-- endregion
|
||||
|
||||
-- ====================
|
||||
-- region 填充数据
|
||||
-- ====================
|
||||
|
||||
insert into client (
|
||||
client_id, client_secret, redirect_uri, spec, name, type
|
||||
)
|
||||
values ('web', '$2a$10$Ss12mXQgpYyo1CKIZ3URouDm.Lc2KcYJzsvEK2PTIXlv6fHQht45a', '', 3, 'web', 1)
|
||||
|
||||
-- endregion
|
||||
Reference in New Issue
Block a user