大屏 Magic-API 接口速查
========================================
分组：/dashboard
前端代理：/api/dashboard/*
源文件：livestock-trading-backend/data/magic-api/api/大屏数据/*.ms
说明：均为只读；复杂逻辑见各 .ms 文件。修改 .ms 后需重启后端。


--------------------------------------------------------------------------------
1. 系统配置
--------------------------------------------------------------------------------
GET /dashboard/system-config
文件：系统配置.ms | 前端：Dashboard.vue、ChinaMap.vue、systemConfig.js

业务：大屏静态配置（标题图、地图枢纽红原、城市坐标、流向等级配色等）。

数据表：无（脚本内硬编码，可在 magic-api 或 .ms 中改）


--------------------------------------------------------------------------------
2. 实时交易统计
--------------------------------------------------------------------------------
GET /dashboard/real-time-stats
文件：实时交易统计.ms | 前端：RealTimeStats.vue

业务：按日/周/月读取政务统计指标（牦牛交易量、订单量、买卖商户数）。

参数：dimension（可选）day / week / month，不传返回全部

表：gov_count_item
字段：key（mnjyzl/jdjyzl/xsshsl/cgshsl）, name, value, count_date
口径：day=最新 count_date；week=近7天；month=近30天；mnjyzl/jdjyzl 按日求和，xsshsl/cgshsl 取区间内最大值


--------------------------------------------------------------------------------
3. 交易所牦牛成交数据
--------------------------------------------------------------------------------
GET /dashboard/yak-trading-data
文件：交易所牦牛成交数据.ms | 前端：YakTradingData.vue

业务：近 6 个日/周/月时间桶的牦牛成交头数与订单数趋势（一条记录 = 一单）。

参数：period（可选）day / week / month，不传返回全部

表：gov_count_order_total
字段：id, yak_number, update_time
口径：SUM(yak_number) 为成交头数，COUNT(*) 为订单数；按 update_time 分桶
返回：labels, yakNumber, orderCount


--------------------------------------------------------------------------------
4. 综合销售统计
--------------------------------------------------------------------------------
GET /dashboard/comprehensive-sales-stats
文件：综合销售统计.ms | 前端：ComprehensiveSalesStats.vue

业务：三个饼图——本月销售、总体销售（按 origin_place Top5）、采购地区（按 buyer_place Top5）。

参数：type（可选）monthlySales / overallSalesDistribution / purchaseRegionDistribution

表：gov_count_order_total
字段：origin_place, buyer_place, yak_number, year, month


--------------------------------------------------------------------------------
5. 活牛/鲜肉价格趋势
--------------------------------------------------------------------------------
GET /dashboard/price-trend
文件：活牛鲜肉价格趋势.ms | 前端：YakPriceTrend.vue

业务：近 8 个月活牛、鲜肉采集均价（不做重量折算）。

表：gov_count_price
字段：year, month, price_key, value, unit
口径：
  活牛 — price_key = hx（活畜），各区域 AVG(value)
  鲜肉 — price_key IN (mnr, mnt, mnp)（牦牛肉/腿/排），各区域 AVG(value)
返回：labels, liveCattlePrice, beefPrice, liveUnit, beefUnit


--------------------------------------------------------------------------------
6. 交易中心实时服务信息
--------------------------------------------------------------------------------
GET /dashboard/exchange-service-info
文件：交易中心实时服务信息.ms | 前端：ExchangeMonitor.vue

业务：交易中心实时概览——供应/待售/已售头数、剩余车位、进场车辆、供应商数。

表：gov_count_real_info
条件：group_item = jygy，source_system = yzt
字段：key, name, value, tag, unit
key 映射：
  mngyzl → totalSupply（牦牛供应总量）
  dsmn   → forSaleYaks（待售牦牛）
  ysmn   → soldYaks（已售牦牛）
  sycw   → remainingParking（剩余车位）
  jccl   → enteringVehicles（进场车辆）
  gyssl  → supplierCount（供应商数量）
返回：上述 value + Tag + Unit


--------------------------------------------------------------------------------
7. 牦牛销售类型统计
--------------------------------------------------------------------------------
GET /dashboard/yak-sales-type-stats
文件：牦牛销售类型统计.ms | 前端：YakSalesTypeStats.vue

业务：按 purpose 统计成交头数与占比（一条记录 = 一单）。

表：gov_count_order_total
字段：purpose, yak_number
口径：GROUP BY purpose，SUM(yak_number)；空 purpose 归为「其他」
返回：name（屠宰/养殖/其他等）, value, percent


--------------------------------------------------------------------------------
8. 采购商户来源分析
--------------------------------------------------------------------------------
GET /dashboard/buyer-source-analysis
文件：采购商户来源分析.ms | 前端：PurchaserAnalysis.vue

业务：按 buyer_place 统计采购商户数量 Top9（一条记录 = 一单）。

表：gov_count_order_total
字段：buyer_place, buyer_name, id
口径：GROUP BY buyer_place，COUNT(DISTINCT buyer_name)；buyer_name 为空时按 id 计 1 户
返回：name, value, fullName, description


--------------------------------------------------------------------------------
9. 牦牛供应实时信息
--------------------------------------------------------------------------------
GET /dashboard/yak-supply-realtime-info
文件：牦牛供应实时信息.ms | 前端：SupplyDemandData.vue

业务：卖方进场登记列表（分页）及汇总（今日进场、总头数、交易中批次）。

参数：pageNo（默认 1）、pageSize（默认 5；勿用 page）

表及字段：
  yak_trade_entry_record — id, name, vehicle_no, phone, party_id, quarantine_certificate_no, entered_at, entry_type
  yak_trade_ear_tag_inventory — seller_entry_record_id, status, ear_tag_no
  yak_trade_entry_record_ear_tag — entry_record_id
  yak_sn_customer — id, region_name, address
条件：entry_type='SELLER'


--------------------------------------------------------------------------------
10. 牦牛供应详情
--------------------------------------------------------------------------------
GET /dashboard/yak-supply-detail
文件：牦牛供应详情.ms | 前端：SupplyDemandData.vue

业务：单条卖方进场详情（基本信息、耳标进度、关联成交订单、进场/检疫/称重图片 URL）。

参数：id（必填，yak_trade_entry_record.id）

表及字段：
  yak_trade_entry_record — id, name, vehicle_no, phone, party_id, quarantine_certificate_no, entry_photo_id, entered_at, entry_type
  yak_trade_ear_tag_inventory — seller_entry_record_id, ear_tag_no, status, locked_order_id
  yak_trade_entry_record_ear_tag — entry_record_id, certificate_image_file_id
  yak_trade_order / yak_trade_order_item — 订单与耳标明细
  yak_trade_weighing_record — weight, photo_id
  yak_trade_quarantine_certificate — certificate_no, image_file_id
  yak_sn_customer — region_name, address（买卖方名称）
  yak_car_record — 关联车辆
  sys_oss — url（图片解析）


--------------------------------------------------------------------------------
11. 市场环境监控
--------------------------------------------------------------------------------
GET /dashboard/market-environment
文件：市场环境监控.ms | 前端：MarketEnvironmentMonitor.vue

业务：环境温湿度 + 气象八项实时指标。

表：gov_count_real_info
条件：group_item = env-monitor，source_system = yzt
字段：key, name, value, tag, unit
key 映射：
  temperature     温度
  humidity        湿度
  aqi             空气质量
  pressure        大气压强
  uv              紫外线
  rainfall        降雨量
  wind_direction  风向（value=角度，tag=风向名）
  wind_power      风力（value=级数）
返回：上述 value + Tag + Unit


--------------------------------------------------------------------------------
12. 市场实时监控
--------------------------------------------------------------------------------
GET /dashboard/market-realtime-monitor
文件：市场实时监控.ms | 前端：MarketRealtimeMonitor.vue

业务：萤石云视频监控设备列表，EZUIKit 播放 ezopen 地址。

表及字段：
  iot_device_video — id, name, serial_number, channel_number, status, play_url, hd_play_url, preview_img_url, video_account_id, index, del_flag, is_show
  iot_video_account — id, app_key, token
关联：v.video_account_id = a.id
条件：del_flag='0'，is_show=true
返回：ezopenUrl, accessToken, preview 等


--------------------------------------------------------------------------------
13. 市场实时监控播放配置
--------------------------------------------------------------------------------
GET /dashboard/market-realtime-player-config
文件：市场实时监控播放配置.ms | 前端：MarketRealtimeMonitor.vue（ezvizPlayer.js）

业务：萤石云 EZUIKit 播放器参数（staticPath、template、scaleMode 等）。

数据表：无


--------------------------------------------------------------------------------
14. 地图迁徙数据
--------------------------------------------------------------------------------
GET /dashboard/map-trading-network
文件：地图迁徙数据.ms | 前端：ChinaMap.vue

业务：中央地图三种模式流向，头数 SUM(yak_number)，一条记录一单。

表：gov_count_order_total
字段：origin_place, destination_place, yak_number
口径：
  outflow 销售网络 — origin_place 含「红原」，按 destination_place 聚合，红原→全国
  inflow  源地供应 — destination_place 含「红原」，按 origin_place 聚合，全国→红原
  local   红原出栏 — destination_place 含「红原」且 origin_place 含「红原」，按 origin_place 乡镇聚合，县内乡镇→红原
关联：系统配置 mapHub.name 与脚本 hubName 需一致（默认「红原县」）


================================================================================
表 → 接口索引
================================================================================
gov_count_real_info           6, 11
gov_count_price               5
gov_count_order_total         3, 4, 7, 8, 14
gov_count_item                2
yak_sn_customer               4, 6, 9, 10
yak_trade_ear_tag_inventory   6, 9, 10
yak_trade_entry_record        6, 9, 10
yak_trade_entry_record_ear_tag  9, 10
yak_trade_order / _item       10
yak_trade_weighing_record     10
yak_trade_quarantine_certificate  10
yak_car_parking_zone          6
yak_car_record                6, 10
sys_oss                       10
iot_video_account             12
iot_device_video              12
（无表）                      1, 13
