From e86125281257b9c6917572970b4946b7e4c398b2 Mon Sep 17 00:00:00 2001 From: chaosBreaking Date: Sun, 8 Sep 2019 00:16:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=A4=BE=E5=8C=BA=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/constant.js | 5 +++++ src/common/rootWallet.js | 2 +- src/modules/fund/fund.controller.js | 10 +++++++++- src/modules/user/user.controller.js | 28 ++++++++++++++++++++++++++++ src/modules/user/user.service.js | 14 +++++++++++++- 5 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 src/common/constant.js diff --git a/src/common/constant.js b/src/common/constant.js new file mode 100644 index 0000000..d03dd48 --- /dev/null +++ b/src/common/constant.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = { + USDTAddr: '0xdac17f958d2ee523a2206206994597c13d831ec7' +}; \ No newline at end of file diff --git a/src/common/rootWallet.js b/src/common/rootWallet.js index 9f47a61..55db6b4 100644 --- a/src/common/rootWallet.js +++ b/src/common/rootWallet.js @@ -2,8 +2,8 @@ // 该脚本只用于系统账户对用户进行提现转账 const { ERC20 } = require('../utils/erc20'); const { inject } = require('./Provider'); +const { USDTAddr } = require('./constant'); -const USDTAddr = '0xdac17f958d2ee523a2206206994597c13d831ec7'; const RootAccount = inject(function (SysConfig) { const { ROOTSECWORD } = SysConfig; return ERC20.fromMnemonic(ROOTSECWORD, USDTAddr); diff --git a/src/modules/fund/fund.controller.js b/src/modules/fund/fund.controller.js index c98c89e..a286592 100644 --- a/src/modules/fund/fund.controller.js +++ b/src/modules/fund/fund.controller.js @@ -9,6 +9,7 @@ const { deriveNewAccount } = require('../../utils/account'); const actionFilter = 'id type amount detail op createdAt'; const { inject } = require('../../common/Provider'); const ETH = require('../../utils/erc20').ERC20; +const { USDTAddr } = require('../../common/constant'); const depositCoinsList = [{ id: 'usdtBTC', @@ -189,7 +190,14 @@ module.exports = { // 查询资金,直接拉数据库,区块链的查询交给定时任务 async refreshFund (req, res) { // todo: 要求刷新程序去刷新 - + const { userId } = res.locals.user; + const fund = await Fund.findOne({ userId }).exec(); + const tokenAddress = fund && fund.tokenAddress; + if(!tokenAddress || !tokenAddress['usdtETH']) return res.json({ + code: 0, + data: fund.fundList + }); + const txActions = await ETH.getActions(tokenAddress['usdtETH'], USDTAddr); return this.getFundList(req, res); }, async getFundList (req, res) { diff --git a/src/modules/user/user.controller.js b/src/modules/user/user.controller.js index 6977da2..f74f95b 100644 --- a/src/modules/user/user.controller.js +++ b/src/modules/user/user.controller.js @@ -1,4 +1,5 @@ const User = require('./user.model'); +const Fund = require('../fund/fund.model'); const MsgCode = require('../msgCode/msgCode.controller'); const changePwd = require('../sign/sign.controller').changePasswd; const Crypto = require('../../utils/crypto'); @@ -109,4 +110,31 @@ module.exports = { }); }); }, + async getGroupBasicInfo (req, res) { + const { userId } = res.locals.user; + const [user, fund] = await Promise.all([User.findById(userId), Fund.findOne({userId})]); + if (!user) return res.json({ + code: 1, + msg: '未知用户' + }); + const follower = user.group && user.group.length || 0; + const reward = fund.asset && fund.asset.usdt || 0; + const list = await User.find({ inviter: { $in: user.group } }).exec(); + return res.json({ + code: 0, + data: { + follower, + reward, + groupScale: list.length + } + }); + }, + async getGroupList (req, res) { + const { userId } = res.locals.user; + const list = await User.find({ inviter: userId }).exec(); + return res.json({ + code: 0, + data: list + }); + } }; \ No newline at end of file diff --git a/src/modules/user/user.service.js b/src/modules/user/user.service.js index 6011603..963f2db 100644 --- a/src/modules/user/user.service.js +++ b/src/modules/user/user.service.js @@ -36,10 +36,22 @@ const services = [ method: 'POST', controller: controller.changeFundPwd }, + { + indexRoute: '/community', + url: '/basic', + method: 'GET', + controller: controller.getGroupBasicInfo + }, + { + indexRoute: '/community', + url: '/list', + method: 'GET', + controller: controller.getGroupList + }, ]; module.exports = services.map(service => { // 可以在此处对要导出的服务map进行统一处理 - service.url = indexRoute + service.url; + service.url = service.indexRoute ? service.indexRoute + service.url : indexRoute + service.url; return service; }); \ No newline at end of file