@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
65 lines (57 loc) • 2.43 kB
JavaScript
// 获取walletPass可用最大金额
export var getAvailableMaxAmount = function getAvailableMaxAmount(data) {
if (typeof data._available_max_amount === 'number') {
return data._available_max_amount;
}
return data.tag !== 'point_card' ? data.available_max_amount : data === null || data === void 0 ? void 0 : data.recommended_usage_amount;
};
/**
* 将walletPass列表数据转换为prepare_payments需要的数据格式
* @param list
*/
export var formatWalletPassList2PreparePayments = function formatWalletPassList2PreparePayments(list) {
return (list || []).map(function (item) {
return {
voucher_id: item.id || 0,
amount: Number(item.edit_current_amount || getAvailableMaxAmount(item)) || 0,
tag: item.tag || ''
};
});
};
/**
* 对用户识别码列表进行排序
* 排序规则:正常数据 -> unified_available_status===1 -> 500601/500602 -> unified_available_status===0
* @param list 用户识别码列表
* @returns 排序后的列表
*/
export var sortUserIdentificationCodeList = function sortUserIdentificationCodeList(list) {
if (!Array.isArray(list) || list.length === 0) {
return list;
}
// 定义中等优先级错误码
var middlePriorityErrorCodes = ['500601', '500602'];
return list.sort(function (a, b) {
// 确定每个项目的优先级
// 0: 正常数据(没有特定错误码且available_status不是1或0)
// 1: unified_available_status === 1
// 2: 中等优先级错误码(500601、500602) 此订单内不可用 订单没有剩余金额
// 3: unified_available_status === 0(最后)
var getPriority = function getPriority(item) {
var _item$unified_error_c;
var errorCode = (_item$unified_error_c = item.unified_error_code) === null || _item$unified_error_c === void 0 ? void 0 : _item$unified_error_c.toString();
var availableStatus = item.unified_available_status;
// 中等优先级错误码
if (errorCode && middlePriorityErrorCodes.includes(errorCode)) return 2;
// unified_available_status === 0 最后
if (availableStatus === 0) return 3;
// unified_available_status === 1
if (availableStatus === 1) return 1;
// 正常数据
return 0;
};
var aPriority = getPriority(a);
var bPriority = getPriority(b);
// 按优先级排序,优先级相同则保持原有顺序
return aPriority - bPriority;
});
};