56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
'use strict';
|
|
|
|
const balanceUtil = require('../../../admin/finance/balance/sys/util.js');
|
|
|
|
module.exports = {
|
|
/**
|
|
* 查询当前用户商户的实时余额。
|
|
* @url client/userBalanceLog/kh/getMerchantBalance 前端调用的url参数地址
|
|
* @param {String} accNo 企业用户号/商户号
|
|
*/
|
|
main: async (event) => {
|
|
const { data = {}, userInfo = {}, util } = event;
|
|
const { vk } = util;
|
|
const requestedAccNo = String(data.accNo || '').trim();
|
|
const userAccNo = String(userInfo.merNo || '').trim();
|
|
|
|
// 商户号来自当前登录用户,避免通过客户端参数查询其他企业的余额。
|
|
if (requestedAccNo && userAccNo && requestedAccNo !== userAccNo) {
|
|
return {
|
|
code: 403,
|
|
msg: '无权查询该商户余额'
|
|
};
|
|
}
|
|
const accNo = userAccNo || requestedAccNo;
|
|
|
|
if (!accNo) {
|
|
return {
|
|
code: -1,
|
|
msg: 'accNo不能为空'
|
|
};
|
|
}
|
|
|
|
const remoteResponse = await balanceUtil.requestMerchantBalance({
|
|
vk,
|
|
accNo
|
|
});
|
|
const merchantBalance = balanceUtil.getRemoteMerchantBalance(remoteResponse);
|
|
|
|
if (merchantBalance === null) {
|
|
return {
|
|
code: -1,
|
|
msg: (remoteResponse && (remoteResponse.msg || remoteResponse.message)) || '未获取到余额'
|
|
};
|
|
}
|
|
|
|
return {
|
|
code: 0,
|
|
msg: '',
|
|
data: {
|
|
accNo,
|
|
balance: merchantBalance
|
|
}
|
|
};
|
|
}
|
|
};
|