xtraderClient/docs/api/position.md
2026-03-15 21:08:51 +08:00

69 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# position.ts
**路径**`src/api/position.ts`
## 功能用途
持仓相关 API分页获取持仓列表以及将 `ClobPositionItem` 映射为钱包展示项。`PageResult` 来自 `@/api/types`,使用 `buildQuery` 构建请求参数。接口定义以 Swagger doc.json 为准。
## 核心能力
- `getPositionList`:分页获取持仓列表(需鉴权 x-token、x-user-id返回项含 `market`(内嵌市场 question、outcomes、outcomePrices、**closed**
- `mapPositionToDisplayItem`:将接口项转为展示结构;`market` 优先用 `market.question`,否则用 marketID`avgNow``market.outcomePrices` 时展示「AVG → NOW」格式`iconChar`/`iconClass`/`imageUrl` 用于展示图标market.image 优先);**marketClosed** 取自 `market.closed`,用于钱包侧判断可结算/可领取
## 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 | 版本号 |
| market | ClobPositionMarket | 内嵌市场详情question、outcomes、outcomePrices、closed 等) |
| createdAt | string | 创建时间 |
| updatedAt | string | 更新时间 |
### ClobPositionMarketmarket 字段)
| 字段 | 类型 | 说明 |
|------|------|------|
| 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 列表 |
| closed | boolean | 市场是否已关闭true 表示可结算/可领取 |
## 使用方式
```typescript
import { getPositionList, mapPositionToDisplayItem } from '@/api/position'
```