first commit

This commit is contained in:
2026-03-31 17:28:07 +08:00
commit 36929736c1
27 changed files with 4630 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
go/
├── models/ # 仅负责数据模型相关
│ ├── 结构体(struct)定义
│ ├── 字段标签与表名(TableName)
│ └── 数据库初始化(注册模型、连接数据库)
├── services/ # 核心业务逻辑层
│ ├── 所有业务处理方法(含CRUD)
│ ├── 模型数据校验
│ ├── 密码等安全相关加解密
│ └── 与 models 层的数据库操作
└── controllers/ # 控制器层,专注 HTTP
├── 请求参数解析
├── 参数有效性验证
├── 调用 services 处理业务
└── 响应数据统一格式化与错误处理
## 分层架构开发规范
### Models 层
- 只负责定义数据库结构和初始化,包含结构体、字段标签与表名映射,数据库注册与连接。
- 不允许包含任何业务逻辑、数据校验、密码处理或和 HTTP 相关的代码。
### Services 层
- 实现所有业务流程、数据访问、校验和跨模型业务逻辑。
- 通过 models 操作数据库,仅返回 struct 或错误。
- 实现数据校验、密码加密等业务需求;不直接处理 HTTP 请求或响应。
### Controllers 层
- 只负责接收和解析 HTTP 请求,进行参数校验。
- 调用 services 执行业务逻辑。
- 负责返回统一格式的响应结果,对业务错误进行捕获和转义为 HTTP 状态码和消息。
### 其它要求
- 各层代码职责单一,禁止跨层调用(如 controllers 直接操作 models)。
- 统一异常处理,业务错误只在 services 返回,controllers 负责转换为 HTTP 响应。
- 保持 controller 轻量简洁,绝不包含业务处理逻辑。
- services 层所有数据变更、校验等均可单元测试。
- models 变动需清晰文档和数据库迁移脚本。
建议先设计 models 层,随后 services 层,最后实现 controllers,实现过程中注意分层原则。
+26
View File
@@ -0,0 +1,26 @@
## 接口文件
> 约定:每新增一个对外接口,都需要在本文件登记(端/方法/路径/描述/鉴权/入出参简述)。
### platform(平台端)
| 方法 | 路径 | 描述 |
|---|---|---|
| `POST` | `/platform/login` | 平台登录 |
| `POST` | `/platform/sendLoginCode` | 发送登录验证码 |
| `POST` | `/platform/loginBySms` | 手机号验证码登录 |
| `POST` | `/platform/logout` | 平台退出登录 |
| `GET` | `/platform/login/getGeetest3Infos` | 获取极验3.0配置 |
| `GET` | `/platform/login/getGeetest4Infos` | 获取极验4.0配置 |
| `GET` | `/platform/login/getOpenVerify` | 判断是否开启登录验证 |
| `POST` | `/platform/resetPassword` | 忘记密码重置 |
| `POST` | `/platform/sendResetCode` | 发送找回密码验证码 |
#### `/platform/login` 详情
- 入参(JSON body):`{ "username": string, "password": string }`
- 出参(JSON):`{ "success": boolean, "token": string }`
- 说明:当前使用占位登录逻辑,仅校验非空并返回平台用户 JWT,后续接真实用户/租户表
> 其余 `/platform/*` 登录相关接口(发送验证码、极验、重置密码等)目前仅返回 `501 Not Implemented`,后续按实际需求逐步补全。