forked from lunanting/cangku
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
const QUALITY_REFUND_STAGE_META = Object.freeze({
|
|
1: Object.freeze({ label: '处于同行后10%', status: 'red', severity: 3 }),
|
|
2: Object.freeze({ label: '处于同行后30%', status: 'yellow', severity: 2 }),
|
|
3: Object.freeze({ label: '已超越30%同行', status: 'green', severity: 1 }),
|
|
4: Object.freeze({ label: '已超越50%同行', status: 'green', severity: 1 }),
|
|
});
|
|
|
|
const STATUS_LABELS = Object.freeze({
|
|
red: '红灯',
|
|
yellow: '黄灯',
|
|
green: '绿灯',
|
|
});
|
|
|
|
function resolveQualityRefundStage(value) {
|
|
const stage = Number(value);
|
|
const meta = QUALITY_REFUND_STAGE_META[stage];
|
|
return meta ? { stage, ...meta } : null;
|
|
}
|
|
|
|
function resolveQualityRefundSignal(_secondaryStage, mainCategoryStage) {
|
|
const mainCategory = resolveQualityRefundStage(mainCategoryStage);
|
|
|
|
if (!mainCategory) {
|
|
return {
|
|
status: '',
|
|
secondaryLabel: '',
|
|
tertiaryLabel: '',
|
|
mainCategoryLabel: '',
|
|
reason: '',
|
|
};
|
|
}
|
|
|
|
return {
|
|
status: mainCategory.status,
|
|
secondaryLabel: '',
|
|
tertiaryLabel: '',
|
|
mainCategoryLabel: mainCategory.label,
|
|
reason: `近30天品质退款率主营类目${mainCategory.label},显示${STATUS_LABELS[mainCategory.status]}`,
|
|
};
|
|
}
|
|
|
|
module.exports = {
|
|
QUALITY_REFUND_STAGE_META,
|
|
resolveQualityRefundSignal,
|
|
resolveQualityRefundStage,
|
|
};
|