UNPKG

flexbiz-server

Version:

Flexible Server

20 lines (19 loc) 9.82 kB
const model=global.getModel("assperiod"),assproduct=global.getModel("assproduct"),Trangthai=global.getModel("trangthai"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils"),async=require("async"); module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"assperiod",{sort:{hoat_dong:-1,date_created:-1},onFinding:async($pros_user$$,$condition$$,$next$$)=>{$condition$$.ma_loai&&($pros_user$$=await assproduct.find({id_app:$pros_user$$.current_id_app,ma_loai:$condition$$.ma_loai,status:!0},{id:1}),$condition$$.id_product={$in:$pros_user$$.map($p$$=>$p$$.id)},delete $condition$$.ma_loai);$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$)=>{await $items$$.asyncJoinModel2($user$$.current_id_app, assproduct,{where:{id_product:"id"},fields:["ten_san_pham","hinh_anh","logo","ma_loai",{product_token:"token"},"gia_tri_hien_tai","sl_nhan_vien","nganh_nghe"]});async.mapSeries($items$$,($item$$,$cb$$)=>{$item$$.id||($item$$.id=$item$$._id.toString());setImmediate(async()=>{if($item$$.goi_dau_tu&&$item$$.frm_step_code){const $frm$$=await global.getModel("financialroadmap").findOne({id_app:$item$$.id_app,code:$item$$.id_product.toString()}).lean();$frm$$&&($item$$.frm_step=($frm$$.steps||[]).find($s$$=> $s$$.code===$item$$.frm_step_code),$item$$.frm_step&&$item$$.frm_step.sl_slot&&($item$$.frm_step.sl_cp_slot=$item$$.frm_step.dillution/100*$item$$.frm_step.total_share/$item$$.frm_step.sl_slot))}$cb$$(null,$item$$)})},async()=>{$items$$.joinModel2(null,Trangthai,[{where:$a$$=>({ma_trang_thai:$a$$.trang_thai,ma_ct:"ASSPERIOD"}),fields:["ten_trang_thai","color"]}],function(){$next$$(null,$items$$)})})},onCreating:async($frm$jscomp$1_frm_step_product_user$$,$obj$$,$next$$)=>{var $amount_creator_so_luong_goi_dau_tu$$= $obj$$.creator;if(!await global.getModel("asskey").findOne({id_app:$frm$jscomp$1_frm_step_product_user$$.current_id_app,username:$frm$jscomp$1_frm_step_product_user$$.email,address:$amount_creator_so_luong_goi_dau_tu$$}).lean())return $next$$("\u0110\u1ecba ch\u1ec9 v\u00ed n\u00e0y kh\u00f4ng thu\u1ed9c v\u1ec1 b\u1ea1n");if($obj$$.trang_thai==="9")return $next$$(null,$obj$$);if($obj$$.goi_dau_tu&&$obj$$.frm_step_code){$frm$jscomp$1_frm_step_product_user$$=await global.getModel("financialroadmap").findOne({id_app:$frm$jscomp$1_frm_step_product_user$$.current_id_app, code:$obj$$.id_product.toString()}).lean();if(!$frm$jscomp$1_frm_step_product_user$$)return $next$$("L\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh cho g\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$frm$jscomp$1_frm_step_product_user$$=($frm$jscomp$1_frm_step_product_user$$.steps||[]).find($s$$=>$s$$.code===$obj$$.frm_step_code);if(!$frm$jscomp$1_frm_step_product_user$$)return $next$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i trong l\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh"); if($frm$jscomp$1_frm_step_product_user$$.trang_thai=="5")return $next$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y \u0111\u00e3 ho\u00e0n th\u00e0nh k\u00eau g\u1ecdi v\u1ed1n");if($frm$jscomp$1_frm_step_product_user$$.trang_thai!="4")return $next$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y ch\u01b0a c\u00f3 hi\u1ec7u l\u1ef1c");if($obj$$.tong_so_token!=$frm$jscomp$1_frm_step_product_user$$.sl_slot)return $next$$("S\u1ed1 l\u01b0\u1ee3ng token ph\u1ea3i b\u1eb1ng v\u1edbi s\u1ed1 l\u01b0\u1ee3ng c\u1ee7a g\u00f3i \u0111\u1ea7u t\u01b0(step) trong l\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh")}$frm$jscomp$1_frm_step_product_user$$= await global.getModel("assproduct").findOne({id_app:$obj$$.id_app,id:$obj$$.id_product});if(!$frm$jscomp$1_frm_step_product_user$$)return $next$$("D\u1ef1 \u00e1n kh\u00f4ng t\u1ed3n t\u1ea1i");$obj$$.co_phan=$frm$jscomp$1_frm_step_product_user$$.co_phan;$obj$$.co_phan&&($obj$$.lai_suat_cam_ket=0,$obj$$.lai_suat_truoc_han=0,$obj$$.ky_han=0,$obj$$.cho_phep_rut_von=!1);$obj$$.ngay_phat_hanh=new Date;if($obj$$.tong_so_token>0&&$obj$$.co_phan&&!$obj$$.goi_dau_tu){$amount_creator_so_luong_goi_dau_tu$$= $obj$$.tong_so_token;let $denom$$=$frm$jscomp$1_frm_step_product_user$$.token;try{await global.getModel("assbank").mintCoins($obj$$.id_app,$obj$$.creator,$amount_creator_so_luong_goi_dau_tu$$,$denom$$)}catch($e$$){return $next$$($e$$)}}$amount_creator_so_luong_goi_dau_tu$$=(await model.find({id_app:$obj$$.id_app,id_product:$obj$$.id_product,_id:{$ne:$obj$$._id}}).lean()).map($p$$=>$p$$.tong_so_token).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+$obj$$.tong_so_token;if($frm$jscomp$1_frm_step_product_user$$.co_phan&& $frm$jscomp$1_frm_step_product_user$$.so_luong>0&&$amount_creator_so_luong_goi_dau_tu$$>$frm$jscomp$1_frm_step_product_user$$.so_luong&&$obj$$.goi_dau_tu==0)return $next$$("the number of tokens of investment packages must be less than the number of tokens of the project");$next$$(null,$obj$$)},onCreated:async($user$$,$obj$$,$next$$)=>{$obj$$.id=$obj$$._id.toString();await model.updateOne({_id:$obj$$._id},{id:$obj$$.id});$next$$(null,$obj$$)}});$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){if(!isSupperAdmin($user$$.email.toLowerCase()))return $fn$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n x\u00f3a"); $fn$$(null,$obj$$)};$contr_router$$.updating=async function($frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$,$data$$,$obj$$,$fn$$){if($frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$.email!==$obj$$.user_created)return $fn$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n c\u1eadp nh\u1eadt");$obj$$.id||($data$$.id=$obj$$._id.toString());if($data$$.creator&&$data$$.creator!==$obj$$.creator)return $fn$$("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p s\u1eeda \u0111\u1ecba ch\u1ec9 v\u00ed ng\u01b0\u1eddi t\u1ea1o"); if($data$$.trang_thai=="9")return $fn$$(null,$data$$,$obj$$);if($data$$.trang_thai=="5")return $data$$={trang_thai:"5",hoat_dong:!1},$fn$$(null,$data$$,$obj$$);if($obj$$.trang_thai!="9")return $fn$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt th\u00f4ng tin cho g\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y");$data$$.ngay_chia_loi_nhuan=$data$$.ngay_chia_loi_nhuan||$obj$$.ngay_chia_loi_nhuan;$data$$.lai_suat_tang_them_so_huu_token==void 0&&($data$$.lai_suat_tang_them_so_huu_token=$obj$$.lai_suat_tang_them_so_huu_token); $data$$.token_so_huu==void 0&&($data$$.token_so_huu=$obj$$.token_so_huu);$data$$.so_luong_so_huu==void 0&&($data$$.so_luong_so_huu=$obj$$.so_luong_so_huu);$data$$.tru_lai_da_tra==void 0&&($data$$.tru_lai_da_tra=$obj$$.tru_lai_da_tra);$data$$.laiSuatThoiGianConLai==void 0&&($data$$.laiSuatThoiGianConLai=$obj$$.laiSuatThoiGianConLai);$data$$.goi_dau_tu==void 0&&($data$$.goi_dau_tu=$obj$$.goi_dau_tu);$data$$.frm_step_code==void 0&&($data$$.frm_step_code=$obj$$.frm_step_code);$data$$.tong_so_token==void 0&& ($data$$.tong_so_token=$obj$$.tong_so_token);$data$$.id_product==void 0&&($data$$.id_product=$obj$$.id_product);if($data$$.goi_dau_tu&&$data$$.frm_step_code){$frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$=await global.getModel("financialroadmap").findOne({id_app:$frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$.current_id_app,code:$data$$.id_product.toString()}).lean();if(!$frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$)return $fn$$("L\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh cho g\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i"); $frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$=($frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$.steps||[]).find($s$$=>$s$$.code===$data$$.frm_step_code);if(!$frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$)return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i trong l\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh");if($frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$.trang_thai=="5")return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y \u0111\u00e3 ho\u00e0n th\u00e0nh k\u00eau g\u1ecdi v\u1ed1n"); if($frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$.trang_thai!="4")return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y ch\u01b0a c\u00f3 hi\u1ec7u l\u1ef1c");if($data$$.tong_so_token!=$frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$.sl_slot)return $fn$$("S\u1ed1 l\u01b0\u1ee3ng token ph\u1ea3i b\u1eb1ng v\u1edbi s\u1ed1 l\u01b0\u1ee3ng c\u1ee7a g\u00f3i \u0111\u1ea7u t\u01b0 (step) trong l\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh")}$frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$= await global.getModel("assproduct").findOne({id_app:$obj$$.id_app,id:$data$$.id_product});if(!$frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$)return $fn$$("D\u1ef1 \u00e1n kh\u00f4ng t\u1ed3n t\u1ea1i");$data$$.co_phan=$frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$.co_phan;$data$$.co_phan&&($data$$.lai_suat_cam_ket=0,$data$$.lai_suat_truoc_han=0,$data$$.ky_han=0,$data$$.cho_phep_rut_von=!1);$data$$.ngay_phat_hanh=new Date;if($data$$.tong_so_token>0&&$data$$.co_phan&&!$data$$.goi_dau_tu){var $amount$jscomp$1_so_luong_goi_dau_tu$$= $data$$.tong_so_token;let $denom$$=$frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$.token;try{await global.getModel("assbank").mintCoins($obj$$.id_app,$obj$$.creator,$amount$jscomp$1_so_luong_goi_dau_tu$$,$denom$$)}catch($e$$){return $fn$$($e$$)}}$amount$jscomp$1_so_luong_goi_dau_tu$$=(await model.find({id_app:$obj$$.id_app,id_product:$obj$$.id_product,_id:{$ne:$obj$$._id}}).lean()).map($p$$=>$p$$.tong_so_token).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+$obj$$.tong_so_token;if($frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$.co_phan&& $frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$.so_luong>0&&$amount$jscomp$1_so_luong_goi_dau_tu$$>$frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$.so_luong&&$obj$$.goi_dau_tu==0)return $fn$$("the number of tokens of investment packages must be less than the number of tokens of the project");$fn$$(null,$data$$,$obj$$)};$contr_router$$.route()};