114 lines
5.0 KiB
Markdown
114 lines
5.0 KiB
Markdown
# 变更记录:货币格式化功能
|
||
|
||
## 变更信息
|
||
|
||
- **版本号**: v0.2.0
|
||
- **发布日期**: 2026-01-25
|
||
- **变更类型**: 特性更新
|
||
|
||
## 变更摘要
|
||
|
||
本次变更实现了货币格式化功能,支持多种货币的格式化显示、实时汇率转换、用户货币偏好管理等功能。通过 AOP 切面在 Service 层自动进行货币格式化,提供了灵活的货币配置和缓存机制,提升了系统的国际化支持能力。
|
||
|
||
## 详细变更
|
||
|
||
### 特性更新
|
||
|
||
- **货币格式化功能** - 实现了基于 Java DecimalFormat 的货币格式化,支持货币符号、小数位数、千分位分隔符等格式化选项
|
||
- **多货币显示** - 支持在单个字段中同时显示多种货币金额,自动进行汇率转换
|
||
- **实时汇率转换** - 实现了汇率查询和转换功能,支持批量汇率转换
|
||
- **用户货币偏好** - 扩展了用户表,添加了货币代码字段,支持用户级别的货币偏好设置
|
||
- **系统默认货币** - 实现了系统默认货币配置,支持通过配置文件和数据库设置默认货币
|
||
- **汇率管理** - 实现了汇率数据的管理功能,包括汇率查询、更新、缓存等
|
||
- **AOP 自动格式化** - 通过 @CurrencyFormat 注解和 AOP 切面,在 Service 层自动进行货币格式化
|
||
- **缓存机制** - 实现了汇率、货币列表、默认货币的 Redis 缓存,提高了系统性能
|
||
|
||
### 数据库变更
|
||
|
||
- **创建汇率表** - 创建了 sys_exchange_rate 表,用于存储汇率数据
|
||
- **扩展用户表** - 在 sys_user 表中添加了 currency_code 字段,默认值为 CNY
|
||
- **添加索引** - 为汇率表和用户表添加了必要的索引,提高查询性能
|
||
|
||
### API 变更
|
||
|
||
- **获取用户货币偏好** - GET /system/user/currency
|
||
- **切换用户货币偏好** - POST /system/user/switchCurrency
|
||
- **汇率转换** - POST /system/exchangeRate/convert
|
||
- **批量汇率转换** - POST /system/exchangeRate/batchConvert
|
||
- **更新汇率(手动)** - POST /system/exchangeRate/update
|
||
- **更新汇率(API)** - POST /system/exchangeRate/updateFromApi
|
||
|
||
## 影响范围
|
||
|
||
### 受影响的模块
|
||
|
||
- **datai-common** - 新增 CurrencyUtils、CurrencyConstants、@CurrencyFormat 注解
|
||
- **datai-framework** - 新增 CurrencyFormatAspect AOP 切面
|
||
- **datai-system** - 新增 SysExchangeRate 相关实体、Mapper、Service
|
||
- **datai-admin** - 新增 SysExchangeRateController,扩展 SysUserController
|
||
- **数据库** - 新增 sys_exchange_rate 表,扩展 sys_user 表
|
||
|
||
### 兼容性说明
|
||
|
||
- **向后兼容** - 本次变更完全向后兼容,不影响现有功能
|
||
- **数据库迁移** - 需要执行 SQL 脚本创建新表和扩展现有表
|
||
- **配置变更** - 需要在配置文件中添加系统默认货币配置
|
||
|
||
## 升级指南
|
||
|
||
### 升级步骤
|
||
|
||
1. **执行数据库脚本** - 执行 `2026-01-25-002-05-货币格式化.sql` 脚本,创建汇率表和扩展用户表
|
||
2. **更新配置文件** - 在配置文件中添加系统默认货币配置(sys.default.currency)
|
||
3. **部署代码** - 部署新增和修改的 Java 代码文件
|
||
4. **初始化汇率数据** - 插入初始汇率数据到 sys_exchange_rate 表
|
||
5. **测试功能** - 测试货币格式化、汇率转换、用户货币偏好等功能
|
||
|
||
### 注意事项
|
||
|
||
- **汇率数据初始化** - 确保在系统启动前初始化必要的汇率数据
|
||
- **缓存预热** - 建议在系统启动时预热汇率缓存,提高首次访问性能
|
||
- **汇率更新策略** - 根据业务需求配置汇率更新策略(手动更新或 API 自动更新)
|
||
- **货币代码验证** - 确保用户设置的货币代码在支持的货币列表中
|
||
|
||
## 测试信息
|
||
|
||
### 测试环境
|
||
|
||
- **本地环境** - Windows 10, IDEA
|
||
- **项目环境** - DataI v1.0.0
|
||
- **数据库** - MySQL 8.3.0
|
||
- **缓存** - Redis
|
||
|
||
### 测试结果
|
||
|
||
- **货币格式化** - 所有支持的货币格式化功能正常
|
||
- **汇率转换** - 单个和批量汇率转换功能正常
|
||
- **用户货币偏好** - 用户货币偏好设置和切换功能正常
|
||
- **AOP 切面** - Service 层自动货币格式化功能正常
|
||
- **缓存机制** - 汇率、货币列表、默认货币缓存功能正常
|
||
- **性能测试** - 货币格式化性能满足要求(< 10ms)
|
||
|
||
## 相关链接
|
||
|
||
- [需求文档](../requirements/2026-01-21-002-05-货币格式化需求.md)
|
||
- [设计文档](../design/2026-01-21-002-05-货币格式化设计.md)
|
||
- [决策记录](../decisions/adr/2026-01-25-002-05-ADR-货币格式化技术选型.md)
|
||
- [SQL 脚本](../sql/2026-01-25-002-05-货币格式化.sql)
|
||
- [提示词文档](../prompts/2026-01-25-002-05-prompt-货币格式化功能.md)
|
||
- [代码文档](../reference-code/2026-01-25-002-05-code-货币格式化功能.md)
|
||
- [实施方案](../implementation/2026-01-25-002-05-implementation-货币格式化功能.md)
|
||
- [会话记录](../sessions/2026-01-25-002-05-session.md)
|
||
|
||
## 发布人员
|
||
|
||
- **AI Assistant** - 代码生成和文档编写
|
||
- **SSOT 架构师** - 需求定义、方案设计、架构决策
|
||
|
||
## 审核信息
|
||
|
||
- **审核人员**: 待指定
|
||
- **审核日期**: 2026-01-25
|
||
- **审核状态**: 待审核
|
||
- **审核意见**: 无
|