flexbiz-server
Version:
Flexible Server
10 lines (9 loc) • 4.17 kB
JavaScript
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"),{onAfterCommit}=require("../../libs/sessionContext");
async function createSchedule($obj$$){onAfterCommit(async()=>{await Schedule.removeScheduleLink($obj$$._id.toString());if($obj$$.khung_gio){var $time_run$$=new Date($obj$$.ngay),$data_khung_gio$$=Number($obj$$.khung_gio.split("-")[1]);$time_run$$.setHours($data_khung_gio$$);$time_run$$.setMinutes($time_run$$.getMinutes()-$obj$$.nhac_nho_truoc);if(!($obj$$.trang_thai!=="HENLICH"&&$obj$$.trang_thai!=="XACNHAN"||!$obj$$.nhac_nho_truoc||$time_run$$<new Date)){$data_khung_gio$$=$obj$$.toObject?$obj$$.toObject():
{...$obj$$};var $users_will_receive$$=$data_khung_gio$$.attends||[];$data_khung_gio$$.phu_trach&&$users_will_receive$$.push($data_khung_gio$$.phu_trach);$users_will_receive$$.length===0&&$users_will_receive$$.push($data_khung_gio$$.user_created);$users_will_receive$$=[...(new Set($users_will_receive$$))];$data_khung_gio$$.title="Nh\u1eafc l\u1ecbch h\u1eb9n: "+$data_khung_gio$$.noi_dung;$data_khung_gio$$.users_will_receive=$users_will_receive$$;$data_khung_gio$$.code="datlich";Schedule.addSchedule({id_link:$data_khung_gio$$._id.toString(),
action:"sendNotification",data:$data_khung_gio$$,title:$data_khung_gio$$.title,time_run:$time_run$$,trang_thai:"0",status:!0,user_created:$data_khung_gio$$.user_created,user_updated:$data_khung_gio$$.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$$)=>{$next$$(null,$condition$$)},onView:($user$$,
$items$$,$callback$$)=>{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$$(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$$)=>{onAfterCommit(async()=>{await Schedule.removeScheduleLink($obj$$._id.toString())});$next$$(null,$obj$$)}})).route()};