flexbiz-server
Version:
Flexible Server
5 lines (4 loc) • 1.5 kB
JavaScript
const model=global.getModel("dmdoi"),dmbp=global.getModel("dmbp"),Participant=global.getModel("participant"),controller=require("../../controllers/controller"),async=require("async");
module.exports=function($router$$){(new controller($router$$,model,"dmdoi",{sort:{ma_bp:1,ma_doi:1},unique:["ma_doi"],onView:function($user$$,$items$$,$next$$){async.series({dp:function($callback$$){$items$$.joinModel2($user$$.current_id_app,dmbp,[{where:{ma_bp:"ma_bp"},fields:["ten_bp"]}],function(){$callback$$(null,$items$$)})},pt:function($callback$$){$items$$.joinModel2($user$$.current_id_app,Participant,[{where:{phu_trach:"email"},fields:[{ten_phu_trach:"name"}]}],function(){$callback$$(null,
$items$$)})},ph:function($callback$$){$items$$.joinModel2($user$$.current_id_app,Participant,[{where:{phoi_hop:"email"},fields:[{ten_phoi_hop:"name"}]}],function(){$callback$$(null,$items$$)})}},()=>{$next$$(null,$items$$)})},onRightByItem:($user$$,$condition$$,$next$$)=>{async.series({phu_trach_bp:$callback$$=>{dmbp.find({id_app:$user$$.current_id_app,phu_trach:$user$$.email}).lean().then($bps$$=>{$callback$$(null,$bps$$)}).catch($e$$=>{$callback$$($e$$)})}},($$or_e$$,$_condition_rs$$)=>{if($$or_e$$)return $next$$($$or_e$$);
$$or_e$$=[{ma_bp:{$in:$_condition_rs$$.phu_trach_bp.map($p$$=>$p$$.ma_bp)}}];$_condition_rs$$=[];for(let $k$$ in $condition$$){let $_c$$={};$_c$$[$k$$]=$condition$$[$k$$];$_condition_rs$$.push($_c$$)}$$or_e$$.push({$and:$_condition_rs$$});$next$$(null,{$or:$$or_e$$})})}})).route()};