// @ts-ignore /* eslint-disable */ import { AdminAPI } from '@/constants/api'; import { EmployType, JobType } from '@/constants/job'; import { request } from '@umijs/max'; import { SortOrder } from 'antd/es/table/interface'; import { buildUrl } from '@/services/utils'; function transformPageParams(params: API.PageParams & Record) { params.page = params.current; delete params.current; Object.keys(params).forEach((key: string) => { if (typeof params[key] === 'string' && !params[key]) { delete params[key]; } }); return params; } function camelToSnakeCase(str: string) { return str.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1_$2').toLowerCase(); } function transformSort(sort: Record) { if (!sort) { return {}; } const sortField = Object.keys(sort)[0]; if (!sort[sortField]) { return {}; } const asc = sort[sortField] === 'ascend'; return { sortField: camelToSnakeCase(sortField), asc }; } function sortTableList( response: API.TableList, { sortField, asc }: ReturnType, ): API.TableList { if (sortField === 'created' || sortField === 'updated') { response.data.sort((itemA, itemB) => { const valueA = Number(itemA[sortField]); const valueB = Number(itemB[sortField]); return asc ? valueA - valueB : valueB - valueA; }); } return response; } export async function getJobList( params: API.PageParams & Partial, options?: { [key: string]: any; }, ) { if (!params.category) { params.category = JobType.All; } if (!params.cityCode) { params.cityCode = 'ALL'; } if (!params.employType) { params.employType = EmployType.All; } const result = await request>(AdminAPI.JOB_LIST, { method: 'POST', data: { ...transformPageParams(params), ...(options || {}), }, }); result.success = true; return result; } /** * 更新通告接口,必须传 数据库 id 和 jobId */ export async function updateJobInfo(options: API.UpdateJobParams) { return request(AdminAPI.JOB_UPDATE, { method: 'POST', data: { ...(options || {}), }, }); } export async function getGroupList( params: API.PageParams & Partial, options?: { [key: string]: any }, ) { const result = await request>(AdminAPI.GROUP_LIST, { method: 'POST', data: { ...transformPageParams(params), ...(options || {}), }, }); result.success = true; return result; } /** * 更新群信息,必须传 数据库 id */ export async function updateGroupInfo(options: API.UpdateGroupParams) { return request(AdminAPI.GROUP_UPDATE, { method: 'POST', data: { ...(options || {}), }, }); } export async function getAnchorGroupList( params: API.PageParams & Partial, options?: { [key: string]: any }, ) { const result = await request>(AdminAPI.ANCHOR_GROUP_LIST, { method: 'POST', data: { ...transformPageParams(params), ...(options || {}), }, }); return result; } export async function addAnchorGroup(options?: { [key: string]: any }) { return request(AdminAPI.ADD_ANCHOR_GROUP, { method: 'POST', data: { ...(options || {}), }, }); } export async function getPublisherList( params: API.PageParams & Partial, sort: Record, ) { const url = params.hasDeclareOrder ? AdminAPI.PUBLISHER_DECLARATION_LIST : AdminAPI.PUBLISHER_LIST; const result = await request>(url, { method: 'POST', data: { ...transformPageParams(params), ...transformSort(sort), }, }); return result; } export async function updatePublisherInfo(options: API.UpdatePublisherParams) { return request(AdminAPI.PUBLISHER_UPDATE, { method: 'POST', data: { ...(options || {}), }, }); } export async function getAnchorList( params: API.PageParams & Partial, options?: { [key: string]: any }, ) { const result = await request>(AdminAPI.ANCHOR_LIST, { method: 'POST', data: { ...transformPageParams(params), ...(options || {}), }, }); return result; } export async function updateAnchorInfo(options: API.UpdateAnchorParams) { return request(AdminAPI.ANCHOR_UPDATE, { method: 'POST', data: { ...(options || {}), }, }); } export async function getMaterialList( params: API.PageParams & Partial, sort: Record, ) { const formatedSort = transformSort(sort); const result = await request>(AdminAPI.MATERIAL_LIST, { method: 'POST', data: { ...transformPageParams(params), ...formatedSort, }, }); return sortTableList(result, formatedSort); } export async function updateMaterialInfo(options: API.UpdateMaterialParams) { return request(AdminAPI.MATERIAL_UPDATE, { method: 'POST', data: { ...(options || {}), }, }); } export async function getDeclarationList( params: API.PageParams & Partial, options?: { [key: string]: any }, ) { const result = await request>(AdminAPI.DECLARATION_LIST, { method: 'POST', data: { ...transformPageParams(params), ...(options || {}), }, }); return result; } export async function updateDeclarationInfo(options: API.UpdateDeclarationParams) { return request(AdminAPI.DECLARATION_UPDATE, { method: 'POST', data: { ...(options || {}), }, }); } export async function getStaffList( params: API.PageParams & Partial, options?: { [key: string]: any }, ) { const result = await request>(AdminAPI.STAFF_LIST, { method: 'GET', params: { ...transformPageParams(params), ...(options || {}), }, }); return result; } export async function getAllStaffList() { return await request(AdminAPI.STAFF_ALL, { method: 'GET' }); } export async function updateStaff(options: API.UpdateStaffParams) { return request(AdminAPI.STAFF_UPDATE, { method: 'POST', data: { ...(options || {}), }, }); } export async function deleteStaff(id: number) { return request(buildUrl(AdminAPI.STAFF_DELETE, { id }), { method: 'DELETE', }); } export async function setDefaultStaff(id: number) { return request(buildUrl(AdminAPI.STAFF_SET_DEFAULT, { id }), { method: 'PUT', }); } export async function getCityOpratorList( params: API.PageParams & Partial, options?: { [key: string]: any }, ) { const result = await request>(AdminAPI.CITY_OPERATOR_LIST, { method: 'GET', params: { ...transformPageParams(params), ...(options || {}), }, }); return result; } export async function updateCityOperator(options: API.UpdateCityOperator) { return request(AdminAPI.CITY_OPERATOR_UPDATE, { method: 'POST', data: { ...(options || {}), }, }); } export async function deleteCityOperator(id: number) { return request(buildUrl(AdminAPI.CITY_OPERATOR_DELETE, { id }), { method: 'DELETE', }); } export async function getGiveVipList( params: API.PageParams & Partial, options?: { [key: string]: any }, ) { const result = await request>(AdminAPI.GIVE_VIP_LIST, { method: 'POST', data: { ...transformPageParams(params), ...(options || {}), }, }); return result; } export async function postGiveVip(options: API.PostGiveVip) { return request(AdminAPI.GIVE_VIP, { method: 'POST', data: { ...(options || {}), }, }); } export async function getProductList(productType: API.ProductType) { return request(buildUrl(AdminAPI.PRODUCT_LIST, { productType }), { method: 'GET', }); }