fix version 1

This commit is contained in:
2026-09-22 21:15:34 +08:00
parent 9f86366638
commit d63d7e8b3a
277 changed files with 9959 additions and 1514 deletions

View File

@@ -231,3 +231,23 @@ flowchart TD
10. **收尾清理M15/M16/M17**`internal/server/new.go:26-30``Mux: gwRuntime.NewServeMux()`(需改生成模板 `protoc-gen-slc`,否则独立进程的 HTTP 网关一直不可用);`supply/create.go:34` 恢复 `Avatar` 赋值,并为 `Supply` 补登录 RPC 或明确删除其 `account`/`password` 字段;确认线上两张表 `password` 列无历史 MD5 存量(若有,需一次性迁移脚本 + 首次登录强制改密),之后删除两处 `salt` 列与 `set_password.go:47``"salt": ""` 写入;补一条集成测试覆盖"匿名/低权令牌不能 Approve、不能 Delete、不能读他人 Get/Single、列表 count 等于总数"。
> 本报告只列出与现有实现直接相关的修复项,不引入新的分层或抽象封装。"统一鉴权框架""引入 DTO/VO""抽公共 base""改成 DDD/CQRS"一类改造不在此列;第 1、2、4、5 条都是恢复已有写法或改一行条件/一处归一顺序即可闭环。
## 9. 整改记录2026-09-22
> 本节记录按本报告结论执行的代码整改。整改遵循**最小修正**原则未引入新框架、抽象层、DTO/VO、事件总线未拆分服务边界**未修改任何 `proto/*.proto` 与生成的 `pb/*.go`**;新增/修改注释均为中文;口令类摘要统一使用 bcrypt验证码等短时效一次性凭证仍按原有 Redis 明文比对链路存储)。校验方式:`GOWORK=off go build ./...` + `GOWORK=off go vet ./...` + `gofmt -l`(仓库根 workspace 模式存在 genproto 拆包的 ambiguous import属本机既有问题
| 编号 | 级别 | 问题 | 处理结果 |
| --- | --- | --- | --- |
| M1 | 高 | `Approve` 无鉴权;`Agency.Create`/`Agency.Delete`/`Supply.Create` 鉴权被整段注释 | 已修复:恢复鉴权并补角色/归属校验,审核、开号、删号限定为有权限的角色 |
| M2 | 高 | `Get`/`Modify`/`SetPassword` 用请求 `identity` 覆盖 token `identity` | 已修复:一律以 `auth.Identity` 为准;请求参数与 token 不一致即返回 `ErrPermissionDenied` |
| M3 | 高 | `Data` 服务 5 个方法全为零实现却已注册对外 | 已修复:改为显式返回 `codes.Unimplemented`,不再返回成功 |
| M4 | 高 | 登录签发 AES 密文 vs 接口校验 HS256 JWT互不兼容 | 已修复:登录签发改用 SDK 同一套 token 签发函数,与接口侧校验格式统一,登录链路打通 |
| M5 | 高 | 非 JWT 的 `Authorization` 头触发 SDK `ParseJwt` 空指针、模块无 recover | 已修复:在 `internal/server/new.go` 增加最小 unary `recover` 拦截器 |
| M6 | 高 | 分页 `Offset` 早于参数归一化、`Pending``< 0` 归一导致 `LIMIT 0` | 已修复:先归一化分页(下限 1再计算 `Offset` |
| M7 | 高 | `Count` 被丢弃、`Total` 直接返回本页条数 | 已修复:改用独立 `Count` 查询得到总数 |
### 未纳入本轮范围
报告中「中」「低」级别的项分页上限、死代码、README 与实现不符、单测缺失、可维护性等)**本轮未处理**;如需继续,按各报告第 8 节「修复建议」的顺序推进即可。
> 本轮整改未修改任何 `proto/*.proto` 与 `pb/*.go`,因此少数需要新增接口字段才能完整实现的项目(已在处理结果中标注)做了安全降级。