import { DBModel } from "../models/index.js"; import ResponseUtil from "../utils/responseUtil.js"; class HandlerEscortRecord { constructor() { } async getRecords(ctx) { try { const { page = 1, pageSize = 20, status, userId, appointmentDate } = ctx.request.query; if (!status || status.length === 0) { return ResponseUtil.badRequest(ctx, "缺少状态参数"); } // status解析成数组 const statusArray = status.split(',') const records = await DBModel.EscortRecord.findRecords({ page: parseInt(page), pageSize: parseInt(pageSize), status: statusArray, userId, appointmentDate, }); return ResponseUtil.success(ctx, { records }, "查询成功"); } catch (err) { return ResponseUtil.internalError(ctx, err.message); } } async getAttendantRecords(ctx) { try { const attendantId = ctx.state.user?._id || ctx.request.query?.attendantId; if (!attendantId) { return ResponseUtil.badRequest(ctx, "缺少陪诊员ID"); } const { page = 1, pageSize = 20, status } = ctx.request.query; const records = await DBModel.EscortRecord.findRecordsByAttendant(attendantId, { page: parseInt(page), pageSize: parseInt(pageSize), status, }); return ResponseUtil.success(ctx, { records }, "查询成功"); } catch (err) { return ResponseUtil.internalError(ctx, err.message); } } async getRecordById(ctx) { try { const { id } = ctx.params; if (!id) { return ResponseUtil.badRequest(ctx, "缺少记录ID"); } const record = await DBModel.EscortRecord.findById(id); if (!record) { return ResponseUtil.error(ctx, "陪诊记录不存在", null, 404); } return ResponseUtil.success(ctx, { record }, "查询成功"); } catch (err) { return ResponseUtil.internalError(ctx, err.message); } } async createRecord(ctx) { try { const record = ctx.request.body; if (!record.userId) { return ResponseUtil.badRequest(ctx, "缺少患者信息"); } const newRecord = await DBModel.EscortRecord.createRecord(record); return ResponseUtil.success(ctx, { record: newRecord }, "创建成功"); } catch (err) { return ResponseUtil.internalError(ctx, err.message); } } async updateRecord(ctx) { try { const { id } = ctx.params; const update = ctx.request.body; if (!id) { return ResponseUtil.badRequest(ctx, "缺少记录ID"); } const updatedRecord = await DBModel.EscortRecord.updateRecord(id, update); if (!updatedRecord) { return ResponseUtil.error(ctx, "陪诊记录不存在", null, 404); } return ResponseUtil.success(ctx, { record: updatedRecord }, "更新成功"); } catch (err) { return ResponseUtil.internalError(ctx, err.message); } } async updateStatus(ctx) { try { const { id } = ctx.params; const { status } = ctx.request.body; if (!id) { return ResponseUtil.badRequest(ctx, "缺少记录ID"); } if (!status) { return ResponseUtil.badRequest(ctx, "缺少状态值"); } const updatedRecord = await DBModel.EscortRecord.updateRecord(id, { "status": status, }); if (!updatedRecord) { return ResponseUtil.error(ctx, "陪诊记录不存在", null, 404); } return ResponseUtil.success(ctx, { record: updatedRecord }, "状态更新成功"); } catch (err) { return ResponseUtil.internalError(ctx, err.message); } } async deleteRecord(ctx) { try { const { id } = ctx.params; if (!id) { return ResponseUtil.badRequest(ctx, "缺少记录ID"); } const deletedRecord = await DBModel.EscortRecord.deleteRecord(id); if (!deletedRecord) { return ResponseUtil.error(ctx, "陪诊记录不存在", null, 404); } return ResponseUtil.success(ctx, { record: deletedRecord }, "删除成功"); } catch (err) { return ResponseUtil.internalError(ctx, err.message); } } } export { HandlerEscortRecord };