datai/docs/archive/prompts/007-login-history-query-and-auto-login.md

200 lines
6.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 |