Files
jjx-web/uniCloud-tcb/cloudfunctions/router/service/admin/finance/balance/sys/delete.js
T
2026-10-08 18:18:21 +08:00

58 lines
1.6 KiB
JavaScript

'use strict';
const balanceUtil = require('./util.js');
module.exports = {
/**
* 删除资金流水
* @url admin/finance/balance/sys/delete 前端调用的url参数地址
*/
main: async (event) => {
let { data = {}, util } = event;
let { vk } = util;
const transaction = await vk.baseDao.startTransaction();
try {
if (vk.pubfn.isNull(data._id)) {
throw new Error('流水ID不能为空');
}
const oldLog = await vk.baseDao.findByWhereJson({
db: transaction,
dbName: 'jjx-balance-log',
whereJson: {
_id: data._id
}
});
if (!oldLog) {
throw new Error('流水不存在');
}
const revertDelta = Number((-balanceUtil.buildBalanceChange(oldLog)).toFixed(2));
await balanceUtil.checkBalanceAvailable({
transaction,
vk,
changeAmount: revertDelta
});
await vk.baseDao.deleteById({
db: transaction,
dbName: 'jjx-balance-log',
id: data._id
});
await balanceUtil.updateBalanceWithDelta({
transaction,
vk,
delta: revertDelta
});
await transaction.commit();
return { code: 0, msg: '' };
} catch (err) {
return await balanceUtil.rollbackTransaction({
transaction,
err
});
}
}
};