tmp
This commit is contained in:
@@ -5,18 +5,23 @@ class HandlerEscortRecord {
|
||||
constructor() {
|
||||
}
|
||||
|
||||
async getMyRecords(ctx) {
|
||||
async getRecords(ctx) {
|
||||
try {
|
||||
const userId = ctx.state.user?._id || ctx.request.query?.userId;
|
||||
if (!userId) {
|
||||
return ResponseUtil.badRequest(ctx, "缺少用户ID");
|
||||
const { page = 1, pageSize = 20, status, userId, appointmentDate } = ctx.request.query;
|
||||
|
||||
if (!status || status.length === 0) {
|
||||
return ResponseUtil.badRequest(ctx, "缺少状态参数");
|
||||
}
|
||||
|
||||
const { page = 1, pageSize = 20, status } = ctx.request.query;
|
||||
const records = await DBModel.EscortRecord.findRecordsByUser(userId, {
|
||||
// status解析成数组
|
||||
const statusArray = status.split(',')
|
||||
|
||||
const records = await DBModel.EscortRecord.findRecords({
|
||||
page: parseInt(page),
|
||||
pageSize: parseInt(pageSize),
|
||||
status,
|
||||
status: statusArray,
|
||||
userId,
|
||||
appointmentDate,
|
||||
});
|
||||
|
||||
return ResponseUtil.success(ctx, { records }, "查询成功");
|
||||
|
||||
@@ -142,50 +142,34 @@ const EscortRecordSchema = mongoose.Schema(
|
||||
);
|
||||
|
||||
/**
|
||||
* 根据用户ID查找陪诊记录
|
||||
*
|
||||
* @param {ObjectId} userId - 订单提交用户ID
|
||||
* 查找陪诊记录(支持多条件筛选)
|
||||
*
|
||||
* @param {Object} options - 查询选项
|
||||
* @param {number} [options.page=1] - 页码
|
||||
* @param {number} [options.pageSize=20] - 每页数量
|
||||
* @param {string} [options.status] - 状态筛选
|
||||
* @param {Array<string>} options.status - 状态筛选(必需,数组)
|
||||
* @param {ObjectId} [options.userId] - 订单提交用户ID(可选)
|
||||
* @param {string} [options.appointmentDate] - 预约日期筛选(可选,格式 YYYY-MM-DD)
|
||||
* @param {Function} [cb] - 可选的回调函数
|
||||
* @returns {Promise<Array>} 陪诊记录列表(按预约日期倒序)
|
||||
*/
|
||||
EscortRecordSchema.statics.findRecordsByUser = async function (userId, options = {}, cb) {
|
||||
const { page = 1, pageSize = 20, status } = options;
|
||||
const filter = { userId };
|
||||
EscortRecordSchema.statics.findRecords = async function (options = {}, cb) {
|
||||
const { page = 1, pageSize = 20, status, userId, appointmentDate } = options;
|
||||
const filter = {};
|
||||
|
||||
if (status) {
|
||||
filter.status = status;
|
||||
if (status && Array.isArray(status) && status.length > 0) {
|
||||
filter.status = { $in: status };
|
||||
}
|
||||
|
||||
const skip = (page - 1) * pageSize;
|
||||
if (userId) {
|
||||
filter.userId = userId;
|
||||
}
|
||||
|
||||
return await this.find(filter)
|
||||
.sort({ "schedule.date": -1 })
|
||||
.skip(skip)
|
||||
.limit(pageSize)
|
||||
.exec(cb);
|
||||
};
|
||||
|
||||
/**
|
||||
* 根据陪诊员ID查找陪诊记录
|
||||
*
|
||||
* @param {ObjectId} attendantId - 陪诊员用户ID
|
||||
* @param {Object} options - 查询选项
|
||||
* @param {number} [options.page=1] - 页码
|
||||
* @param {number} [options.pageSize=20] - 每页数量
|
||||
* @param {string} [options.status] - 状态筛选
|
||||
* @param {Function} [cb] - 可选的回调函数
|
||||
* @returns {Promise<Array>} 陪诊记录列表(按预约日期倒序)
|
||||
*/
|
||||
EscortRecordSchema.statics.findRecordsByAttendant = async function (attendantId, options = {}, cb) {
|
||||
const { page = 1, pageSize = 20, status } = options;
|
||||
const filter = { "attendant.id": attendantId };
|
||||
|
||||
if (status) {
|
||||
filter.status = status;
|
||||
if (appointmentDate) {
|
||||
const start = new Date(appointmentDate);
|
||||
const end = new Date(start);
|
||||
end.setDate(end.getDate() + 1);
|
||||
filter["schedule.date"] = { $gte: start, $lt: end };
|
||||
}
|
||||
|
||||
const skip = (page - 1) * pageSize;
|
||||
|
||||
@@ -17,7 +17,7 @@ function registerRoutes(app) {
|
||||
const handlerEscortRecord = new HandlerEscortRecord();
|
||||
const handlerResource = new HandlerResource();
|
||||
|
||||
router.get("/escort-record/my", handlerEscortRecord.getMyRecords.bind(handlerEscortRecord));
|
||||
router.get("/escort-record/my", handlerEscortRecord.getRecords.bind(handlerEscortRecord));
|
||||
router.get("/escort-record/attendant", handlerEscortRecord.getAttendantRecords.bind(handlerEscortRecord));
|
||||
router.get("/escort-record/:id", handlerEscortRecord.getRecordById.bind(handlerEscortRecord));
|
||||
router.post("/escort-record", handlerEscortRecord.createRecord.bind(handlerEscortRecord));
|
||||
|
||||
Reference in New Issue
Block a user