Files
jjx-wap-sign-only/uniCloud-tcb/cloudfunctions/router/service/admin/finance/balance/sys/add.js
T

57 lines
1.7 KiB
JavaScript

'use strict';
const balanceUtil = require('./util.js');
module.exports = {
/**
* 新增资金流水
* @url admin/finance/balance/sys/add 前端调用的url参数地址
*/
main: async (event) => {
let { data = {}, userInfo, util } = event;
let { vk } = util;
const transaction = await vk.baseDao.startTransaction();
try {
const description = String(data.description || '').trim();
if (!description) {
throw new Error('说明不能为空');
}
const logData = {
description,
amount: balanceUtil.normalizeAmount(data.amount),
type: balanceUtil.normalizeType(data.type),
logTime: balanceUtil.normalizeTime(data.logTime),
operatorId: userInfo && userInfo.uid ? userInfo.uid : '',
source: data.source || 'manual'
};
const changeAmount = balanceUtil.buildBalanceChange(logData);
await balanceUtil.checkBalanceAvailable({
transaction,
vk,
changeAmount
});
const addRes = await vk.baseDao.add({
db: transaction,
dbName: 'jjx-balance-log',
dataJson: logData
});
await balanceUtil.updateBalanceWithDelta({
transaction,
vk,
delta: changeAmount,
lastLogId: addRes.id
});
await transaction.commit();
return { code: 0, msg: '' };
} catch (err) {
return await balanceUtil.rollbackTransaction({
transaction,
err
});
}
}
};