datai/datai-scenes/datai-scene-salesforce/docs/prompts/007-login-history-query-and-auto-login.md

200 lines
6.2 KiB
Markdown
Raw Normal View History

---
name: PROMPT-007
description: 查询不同类型ORG登录历史及自动登录功能实现
version: 1.0.0
---
# 提示词: 查询不同类型ORG登录历史及自动登录功能实现
## 元数据 (Metadata)
- **name**: login-history-query-and-auto-login
- **description**: 为查询不同类型ORG登录历史及自动登录功能需求生成代码实现
- **version**: 1.0.0
- **author**: SSOT Architect
- **lastUpdated**: 2026-01-16
## 目标 (Goal)
为"查询不同类型ORG登录历史及自动登录功能"需求生成代码实现,包括 Controller 层和 Service 层的新方法。
## 上下文链接 (Context Links)
### 必须引用的文档
- [REQ-007](../../requirements/REQ-007.md) - 需求文档,定义了功能需求和验收标准
- [ADR-007](../../decisions/adr/0007-login-history-query-and-auto-login.md) - 架构决策,定义了技术方案和实施计划
### 参考文档
- [DataISfLoginController.java](../../datai-salesforce-auth/src/main/java/com/datai/auth/controller/DataISfLoginController.java) - 现有的登录控制器,作为参考
### 代码参考
- [DataISfLoginController.java](../../datai-salesforce-auth/src/main/java/com/datai/auth/controller/DataISfLoginController.java) - 参考现有代码风格
## 输入变量 (Inputs)
### 必填变量
### 可选变量
## 提示词内容 (Prompt Content)
```markdown
你是 Java 后端开发专家,负责为 Salesforce 集成系统实现查询不同类型ORG登录历史及自动登录功能。
## 上下文信息
基于以下文档:
- [REQ-007](../../requirements/REQ-007.md) - 需求文档,定义了功能需求和验收标准
- [ADR-007](../../decisions/adr/0007-login-history-query-and-auto-login.md) - 架构决策,定义了技术方案和实施计划
## 搜索策略
在开始执行前,请搜索以下文件作为参考:
1. 搜索关键词:`DataISfLoginController`文件类型Java
2. 搜索关键词:`IDataiSfLoginHistoryService`文件类型Java
3. 搜索关键词:`DataiSfLoginHistory`文件类型Java
## 任务描述
请根据 ADR-007 中定义的技术方案,为 `DataISfLoginController` 添加以下两个接口:
### 接口1: 查询不同类型org成功登录历史
**接口路径**: `GET /salesforce/login/history/success/{orgType}`
**功能描述**: 查询指定类型的成功登录历史记录
**实现要求**:
1. 使用 `@GetMapping` 注解
2. 使用 `@Operation` 注解添加接口描述
3. 使用 `@PathVariable` 接收 orgType 参数
4. 调用 `loginHistoryService.selectSuccessLoginHistoryByOrgType(orgType)` 方法
5. 返回 `AjaxResult.success("查询成功", historyList)`
6. 添加详细的日志记录
7. 添加异常处理
### 接口2: 根据对应登录成功历史登录不同的org
**接口路径**: `POST /salesforce/login/autoLoginByHistory`
**功能描述**: 根据指定的登录历史记录自动登录到对应ORG
**实现要求**:
1. 使用 `@PostMapping` 注解
2. 使用 `@Operation` 注解添加接口描述
3. 使用 `@RequestBody` 接收请求参数Map<String, Long>,包含 historyId
4. 调用 `loginHistoryService.selectDataiSfLoginHistoryById(historyId)` 方法查询历史记录
5. 如果历史记录不存在,返回错误信息
6. 调用 `salesforceLoginService.autoLogin(historyId)` 方法执行自动登录
7. 返回 `AjaxResult.success("自动登录成功", result)`
8. 添加详细的日志记录
9. 添加异常处理
同时,请在 `IDataiSfLoginHistoryService` 接口中添加以下两个方法:
### Service 方法1: 查询成功登录历史
```java
List<DataiSfLoginHistory> selectSuccessLoginHistoryByOrgType(String orgType);
```
### Service 方法2: 根据ID查询登录历史
```java
DataiSfLoginHistory selectDataiSfLoginHistoryById(Long id);
```
## 执行步骤
1. 搜索并阅读 `DataISfLoginController.java` 文件
2. 搜索并阅读 `IDataiSfLoginHistoryService.java` 文件
3. 搜索并阅读 `DataiSfLoginHistory.java` 文件
4.`DataISfLoginController` 添加两个新接口
5.`IDataiSfLoginHistoryService` 添加两个新方法签名
6.`DataiSfLoginHistoryServiceImpl` 添加两个新方法实现
7. 确保代码风格与现有代码一致
8. 添加详细的注释和日志
## 输出要求
- 必须符合现有代码风格
- 必须包含完整的注释
- 必须包含异常处理
- 必须包含日志记录
- 必须使用现有的工具类AjaxResult、Logger
- 必须遵循 Spring Boot 和 MyBatis Plus 的最佳实践
## 输出格式
请按照以下格式输出:
### 1. DataISfLoginController 新增代码
```java
// 在 DataISfLoginController 中添加的代码
```
### 2. IDataiSfLoginHistoryService 新增代码
```java
// 在 IDataiSfLoginHistoryService 中添加的代码
```
### 3. DataiSfLoginHistoryServiceImpl 新增代码
```java
// 在 DataiSfLoginHistoryServiceImpl 中添加的代码
```
### 4. Mapper XML 新增代码(如果需要)
```xml
<!-- 在 Mapper XML 中添加的代码 -->
```
```
## 输出定义 (Output Definition)
### 输出格式
Java Code
### 输出结构
1. DataISfLoginController 新增代码
2. IDataiSfLoginHistoryService 新增代码
3. DataiSfLoginHistoryServiceImpl 新增代码
4. Mapper XML 新增代码(如果需要)
### 输出要求
- 必须符合现有代码风格
- 必须包含完整的注释
- 必须包含异常处理
- 必须包含日志记录
- 必须使用现有的工具类AjaxResult、Logger
- 必须遵循 Spring Boot 和 MyBatis Plus 的最佳实践
### 输出示例
```java
@Operation(summary = "查询不同类型ORG成功登录历史")
@GetMapping("/history/success/{orgType}")
public AjaxResult getSuccessLoginHistoryByOrgType(@PathVariable String orgType) {
logger.info("接收到查询登录历史请求ORG类型: {}", orgType);
try {
List<DataiSfLoginHistory> historyList = loginHistoryService.selectSuccessLoginHistoryByOrgType(orgType);
return AjaxResult.success("查询成功", historyList);
} catch (Exception e) {
logger.error("查询登录历史请求处理失败: {}", e.getMessage(), e);
return AjaxResult.error("查询失败: " + e.getMessage());
}
}
```
## 版本历史 (Version History)
| 版本 | 日期 | 变更内容 | 变更人 |
|------|------|----------|--------|
| 1.0.0 | 2026-01-16 | 初始版本 | SSOT Architect |