-
Notifications
You must be signed in to change notification settings - Fork 3
Project Structure
xun edited this page Mar 14, 2024
·
3 revisions
目前文件结构如下(以后可能会有变化):
.
├── api
│ └── v1
│ └── user.go
├── config
│ ├── config.go
│ ├── config_test.go
│ ├── dev-example.toml
│ ├── dev-xun.toml
│ └── proc.toml
├── log
│ └── logger.go
├── main.go
├── middleware
│ └── jwt.go
├── model
│ ├── admin.go
│ ├── auth.go
│ ├── model.go
│ ├── model_test.go
│ ├── result
│ │ ├── common.go
│ │ └── response.go
│ ├── template.go
│ ├── user.go
│ └── user_test.go
├── README.md
├── router
│ ├── router.go
│ └── router_test.go
├── service
│ ├── admin.go
│ └── user.go
└── util
├── common.go
├── common_test.go
├── jwt.go
└── jwt_test.go
-
api
就是所有的接口的入口 -
router
路由设计,定义路由path
对应的功能 -
log
日志处理 -
middleware
中间件 -
model
一堆实体类和返回结果处理 -
service
service 层 -
util
包含多种工具
common
目前包含邮件方面的代码。
user:
-- public."user" definition
-- Drop table
-- DROP TABLE public."user";
CREATE TABLE public."user" (
id serial4 NOT NULL,
created_at timestamp NOT NULL DEFAULT now(),
email varchar(255) NOT NULL,
uid varchar(255) NOT NULL,
qq_id varchar(255) NULL,
lark_id varchar(255) NULL,
github_id varchar(255) NULL,
wechat_id varchar(255) NULL,
is_deleted bool NOT NULL,
"password" varchar(255) NOT NULL,
CONSTRAINT user_pkey PRIMARY KEY (id)
);
admin(暂定):
-- public."admin" definition
-- Drop table
-- DROP TABLE public."admin";
CREATE TABLE public."admin" (
id serial4 NOT NULL,
created_at timestamp NOT NULL DEFAULT now(),
user_id varchar(255) NOT NULL,
CONSTRAINT admin_pkey PRIMARY KEY (id)
);
carrer records:
-- public.carrer_records definition
-- Drop table
-- DROP TABLE public.carrer_records;
CREATE TABLE public.carrer_records (
id serial4 NOT NULL,
user_id int4 NOT NULL, -- 与user表映射,表示某个用户的生涯记录
org_id int2 NOT NULL, -- 与orgnize表映射,表示用户该届所在的组织
grade int2 NOT NULL, -- 表示某一届(如:2023届)
is_delete bool NOT NULL, -- 假删
"position" varchar(2) NULL, -- 包括:部员、讲师、组长、部长、主席
CONSTRAINT carrer_records_pkey PRIMARY KEY (id)
);
-- Column comments
COMMENT ON COLUMN public.carrer_records.user_id IS '与user表映射,表示某个用户的生涯记录';
COMMENT ON COLUMN public.carrer_records.org_id IS '与orgnize表映射,表示用户该届所在的组织';
COMMENT ON COLUMN public.carrer_records.grade IS '表示某一届(如:2023届)';
COMMENT ON COLUMN public.carrer_records.is_delete IS '假删';
COMMENT ON COLUMN public.carrer_records."position" IS '包括:部员、讲师、组长、部长、主席';
organize:
-- public.organize definition
-- Drop table
-- DROP TABLE public.organize;
CREATE TABLE public.organize (
id int4 NOT NULL DEFAULT nextval('department_id_seq'::regclass),
dep varchar(255) NOT NULL,
org varchar(255) NULL,
CONSTRAINT department_pkey PRIMARY KEY (id)
);
profile:
-- public.profile definition
-- Drop table
-- DROP TABLE public.profile;
CREATE TABLE public.profile (
id serial4 NOT NULL,
user_id int4 NOT NULL, -- 与user表映射
nickname varchar(255) NOT NULL, -- 昵称
org_id int2 NOT NULL, -- 对应部门和组的信息(现在的职位,历史职位的信息在carrer_records中)
bio varchar(255) NULL, -- 自我介绍
email varchar(255) NOT NULL, -- 邮箱(默认展示)
badge json NULL, -- 纪念卡
link _varchar NULL, -- 个人链接(包括自己b站、博客、GitHub等账号链接)
avatar varchar(255) NULL, -- 头像(存储oss链接)
is_deleted bool NOT NULL, -- 假删
hide _varchar NULL, -- 选择隐藏的信息
CONSTRAINT profile_pkey PRIMARY KEY (id)
);
-- Column comments
COMMENT ON COLUMN public.profile.user_id IS '与user表映射';
COMMENT ON COLUMN public.profile.nickname IS '昵称';
COMMENT ON COLUMN public.profile.org_id IS '对应部门和组的信息(现在的职位,历史职位的信息在carrer_records中)';
COMMENT ON COLUMN public.profile.bio IS '自我介绍';
COMMENT ON COLUMN public.profile.email IS '邮箱(默认展示)';
COMMENT ON COLUMN public.profile.badge IS '纪念卡';
COMMENT ON COLUMN public.profile.link IS '个人链接(包括自己b站、博客、GitHub等账号链接)';
COMMENT ON COLUMN public.profile.avatar IS '头像(存储oss链接)';
COMMENT ON COLUMN public.profile.is_deleted IS '假删';
COMMENT ON COLUMN public.profile.hide IS '选择隐藏的信息';