import { requestClient } from '#/api/request'; // ==================== 类型定义 ==================== /** 实时客流区域信息 */ export interface TrafficAreaItem { areaId: number; areaName: string; todayIn: number; todayOut: number; currentOccupancy: number; deviceCount: number; } /** 全局实时客流响应 */ export interface TrafficRealtimeResp { totalIn: number; totalOut: number; currentOccupancy: number; areas: TrafficAreaItem[]; hourlyTrend: { hours: string[]; inData: number[]; outData: number[]; }; yesterdayHourlyTrend?: { hours: string[]; inData: number[]; outData: number[]; }; message?: string; // 提示信息,如"该区域暂未配置客流设备" } /** 客流趋势响应(全局/设备/区域通用) */ export interface TrafficTrendResp { deviceId?: null | number; areaId?: null | number; dates: string[]; inData: number[]; outData: number[]; netData: number[]; totalIn: number; totalOut: number; } /** 设备/区域实时客流响应(单条) */ export interface DeviceTrafficRealtimeResp { deviceId: number; deviceName: null | string; areaId: null | number; areaName: null | string; todayIn: number; todayOut: number; currentOccupancy: number; hourlyTrend: { hours: string[]; inData: number[]; outData: number[]; }; yesterdayHourlyTrend?: { hours: string[]; inData: number[]; outData: number[]; }; } /** 趋势查询参数 */ export interface TrafficTrendQuery { deviceId?: number; areaId?: number; areaIds?: string; // 逗号分隔的区域ID列表 startDate?: string; // yyyy-MM-dd endDate?: string; // yyyy-MM-dd } // ==================== 迁移接口(路径变更) ==================== /** 获取全局实时客流数据 */ export function getTrafficRealtime(date?: string) { return requestClient.get('/ops/traffic/realtime', { params: date ? { date } : undefined, }); } /** 获取全局近7天客流趋势 */ export function getTrafficTrend(params?: TrafficTrendQuery) { return requestClient.get('/ops/traffic/trend', { params, }); } // ==================== 新增接口 ==================== /** 获取单设备实时客流 */ export function getDeviceRealtime(deviceId: number) { return requestClient.get( '/ops/traffic/device/realtime', { params: { deviceId } }, ); } /** 获取区域实时客流(汇总,返回与全局一致的结构) */ export function getAreaRealtime(areaIds: number[], date?: string) { return requestClient.get('/ops/traffic/area/realtime', { params: { areaIds: areaIds.join(','), ...(date ? { date } : {}) }, }); } /** 获取单设备客流趋势 */ export function getDeviceTrend(params: TrafficTrendQuery) { return requestClient.get('/ops/traffic/device/trend', { params, }); } /** 获取区域客流趋势(汇总) */ export function getAreaTrend(params: TrafficTrendQuery) { return requestClient.get('/ops/traffic/area/trend', { params, }); }