flexbiz-server
Version:
Flexible Server
5 lines (4 loc) • 1.58 kB
JavaScript
const link=global.getModel("link"),async=require("async"),controller=require("../../controllers/controllerRPT");
module.exports=function($router$$){new controller($router$$,"linkslist",function($query_req$$,$callback$$){if(!$query_req$$.query._id)return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1 _id");const $_id$$=$query_req$$.query._id;let $collections$$=$query_req$$.query.collections;$collections$$&&=$collections$$.split(",");$query_req$$={id_app:$query_req$$.query.id_app};$query_req$$.$or=[{id_a:$_id$$,collection_b:{$in:$collections$$}},{id_b:$_id$$,collection_a:{$in:$collections$$}}];
const $report$$=[];link.find($query_req$$).lean().exec(function($e$$,$rs$$){if($e$$)return $callback$$($e$$);async.mapLimit($rs$$,20,function($r$$,$callback$$){let $model_name$$,$id_r$$;$r$$.id_a.toString()==$_id$$?($model_name$$=$r$$.collection_b,$id_r$$=$r$$.id_b):($model_name$$=$r$$.collection_a,$id_r$$=$r$$.id_a);if(!$model_name$$)return $callback$$();let $collection_goc$$=$r$$.collection_obj=$model_name$$;$model_name$$=="dmkh"&&($collection_goc$$="customer");$model_name$$=="dmtk"&&($collection_goc$$=
"account");$model_name$$=="dmnt"&&($collection_goc$$="currency");global.getModel(""+$collection_goc$$).findOne({_id:$id_r$$}).lean().exec(function($e$$,$ks$$){if($e$$)return $callback$$($e$$);if($ks$$){$r$$.obj=$ks$$;$e$$="_id";for(let $k$$ in $ks$$)if($k$$=="title"||$k$$.indexOf("ten_")===0){$e$$=$k$$;break}$r$$.title=$ks$$[$e$$];$report$$.push($r$$)}$callback$$(null,$ks$$)})},function(){$callback$$(null,$report$$)})})},{notNeedRight:!0})};