224 lines
9.0 KiB
Markdown
224 lines
9.0 KiB
Markdown
|
|
# Requirements - 环境有效性字段功能
|
|||
|
|
|
|||
|
|
## 需求信息
|
|||
|
|
|
|||
|
|
- **需求名称**: 环境有效性字段功能
|
|||
|
|
- **需求类型**: 功能需求
|
|||
|
|
- **需求编号**: REQ-012
|
|||
|
|
- **父需求**: 无
|
|||
|
|
- **创建日期**: 2026-01-22
|
|||
|
|
- **需求版本**: v1.0.0
|
|||
|
|
- **需求提出人**: 系统管理员
|
|||
|
|
- **需求状态**: 已完成
|
|||
|
|
|
|||
|
|
## 输入引用
|
|||
|
|
|
|||
|
|
引用相关的 docs 文档链接:
|
|||
|
|
|
|||
|
|
- [DataiConfigEnvironment.java](../../datai-salesforce-setting/src/main/java/com/datai/setting/model/domain/DataiConfigEnvironment.java) - 配置环境实体类
|
|||
|
|
|
|||
|
|
## Context Maps
|
|||
|
|
|
|||
|
|
强制列出本次需求依赖的 Canvas 文件:
|
|||
|
|
|
|||
|
|
- [Authentication.canvas](../Authentication.canvas) - 项目架构视觉化展示
|
|||
|
|
- **相关节点**: [配置管理](node_setting) - 提供配置管理功能
|
|||
|
|
- **相关节点**: [认证管理](node_auth) - 提供登录认证功能
|
|||
|
|
|
|||
|
|
## 需求目标
|
|||
|
|
|
|||
|
|
在 `DataiConfigEnvironment` 实体类中增加一个"是否有效"字段(`isValid`),用于标记环境是否有效。当环境登录成功后,自动将该环境设置为有效状态,以便系统能够识别哪些环境配置是可用的。
|
|||
|
|
|
|||
|
|
## 需求描述
|
|||
|
|
|
|||
|
|
### 概述
|
|||
|
|
|
|||
|
|
本需求旨在在 `datai-salesforce-setting` 模块的 `DataiConfigEnvironment` 实体类中新增一个 `isValid` 字段,用于标记环境配置的有效性。当用户使用某个环境配置成功登录 Salesforce 后,系统自动将该环境设置为有效状态,从而帮助用户识别哪些环境配置是可用的、哪些是无效的。
|
|||
|
|
|
|||
|
|
### 详细需求
|
|||
|
|
|
|||
|
|
#### 1. 数据库表结构变更
|
|||
|
|
|
|||
|
|
- **需求描述**: 在 `datai_config_environment` 表中新增 `is_valid` 字段
|
|||
|
|
- **优先级**: 高
|
|||
|
|
- **验收标准**:
|
|||
|
|
- 数据库表 `datai_config_environment` 新增 `is_valid` 字段
|
|||
|
|
- 字段类型为 `TINYINT(1)` 或 `BOOLEAN`
|
|||
|
|
- 字段默认值为 `false`
|
|||
|
|
- 字段允许为 `NULL`(兼容历史数据)
|
|||
|
|
- 字段添加注释"是否有效(登录成功后自动设置为true)"
|
|||
|
|
- **依赖关系**: 无
|
|||
|
|
- **实现建议**:
|
|||
|
|
- 使用 ALTER TABLE 语句添加字段
|
|||
|
|
- 提供数据库升级脚本
|
|||
|
|
|
|||
|
|
#### 2. 实体类字段添加
|
|||
|
|
|
|||
|
|
- **需求描述**: 在 `DataiConfigEnvironment` 实体类中新增 `isValid` 字段及其 getter/setter 方法
|
|||
|
|
- **优先级**: 高
|
|||
|
|
- **验收标准**:
|
|||
|
|
- `DataiConfigEnvironment` 类新增 `isValid` 字段
|
|||
|
|
- 字段类型为 `Boolean`
|
|||
|
|
- 添加 `@Schema` 注解,描述为"是否有效"
|
|||
|
|
- 添加 `@Excel` 注解,支持导出
|
|||
|
|
- 添加 `setIsValid(Boolean isValid)` 方法
|
|||
|
|
- 添加 `Boolean getIsValid()` 方法
|
|||
|
|
- 在 `toString()` 方法中添加 `isValid` 字段
|
|||
|
|
- **依赖关系**: 依赖于数据库表结构变更
|
|||
|
|
- **实现建议**:
|
|||
|
|
- 遵循现有实体类的代码风格
|
|||
|
|
- 使用 Swagger 注解进行 API 文档描述
|
|||
|
|
|
|||
|
|
#### 3. DTO 和 VO 类字段添加
|
|||
|
|
|
|||
|
|
- **需求描述**: 在 `DataiConfigEnvironmentDto` 和 `DataiConfigEnvironmentVo` 类中新增 `isValid` 字段
|
|||
|
|
- **优先级**: 高
|
|||
|
|
- **验收标准**:
|
|||
|
|
- `DataiConfigEnvironmentDto` 类新增 `isValid` 字段
|
|||
|
|
- `DataiConfigEnvironmentVo` 类新增 `isValid` 字段
|
|||
|
|
- 字段类型为 `Boolean`
|
|||
|
|
- 添加相应的 getter/setter 方法
|
|||
|
|
- **依赖关系**: 依赖于实体类字段添加
|
|||
|
|
- **实现建议**:
|
|||
|
|
- 遵循现有 DTO 和 VO 的代码风格
|
|||
|
|
- 确保字段映射正确
|
|||
|
|
|
|||
|
|
#### 4. Mapper XML 文件更新
|
|||
|
|
|
|||
|
|
- **需求描述**: 更新 `DataiConfigEnvironmentMapper.xml` 文件,在 SQL 语句中包含 `is_valid` 字段
|
|||
|
|
- **优先级**: 高
|
|||
|
|
- **验收标准**:
|
|||
|
|
- `resultMap` 中包含 `is_valid` 字段映射
|
|||
|
|
- `insert` 语句包含 `is_valid` 字段
|
|||
|
|
- `update` 语句包含 `is_valid` 字段
|
|||
|
|
- `select` 语句包含 `is_valid` 字段
|
|||
|
|
- **依赖关系**: 依赖于数据库表结构变更
|
|||
|
|
- **实现建议**:
|
|||
|
|
- 使用 MyBatis 的 resultMap 进行字段映射
|
|||
|
|
- 确保所有 SQL 语句都包含新字段
|
|||
|
|
|
|||
|
|
#### 5. 登录成功后自动设置环境有效
|
|||
|
|
|
|||
|
|
- **需求描述**: 在登录成功后,自动将对应的环境设置为有效状态
|
|||
|
|
- **优先级**: 高
|
|||
|
|
- **验收标准**:
|
|||
|
|
- 登录成功后,自动更新 `datai_config_environment` 表的 `is_valid` 字段为 `true`
|
|||
|
|
- 更新操作在登录成功后立即执行
|
|||
|
|
- 更新操作不影响登录流程的性能
|
|||
|
|
- 更新失败不影响登录结果
|
|||
|
|
- 记录更新日志
|
|||
|
|
- **依赖关系**: 依赖于实体类和 Mapper 更新
|
|||
|
|
- **实现建议**:
|
|||
|
|
- 在 `SalesforceLoginServiceImpl` 的 `login` 方法中,登录成功后调用环境更新服务
|
|||
|
|
- 使用 `DataiConfigEnvironmentService` 更新环境有效性
|
|||
|
|
- 使用事务确保数据一致性
|
|||
|
|
- 添加异常处理,确保更新失败不影响登录结果
|
|||
|
|
|
|||
|
|
#### 6. 环境管理接口支持有效性字段
|
|||
|
|
|
|||
|
|
- **需求描述**: 在环境管理的增删改查接口中支持 `isValid` 字段
|
|||
|
|
- **优先级**: 中
|
|||
|
|
- **验收标准**:
|
|||
|
|
- 环境列表接口返回 `isValid` 字段
|
|||
|
|
- 环境详情接口返回 `isValid` 字段
|
|||
|
|
- 环境添加接口支持设置 `isValid` 字段
|
|||
|
|
- 环境编辑接口支持修改 `isValid` 字段
|
|||
|
|
- 环境导出接口包含 `isValid` 字段
|
|||
|
|
- **依赖关系**: 依赖于 DTO 和 VO 类字段添加
|
|||
|
|
- **实现建议**:
|
|||
|
|
- 更新 `DataiConfigEnvironmentController` 的相关方法
|
|||
|
|
- 确保 API 接口符合 RESTful 规范
|
|||
|
|
|
|||
|
|
## 约束
|
|||
|
|
|
|||
|
|
- **技术栈限制**: 必须基于现有的 Spring Boot 3 技术栈
|
|||
|
|
- **架构约束**: 必须遵循 Authentication.canvas 中定义的架构和调用关系
|
|||
|
|
- **模块约束**: 必须在 `datai-salesforce-setting` 模块下实现
|
|||
|
|
- **数据库约束**: 必须提供数据库升级脚本,确保向后兼容
|
|||
|
|
- **性能约束**: 登录成功后更新环境有效性不能影响登录性能
|
|||
|
|
- **事务约束**: 更新环境有效性必须在事务中执行
|
|||
|
|
- **文档约束**: 必须遵循 SSOT 方法论
|
|||
|
|
- **代码规范约束**: 必须遵循项目现有的代码规范
|
|||
|
|
|
|||
|
|
## Rule Set
|
|||
|
|
|
|||
|
|
"请严格参考 @Authentication.canvas 中的状态机转移逻辑,不要自行发挥。"
|
|||
|
|
|
|||
|
|
**具体规则**:
|
|||
|
|
- 必须使用 Canvas 中定义的类名和方法名
|
|||
|
|
- 必须遵循 Canvas 中定义的调用关系
|
|||
|
|
- 必须参考 Canvas 中的流程图逻辑
|
|||
|
|
- 必须使用现有的认证模块进行登录
|
|||
|
|
- 必须遵循现有的异常处理机制
|
|||
|
|
- 必须遵循现有的日志记录规范
|
|||
|
|
|
|||
|
|
## 验收标准
|
|||
|
|
|
|||
|
|
- **功能完整性**:
|
|||
|
|
- 数据库表成功添加 `is_valid` 字段
|
|||
|
|
- 实体类、DTO、VO 类成功添加 `isValid` 字段
|
|||
|
|
- Mapper XML 文件成功更新
|
|||
|
|
- 登录成功后自动设置环境为有效状态
|
|||
|
|
- 环境管理接口支持 `isValid` 字段
|
|||
|
|
- **数据一致性**:
|
|||
|
|
- 数据库字段与实体类字段一致
|
|||
|
|
- DTO、VO 字段与实体类字段一致
|
|||
|
|
- Mapper XML 字段映射正确
|
|||
|
|
- **性能指标**:
|
|||
|
|
- 登录成功后更新环境有效性不影响登录性能
|
|||
|
|
- 环境列表查询性能不受影响
|
|||
|
|
- **代码规范性**:
|
|||
|
|
- 代码符合项目编码规范,有清晰的注释
|
|||
|
|
- 遵循单一职责原则和开闭原则
|
|||
|
|
- **可维护性**:
|
|||
|
|
- 代码结构清晰,易于扩展和维护
|
|||
|
|
- 数据库升级脚本清晰,易于执行
|
|||
|
|
|
|||
|
|
## 风险
|
|||
|
|
|
|||
|
|
- **数据迁移风险**:
|
|||
|
|
- 历史数据中 `is_valid` 字段为 `NULL`,需要正确处理
|
|||
|
|
- 需要提供数据迁移脚本,将历史数据设置为合理的默认值
|
|||
|
|
- **性能风险**:
|
|||
|
|
- 登录成功后更新环境有效性可能影响登录性能
|
|||
|
|
- 需要使用异步更新或批量更新优化性能
|
|||
|
|
- **事务风险**:
|
|||
|
|
- 更新环境有效性失败可能导致数据不一致
|
|||
|
|
- 需要使用事务确保数据一致性
|
|||
|
|
- **兼容性风险**:
|
|||
|
|
- 新增字段可能与现有代码不兼容
|
|||
|
|
- 需要确保所有相关代码都正确处理新字段
|
|||
|
|
|
|||
|
|
## 相关文档
|
|||
|
|
|
|||
|
|
- [设计文档](../design/2026-01-22-012-环境有效性字段功能设计.md) - 环境有效性字段功能设计
|
|||
|
|
- [SQL 脚本](../sql/2026-01-22-012-environment-validity-field.sql) - 环境有效性字段功能 SQL 脚本
|
|||
|
|
- [提示词文档](../prompts/2026-01-22-012-prompt-环境有效性字段功能.md) - 环境有效性字段功能实现提示词
|
|||
|
|
- [参考代码](../reference-code/2026-01-22-012-code-环境有效性字段功能.md) - 环境有效性字段功能参考代码
|
|||
|
|
- [实施方案](../implementation/2026-01-22-012-implementation-环境有效性字段功能.md) - 环境有效性字段功能实施方案
|
|||
|
|
- [变更日志](../changelog/0012-environment-validity-field.md) - 环境有效性字段功能变更日志
|
|||
|
|
- [会话记录](../sessions/20260122-req-012-environment-validity-field.md) - 环境有效性字段功能会话记录
|
|||
|
|
- [复盘文档](../retros/20260123-req-012-environment-validity-field-retro.md) - 环境有效性字段功能复盘文档
|
|||
|
|
|
|||
|
|
## 需求变更记录
|
|||
|
|
|
|||
|
|
| 日期 | 变更内容 | 变更原因 | 变更人 | 审核人 | 状态 |
|
|||
|
|
|------|---------|---------|--------|--------|------|
|
|||
|
|
| 2026-01-22 | 创建需求文档 | 初始需求 | 系统管理员 | - | 待审核 |
|
|||
|
|
|
|||
|
|
## 相关人员
|
|||
|
|
|
|||
|
|
- **需求提出人**: 系统管理员 - 联系方式
|
|||
|
|
- **需求负责人**: 系统管理员 - 联系方式
|
|||
|
|
- **技术负责人**: 开发工程师 - 联系方式
|
|||
|
|
- **测试负责人**: 测试工程师 - 联系方式
|
|||
|
|
- **其他相关人员**: - 联系方式
|
|||
|
|
|
|||
|
|
## 评审信息
|
|||
|
|
|
|||
|
|
- **评审日期**: -
|
|||
|
|
- **评审人员**: -
|
|||
|
|
- **评审结果**: -
|
|||
|
|
- **评审意见**: -
|
|||
|
|
- **修改建议**: -
|