1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
| router.get('/paysum.node', function(req, res, next) { var msg = { stats: 1, err: [], main: {}, mark: '' };
var params = dealParams(req); var merchantId = req.query.merchantId; var branchId = req.query.branchId;
//查询出来的数据 var paywayList = []; //交易产生的 var tradeList = []; //充值产生 var rechargeList = []; //交易产生的统计数据 var tradeSum = {}; //充值产生的统计数据 var rechargeSum = {}; //会员充值次数 var vipRechargeCount = 0;
var task1 = new Promise ((resolve,reject)=>{ //首先查询该商户下的所有支付名称 bossService.getPaywayListByMerchant(merchantId, branchId, function(items) { paywayList = items; Log.debug('task1 endding...'); return resolve(); }); }) var task2 = new Promise((resolve,reject)=>{ //然后查询出该商户下交易产生的支付数据列表和统计数据 bossService.getPaysumListByMerchant(merchantId, branchId, params.startDate, params.endDate, function(items) { tradeList = items; Log.debug('task2 endding...'); return resolve(); }); }) var task3 = new Promise((resolve,reject)=>{ //最后在查询出该商户下充值产生的列表和统计数据 bossService.getVippaysumListByMerchant(merchantId, branchId, params.startDate, params.endDate, function(items, objs) { rechargeList = objs; Log.debug('task3 endding...'); return resolve(); }); }) var task4 = new Promise((resolve,reject)=>{ bossService.getDaysumListByMerchant(merchantId, branchId, params.startDate, params.endDate, function(list, sum) { tradeSum = sum; Log.debug('task4 endding...'); return resolve(); }); }) var task5 = new Promise((resolve,reject)=>{ bossService.getRechargeListByMerchant(merchantId, branchId, params.startDate, params.endDate, function(list, sum) { rechargeSum = sum; Log.debug('task5 endding...'); return resolve(); }); }) var task6 = new Promise((resolve,reject)=>{ //查询会员充值次数 bossService.getVipRechargeSum(merchantId, branchId, params.startDate, params.endDate, function(count) { vipRechargeCount = count; Log.debug('task6 endding...'); return resolve(); }); })
Promise.all([task1, task2, task3, task4, task5, task6]).then(() => { //到这里查询已全部结束 //最后合并该统计数据 Log.debug('promise all start...') var payList = []; tradeList.forEach(function(value) { var recharge = rechargeList[value.payId]; if (recharge) { value.payAmt += recharge.payAmt; //封装最新的payname value.payWay = paywayList[value.payId] delete rechargeList[value.payId]; } }); for (var key in rechargeList) { var obj = rechargeList[key]; obj.payWay = paywayList[obj.payId]; tradeList.push(obj); } tradeList.sort((obj1, obj2) => (obj2.payAmt - obj1.payAmt)); //还差统计数据 tradeSum.saleAmt += rechargeSum.amt; tradeSum.vipAmt = rechargeSum.amt; tradeSum.rechargeCount = vipRechargeCount || 0; msg.main.sum = tradeSum; msg.main.pay = tradeList; if (msg.main.sum.saleAmt == 0) { msg.main = null; } res.send(msg); });
});
|