Update index.js

This commit is contained in:
huxuejian 2026-08-03 18:37:08 +08:00
parent 428b2cc050
commit 8a4eedeffd

View File

@ -716,7 +716,24 @@ async function acceptConsultOrder(item) {
return { success: false, message: "订单已失效,请刷新" };
}
const { consultationDuration } = await getConfig(corpId);
if (
!Number.isFinite(consultationDuration) ||
!Number.isInteger(consultationDuration) ||
consultationDuration < 10 ||
consultationDuration > 60 * 8
) {
return {
success: false,
message: "问诊持续时长配置无效,请联系管理员检查配置",
};
}
const expireTime = dayjs().add(consultationDuration, "minute").valueOf();
if (!Number.isFinite(expireTime) || expireTime <= Date.now()) {
return {
success: false,
message: "问诊结束时间生成失败,请稍后重试",
};
}
const serverPrescriptionStartTime = Date.now();
const acceptResult = await db.collection("consult-order").updateOne(
{ orderId, corpId, orderStatus: "pending" },
@ -815,17 +832,69 @@ async function acceptConsultOrder(item) {
}
// 结束问诊
async function finishConsultOrder(item) {
let countdownExpired = false;
if (item.triggerSource === "COUNTDOWN") {
const order = await db.collection("consult-order").findOne(
{ orderId: item.orderId },
{
projection: {
corpId: 1,
expireTime: 1,
prescriptionStartTime: 1,
},
}
);
if (!order) {
return { success: false, message: "订单不存在" };
}
let expireTime = Number(order.expireTime);
if (!Number.isFinite(expireTime) || expireTime <= 0) {
const { consultationDuration } = await getConfig(order.corpId);
const prescriptionStartTime = Number(order.prescriptionStartTime);
if (
!Number.isFinite(consultationDuration) ||
!Number.isInteger(consultationDuration) ||
consultationDuration < 10 ||
consultationDuration > 60 * 8 ||
!Number.isFinite(prescriptionStartTime) ||
prescriptionStartTime <= 0
) {
return {
success: false,
message: "问诊结束时间无效,请联系管理员检查配置",
};
}
expireTime = prescriptionStartTime + consultationDuration * 60 * 1000;
await db.collection("consult-order").updateOne(
{ _id: order._id },
{ $set: { expireTime, updateTime: Date.now() } }
);
}
if (expireTime > Date.now()) {
return {
success: false,
expired: false,
expireTime,
message: "问诊尚未到结束时间",
};
}
countdownExpired = true;
}
// 判断是否有正在审核的单子
const count = await db.collection("diagnostic-record").countDocuments({
orderId: item.orderId,
status: "INIT",
});
if (count > 0) {
if (count > 0 && !countdownExpired) {
return {
success: false,
message: "存在正在审核的诊断单,不能结束咨询",
};
}
console.log('疑问点01: ')
return await serviceFinishConsultOrder(item);
}
async function serviceFinishConsultOrder(item) {
@ -847,6 +916,7 @@ async function serviceFinishConsultOrder(item) {
}
}
// 更新订单状态
console.log('疑问点03: ')
await closeConsultOrder({ orderId, corpId, doctorCode });
await setDiagnosticExpired({ orderId });
return {
@ -1374,6 +1444,7 @@ async function refundFeeAndOrder(item) {
status: "PASS",
});
if (count > 0) {
console.log('疑问点02: ')
return await serviceFinishConsultOrder({ orderId, doctorCode, corpId });
}
}