Files
contract-manager/docs/task/server模块service缓存调整为Vo对象/TODO_server模块service缓存调整为Vo对象.md
songqq 49413ad473 refactor(service): 统一Service缓存为VO对象并优化关联实体处理
重构Service类实现,将QueryService泛型参数调整为VO类型,确保缓存VO对象而非实体。优化关联实体处理逻辑,减少重复代码。修改findById方法返回VO对象,新增getById方法获取实体。更新相关调用点以适配新接口。

调整WebSocket处理、控制器及Service实现,确保数据类型一致性。完善文档记录重构过程及发现的问题。为后续优化提供基础架构支持。
2025-09-29 19:31:51 +08:00

2.7 KiB
Raw Blame History

TODO - Server模块service缓存调整为Vo对象

1. 批量修改其他Service类

按照CompanyFileTypeService的修改模式批量修改以下Service类

  • CompanyCustomerFileTypeService
  • CustomerFileTypeService
  • CompanyFileService
  • CompanyCustomerFileService

操作指引:

  1. 对于每个Service类

    • 调整QueryService接口的泛型参数为对应的Vo类
    • 重构findById方法返回类型改为对应的Vo类并添加@Cacheable注解
    • 保留getById方法用于获取实体对象
    • 让实体类继承Voable接口并实现toVo方法完成从实体到Vo的转换
    • 确保所有标注@Cacheable注解的方法的返回参数类型不为Model类型全部调整为Vo类型
    • findAll(JsonNodePageable)方法的返回类型调整为Page并使用实体类自带的toVo方法进行转换
    • findAll(SpecificationPageable)方法的返回类型保持为Page
    • 仅保留一个save(Model)方法,用于保存实体对象
    • 不创建独立的toVo方法:直接使用实体类自带的toVo()方法进行转换
  2. 确保每个Service类的修改都符合以下要求

    • 保持接口兼容性
    • 正确使用缓存注解
    • 实现实体与Vo之间的正确转换

2. Redis缓存清理

在所有Service类修改完成后需要清理Redis中的缓存数据以确保新的缓存策略能够正确生效。

操作指引:

  1. 开发一个缓存清理工具或脚本
  2. 执行缓存清理操作,清除所有相关的缓存键
  3. 验证清理结果,确保缓存已被正确清除

3. WebSocket服务兼容性处理

检查并确保WebSocket服务能够正确处理Vo对象避免序列化问题。

操作指引:

  1. 分析WebSocket服务的代码
  2. 确保WebSocket服务能够正确序列化和反序列化Vo对象
  3. 必要时进行相应的修改

4. 测试验证

对所有修改进行全面的测试验证,确保功能正常。

操作指引:

  1. 编写单元测试和集成测试
  2. 执行功能测试验证各Service类的功能是否正常
  3. 执行性能测试,验证缓存策略的效果
  4. 记录测试结果

5. 文档更新

完成所有修改后更新相关文档包括系统架构文档、API文档等。

操作指引:

  1. 整理所有修改内容
  2. 更新系统架构文档
  3. 更新API文档
  4. 更新用户手册

6. 部署计划

制定详细的部署计划,确保修改能够顺利上线。

操作指引:

  1. 确定部署时间窗口
  2. 制定回滚策略
  3. 准备部署脚本
  4. 通知相关人员

7. 上线后监控

上线后进行持续监控,确保系统运行稳定。

操作指引:

  1. 设置监控指标
  2. 配置告警机制
  3. 定期检查系统运行状态
  4. 及时处理异常情况