import { rpcOrNull, rpcOrValue } from '@/services/analytics/rpc.uts' /** * 配送员模型 */ export type DeliveryStaff = { id: string uid: string | null station_id: string | null station_name: string | null staff_no: string | null nickname: string avatar: string | null phone: string status: number is_active: boolean online_status: string certificate_status: string certificate_expire_at: string | null service_area: string | null skills: Array | null created_at: string updated_at: string } /** * 提货点模型 */ export type DeliveryStation = { id: string name: string phone: string address: string image: string | null lng: number | null lat: number | null status: number sort_order: number business_hours: UTSJSONObject | null created_at: string updated_at: string } /** * 获取配送员列表 */ export async function fetchDeliveryStaffPage( page: number, pageSize: number, search: string | null = null, status: number | null = null ): Promise<{ total: number, items: Array }> { const res = await rpcOrNull('rpc_admin_get_delivery_staff_list', { p_page: page, p_page_size: pageSize, p_search: search, p_status: status } as UTSJSONObject) if (res == null) return { total: 0, items: [] as Array } return { total: (res as any).total as number, items: (res as any).items as Array } } /** * 保存配送员 */ export async function saveDeliveryStaff(staff: any): Promise { const rawSkills = typeof staff.skillsText === 'string' ? staff.skillsText : '' const parts = rawSkills.split(',') const skills = [] as Array for (let i = 0; i < parts.length; i++) { const item = parts[i].trim() if (item != '') { skills.push(item) } } const res = await rpcOrValue('rpc_admin_save_delivery_staff', { p_id: staff.id, p_uid: staff.uid, p_station_id: staff.station_id, p_staff_no: staff.staff_no, p_nickname: staff.nickname, p_avatar: staff.avatar, p_phone: staff.phone, p_status: staff.status, p_online_status: staff.online_status, p_certificate_status: staff.certificate_status, p_certificate_expire_at: staff.certificate_expire_at, p_service_area: staff.service_area, p_skills: skills } as any) return res != null ? String(res) : null } /** * 删除配送员 */ export async function deleteDeliveryStaff(id: string): Promise { const ok = await rpcOrValue('rpc_admin_delete_delivery_staff', { p_id: id } as any) return ok === true } /** * 获取提货点列表 */ export async function fetchDeliveryStationPage( page: number, pageSize: number, search: string | null = null, status: number | null = null ): Promise<{ total: number, items: Array }> { const res = await rpcOrNull('rpc_admin_get_delivery_station_list', { p_page: page, p_page_size: pageSize, p_search: search, p_status: status } as UTSJSONObject) if (res == null) return { total: 0, items: [] as Array } return { total: (res as any).total as number, items: (res as any).items as Array } } /** * 保存提货点 */ export async function saveDeliveryStation(station: any): Promise { const res = await rpcOrValue('rpc_admin_save_delivery_station', { p_id: station.id, p_name: station.name, p_phone: station.phone, p_address: station.address, p_image: station.image, p_lng: station.lng, p_lat: station.lat, p_status: station.status, p_sort_order: station.sort_order, p_business_hours: station.business_hours } as any) return res != null ? String(res) : null } /** * 删除提货点 */ export async function deleteDeliveryStation(id: string): Promise { const ok = await rpcOrValue('rpc_admin_delete_delivery_station', { p_id: id } as any) return ok === true }