改用自建emqx

This commit is contained in:
2025-06-05 17:34:07 +08:00
parent 9227eb07a2
commit f132b557df
4 changed files with 67 additions and 38 deletions

View File

@@ -14,9 +14,6 @@
* **更新 (Update)**:
* **谨慎引入**。主要考虑场景:对异常会话进行状态纠正(例如,系统未能自动更新的会话,管理员可手动标记为 `ERROR``CANCELLED_BY_SYSTEM`)。
* 所有手动更新操作必须记录详细的操作审计日志(操作人、时间、原因、变更前后状态)。
* **删除 (Delete)**:
* **谨慎引入**。通常仅支持逻辑删除,用于隐藏无效或测试产生的会话数据。
* 物理删除会话记录通常不推荐,以保证数据完整性和可追溯性。
* **创建 (Create)**:
* 管理员**不直接创建**充电会话。会话由用户通过前端发起,或由系统在特定业务流程中自动创建。
@@ -81,10 +78,6 @@
* 更新会话状态、`update_time`
* 记录操作日志(可考虑引入操作日志表或利用现有日志框架)。
* `adminUserId` 用于审计。
* **Delete (删除)**:
* `boolean adminMarkSessionAsDeleted(Long sessionId, Long adminUserId)`:
* 逻辑删除,设置 `is_deleted = 1`
* 记录操作日志。
### 2.3. Controller 层 (`com.yupi.project.controller.ChargingSessionAdminController`)
* `POST /api/admin/session/list/page`: (已存在,需审视是否需要修改请求体和响应体以满足 `ChargingSessionAdminQueryRequest``Page<ChargingSessionAdminVO>`)
@@ -98,9 +91,6 @@
* 调用 `chargingSessionService.adminUpdateSessionStatus(sessionId, newStatus, reason, adminUserId)`
* `adminUserId` 从当前登录用户上下文获取。
* 权限: `@AuthCheck(mustRole = UserConstant.ADMIN_ROLE)`
* `DELETE /api/admin/session/{sessionId}`:
* 调用 `chargingSessionService.adminMarkSessionAsDeleted(sessionId, adminUserId)`
* 权限: `@AuthCheck(mustRole = UserConstant.ADMIN_ROLE)`
## 3. 前端实现 (`charging_web_app`)
@@ -128,7 +118,6 @@
* **操作列**:
* "详情"按钮:点击打开会话详情模态框。
* "修改状态"按钮 (如果实现该功能):打开状态修改模态框。
* "删除"按钮 (如果实现该功能):触发删除确认。
* **查询筛选**:
* 表单元素对应 `ChargingSessionAdminQueryRequest` 中的筛选字段。
* "查询"按钮触发 API 请求,更新表格数据。
@@ -139,9 +128,6 @@
* **修改状态 (Modal)** (如果实现):
* 表单包含可选的新状态和操作原因。
* 提交时调用后端 `/api/admin/session/{sessionId}/status` 接口。
* **删除会话** (如果实现):
* 使用 `Popconfirm` 提示。
* 确认后调用后端 `DELETE /api/admin/session/{sessionId}` 接口。
### 3.4. API 服务层
*`charging_web_app/src/services/` 目录下创建 `sessionAdminService.ts` (或类似名称)。
@@ -149,13 +135,14 @@
* `fetchAdminSessions(query: ChargingSessionAdminQueryRequest): Promise<BaseResponse<Page<ChargingSessionAdminVO>>>`
* `fetchAdminSessionDetails(sessionId: number): Promise<BaseResponse<ChargingSessionAdminVO>>`
* `updateAdminSessionStatus(sessionId: number, data: ChargingSessionAdminUpdateStatusRequest): Promise<BaseResponse<any>>`
* `deleteAdminSession(sessionId: number): Promise<BaseResponse<any>>`
### 3.5. 状态管理 (React Context / Zustand / Redux Toolkit - 根据项目现有方式)
* 管理会话列表数据、加载状态、错误信息。
* 管理分页参数 (`current`, `pageSize`, `total`)。
* 管理筛选表单的条件。
* 管理模态框的显示/隐藏状态及当前操作的会话数据。
* 状态更新操作的业务逻辑和数据一致性。
* 并发操作下的数据准确性(如果适用)。
## 4. 数据库变更
* 当前 `charging_session` 表结构基本满足需求。
@@ -166,12 +153,12 @@
* 各 API 接口的参数校验、权限控制。
* 筛选条件(特别是组合条件和边界值)的正确性。
* 分页和排序逻辑的正确性。
* 状态更新和删除操作的业务逻辑和数据一致性。
* 状态更新操作的业务逻辑和数据一致性。
* 并发操作下的数据准确性(如果适用)。
* **前端**:
* 页面数据能否正确加载和展示。
* 查询、分页、排序功能是否按预期工作。
* 操作按钮(详情、修改、删除)的交互和功能是否正常。
* 操作按钮(详情、修改状态)的交互和功能是否正常。
* 表单校验和用户提示。
* 不同屏幕尺寸下的响应式布局。
* **整体**: