Files
LoveACE-EndF/docs/ISIM_API.md

327 lines
5.8 KiB
Markdown
Raw Normal View History

2025-09-03 13:00:40 +08:00
# ISIM 电费查询系统 API 文档
## 概述
ISIMIntegrated 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