cangku/backend/src/services/productQualitySignal.js

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,
};