'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 }); } } };