From 89de3ac51c8d7c14df77e954fb7cec0fc6bfd581 Mon Sep 17 00:00:00 2001 From: chaosBreaking Date: Sun, 8 Sep 2019 21:05:50 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E6=9B=B4=E6=8D=A2=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/fund/fund.controller.js | 23 ++++++++++++++++++----- src/modules/fund/fund.service.js | 1 - 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/modules/fund/fund.controller.js b/src/modules/fund/fund.controller.js index 9aeaab8..0b88e8d 100644 --- a/src/modules/fund/fund.controller.js +++ b/src/modules/fund/fund.controller.js @@ -96,6 +96,16 @@ module.exports = { const { userId } = res.locals.user; const { coinId, targetAddress, amount, password } = req.body; // 暂且硬编码支持币种!!!! + if (!coinId || !targetAddress || !amount || !password) return res.json({ + code: 6, + msg: '缺少必要参数', + error: '缺少必要参数' + }); + if (!Number.isFinite(+amount) || !Number.isSafeInteger(+amount) || Number.isNaN(+amount)) return res.json({ + code: 5, + msg: '非法额度', + error: '非法额度' + }); if (coinId !== 'usdt' && coinId !== 'vic') return res.json({ code: 4, msg: '不支持的提现币种', @@ -108,24 +118,27 @@ module.exports = { error: '资金密码错误', }); const fund = await Fund.findOne({ userId }).exec(); - if (fund.asset && fund.asset[coinId] < amount * 1.005 ) return res.json({ + const cost = +amount * 1.005; + if (fund.asset && +fund.asset[coinId] < cost) return res.json({ code: 2, msg: '资金不足', error: 'insufficient fund' }); - const action = createAction(1, { userId, amount, remain: fund.asset, op: 0, detail: { targetAddress } }); - const ticket = createTicket('withdraw', { userId, amount, action, targetAddress }); + const action = createAction(3, { userId, amount, remain: fund.asset, op: 0, detail: { targetAddress } }); + const ticket = createTicket('withdraw', { userId, amount: +amount, action, targetAddress }); try { - await fund.decrease(coinId, +amount); + await fund.decrease(coinId, cost); } catch (error) { mylog.error('[Fund提现] ', error); + action.detail = { error }; + await action.save(); return res.json({ code: 3, msg: '扣款失败', error: JSON.stringify(error) }); } - Promise.all([ticket.save(), action.save()]).then(() => { + return await Promise.all([ticket.save(), action.save()]).then(() => { return res.json({ code: 0, msg: '工单已创建' diff --git a/src/modules/fund/fund.service.js b/src/modules/fund/fund.service.js index f403e52..24724c3 100644 --- a/src/modules/fund/fund.service.js +++ b/src/modules/fund/fund.service.js @@ -44,7 +44,6 @@ const services = [ controller: controller.getBasicInfo }, { - indexRoute: '/mine', url: '/refresh', method: 'GET', controller: controller.refreshFund