327 lines
5.8 KiB
Markdown
327 lines
5.8 KiB
Markdown
|
|
# ISIM 电费查询系统 API 文档
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
ISIM(Integrated Student Information Management)电费查询系统是为安徽财经大学学生提供的后勤电费查询服务。通过该系统,学生可以:
|
|||
|
|
|
|||
|
|
- 选择和绑定宿舍房间
|
|||
|
|
- 查询电费余额和用电记录
|
|||
|
|
- 查看充值记录
|
|||
|
|
|
|||
|
|
## API 端点
|
|||
|
|
|
|||
|
|
### 认证
|
|||
|
|
|
|||
|
|
所有API都需要通过认证令牌(authme_token)进行身份验证。认证信息通过依赖注入自动处理。
|
|||
|
|
|
|||
|
|
### 房间选择器 API
|
|||
|
|
|
|||
|
|
#### 1. 获取楼栋列表
|
|||
|
|
|
|||
|
|
**POST** `/api/v1/isim/picker/building/get`
|
|||
|
|
|
|||
|
|
获取所有可选择的楼栋信息。
|
|||
|
|
|
|||
|
|
**响应示例:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 0,
|
|||
|
|
"message": "楼栋列表获取成功",
|
|||
|
|
"data": [
|
|||
|
|
{
|
|||
|
|
"code": "11",
|
|||
|
|
"name": "北苑11号学生公寓"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"code": "12",
|
|||
|
|
"name": "北苑12号学生公寓"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 2. 设置楼栋并获取楼层列表
|
|||
|
|
|
|||
|
|
**POST** `/api/v1/isim/picker/building/set`
|
|||
|
|
|
|||
|
|
设置楼栋并获取对应的楼层列表。
|
|||
|
|
|
|||
|
|
**请求参数:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"building_code": "11"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应示例:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 0,
|
|||
|
|
"message": "楼层列表获取成功",
|
|||
|
|
"data": [
|
|||
|
|
{
|
|||
|
|
"code": "010101",
|
|||
|
|
"name": "1-1层"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"code": "010102",
|
|||
|
|
"name": "1-2层"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 3. 设置楼层并获取房间列表
|
|||
|
|
|
|||
|
|
**POST** `/api/v1/isim/picker/floor/set`
|
|||
|
|
|
|||
|
|
设置楼层并获取对应的房间列表。
|
|||
|
|
|
|||
|
|
**请求参数:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"floor_code": "010101"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应示例:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 0,
|
|||
|
|
"message": "房间列表获取成功",
|
|||
|
|
"data": [
|
|||
|
|
{
|
|||
|
|
"code": "01",
|
|||
|
|
"name": "1-101"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"code": "02",
|
|||
|
|
"name": "1-102"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 4. 绑定房间
|
|||
|
|
|
|||
|
|
**POST** `/api/v1/isim/picker/room/set`
|
|||
|
|
|
|||
|
|
绑定房间到用户账户。
|
|||
|
|
|
|||
|
|
**请求参数:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"building_code": "11",
|
|||
|
|
"floor_code": "010101",
|
|||
|
|
"room_code": "01"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应示例:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 0,
|
|||
|
|
"message": "房间绑定成功",
|
|||
|
|
"data": {
|
|||
|
|
"building": {
|
|||
|
|
"code": "11",
|
|||
|
|
"name": "北苑11号学生公寓"
|
|||
|
|
},
|
|||
|
|
"floor": {
|
|||
|
|
"code": "010101",
|
|||
|
|
"name": "1-1层"
|
|||
|
|
},
|
|||
|
|
"room": {
|
|||
|
|
"code": "01",
|
|||
|
|
"name": "1-101"
|
|||
|
|
},
|
|||
|
|
"room_id": "01",
|
|||
|
|
"display_text": "北苑11号学生公寓/1-1层/1-101"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 电费查询 API
|
|||
|
|
|
|||
|
|
#### 5. 获取电费信息
|
|||
|
|
|
|||
|
|
**POST** `/api/v1/isim/electricity/info`
|
|||
|
|
|
|||
|
|
获取电费余额和用电记录信息。
|
|||
|
|
|
|||
|
|
**响应示例:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 0,
|
|||
|
|
"message": "电费信息获取成功",
|
|||
|
|
"data": {
|
|||
|
|
"balance": {
|
|||
|
|
"remaining_purchased": 815.30,
|
|||
|
|
"remaining_subsidy": 2198.01
|
|||
|
|
},
|
|||
|
|
"usage_records": [
|
|||
|
|
{
|
|||
|
|
"record_time": "2025-08-29 00:04:58",
|
|||
|
|
"usage_amount": 0.00,
|
|||
|
|
"meter_name": "1-101"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"record_time": "2025-08-29 00:04:58",
|
|||
|
|
"usage_amount": 0.00,
|
|||
|
|
"meter_name": "1-101空调"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 6. 获取充值信息
|
|||
|
|
|
|||
|
|
**POST** `/api/v1/isim/payment/info`
|
|||
|
|
|
|||
|
|
获取电费余额和充值记录信息。
|
|||
|
|
|
|||
|
|
**响应示例:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 0,
|
|||
|
|
"message": "充值信息获取成功",
|
|||
|
|
"data": {
|
|||
|
|
"balance": {
|
|||
|
|
"remaining_purchased": 815.30,
|
|||
|
|
"remaining_subsidy": 2198.01
|
|||
|
|
},
|
|||
|
|
"payment_records": [
|
|||
|
|
{
|
|||
|
|
"payment_time": "2025-02-21 11:30:08",
|
|||
|
|
"amount": 71.29,
|
|||
|
|
"payment_type": "下发补助"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"payment_time": "2024-09-01 15:52:40",
|
|||
|
|
"amount": 71.29,
|
|||
|
|
"payment_type": "下发补助"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 7. 检查房间绑定状态
|
|||
|
|
|
|||
|
|
**POST** `/api/v1/isim/room/binding/status`
|
|||
|
|
|
|||
|
|
检查用户是否已绑定宿舍房间。
|
|||
|
|
|
|||
|
|
**已绑定响应示例:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 0,
|
|||
|
|
"message": "用户已绑定宿舍房间",
|
|||
|
|
"data": {
|
|||
|
|
"is_bound": true,
|
|||
|
|
"binding_info": {
|
|||
|
|
"building": {
|
|||
|
|
"code": "35",
|
|||
|
|
"name": "西校荆苑5号学生公寓"
|
|||
|
|
},
|
|||
|
|
"floor": {
|
|||
|
|
"code": "3501",
|
|||
|
|
"name": "荆5-1层"
|
|||
|
|
},
|
|||
|
|
"room": {
|
|||
|
|
"code": "350116",
|
|||
|
|
"name": "J5-116"
|
|||
|
|
},
|
|||
|
|
"room_id": "350116",
|
|||
|
|
"display_text": "西校荆苑5号学生公寓/荆5-1层/J5-116"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**未绑定响应示例:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 0,
|
|||
|
|
"message": "用户未绑定宿舍房间",
|
|||
|
|
"data": {
|
|||
|
|
"is_bound": false,
|
|||
|
|
"binding_info": null
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 错误处理
|
|||
|
|
|
|||
|
|
### 标准错误响应
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 1,
|
|||
|
|
"message": "错误描述信息"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 认证错误响应
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 401,
|
|||
|
|
"message": "Cookie已失效或不在VPN/校园网环境,请重新登录"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 常见错误代码
|
|||
|
|
|
|||
|
|
- `0`: 成功
|
|||
|
|
- `1`: 一般业务错误
|
|||
|
|
- `400`: 请求参数错误或未绑定房间
|
|||
|
|
- `401`: 认证失败
|
|||
|
|
- `500`: 服务器内部错误
|
|||
|
|
|
|||
|
|
### 特殊错误情况
|
|||
|
|
|
|||
|
|
#### 未绑定房间错误
|
|||
|
|
|
|||
|
|
当用户尝试查询电费或充值信息但未绑定房间时,会返回特定错误:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 400,
|
|||
|
|
"message": "请先绑定宿舍房间后再查询电费信息"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
或
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 400,
|
|||
|
|
"message": "请先绑定宿舍房间后再查询充值信息"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 使用流程
|
|||
|
|
|
|||
|
|
### 房间绑定流程
|
|||
|
|
1. **检查绑定状态**:调用房间绑定状态API检查是否已绑定
|
|||
|
|
2. **首次绑定**(如果未绑定):
|
|||
|
|
- 调用楼栋列表API获取所有楼栋
|
|||
|
|
- 调用楼栋设置API获取楼层列表
|
|||
|
|
- 调用楼层设置API获取房间列表
|
|||
|
|
- 调用房间绑定API完成房间绑定
|
|||
|
|
|
|||
|
|
### 查询流程
|
|||
|
|
1. **确认绑定**:确保用户已绑定房间(必需)
|
|||
|
|
2. **查询信息**:调用电费信息或充值信息API获取数据
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
- 所有接口都需要有效的认证令牌
|
|||
|
|
- 数据实时从后勤系统获取,不会在数据库中缓存
|
|||
|
|
- 房间绑定信息会保存在数据库中以便下次使用
|
|||
|
|
- 系统需要VPN或校园网环境才能正常访问
|
|||
|
|
- **电费查询和充值查询需要先绑定房间**,否则会返回400错误
|
|||
|
|
- 访问`/go`端点会返回302重定向,系统会自动处理并提取JSESSIONID
|