flexbiz-server
Version:
Flexible Server
9 lines (8 loc) • 3.57 kB
JavaScript
'use strict';const model=global.getModel("assbuy"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils"),AssInvest=global.getModel("assinvestment"),AssSell=global.getModel("asssell"),AssProduct=global.getModel("assproduct");
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"assbuy",{sort:{date_created:-1},notNeedRight:!0,requireOtp:($data$$,$options$$)=>isSupperAdmin($options$$.user.email.toLowerCase())?!1:!0,onFinding:async($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$)=>{await $items$$.asyncJoinModel2($user$$.current_id_app,AssSell,{where:{id_sell:"id"},fields:["token"]});await $items$$.asyncJoinModel2($user$$.current_id_app,
AssInvest,{where:"token",fields:"id_product ten_san_pham token denom id_period ten_ky_han ngay_dao_han lai_suat_cam_ket lai_suat_truoc_han cho_phep_rut_von co_phan".split(" ")});await $items$$.asyncJoinModel2($user$$.current_id_app,AssProduct,{where:{id_product:"id"},fields:["ten_san_pham","hinh_anh","logo","ma_loai"]});$next$$(null,$items$$)},onCreating:async($sell_user$$,$buy$$,$next$$)=>{const $id_app$$=$sell_user$$.current_id_app;if(!await global.getModel("asskey").findOne({id_app:$sell_user$$.current_id_app,
username:$sell_user$$.email,address:$buy$$.creator}).lean())return $next$$("\u0110\u1ecba ch\u1ec9 v\u00ed n\u00e0y kh\u00f4ng thu\u1ed9c v\u1ec1 b\u1ea1n");$sell_user$$=await global.getModel("asssell").findOne({id_app:$id_app$$,id:$buy$$.id_sell});if(!$sell_user$$)return $next$$("L\u1ec7nh b\u00e1n kh\u00f4ng t\u1ed3n t\u1ea1i");if($sell_user$$.buyer&&$sell_user$$.buyer!=$buy$$.creator)return $next$$("Ng\u01b0\u1eddi mua kh\u00f4ng h\u1ee3p l\u1ec7");if($sell_user$$.con_lai<$buy$$.so_luong)return $next$$("Purchase quantity must be less than or equal to the quantity being sold");
if($sell_user$$.gia_ban>$buy$$.gia_mua)return $next$$("The purchase price must be greater than the selling price");try{const $totalMoney$$=$buy$$.gia_mua*$buy$$.so_luong;await global.getModel("assbank").sendCoins($id_app$$,$buy$$.creator,$sell_user$$.creator,$totalMoney$$,$sell_user$$.denom,{...$buy$$.toObject(),event:"BUY",memo:`Chuy\u1ec3n ${$totalMoney$$}${$sell_user$$.denom} cho ng\u01b0\u1eddi b\u00e1n`});let $fee$$=($sell_user$$.fee||0)*$totalMoney$$/100;$fee$$&&$sell_user$$.exchange_address&&
await global.getModel("assbank").sendCoins($id_app$$,$sell_user$$.creator,$sell_user$$.exchange_address,$fee$$,$sell_user$$.denom,{...$buy$$.toObject(),event:"BUY",memo:"Ph\u00ed giao d\u1ecbch"});await global.getModel("assbank").sendCoinsFromSystemToAccount($id_app$$,$buy$$.creator,$buy$$.so_luong,$sell_user$$.token,{...$buy$$.toObject(),event:"BUY",memo:"Nh\u1eadn kho\u1ea3n \u0111\u1ea7u t\u01b0"})}catch($e$$){return $next$$($e$$)}$sell_user$$.da_ban+=$buy$$.so_luong;$sell_user$$.con_lai=$sell_user$$.so_luong-
$sell_user$$.da_ban;0==$sell_user$$.con_lai&&($sell_user$$.trang_thai=8);await $sell_user$$.save();$buy$$.denom=$sell_user$$.denom;$buy$$.token=$sell_user$$.token;$next$$(null,$buy$$)},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 th\u1ec3 x\u00f3a");$fn$$(null,
$obj$$)};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$fn$$){return $fn$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt")};$contr_router$$.route()};