first
This commit is contained in:
2071
docs/API.md
Normal file
2071
docs/API.md
Normal file
File diff suppressed because it is too large
Load Diff
130
docs/企业卡授权列表和设备授权列表.md
Normal file
130
docs/企业卡授权列表和设备授权列表.md
Normal file
@@ -0,0 +1,130 @@
|
||||
# 授权卡列表
|
||||
|
||||
## 接口说明
|
||||
获取**某个企业下的卡列表**,支持分页和简单筛选。
|
||||
|
||||
- 请求方式:GET
|
||||
- 接口地址:`/api/admin/enterprises/{id}/cards`
|
||||
- 认证方式:Bearer Token
|
||||
|
||||
---
|
||||
|
||||
## 请求参数
|
||||
|
||||
### Path 参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| id | integer | 是 | 企业ID |
|
||||
|
||||
---
|
||||
|
||||
### Query 参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| page | integer | 否 | 页码(默认1) |
|
||||
| page_size | integer | 否 | 每页数量(最大100) |
|
||||
| status | integer | 否 | 卡状态 |
|
||||
| carrier_id | integer | 否 | 运营商ID |
|
||||
| iccid | string | 否 | ICCID(模糊查询) |
|
||||
| virtual_no | string | 否 | 虚拟号(模糊查询) |
|
||||
|
||||
---
|
||||
|
||||
## 返回结构
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"items": [],
|
||||
"page": 1,
|
||||
"size": 10,
|
||||
"total": 100
|
||||
},
|
||||
"timestamp": "2026-03-31T12:00:00Z"
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
items 字段说明(企业卡信息)
|
||||
字段 类型 说明
|
||||
id integer 卡ID
|
||||
iccid string 卡号
|
||||
msisdn string 手机号
|
||||
virtual_no string 虚拟号
|
||||
carrier_id integer 运营商ID
|
||||
carrier_name string 运营商名称
|
||||
status integer 卡状态
|
||||
status_name string 状态名称
|
||||
network_status integer 网络状态
|
||||
network_status_name string 网络状态名称
|
||||
package_id integer 套餐ID
|
||||
package_name string 套餐名称
|
||||
device_id integer 绑定设备ID(可能为空)
|
||||
常见状态说明
|
||||
卡状态 status
|
||||
1:在库
|
||||
2:已分配
|
||||
3:已激活
|
||||
4:已停用
|
||||
|
||||
网络状态 network_status
|
||||
0:停机 / 异常
|
||||
1:正常
|
||||
|
||||
# 授权设备列表
|
||||
|
||||
## 接口说明
|
||||
获取**某个企业下已授权的设备列表**。
|
||||
|
||||
- 请求方式:GET
|
||||
- 接口地址:`/api/admin/enterprises/{id}/devices`
|
||||
- 认证方式:Bearer Token
|
||||
|
||||
---
|
||||
|
||||
## 请求参数
|
||||
|
||||
### Path 参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| id | integer | 是 | 企业ID |
|
||||
|
||||
---
|
||||
|
||||
### Query 参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| page | integer | 否 | 页码 |
|
||||
| page_size | integer | 否 | 每页数量 |
|
||||
| virtual_no | string | 否 | 设备虚拟号(模糊查询) |
|
||||
|
||||
---
|
||||
|
||||
## 返回结构
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"items": [],
|
||||
"total": 100
|
||||
},
|
||||
"timestamp": "2026-03-31T12:00:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
items 字段说明(企业设备)
|
||||
字段 类型 说明
|
||||
device_id integer 设备ID
|
||||
device_name string 设备名称
|
||||
device_model string 设备型号
|
||||
virtual_no string 设备虚拟号
|
||||
card_count integer 已绑定卡数量
|
||||
authorized_at string 授权时间
|
||||
391
docs/佣金和钱包.md
Normal file
391
docs/佣金和钱包.md
Normal file
@@ -0,0 +1,391 @@
|
||||
# 1. 资产钱包概况 (需要新增我的钱包页面, 放到我的钱包里面)
|
||||
|
||||
## 接口说明
|
||||
获取**某个资产(卡 / 设备)的钱包余额信息**。
|
||||
⚠️ 企业账号不可调用。
|
||||
|
||||
- 请求方式:GET
|
||||
- 接口地址:`/api/admin/assets/{asset_type}/{id}/wallet`
|
||||
- 认证方式:Bearer Token
|
||||
|
||||
---
|
||||
|
||||
## 请求参数
|
||||
|
||||
### Path 参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| asset_type | string | 是 | 资产类型:card / device |
|
||||
| id | integer | 是 | 资产ID |
|
||||
|
||||
---
|
||||
|
||||
## 返回结构
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"wallet_id": 1,
|
||||
"balance": 10000,
|
||||
"available_balance": 8000,
|
||||
"frozen_balance": 2000,
|
||||
"currency": "CNY",
|
||||
"status": 1,
|
||||
"status_text": "正常",
|
||||
"resource_id": 123,
|
||||
"resource_type": "iot_card",
|
||||
"created_at": "2026-03-31T12:00:00Z",
|
||||
"updated_at": "2026-03-31T12:00:00Z"
|
||||
},
|
||||
"timestamp": "2026-03-31T12:00:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
字段说明
|
||||
字段 类型 说明
|
||||
wallet_id integer 钱包ID
|
||||
balance integer 总余额(分)
|
||||
available_balance integer 可用余额(分)= 总余额 - 冻结余额
|
||||
frozen_balance integer 冻结金额(分)
|
||||
currency string 币种(固定 CNY)
|
||||
status integer 钱包状态
|
||||
status_text string 状态说明
|
||||
resource_id integer 资产ID
|
||||
resource_type string 资产类型(iot_card / device)
|
||||
created_at string 创建时间
|
||||
updated_at string 更新时间
|
||||
|
||||
|
||||
# 2. 我的佣金概览 (放到首页)
|
||||
|
||||
## 接口说明
|
||||
获取当前账号的**佣金整体情况**(可提现、冻结、累计等)。
|
||||
|
||||
- 请求方式:GET
|
||||
- 接口地址:`/api/admin/my/commission-summary`
|
||||
- 认证方式:Bearer Token
|
||||
|
||||
---
|
||||
|
||||
## 请求参数
|
||||
无
|
||||
|
||||
---
|
||||
|
||||
## 返回结构
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"shop_id": 1,
|
||||
"shop_name": "测试店铺",
|
||||
"total_commission": 100000,
|
||||
"available_commission": 50000,
|
||||
"frozen_commission": 10000,
|
||||
"unwithdraw_commission": 30000,
|
||||
"withdrawing_commission": 10000,
|
||||
"withdrawn_commission": 40000
|
||||
},
|
||||
"timestamp": "2026-03-31T12:00:00Z"
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
字段说明
|
||||
字段 类型 说明
|
||||
shop_id integer 店铺ID
|
||||
shop_name string 店铺名称
|
||||
total_commission integer 累计佣金(分)
|
||||
available_commission integer 可提现佣金(分)
|
||||
frozen_commission integer 冻结佣金(分)
|
||||
unwithdraw_commission integer 未提现佣金(分)
|
||||
withdrawing_commission integer 提现中金额(分)
|
||||
withdrawn_commission integer 已提现佣金(分)
|
||||
|
||||
# 3. 我的佣金明细 (放到佣金中心里面)
|
||||
|
||||
## 接口说明
|
||||
获取当前账号的**佣金流水记录**(每一笔赚的钱)。
|
||||
|
||||
- 请求方式:GET
|
||||
- 接口地址:`/api/admin/my/commission-records`
|
||||
- 认证方式:Bearer Token
|
||||
|
||||
---
|
||||
|
||||
## 请求参数(Query)
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| page | integer | 否 | 页码(默认1) |
|
||||
| page_size | integer | 否 | 每页数量(最大100) |
|
||||
| commission_source | string | 否 | 佣金来源 |
|
||||
| iccid | string | 否 | ICCID(模糊查询) |
|
||||
| virtual_no | string | 否 | 设备虚拟号(模糊查询) |
|
||||
| order_no | string | 否 | 订单号(模糊查询) |
|
||||
|
||||
---
|
||||
|
||||
## 返回结构
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"items": [],
|
||||
"page": 1,
|
||||
"size": 10,
|
||||
"total": 100
|
||||
},
|
||||
"timestamp": "2026-03-31T12:00:00Z"
|
||||
}
|
||||
|
||||
```
|
||||
items 字段说明(佣金记录)
|
||||
字段 类型 说明
|
||||
id integer 记录ID
|
||||
amount integer 佣金金额(分)
|
||||
commission_source string 佣金来源
|
||||
status integer 状态
|
||||
status_name string 状态名称
|
||||
order_id integer 订单ID
|
||||
shop_id integer 店铺ID
|
||||
created_at string 创建时间
|
||||
佣金来源说明
|
||||
值 含义
|
||||
cost_diff 成本价差(赚差价)
|
||||
one_time 一次性佣金
|
||||
tier_bonus 梯度奖励(已废弃)
|
||||
状态说明
|
||||
状态 含义
|
||||
1 已入账(有效收入)
|
||||
2 已失效(不算钱)
|
||||
|
||||
# 4. 我的佣金统计(放到佣金中心里面)
|
||||
|
||||
## 接口说明
|
||||
按时间范围统计**佣金收入情况**(总收入 + 分类占比)。
|
||||
|
||||
- 请求方式:GET
|
||||
- 接口地址:`/api/admin/my/commission-stats`
|
||||
- 认证方式:Bearer Token
|
||||
|
||||
---
|
||||
|
||||
## 请求参数(Query)
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| shop_id | integer | 否 | 店铺ID |
|
||||
| start_time | string | 否 | 开始时间 |
|
||||
| end_time | string | 否 | 结束时间 |
|
||||
|
||||
---
|
||||
|
||||
## 返回结构
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"total_amount": 100000,
|
||||
"total_count": 50,
|
||||
"cost_diff_amount": 60000,
|
||||
"cost_diff_count": 30,
|
||||
"cost_diff_percent": 600,
|
||||
"one_time_amount": 40000,
|
||||
"one_time_count": 20,
|
||||
"one_time_percent": 400
|
||||
},
|
||||
"timestamp": "2026-03-31T12:00:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
字段说明
|
||||
字段 类型 说明
|
||||
total_amount integer 总佣金(分)
|
||||
total_count integer 总笔数
|
||||
cost_diff_amount integer 成本价差收入(分)
|
||||
cost_diff_count integer 成本价差笔数
|
||||
cost_diff_percent integer 成本价差占比(千分比)
|
||||
one_time_amount integer 一次性佣金(分)
|
||||
one_time_count integer 一次性佣金笔数
|
||||
one_time_percent integer 一次性佣金占比(千分比)
|
||||
特别说明
|
||||
占比是千分比
|
||||
600 = 60%
|
||||
400 = 40%
|
||||
|
||||
# 5. 我的每日佣金统计 (放到首页)
|
||||
|
||||
## 接口说明
|
||||
按天查看**佣金收入趋势**(每天赚了多少)。
|
||||
|
||||
- 请求方式:GET
|
||||
- 接口地址:`/api/admin/my/commission-daily-stats`
|
||||
- 认证方式:Bearer Token
|
||||
|
||||
---
|
||||
|
||||
## 请求参数(Query)
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| shop_id | integer | 否 | 店铺ID |
|
||||
| start_date | string | 否 | 开始日期(YYYY-MM-DD) |
|
||||
| end_date | string | 否 | 结束日期(YYYY-MM-DD) |
|
||||
| days | integer | 否 | 查询天数(默认30,最大365) |
|
||||
|
||||
---
|
||||
|
||||
## 返回结构
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": [
|
||||
{
|
||||
"date": "2026-03-01",
|
||||
"total_amount": 1000,
|
||||
"total_count": 5
|
||||
},
|
||||
{
|
||||
"date": "2026-03-02",
|
||||
"total_amount": 2000,
|
||||
"total_count": 8
|
||||
}
|
||||
],
|
||||
"timestamp": "2026-03-31T12:00:00Z"
|
||||
}
|
||||
```
|
||||
字段说明
|
||||
字段 类型 说明
|
||||
date string 日期
|
||||
total_amount integer 当日佣金(分)
|
||||
total_count integer 当日笔数
|
||||
使用场景
|
||||
做折线图(收入趋势)
|
||||
看哪天赚钱最多
|
||||
分析增长情况
|
||||
|
||||
# 6. 发起提现申请 (放到提现管理里面)
|
||||
|
||||
## 接口说明
|
||||
提交**佣金提现申请**(目前只支持支付宝)。
|
||||
|
||||
- 请求方式:POST
|
||||
- 接口地址:`/api/admin/my/withdrawal-requests`
|
||||
- 认证方式:Bearer Token
|
||||
|
||||
---
|
||||
|
||||
## 请求参数(Body)
|
||||
|
||||
```json
|
||||
{
|
||||
"account_name": "张三",
|
||||
"account_number": "1234567890",
|
||||
"amount": 10000,
|
||||
"withdrawal_method": "alipay"
|
||||
}
|
||||
参数说明
|
||||
参数名 类型 必填 说明
|
||||
account_name string 是 收款人姓名
|
||||
account_number string 是 收款账号(支付宝)
|
||||
amount integer 是 提现金额(分)
|
||||
withdrawal_method string 是 提现方式(固定:alipay)
|
||||
返回结构
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"id": 1,
|
||||
"withdrawal_no": "WD202603310001",
|
||||
"amount": 10000,
|
||||
"actual_amount": 9800,
|
||||
"fee": 200,
|
||||
"fee_rate": 200,
|
||||
"status": 1,
|
||||
"status_name": "审核中",
|
||||
"created_at": "2026-03-31T12:00:00Z"
|
||||
},
|
||||
"timestamp": "2026-03-31T12:00:00Z"
|
||||
}
|
||||
```
|
||||
字段说明
|
||||
字段 类型 说明
|
||||
id integer 提现申请ID
|
||||
withdrawal_no string 提现单号
|
||||
amount integer 申请金额(分)
|
||||
actual_amount integer 实际到账金额(分)
|
||||
fee integer 手续费(分)
|
||||
fee_rate integer 手续费率(基点)
|
||||
status integer 状态
|
||||
status_name string 状态名称
|
||||
created_at string 申请时间
|
||||
状态说明(常见)
|
||||
状态 含义
|
||||
1 审核中
|
||||
2 已打款
|
||||
3 已拒绝
|
||||
计算说明
|
||||
实际到账 = 提现金额 - 手续费
|
||||
手续费 = amount × fee_rate
|
||||
|
||||
# 7. 我的提现记录(放到提现管理里面)
|
||||
接口信息
|
||||
接口地址:GET /api/admin/my/withdrawal-requests
|
||||
接口说明:获取当前用户的提现记录列表
|
||||
认证方式:Bearer Token
|
||||
请求参数
|
||||
参数名 类型 必填 说明
|
||||
page integer 否 页码(>=1)
|
||||
page_size integer 否 每页数量(1-100)
|
||||
status integer 否 状态(1=待审批,2=已通过,3=已拒绝)
|
||||
start_time string 否 开始时间
|
||||
end_time string 否 结束时间
|
||||
响应结构
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"timestamp": "2024-01-01T00:00:00Z",
|
||||
"data": {
|
||||
"items": [],
|
||||
"page": 1,
|
||||
"size": 10,
|
||||
"total": 100
|
||||
}
|
||||
}
|
||||
data 字段说明
|
||||
字段 类型 说明
|
||||
items array 提现列表
|
||||
page integer 当前页
|
||||
size integer 每页数量
|
||||
total integer 总数
|
||||
items 字段说明
|
||||
字段 说明
|
||||
id 提现ID
|
||||
withdrawal_no 提现单号
|
||||
applicant_name 申请人
|
||||
amount 提现金额(分)
|
||||
actual_amount 实际到账(分)
|
||||
fee 手续费
|
||||
fee_rate 手续费率
|
||||
status 状态(1待审 2通过 3拒绝 4到账)
|
||||
status_name 状态名称
|
||||
withdrawal_method 提现方式(支付宝/微信/银行卡)
|
||||
account_name 收款人
|
||||
account_number 收款账号
|
||||
bank_name 银行
|
||||
created_at 申请时间
|
||||
processed_at 处理时间
|
||||
reject_reason 拒绝原因
|
||||
remark 备注
|
||||
427
docs/停复机.md
Normal file
427
docs/停复机.md
Normal file
@@ -0,0 +1,427 @@
|
||||
# 设备停机
|
||||
|
||||
## 接口信息
|
||||
|
||||
- **页面**:/asset-management/device-stop
|
||||
- **按钮名称**:停机
|
||||
- **权限编码**:asset_device_stop
|
||||
|
||||
---
|
||||
|
||||
## URL
|
||||
|
||||
`POST /api/admin/assets/device/{device_id}/stop`
|
||||
|
||||
---
|
||||
|
||||
## 请求参数
|
||||
|
||||
### Path 参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| device_id | integer | 是 | 设备ID |
|
||||
|
||||
### Body 参数(application/json)
|
||||
|
||||
无请求体参数
|
||||
|
||||
---
|
||||
|
||||
## 响应说明
|
||||
|
||||
### Response 字段
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| code | integer | 响应码 |
|
||||
| msg | string | 响应消息 |
|
||||
| timestamp | string | 时间戳 |
|
||||
| data | object | 返回数据 |
|
||||
|
||||
---
|
||||
|
||||
## data 字段(设备停机响应对象)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| success_count | integer | 成功停机卡数 |
|
||||
| fail_count | integer | 失败卡数 |
|
||||
| skip_count | integer | 跳过卡数(未实名或已停机) |
|
||||
| failed_items | array | 失败详情 |
|
||||
|
||||
---
|
||||
|
||||
## failed_items 字段(设备停机失败项对象)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| iccid | string | 卡ICCID |
|
||||
| reason | string | 失败原因 |
|
||||
|
||||
---
|
||||
|
||||
## 错误响应
|
||||
|
||||
| HTTP 状态码 | 说明 |
|
||||
|------------|------|
|
||||
| 400 | 请求参数错误 |
|
||||
| 401 | 未认证或认证已过期 |
|
||||
| 403 | 无权访问 |
|
||||
| 500 | 服务器内部错误 |
|
||||
|
||||
---
|
||||
|
||||
## 请求示例
|
||||
|
||||
```
|
||||
POST /api/admin/assets/device/12345/stop
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 响应示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"timestamp": "2024-03-30T10:30:00Z",
|
||||
"data": {
|
||||
"success_count": 48,
|
||||
"fail_count": 2,
|
||||
"skip_count": 5,
|
||||
"failed_items": [
|
||||
{
|
||||
"iccid": "8986001234567890123",
|
||||
"reason": "网络连接失败"
|
||||
},
|
||||
{
|
||||
"iccid": "8986001234567890124",
|
||||
"reason": "设备状态异常"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 使用说明
|
||||
|
||||
- **功能**:批量停机设备下所有已实名卡
|
||||
- **保护期**:设置1小时停机保护期
|
||||
- **影响范围**:仅对已实名卡生效,未实名或已停机的卡会被跳过
|
||||
- **返回结果**:详细统计停机成功、失败和跳过的卡数,以及失败原因
|
||||
|
||||
---
|
||||
|
||||
## 认证
|
||||
|
||||
- **认证方式**:Bearer Token (JWT)
|
||||
- **Header**:`Authorization: Bearer <token>`
|
||||
|
||||
---
|
||||
|
||||
## API 分类
|
||||
|
||||
- **模块**:资产管理
|
||||
- **状态**:已发布
|
||||
|
||||
---
|
||||
|
||||
## 服务器地址
|
||||
|
||||
- **测试环境**:https://cmp-api.boss160.cn
|
||||
|
||||
# 设备复机
|
||||
|
||||
## 接口信息
|
||||
|
||||
- **页面**:/asset-management/device
|
||||
- **按钮名称**:设备复机
|
||||
- **权限编码**:asset_device_start
|
||||
|
||||
---
|
||||
|
||||
## URL
|
||||
|
||||
`POST /api/admin/assets/device/{device_id}/start`
|
||||
|
||||
---
|
||||
|
||||
## 请求参数
|
||||
|
||||
### Path 参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| device_id | integer | 是 | 设备ID |
|
||||
|
||||
### Body 参数
|
||||
|
||||
无请求 Body 参数
|
||||
|
||||
---
|
||||
|
||||
## 响应说明
|
||||
|
||||
### Response 字段
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| code | integer | 响应码 |
|
||||
| msg | string | 响应消息 |
|
||||
| timestamp | string | 时间戳 |
|
||||
| data | object | 返回数据 |
|
||||
|
||||
---
|
||||
|
||||
## 错误响应
|
||||
|
||||
| HTTP 状态码 | 说明 |
|
||||
|------------|------|
|
||||
| 400 | 请求参数错误 |
|
||||
| 401 | 未认证或认证已过期 |
|
||||
| 403 | 无权访问 |
|
||||
| 500 | 服务器内部错误 |
|
||||
|
||||
---
|
||||
|
||||
## 请求示例
|
||||
|
||||
```
|
||||
POST /api/admin/assets/device/12345/start
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 响应示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"timestamp": "2024-03-30T10:30:00Z",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 功能说明
|
||||
|
||||
- **复机对象**:批量复机设备下所有已实名卡
|
||||
- **保护期**:设置1小时复机保护期
|
||||
|
||||
---
|
||||
|
||||
## 认证
|
||||
|
||||
- **认证方式**:Bearer Token (JWT)
|
||||
- **Header**:`Authorization: Bearer <token>`
|
||||
|
||||
---
|
||||
|
||||
## API 分类
|
||||
|
||||
- **模块**:资产管理
|
||||
- **状态**:已发布
|
||||
|
||||
---
|
||||
|
||||
## 服务器地址
|
||||
|
||||
- **测试环境**:https://cmp-api.boss160.cn
|
||||
|
||||
# 单卡停机
|
||||
|
||||
## 接口信息
|
||||
|
||||
- **页面**:/asset-management/card
|
||||
- **按钮名称**:单卡停机
|
||||
- **权限编码**:asset_card_stop
|
||||
|
||||
---
|
||||
|
||||
## URL
|
||||
|
||||
`POST /api/admin/assets/card/{iccid}/stop`
|
||||
|
||||
---
|
||||
|
||||
## 请求参数
|
||||
|
||||
### Path 参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| iccid | string | 是 | 卡ICCID |
|
||||
|
||||
### Body 参数
|
||||
|
||||
无请求 Body 参数
|
||||
|
||||
---
|
||||
|
||||
## 响应说明
|
||||
|
||||
### Response 字段
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| code | integer | 响应码 |
|
||||
| msg | string | 响应消息 |
|
||||
| timestamp | string | 时间戳 |
|
||||
| data | object | 返回数据 |
|
||||
|
||||
---
|
||||
|
||||
## 错误响应
|
||||
|
||||
| HTTP 状态码 | 说明 |
|
||||
|------------|------|
|
||||
| 400 | 请求参数错误 |
|
||||
| 401 | 未认证或认证已过期 |
|
||||
| 403 | 无权访问 |
|
||||
| 500 | 服务器内部错误 |
|
||||
|
||||
---
|
||||
|
||||
## 请求示例
|
||||
|
||||
```
|
||||
POST /api/admin/assets/card/89860123456789012345/stop
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 响应示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"timestamp": "2024-03-30T10:30:00Z",
|
||||
"data": null
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 功能说明
|
||||
|
||||
- **操作对象**:手动停机单张卡(通过ICCID)
|
||||
- **约束条件**:受设备保护期约束
|
||||
|
||||
---
|
||||
|
||||
## 认证
|
||||
|
||||
- **认证方式**:Bearer Token (JWT)
|
||||
- **Header**:`Authorization: Bearer <token>`
|
||||
|
||||
---
|
||||
|
||||
## API 分类
|
||||
|
||||
- **模块**:资产管理
|
||||
- **状态**:已发布
|
||||
|
||||
---
|
||||
|
||||
## 服务器地址
|
||||
|
||||
- **测试环境**:https://cmp-api.boss160.cn
|
||||
|
||||
# 单卡复机
|
||||
|
||||
## 接口信息
|
||||
|
||||
- **页面**:/asset-management/card
|
||||
- **按钮名称**:单卡复机
|
||||
- **权限编码**:asset_card_start
|
||||
|
||||
---
|
||||
|
||||
## URL
|
||||
|
||||
`POST /api/admin/assets/card/{iccid}/start`
|
||||
|
||||
---
|
||||
|
||||
## 请求参数
|
||||
|
||||
### Path 参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| iccid | string | 是 | 卡ICCID |
|
||||
|
||||
---
|
||||
|
||||
## 响应说明
|
||||
|
||||
### Response 字段
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| code | integer | 响应码 |
|
||||
| msg | string | 响应消息 |
|
||||
| timestamp | string | 时间戳 |
|
||||
| data | object | 返回数据 |
|
||||
|
||||
---
|
||||
|
||||
## 错误响应
|
||||
|
||||
| HTTP 状态码 | 说明 |
|
||||
|------------|------|
|
||||
| 400 | 请求参数错误 |
|
||||
| 401 | 未认证或认证已过期 |
|
||||
| 403 | 无权访问 |
|
||||
| 500 | 服务器内部错误 |
|
||||
|
||||
---
|
||||
|
||||
## 请求示例
|
||||
|
||||
```
|
||||
POST /api/admin/assets/card/89860123456789012345/start
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 响应示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"timestamp": "2024-03-30T10:30:00Z",
|
||||
"data": {
|
||||
"iccid": "89860123456789012345",
|
||||
"status": "active"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 认证
|
||||
|
||||
- **认证方式**:Bearer Token (JWT)
|
||||
- **Header**:`Authorization: Bearer <token>`
|
||||
|
||||
---
|
||||
|
||||
## API 分类
|
||||
|
||||
- **模块**:资产管理
|
||||
- **状态**:已发布
|
||||
|
||||
---
|
||||
|
||||
## 服务器地址
|
||||
|
||||
- **测试环境**:https://cmp-api.boss160.cn
|
||||
135
docs/资产列表(代理调用的接口).md
Normal file
135
docs/资产列表(代理调用的接口).md
Normal file
@@ -0,0 +1,135 @@
|
||||
# 单卡列表(未绑定设备)
|
||||
|
||||
## 接口说明
|
||||
获取**未绑定设备的 IoT 卡列表**,支持分页和多条件筛选。
|
||||
|
||||
- 请求方式:GET
|
||||
- 接口地址:`/api/admin/iot-cards/standalone`
|
||||
- 认证方式:Bearer Token
|
||||
|
||||
---
|
||||
|
||||
## 请求参数(Query)
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| page | integer | 否 | 页码(默认1) |
|
||||
| page_size | integer | 否 | 每页数量(最大100) |
|
||||
| status | integer | 否 | 状态:1在库 / 2已分销 / 3已激活 / 4已停用 |
|
||||
| carrier_id | integer | 否 | 运营商ID |
|
||||
---
|
||||
|
||||
## 返回结构
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"items": [],
|
||||
"page": 1,
|
||||
"size": 10,
|
||||
"total": 100
|
||||
},
|
||||
"timestamp": "2026-03-31T12:00:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
items 字段说明(卡信息)
|
||||
字段 类型 说明
|
||||
id integer 卡ID
|
||||
iccid string 卡号
|
||||
imsi string IMSI
|
||||
msisdn string 接入号
|
||||
virtual_no string 虚拟号
|
||||
status integer 卡状态
|
||||
activation_status integer 激活状态
|
||||
network_status integer 网络状态(0停机 / 1开机)
|
||||
real_name_status integer 实名状态(0未实名 / 1已实名)
|
||||
carrier_name string 运营商名称
|
||||
carrier_type string 运营商类型
|
||||
supplier string 供应商
|
||||
batch_no string 批次号
|
||||
series_name string 套餐系列
|
||||
shop_name string 分销商
|
||||
data_usage_mb integer 累计流量
|
||||
current_month_usage_mb number 本月流量
|
||||
accumulated_recharge integer 累计充值(分)
|
||||
created_at string 创建时间
|
||||
updated_at string 更新时间
|
||||
|
||||
|
||||
# 设备列表
|
||||
|
||||
## 接口说明
|
||||
获取设备列表,支持分页 + 多条件筛选(名称、状态、厂家等)。
|
||||
|
||||
- 请求方式:GET
|
||||
- 接口地址:`/api/admin/devices`
|
||||
- 认证方式:Bearer Token
|
||||
|
||||
---
|
||||
|
||||
## 请求参数(Query)
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| page | integer | 否 | 页码(默认1) |
|
||||
| page_size | integer | 否 | 每页数量(最大100) |
|
||||
| virtual_no | string | 否 | 虚拟号(模糊查询) |
|
||||
| device_name | string | 否 | 设备名称(模糊查询) |
|
||||
| status | integer | 否 | 状态:1在库 / 2已分销 / 3已激活 / 4已停用 |
|
||||
|
||||
---
|
||||
|
||||
## 返回结构
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"items": [],
|
||||
"page": 1,
|
||||
"size": 10,
|
||||
"total": 100
|
||||
},
|
||||
"timestamp": "2026-03-31T12:00:00Z"
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
items 字段说明(设备信息)
|
||||
字段 类型 说明
|
||||
id integer 设备ID
|
||||
device_name string 设备名称
|
||||
device_model string 设备型号
|
||||
device_type string 设备类型
|
||||
manufacturer string 制造商
|
||||
imei string 设备IMEI
|
||||
sn string 序列号
|
||||
virtual_no string 设备虚拟号
|
||||
status integer 状态
|
||||
status_name string 状态名称
|
||||
online_status integer 在线状态(0未知 / 1在线 / 2离线)
|
||||
bound_card_count integer 已绑定卡数量
|
||||
max_sim_slots integer 最大插槽数
|
||||
switch_mode string 切卡模式(0自动 / 1手动)
|
||||
series_name string 套餐系列
|
||||
shop_name string 所属店铺
|
||||
software_version string 固件版本
|
||||
accumulated_recharge integer 累计充值(分)
|
||||
activated_at string 激活时间
|
||||
last_online_time string 最后在线时间
|
||||
created_at string 创建时间
|
||||
updated_at string 更新时间
|
||||
状态说明
|
||||
设备状态 status
|
||||
1:在库
|
||||
2:已分销
|
||||
3:已激活
|
||||
4:已停用
|
||||
在线状态 online_status
|
||||
0:未知
|
||||
1:在线
|
||||
2:离线
|
||||
333
docs/资产详情.md
Normal file
333
docs/资产详情.md
Normal file
@@ -0,0 +1,333 @@
|
||||
# 资产套餐列表
|
||||
|
||||
## 接口信息
|
||||
|
||||
- **页面**:/asset-management/packages
|
||||
- **按钮名称**:套餐列表
|
||||
- **权限编码**:asset_packages_list
|
||||
|
||||
---
|
||||
|
||||
## URL
|
||||
|
||||
`GET /api/admin/assets/{asset_type}/{id}/packages`
|
||||
|
||||
---
|
||||
|
||||
## 请求参数
|
||||
|
||||
### Path 参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| asset_type | string | 是 | 资产类型:card 或 device |
|
||||
| id | integer | 是 | 资产ID |
|
||||
|
||||
### Query 参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| page | integer | 否 | 页码(默认1) |
|
||||
| page_size | integer | 否 | 每页条数(默认50,最大100) |
|
||||
|
||||
---
|
||||
|
||||
## 响应说明
|
||||
|
||||
### Response 字段
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| code | integer | 响应码 |
|
||||
| msg | string | 响应消息 |
|
||||
| timestamp | string | 时间戳 |
|
||||
| data | object | 返回数据 |
|
||||
|
||||
---
|
||||
|
||||
## data 字段(资产套餐结果对象)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| items | array | 套餐列表 |
|
||||
| page | integer | 当前页码 |
|
||||
| page_size | integer | 每页条数 |
|
||||
| total | integer | 总条数 |
|
||||
|
||||
---
|
||||
|
||||
## items 字段(资产套餐响应对象)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| package_id | integer | 套餐ID |
|
||||
| package_name | string | 套餐名称 |
|
||||
| package_type | string | 套餐类型:formal/addon |
|
||||
| status | integer | 状态:0待生效 1生效中 2已用完 3已过期 4已失效 |
|
||||
| status_name | string | 状态名称 |
|
||||
| usage_type | string | 使用类型:single_card/device |
|
||||
| priority | integer | 优先级 |
|
||||
| package_usage_id | integer | 套餐使用记录ID |
|
||||
| master_usage_id | integer | 主套餐ID(加油包时有值) |
|
||||
| data_limit_mb | integer | 套餐真流量总量(MB) |
|
||||
| data_usage_mb | integer | 已用真流量(MB) |
|
||||
| virtual_limit_mb | integer | 套餐虚流量总量(MB),按virtual_ratio换算 |
|
||||
| virtual_used_mb | number | 已用虚流量(MB),按virtual_ratio换算 |
|
||||
| virtual_remain_mb | number | 剩余虚流量(MB),按virtual_ratio换算 |
|
||||
| virtual_ratio | number | 虚流量比例(real/virtual) |
|
||||
| created_at | string | 创建时间 |
|
||||
| activated_at | string | 激活时间(待生效套餐为空) |
|
||||
| expires_at | string | 到期时间(待生效套餐为空) |
|
||||
|
||||
---
|
||||
|
||||
## 错误响应
|
||||
|
||||
| HTTP 状态码 | 说明 |
|
||||
|------------|------|
|
||||
| 400 | 请求参数错误 |
|
||||
| 401 | 未认证或认证已过期 |
|
||||
| 403 | 无权访问 |
|
||||
| 500 | 服务器内部错误 |
|
||||
|
||||
---
|
||||
|
||||
## 请求示例
|
||||
|
||||
```
|
||||
GET /api/admin/assets/card/12345/packages?page=1&page_size=50
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 响应示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"timestamp": "2024-03-30T10:30:00Z",
|
||||
"data": {
|
||||
"page": 1,
|
||||
"page_size": 50,
|
||||
"total": 5,
|
||||
"items": [
|
||||
{
|
||||
"package_id": 101,
|
||||
"package_name": "套餐A-10GB",
|
||||
"package_type": "formal",
|
||||
"status": 1,
|
||||
"status_name": "生效中",
|
||||
"usage_type": "single_card",
|
||||
"priority": 1,
|
||||
"package_usage_id": 1001,
|
||||
"master_usage_id": null,
|
||||
"data_limit_mb": 10240,
|
||||
"data_usage_mb": 2560,
|
||||
"virtual_limit_mb": 15360,
|
||||
"virtual_used_mb": 3840,
|
||||
"virtual_remain_mb": 11520,
|
||||
"virtual_ratio": 1.5,
|
||||
"created_at": "2024-01-15T08:00:00Z",
|
||||
"activated_at": "2024-01-15T08:00:00Z",
|
||||
"expires_at": "2024-04-15T08:00:00Z"
|
||||
},
|
||||
{
|
||||
"package_id": 102,
|
||||
"package_name": "加油包-2GB",
|
||||
"package_type": "addon",
|
||||
"status": 1,
|
||||
"status_name": "生效中",
|
||||
"usage_type": "single_card",
|
||||
"priority": 2,
|
||||
"package_usage_id": 1002,
|
||||
"master_usage_id": 1001,
|
||||
"data_limit_mb": 2048,
|
||||
"data_usage_mb": 512,
|
||||
"virtual_limit_mb": 3072,
|
||||
"virtual_used_mb": 768,
|
||||
"virtual_remain_mb": 2304,
|
||||
"virtual_ratio": 1.5,
|
||||
"created_at": "2024-03-01T10:00:00Z",
|
||||
"activated_at": "2024-03-01T10:00:00Z",
|
||||
"expires_at": "2024-03-31T23:59:59Z"
|
||||
},
|
||||
{
|
||||
"package_id": 103,
|
||||
"package_name": "套餐B-20GB",
|
||||
"package_type": "formal",
|
||||
"status": 0,
|
||||
"status_name": "待生效",
|
||||
"usage_type": "single_card",
|
||||
"priority": 3,
|
||||
"package_usage_id": 1003,
|
||||
"master_usage_id": null,
|
||||
"data_limit_mb": 20480,
|
||||
"data_usage_mb": 0,
|
||||
"virtual_limit_mb": 30720,
|
||||
"virtual_used_mb": 0,
|
||||
"virtual_remain_mb": 30720,
|
||||
"virtual_ratio": 1.5,
|
||||
"created_at": "2024-03-25T14:00:00Z",
|
||||
"activated_at": null,
|
||||
"expires_at": null
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 认证
|
||||
|
||||
- **认证方式**:Bearer Token (JWT)
|
||||
- **Header**:`Authorization: Bearer <token>`
|
||||
|
||||
---
|
||||
|
||||
## API 分类
|
||||
|
||||
- **模块**:资产管理
|
||||
- **状态**:已发布
|
||||
|
||||
---
|
||||
|
||||
## 服务器地址
|
||||
|
||||
- **测试环境**:https://cmp-api.boss160.cn
|
||||
|
||||
|
||||
# 当前生效套餐
|
||||
|
||||
## 接口信息
|
||||
|
||||
- **页面**:/asset-management/current-package
|
||||
- **按钮名称**:当前套餐
|
||||
- **权限编码**:asset_current_package
|
||||
|
||||
---
|
||||
|
||||
## URL
|
||||
|
||||
`GET /api/admin/assets/{asset_type}/{id}/current-package`
|
||||
|
||||
---
|
||||
|
||||
## 请求参数
|
||||
|
||||
### Path 参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| asset_type | string | 是 | 资产类型:card 或 device |
|
||||
| id | integer | 是 | 资产ID |
|
||||
|
||||
---
|
||||
|
||||
## 响应说明
|
||||
|
||||
### Response 字段
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| code | integer | 响应码 |
|
||||
| msg | string | 响应消息 |
|
||||
| timestamp | string | 时间戳 |
|
||||
| data | object | 返回数据 |
|
||||
|
||||
---
|
||||
|
||||
## data 字段(资产套餐响应对象)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| package_id | integer | 套餐ID |
|
||||
| package_name | string | 套餐名称 |
|
||||
| package_type | string | 套餐类型:formal/addon |
|
||||
| status | integer | 状态:0待生效 1生效中 2已用完 3已过期 4已失效 |
|
||||
| status_name | string | 状态名称 |
|
||||
| usage_type | string | 使用类型:single_card/device |
|
||||
| priority | integer | 优先级 |
|
||||
| package_usage_id | integer | 套餐使用记录ID |
|
||||
| master_usage_id | integer | 主套餐ID(加油包时有值) |
|
||||
| data_limit_mb | integer | 套餐真流量总量(MB) |
|
||||
| data_usage_mb | integer | 已用真流量(MB) |
|
||||
| virtual_limit_mb | integer | 套餐虚流量总量(MB),按virtual_ratio换算 |
|
||||
| virtual_used_mb | number | 已用虚流量(MB),按virtual_ratio换算 |
|
||||
| virtual_remain_mb | number | 剩余虚流量(MB),按virtual_ratio换算 |
|
||||
| virtual_ratio | number | 虚流量比例(real/virtual) |
|
||||
| created_at | string | 创建时间 |
|
||||
| activated_at | string | 激活时间(待生效套餐为空) |
|
||||
| expires_at | string | 到期时间(待生效套餐为空) |
|
||||
|
||||
---
|
||||
|
||||
## 错误响应
|
||||
|
||||
| HTTP 状态码 | 说明 |
|
||||
|------------|------|
|
||||
| 400 | 请求参数错误 |
|
||||
| 401 | 未认证或认证已过期 |
|
||||
| 403 | 无权访问 |
|
||||
| 500 | 服务器内部错误 |
|
||||
|
||||
---
|
||||
|
||||
## 请求示例
|
||||
|
||||
```
|
||||
GET /api/admin/assets/card/12345/current-package
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 响应示例
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"timestamp": "2024-03-30T10:30:00Z",
|
||||
"data": {
|
||||
"package_id": 101,
|
||||
"package_name": "套餐A-10GB",
|
||||
"package_type": "formal",
|
||||
"status": 1,
|
||||
"status_name": "生效中",
|
||||
"usage_type": "single_card",
|
||||
"priority": 1,
|
||||
"package_usage_id": 1001,
|
||||
"master_usage_id": null,
|
||||
"data_limit_mb": 10240,
|
||||
"data_usage_mb": 2560,
|
||||
"virtual_limit_mb": 15360,
|
||||
"virtual_used_mb": 3840,
|
||||
"virtual_remain_mb": 11520,
|
||||
"virtual_ratio": 1.5,
|
||||
"created_at": "2024-01-15T08:00:00Z",
|
||||
"activated_at": "2024-01-15T08:00:00Z",
|
||||
"expires_at": "2024-04-15T08:00:00Z"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 认证
|
||||
|
||||
- **认证方式**:Bearer Token (JWT)
|
||||
- **Header**:`Authorization: Bearer <token>`
|
||||
|
||||
---
|
||||
|
||||
## API 分类
|
||||
|
||||
- **模块**:资产管理
|
||||
- **状态**:已发布
|
||||
|
||||
---
|
||||
|
||||
## 服务器地址
|
||||
|
||||
- **测试环境**:https://cmp-api.boss160.cn
|
||||
Reference in New Issue
Block a user