datai/datai-scenes/datai-scene-salesforce/docs/prompts/2026-02-03-004-06-prompt-访问和安全功能.md

6.8 KiB
Raw Permalink Blame History

提示词:访问和安全功能

引用真源

需求描述

根据需求文档,实现 Salesforce Tooling API 的访问和安全功能,包括:

  1. 查询访问方法AccessMethod
  2. 查询访问资源类型AccessResourceType
  3. 查询 API 访问级别APIAccessLevel
  4. 查询 API 类型APIType
  5. 查询激活平台连接器类型ActivationPlatformConnectorType
  6. 查询激活平台创建类型ActivationPlatformCreationType
  7. 获取操作日志(支持按操作类型、元数据类型、时间范围等条件查询)

设计方案

根据设计文档,采用以下技术方案:

  1. 连接管理:复用子需求 004-01 实现的 ToolingConnectionFactory通过工厂模式获取 ToolingConnection
  2. 数据库日志记录:所有访问和安全操作都记录到数据库,支持操作审计和故障排查
  3. 异步日志记录:使用异步方式记录日志,避免影响主操作性能
  4. 异常处理机制:将 Salesforce 异常转换为自定义异常,提供友好的错误信息
  5. SOQL 查询构建:使用 SoqlBuilder 构建 SOQL 查询,提高代码可读性和可维护性
  6. RESTful API 设计:提供标准的 REST API 接口
  7. 错误码枚举:使用 ToolingAccessSecurityErrorCode 枚举定义错误码

输出格式要求

  1. 必须包含以下文件:
    • ControllerToolingAccessSecurityController.java(路径:datai-salesforce-tooling/src/main/java/com/datai/salesforce/tooling/controller/ToolingAccessSecurityController.java
    • Service 接口:IToolingAccessSecurityService.java(路径:datai-salesforce-tooling/src/main/java/com/datai/salesforce/tooling/service/IToolingAccessSecurityService.java
    • Service 实现:ToolingAccessSecurityServiceImpl.java(路径:datai-salesforce-tooling/src/main/java/com/datai/salesforce/tooling/service/impl/ToolingAccessSecurityServiceImpl.java
    • MapperToolingAccessSecurityLogMapper.java(路径:datai-salesforce-tooling/src/main/java/com/datai/salesforce/tooling/mapper/ToolingAccessSecurityLogMapper.java
    • EntityToolingAccessSecurityLog.java(路径:datai-salesforce-tooling/src/main/java/com/datai/salesforce/tooling/domain/ToolingAccessSecurityLog.java
    • DTOAccessSecurityLogQueryRequest.java(路径:datai-salesforce-tooling/src/main/java/com/datai/salesforce/tooling/domain/dto/AccessSecurityLogQueryRequest.java
    • VOAccessMethodVO.java(路径:datai-salesforce-tooling/src/main/java/com/datai/salesforce/tooling/domain/vo/AccessMethodVO.java
    • VOAccessResourceTypeVO.java(路径:datai-salesforce-tooling/src/main/java/com/datai/salesforce/tooling/domain/vo/AccessResourceTypeVO.java
    • VOAPIAccessLevelVO.java(路径:datai-salesforce-tooling/src/main/java/com/datai/salesforce/tooling/domain/vo/APIAccessLevelVO.java
    • VOAPITypeVO.java(路径:datai-salesforce-tooling/src/main/java/com/datai/salesforce/tooling/domain/vo/APITypeVO.java
    • VOActivationPlatformConnectorTypeVO.java(路径:datai-salesforce-tooling/src/main/java/com/datai/salesforce/tooling/domain/vo/ActivationPlatformConnectorTypeVO.java
    • VOActivationPlatformCreationTypeVO.java(路径:datai-salesforce-tooling/src/main/java/com/datai/salesforce/tooling/domain/vo/ActivationPlatformCreationTypeVO.java
    • VOToolingAccessSecurityLogVO.java(路径:datai-salesforce-tooling/src/main/java/com/datai/salesforce/tooling/domain/vo/ToolingAccessSecurityLogVO.java
    • 错误码枚举:ToolingAccessSecurityErrorCode.java(路径:datai-salesforce-tooling/src/main/java/com/datai/salesforce/tooling/enums/ToolingAccessSecurityErrorCode.java
  2. 必须包含单元测试:
    • ToolingAccessSecurityServiceTest.java(路径:datai-salesforce-tooling/src/test/java/com/datai/salesforce/tooling/service/ToolingAccessSecurityServiceTest.java
  3. 必须符合 Spring Boot 最佳实践
  4. 必须遵循若依框架规范
  5. 必须使用 MyBatis Plus 进行数据库操作

代码规范要求

  1. 类命名:首字母大写,驼峰命名,如 ToolingAccessSecurityController
  2. 方法命名:首字母小写,驼峰命名,如 getAccessMethods
  3. 变量命名:首字母小写,驼峰命名,如 accessMethods
  4. 注释规范:
    • 类注释:使用 /** */,包含类功能描述、作者、创建时间
    • 方法注释:使用 /** */,包含方法功能、参数、返回值、异常描述
    • 字段注释:使用 /** */,包含字段功能描述
  5. 代码格式:使用 4 个空格缩进,行宽不超过 120 字符
  6. 导入规范:使用 import 静态导入,避免通配符导入
  7. 异常处理:必须捕获 Salesforce 异常并转换为自定义异常SalesforceAuthException
  8. 日志记录:必须使用 @Slf4j 注解和 log 对象记录日志
  9. 异步处理:必须使用 @Async 注解和 CompletableFuture 进行异步日志记录
  10. 依赖注入:必须使用 @Autowired 注解进行依赖注入

测试要求

  1. 单元测试覆盖率不低于 80%
  2. 测试用例包含以下场景:
    • 查询访问方法成功
    • 查询访问资源类型成功
    • 查询 API 访问级别成功
    • 查询 API 类型成功
    • 查询激活平台连接器类型成功
    • 查询激活平台创建类型成功
    • 获取操作日志成功
    • Session 过期异常处理
    • Salesforce API 调用失败异常处理
  3. 使用 JUnit 5 和 Mockito 进行测试
  4. 测试用例命名规范:test+方法名+场景,如 testGetAccessMethodsSuccess
  5. 测试数据使用 Mockito 模拟

注意事项

  1. 必须使用 ToolingConnectionFactory.getConnection("source") 获取连接
  2. 必须固定使用 source ORG 类型的连接缓存
  3. 必须使用 SoqlBuilder 构建 SOQL 查询
  4. 必须异步记录操作日志,不影响主操作性能
  5. 必须将 Salesforce 异常转换为 SalesforceAuthException
  6. 必须使用 ToolingAccessSecurityErrorCode 枚举定义错误码
  7. 必须遵循 RESTful API 设计规范
  8. 必须支持分页查询操作日志
  9. 必须使用若依的 @Log 注解记录操作日志
  10. 必须使用若依的 GlobalExceptionHandler 处理异常
  11. 必须使用若依的 AjaxResult 和 TableDataInfo 返回响应
  12. 必须使用若依的 PageInfo 进行分页
  13. 必须使用 MyBatis Plus 的 @TableName、@TableId、@TableField 注解
  14. 必须使用 Lombok 的 @Data、@Slf4j、@Service、@RestController、@RequestMapping、@GetMapping、@Autowired 注解
  15. 必须使用 Jakarta Validation 的 @Valid、@NotNull、@NotBlank、@Size、@Min、@Max 注解进行参数验证