118 lines
3.0 KiB
JavaScript
118 lines
3.0 KiB
JavaScript
// 在文件开头的导入语句中添加新函数
|
||
import {
|
||
getAllExaminees,
|
||
getExamineeById,
|
||
createExaminee,
|
||
updateExaminee,
|
||
deleteExaminee,
|
||
getExamineeByIdCardAndAdmissionTicket
|
||
} from '../db/examinee.js';
|
||
|
||
/**
|
||
* 服务层:获取所有考生列表
|
||
* @returns {Promise<Array>} 考生列表
|
||
*/
|
||
export async function fetchAllExaminees() {
|
||
try {
|
||
return await getAllExaminees();
|
||
} catch (error) {
|
||
console.error('服务层: 获取所有考生列表失败', error);
|
||
throw error;
|
||
}
|
||
}
|
||
|
||
|
||
/**
|
||
* 服务层:根据ID查询考生
|
||
* @param {number} id 考生ID
|
||
* @returns {Promise<Object|null>} 考生数据
|
||
*/
|
||
export async function fetchExamineeById(id) {
|
||
try {
|
||
return await getExamineeById(id);
|
||
} catch (error) {
|
||
console.error('服务层: 根据ID查询考生失败', error);
|
||
throw error;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 服务层:添加考生
|
||
* @param {Object} examineeData 考生数据
|
||
* @returns {Promise<Object>} 添加的考生
|
||
*/
|
||
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<boolean>} 是否更新成功
|
||
*/
|
||
export async function updateExamineeService(id, 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<boolean>} 是否删除成功
|
||
*/
|
||
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<Object|null>} 考生数据或null
|
||
*/
|
||
export async function fetchExamineeByIdCardAndAdmissionTicket(idCard, admissionTicket) {
|
||
try {
|
||
if (!idCard || !admissionTicket) {
|
||
throw new Error('身份证号和准考证号不能为空');
|
||
}
|
||
return await getExamineeByIdCardAndAdmissionTicket(idCard, admissionTicket);
|
||
} catch (error) {
|
||
console.error('服务层: 考生登录失败', error);
|
||
throw error;
|
||
}
|
||
} |