60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
|
|
|
|||
|
|
const payStatus = ['pending', 'success', 'cancelled', 'refunded', 'failed'];
|
|||
|
|
const orderStatus = ['completed', 'cancelled', 'processing', 'finished', 'pending'];
|
|||
|
|
|
|||
|
|
const statusText = {
|
|||
|
|
'completed_success': '完成0单(尚未结束)',
|
|||
|
|
'processing_success': '进行中0单',
|
|||
|
|
'finished_success': '结束0单',
|
|||
|
|
'pending_success': '待接诊0单',
|
|||
|
|
'cancelled_refunded': '退款0单',
|
|||
|
|
'pending_pending': '发起但未支付0单',
|
|||
|
|
'cancelled_cancelled': '超时未支付取消0单',
|
|||
|
|
'cancelled_success': '订单超时取消0单',
|
|||
|
|
'cancelled_failed': '支付失败取消0单',
|
|||
|
|
'pending_failed': '发起但支付失败0单'
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
module.exports = function (list, doctList) {
|
|||
|
|
const statsList = Array.isArray(list) ? list : [];
|
|||
|
|
// tongji
|
|||
|
|
if (Array.isArray(doctList)) {
|
|||
|
|
const doctM = doctList.reduce((m, item) => {
|
|||
|
|
if (item.doctorNo) {
|
|||
|
|
item.allCount = 0;
|
|||
|
|
m[item.doctorNo] = item;
|
|||
|
|
}
|
|||
|
|
return m;
|
|||
|
|
}, {})
|
|||
|
|
const unset = [];
|
|||
|
|
statsList.forEach(item => {
|
|||
|
|
const [key, count, text] = getCountText(item);
|
|||
|
|
if (doctM[item.doctorCode]) {
|
|||
|
|
doctM[item.doctorCode][key] = text;
|
|||
|
|
doctM[item.doctorCode].allCount = doctM[item.doctorCode].allCount + count;
|
|||
|
|
} else {
|
|||
|
|
unset.push(item);
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
return [...Object.values(doctM).sort((a, b) => b.allCount - a.allCount), ...unset];
|
|||
|
|
} else {
|
|||
|
|
return statsList.map(item => {
|
|||
|
|
const [key, count, text] = getCountText(item);
|
|||
|
|
return {
|
|||
|
|
...item,
|
|||
|
|
key,
|
|||
|
|
text
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function getCountText({ orderStatus, payStatus, count }) {
|
|||
|
|
const key = `${orderStatus}_${payStatus}`;
|
|||
|
|
if (statusText[key]) {
|
|||
|
|
return [key, count, statusText[key].replace('0单', `${count}单`)];
|
|||
|
|
}
|
|||
|
|
return [key, count, `${count}单`]
|
|||
|
|
|
|||
|
|
}
|