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

@@ -303,3 +303,29 @@ flowchart TD
10. **测试**:为 `Follow.Doing/Undo`(幂等与归属)、`Friend.ApplyDo/ApplyGet`(归属)、`TagFetch`(不再 panic`Fetch`(缓存三条分支)各补一条正例 + 一条边界用例(当前 0 测试)。
> 本报告只列出与现有实现直接相关的修复项,不引入新的分层或抽象封装。为 relation 引入"统一关系模型""好友/关注抽象层""DTO/VO 分层""缓存统一框架"一类改造不在建议范围内——上述 10 条都是对现有函数、SQL 与配置的最小修正。
## 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属本机既有问题
| 编号 | 级别 | 问题 | 处理结果 |
| --- | --- | --- | --- |
| R1 | 高 | 好友申请详情无归属校验,可读取他人申请与留言 | 已修复:查询条件加归属限定 |
| R2 | 高 | 可向任意申请追加留言(不校验归属与存在性) | 已修复:追加前校验该申请属于当前调用者 |
| R3 | 高 | 通过申请时不与申请记录比对,可单方面加任意人为好友 | 已修复:通过前先按 identity 查出申请记录并校验双方身份,再建立好友关系 |
| R4 | 高 | 好友删除/备注/置顶的归属条件列名与语义双错 | 已修复:按模型真实归属列修正,只能操作自己的关系记录 |
| R5 | 高 | `Follow.Undo``Match.DoIgnore` 无归属删除 | 已修复:删除条件加当前用户归属 |
| R6 | 高 | `TagDoUpdate` DEL 无归属限定、ADD 无归属与好友校验 | 已修复两处均加归属条件ADD 时校验好友关系存在 |
| R7 | 高 | `Friend.TagFetch` 对 nil reply 取字段地址必然 panic | 已修复:先判空再取字段 |
| R8 | 高 | `Friend.Fetch`/`ApplyFetch` 可返回 `(nil, nil)` 并在 `cacheErr` 分支 panic | 已修复:返回非 nil 空集合,修掉 nil 解引用 |
| R9 | 高 | 7 个接口按不存在的列 `relation_id` 查询 | 已修复:全部改为模型实际存在的列,好友与标签功能恢复可用 |
| R10 | 高 | `CollectionFriendData` 吞错误 + `Filed` 缺列 + `friend_total` 未统计 | 已修复:检查 `.Error`、修正列名、补上统计 |
| R11 | 高 | `TagMemberFetch` 表错 + 列错 + `Pluck` 非指针 dest | 已修复:修正表名列名,`Pluck` 传指针 |
| R12 | 高 | `GetrelationInfoDetailCardByMatch` SQL 无效 | 已修复:修正别名与 `ORDER BY` 位置,匹配列表可用 |
| R13 | 高 | `Match.DoJoin`/`DoIgnore` 操作关注表,匹配状态永不更新 | 已修复:改为更新匹配记录表的状态字段 |
### 未纳入本轮范围
报告中「中」「低」级别的项分页上限、死代码、README 与实现不符、单测缺失、可维护性等)**本轮未处理**;如需继续,按各报告第 8 节「修复建议」的顺序推进即可。
> 本轮整改未修改任何 `proto/*.proto` 与 `pb/*.go`,因此少数需要新增接口字段才能完整实现的项目(已在处理结果中标注)做了安全降级。