Update index.js
This commit is contained in:
parent
428b2cc050
commit
8a4eedeffd
@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user