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.

30 lines
1.9 KiB

# 01 — BaseDTO 重构 + IBaseService 清理
**What to build:** BaseDTO 变为 abstract 类,只保留 `id`、`createTime`、`updateTime` 三个字段(均加 `@JsonInclude(NON_NULL)`),移除 `creatorId`、`updaterId`、`deleted` 及其默认值,移除泛型 `toEntity(Supplier)` 方法。IBaseService 上调用 `dto.toEntity()``saveDTO`/`updateDTO` 死代码随之删除。README §4 同步更新 BaseDTO 使用说明。这是 ADR-0017 落地的前置条件——当前 BaseDTO 仍是未改造版本,不先重构则 `creatorId`/`updaterId`/`deleted` 会在出参侧泄露给前端。
**Blocked by:** None — 可立即开始
**Status:** resolved
## Answer
Commit: ae103a1
改动文件:
- `BaseDTO.java` — 改为 abstract,仅保留 id/createTime/updateTime(@JsonInclude NON_NULL),移除 creatorId/updaterId/deleted/toEntity(Supplier)
- `IBaseService.java` — 删除 saveDTO/updateDTO 死代码及 BaseDTO/Supplier imports
- `BeanCopyUtils.java` — javadoc 移除 BaseDTO.toEntity 引用
- `README.md` — §3/§4/§10 同步更新
- `ResourceController.java` / `RoleController.java` — 修复预存 UTF-8 BOM 问题
验证:mvn clean compile 全 6 模块 SUCCESS;mvn test 45 tests 0 failures 0 errors。
- [ ] BaseDTO 改为 `abstract`,不可直接实例化
- [ ] 移除 `creatorId`、`updaterId`、`deleted` 字段及其默认值
- [ ] 移除泛型 `toEntity(Supplier)` 方法——转换方法下沉到各 DTO 类
- [ ] `id`、`createTime`、`updateTime` 三个字段加 `@JsonInclude(JsonInclude.Include.NON_NULL)`
- [ ] IBaseService 中 `saveDTO`、`updateDTO` 两个 default 方法删除(因依赖已移除的 `toEntity`
- [ ] BeanCopyUtils 中引用 `BaseDTO.toEntity` 的注释同步更新
- [ ] README §4 BaseDTO 使用说明更新:abstract 类,仅适用于资源型出参,业务类继承、统计/登录类不继承
- [ ] 项目编译通过,无引用 `BaseDTO.toEntity` 或已删除字段的残留