Commit 92b86611 authored by ml's avatar ml

增加 资产部分接口

parent fef64a78
...@@ -164,13 +164,13 @@ ...@@ -164,13 +164,13 @@
} }
}, },
"node_modules/@babel/generator": { "node_modules/@babel/generator": {
"version": "7.25.5", "version": "7.25.6",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/generator/-/generator-7.25.5.tgz", "resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/generator/-/generator-7.25.6.tgz",
"integrity": "sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w==", "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/types": "^7.25.4", "@babel/types": "^7.25.6",
"@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25", "@jridgewell/trace-mapping": "^0.3.25",
"jsesc": "^2.5.1" "jsesc": "^2.5.1"
...@@ -284,14 +284,14 @@ ...@@ -284,14 +284,14 @@
} }
}, },
"node_modules/@babel/helpers": { "node_modules/@babel/helpers": {
"version": "7.25.0", "version": "7.25.6",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/helpers/-/helpers-7.25.0.tgz", "resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/helpers/-/helpers-7.25.6.tgz",
"integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/template": "^7.25.0", "@babel/template": "^7.25.0",
"@babel/types": "^7.25.0" "@babel/types": "^7.25.6"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
...@@ -392,13 +392,13 @@ ...@@ -392,13 +392,13 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.25.4", "version": "7.25.6",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/parser/-/parser-7.25.4.tgz", "resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/parser/-/parser-7.25.6.tgz",
"integrity": "sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==", "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/types": "^7.25.4" "@babel/types": "^7.25.6"
}, },
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
...@@ -423,17 +423,17 @@ ...@@ -423,17 +423,17 @@
} }
}, },
"node_modules/@babel/traverse": { "node_modules/@babel/traverse": {
"version": "7.25.4", "version": "7.25.6",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/traverse/-/traverse-7.25.4.tgz", "resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/traverse/-/traverse-7.25.6.tgz",
"integrity": "sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==", "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.24.7", "@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.25.4", "@babel/generator": "^7.25.6",
"@babel/parser": "^7.25.4", "@babel/parser": "^7.25.6",
"@babel/template": "^7.25.0", "@babel/template": "^7.25.0",
"@babel/types": "^7.25.4", "@babel/types": "^7.25.6",
"debug": "^4.3.1", "debug": "^4.3.1",
"globals": "^11.1.0" "globals": "^11.1.0"
}, },
...@@ -452,9 +452,9 @@ ...@@ -452,9 +452,9 @@
} }
}, },
"node_modules/@babel/types": { "node_modules/@babel/types": {
"version": "7.25.4", "version": "7.25.6",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/types/-/types-7.25.4.tgz", "resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/types/-/types-7.25.6.tgz",
"integrity": "sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==", "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
...@@ -1069,9 +1069,9 @@ ...@@ -1069,9 +1069,9 @@
} }
}, },
"node_modules/@madex/ex-ts-dao": { "node_modules/@madex/ex-ts-dao": {
"version": "0.0.21", "version": "0.0.22",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@madex/ex-ts-dao/-/@madex/ex-ts-dao-0.0.21.tgz", "resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@madex/ex-ts-dao/-/@madex/ex-ts-dao-0.0.22.tgz",
"integrity": "sha512-uXdHq1OyOLxilsj9/k5lavzDvt0HqKOH/oTf3HHSHup2aF/UepUIwm62RyZoDE/MdrdRFS0DZsnddAbAcARRqw==", "integrity": "sha512-BUr/YIK2FHnjmVMXVegkVYhFihbv3nVBxrLN1ngcTVuWaABWpsPxufyvPYOm+Wvpn5ndUdHOAPtqUMZr++PppA==",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@madex/ex-js-public": "git+ssh://git@bitbucket.org/biiigle/ex-js-public.git#master", "@madex/ex-js-public": "git+ssh://git@bitbucket.org/biiigle/ex-js-public.git#master",
...@@ -1617,9 +1617,9 @@ ...@@ -1617,9 +1617,9 @@
} }
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "20.16.2", "version": "20.16.3",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@types/node/-/node-20.16.2.tgz", "resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@types/node/-/node-20.16.3.tgz",
"integrity": "sha512-91s/n4qUPV/wg8eE9KHYW1kouTfDk2FPGjXbBMfRWP/2vg1rCXNQL1OCabwGs0XSdukuK+MwCDXE30QpSeMUhQ==", "integrity": "sha512-/wdGiWRkMOm53gAsSyFMXFZHbVg7C6CbkrzHNpaHoYfsUWPg7m6ZRKtvQjgvQ9i8WT540a3ydRlRQbxjY30XxQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"undici-types": "~6.19.2" "undici-types": "~6.19.2"
...@@ -3322,9 +3322,9 @@ ...@@ -3322,9 +3322,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001653", "version": "1.0.30001655",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz", "resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz",
"integrity": "sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==", "integrity": "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
...@@ -4805,9 +4805,9 @@ ...@@ -4805,9 +4805,9 @@
} }
}, },
"node_modules/escalade": { "node_modules/escalade": {
"version": "3.1.2", "version": "3.2.0",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/escalade/-/escalade-3.1.2.tgz", "resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/escalade/-/escalade-3.2.0.tgz",
"integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
...@@ -14060,9 +14060,9 @@ ...@@ -14060,9 +14060,9 @@
} }
}, },
"node_modules/uglify-js": { "node_modules/uglify-js": {
"version": "3.19.2", "version": "3.19.3",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/uglify-js/-/uglify-js-3.19.2.tgz", "resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/uglify-js/-/uglify-js-3.19.3.tgz",
"integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
"dev": true, "dev": true,
"license": "BSD-2-Clause", "license": "BSD-2-Clause",
"optional": true, "optional": true,
......
import * as mUserAssetsService from "../service/mUserAssets.service";
import { QueryVO} from "../service/mUserAssets.service";
let { logger, Res3Utils, optionalUtils: Optional, apiAssertUtils: ApiAssert } = require('@madex/ex-js-public');
import { ErrorCode } from "../../../constant/errorCode";
/**
* 钱包账户资产详情
* @param req
* @param infoVO
*/
export const walletAssetDetail = async (req: any, queryVO: QueryVO) => {
let func_name = "mUserAssetsCtrl.walletAssetDetail";
try {
queryVO.page = Optional.opt(queryVO, 'page', 1);
queryVO.size = Optional.opt(queryVO, 'size', 20);
if (!queryVO.user_id){
throw ErrorCode.PARAM_MISS
}
let res = await mUserAssetsService.walletAssetDetail(queryVO.user_id, Number(queryVO.page), Number(queryVO.size));
return Res3Utils.result(res);
}
catch (e) {
logger.error(`${func_name} error:${e}`);
return Res3Utils.getErrorResult(e);
}
};
/**
* 资产分布
* @param req
* @param infoVO
*/
export const assetDistribution = async (req: any, queryVO: QueryVO) => {
let func_name = "mUserAssetsCtrl.assetDistribution";
try {
if (!queryVO.user_id){
throw ErrorCode.PARAM_MISS
}
let res = await mUserAssetsService.assetDistribution(queryVO.user_id);
return Res3Utils.result(res);
}
catch (e) {
logger.error(`${func_name} error:${e}`);
return Res3Utils.getErrorResult(e);
}
};
/**
* 交易账户资产详情
* @param req
* @param infoVO
*/
export const tradeAssetsDetail = async (req: any, queryVO: QueryVO) => {
let func_name = "mUserAssetsCtrl.tradeAssetsDetail";
try {
queryVO.page = Optional.opt(queryVO, 'page', 1);
queryVO.size = Optional.opt(queryVO, 'size', 20);
if (!queryVO.user_id){
throw ErrorCode.PARAM_MISS
}
let res = await mUserAssetsService.tradeAssetsDetail(queryVO.user_id, Number(queryVO.page), Number(queryVO.size));
return Res3Utils.result(res);
}
catch (e) {
logger.error(`${func_name} error:${e}`);
return Res3Utils.getErrorResult(e);
}
};
import { ormDB, mainUserAsset } from "@madex/ex-ts-dao";
import { ErrorCode } from "../../../constant/errorCode";
import BigNumber from "bignumber.js";
import { any } from "async";
let _ = require('lodash');
let { logger, BigNumberUtils } = require('@madex/ex-js-public');
let { tickerUtils } = require('@madex/ex-js-common');
export interface QueryVO {
user_id?: number,
symbol?: string | any;
page?: number,
size?: number
}
export async function walletAssetDetail(user_id: number, page: number, size: number) {
let where = {
user_id: user_id
}
let resList = await mainUserAsset.prototype.findAndCount({
where: where,
limit: size,
offset: (page - 1) * size,
order: [["id", "desc"]],
raw: true
});
return resList;
}
export async function assetDistribution(user_id: number) {
let res = {
total_asset_u: 0,
wallet_u: {
balance: 0,
holds: 0
},
trade_u: {
balance: 0,
holds: 0
}
};
let [walletAssetInfo, tradeAssetInfo] = await Promise.all([walletAsset2USDTByUid(user_id), tradeAsset2USDTByUid(user_id)]);
res.wallet_u.balance = walletAssetInfo.balance_usdt;
res.wallet_u.holds = walletAssetInfo.holds_usdt;
res.trade_u.balance = tradeAssetInfo.balance_usdt;
res.trade_u.holds = tradeAssetInfo.holds_usdt;
res.total_asset_u = Number(new BigNumber(String(walletAssetInfo.balance_usdt)).add(new BigNumber(String(walletAssetInfo.holds_usdt)))
.add(new BigNumber(String(tradeAssetInfo.balance_usdt))).add(new BigNumber(String(tradeAssetInfo.holds_usdt))).toFixed(8, 1));
return res;
}
//TODO: 交易资产查询后续补齐 需要查询内存 叶总 提供接口查询
export async function tradeAssetsDetail(user_id: number, page: number, size: number) {
let resList = [];
return resList;
}
export async function walletAssetByUids(uids: number[]) {
try {
if (!uids || !uids.length) {
throw ErrorCode.PARAM_MISS
}
let dbInfoList = await mainUserAsset.prototype.findAll({
where: {
user_id: { [ormDB.Op.in]: uids }
}
});
return dbInfoList.length ? dbInfoList : []
}
catch (e) {
logger.error('walletAssetByUids.error:' + e);
throw e;
}
}
export async function walletAsset2USDTByUids(uids: number[]) {
try {
let dbAssetList = await walletAssetByUids(uids);
let usdtTickerMap = {};
let uidAssetListMap = _.groupBy(dbAssetList, 'user_id');
let resMap = {};
for (let uid of uids) {
let assetList = uidAssetListMap[uid];
let totalBalanceUsdt: any = 0;
let totalHoldsUsdt: any = 0;
if (assetList && assetList.length) {
for (let assetItem of assetList) {
let symbol = assetItem.symbol;
let balance = assetItem.balance;
let holds = assetItem.holds;
let usdt = usdtTickerMap[symbol] ? usdtTickerMap[symbol] : await tickerUtils.rateCoin2USDT(symbol);
//存一下 避免重复请求redis
usdtTickerMap[symbol] = usdt;
let balanceUsdt = new BigNumber(String(balance)).mul(new BigNumber(String(usdt))).toFixed(8, 1);
let holdsUsdt = new BigNumber(String(holds)).mul(new BigNumber(String(usdt))).toFixed(8, 1);
totalBalanceUsdt = new BigNumber(String(balanceUsdt)).add(new BigNumber(String(totalBalanceUsdt))).toFixed(8, 1);
totalHoldsUsdt = new BigNumber(String(holdsUsdt)).add(new BigNumber(String(totalHoldsUsdt))).toFixed(8, 1);
}
}
resMap[uid] = {
balance_usdt: totalBalanceUsdt,
holds_usdt: totalHoldsUsdt,
}
}
return resMap;
}
catch (e) {
logger.error('walletAsset2USDTByUids.error:' + e);
throw e;
}
}
export async function walletAssetByUid(user_id: number) {
try {
if (!user_id) {
throw ErrorCode.PARAM_MISS
}
let dbInfoList = await mainUserAsset.prototype.findAll({
where: {
user_id: user_id
}
});
return dbInfoList.length ? dbInfoList : []
}
catch (e) {
logger.error('walletAssetByUid.error:' + e);
throw e;
}
}
export async function walletAsset2USDTByUid(user_id: number) {
try {
let dbAssetList = await walletAssetByUid(user_id);
let totalBalanceUsdt: any = 0;
let totalHoldsUsdt: any = 0;
if (dbAssetList && dbAssetList.length) {
for (let assetItem of dbAssetList) {
let symbol = assetItem.symbol;
let balance = assetItem.balance;
let holds = assetItem.holds;
let usdt = await tickerUtils.rateCoin2USDT(symbol);
let balanceUsdt = new BigNumber(String(balance)).mul(new BigNumber(String(usdt))).toFixed(8, 1);
let holdsUsdt = new BigNumber(String(holds)).mul(new BigNumber(String(usdt))).toFixed(8, 1);
totalBalanceUsdt = new BigNumber(String(balanceUsdt)).add(new BigNumber(String(totalBalanceUsdt))).toFixed(8, 1);
totalHoldsUsdt = new BigNumber(String(holdsUsdt)).add(new BigNumber(String(totalHoldsUsdt))).toFixed(8, 1);
}
}
return {
balance_usdt: totalBalanceUsdt,
holds_usdt: totalHoldsUsdt,
};
}
catch
(e) {
logger.error('walletAsset2USDTByUid.error:' + e);
throw e;
}
}
//TODO: 交易资产查询后续补齐 需要查询内存 叶总 提供接口查询
export async function tradeAsset2USDTByUid(user_id: number) {
try {
//TODO:
let dbAssetList = await tradeAssetByUid(user_id);
let totalBalanceUsdt: any = 0;
let totalHoldsUsdt: any = 0;
if (dbAssetList && dbAssetList.length) {
for (let assetItem of dbAssetList) {
let symbol = assetItem.symbol;
let balance = assetItem.balance;
let holds = assetItem.holds;
let usdt = await tickerUtils.rateCoin2USDT(symbol);
let balanceUsdt = new BigNumber(String(balance)).mul(new BigNumber(String(usdt))).toFixed(8, 1);
let holdsUsdt = new BigNumber(String(holds)).mul(new BigNumber(String(usdt))).toFixed(8, 1);
totalBalanceUsdt = new BigNumber(String(balanceUsdt)).add(new BigNumber(String(totalBalanceUsdt))).toFixed(8, 1);
totalHoldsUsdt = new BigNumber(String(holdsUsdt)).add(new BigNumber(String(totalHoldsUsdt))).toFixed(8, 1);
}
}
return {
balance_usdt: totalBalanceUsdt,
holds_usdt: totalHoldsUsdt,
};
}
catch
(e) {
logger.error('tradeAsset2USDTByUid.error:' + e);
throw e;
}
}
//TODO:需要查询内存 叶总 提供接口查询
export async function tradeAssetByUid(user_id: number) {
try {
let res: any;
return res;
}
catch (e) {
logger.error('tradeAssetByUid.error:' + e);
throw e;
}
}
//TODO:查叶总提供的接口
export async function tradeAsset2USDTByUids(uids: number[]) {
try {
let dbAssetList = await tradeAssetByUids(uids);
let usdtTickerMap = {};
let uidAssetListMap = _.groupBy(dbAssetList, 'user_id');
let resMap = {};
for (let uid of uids) {
let assetList = uidAssetListMap[uid];
let totalBalanceUsdt: any = 0;
let totalHoldsUsdt: any = 0;
if (assetList && assetList.length) {
for (let assetItem of assetList) {
let symbol = assetItem.symbol;
let balance = assetItem.balance;
let holds = assetItem.holds;
let usdt = usdtTickerMap[symbol] ? usdtTickerMap[symbol] : await tickerUtils.rateCoin2USDT(symbol);
//存一下 避免重复请求redis
usdtTickerMap[symbol] = usdt;
let balanceUsdt = new BigNumber(String(balance)).mul(new BigNumber(String(usdt))).toFixed(8, 1);
let holdsUsdt = new BigNumber(String(holds)).mul(new BigNumber(String(usdt))).toFixed(8, 1);
totalBalanceUsdt = new BigNumber(String(balanceUsdt)).add(new BigNumber(String(totalBalanceUsdt))).toFixed(8, 1);
totalHoldsUsdt = new BigNumber(String(holdsUsdt)).add(new BigNumber(String(totalHoldsUsdt))).toFixed(8, 1);
}
}
resMap[uid] = {
balance_usdt: totalBalanceUsdt,
holds_usdt: totalHoldsUsdt,
}
}
return resMap;
}
catch (e) {
logger.error('tradeAsset2USDTByUids.error:' + e);
throw e;
}
}
//TODO: 查叶总提供接口
export async function tradeAssetByUids(uids: number[]) {
try {
if (!uids || !uids.length) {
throw ErrorCode.PARAM_MISS
}
let dbInfoList = []
return dbInfoList.length ? dbInfoList : []
}
catch (e) {
logger.error('tradeAssetByUids.error:' + e);
throw e;
}
}
...@@ -11,6 +11,8 @@ import { addOptLog, LogType } from "./userOptLog.service"; ...@@ -11,6 +11,8 @@ import { addOptLog, LogType } from "./userOptLog.service";
import { checkTotp } from "../../../utils/aclUserUtils"; import { checkTotp } from "../../../utils/aclUserUtils";
import { getFatherUserId, getUidsByFatherUid } from "./mUserInfoSon.service"; import { getFatherUserId, getUidsByFatherUid } from "./mUserInfoSon.service";
import { recordMUserOperateLog, TYPE } from "./mUserAccountOperateLog.service"; import { recordMUserOperateLog, TYPE } from "./mUserAccountOperateLog.service";
import { tradeAsset2USDTByUids, walletAsset2USDTByUids } from "./mUserAssets.service";
import BigNumber from "bignumber.js";
let _ = require('lodash'); let _ = require('lodash');
let { logger, datetimeUtils } = require('@madex/ex-js-public'); let { logger, datetimeUtils } = require('@madex/ex-js-public');
...@@ -83,9 +85,15 @@ export async function userList(queryVO: QueryVO) { ...@@ -83,9 +85,15 @@ export async function userList(queryVO: QueryVO) {
let profileMap = await getProfileByUserIds(uids); let profileMap = await getProfileByUserIds(uids);
//实名信息 //实名信息
let realNameMap = await getRealNameByUserIds(uids); let realNameMap = await getRealNameByUserIds(uids);
//钱包余额
let walletAssetMap = await walletAsset2USDTByUids(uids);
//交易账户余额
let tradeAssetMap = await tradeAsset2USDTByUids(uids);
//替换rows的集合 //替换rows的集合
let infoList: any = []; let infoList: any = [];
for (let item of resList.rows) { for (let item of resList.rows) {
let wallet_account_balance = new BigNumber(String(walletAssetMap[item.user_id].balance_usdt)).add(new BigNumber(String(walletAssetMap[item.user_id].holds_usdt)));
let trade_account_balance = new BigNumber(String(tradeAssetMap[item.user_id].balance_usdt)).add(new BigNumber(String(tradeAssetMap[item.user_id].holds_usdt)));
let oneProfile = profileMap[item.user_id]; let oneProfile = profileMap[item.user_id];
let oneRealName = realNameMap[item.user_id]; let oneRealName = realNameMap[item.user_id];
let one = { let one = {
...@@ -101,8 +109,8 @@ export async function userList(queryVO: QueryVO) { ...@@ -101,8 +109,8 @@ export async function userList(queryVO: QueryVO) {
assets_total: 0,//TODO: 总资产 assets_total: 0,//TODO: 总资产
spot_order: 0,//TODO: 现货订单数量 spot_order: 0,//TODO: 现货订单数量
contract_order: 0,//TODO: 永续合约订单数量 contract_order: 0,//TODO: 永续合约订单数量
wallet_account_balance: 0,//TODO: 钱包账户余额 wallet_account_balance: wallet_account_balance,//钱包账户余额
trade_account_balance: 0,//TODO: 交易账户余额 trade_account_balance: trade_account_balance,//TODO: 交易账户余额
kyc_status: oneRealName ? oneRealName.status : 0,//0未提交,1审核中,2审核不通过,3审核通过 kyc_status: oneRealName ? oneRealName.status : 0,//0未提交,1审核中,2审核不通过,3审核通过
kyc_type: oneRealName ? oneRealName.type : 0,//1身份证,2护照,3驾驶证 kyc_type: oneRealName ? oneRealName.type : 0,//1身份证,2护照,3驾驶证
kyc_identity: oneRealName ? oneRealName.identity : 0,//证件号 kyc_identity: oneRealName ? oneRealName.identity : 0,//证件号
......
...@@ -26,6 +26,7 @@ import * as mUserRealNameCtrl from "../../mvc/control/mUserRealName.control"; ...@@ -26,6 +26,7 @@ import * as mUserRealNameCtrl from "../../mvc/control/mUserRealName.control";
import * as usefulLinkCtrl from "../../mvc/control/usefulLink.control"; import * as usefulLinkCtrl from "../../mvc/control/usefulLink.control";
import * as mUserSubscribeCtrl from "../../mvc/control/mUserSubscribe.control"; import * as mUserSubscribeCtrl from "../../mvc/control/mUserSubscribe.control";
import * as commonUserFeeSettingCtrl from "../../mvc/control/commonUserFeeSetting.control"; import * as commonUserFeeSettingCtrl from "../../mvc/control/commonUserFeeSetting.control";
import * as mUserAssetsCtrl from "../../mvc/control/mUserAssets.control";
const getFunc = { const getFunc = {
'user/info': userController.getUserInfo, 'user/info': userController.getUserInfo,
}; };
...@@ -107,6 +108,9 @@ const postFunc = { ...@@ -107,6 +108,9 @@ const postFunc = {
'mUser/manage/kyc/list': mUserRealNameCtrl.kycList,//Madex 用户管理 ->实名认证列表 'mUser/manage/kyc/list': mUserRealNameCtrl.kycList,//Madex 用户管理 ->实名认证列表
'mUser/manage/kyc/oneDetail': mUserRealNameCtrl.oneDetail,//Madex 用户管理 ->kyc详情 'mUser/manage/kyc/oneDetail': mUserRealNameCtrl.oneDetail,//Madex 用户管理 ->kyc详情
'mUser/manage/kyc/audit': mUserRealNameCtrl.audit,//Madex 用户管理 ->kyc审核 'mUser/manage/kyc/audit': mUserRealNameCtrl.audit,//Madex 用户管理 ->kyc审核
'mUser/manage/walletAsset/detail': mUserAssetsCtrl.walletAssetDetail,//Madex 用户管理 ->钱包账户资产详情
'mUser/manage/asset/distribution': mUserAssetsCtrl.assetDistribution,//Madex 用户管理 ->资产分布
'mUser/manage/tradeAsset/detail': mUserAssetsCtrl.tradeAssetsDetail,//Madex 用户管理 ->交易账户资产详情
//资源位管理 //资源位管理
'link/useful/list': usefulLinkCtrl.list,//链接记录列表 'link/useful/list': usefulLinkCtrl.list,//链接记录列表
......
...@@ -82,6 +82,9 @@ let cmdWhiteList = { ...@@ -82,6 +82,9 @@ let cmdWhiteList = {
'mUser/fee/setting/update': 1, 'mUser/fee/setting/update': 1,
'mUser/fee/setting/delete': 1, 'mUser/fee/setting/delete': 1,
'mUser/fee/setting/submit': 1, 'mUser/fee/setting/submit': 1,
'mUser/manage/walletAsset/detail': 1,
'mUser/manage/asset/distribution': 1,
'mUser/manage/tradeAsset/detail': 1,
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment