供应商 — 首页(移动端 / 小程序)
1. 概述
| 项 |
说明 |
| Base Path |
/app/supplier/home |
| 数据表 |
biz_trade_order、biz_supplier_settlement、biz_entry_isolation、biz_entry_isolation_alloc、biz_isolation_patrol、biz_market_entry、biz_market_entry_ear_tag、biz_supplier |
| 鉴权 |
需登录(Token) |
| 身份 |
当前登录 sys_user.user_id 须绑定 biz_supplier.sys_user_id(后台「分配账号」) |
| 界面参考 |
Snipaste_2026-06-01_21-03-22.jpg |
| 模块索引 |
README.md |
界面 Tab「实时 / 昨日 / 7日 / 30日」与接口 range 对应关系:
| 界面 |
range |
| 实时(今日) |
TODAY |
| 昨日 |
YESTERDAY |
| 7日 |
DAYS_7 |
| 30日 |
DAYS_30 |
2. 首页看板
GET /app/supplier/home/dashboard
2.1 请求
| 参数 |
位置 |
必填 |
说明 |
range |
Query |
否 |
TODAY(默认)、YESTERDAY、DAYS_7、DAYS_30 |
2.2 统计口径
交易数据(随 range 切换)
- 订单:仅
supplier_id = 当前供应商 且 del_flag = 0 的 biz_trade_order。
- 时段按订单
create_time(下单时间)落在对应自然日区间内统计。
- 7日:
[今日-6日, 今日] 共 7 个自然日;30日:[今日-29日, 今日] 共 30 个自然日。
| 指标 |
规则 |
| 交易金额 |
sum(total_amount) |
| 交易订单数 |
count(*) |
| 支付买家数 |
count(distinct distributor_id),且 order_status = 1(已支付) |
| 交易牦牛数 |
sum(total_heads) |
结算数据(随 range 切换)
- 表:
biz_supplier_settlement,supplier_id = 当前供应商,del_flag = 0,settlement_status = 1(已完成)。
- 时段按
settle_finish_time 落在对应自然日区间内统计。
| 指标 |
规则 |
| 结算金额 |
sum(payable_amount) |
| 服务费金额 |
sum(service_fee_amount) |
交易金额趋势(随 range 切换)
- 数据源:
biz_trade_order,按 create_time 汇总 total_amount。
- 今日 / 昨日:按小时,固定 24 个桶(
00:00~23:00),无数据补 0。
- 7日 / 30日:按自然日连续补点,横轴
MM-dd,无数据补 0。
实时牦牛状态(固定今日,不随 range 切换)
| 字段 |
说明 |
tradedHeads |
已交易:今日下单订单 sum(total_heads)(create_time 为今日) |
isolationEarTags |
隔离中:当前处于隔离期内(entry_time 日期 ≤ 今日 ≤ expected_release_date)的入场隔离耳标去重计数,剔除该供应商关联栏位在 biz_isolation_patrol 中 sick_dead_qty > 0 且填写了耳标 的病死记录 |
enteredPenEarTags |
已进栏:今日 biz_market_entry.entry_time 的进栏登记关联 biz_market_entry_ear_tag 去重耳标数 |
pendingPayHeads |
待支付:当前供应商 order_status = 0 订单的 sum(total_heads) |
2.3 响应 data
| 字段 |
类型 |
说明 |
range |
string |
请求时段编码 |
rangeName |
string |
中文:今日 / 昨日 / 7日 / 30日 |
updatedAt |
string |
统计刷新时间 yyyy-MM-dd HH:mm:ss |
trendGranularity |
string |
HOUR(今日、昨日)或 DAY(7日、30日) |
tradeSummary |
object |
交易汇总,见下表 |
settlementSummary |
object |
结算汇总,见下表 |
amountTrend |
array |
交易金额趋势点 |
yakStatus |
object |
实时牦牛状态(今日) |
tradeSummary
| 字段 |
说明 |
totalAmount |
交易金额(元) |
orderCount |
交易订单数 |
payingBuyerCount |
支付买家数 |
totalHeads |
交易牦牛数(头) |
settlementSummary
| 字段 |
说明 |
payableAmount |
结算金额(元) |
serviceFeeAmount |
服务费金额(元) |
amountTrend[]
| 字段 |
说明 |
bucketLabel |
横轴:HH:00(按小时)或 MM-dd(按天) |
amount |
该时段内订单 total_amount 合计(元) |
yakStatus
| 字段 |
说明 |
tradedHeads |
已交易(头) |
isolationEarTags |
隔离中(耳标数) |
enteredPenEarTags |
已进栏(耳标数) |
pendingPayHeads |
待支付(头) |
2.4 示例
GET /app/supplier/home/dashboard?range=TODAY
{
"code": 200,
"msg": "操作成功",
"data": {
"range": "TODAY",
"rangeName": "今日",
"updatedAt": "2026-05-26 16:00:00",
"trendGranularity": "HOUR",
"tradeSummary": {
"totalAmount": 74300,
"orderCount": 2,
"payingBuyerCount": 2,
"totalHeads": 6
},
"settlementSummary": {
"payableAmount": 36500,
"serviceFeeAmount": 600
},
"amountTrend": [
{ "bucketLabel": "00:00", "amount": 0 },
{ "bucketLabel": "16:00", "amount": 74300 }
],
"yakStatus": {
"tradedHeads": 129,
"isolationEarTags": 0,
"enteredPenEarTags": 30,
"pendingPayHeads": 4
}
}
}
2.5 错误说明
| 场景 |
说明 |
| 未绑定供应商 |
当前账号未绑定供应商,无法查看首页统计 |
非法 range |
统计时段仅支持 TODAY、YESTERDAY、DAYS_7、DAYS_30 |