69 lines
2.4 KiB
Markdown
69 lines
2.4 KiB
Markdown
# position.ts
|
||
|
||
**路径**:`src/api/position.ts`
|
||
|
||
## 功能用途
|
||
|
||
持仓相关 API:分页获取持仓列表,以及将 `ClobPositionItem` 映射为钱包展示项。`PageResult` 来自 `@/api/types`,使用 `buildQuery` 构建请求参数。接口定义以 Swagger doc.json 为准。
|
||
|
||
## 核心能力
|
||
|
||
- `getPositionList`:分页获取持仓列表(需鉴权 x-token、x-user-id);返回项含 `needClaim`、`market`(内嵌市场 question、outcomes、outcomePrices)
|
||
- `mapPositionToDisplayItem`:将接口项转为展示结构;`market` 优先用 `market.question`,否则用 marketID;`avgNow` 有 `market.outcomePrices` 时展示「AVG → NOW」格式;`iconChar`/`iconClass`/`imageUrl` 用于展示图标(market.image 优先)
|
||
|
||
## GET /clob/position/getPositionList
|
||
|
||
### 请求参数(Query)
|
||
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | number | 否 | 页码 |
|
||
| pageSize | number | 否 | 每页数量 |
|
||
| startCreatedAt | string | 否 | 开始时间 |
|
||
| endCreatedAt | string | 否 | 结束时间 |
|
||
| marketID | string | 否 | 市场ID |
|
||
| tokenID | string | 否 | Token ID |
|
||
| userID | number | 否 | 用户ID |
|
||
|
||
### 响应
|
||
|
||
`{ code, data, msg }`,`data` 为 `PageResult<ClobPositionItem>`。
|
||
|
||
### ClobPositionItem(实际返回结构)
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| ID | number | 主键 |
|
||
| userID | number | 用户ID |
|
||
| marketID | number \| string | 市场ID |
|
||
| tokenId | string | Token ID |
|
||
| size | string | 份额(6 位小数) |
|
||
| available | string | 可用份额 |
|
||
| lock | string | 锁单数量 |
|
||
| cost | string | 成本 |
|
||
| outcome | string | 方向 |
|
||
| version | number | 版本号 |
|
||
| needClaim | boolean | 是否待领取结算 |
|
||
| market | ClobPositionMarket | 内嵌市场详情(question、outcomes、outcomePrices 等) |
|
||
| createdAt | string | 创建时间 |
|
||
| updatedAt | string | 更新时间 |
|
||
|
||
### ClobPositionMarket(market 字段)
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| ID | number | 市场ID |
|
||
| question | string | 市场问题 |
|
||
| slug | string | 市场 slug |
|
||
| image | string | 市场图片 URL |
|
||
| icon | string | 市场图标 URL |
|
||
| outcomes | string[] | 选项(如 ["Up", "Down"]) |
|
||
| outcomePrices | string[] \| number[] | 各选项当前价格 |
|
||
| clobTokenIds | string[] | CLOB Token ID 列表 |
|
||
|
||
## 使用方式
|
||
|
||
```typescript
|
||
import { getPositionList, mapPositionToDisplayItem } from '@/api/position'
|
||
```
|