/** 店铺数据重复检查适配(任务 115-119):/api/admin/shop-data-crawl/duplicate-check-* 系列端点。 */ import { http } from '@/api/http' import { parseDuplicateDetailPage, parseDuplicateItemsPage, parseDuplicateOverview, type DuplicateOverview, } from './duplicate-model.ts' import { toDuplicateItemsQuery, type DuplicateFilter } from './duplicate-filter.ts' export const DUPLICATE_CHECK_ENDPOINT = '/api/admin/shop-data-crawl' /** 加载撞款总览(可选 force=1 触发同步重扫)。 */ export async function fetchDuplicateOverview(force = false): Promise { const { data } = await http.get(`${DUPLICATE_CHECK_ENDPOINT}/duplicate-check-overview`, { params: force ? { force: '1' } : undefined, }) return parseDuplicateOverview(data) } /** 加载撞款明细分页列表:GET /duplicate-check-items。 */ export async function fetchDuplicateItems( filter: DuplicateFilter, page: number, pageSize: number, ): Promise> { const { data } = await http.get(`${DUPLICATE_CHECK_ENDPOINT}/duplicate-check-items`, { params: toDuplicateItemsQuery(filter, page, pageSize), }) return parseDuplicateItemsPage(data) } /** 加载撞款详情卡片分页:GET /duplicate-check-detail。 */ export async function fetchDuplicateDetail( filter: DuplicateFilter, page: number, pageSize: number, ): Promise> { const { data } = await http.get(`${DUPLICATE_CHECK_ENDPOINT}/duplicate-check-detail`, { params: toDuplicateItemsQuery(filter, page, pageSize), }) return parseDuplicateDetailPage(data) }