feat: 社区模块

This commit is contained in:
chaosBreaking
2019-09-08 00:16:13 +08:00
parent 898ed9c6c1
commit e861252812
5 changed files with 56 additions and 3 deletions

5
src/common/constant.js Normal file
View File

@@ -0,0 +1,5 @@
'use strict';
module.exports = {
USDTAddr: '0xdac17f958d2ee523a2206206994597c13d831ec7'
};

View File

@@ -2,8 +2,8 @@
// 该脚本只用于系统账户对用户进行提现转账 // 该脚本只用于系统账户对用户进行提现转账
const { ERC20 } = require('../utils/erc20'); const { ERC20 } = require('../utils/erc20');
const { inject } = require('./Provider'); const { inject } = require('./Provider');
const { USDTAddr } = require('./constant');
const USDTAddr = '0xdac17f958d2ee523a2206206994597c13d831ec7';
const RootAccount = inject(function (SysConfig) { const RootAccount = inject(function (SysConfig) {
const { ROOTSECWORD } = SysConfig; const { ROOTSECWORD } = SysConfig;
return ERC20.fromMnemonic(ROOTSECWORD, USDTAddr); return ERC20.fromMnemonic(ROOTSECWORD, USDTAddr);

View File

@@ -9,6 +9,7 @@ const { deriveNewAccount } = require('../../utils/account');
const actionFilter = 'id type amount detail op createdAt'; const actionFilter = 'id type amount detail op createdAt';
const { inject } = require('../../common/Provider'); const { inject } = require('../../common/Provider');
const ETH = require('../../utils/erc20').ERC20; const ETH = require('../../utils/erc20').ERC20;
const { USDTAddr } = require('../../common/constant');
const depositCoinsList = [{ const depositCoinsList = [{
id: 'usdtBTC', id: 'usdtBTC',
@@ -189,7 +190,14 @@ module.exports = {
// 查询资金,直接拉数据库,区块链的查询交给定时任务 // 查询资金,直接拉数据库,区块链的查询交给定时任务
async refreshFund (req, res) { async refreshFund (req, res) {
// todo: 要求刷新程序去刷新 // 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); return this.getFundList(req, res);
}, },
async getFundList (req, res) { async getFundList (req, res) {

View File

@@ -1,4 +1,5 @@
const User = require('./user.model'); const User = require('./user.model');
const Fund = require('../fund/fund.model');
const MsgCode = require('../msgCode/msgCode.controller'); const MsgCode = require('../msgCode/msgCode.controller');
const changePwd = require('../sign/sign.controller').changePasswd; const changePwd = require('../sign/sign.controller').changePasswd;
const Crypto = require('../../utils/crypto'); 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
});
}
}; };

View File

@@ -36,10 +36,22 @@ const services = [
method: 'POST', method: 'POST',
controller: controller.changeFundPwd 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 => { module.exports = services.map(service => {
// 可以在此处对要导出的服务map进行统一处理 // 可以在此处对要导出的服务map进行统一处理
service.url = indexRoute + service.url; service.url = service.indexRoute ? service.indexRoute + service.url : indexRoute + service.url;
return service; return service;
}); });