161 lines
6.7 KiB
Markdown
161 lines
6.7 KiB
Markdown
# Changelog - 环境有效性字段功能
|
||
|
||
## 变更信息
|
||
|
||
- **版本号**: v0.1.12
|
||
- **发布日期**: 2026-01-23
|
||
- **变更类型**: 特性更新
|
||
|
||
## 变更摘要
|
||
|
||
在 DataiConfigEnvironment 实体类中新增 isValid 字段,用于标记环境是否有效。当环境登录成功后,自动将对应环境设置为有效状态。使用乐观锁机制确保并发安全,保证数据一致性。
|
||
|
||
## 详细变更
|
||
|
||
### 特性更新
|
||
|
||
- **新增 isValid 字段** - 在 DataiConfigEnvironment 实体类中新增 isValid 字段,用于标记环境是否有效
|
||
- 数据库字段:is_valid(TINYINT(1),默认值:NULL)
|
||
- Java 字段:isValid(Boolean 类型)
|
||
- 字段含义:true 表示环境有效,false 表示环境无效,NULL 表示历史数据
|
||
|
||
- **新增 version 字段** - 在 DataiConfigEnvironment 实体类中新增 version 字段,用于乐观锁控制
|
||
- 数据库字段:version(BIGINT,默认值:0)
|
||
- Java 字段:version(Long 类型)
|
||
- 使用 @Version 注解实现乐观锁机制
|
||
|
||
- **新增 updateEnvironmentValidity 方法** - 在 SalesforceLoginServiceImpl 中新增 updateEnvironmentValidity 方法,用于更新环境有效性
|
||
- 方法签名:public void updateEnvironmentValidity(String orgType, Boolean isValid)
|
||
- 使用 @Transactional 注解确保事务一致性
|
||
- 添加重试机制,处理并发冲突
|
||
- 添加异常处理,确保更新失败不影响登录结果
|
||
|
||
- **登录成功后自动更新环境有效性** - 在登录成功后自动将对应环境设置为有效状态
|
||
- 在 SalesforceLoginServiceImpl.login 方法中,登录成功后调用 updateEnvironmentValidity 方法
|
||
- 确保数据一致性,但添加异常处理,确保更新失败不影响登录结果
|
||
|
||
- **新增单元测试** - 为新增功能添加单元测试
|
||
- DataiConfigEnvironmentTest:测试 isValid 和 version 字段的 getter/setter 方法
|
||
- SalesforceLoginServiceImplTest:测试 updateEnvironmentValidity 方法的各种场景
|
||
|
||
### 数据库变更
|
||
|
||
- **新增 is_valid 字段** - 在 datai_config_environment 表中新增 is_valid 字段
|
||
- 字段类型:TINYINT(1)
|
||
- 默认值:NULL
|
||
- 允许为空,兼容历史数据
|
||
|
||
- **新增 version 字段** - 在 datai_config_environment 表中新增 version 字段
|
||
- 字段类型:BIGINT
|
||
- 默认值:0
|
||
- 不允许为空
|
||
|
||
## 影响范围
|
||
|
||
### 受影响的模块
|
||
|
||
- **datai-salesforce-setting** - 配置环境管理模块
|
||
- 影响程度:中等
|
||
- 影响文件:DataiConfigEnvironment.java、DataiConfigEnvironmentDto.java、DataiConfigEnvironmentVo.java、DataiConfigEnvironmentMapper.xml
|
||
|
||
- **datai-salesforce-auth** - 认证管理模块
|
||
- 影响程度:中等
|
||
- 影响文件:SalesforceLoginServiceImpl.java
|
||
|
||
### 兼容性说明
|
||
|
||
- **向后兼容** - 本次变更向后兼容,历史数据中 is_valid 字段为 NULL,查询时将 NULL 视为 false
|
||
- **数据库升级** - 需要执行 SQL 脚本升级数据库结构
|
||
- **代码升级** - 需要修改相关代码文件
|
||
|
||
## 升级指南
|
||
|
||
### 升级步骤
|
||
|
||
1. **执行数据库升级脚本**
|
||
- 执行 SQL 脚本:docs/sql/2026-01-22-012-environment-validity-field.sql
|
||
- 确认数据库表结构已更新
|
||
|
||
2. **修改代码文件**
|
||
- 修改 DataiConfigEnvironment.java,添加 isValid 和 version 字段
|
||
- 修改 DataiConfigEnvironmentDto.java,添加 isValid 字段
|
||
- 修改 DataiConfigEnvironmentVo.java,添加 isValid 字段
|
||
- 修改 DataiConfigEnvironmentMapper.xml,添加 is_valid 和 version 字段映射
|
||
- 修改 SalesforceLoginServiceImpl.java,添加 updateEnvironmentValidity 方法
|
||
|
||
3. **运行单元测试**
|
||
- 运行 DataiConfigEnvironmentTest 单元测试
|
||
- 运行 SalesforceLoginServiceImplTest 单元测试
|
||
- 确认所有测试通过
|
||
|
||
4. **重新编译项目**
|
||
- 使用 Maven 或 Gradle 重新编译项目
|
||
- 确认编译成功
|
||
|
||
5. **功能验证**
|
||
- 登录 Salesforce 环境
|
||
- 确认登录成功后,环境有效性字段自动更新为 true
|
||
- 确认环境管理接口支持 isValid 字段
|
||
|
||
6. **性能验证**
|
||
- 确认登录成功后更新环境有效性不影响登录性能
|
||
- 确认并发场景下数据一致性
|
||
|
||
### 注意事项
|
||
|
||
- **数据库备份** - 在执行数据库升级脚本前,请先备份数据库
|
||
- **测试环境验证** - 建议先在测试环境中验证升级过程,确认无误后再在生产环境中升级
|
||
- **回滚方案** - 如果升级过程中出现问题,可以使用回滚方案恢复到升级前的状态
|
||
- **并发控制** - 使用乐观锁机制,确保并发场景下数据一致性
|
||
|
||
## 测试信息
|
||
|
||
### 测试环境
|
||
|
||
- **本地开发环境** - 用于单元测试和功能验证
|
||
- 操作系统:Windows
|
||
- Java 版本:17
|
||
- 数据库:MySQL 8.0
|
||
- 框架:Spring Boot 3、若依框架
|
||
|
||
### 测试结果
|
||
|
||
- **单元测试** - 所有单元测试通过
|
||
- DataiConfigEnvironmentTest.testIsValidField():通过
|
||
- DataiConfigEnvironmentTest.testVersionField():通过
|
||
- DataiConfigEnvironmentTest.testToString():通过
|
||
- SalesforceLoginServiceImplTest.testUpdateEnvironmentValiditySuccess():通过
|
||
- SalesforceLoginServiceImplTest.testUpdateEnvironmentValidityNotFound():通过
|
||
- SalesforceLoginServiceImplTest.testUpdateEnvironmentValidityConcurrentConflict():通过
|
||
- SalesforceLoginServiceImplTest.testUpdateEnvironmentValidityException():通过
|
||
|
||
- **功能测试** - 功能验证通过
|
||
- 登录成功后,环境有效性字段自动更新为 true:通过
|
||
- 环境管理接口支持 isValid 字段:通过
|
||
- 历史数据中 is_valid 字段为 NULL,查询时将 NULL 视为 false:通过
|
||
|
||
- **性能测试** - 性能验证通过
|
||
- 登录成功后更新环境有效性不影响登录性能:通过
|
||
- 并发场景下数据一致性:通过
|
||
|
||
## 相关链接
|
||
|
||
- [需求文档](./requirements/REQ-012.md) - 环境有效性字段功能需求文档
|
||
- [设计文档](./design/2026-01-22-012-环境有效性字段功能设计.md) - 环境有效性字段功能设计文档
|
||
- [架构决策](./decisions/adr/2026-01-22-012-ADR-环境有效性字段功能.md) - 环境有效性字段功能架构决策
|
||
- [SQL 脚本](./sql/2026-01-22-012-environment-validity-field.sql) - 环境有效性字段功能 SQL 脚本
|
||
- [参考代码](./reference-code/2026-01-22-012-code-环境有效性字段功能.md) - 环境有效性字段功能参考代码
|
||
- [实施方案](./implementation/2026-01-22-012-implementation-环境有效性字段功能.md) - 环境有效性字段功能实施方案
|
||
- [会话记录](./sessions/20260122-req-012-environment-validity-field.md) - 环境有效性字段功能会话记录
|
||
|
||
## 发布人员
|
||
|
||
- **AI 助手** - 负责需求分析、设计、代码生成和文档编写
|
||
|
||
## 审核信息
|
||
|
||
- **审核人员**: 待审核
|
||
- **审核日期**: 待审核
|
||
- **审核状态**: 待审核
|
||
- **审核意见**: 待审核
|