You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.7 KiB
5.7 KiB
个人头像/企业 Logo:开发验证记录
日期:2026-10-27。范围:后端开发与定向回归,不是发布验收报告。
源码与边界
仓库:C:/Users/15642/Desktop/zhilai,HEAD 为 c6ccab54044c7df580a80cb140391c4d2a69c340。本轮开始时已有注销、评分、配置与文档等未提交修改;不把这些已有修改登记为本轮成果,也没有清理或覆盖它们。
新增 V63,不修改 V1~V62 历史迁移;无新增依赖。图片存数据库,不增加宿主机目录或容器挂载;不修改 MySQL 的既有 32 MiB 配置。未改前端、未提交、未推送、未触发 Jenkins、未发布。
已完成
- 上传自己的个人头像、上传自己的企业 Logo、分别删除和二进制读取。
- JPEG/PNG 扩展名/MIME/真实格式校验,2 MiB、4096 单边、400 万像素上限,最长边 512 重编码 JPEG,去除原始元数据。
- 个人头像与公司 Logo 独立;/auth/me 与现有会话摘要读取用户/公司当前引用。
- 私有头像只允许本人或符合当前 DIRECT 沟通授权的成员读取;第三方、拉黑、禁用、未选择身份、邀约隐私均有回归。
- 替换后新 URL、旧 URL 404、no-store;事务回滚恢复旧图,用户锁串行化并发替换。
- 企业普通资料更新也锁定企业行,避免旧快照覆盖并发 Logo 更新。
- 账号注销完成时清除二进制,物理删除时外键级联清理。
- 静态契约新增 3 paths / 5 operations,总量 216/266;同步受影响计数与身份门禁测试。
定向测试
以 Surefire XML/txt 为准;下表是不同测试类的汇总,重复执行不累计:
| 测试类 | tests | failures/errors/skipped |
|---|---|---|
| ProfileImageIntegrationTest | 18 | 0/0/0 |
| CompanyServiceTest | 11 | 0/0/0 |
| CompanyControllerMvcTest | 1 | 0/0/0 |
| CompanySizeDisplayIntegrationTest | 8 | 0/0/0 |
| CompanyResumeDownloadIntegrationTest | 19 | 0/0/0 |
| UnifiedRegistrationIntegrationTest | 13 | 0/0/0 |
| WorkExperienceOptimizationSecurityIntegrationTest | 9 | 0/0/0 |
| AccountDeletionPersistenceIntegrationTest | 9 | 0/0/0 |
| IdentityPolicyTest | 27 | 0/0/0 |
| 合计 | 115 | 0/0/0 |
ProfileImageIntegrationTest 校验整份运行时路径/方法集与静态契约一致,额外校验本批五个 operationId。静态 python docs/verify_openapi.py 与 git diff --check 均通过。
开发阶段第一次编译发现本批 SecurityRequirement 注解缺少必填 name,已修正;当时未执行测试,不把该次结果计入通过。首次静态 verifier 还发现 /auth 路径精确白名单缺少新头像路径,已同步并补专项断言。修正后重新运行,保留 target 下原始开发日志。
原始输出:
- mydreamjob-server/target/profile-image-test.log:首次编译失败。
- mydreamjob-server/target/profile-image-test-run2.log:初轮头像/企业服务回归。
- mydreamjob-server/target/profile-image-regression.log:八类扩大回归,88 项。
- mydreamjob-server/target/profile-image-final.log:头像与身份策略复跑,45 项;与上表有重叠,不另累计。
- mydreamjob-server/target/profile-image-contract-final.log:加强五个 operationId 比对后的头像复跑。
- mydreamjob-server/target/surefire-reports/:各类 XML/txt;后续 Maven 执行可能更新,独立验收时应自行归档。
尚未执行
- ProfileImageMySqlMigrationTest 的 MySQL 8.4 / 5.7.36 两个 V62→V63 专项:Docker 引擎当前不可连接(dockerDesktopLinuxEngine 管道不存在)。测试代码已增加,未执行,不计入通过。
- 完整 clean verify。
- 同次构建 JAR HTTP 黑盒、重启持久化。
- 前端图片组件、刷新/缓存策略、双设备真机联调。
H2 集成测试运行了 V63,但不能替代双真实 MySQL。当前结论仅为“后端实现及定向回归完成”,不能登记为完整验收通过或已上线。
本轮精确文件范围
新增:
- mydreamjob-server/src/main/java/com/mydreamjob/profileimage/ProfileImage.java
- mydreamjob-server/src/main/java/com/mydreamjob/profileimage/ProfileImageRepository.java
- mydreamjob-server/src/main/java/com/mydreamjob/profileimage/ProfileImageValidator.java
- mydreamjob-server/src/main/java/com/mydreamjob/profileimage/ProfileImageService.java
- mydreamjob-server/src/main/java/com/mydreamjob/profileimage/ProfileImageController.java
- mydreamjob-server/src/main/resources/db/migration/V63__profile_images.sql
- mydreamjob-server/src/test/java/com/mydreamjob/profileimage/ProfileImageIntegrationTest.java
- mydreamjob-server/src/test/java/com/mydreamjob/profileimage/ProfileImageMySqlMigrationTest.java
- docs/profile-images-frontend-handover-20261027.md
- docs/profile-images-development-verification-20261027.md
修改:
- mydreamjob-server/src/main/java/com/mydreamjob/company/CompanyRepository.java
- mydreamjob-server/src/main/java/com/mydreamjob/company/CompanyService.java
- mydreamjob-server/src/main/java/com/mydreamjob/config/SecurityConfig.java
- mydreamjob-server/src/main/java/com/mydreamjob/auth/identity/IdentityAccessFilter.java
- mydreamjob-server/src/main/java/com/mydreamjob/deletion/AccountDeletionCompletionWorker.java
- docs/openapi-rc.json
- docs/verify_openapi.py
- mydreamjob-server/src/test/java/com/mydreamjob/company/CompanyServiceTest.java
- mydreamjob-server/src/test/java/com/mydreamjob/application/CompanyResumeDownloadIntegrationTest.java
- mydreamjob-server/src/test/java/com/mydreamjob/auth/identity/UnifiedRegistrationIntegrationTest.java
- mydreamjob-server/src/test/java/com/mydreamjob/resume/optimization/WorkExperienceOptimizationSecurityIntegrationTest.java
此清单是本轮开发范围,不自动授权提交或发布。独立验收应锁定这些文件的哈希,同时保留原工作区既有改动。