mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-05-05 10:30:12 +08:00
同步充电桩数据
This commit is contained in:
@@ -26,10 +26,39 @@ Web 项目 (MySQL) → HTTP API → JCPP 项目 (PostgreSQL)
|
||||
|
||||
## 需要实现的功能
|
||||
|
||||
### 1. 充电桩同步接口
|
||||
### 1. 认证接口
|
||||
|
||||
**接口路径**:`POST /api/auth/login`
|
||||
|
||||
**请求格式**:
|
||||
```json
|
||||
{
|
||||
"username": "sanbing",
|
||||
"password": "password123"
|
||||
}
|
||||
```
|
||||
|
||||
**响应格式**:
|
||||
```json
|
||||
{
|
||||
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
|
||||
"expiresIn": 1800
|
||||
}
|
||||
```
|
||||
|
||||
**说明**:
|
||||
- 用于 Web 项目获取访问令牌
|
||||
- token 有效期 30 分钟
|
||||
- Web 项目会将 token 缓存在 Redis 中
|
||||
|
||||
---
|
||||
|
||||
### 2. 充电桩同步接口
|
||||
|
||||
**接口路径**:`POST /api/sync/piles`
|
||||
|
||||
**认证方式**:Bearer Token(在请求头中添加 `Authorization: Bearer {token}`)
|
||||
|
||||
**重要说明**:
|
||||
- ✅ 所有充电桩的 `station_id` 统一使用固定值:`88bca8da-cdbf-6587-aecc-75784838c501`
|
||||
- Web 项目的原始 station_id 保存在 `additionalInfo.webStationId` 中便于追溯
|
||||
@@ -105,13 +134,17 @@ Web 项目 (MySQL) → HTTP API → JCPP 项目 (PostgreSQL)
|
||||
- 使用事务保证数据一致性
|
||||
- pile_code 必须唯一(已有唯一索引)
|
||||
- 所有充电桩的 station_id 都使用固定值 `88bca8da-cdbf-6587-aecc-75784838c501`
|
||||
- **需要验证 Authorization 请求头中的 token**
|
||||
- token 无效时返回 401 Unauthorized
|
||||
|
||||
---
|
||||
|
||||
### 2. 充电枪同步接口
|
||||
### 3. 充电枪同步接口
|
||||
|
||||
**接口路径**:`POST /api/sync/guns`
|
||||
|
||||
**认证方式**:Bearer Token(在请求头中添加 `Authorization: Bearer {token}`)
|
||||
|
||||
**重要说明**:
|
||||
- ✅ 所有充电枪的 `station_id` 统一使用固定值:`88bca8da-cdbf-6587-aecc-75784838c501`
|
||||
|
||||
@@ -173,6 +206,8 @@ Web 项目 (MySQL) → HTTP API → JCPP 项目 (PostgreSQL)
|
||||
- gun_code 必须唯一(已有唯一索引)
|
||||
- (pile_id, gun_no) 组合必须唯一(已有唯一索引)
|
||||
- 所有充电枪的 station_id 都使用固定值 `88bca8da-cdbf-6587-aecc-75784838c501`
|
||||
- **需要验证 Authorization 请求头中的 token**
|
||||
- token 无效时返回 401 Unauthorized
|
||||
|
||||
---
|
||||
|
||||
@@ -189,11 +224,14 @@ Web 项目 (MySQL) → HTTP API → JCPP 项目 (PostgreSQL)
|
||||
```
|
||||
src/main/java/com/jcpp/
|
||||
├── controller/
|
||||
│ ├── AuthController.java # 认证接口 Controller
|
||||
│ └── SyncController.java # 同步接口 Controller
|
||||
├── service/
|
||||
│ ├── AuthService.java # 认证服务接口
|
||||
│ ├── PileSyncService.java # 充电桩同步服务接口
|
||||
│ └── GunSyncService.java # 充电枪同步服务接口
|
||||
├── service/impl/
|
||||
│ ├── AuthServiceImpl.java
|
||||
│ ├── PileSyncServiceImpl.java
|
||||
│ └── GunSyncServiceImpl.java
|
||||
├── entity/
|
||||
@@ -202,11 +240,15 @@ src/main/java/com/jcpp/
|
||||
├── repository/
|
||||
│ ├── PileRepository.java
|
||||
│ └── GunRepository.java
|
||||
└── dto/
|
||||
├── PileSyncDTO.java # 充电桩同步 DTO
|
||||
├── GunSyncDTO.java # 充电枪同步 DTO
|
||||
├── SyncRequest.java # 同步请求
|
||||
└── SyncResponse.java # 同步响应
|
||||
├── dto/
|
||||
│ ├── LoginRequest.java # 登录请求
|
||||
│ ├── LoginResponse.java # 登录响应
|
||||
│ ├── PileSyncDTO.java # 充电桩同步 DTO
|
||||
│ ├── GunSyncDTO.java # 充电枪同步 DTO
|
||||
│ ├── SyncRequest.java # 同步请求
|
||||
│ └── SyncResponse.java # 同步响应
|
||||
└── security/
|
||||
└── JwtTokenProvider.java # JWT Token 生成和验证
|
||||
```
|
||||
|
||||
### 关键代码示例
|
||||
@@ -319,9 +361,10 @@ public SyncResponse syncPiles(List<PileSyncDTO> piles) {
|
||||
- 考虑使用缓存优化映射查询
|
||||
|
||||
5. **安全性**
|
||||
- 添加接口鉴权
|
||||
- 添加接口鉴权(JWT Token)
|
||||
- 验证请求数据的合法性
|
||||
- 防止 SQL 注入
|
||||
- token 有效期 30 分钟
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user