flexbiz-server
Version:
Flexible Server
6 lines (5 loc) • 2.18 kB
JavaScript
const dkdiem=require("./dkdiem"),transaction=global.getModel("transaction"),async=require("async"),underscore=require("underscore");
module.exports=function($condition$$,$fn$$){if($condition$$&&$condition$$.tu_ngay&&$condition$$.den_ngay&&$condition$$.id_app){var $id_app$$=$condition$$.id_app,$groupBy$$=$condition$$.groupBy;if($groupBy$$&&!underscore.isArray($groupBy$$)&&($groupBy$$.indexOf("{")>=0||$groupBy$$.indexOf("[")>=0))try{$groupBy$$=JSON.parse($groupBy$$)}catch($e$$){Logger.error($e$$)}$groupBy$$||=["email"];async.series({dn:function($callback$$){dkdiem($condition$$,function($error$$,$result$$){if($error$$)return $callback$$($error$$);
$callback$$(null,$result$$)})},ps:function($callback$$){let $query$$={id_app:$id_app$$,ngay_ct:{$gte:$condition$$.tu_ngay,$lte:$condition$$.den_ngay}};$condition$$.email&&($query$$.$or=[{"sender.email":$condition$$.email},{"receiver.email":$condition$$.email}]);transaction.find($query$$).lean().then(function($ps_pss$$){$ps_pss$$=$ps_pss$$.map($n_p$$=>{let $x$$=Object.assign({},$n_p$$);$x$$.email=$x$$.sender.email;$x$$.sl_xuat=$x$$.amount;$x$$.sl_nhap=0;$n_p$$=Object.assign({},$n_p$$);$n_p$$.email=
$n_p$$.receiver.email;$n_p$$.sl_nhap=$n_p$$.amount;$n_p$$.sl_xuat=0;return[$n_p$$,$x$$]}).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($r$$=>$r$$.email.toLowerCase()!==$r$$.id_app.toLowerCase());$condition$$.email&&($ps_pss$$=$ps_pss$$.filter($r$$=>$r$$.email===$condition$$.email));$callback$$(null,$ps_pss$$)}).catch($error$$=>{$callback$$($error$$)})}},function($error$$,$results$$){$error$$?$fn$$($error$$):$results$$.dn.concat($results$$.ps).groupBy($groupBy$$,[{name:"ton_dau",value:"ton00"},
"sl_nhap","sl_xuat"],($e$jscomp$1_result$$,$groups$$)=>{if($e$jscomp$1_result$$)return $fn$$($e$jscomp$1_result$$);for(let $r$$ of $groups$$)$r$$.ton_cuoi=$r$$.ton_dau+$r$$.sl_nhap-$r$$.sl_xuat;$e$jscomp$1_result$$=underscore.filter($groups$$,function($r$$){return Math.abs($r$$.ton_dau)+Math.abs($r$$.sl_nhap)+Math.abs($r$$.sl_xuat)+Math.abs($r$$.ton_cuoi)!==0});$fn$$(null,$e$jscomp$1_result$$)})})}else $fn$$("L\u1ed7i: B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: tu_ngay,den_ngay,id_app")};