flexbiz-server
Version:
Flexible Server
10 lines (9 loc) • 4.21 kB
JavaScript
'use strict';const model=global.getModel("datlich"),User=global.getModel("user"),controller=require("../../controllers/controller"),trangthai=global.getModel("trangthai"),dmkho=global.getModel("dmkho"),customer=global.getModel("customer"),Group=global.getModel("group"),Schedule=global.getModel("schedule"),async=require("async");
async function createSchedule($data_obj$$){await Schedule.removeScheduleLink($data_obj$$._id.toString());if($data_obj$$.khung_gio){var $time_run$$=new Date($data_obj$$.ngay),$khung_gio_users_will_receive$$=Number($data_obj$$.khung_gio.split("-")[1]);$time_run$$.setHours($khung_gio_users_will_receive$$);$time_run$$.setMinutes($time_run$$.getMinutes()-$data_obj$$.nhac_nho_truoc);"HENLICH"!==$data_obj$$.trang_thai&&"XACNHAN"!==$data_obj$$.trang_thai||!$data_obj$$.nhac_nho_truoc||$time_run$$<new Date||
($data_obj$$=$data_obj$$.toObject?$data_obj$$.toObject():{...$data_obj$$},$khung_gio_users_will_receive$$=$data_obj$$.attends||[],$data_obj$$.phu_trach&&$khung_gio_users_will_receive$$.push($data_obj$$.phu_trach),0===$khung_gio_users_will_receive$$.length&&$khung_gio_users_will_receive$$.push($data_obj$$.user_created),$khung_gio_users_will_receive$$=[...(new Set($khung_gio_users_will_receive$$))],$data_obj$$.title="Nh\u1eafc l\u1ecbch h\u1eb9n: "+$data_obj$$.noi_dung,$data_obj$$.users_will_receive=
$khung_gio_users_will_receive$$,$data_obj$$.code="datlich",Schedule.addSchedule({id_link:$data_obj$$._id.toString(),action:"sendNotification",data:$data_obj$$,title:$data_obj$$.title,time_run:$time_run$$,trang_thai:"0",status:!0,user_created:$data_obj$$.user_created,user_updated:$data_obj$$.user_created}))}}
module.exports=function($router$$){(new controller($router$$,model,"datlich",{sort:{ngay:-1},notNeedRight:!0,users_receive_notification_default:[{trang_thai:"HENLICH",content:'L\u1ecbch "{{noi_dung}}" m\u1edbi',send_phu_trach:!0,send_attends:!0,send_admin:!0},{trang_thai:"XACNHAN",content:'L\u1ecbch "{{noi_dung}}" \u0111\u00e3 \u0111\u01b0\u1ee3c x\u00e1c nh\u1eadn',send_phu_trach:!0,send_attends:!0,send_admin:!0}],onFinding:($user$$,$condition$$,$next$$)=>{console.log("find datlich",$condition$$);
$next$$(null,$condition$$)},onView:($user$$,$items$$,$callback$jscomp$0$$)=>{async.series({u:$callback$$=>{$items$$.joinModel2(null,User,[{where:{datlich_user:"email"},fields:[{datlich_name:"name"},{picture:"picture"}]}],function(){$callback$$(null,$items$$)})},group:$callback$$=>{$items$$.joinModel2($user$$.current_id_app,Group,[{where:{group_id:"_id"},fields:[{group_name:"group_name"}]}],function(){$callback$$(null,$items$$)})},phutrach:$callback$$=>{$items$$.joinModel2(null,User,[{where:{phu_trach:"email"},
fields:[{ten_phu_trach:"name"}]}],function(){$callback$$(null,$items$$)})},kho:$callback$$=>{$items$$.joinModel2($user$$.current_id_app,dmkho,[{where:{ma_kho:"ma_kho"},fields:[{ten_kho:"ten_kho"}]}],function(){$callback$$(null,$items$$)})},customer:$callback$$=>{$items$$.joinModel2($user$$.current_id_app,customer,[{where:{ma_kh:"ma_kh"},fields:"ten_kh dia_chi xa_phuong quan_huyen tinh_thanh dien_thoai email".split(" ")}],function(){$callback$$(null,$items$$)})},trangthai:$callback$$=>{$items$$.joinModel2(null,
trangthai,[{where:$a$$=>({ma_ct:"DATLICH",ma_trang_thai:$a$$.trang_thai}),fields:["ten_trang_thai","color"]}],function(){$callback$$()})}},()=>{$callback$jscomp$0$$(null,$items$$)})},onCreating:async($cust_user$$,$obj$$,$next$$)=>{$obj$$.ma_kh&&($cust_user$$=await customer.findOne({id_app:$cust_user$$.current_id_app,ma_kh:$obj$$.ma_kh}))&&($obj$$.id_link=$cust_user$$._id.toString());$next$$(null,$obj$$)},onCreated:async($user$$,$obj$$,$next$$)=>{createSchedule($obj$$);$next$$(null,$obj$$)},onUpdating:async($cust$jscomp$1_user$$,
$data$$,$obj$$,$next$$)=>{$data$$.ma_kh&&$data$$.ma_kh!==$obj$$.ma_kh&&($cust$jscomp$1_user$$=await customer.findOne({id_app:$cust$jscomp$1_user$$.current_id_app,ma_kh:$data$$.ma_kh}))&&($data$$.id_link=$cust$jscomp$1_user$$._id.toString());$next$$(null,$data$$,$obj$$)},onUpdated:($user$$,$obj$$,$next$$)=>{createSchedule($obj$$);$next$$(null,$obj$$)},onDeleted:async($user$$,$obj$$,$next$$)=>{await Schedule.removeScheduleLink($obj$$._id.toString());$next$$(null,$obj$$)}})).route()};