// 在文件开头的导入语句中添加新函数 import { getAllExaminees, getExamineeById, createExaminee, updateExaminee, deleteExaminee, getExamineeByIdCardAndAdmissionTicket } from '../db/examinee.js'; /** * 服务层:获取所有考生列表 * @returns {Promise} 考生列表 */ export async function fetchAllExamineesService() { try { return await getAllExaminees(); } catch (error) { console.error('服务层: 获取所有考生列表失败', error); throw error; } } /** * 服务层:根据ID查询考生 * @param {number} id 考生ID * @returns {Promise} 考生数据 */ export async function fetchExamineeByIdService(id) { try { return await getExamineeById(id); } catch (error) { console.error('服务层: 根据ID查询考生失败', error); throw error; } } /** * 服务层:添加考生 * @param {Object} examineeData 考生数据 * @returns {Promise} 添加的考生 */ export async function createExamineeService(examineeData) { try { // 数据验证 if (!examineeData.examinee_name || !examineeData.examinee_id_card) { throw new Error('考生姓名和身份证号为必填项'); } return await createExaminee(examineeData); } catch (error) { console.error('服务层: 添加考生失败', error); throw error; } } /** * 服务层:更新考生 * @param {number} id 考生ID * @param {Object} examineeData 更新的数据 * @returns {Promise} 是否更新成功 */ export async function updateExamineeService(id, examineeData) { console.log(id); console.log(examineeData); try { if (!id) { throw new Error('考生ID不能为空'); } // 验证考生是否存在 const existingExaminee = await getExamineeById(id); if (!existingExaminee) { throw new Error('未找到指定考生'); } // 数据验证 if (!examineeData.examinee_name || !examineeData.examinee_id_card) { throw new Error('考生姓名和身份证号为必填项'); } return await updateExaminee(id, examineeData); } catch (error) { console.error('服务层: 更新考生失败', error); throw error; } } /** * 服务层:删除考生 * @param {number} id 考生ID * @returns {Promise} 是否删除成功 */ export async function deleteExamineeService(id) { try { return await deleteExaminee(id); } catch (error) { console.error('服务层: 删除考生失败', error); throw error; } } /** * 服务层:考生登录 * @param {string} idCard 身份证号 * @param {string} admissionTicket 准考证号 * @returns {Promise} 考生数据或null */ export async function fetchExamineeByIdCardAndAdmissionTicketService(idCard, admissionTicket) { try { if (!idCard || !admissionTicket) { throw new Error('身份证号和准考证号不能为空'); } return await getExamineeByIdCardAndAdmissionTicket(idCard, admissionTicket); } catch (error) { console.error('服务层: 考生登录失败', error); throw error; } } export async function initExamineeIpc(ipcMain) { ipcMain.handle("examinee-fetch-all", async () => { try { return await fetchAllExamineesService(); } catch (error) { console.error("Failed to fetch all examinees:", error); return []; } }); ipcMain.handle("user-login", async (event, {idCard, admissionTicket}) => { try { return await fetchExamineeByIdCardAndAdmissionTicketService(idCard, admissionTicket); } catch (error) { console.error("Failed to login examinee:", error); return null; } }); ipcMain.handle("examinee-fetch-by-id", async (event, id) => { try { return await fetchExamineeByIdService(id); } catch (error) { console.error("Failed to fetch examinee by id:", error); return null; } }); ipcMain.handle("examinee-create", async (event, examineeData) => { try { return await createExamineeService(examineeData); } catch (error) { console.error("Failed to create examinee:", error); return null; } }); ipcMain.handle("examinee-update", async (event, {id, examineeData}) => { try { return await updateExamineeService(id, examineeData); } catch (error) { console.error("Failed to update examinee:", error); return null; } }); ipcMain.handle("examinee-delete", async (event, id) => { try { return await deleteExamineeService(id); } catch (error) { console.error("Failed to delete examinee:", error); return null; } }); }