flexbiz-server
Version:
Flexible Server
20 lines (19 loc) • 9.83 kB
JavaScript
'use strict';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("9"===$obj$$.trang_thai)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("5"==$frm$jscomp$1_frm_step_product_user$$.trang_thai)return $next$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y \u0111\u00e3 ho\u00e0n th\u00e0nh k\u00eau g\u1ecdi v\u1ed1n");if("4"!=$frm$jscomp$1_frm_step_product_user$$.trang_thai)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(0<$obj$$.tong_so_token&&$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&&
0<$frm$jscomp$1_frm_step_product_user$$.so_luong&&$amount_creator_so_luong_goi_dau_tu$$>$frm$jscomp$1_frm_step_product_user$$.so_luong&&0==$obj$$.goi_dau_tu)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("9"==$data$$.trang_thai)return $fn$$(null,$data$$,$obj$$);if("5"==$data$$.trang_thai)return $data$$={trang_thai:"5",hoat_dong:!1},$fn$$(null,$data$$,$obj$$);if("9"!=$obj$$.trang_thai)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;void 0==$data$$.lai_suat_tang_them_so_huu_token&&($data$$.lai_suat_tang_them_so_huu_token=$obj$$.lai_suat_tang_them_so_huu_token);
void 0==$data$$.token_so_huu&&($data$$.token_so_huu=$obj$$.token_so_huu);void 0==$data$$.so_luong_so_huu&&($data$$.so_luong_so_huu=$obj$$.so_luong_so_huu);void 0==$data$$.tru_lai_da_tra&&($data$$.tru_lai_da_tra=$obj$$.tru_lai_da_tra);void 0==$data$$.laiSuatThoiGianConLai&&($data$$.laiSuatThoiGianConLai=$obj$$.laiSuatThoiGianConLai);void 0==$data$$.goi_dau_tu&&($data$$.goi_dau_tu=$obj$$.goi_dau_tu);void 0==$data$$.frm_step_code&&($data$$.frm_step_code=$obj$$.frm_step_code);void 0==$data$$.tong_so_token&&
($data$$.tong_so_token=$obj$$.tong_so_token);void 0==$data$$.id_product&&($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("5"==$frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$.trang_thai)return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y \u0111\u00e3 ho\u00e0n th\u00e0nh k\u00eau g\u1ecdi v\u1ed1n");
if("4"!=$frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$.trang_thai)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(0<$data$$.tong_so_token&&$data$$.co_phan&&!$data$$.goi_dau_tu){$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$$)}}var $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&&
0<$frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$.so_luong&&$amount$jscomp$1_so_luong_goi_dau_tu$$>$frm$jscomp$2_frm_step$jscomp$1_product$jscomp$1_user$$.so_luong&&0==$obj$$.goi_dau_tu)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()};