flexbiz-server
Version:
Flexible Server
18 lines (17 loc) • 8.34 kB
JavaScript
'use strict';const model=global.getModel("dmnv"),dmbp=global.getModel("dmbp"),dmdoi=global.getModel("dmdoi"),dmto=global.getModel("dmto"),dmnhnv=global.getModel("dmnhnv"),User=global.getModel("user"),Usergroup=global.getModel("usergroup"),Participant=global.getModel("participant"),group=global.getModel("group"),async=require("async"),controller=require("../../controllers/controller"),dmnv=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"dmnv",{sort:{ma_bp:1,ma_doi:1,
ma_to:1,ten_nv:1},unique:["ma_nv"],onCreating:async($ex$jscomp$0$$,$data$$,$next$$)=>{if($data$$.user){let $ex$$=await model.findOne({id_app:$ex$jscomp$0$$.current_id_app,user:$data$$.user}).lean();if($ex$$)return $next$$("T\u00ean \u0111\u0103ng nh\u1eadp '"+$data$$.user+"' \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng cho nh\u00e2n vi\u00ean "+$ex$$.ten_nv)}if($data$$.device_user_id&&($ex$jscomp$0$$=await model.findOne({id_app:$ex$jscomp$0$$.current_id_app,device_user_id:$data$$.device_user_id}).lean()))return $next$$("M\u00e3 tr\u00ean m\u00e1y ch\u1ea5m c\u00f4ng '"+
$data$$.device_user_id+"' \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng cho nh\u00e2n vi\u00ean "+$ex$jscomp$0$$.ten_nv);$next$$(null,$data$$)},onUpdating:async($ex$jscomp$3_user$$,$data$$,$obj$$,$next$$)=>{if($data$$.user&&$data$$.user!==$obj$$.user){let $ex$$=await model.findOne({id_app:$ex$jscomp$3_user$$.current_id_app,user:$data$$.user}).lean();if($ex$$)return $next$$("T\u00ean \u0111\u0103ng nh\u1eadp '"+$data$$.user+"' \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng cho nh\u00e2n vi\u00ean "+
$ex$$.ten_nv)}if($data$$.device_user_id&&$data$$.device_user_id!==$obj$$.device_user_id&&($ex$jscomp$3_user$$=await model.findOne({id_app:$ex$jscomp$3_user$$.current_id_app,device_user_id:$data$$.device_user_id}).lean()))return $next$$("M\u00e3 tr\u00ean m\u00e1y ch\u1ea5m c\u00f4ng '"+$data$$.device_user_id+"' \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng cho nh\u00e2n vi\u00ean "+$ex$jscomp$3_user$$.ten_nv);$next$$(null,$data$$,$obj$$)},onView:($user$$,$items$$,$next$$)=>{$items$$.forEach($item$$=>
{delete $item$$.default_password});async.series([$callback$$=>{$items$$.filter($item$$=>$item$$.phu_trach).joinModel2(null,User,[{where:{phu_trach:"email"},fields:[{name:"ten_phu_trach",value:"name"}]}],function(){$callback$$(null,$items$$)})},$callback$$=>{$items$$.filter($item$$=>$item$$.ma_bp).joinModel2($user$$.current_id_app,dmbp,[{where:{ma_bp:"ma_bp"},fields:"ten_bp"}],function(){$callback$$(null,$items$$)})},$callback$$=>{$items$$.filter($item$$=>$item$$.ma_doi).joinModel2($user$$.current_id_app,
dmdoi,[{where:{ma_bp:"ma_bp",ma_doi:"ma_doi"},fields:"ten_doi"}],function(){$callback$$(null,$items$$)})},$callback$$=>{$items$$.filter($item$$=>$item$$.ma_to).joinModel2($user$$.current_id_app,dmto,[{where:{ma_bp:"ma_bp",ma_doi:"ma_doi",ma_to:"ma_to"},fields:"ten_to"}],function(){$callback$$(null,$items$$)})},$callback$$=>{$items$$.filter($item$$=>$item$$.ma_nh_nv).joinModel2($user$$.current_id_app,dmnhnv,[{where:{ma_bp:"ma_bp",ma_doi:"ma_doi",ma_to:"ma_to",ma_nh_nv:"ma_nh_nv"},fields:"ten_nh_nv"}],
function(){$callback$$(null,$items$$)})},$callback$$=>{$items$$.filter($item$$=>$item$$.chuc_vu).joinModel2($user$$.current_id_app,group,[{where:{chuc_vu:"_id"},fields:[{ten_chuc_vu:"group_name"},{color:"color"},{muc_tieu_bieu:"muc_tieu_bieu"}]}],function(){$callback$$(null,$items$$)})},$callback$jscomp$0$$=>{async.mapSeries($items$$,($item$jscomp$0$$,$callback$$)=>{($item$jscomp$0$$.bo_phan||[]).filter($item$$=>$item$$.chuc_vu).joinModel2($user$$.current_id_app,group,[{where:{chuc_vu:"_id"},fields:[{ten_chuc_vu:"group_name"},
{color:"color"},{muc_tieu_bieu:"muc_tieu_bieu"}]}],function(){$callback$$(null,$items$$)})},()=>{$callback$jscomp$0$$(null,$items$$)})},$callback$jscomp$0$$=>{async.mapSeries($items$$,($item$jscomp$0$$,$callback$$)=>{($item$jscomp$0$$.bo_phan||[]).filter($item$$=>$item$$.ma_bp).joinModel2($user$$.current_id_app,dmbp,[{where:{ma_bp:"ma_bp"},fields:[{ten_bp:"ten_bp"}]}],function(){$callback$$(null,$items$$)})},()=>{$callback$jscomp$0$$(null,$items$$)})}],()=>{$items$$.filter($item$$=>$item$$.bo_phan).forEach($item$$=>
{$item$$.bo_phan.forEach($bp$$=>{$bp$$.active=!$bp$$.den_ngay||$bp$$.den_ngay>=new Date;$bp$$.active&&($item$$.ma_bp=$item$$.map_bp||$bp$$.ma_bp,$item$$.ten_bp=$item$$.ten_bp||$bp$$.ten_bp,$item$$.phu_trach=$item$$.phu_trach||$bp$$.phu_trach,$item$$.chuc_vu=$item$$.chuc_vu||$bp$$.chuc_vu)})});$next$$(null,$items$$)})},onImport:($user$$,$data$$,$columns$$,$next$$)=>{async.mapSeries($data$$,function($r$$,$callback$jscomp$0$$){async.series({nhom:function($callback$$){$r$$.group_name&&!$r$$.nh_kh?group.findOneAndUpdate({id_app:$user$$.current_id_app,
group_type:"DMNV",group_name:{$regex:$r$$.group_name,$options:"i"}},{group_name:$r$$.group_name,group_type:"DMNV",status:!0},{new:!0,upsert:!0},function($e$$,$n$$){if($e$$)return $callback$$($e$$);$r$$.nh_nv=$n$$._id.toString();$callback$$(null)}):$callback$$()}},function(){$callback$jscomp$0$$()})},function(){$next$$()})},onRightByItem:($user$$,$condition$$,$next$$)=>{async.series({phu_trach_bp:$callback$$=>{dmbp.find({id_app:$user$$.current_id_app,phu_trach:$user$$.email}).lean().exec(($e$$,$bps$$)=>
{$callback$$(null,$bps$$)})},phu_trach_doi:$callback$$=>{dmdoi.find({id_app:$user$$.current_id_app,phu_trach:$user$$.email}).lean().exec(($e$$,$bps$$)=>{$callback$$(null,$bps$$)})},phu_trach_to:$callback$$=>{dmto.find({id_app:$user$$.current_id_app,phu_trach:$user$$.email}).lean().exec(($e$$,$bps$$)=>{$callback$$(null,$bps$$)})},phu_trach_nhom:$callback$$=>{dmnhnv.find({id_app:$user$$.current_id_app,phu_trach:$user$$.email}).lean().exec(($e$$,$bps$$)=>{$callback$$(null,$bps$$)})}},($_condition_bps$jscomp$4_e$$,
$$or_nhs_rs$$)=>{if($_condition_bps$jscomp$4_e$$)return $next$$($_condition_bps$jscomp$4_e$$);$_condition_bps$jscomp$4_e$$=$$or_nhs_rs$$.phu_trach_bp.map($b$$=>$b$$.ma_bp);var $_c_dois$$=$$or_nhs_rs$$.phu_trach_doi.map($d$$=>$d$$.ma_doi);let $tos$$=$$or_nhs_rs$$.phu_trach_to.map($t$$=>$t$$.ma_to);$$or_nhs_rs$$=$$or_nhs_rs$$.phu_trach_nhom.map($n$$=>$n$$.ma_nh_nv);$$or_nhs_rs$$=[{user:$user$$.email},{ma_bp:{$in:$_condition_bps$jscomp$4_e$$}},{ma_doi:{$in:$_c_dois$$}},{ma_to:{$in:$tos$$}},{ma_nh_nv:{$in:$$or_nhs_rs$$}}];
$_condition_bps$jscomp$4_e$$=[];for(let $k$$ in $condition$$)$_c_dois$$={},$_c_dois$$[$k$$]=$condition$$[$k$$],$_condition_bps$jscomp$4_e$$.push($_c_dois$$);0<$_condition_bps$jscomp$4_e$$.length&&$$or_nhs_rs$$.push({$and:$_condition_bps$jscomp$4_e$$});$next$$(null,{$or:$$or_nhs_rs$$})})},onQuery:($req$$,$next$$)=>{if($req$$.obj&&$req$$.obj.user===$req$$.user.email)return $req$$.permission=!0,$next$$();$req$$.permission||($req$$.condition={user:$req$$.user.email});$req$$.permission=!0;$next$$()}});
$contr_router$$.validating=async($id_app_user$$,$obj$$,$next$$,$options$$={})=>{if("add"==$options$$.action&&!$obj$$.ma_nv&&$obj$$.ten_nv){$id_app_user$$=$id_app_user$$.current_id_app;try{let $ma_nv$$=await model.asyncCreateEmployeeCode($id_app_user$$,$obj$$.ten_nv);$obj$$.ma_nv=$ma_nv$$;$next$$(null,$obj$$)}catch($e$$){console.error($e$$),$next$$($e$$)}}else $next$$(null,$obj$$)};$contr_router$$.route();$contr_router$$.on("saved",async $data$$=>{let $_usergroup$$;try{$_usergroup$$=await Usergroup.getInfo($data$$.id_app,
{is_employee_group:!0})}catch($e$$){return}$data$$.user&&$_usergroup$$&&User.findOne({email:$data$$.user},($e$jscomp$1$$,$rs$$)=>{if($rs$$)Participant.createParticipant({id_app:$data$$.id_app,email:$data$$.user,group_id:$_usergroup$$._id,active:!0},$e$$=>{if($e$$)return console.log("can't add user",$data$$.user,"to company")});else{var $result$$=new User;$result$$.email=$data$$.user;$result$$.name=$data$$.ten_nv;$result$$.email2=$data$$.email;$result$$.local={};$result$$.local.email=$result$$.email;
$result$$.local.name=$result$$.name;$result$$.local.picture="/images/avatar.jpg";$result$$.local.password=$result$$.generateHash($result$$.email+($data$$.default_password||$result$$.email+"@123456"));$result$$.save($e$jscomp$0$$=>{if($e$jscomp$0$$)return console.log($e$jscomp$0$$.message);Participant.createParticipant({id_app:$data$$.id_app,email:$result$$.email,group_id:$_usergroup$$._id,active:!0},$e$$=>{if($e$$)return console.log("can't add user",$result$$.email,"to company")})})}})})};
module.exports=dmnv;