Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
- 修复B-2:27个分页DTO字段名统一(list→items, page_size→size,删除total_pages) - 修复B-1:角色接口统一返回DTO(id小写,消除GORM大写字段名) - 修复C-1:套餐详情接口(GET /packages/:id)补充代理佣金字段 - 修复C-2:批量分配已存在记录由500改为静默跳过 - 修复C-3:创建系列授权响应在事务提交后构建,packages数组不再为空 - 新增C端开发测试登录接口(POST /api/c/v1/auth/dev-login,仅logging.development=true时生效) - 新增Hurl测试:card-price-verification-flow.hurl(导入卡→分配→C端价格验证) - 新增测试Excel数据文件和dev.env测试变量
1.9 KiB
1.9 KiB
项目画像(Hurl 测试自动生成用)
技术栈
- 语言: Go 1.25
- 框架: Fiber v2.52.9
- ORM: GORM v1.31.1
- JSON: sonic
路由定义位置
- 路由注册入口: internal/routes/routes.go → RegisterRoutesWithDoc()
- 按模块拆分: internal/routes/{module}.go
- 路由注册函数: Register(router, doc, basePath, method, path, handler, spec)
- Admin 域挂载: /api/admin(需认证)
- Auth 域挂载: /api/auth(部分公开)
- C端域挂载: /api/c/v1(JWT 认证)
Schema 定义位置
- DTO 目录: internal/model/dto/
- 命名规则: {module}_dto.go
- 字段标签: json / validate / description
- 通用 DTO: common.go(IDReq 等)
统一响应格式
{"code": 0, "msg": "success", "data": any, "timestamp": "RFC3339"}
- 成功: code=0, msg="success"
- 客户端错误: code=1001~1999, HTTP 4xx
- 服务端错误: code=2001~2999, HTTP 5xx
分页格式(两种)
模式 A(部分模块:shop, account, role)
{"items": [], "total": int, "page": int, "size": int}
模式 B(大部分模块:package, package_series, shop_series_grant 等)
{"list": [], "total": int, "page": int, "page_size": int, "total_pages": int}
认证方式
- 后台: POST /api/auth/login → $.data.access_token → Authorization: Bearer {token}
- C端: JWT → Authorization: Bearer {token}(微信 OAuth 获取)
默认测试账号
- 用户名: admin
- 密码: Admin@123456
- 手机号: 13800000000
服务端口
- 默认: 3000
错误码与 HTTP 状态码映射
- 1001 (CodeInvalidParam) → 400
- 1002 (CodeMissingToken) → 401
- 1003 (CodeInvalidToken) → 401
- 1005 (CodeForbidden) → 403
- 1006 (CodeNotFound) → 404
- 冲突类 (1013/1014/1022/1024/1031/1034/1036/1101) → 409
- 1008 (CodeTooManyRequests) → 429
- 未明确映射的 1xxx → 400
- 2xxx → 500