'use strict'; const Action = require('./action.model'); /** * [0] 充值LOG * [1] 提现 * [2] 购买地产 * [3] 分红 * [4] 场外买入 * [5] 场外卖出 */ function createAction (actCode, data) { switch (actCode) { case 0: return createDepositAction(data); case 1: return createWithdrawAction(data); case 2: return createPurchaseAction(data); case 3: return createBonusAction(data); case 4: return createOtcBuyAction(data); case 5: return createOtcSellAction(data); } } function createDepositAction(data = {}) { // 充值要记录: 发起人,充值目标地址,充值货币类型,充值金额 // 只创建action并返回,不保存,保存交给具体的业务在事务内执行 const { actor, amount, tokenType, toAddress, remain } = data; if (!actor || !amount || !tokenType || !toAddress) return false; return new Action({ actor, type: 0, op: 1, amount, remain, detail: { toAddress, tokenType } }); } function createWithdrawAction(data = {}) { const { actor, amount, remain } = data; return new Action({ actor, type: 1, op: 0, amount, remain, detail: { } }); } function createPurchaseAction(data = {}) { const { actor, estate, amount, remain } = data; return new Action({ actor, type: 2, op: 0, amount, remain, detail: { ...estate } }); } function createBonusAction(data = {}) { const { actor, estate, amount, remain } = data; return new Action({ actor, type: 3, op: 1, amount, remain, detail: { ...estate } }); } function createOtcBuyAction(data = {}) { // 场外交易的actor是交易活动的发起者,也就是去买市场挂单的人。 const { actor, otcOrder, adv, amount, remain } = data; return new Action({ actor, type: 4, op: 1, amount, remain, detail: { order: otcOrder, adv } }); } function createOtcSellAction(data = {}) { const { actor, otcOrder, amount, remain } = data; return new Action({ actor, type: 5, op: 0, amount, remain, detail: { ...otcOrder } }); } module.exports = { createAction, };