Update index.js
This commit is contained in:
parent
428b2cc050
commit
8a4eedeffd
@ -716,7 +716,24 @@ async function acceptConsultOrder(item) {
|
|||||||
return { success: false, message: "订单已失效,请刷新" };
|
return { success: false, message: "订单已失效,请刷新" };
|
||||||
}
|
}
|
||||||
const { consultationDuration } = await getConfig(corpId);
|
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();
|
const expireTime = dayjs().add(consultationDuration, "minute").valueOf();
|
||||||
|
if (!Number.isFinite(expireTime) || expireTime <= Date.now()) {
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
message: "问诊结束时间生成失败,请稍后重试",
|
||||||
|
};
|
||||||
|
}
|
||||||
const serverPrescriptionStartTime = Date.now();
|
const serverPrescriptionStartTime = Date.now();
|
||||||
const acceptResult = await db.collection("consult-order").updateOne(
|
const acceptResult = await db.collection("consult-order").updateOne(
|
||||||
{ orderId, corpId, orderStatus: "pending" },
|
{ orderId, corpId, orderStatus: "pending" },
|
||||||
@ -815,17 +832,69 @@ async function acceptConsultOrder(item) {
|
|||||||
}
|
}
|
||||||
// 结束问诊
|
// 结束问诊
|
||||||
async function finishConsultOrder(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({
|
const count = await db.collection("diagnostic-record").countDocuments({
|
||||||
orderId: item.orderId,
|
orderId: item.orderId,
|
||||||
status: "INIT",
|
status: "INIT",
|
||||||
});
|
});
|
||||||
if (count > 0) {
|
if (count > 0 && !countdownExpired) {
|
||||||
return {
|
return {
|
||||||
success: false,
|
success: false,
|
||||||
message: "存在正在审核的诊断单,不能结束咨询",
|
message: "存在正在审核的诊断单,不能结束咨询",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
console.log('疑问点01: ')
|
||||||
return await serviceFinishConsultOrder(item);
|
return await serviceFinishConsultOrder(item);
|
||||||
}
|
}
|
||||||
async function serviceFinishConsultOrder(item) {
|
async function serviceFinishConsultOrder(item) {
|
||||||
@ -847,6 +916,7 @@ async function serviceFinishConsultOrder(item) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 更新订单状态
|
// 更新订单状态
|
||||||
|
console.log('疑问点03: ')
|
||||||
await closeConsultOrder({ orderId, corpId, doctorCode });
|
await closeConsultOrder({ orderId, corpId, doctorCode });
|
||||||
await setDiagnosticExpired({ orderId });
|
await setDiagnosticExpired({ orderId });
|
||||||
return {
|
return {
|
||||||
@ -1374,6 +1444,7 @@ async function refundFeeAndOrder(item) {
|
|||||||
status: "PASS",
|
status: "PASS",
|
||||||
});
|
});
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
|
console.log('疑问点02: ')
|
||||||
return await serviceFinishConsultOrder({ orderId, doctorCode, corpId });
|
return await serviceFinishConsultOrder({ orderId, doctorCode, corpId });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user