const request = require('./request.js'); const apiConfig = require('../config/api.js'); /** * API服务类 */ class ApiService { // ==================== 认证相关 ==================== /** * 用户登录 * @param {string} username 用户名 * @param {string} password 密码 */ login(username, password) { return request.post(apiConfig.endpoints.auth.login, { username, password }); } /** * 获取用户信息 */ getUserInfo() { return request.get(apiConfig.endpoints.auth.userInfo); } /** * 用户退出登录 */ logout() { return request.post(apiConfig.endpoints.auth.logout); } // ==================== 养殖户管理 ==================== /** * 获取养殖户列表 * @param {Object} params 查询参数 */ getFarmers(params = {}) { return request.get(apiConfig.endpoints.farmer.list, params); } /** * 获取养殖户详情 * @param {string} id 养殖户ID */ getFarmerDetail(id) { return request.get(`${apiConfig.endpoints.farmer.detail}/${id}`); } /** * 创建养殖户 * @param {Object} data 养殖户数据 */ createFarmer(data) { return request.post(apiConfig.endpoints.farmer.create, data); } /** * 更新养殖户信息 * @param {string} id 养殖户ID * @param {Object} data 更新数据 */ updateFarmer(id, data) { return request.put(`${apiConfig.endpoints.farmer.update}/${id}`, data); } /** * 删除养殖户 * @param {string} id 养殖户ID */ deleteFarmer(id) { return request.delete(`${apiConfig.endpoints.farmer.delete}/${id}`); } /** * 重置养殖户密码 * @param {string} id 养殖户ID */ resetFarmerPassword(id) { return request.post(apiConfig.endpoints.farmer.resetPassword.replace('{id}', id)); } /** * 获取养殖场类型列表 */ getFarmTypes() { return request.get(apiConfig.endpoints.farmer.farmTypes); } /** * 获取动物类型列表 */ getAnimalTypes() { return request.get(apiConfig.endpoints.farmer.animalTypes); } // ==================== 数据统计 ==================== /** * 获取数据中心统计信息 */ getDataCenterStats() { return request.get(apiConfig.endpoints.statistics.dataCenter); } /** * 获取市场价格信息 */ getMarketPrice() { return request.get(apiConfig.endpoints.statistics.marketPrice); } // ==================== 设备管理 ==================== /** * 获取设备告警列表 * @param {Object} params 查询参数 */ getDeviceWarnings(params = {}) { return request.get(apiConfig.endpoints.device.warnings, params); } /** * 获取智能项圈列表 * @param {Object} params 查询参数 */ getSmartCollars(params = {}) { return request.get(apiConfig.endpoints.device.smartCollars, params); } /** * 创建智能项圈 * @param {Object} data 项圈数据 */ createSmartCollar(data) { return request.post(apiConfig.endpoints.device.smartCollars, data); } /** * 更新智能项圈 * @param {string} id 项圈ID * @param {Object} data 更新数据 */ updateSmartCollar(id, data) { return request.put(`${apiConfig.endpoints.device.smartCollars}/${id}`, data); } /** * 删除智能项圈 * @param {string} id 项圈ID */ deleteSmartCollar(id) { return request.delete(`${apiConfig.endpoints.device.smartCollars}/${id}`); } // ==================== 疫情管理 ==================== /** * 获取疫情记录列表 * @param {Object} params 查询参数 */ getEpidemicRecords(params = {}) { return request.get(apiConfig.endpoints.epidemic.records, params); } /** * 获取疫情活动列表 * @param {Object} params 查询参数 */ getEpidemicActivities(params = {}) { return request.get(apiConfig.endpoints.epidemic.activities, params); } /** * 获取疫苗列表 * @param {Object} params 查询参数 */ getVaccines(params = {}) { return request.get(apiConfig.endpoints.epidemic.vaccines, params); } // ==================== 监管任务 ==================== /** * 获取监管任务列表 * @param {Object} params 查询参数 */ getSupervisionTasks(params = {}) { return request.get(apiConfig.endpoints.supervision.tasks, params); } // ==================== 审批流程 ==================== /** * 获取审批流程列表 * @param {Object} params 查询参数 */ getApprovalProcesses(params = {}) { return request.get(apiConfig.endpoints.approval.processes, params); } // ==================== 系统相关 ==================== /** * 健康检查 */ healthCheck() { return request.get('/health'); } // ==================== 通用方法 ==================== /** * 上传文件 * @param {string} filePath 文件路径 * @param {string} name 文件字段名 * @param {Object} formData 额外表单数据 */ uploadFile(filePath, name = 'file', formData = {}) { return new Promise((resolve, reject) => { const token = wx.getStorageSync('token'); const header = {}; if (token) { header['Authorization'] = `Bearer ${token}`; } wx.uploadFile({ url: `${apiConfig.baseURL}/files/upload`, filePath, name, formData, header, success: (res) => { try { const data = JSON.parse(res.data); if (data.code === 200 || data.code === 0) { resolve(data); } else { reject(data); } } catch (e) { reject({ message: '文件上传失败' }); } }, fail: (err) => { reject(err); } }); }); } } // 创建实例 const apiService = new ApiService(); module.exports = apiService;