flexbiz-server
Version:
Flexible Server
20 lines (19 loc) • 9.32 kB
JavaScript
const async=require("async"),model=global.getModel("bds_nhadat"),controller=require("../../controllers/controller"),trangthai=global.getModel("trangthai"),building=global.getModel("bds_building"),floordetail=global.getModel("bds_floordetail"),dmdt=global.getModel("dmdt"),utils=require("../../libs/utils");
module.exports=function($contr_router$$){const $updateFloor$$=function($user$$,$obj$$,$next$$){let $_item$$={};$_item$$.mieu_ta_goc=$obj$$.mieu_ta;$_item$$.so_phong_goc=$obj$$.so_phong;$_item$$.so_wc_goc=$obj$$.so_wc;$_item$$.noi_that_goc=$obj$$.noi_that;$_item$$.dien_tich_phong_thuy_goc=$obj$$.dien_tich_phong_thuy;$_item$$.dien_tich_tim_tuong_goc=$obj$$.dien_tich_tim_tuong;$_item$$.huong_ban_cong_goc=$obj$$.huong_ban_cong;$_item$$.huong_cua_chinh_goc=$obj$$.huong_cua_chinh;$_item$$.nh_nd_goc=$obj$$.nh_nd;
$_item$$.noi_that_goc_en=$obj$$.noi_that_en;$_item$$.mieu_ta_goc_en=$obj$$.mieu_ta_en;$_item$$.noi_that_goc_en=$obj$$.noi_that_en;$_item$$.huong_ban_cong_goc_en=$obj$$.huong_ban_cong_en;$_item$$.huong_cua_chinh_goc_en=$obj$$.huong_cua_chinh_en;floordetail.find({id_app:$obj$$.id_app,ma_nd:$obj$$.ma_nd,ma_dt:$obj$$.ma_dt,building_code:$obj$$.building_code},($e$$,$rs$$)=>{$rs$$.forEach(async $r$$=>{await floordetail.updateOne({_id:$r$$._id},$_item$$)})});$next$$(null,$obj$$)};$contr_router$$=new controller($contr_router$$,
model,"nhadat",{sort:{stt:1},unique:["ma_nd"],assignWiths:[{field:"nh_nd",ref_collection:"bds_nhomnhadat",ref_field:"ma_nhom",ref_module:"nhomnhadat"}],notNeedRight:($user$$,$options$$={})=>($options$$.action||"").toLowerCase()=="add"&&($options$$.obj||{}).trang_thai=="1"?!0:!1,onFinding:async function($user$$,$condition$$,$next$$,$options$$){$options$$.req.query.wishlist||($options$$.req.query.wishlist=$condition$$.wishlist);delete $condition$$.wishlist;Array.isArray($condition$$.phan_loai)&&($condition$$.phan_loai.length>
0?$condition$$.phan_loai={$in:$condition$$.phan_loai}:delete $condition$$.phan_loai);if(!$condition$$.ma_dt&&Object.hasOwn($condition$$,"la_du_an_chu_dau_tu")){var $ma_dts_q$$={id_app:$user$$.current_id_app,status:!0};$ma_dts_q$$.la_du_an_chu_dau_tu=$condition$$.la_du_an_chu_dau_tu===!1?{$in:[null,!1]}:$condition$$.la_du_an_chu_dau_tu;$ma_dts_q$$=(await global.getModel("dmdt").find($ma_dts_q$$,{ma_dt:1}).lean()).map($r$$=>$r$$.ma_dt);$condition$$.la_du_an_chu_dau_tu===!1&&($ma_dts_q$$.push(null),
$ma_dts_q$$.push(""));$condition$$.ma_dt={$in:$ma_dts_q$$};delete $condition$$.la_du_an_chu_dau_tu}async.series({wishlist:$callback$$=>{if($options$$.req.query.wishlist){let $query_wishlist$$={id_app:$condition$$.id_app,user:$user$$.email};$condition$$.ma_nd&&($query_wishlist$$.ma_vt=$condition$$.ma_nd);global.getModel("ecomwishlist").find($query_wishlist$$,{ma_vt:1}).lean().then($ws$$=>{$condition$$.ma_nd=$ws$$.map($w$$=>$w$$.ma_vt);$callback$$()}).catch($e$$=>{$callback$$($e$$)})}else $callback$$()},
find_ten_dt:function($callback$$){$condition$$.ten_dt&&!$condition$$.ma_dt?dmdt.find({id_app:$user$$.current_id_app,ten_dt:{$regex:$condition$$.ten_dt,$options:"i"}},{ma_dt:1}).lean().then(function($dts$$){delete $condition$$.ten_dt;$condition$$.ma_dt={$in:$dts$$.map($d$$=>$d$$.ma_dt)};$callback$$()}).catch($e$$=>{$callback$$($e$$)}):$callback$$()}},function($e$$){if($e$$)return $next$$($e$$);$next$$(null,$condition$$)})},onView:function($user$$,$items$$,$next$$,$options$$){async.parallel({wish:$callback$$=>
{$options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.wishlist||!$options$$.req.query.fields||$options$$.req.query.fields.indexOf("wish")>=0)?(console.log("[bds_nhadat] ki\u1ec3m tra wish..."),$items$$.joinModel2($user$$.current_id_app,"ecomwishlist",{where:$item$$=>({user:$user$$.email,ma_vt:$item$$.ma_nd}),setFields:($item$$,$ref$$)=>{$item$$.wish=$ref$$?._id?!0:!1;$item$$.id_wish=$ref$$?._id}},async function($rs$$){async.map($items$$,async $item$$=>{let $comment_number$$=await global.getModel("comment").countDocuments({id_app:$user$$.current_id_app,
id_product:$item$$._id});$item$$.comment_number=$comment_number$$},()=>{$callback$$(null,$rs$$)})})):$callback$$()},phu_trach:$callback$$=>{$items$$.filter($item$$=>$item$$.phu_trach).joinModel2($user$$.current_id_app,"participant",{where:{phu_trach:"email"},fields:[{ten_phu_trach:"name",phone:"phone"}]},function(){$callback$$(null)})},dt:$callback$$=>{setImmediate(async()=>{try{await $items$$.filter($item$$=>$item$$.ma_dt).asyncJoinModel2($user$$.current_id_app,dmdt,{where:{ma_dt:"ma_dt"},setFields:($item$$,
$ref$$)=>{$item$$.ten_dt=$ref$$.ten_dt;$item$$.mieu_ta_da=$ref$$.mieu_ta;$item$$.idLinkRef=$ref$$._id;$item$$.la_du_an_chu_dau_tu=$ref$$.la_du_an_chu_dau_tu;$options$$.req?.query?.fields?.indexOf("picture")>=0&&($item$$.picture=$item$$.picture||$ref$$.picture);$options$$.req?.query?.fields?.indexOf("location")>=0&&($item$$.location=$item$$.location||$ref$$.location);$item$$.chiet_khau_khuyen_mai=$ref$$.chiet_khau_khuyen_mai||[];$item$$.chinh_sach_hoa_hong=$ref$$.chinh_sach_hoa_hong||[]}}),$callback$$(null)}catch($e$$){$callback$$($e$$)}})},
building:$callback$$=>{$items$$.filter($item$$=>$item$$.building_code).joinModel2(null,building,{where:{id_app:"id_app",building_code:"building_code"},fields:"building_name"},function(){$callback$$(null)})},kieu_bds:$callback$$=>{$items$$.filter($item$$=>$item$$.nh_nd).joinModel2($user$$.current_id_app,"nhomnhadat",{where:{nh_nd:"ma_nhom"},fields:["ten_nhom",{color_nhom:"color"}]},function(){$callback$$(null)})},trangthai:$callback$$=>{$items$$.joinModel2(null,trangthai,[{where:$a$$=>({ma_ct:"NHADAT",
ma_trang_thai:$a$$.trang_thai}),fields:["ten_trang_thai","color"]}],function(){$callback$$()})}},async()=>{try{for(let $r$$ of $items$$)$r$$.ban||($r$$.ban={}),$r$$.thue||($r$$.thue={}),$r$$.ty_le_hh=await model.tinhtylehh($r$$.id_app,$user$$.email,$r$$.chinh_sach_hoa_hong||[],"1")||0;$next$$(null,$items$$)}catch($e$$){Logger.error("[bds_nhadat][onView]",$e$$),$next$$($e$$)}})},onCreating:async($user$$,$obj$$,$next$$)=>{$obj$$.gia_ban_m2=$obj$$.dien_tich?Math.round(($obj$$.gia_ban||0)/$obj$$.dien_tich):
0;if(!$obj$$.location){var $address_ngay_het_han$$=`${$obj$$.dia_chi}`.toLowerCase();let $address2$$=$address_ngay_het_han$$;$obj$$.xa_phuong&&$address_ngay_het_han$$.indexOf($obj$$.xa_phuong.toLowerCase())<0?$address_ngay_het_han$$=`${$address_ngay_het_han$$}, ${$obj$$.xa_phuong.toLowerCase()}`:$obj$$.xa_phuong&&($address2$$=$address2$$.split($obj$$.xa_phuong.toLowerCase()).join(""));$obj$$.quan_huyen&&$address_ngay_het_han$$.indexOf($obj$$.quan_huyen.toLowerCase())<0&&($address_ngay_het_han$$=`${$address_ngay_het_han$$}, ${$obj$$.quan_huyen.toLowerCase()}`,
$address2$$=`${$address2$$}, ${$obj$$.quan_huyen.toLowerCase()}`);$obj$$.tinh_thanh&&$address_ngay_het_han$$.indexOf($obj$$.tinh_thanh.toLowerCase())<0&&($address_ngay_het_han$$=`${$address_ngay_het_han$$}, ${$obj$$.tinh_thanh.toLowerCase()}`,$address2$$=`${$address2$$}, ${$obj$$.tinh_thanh.toLowerCase()}`);$obj$$.location=await utils.getLocationByAddress($address_ngay_het_han$$,$address2$$)}$address_ngay_het_han$$=new Date;$address_ngay_het_han$$.setMonth($address_ngay_het_han$$.getMonth()+6);$obj$$.ngay_het_han=
$address_ngay_het_han$$;$obj$$.phu_trach=$obj$$.phu_trach||$user$$.email;$next$$(null,$obj$$)},onUpdating:async($address$jscomp$1_user$$,$data$$,$obj$$,$next$$)=>{$data$$.dien_tich&&($data$$.gia_ban=$data$$.gia_ban||$obj$$.gia_ban,$data$$.gia_ban_m2=Math.round($data$$.gia_ban/$data$$.dien_tich));$data$$.location=$data$$.location||$obj$$.location;$data$$.dia_chi=$data$$.dia_chi||$obj$$.dia_chi;$data$$.xa_phuong=$data$$.xa_phuong||$obj$$.xa_phuong;$data$$.quan_huyen=$data$$.quan_huyen||$obj$$.quan_huyen;
$data$$.tinh_thanh=$data$$.tinh_thanh||$obj$$.tinh_thanh;if(!$data$$.location){let $address2$$=$address$jscomp$1_user$$=`${$data$$.dia_chi}`.toLowerCase();$data$$.xa_phuong&&$address$jscomp$1_user$$.indexOf($data$$.xa_phuong.toLowerCase())<0?$address$jscomp$1_user$$=`${$address$jscomp$1_user$$}, ${$data$$.xa_phuong.toLowerCase()}`:$data$$.xa_phuong&&($address2$$=$address2$$.split($data$$.xa_phuong.toLowerCase()).join(""));$data$$.quan_huyen&&$address$jscomp$1_user$$.indexOf($data$$.quan_huyen.toLowerCase())<
0&&($address$jscomp$1_user$$=`${$address$jscomp$1_user$$}, ${$data$$.quan_huyen.toLowerCase()}`,$address2$$=`${$address2$$}, ${$data$$.quan_huyen.toLowerCase()}`);$data$$.tinh_thanh&&$address$jscomp$1_user$$.indexOf($data$$.tinh_thanh.toLowerCase())<0&&($address$jscomp$1_user$$=`${$address$jscomp$1_user$$}, ${$data$$.tinh_thanh.toLowerCase()}`,$address2$$=`${$address2$$}, ${$data$$.tinh_thanh.toLowerCase()}`);$data$$.location=await utils.getLocationByAddress($address$jscomp$1_user$$,$address2$$)}$next$$(null,
$data$$,$obj$$)},onCreated:$updateFloor$$,onUpdated:$updateFloor$$});$contr_router$$.validating=async($id_app_user$$,$obj$$,$next$$,$options$$={})=>{if($options$$.action!="add"||$obj$$.ma_nd)$next$$(null,$obj$$);else{$id_app_user$$=$id_app_user$$.current_id_app;try{let $ma_nd$$=await model.asyncCreateCode($id_app_user$$,"BDS");if(!$ma_nd$$)return $next$$("Kh\u00f4ng th\u1ec3 t\u1ea1o m\u00e3 B\u1ea5t \u0111\u1ed9ng s\u1ea3n n\u00e0y");$obj$$.ma_nd=$ma_nd$$;$next$$(null,$obj$$)}catch($e$$){$next$$(`Kh\u00f4ng th\u1ec3 t\u1ea1o m\u00e3 s\u1ea3n ph\u1ea9m BDS, L\u1ed7i: ${$e$$.message||
$e$$.error||$e$$}`)}}};$contr_router$$.route()};