66 lines
1.9 KiB
JavaScript
Raw Permalink Normal View History

2026-07-27 11:28:33 +08:00
const dayjs = require("dayjs");
const common = require("../../common");
let db = null;
exports.main = async (content, DB) => {
db = DB;
switch (content.type) {
case "getCustomersCount":
return await getCustomersCount(content);
case "getInHospitalCustomersCount":
return await getInHospitalCustomersCount(content);
}
};
// 查询报备记录人数
async function getCustomersCount(content) {
const { corpId, dates, params, reportTeamId, reportUserIds } = content;
if (!corpId) return { success: false, message: "机构id不能为空" };
let query = {
corpId,
...params,
};
if (reportTeamId) query.reportTeamId = reportTeamId;
if (reportUserIds && Array.isArray(reportUserIds) && reportUserIds.length > 0) {
query.reportUserId = { $in: reportUserIds };
}
if (dates && dates.length > 0) {
query.createTime = {
$gte: dayjs(dates[0]).startOf("day").valueOf(),
$lt: dayjs(dates[1]).endOf("day").valueOf(),
};
}
const total = await db.collection("member").countDocuments(query);
return { success: true, count: total, message: "查询成功",query };
}
// 查询到院人数
async function getInHospitalCustomersCount(content) {
const { corpId, dates, reportTeamId, reportUserIds } = content;
if (!corpId) return { success: false, message: "机构id不能为空" };
let query = {
corpId,
addMethod: "eStoreReport",
};
if (reportTeamId) query.reportTeamId = reportTeamId;
if (reportUserIds && Array.isArray(reportUserIds) && reportUserIds.length > 0) {
query.reportUserId = { $in: reportUserIds };
}
if (dates && dates.length > 0) {
query.inHospitalTimes = {
$gte: dayjs(dates[0]).startOf("day").valueOf(),
$lt: dayjs(dates[1]).endOf("day").valueOf(),
};
} else {
query.inHospitalTimes = { $exists: true, $ne: [] };
}
const total = await db.collection("member").countDocuments(query);
return { success: true, count: total, message: "查询成功" };
}