import { defHttp } from '@jeesite/core/utils/http/axios'; import { useGlobSetting } from '@jeesite/core/hooks/setting'; import { ExpressInfo, ExpressInfoDetailPageDTO, ExpressInfoDTO, ExpressInfoPageDTO, HotelStayInfo, HotelStayInfoPageDTO, TrackCellTowerDTO, TrackEnLocalDTO, TrackMeetDTO, TrackMeetSummeryDTO, TogetherLiveInfo, TogetherLiveInfoPageDTO, TrackTogetherLiveDTO, TravelDataDTO, TravelRecordDTO, TravelTimelineDTO, } from './types/dto'; import { TogetherLiveDetailQuery, ExpressInfoQuery, TrackCellTowerQuery, TrackEnLocalQuery, TrackMeetQuery, TrackTogetherLiveQuery, TrackTogetherTravelQuery, } from './types/query'; import { CallRecord } from '@jeesite/call/api/types/dto'; import { Page } from '@jeesite/core/api/model/baseModel'; const { adminPath } = useGlobSetting(); const normalizeRequestData = (params: T) => { return Object.entries(params as Record).reduce>((acc, [key, value]) => { if (value === undefined || value === null || value === '') return acc; if (Array.isArray(value) && !value.length) return acc; acc[key] = value; return acc; }, {}); }; // ==================== 快递信息查询 ==================== /** * 统计第一级快递信息 */ export const statFirstExpressInfo = (params: ExpressInfoQuery) => defHttp.postJson({ url: adminPath + '/expressInfo/statFirstExpressInfo', data: normalizeRequestData(params), }); /** * 统计第二级快递信息 */ export const statSecondExpressInfo = (params: ExpressInfoQuery) => defHttp.postJson({ url: adminPath + '/expressInfo/statSecondExpressInfo', data: normalizeRequestData(params), }); // ==================== 基站轨迹分析 ==================== /** * 统计首次基站轨迹数据 */ export const statFirstTrackCellTower = (data: TrackCellTowerQuery) => defHttp.postJson({ url: adminPath + '/track/cellTower/statFirstTrackCellTower', data }); /** * 统计二次基站轨迹数据 */ export const statSecondTrackCellTower = (data: TrackCellTowerQuery) => defHttp.postJson({ url: adminPath + '/track/cellTower/statSecondTrackCellTower', data }); // ==================== 境外人员轨迹 ==================== /** * 统计第一次早晚详情 */ export const statFirstTrackEnLocal = (data: TrackEnLocalQuery) => defHttp.postJson<{ [key: string]: TrackEnLocalDTO[] }>({ url: adminPath + '/track/enLocal/statFirstTrackEnLocal', data, }); /** * 统计二次早晚详情 */ export const statSecondTrackEnLocal = (data: TrackEnLocalQuery) => defHttp.postJson>({ url: adminPath + '/track/enLocal/statSecondTrackEnLocal', data, }); // ==================== 寄递轨迹分析 ==================== /** * 统计首个寄递信息 */ export const statFirstExpressInfoByTrack = (params: ExpressInfoQuery) => defHttp.get({ url: adminPath + '/track/express/statFirstExpressInfo', params }); // ==================== 轨迹碰面分析 ==================== /** * 统计首次轨迹碰面 */ export const statFirstTrackMeet = (data: TrackMeetQuery) => defHttp.postJson({ url: adminPath + '/track/meet/statFirstTrackMeet', data, }); /** * 统计二次轨迹碰面详情 */ export const statSecondTrackMeet = (data: TrackMeetQuery) => defHttp.postJson({ url: adminPath + '/track/meet/statSecondTrackMeet', data, }); // ==================== 同住分析 ==================== /** * 统计首次同住信息 */ export const statFirstTrackTogetherLive = (data: TrackTogetherLiveQuery) => defHttp.postJson({ url: adminPath + '/track/togetherLive/statFirstTrackTogetherLive', data, }); /** * 统计二层同住信息 */ export const statSecondTrackTogetherLive = (data: TrackTogetherLiveQuery) => defHttp.postJson( { url: adminPath + '/track/togetherLive/statSecondTrackTogetherLive', data: normalizeRequestData(data), }, { errorMessageMode: 'none' }, ); /** * 酒店住宿详情 */ export const hotelStayInfoDetail = (data: TogetherLiveDetailQuery) => defHttp.postJson( { url: adminPath + '/track/togetherLive/hotelStayInfoDetail', data: normalizeRequestData(data), }, { errorMessageMode: 'none' }, ); /** * 同住服务详情 */ export const togetherLiveInfoDetail = (data: TogetherLiveDetailQuery) => defHttp.postJson( { url: adminPath + '/track/togetherLive/togetherLiveInfoDetail', data: normalizeRequestData(data), }, { errorMessageMode: 'none' }, ); // ==================== 同行旅行分析 ==================== /** * 统计同行旅行数据 */ export const statTogetherTravel = (data: TrackTogetherTravelQuery) => defHttp.postJson( { url: adminPath + '/track/togetherTravel/statTogetherTravel', data }, { errorMessageMode: 'none' }, ); /** * 统计同行旅行第二层记录 */ export const statSecondTogetherTravel = (data: TrackTogetherTravelQuery) => defHttp.postJson( { url: adminPath + '/track/togetherTravel/statSecondTogetherTravel', data: normalizeRequestData(data), }, { errorMessageMode: 'none' }, ); /** * 统计同行旅行第三层详情 */ export const statThreeTogetherTravel = (data: TrackTogetherTravelQuery) => defHttp.postJson | Record[] | { [key: string]: any }>( { url: adminPath + '/track/togetherTravel/statThreeTogetherTravel', data: normalizeRequestData(data), }, { errorMessageMode: 'none' }, ); /** * 兼容旧版同行汇总接口 */ export const legacyTravelTimeline = (data: TrackTogetherTravelQuery & { caseId?: string | number }) => defHttp.postJson({ url: '/findPeople/travelTimeline', data }, { errorMessageMode: 'none' }); /** * 兼容旧版同行记录接口 */ export const legacyTravelRecords = (data: { caseId?: string | number; idList?: string[] }) => defHttp.postJson({ url: '/findPeople/travelRecords', data }, { errorMessageMode: 'none' }); /** * 兼容旧版同行详情接口 */ export const legacyTravelTimelineDetail = (data: { caseId?: string | number; type?: string; id?: string }) => defHttp.postJson>( { url: '/findPeople/travelTimelineDetail', data }, { errorMessageMode: 'none' }, );