datai/docs/archive/changelog/2026-01-25-002-07-changelog.md

9.6 KiB
Raw Blame History

变更日志:数字格式化功能

元数据

  • 变更编号2026-01-25-002-07-changelog
  • 需求编号2026-01-21-002-07
  • 功能名称:数字格式化功能
  • 版本3.8.5
  • 发布日期2026-01-25
  • 变更类型:新功能
  • 状态:已完成
  • 阶段:阶段 8变更日志

变更概述

本次更新新增了数字格式化功能,支持根据用户地区显示数字,支持常用数字格式、千分位分隔符、小数位格式化、百分比格式化、科学计数法。后端使用 Java 的 NumberFormat 和 DecimalFormat 进行数字格式化,支持多语言数字显示。

新增功能

1. 数字格式化功能

2. 用户数字格式偏好管理

3. 系统默认数字格式配置

  • 功能描述:支持在配置文件中设置系统默认数字格式
  • 影响范围datai-admin
  • 相关文件

4. 缓存机制

  • 功能描述:使用 Redis 缓存用户数字格式偏好,提高查询性能
  • 影响范围datai-common、datai-system
  • 相关文件

5. 单元测试

优化改进

1. 切面顺序控制

  • 改进描述:为 NumberFormatAspect 添加 @Order(3) 注解,确保数字格式化在时区转换和日期格式化之后执行
  • 影响范围datai-framework
  • 相关文件

2. 线程安全优化

  • 改进描述:使用 ConcurrentHashMap 缓存 DecimalFormat 实例,确保线程安全
  • 影响范围datai-common
  • 相关文件

3. 缓存一致性优化

  • 改进描述:用户切换数字格式偏好时立即清除缓存,确保缓存一致性
  • 影响范围datai-system
  • 相关文件

数据库变更

1. 扩展 SysUser 表

  • 变更类型:新增字段
  • 变更内容
    ALTER TABLE sys_user ADD COLUMN number_format VARCHAR(50) DEFAULT 'COMMA' COMMENT '数字格式COMMA、DOT、SPACE、CUSTOM';
    ALTER TABLE sys_user ADD COLUMN decimal_places INT DEFAULT 2 COMMENT '小数位偏好0-10';
    
  • 影响范围sys_user 表
  • 相关文件

配置变更

本次更新无配置变更。

API 变更

1. 新增用户数字格式偏好管理接口

  • 接口路径/system/user/numberFormat
  • 请求方法GET
  • 接口描述:获取当前用户数字格式偏好
  • 响应示例
    {
      "code": 200,
      "msg": "操作成功",
      "data": {
        "userId": 1,
        "numberFormat": "COMMA",
        "decimalPlaces": 2
      }
    }
    

2. 新增切换用户数字格式偏好接口

  • 接口路径/system/user/switchNumberFormat
  • 请求方法POST
  • 接口描述:切换用户数字格式偏好
  • 请求示例
    {
      "numberFormat": "COMMA",
      "decimalPlaces": 2
    }
    
  • 响应示例
    {
      "code": 200,
      "msg": "操作成功"
    }
    

3. 新增获取系统默认数字格式接口

  • 接口路径/system/config/defaultNumberFormat
  • 请求方法GET
  • 接口描述:获取系统默认数字格式
  • 响应示例
    {
      "code": 200,
      "msg": "操作成功",
      "data": {
        "numberFormat": "COMMA",
        "decimalPlaces": 2
      }
    }
    

4. 新增获取常用数字格式列表接口

  • 接口路径/system/config/commonNumberFormats
  • 请求方法GET
  • 接口描述:获取常用数字格式列表
  • 响应示例
    {
      "code": 200,
      "msg": "操作成功",
      "data": {
        "numberFormats": {
          "COMMA": "1,000.00",
          "DOT": "1.000,00",
          "SPACE": "1 000.00"
        }
      }
    }
    

依赖变更

本次更新无新增依赖,使用 Java 内置的 NumberFormat 和 DecimalFormat 进行数字格式化。

兼容性说明

1. 向后兼容性

  • 本次更新为新增功能,不影响现有功能
  • 现有 API 接口保持不变
  • 数据库变更为新增字段,不影响现有数据

2. 升级说明

3. 回滚说明

  • 如需回滚,执行以下步骤:
    1. 删除新增的数据库字段:ALTER TABLE sys_user DROP COLUMN number_format; ALTER TABLE sys_user DROP COLUMN decimal_places;
    2. 删除新增的代码文件
    3. 恢复修改的文件
    4. 重启应用

已知问题

本次更新无已知问题。

后续计划

  1. 进行集成测试测试用户数字格式偏好接口、系统默认数字格式接口、AOP 切面功能、缓存功能、多语言数字显示功能
  2. 进行手动测试:测试不同数字格式的格式化、多语言数字显示、用户数字格式偏好切换、缓存功能、嵌套对象格式化
  3. 创建复盘文档:2026-01-25-002-07-retro.md
  4. 创建 API 文档:2026-01-25-002-07-api.md

相关文档

变更统计

  • 新增文件6 个
  • 修改文件6 个
  • 新增 API 接口4 个
  • 数据库变更2 个字段
  • 配置变更0 个配置项
  • 单元测试2 个测试类30 个测试用例