flexbiz-server 12.2.2 → 12.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/server/app.js +14 -14
- package/server/auths/local.js +27 -26
- package/server/cluster.js +12 -11
- package/server/controllers/controller.js +83 -79
- package/server/controllers/controllerRPT.js +18 -17
- package/server/data/sys/listinfo.js +80395 -78085
- package/server/data/sys/reportinfo.js +8826 -8826
- package/server/data/sys/trangthai.js +10348 -10229
- package/server/libs/cdpstk.js +1 -1
- package/server/libs/databanle.js +13 -13
- package/server/libs/getGiaban.js +17 -16
- package/server/libs/permission.js +12 -12
- package/server/libs/post-book.js +9 -8
- package/server/libs/post-socai.js +9 -9
- package/server/libs/prototypes.js +7 -7
- package/server/libs/tinhGtPhanboSltp.js +5 -5
- package/server/libs/tinhGtPhanboYtcp.js +2 -2
- package/server/libs/tinhGtThcppstk.js +1 -1
- package/server/libs/tinhGtTrucTiep.js +8 -7
- package/server/libs/tinhgiatb.js +16 -19
- package/server/libs/tinhgiatb1vt.js +3 -3
- package/server/libs/tinhhoahong.js +32 -0
- package/server/libs/utils.js +4 -3
- package/server/models/app.js +9 -8
- package/server/models/approve.js +4 -4
- package/server/models/customer.js +8 -4
- package/server/models/dh2.js +10 -7
- package/server/models/dmbp.js +7 -4
- package/server/models/dmgiaban.js +6 -6
- package/server/models/dmhoahonghd.js +6 -5
- package/server/models/dmnvt.js +3 -3
- package/server/models/dmvt.js +9 -9
- package/server/models/ecomcategories.js +2 -2
- package/server/models/ecomcategories_cty.js +3 -0
- package/server/models/fbconversation.js +9 -0
- package/server/models/fbmessage.js +2 -0
- package/server/models/fbpage.js +2 -0
- package/server/models/group.js +7 -5
- package/server/models/hd2.js +11 -8
- package/server/models/hd3.js +9 -9
- package/server/models/hd7.js +1 -1
- package/server/models/listinfo.js +15 -8
- package/server/models/notification.js +3 -2
- package/server/models/originimportid.js +1 -0
- package/server/models/participant.js +5 -5
- package/server/models/pbl.js +4 -4
- package/server/models/reportinfo.js +2 -2
- package/server/models/rptform.js +3 -2
- package/server/models/schedule.js +1 -1
- package/server/models/so1.js +17 -14
- package/server/models/socai.js +7 -5
- package/server/models/task.js +4 -4
- package/server/models/tdttco.js +8 -4
- package/server/models/tdttno.js +8 -4
- package/server/models/tokens.js +2 -2
- package/server/models/tontucthoi.js +2 -2
- package/server/models/usergroup.js +4 -3
- package/server/models/vatra.js +2 -2
- package/server/models/vatvao.js +4 -4
- package/server/modules/lists/ls-assinvestment.js +1 -1
- package/server/modules/lists/ls-asskey.js +34 -34
- package/server/modules/lists/ls-customer.js +13 -7
- package/server/modules/lists/ls-dmbp.js +7 -3
- package/server/modules/lists/ls-dmnkh.js +5 -1
- package/server/modules/lists/ls-dmnvt.js +5 -5
- package/server/modules/lists/ls-dmvt.js +48 -35
- package/server/modules/lists/ls-ecomcategories.js +5 -0
- package/server/modules/lists/ls-ecomcategories_cty.js +5 -0
- package/server/modules/lists/ls-fbconversation.js +3 -0
- package/server/modules/lists/ls-fbmessage.js +3 -0
- package/server/modules/lists/ls-fbpage.js +10 -0
- package/server/modules/lists/ls-file.js +21 -25
- package/server/modules/lists/ls-group.js +5 -1
- package/server/modules/lists/ls-introducecode.js +8 -7
- package/server/modules/lists/ls-introducer.js +16 -17
- package/server/modules/lists/ls-message2.js +8 -7
- package/server/modules/lists/ls-message2setting.js +4 -4
- package/server/modules/lists/ls-news.js +1 -1
- package/server/modules/lists/ls-opportunity.js +3 -3
- package/server/modules/lists/ls-session.js +2 -2
- package/server/modules/lists/ls-task.js +18 -18
- package/server/modules/lists/ls-usergroup.js +6 -2
- package/server/modules/public/callin.js +6 -6
- package/server/modules/reports/calc-tinhgiatb.js +2 -2
- package/server/modules/reports/rp-cdpstk.js +3 -3
- package/server/modules/reports/rp-chitiettaisan.js +9 -8
- package/server/modules/reports/rp-ckvt.js +9 -7
- package/server/modules/reports/rp-congviectheonv.js +5 -5
- package/server/modules/reports/rp-ctbanle.js +13 -12
- package/server/modules/reports/rp-databanle.js +8 -4
- package/server/modules/reports/rp-dtbanletheoct.js +16 -9
- package/server/modules/reports/rp-dtbanletheokh.js +12 -6
- package/server/modules/reports/rp-dtbanletheokho.js +14 -9
- package/server/modules/reports/rp-dtbanletheonam.js +15 -9
- package/server/modules/reports/rp-dtbanletheongay.js +13 -8
- package/server/modules/reports/rp-dtbanletheonv.js +15 -9
- package/server/modules/reports/rp-dtbanletheoquy.js +15 -9
- package/server/modules/reports/rp-dtbanletheothang.js +15 -9
- package/server/modules/reports/rp-getinvoice2pay.js +4 -6
- package/server/modules/reports/rp-getinvoice2receive.js +4 -6
- package/server/modules/reports/rp-hoahong.js +9 -0
- package/server/modules/reports/rp-kqhdkd.js +5 -4
- package/server/modules/reports/rp-ptcttct.js +7 -6
- package/server/modules/reports/rp-pttct.js +8 -8
- package/server/modules/reports/rp-pttctkho.js +3 -2
- package/server/modules/reports/rp-pttctkho2.js +3 -3
- package/server/modules/reports/rp-thnxt.js +8 -7
- package/server/modules/reports/rp-thnxt_sl.js +6 -6
- package/server/modules/reports/rp-thnxttt.js +6 -6
- package/server/modules/reports/rp-tmbctc.js +16 -16
- package/server/modules/systems/sys-app.js +25 -24
- package/server/modules/systems/sys-notification.js +2 -2
- package/server/modules/systems/sys-schedule.js +1 -1
- package/server/modules/systems/sys-user.js +8 -8
- package/server/modules/vouchers/vo-bc1.js +9 -8
- package/server/modules/vouchers/vo-bg2.js +9 -9
- package/server/modules/vouchers/vo-bn1.js +5 -4
- package/server/modules/vouchers/vo-dh2.js +14 -19
- package/server/modules/vouchers/vo-dnm.js +11 -12
- package/server/modules/vouchers/vo-hd2.js +66 -54
- package/server/modules/vouchers/vo-hd3.js +28 -22
- package/server/modules/vouchers/vo-hd7.js +37 -36
- package/server/modules/vouchers/vo-pbl.js +49 -49
- package/server/modules/vouchers/vo-pc1.js +9 -8
- package/server/modules/vouchers/vo-pn1.js +24 -22
- package/server/modules/vouchers/vo-pn5.js +1 -1
- package/server/modules/vouchers/vo-pn9.js +23 -23
- package/server/modules/vouchers/vo-pnc.js +8 -8
- package/server/modules/vouchers/vo-pnh.js +5 -5
- package/server/modules/vouchers/vo-pt1.js +17 -16
- package/server/modules/vouchers/vo-pxc.js +16 -16
- package/server/modules/vouchers/vo-pxh.js +12 -10
- package/server/modules/vouchers/vo-so1.js +90 -116
- package/server/modules/vouchers/vo-so4.js +1 -1
- package/server/modules/vouchers/vo-so5.js +2 -2
- package/server/templates/reset mat khau.html +1 -1
- package/server/templates/reset mat khau.pug +1 -3
- package/server/workers/restoreApp.js +21 -12
- package/server/workers/runScript.js +3 -3
|
@@ -2,37 +2,37 @@
|
|
|
2
2
|
spend,getTxStatus,txQuery,bcQuery,tdQuery,initSocket,createTx,getLatestHash,getHashById,mining}=require("../../libs/blockchainconnect");
|
|
3
3
|
module.exports=function($contr_router$$){initSocket("MAINNET");initSocket("TESTNET");$contr_router$$=new controller($contr_router$$,model,"asskey",{unique:["address"],sort:{date_created:1},notNeedRight:!0,requireOtp:($data$$,$options$$)=>"delete"==$options$$.action?!0:!1,onFinding:async($obj$$,$condition$$,$next$$,$options$$={})=>{$options$$.req&&$options$$.req.query&&!$options$$.req.query.has_balance&&($options$$.req.query.has_balance=$condition$$.has_balance);delete $condition$$.has_balance;if($options$$.req&&
|
|
4
4
|
$options$$.req.query&&!$options$$.req.query.count&&0===await model.countDocuments({user_created:$obj$$.email,id_app:$obj$$.current_id_app,wallet_type:{$ne:1}})){$obj$$=new model({user_created:$obj$$.email,username:$obj$$.email,id_app:$obj$$.current_id_app});$options$$=await DirectSecp256k1HdWallet.generate(24,{prefix:configs.ADDRESS_PREFIX});let $accounts$$=await $options$$.getAccounts();$obj$$.address=$accounts$$[0].address;$obj$$.mnemonic=$options$$.mnemonic;$obj$$.name="T\u00e0i kho\u1ea3n ch\u00ednh";
|
|
5
|
-
$obj$$.asset=configs.MAIN_DENOM;await $obj$$.save()}$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$,$options$$={})=>{let $network$$="MAINNET",$app$$=await global.getModel("app").findOne({_id:$user$$.current_id_app},{wallet_network:1}).lean();$app$$&&$app$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$$.wallet_network]&&($network$$=$app$$.wallet_network);await $items$$.asyncJoinModel2(null,User,{where:{username:"email"},fields:{fullname:"name"}})
|
|
6
|
-
$options$$.req.query.has_balance?async.mapSeries($items$$,($item$$,$callback$$)=>{setImmediate(async()=>{delete $item$$.mnemonic;delete $item$$.private_key;$item$$.name=$item$$.name.replace("V\u00ed","T\u00e0i kho\u1ea3n").replace("v\u00ed","t\u00e0i kho\u1ea3n");try{let $bls$$=await bankBalancesGet($item$$.address,$network$$);await $bls$$.filter($b$$=>$b$$.denom!==configs.MAIN_DENOM).asyncJoinModel2($user$$.current_id_app,assinvestment,{where:{denom:"token"},
|
|
7
|
-
|
|
8
|
-
$contr_router$$.creating=async($user$$,$obj$$,$next$$)=>{if(3<=await model.countDocuments({user_created:$user$$.email,id_app:$user$$.current_id_app,asset:{$nin:["BTC","ETH"]}}))return $next$$("B\u1ea1n kh\u00f4ng th\u1ec3 t\u1ea1o th\u00eam v\u00ed m\u1edbi");$obj$$.username||($obj$$.username=$user$$.email);try{let $wallet$$;if($obj$$.mnemonic){if(await model.findOne({id_app:$user$$.current_id_app,mnemonic:$obj$$.mnemonic}))return $next$$("This wallet was added to your account")
|
|
9
|
-
{prefix:configs.ADDRESS_PREFIX})}else $wallet$$=await DirectSecp256k1HdWallet.generate(24,{prefix:configs.ADDRESS_PREFIX});let $accounts$$=await $wallet$$.getAccounts();$obj$$.address=$accounts$$[0].address;$obj$$.mnemonic=$wallet$$.mnemonic;$next$$(null,$obj$$)}catch($e$$){$next$$($e$$.message||$e$$.error||$e$$)}};$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){if($user$$.email!==$obj$$.user_created&&!isSupperAdmin($user$$.email.toLowerCase()))return $fn$$("Can't delete this key");
|
|
10
|
-
global.client_cosmos||{};delete global.client_cosmos[$obj$$._id.toString()];Receiver.deleteMany({address:$obj$$.address});$fn$$(null,$obj$$)};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$fn$$){$fn$$("Can't update this wallet")};$contr_router$$.createRoute(":address/balance",async($req$$,$fn$$)=>{let $address$$=$req$$.params.address,$network$$="MAINNET",$app$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app}).lean();$app$$&&$app$$.wallet_network&&
|
|
11
|
-
($network$$=$app$$.wallet_network);try{const $bls$$=await bankBalancesGet($address$$,$network$$);await $bls$$.filter($b$$=>$b$$.denom!==configs.MAIN_DENOM).asyncJoinModel2($req$$.user.current_id_app,assinvestment,{where:{denom:"token"},asyncSetFields:async($item$$,$investment_ref$$,$callback$$)=>{$item$$.price=$investment_ref$$.gia;$investment_ref$$={...$investment_ref$$};var $ivs_tong_so_luong$$=await bcQuery("investment/"+$investment_ref$$.id
|
|
12
|
-
$investment_ref$$.token=$ivs_tong_so_luong$$.Investment.token;$investment_ref$$.ngay_dao_han=Number($ivs_tong_so_luong$$.Investment.ngayDaoHan)?new Date(1E3*Number($ivs_tong_so_luong$$.Investment.ngayDaoHan)):null;$investment_ref$$.ngay_phat_hanh=new Date(1E3*Number($ivs_tong_so_luong$$.Investment.ngayPhatHanh));$investment_ref$$.id_product=$ivs_tong_so_luong$$.Investment.idProduct;$investment_ref$$.product_token=$ivs_tong_so_luong$$.Investment.productToken
|
|
13
|
-
$investment_ref$$.so_luong=Number($ivs_tong_so_luong$$.Investment.soLuong);$investment_ref$$.da_rut_von=Number($ivs_tong_so_luong$$.Investment.daRutVon);$investment_ref$$.lai_suat_cam_ket=Number($ivs_tong_so_luong$$.Investment.laiSuatCamKet);$investment_ref$$.lai_suat_truoc_han=Number($ivs_tong_so_luong$$.Investment.laiSuatTruocHan);$investment_ref$$.ky_han=Number($ivs_tong_so_luong$$.Investment.kyHan);$investment_ref$$.cho_phep_rut_von
|
|
14
|
-
$ivs_tong_so_luong$$.Investment.choPhepChuyenNhuong;$investment_ref$$.denom=$ivs_tong_so_luong$$.Investment.denom;$investment_ref$$.da_dao_han=$ivs_tong_so_luong$$.Investment.daDaoHan;$investment_ref$$.lai_da_tra=Number($ivs_tong_so_luong$$.Investment.laiDaTra);await [$investment_ref$$].asyncJoinModel2($req$$.user.current_id_app,assproduct,{where:{id_product:"id"},fields:["ma_loai","ten_san_pham","logo","hinh_anh",
|
|
15
|
-
{tong_so_token_phat_hanh:"tong_so_token"}]});await [$investment_ref$$].asyncJoinModel2($req$$.user.current_id_app,assperiod,{where:{id_period:"id",id_product:"id_product"},fields:"ten_lh_dt ten_ky_han id_rpt ky_han ky_tinh_lai loi_nhuan_duoc_chia goi_dau_tu tru_lai_da_tra".split(" ")});$investment_ref$$.wallet_address=$address$$;$ivs_tong_so_luong$$=$investment_ref$$.so_luong;$investment_ref$$.so_luong=$item$$.amount
|
|
16
|
-
($investment_ref$$.lai_da_tra_1_token=Math.roundBy($investment_ref$$.lai_da_tra/$ivs_tong_so_luong$$),$investment_ref$$.lai_da_tra=$investment_ref$$.lai_da_tra_1_token*$investment_ref$$.con_lai);$investment_ref$$.tong_gia_tri=$investment_ref$$.so_luong*$investment_ref$$.gia;$investment_ref$$.lai_du_tinh=Math.roundBy($investment_ref$$.lai_suat_cam_ket/365/100*$investment_ref$$.tong_gia_tri*$investment_ref$$.ky_han)
|
|
17
|
-
$investment_ref$$.ky_han&&!$investment_ref$$.co_phan?($investment_ref$$.so_ngay_hien_tai=Math.roundBy(((new Date).getTime()-(new Date($investment_ref$$.ngay_phat_hanh)).getTime())/864E5),$investment_ref$$.tien_lai_hien_tai=Math.roundBy(($investment_ref$$.lai_suat_cam_ket||0)/365/100*$investment_ref$$.so_ngay_hien_tai*$investment_ref$$.tong_gia_tri),$investment_ref$$.tien_lai_truoc_han_hien_tai=Math.roundBy(($investment_ref$$.lai_suat_truoc_han||
|
|
18
|
-
($investment_ref$$.tien_lai_hien_tai=0,$investment_ref$$.so_ngay_hien_tai=0);$investment_ref$$.gia_ban_de_xuat=$investment_ref$$.so_luong?Math.roundBy(($investment_ref$$.tong_gia_tri+$investment_ref$$.tien_lai_hien_tai)/$investment_ref$$.so_luong):0;if($investment_ref$$.goi_dau_tu)try{$investment_ref$$.market_value=await assinvestment.getInvestmentMarketValue($investment_ref$$.id_app,$investment_ref$$.token)}catch($e$$){console.error($e$$)}$item$$.investment
|
|
19
|
-
{$r$$.amount=Number($r$$.amount);$r$$.price=$r$$.price||1;$r$$.value=$r$$.price*$r$$.amount;delete $r$$.key});$fn$$(null,$bls$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});const $handleResult$$=$assreq_data$$=>{$assreq_data$$._id&&($assreq_data$$.trans_id=$assreq_data$$._id.toString());delete $assreq_data$$.trang_thai;delete $assreq_data$$._id;delete $assreq_data$$.__v;
|
|
20
|
-
delete $assreq_data$$.exfields;delete $assreq_data$$.status;delete $assreq_data$$.date_created;delete $assreq_data$$.date_updated;delete $assreq_data$$.user_created;delete $assreq_data$$.user_updated;return $assreq_data$$},$permission$$=require("../../libs/permission");$contr_router$$.createRoute("spend",async($req$$,$fn$$)=>{var $address$$=await global.getModel("assuser_identity").findOne({id_app:$req$$.user.current_id_app,user_created:$req$$.user.email}).lean();
|
|
21
|
-
if("1"!==$address$$.trang_thai)return $fn$$({error:"H\u1ed3 s\u01a1 th\u00f4ng tin c\u1ee7a b\u1ea1n ch\u01b0a \u0111\u01b0\u1ee3c duy\u1ec7t"});let $data$$=$req$$.body;$address$$=$data$$.from;const $to_address$$=$data$$.to||$data$$.receiver_address;let {denom:$denom$$,amount:$amount$$,memo:$memo$$}=$data$$;if(!($address$$&&$to_address
|
|
22
|
-
try{await $permission$$.verifyOTP($req$$.user.email,$data$$["otp-id"],$data$$["otp-code"])}catch($e$$){return $fn$$({error:$e$$.message||$e$$.error||$e$$,code:4001})}if($data$$.assrequest_id){if(!global.mongoose.Types.ObjectId.isValid($data$$.assrequest_id))return $fn$$({error:"Y\u00eau c\u1ea7u thanh to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7"});
|
|
23
|
-
order_id:$data$$.order_id});if(!$_url_assreq$$)return $fn$$({error:"Y\u00eau c\u1ea7u thanh to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7"});if("1"===$_url_assreq$$.trang_thai)return $fn$$({error:"Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n"});if("9"===$_url_assreq$$.trang_thai)return $fn$$({error:"Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 b\u1ecb h\u1ee7y"})
|
|
24
|
-
$to_address$$,{denom:$denom$$,amount:$amount$$,memo:$memo$$});if($rs$$.code)return 5===$rs$$.code?$fn$$({error:"B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y"}):$fn$$({error:$rs$$.rawLog});let $walletReceiver$$=await model.findOne({id_app:$req$$.user.current_id_app,address:$to_address$$});if($walletReceiver$$){let $_userReceiver$$=
|
|
25
|
-
user_created:$req$$.user.email},($e$$,$rs$$)=>{$rs$$||Receiver.create({id_app:$req$$.user.current_id_app,name:$data$$.name||($_userReceiver$$||{}).name,address:$to_address$$,user_created:$req$$.user.email})})}if($_url_assreq$$){$_url_assreq$$.trang_thai="1";$_url_assreq$$.sender_address=$address$$;$_url_assreq$$.sender_name=$data$$.sender_name||$req$$.user.name;$_url_assreq$$.sender_user
|
|
26
|
-
new Date;await $_url_assreq$$.save();let $ctrlReq$$=global.controllers.ASSREQUEST,$assreq_views$$=await $ctrlReq$$.asyncView($req$$.user,[$_url_assreq$$.toObject()],{req:$req$$});controller.pushNotification($ctrlReq$$,$assreq_views$$[0]);const $assreq_data$$=$_url_assreq$$.toObject();$assreq_data$$.is_success=!0;$assreq_data$$.message="Giao d\u1ecbch th\u00e0nh c\u00f4ng";let $returnData
|
|
27
|
-
$_url_assreq$$?`${$_url_assreq$$}&${$key$$}=${encodeURIComponent($returnData$$[$key$$])}`:`${$key$$}=${encodeURIComponent($returnData$$[$key$$])}`;$_url_assreq$$=`${$assreq_data$$.return_url}?${$_url_assreq$$}`;$returnData$$.return_url=$_url_assreq$$}return $fn$$(null,$returnData$$)}$fn$$(null,$rs$$)}catch($e$$){console.error($e$$),$fn$$({error:$e$$.message||$e$$.error||$e$$})}},
|
|
28
|
-
try{let $info$$=await getKeyInfo($req$$.user.current_id_app,$req$$.user.email,$address$$);$fn$$(null,$info$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute(":address/download",async($req$$,$fn$$)=>{if(!$req$$.query["otp-id"]||!$req$$.query["otp-code"])return $fn$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u otp-id v\u00e0 otp-code");
|
|
29
|
-
$req$$.query["otp-code"])}catch($e$$){return $fn$$($e$$.message||$e$$.error||$e$$)}let $address$$=$req$$.params.address;try{let $wallet$$=await getWallet($req$$.user.current_id_app,$req$$.user.email,$address$$);$fn$$(null,$wallet$$.mnemonic)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("txs/:tx_id",async($req$$,$fn$$)=>{let $network$$=
|
|
30
|
-
|
|
31
|
-
$app$$&&$app$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$$.wallet_network]&&($network$$=$app$$.wallet_network);$app$$=$req$$.query.page||"1";let $limit$$=$req$$.query.limit||"20",$events$$;for(let $key$$ in $req$$.query)"page"!==$key$$&&"limit"!==$key$$&&"access_token"!==$key$$&&"id_app"!==$key$$&&($events$$=$events$$?`${$events$$}&${$key$$}=${$req$$.query[$key$$]}`:`${$key$$}=${$req$$.query[$key$$]}`);
|
|
32
|
-
$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("query",async($req$$,$fn$$)=>{let $urlQuery$$=$req$$.query.path;if(!$urlQuery$$)return $fn$$({error:"query path is required"});let $network$$="MAINNET";var $app$jscomp$4_limit$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app}).lean();$app$jscomp$4_limit
|
|
33
|
-
($network$$=$app$jscomp$4_limit$$.wallet_network);$app$jscomp$4_limit$$=$req$$.query.type;let $rs$$;try{"td"===$app$jscomp$4_limit$$||0<=$urlQuery$$.indexOf("block_search")||0<=$urlQuery$$.indexOf("tx_search")?$rs$$=await tdQuery($urlQuery$$,$network$$):($app$jscomp$4_limit$$=20,$req$$.query.limit&&($app$jscomp$4_limit$$=Number($req$$.query.limit),isNaN($app$jscomp$4_limit$$)&&($app$jscomp$4_limit$$=
|
|
34
|
-
$urlQuery$$+"&pagination.limit="+$app$jscomp$4_limit$$,$req$$.query.page&&isNaN(Number($req$$.query.page)),$app$jscomp$4_limit$$*=0,$urlQuery$$=0>$urlQuery$$.indexOf("?")?$urlQuery$$+"?pagination.offset="+$app$jscomp$4_limit$$:$urlQuery$$+"&pagination.offset="+$app$jscomp$4_limit$$,$req$$.query.reverse&&($urlQuery$$=0>$urlQuery$$.indexOf("?")?$urlQuery$$+"?pagination.reverse=true":$urlQuery$$+"&pagination.reverse=true")
|
|
35
|
-
$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("txs",async($req$$,$fn$$)=>{let {values:$values$$,fields:$fields$$,typeUrl:$typeUrl$$,type:$type$$,from_address:$from_address$$,fee:$fee$$,memo:$memo$$}=$req$$.body;if(0>$typeUrl$$.indexOf("MsgCreateFindhash"))try{await $permission$$.verifyOTP($req$$.user.email,$req$$.body["otp-id"],$req$$.body["otp-code"])}catch($e$$){return $fn$$({error:$e$$.message
|
|
36
|
-
$req$$.user.token,{values:$values$$,fields:$fields$$,typeUrl:$typeUrl$$,type:$type$$,from_address:$from_address$$,fee:$fee$$,memo:$memo$$}).then($rs$$=>{if($rs$$.code)return 5===$rs$$.code?$fn$$({error:"B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y"}):$fn$$({error:$rs$$.rawLog});$fn$$(null,$rs$$)}).catch($e$$=>{$fn$$($e$$)})},{method:"POST"});$contr_router$$.createRoute("findhash/:id",
|
|
37
|
-
$network$$="MAINNET";($app$jscomp$5_req$$=await global.getModel("app").findOne({_id:$app$jscomp$5_req$$.user.current_id_app}).lean())&&$app$jscomp$5_req$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$jscomp$5_req$$.wallet_network]&&($network$$=$app$jscomp$5_req$$.wallet_network);try{if("latest"===$id$$){let $lastest$$=await getLatestHash($network$$);if(!$lastest$$)return $fn$$("Not found latest hash");$fn$$(null,$lastest$$)}else{let $hash$$=
|
|
38
|
-
$e$$.error||$e$$)}},{method:"GET"});$contr_router$$.createRoute("test-mining/:creator",async($req$$,$fn$$)=>{if("invncur@gmail.com"!==$req$$.user.email)return $fn$$("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p th\u1ef1c hi\u1ec7n ch\u1ee9c n\u0103ng n\u00e0y");mining($req$$.user.current_id_app,$req$$.user.email,$req$$.params.creator,$fn$$)},{method:"GET"});$contr_router$$.route()};
|
|
5
|
+
$obj$$.asset=configs.MAIN_DENOM;try{await $obj$$.save()}catch($e$$){console.error($e$$)}}$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$,$options$$={})=>{let $network$$="MAINNET",$app$$=await global.getModel("app").findOne({_id:$user$$.current_id_app},{wallet_network:1}).lean();$app$$&&$app$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$$.wallet_network]&&($network$$=$app$$.wallet_network);await $items$$.asyncJoinModel2(null,User,{where:{username:"email"},fields:{fullname:"name"}});
|
|
6
|
+
$options$$.req&&$options$$.req.query&&$options$$.req.query.has_balance?async.mapSeries($items$$,($item$$,$callback$$)=>{setImmediate(async()=>{delete $item$$.mnemonic;delete $item$$.private_key;$item$$.name=$item$$.name.replace("V\u00ed","T\u00e0i kho\u1ea3n").replace("v\u00ed","t\u00e0i kho\u1ea3n");try{let $bls$$=await bankBalancesGet($item$$.address,$network$$);await $bls$$.filter($b$$=>$b$$.denom!==configs.MAIN_DENOM).asyncJoinModel2($user$$.current_id_app,assinvestment,{where:{denom:"token"},
|
|
7
|
+
fields:[{price:"gia"},"id_product","id_period"]});$bls$$.forEach($r$$=>{$r$$.amount=Number($r$$.amount);$r$$.price=$r$$.price||1;$r$$.value=$r$$.price*$r$$.amount;delete $r$$.key});$item$$.balances=$bls$$;$callback$$(null,$item$$)}catch($e$$){$callback$$($e$$)}})},$e$$=>$next$$($e$$)):async.mapSeries($items$$,($item$$,$callback$$)=>{setImmediate(()=>{delete $item$$.mnemonic;delete $item$$.private_key;$item$$.name=$item$$.name.replace("V\u00ed","T\u00e0i kho\u1ea3n").replace("v\u00ed","t\u00e0i kho\u1ea3n");
|
|
8
|
+
$callback$$()})},()=>{$next$$(null,$items$$)})}});$contr_router$$.creating=async($user$$,$obj$$,$next$$)=>{if(3<=await model.countDocuments({user_created:$user$$.email,id_app:$user$$.current_id_app,asset:{$nin:["BTC","ETH"]}}))return $next$$("B\u1ea1n kh\u00f4ng th\u1ec3 t\u1ea1o th\u00eam v\u00ed m\u1edbi");$obj$$.username||($obj$$.username=$user$$.email);try{let $wallet$$;if($obj$$.mnemonic){if(await model.findOne({id_app:$user$$.current_id_app,mnemonic:$obj$$.mnemonic}))return $next$$("This wallet was added to your account");
|
|
9
|
+
$wallet$$=await DirectSecp256k1HdWallet.fromMnemonic($obj$$.mnemonic,{prefix:configs.ADDRESS_PREFIX})}else $wallet$$=await DirectSecp256k1HdWallet.generate(24,{prefix:configs.ADDRESS_PREFIX});let $accounts$$=await $wallet$$.getAccounts();$obj$$.address=$accounts$$[0].address;$obj$$.mnemonic=$wallet$$.mnemonic;$next$$(null,$obj$$)}catch($e$$){$next$$($e$$.message||$e$$.error||$e$$)}};$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){if($user$$.email!==$obj$$.user_created&&!isSupperAdmin($user$$.email.toLowerCase()))return $fn$$("Can't delete this key");
|
|
10
|
+
global.client_cosmos=global.client_cosmos||{};delete global.client_cosmos[$obj$$._id.toString()];Receiver.deleteMany({address:$obj$$.address});$fn$$(null,$obj$$)};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$fn$$){$fn$$("Can't update this wallet")};$contr_router$$.createRoute(":address/balance",async($req$$,$fn$$)=>{let $address$$=$req$$.params.address,$network$$="MAINNET",$app$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app}).lean();$app$$&&$app$$.wallet_network&&
|
|
11
|
+
configs.BLOCKCHAIN_NETWORKS[$app$$.wallet_network]&&($network$$=$app$$.wallet_network);try{const $bls$$=await bankBalancesGet($address$$,$network$$);await $bls$$.filter($b$$=>$b$$.denom!==configs.MAIN_DENOM).asyncJoinModel2($req$$.user.current_id_app,assinvestment,{where:{denom:"token"},asyncSetFields:async($item$$,$investment_ref$$,$callback$$)=>{$item$$.price=$investment_ref$$.gia;$investment_ref$$={...$investment_ref$$};var $ivs_tong_so_luong$$=await bcQuery("investment/"+$investment_ref$$.id,
|
|
12
|
+
$network$$);$investment_ref$$.da_dao_han=$ivs_tong_so_luong$$.Investment.daDaoHan;$investment_ref$$.token=$ivs_tong_so_luong$$.Investment.token;$investment_ref$$.ngay_dao_han=Number($ivs_tong_so_luong$$.Investment.ngayDaoHan)?new Date(1E3*Number($ivs_tong_so_luong$$.Investment.ngayDaoHan)):null;$investment_ref$$.ngay_phat_hanh=new Date(1E3*Number($ivs_tong_so_luong$$.Investment.ngayPhatHanh));$investment_ref$$.id_product=$ivs_tong_so_luong$$.Investment.idProduct;$investment_ref$$.product_token=$ivs_tong_so_luong$$.Investment.productToken;
|
|
13
|
+
$investment_ref$$.gia=Number($ivs_tong_so_luong$$.Investment.gia);$investment_ref$$.so_luong=Number($ivs_tong_so_luong$$.Investment.soLuong);$investment_ref$$.da_rut_von=Number($ivs_tong_so_luong$$.Investment.daRutVon);$investment_ref$$.lai_suat_cam_ket=Number($ivs_tong_so_luong$$.Investment.laiSuatCamKet);$investment_ref$$.lai_suat_truoc_han=Number($ivs_tong_so_luong$$.Investment.laiSuatTruocHan);$investment_ref$$.ky_han=Number($ivs_tong_so_luong$$.Investment.kyHan);$investment_ref$$.cho_phep_rut_von=
|
|
14
|
+
$ivs_tong_so_luong$$.Investment.choPhepRutVon;$investment_ref$$.cho_phep_chuyen_nhuong=$ivs_tong_so_luong$$.Investment.choPhepChuyenNhuong;$investment_ref$$.denom=$ivs_tong_so_luong$$.Investment.denom;$investment_ref$$.da_dao_han=$ivs_tong_so_luong$$.Investment.daDaoHan;$investment_ref$$.lai_da_tra=Number($ivs_tong_so_luong$$.Investment.laiDaTra);await [$investment_ref$$].asyncJoinModel2($req$$.user.current_id_app,assproduct,{where:{id_product:"id"},fields:["ma_loai","ten_san_pham","logo","hinh_anh",
|
|
15
|
+
{gia_tri_hien_tai_san_pham:"gia_tri_hien_tai"},{tong_gia_tri_huy_dong:"tong_gia_tri"},{tong_so_token_phat_hanh:"tong_so_token"}]});await [$investment_ref$$].asyncJoinModel2($req$$.user.current_id_app,assperiod,{where:{id_period:"id",id_product:"id_product"},fields:"ten_lh_dt ten_ky_han id_rpt ky_han ky_tinh_lai loi_nhuan_duoc_chia goi_dau_tu tru_lai_da_tra".split(" ")});$investment_ref$$.wallet_address=$address$$;$ivs_tong_so_luong$$=$investment_ref$$.so_luong;$investment_ref$$.so_luong=$item$$.amount;
|
|
16
|
+
$investment_ref$$.con_lai=$item$$.amount;$investment_ref$$.lai_da_tra&&0<$ivs_tong_so_luong$$&&($investment_ref$$.lai_da_tra_1_token=Math.roundBy($investment_ref$$.lai_da_tra/$ivs_tong_so_luong$$),$investment_ref$$.lai_da_tra=$investment_ref$$.lai_da_tra_1_token*$investment_ref$$.con_lai);$investment_ref$$.tong_gia_tri=$investment_ref$$.so_luong*$investment_ref$$.gia;$investment_ref$$.lai_du_tinh=Math.roundBy($investment_ref$$.lai_suat_cam_ket/365/100*$investment_ref$$.tong_gia_tri*$investment_ref$$.ky_han);
|
|
17
|
+
$investment_ref$$.tong_gia_tri_dao_han=$investment_ref$$.tong_gia_tri+$investment_ref$$.lai_du_tinh;$investment_ref$$.ky_han&&!$investment_ref$$.co_phan?($investment_ref$$.so_ngay_hien_tai=Math.roundBy(((new Date).getTime()-(new Date($investment_ref$$.ngay_phat_hanh)).getTime())/864E5),$investment_ref$$.tien_lai_hien_tai=Math.roundBy(($investment_ref$$.lai_suat_cam_ket||0)/365/100*$investment_ref$$.so_ngay_hien_tai*$investment_ref$$.tong_gia_tri),$investment_ref$$.tien_lai_truoc_han_hien_tai=Math.roundBy(($investment_ref$$.lai_suat_truoc_han||
|
|
18
|
+
0)/365/100*$investment_ref$$.so_ngay_hien_tai*$investment_ref$$.tong_gia_tri)):($investment_ref$$.tien_lai_hien_tai=0,$investment_ref$$.so_ngay_hien_tai=0);$investment_ref$$.gia_ban_de_xuat=$investment_ref$$.so_luong?Math.roundBy(($investment_ref$$.tong_gia_tri+$investment_ref$$.tien_lai_hien_tai)/$investment_ref$$.so_luong):0;if($investment_ref$$.goi_dau_tu)try{$investment_ref$$.market_value=await assinvestment.getInvestmentMarketValue($investment_ref$$.id_app,$investment_ref$$.token)}catch($e$$){console.error($e$$)}$item$$.investment=
|
|
19
|
+
$investment_ref$$;$callback$$()}});$bls$$.forEach($r$$=>{$r$$.amount=Number($r$$.amount);$r$$.price=$r$$.price||1;$r$$.value=$r$$.price*$r$$.amount;delete $r$$.key});$fn$$(null,$bls$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});const $handleResult$$=$assreq_data$$=>{$assreq_data$$._id&&($assreq_data$$.trans_id=$assreq_data$$._id.toString());delete $assreq_data$$.trang_thai;delete $assreq_data$$._id;delete $assreq_data$$.__v;
|
|
20
|
+
delete $assreq_data$$.transaction;delete $assreq_data$$.id_app;delete $assreq_data$$.exfields;delete $assreq_data$$.status;delete $assreq_data$$.date_created;delete $assreq_data$$.date_updated;delete $assreq_data$$.user_created;delete $assreq_data$$.user_updated;return $assreq_data$$},$permission$$=require("../../libs/permission");$contr_router$$.createRoute("spend",async($req$$,$fn$$)=>{var $address$$=await global.getModel("assuser_identity").findOne({id_app:$req$$.user.current_id_app,user_created:$req$$.user.email}).lean();
|
|
21
|
+
if(!$address$$)return $fn$$({error:"B\u1ea1n c\u1ea7n x\u00e1c th\u1ef1c th\u00f4ng tin ng\u01b0\u1eddi d\u00f9ng tr\u01b0\u1edbc khi th\u1ef1c hi\u1ec7n giao d\u1ecbch"});if("1"!==$address$$.trang_thai)return $fn$$({error:"H\u1ed3 s\u01a1 th\u00f4ng tin c\u1ee7a b\u1ea1n ch\u01b0a \u0111\u01b0\u1ee3c duy\u1ec7t"});let $data$$=$req$$.body;$address$$=$data$$.from;const $to_address$$=$data$$.to||$data$$.receiver_address;let {denom:$denom$$,amount:$amount$$,memo:$memo$$}=$data$$;if(!($address$$&&$to_address$$&&
|
|
22
|
+
$denom$$&&$amount$$))return $fn$$({error:"Data miss 'from' or 'to' or 'denom' or 'amount'"});if($address$$===$to_address$$)return $fn$$({error:"\u0110\u1ecba ch\u1ec9 v\u00ed g\u1eedi v\u00e0 nh\u1eadn ph\u1ea3i kh\u00e1c nhau"});try{await $permission$$.verifyOTP($req$$.user.email,$data$$["otp-id"],$data$$["otp-code"])}catch($e$$){return $fn$$({error:$e$$.message||$e$$.error||$e$$,code:4001})}if($data$$.assrequest_id){if(!global.mongoose.Types.ObjectId.isValid($data$$.assrequest_id))return $fn$$({error:"Y\u00eau c\u1ea7u thanh to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7"});
|
|
23
|
+
var $_url_assreq$$=await assrequest.findOne({_id:$data$$.assrequest_id,amount:$amount$$,denom:$denom$$,receiver_address:$to_address$$,request_id:$data$$.request_id,order_id:$data$$.order_id});if(!$_url_assreq$$)return $fn$$({error:"Y\u00eau c\u1ea7u thanh to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7"});if("1"===$_url_assreq$$.trang_thai)return $fn$$({error:"Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n"});if("9"===$_url_assreq$$.trang_thai)return $fn$$({error:"Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 b\u1ecb h\u1ee7y"});
|
|
24
|
+
$memo$$=$memo$$||$data$$.order_info}try{const $rs$$=await spend($req$$.user.current_id_app,$req$$.user.token,$address$$,$to_address$$,{denom:$denom$$,amount:$amount$$,memo:$memo$$});if($rs$$.code)return 5===$rs$$.code?$fn$$({error:"B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y"}):$fn$$({error:$rs$$.rawLog});let $walletReceiver$$=await model.findOne({id_app:$req$$.user.current_id_app,address:$to_address$$});if($walletReceiver$$){let $_userReceiver$$=
|
|
25
|
+
await User.findOne({email:$walletReceiver$$.username});Receiver.findOne({id_app:$req$$.user.current_id_app,address:$to_address$$,user_created:$req$$.user.email},($e$$,$rs$$)=>{$rs$$||Receiver.create({id_app:$req$$.user.current_id_app,name:$data$$.name||($_userReceiver$$||{}).name,address:$to_address$$,user_created:$req$$.user.email})})}if($_url_assreq$$){$_url_assreq$$.trang_thai="1";$_url_assreq$$.sender_address=$address$$;$_url_assreq$$.sender_name=$data$$.sender_name||$req$$.user.name;$_url_assreq$$.sender_user=
|
|
26
|
+
$req$$.user.email;$_url_assreq$$.sender_date=new Date;$_url_assreq$$.transaction=$rs$$;$_url_assreq$$.date_updated=new Date;await $_url_assreq$$.save();let $ctrlReq$$=global.controllers.ASSREQUEST,$assreq_views$$=await $ctrlReq$$.asyncView($req$$.user,[$_url_assreq$$.toObject()],{req:$req$$});controller.pushNotification($ctrlReq$$,$assreq_views$$[0]);const $assreq_data$$=$_url_assreq$$.toObject();$assreq_data$$.is_success=!0;$assreq_data$$.message="Giao d\u1ecbch th\u00e0nh c\u00f4ng";let $returnData$$=
|
|
27
|
+
$handleResult$$($assreq_data$$);if($assreq_data$$.return_url){$_url_assreq$$="";for(let $key$$ in $returnData$$)$_url_assreq$$=$_url_assreq$$?`${$_url_assreq$$}&${$key$$}=${encodeURIComponent($returnData$$[$key$$])}`:`${$key$$}=${encodeURIComponent($returnData$$[$key$$])}`;$_url_assreq$$=`${$assreq_data$$.return_url}?${$_url_assreq$$}`;$returnData$$.return_url=$_url_assreq$$}return $fn$$(null,$returnData$$)}$fn$$(null,$rs$$)}catch($e$$){console.error($e$$),$fn$$({error:$e$$.message||$e$$.error||$e$$})}},
|
|
28
|
+
{method:"POST"});$contr_router$$.createRoute(":address/info",async($req$$,$fn$$)=>{let $address$$=$req$$.params.address;try{let $info$$=await getKeyInfo($req$$.user.current_id_app,$req$$.user.email,$address$$);$fn$$(null,$info$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute(":address/download",async($req$$,$fn$$)=>{if(!$req$$.query["otp-id"]||!$req$$.query["otp-code"])return $fn$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u otp-id v\u00e0 otp-code");
|
|
29
|
+
try{await $permission$$.verifyOTP($req$$.user.email,$req$$.query["otp-id"],$req$$.query["otp-code"])}catch($e$$){return $fn$$($e$$.message||$e$$.error||$e$$)}let $address$$=$req$$.params.address;try{let $wallet$$=await getWallet($req$$.user.current_id_app,$req$$.user.email,$address$$);$fn$$(null,$wallet$$.mnemonic)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("txs/:tx_id",async($req$$,$fn$$)=>{let $network$$=
|
|
30
|
+
"MAINNET",$app$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app}).lean();$app$$&&$app$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$$.wallet_network]&&($network$$=$app$$.wallet_network);$req$$=$req$$.params.tx_id;let $rs$$;try{$rs$$=await getTxStatus($req$$,$network$$),$fn$$(null,$rs$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("txs",async($req$$,$fn$$)=>{let $network$$=
|
|
31
|
+
"MAINNET";var $app$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app}).lean();$app$$&&$app$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$$.wallet_network]&&($network$$=$app$$.wallet_network);$app$$=$req$$.query.page||"1";let $limit$$=$req$$.query.limit||"20",$events$$;for(let $key$$ in $req$$.query)"page"!==$key$$&&"limit"!==$key$$&&"access_token"!==$key$$&&"id_app"!==$key$$&&($events$$=$events$$?`${$events$$}&${$key$$}=${$req$$.query[$key$$]}`:`${$key$$}=${$req$$.query[$key$$]}`);
|
|
32
|
+
let $rs$$;try{$rs$$=await txQuery($events$$,$app$$,$limit$$,$network$$),$fn$$(null,$rs$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("query",async($req$$,$fn$$)=>{let $urlQuery$$=$req$$.query.path;if(!$urlQuery$$)return $fn$$({error:"query path is required"});let $network$$="MAINNET";var $app$jscomp$4_limit$$=await global.getModel("app").findOne({_id:$req$$.user.current_id_app}).lean();$app$jscomp$4_limit$$&&
|
|
33
|
+
$app$jscomp$4_limit$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$jscomp$4_limit$$.wallet_network]&&($network$$=$app$jscomp$4_limit$$.wallet_network);$app$jscomp$4_limit$$=$req$$.query.type;let $rs$$;try{"td"===$app$jscomp$4_limit$$||0<=$urlQuery$$.indexOf("block_search")||0<=$urlQuery$$.indexOf("tx_search")?$rs$$=await tdQuery($urlQuery$$,$network$$):($app$jscomp$4_limit$$=20,$req$$.query.limit&&($app$jscomp$4_limit$$=Number($req$$.query.limit),isNaN($app$jscomp$4_limit$$)&&($app$jscomp$4_limit$$=
|
|
34
|
+
20)),$urlQuery$$=0>$urlQuery$$.indexOf("?")?$urlQuery$$+"?pagination.limit="+$app$jscomp$4_limit$$:$urlQuery$$+"&pagination.limit="+$app$jscomp$4_limit$$,$req$$.query.page&&isNaN(Number($req$$.query.page)),$app$jscomp$4_limit$$*=0,$urlQuery$$=0>$urlQuery$$.indexOf("?")?$urlQuery$$+"?pagination.offset="+$app$jscomp$4_limit$$:$urlQuery$$+"&pagination.offset="+$app$jscomp$4_limit$$,$req$$.query.reverse&&($urlQuery$$=0>$urlQuery$$.indexOf("?")?$urlQuery$$+"?pagination.reverse=true":$urlQuery$$+"&pagination.reverse=true"),
|
|
35
|
+
$rs$$=await bcQuery($urlQuery$$,$network$$)),$fn$$(null,$rs$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("txs",async($req$$,$fn$$)=>{let {values:$values$$,fields:$fields$$,typeUrl:$typeUrl$$,type:$type$$,from_address:$from_address$$,fee:$fee$$,memo:$memo$$}=$req$$.body;if(0>$typeUrl$$.indexOf("MsgCreateFindhash"))try{await $permission$$.verifyOTP($req$$.user.email,$req$$.body["otp-id"],$req$$.body["otp-code"])}catch($e$$){return $fn$$({error:$e$$.message||
|
|
36
|
+
$e$$.error||$e$$,code:4001})}createTx($req$$.user.current_id_app,$req$$.user.token,{values:$values$$,fields:$fields$$,typeUrl:$typeUrl$$,type:$type$$,from_address:$from_address$$,fee:$fee$$,memo:$memo$$}).then($rs$$=>{if($rs$$.code)return 5===$rs$$.code?$fn$$({error:"B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y"}):$fn$$({error:$rs$$.rawLog});$fn$$(null,$rs$$)}).catch($e$$=>{$fn$$($e$$)})},{method:"POST"});$contr_router$$.createRoute("findhash/:id",
|
|
37
|
+
async($app$jscomp$5_req$$,$fn$$)=>{let $id$$=$app$jscomp$5_req$$.params.id,$network$$="MAINNET";($app$jscomp$5_req$$=await global.getModel("app").findOne({_id:$app$jscomp$5_req$$.user.current_id_app}).lean())&&$app$jscomp$5_req$$.wallet_network&&configs.BLOCKCHAIN_NETWORKS[$app$jscomp$5_req$$.wallet_network]&&($network$$=$app$jscomp$5_req$$.wallet_network);try{if("latest"===$id$$){let $lastest$$=await getLatestHash($network$$);if(!$lastest$$)return $fn$$("Not found latest hash");$fn$$(null,$lastest$$)}else{let $hash$$=
|
|
38
|
+
await getHashById($id$$,$network$$);$fn$$(null,$hash$$)}}catch($e$$){$fn$$($e$$.message||$e$$.error||$e$$)}},{method:"GET"});$contr_router$$.createRoute("test-mining/:creator",async($req$$,$fn$$)=>{if("invncur@gmail.com"!==$req$$.user.email)return $fn$$("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p th\u1ef1c hi\u1ec7n ch\u1ee9c n\u0103ng n\u00e0y");mining($req$$.user.current_id_app,$req$$.user.email,$req$$.params.creator,$fn$$)},{method:"GET"});$contr_router$$.route()};
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
'use strict';const model=global.getModel("customer"),User=global.getModel("user"),Trangthai=global.getModel("trangthai"),Participant=global.getModel("participant"),Usergroup=global.getModel("usergroup"),validator=require("validator"),group=global.getModel("group"),async=require("async"),controller=require("../../controllers/controller"),
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
$
|
|
7
|
-
$
|
|
1
|
+
'use strict';const model=global.getModel("customer"),dmnhkh=global.getModel("group"),User=global.getModel("user"),Trangthai=global.getModel("trangthai"),Participant=global.getModel("participant"),Usergroup=global.getModel("usergroup"),validator=require("validator"),group=global.getModel("group"),async=require("async"),controller=require("../../controllers/controller"),getAllChildrenUserGroup=async($id_app$$,$chil_nh_kh_nh_vt_cons$$)=>{let $rs$$=[$chil_nh_kh_nh_vt_cons$$];$chil_nh_kh_nh_vt_cons$$=
|
|
2
|
+
(await Usergroup.find({id_app:$id_app$$,group_mother:$chil_nh_kh_nh_vt_cons$$,status:!0},{_id:1,group_mother:1}).lean()).filter($n$$=>$n$$._id.toString()!=$n$$.group_mother).map($d$$=>$d$$._id);0<$chil_nh_kh_nh_vt_cons$$.length&&($chil_nh_kh_nh_vt_cons$$=await Promise.all($chil_nh_kh_nh_vt_cons$$.map($nh$$=>getAllChildrenUserGroup($id_app$$,$nh$$))),$chil_nh_kh_nh_vt_cons$$=$chil_nh_kh_nh_vt_cons$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil_nh_kh_nh_vt_cons$$,...$rs$$]);return $rs$$},
|
|
3
|
+
customer=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"customer",{sort:{date_updated:-1},unique:["ma_kh"],onFinding:function($user$$,$condition$$,$next$$){async.parallel({user_group:$callback$$=>{$condition$$.user_group?getAllChildrenUserGroup($condition$$.id_app,$condition$$.user_group).then($groups$$=>{global.getModel("participant").find({id_app:$user$$.current_id_app,group_id:{$in:$groups$$}},{email:1}).then($ps$$=>{$condition$$.phu_trach={$in:$ps$$.map($p$$=>
|
|
4
|
+
$p$$.email)};delete $condition$$.user_group;$callback$$()}).catch($e$$=>{$callback$$($e$$)})}).catch($e$$=>{$callback$$($e$$)}):$callback$$()},user_of_bp:$callback$$=>{$condition$$.ma_bp?global.getModel("dmbp").getUsersByMaBP($user$$.current_id_app,$condition$$.ma_bp).then($users$$=>{console.log("users of department",$users$$);$condition$$.phu_trach={$in:$users$$};delete $condition$$.ma_bp;$callback$$()}).catch($e$$=>{$callback$$($e$$)}):$callback$$()},nh_kh:$callback$$=>{$condition$$.nh_kh&&"string"==
|
|
5
|
+
typeof $condition$$.nh_kh?dmnhkh.getAllChildrenGroup($condition$$.id_app,$condition$$.nh_kh,{status:!0}).then($nh_vt$$=>{$condition$$.nh_kh={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh2:$callback$$=>{$condition$$.nh_kh2&&"string"==typeof $condition$$.nh_kh2?dmnhkh.getAllChildrenGroup($condition$$.id_app,$condition$$.nh_kh2,{status:!0}).then($nh_vt$$=>{$condition$$.nh_kh2={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh3:$callback$$=>{$condition$$.nh_kh3&&
|
|
6
|
+
"string"==typeof $condition$$.nh_kh3?dmnhkh.getAllChildrenGroup($condition$$.id_app,$condition$$.nh_kh3,{status:!0}).then($nh_vt$$=>{$condition$$.nh_kh3={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh4:$callback$$=>{$condition$$.nh_kh4&&"string"==typeof $condition$$.nh_kh4?dmnhkh.getAllChildrenGroup($condition$$.id_app,$condition$$.nh_kh4,{status:!0}).then($nh_vt$$=>{$condition$$.nh_kh4={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},nh_kh5:$callback$$=>{$condition$$.nh_kh5&&
|
|
7
|
+
"string"==typeof $condition$$.nh_kh5?dmnhkh.getAllChildrenGroup($condition$$.id_app,$condition$$.nh_kh5,{status:!0}).then($nh_vt$$=>{$condition$$.nh_kh5={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()}},()=>{$next$$(null,$condition$$)})},onView:function($user$$,$items$$,$next$$,$options$$){$items$$.forEach($item$$=>{$item$$.email&&!validator.isEmail($item$$.email)&&($item$$.email="");delete $item$$.default_password});async.series({pt:$callback$$=>{$items$$.filter($item$$=>$item$$.phu_trach).joinModel2(null,
|
|
8
|
+
User,[{where:{phu_trach:"email"},fields:[{ten_phu_trach:"name"}]}],function(){$callback$$()})},group:$callback$$=>{$items$$.filter($item$$=>$item$$.nh_kh).joinModel2($user$$.current_id_app,group,[{where:{nh_kh:"_id"},fields:[{ten_nh_kh:"group_name"}]}],function(){$callback$$()})},u:$callback$$=>{$items$$.filter($item$$=>$item$$.of_user).joinModel2(null,User,[{where:{of_user:"email"},fields:[{user_name:"name"}]}],function(){$callback$$()})},tt:$callback$$=>{$items$$.filter($item$$=>$item$$.trang_thai).joinModel2(null,
|
|
9
|
+
Trangthai,[{where:$item$$=>({ma_trang_thai:$item$$.trang_thai,ma_ct:"CUSTOMER"}),fields:["ten_trang_thai","color"]}],function(){$callback$$()})},ngay_mua:$callback$jscomp$0$$=>{$options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ngay_mua_gan_nhat"))&&model.updateActives?async.map($items$$.filter($item$$=>void 0===$item$$.ngay_mua_gan_nhat||void 0===$item$$.ngay_tuong_tac_gan_nhat),($item$$,$callback$$)=>{model.updateActives($item$$).then($rs$$=>
|
|
10
|
+
{$item$$.ngay_mua_gan_nhat=$rs$$.ngay_mua_gan_nhat;$item$$.so_ngay_da_mua=$rs$$.so_ngay_da_mua;$callback$$()}).catch($e$$=>{console.error($e$$);$callback$$()})},()=>{$callback$jscomp$0$$()}):$callback$jscomp$0$$()}},()=>{$next$$(null,$items$$)})}});$contr_router$$.validating=async($id_app$jscomp$1_user$$,$obj$$,$next$$)=>{if(!$obj$$.ma_kh&&$obj$$.ten_kh){$id_app$jscomp$1_user$$=$id_app$jscomp$1_user$$.current_id_app;try{let $ma_kh$$=await model.asyncCreateCustomerCode($id_app$jscomp$1_user$$,$obj$$.ten_kh);
|
|
11
|
+
$obj$$.ma_kh=$ma_kh$$;$next$$(null,$obj$$)}catch($e$$){console.error($e$$),$next$$($e$$)}}else $next$$(null,$obj$$)};$contr_router$$.route();$contr_router$$.on("saved",async $data$$=>{let $_usergroup$$;try{$_usergroup$$=await Usergroup.getInfo($data$$.id_app,{is_customer_group:!0})}catch($e$$){return}$data$$.of_user&&$_usergroup$$&&User.findOne({email:$data$$.of_user},($e$jscomp$1$$,$rs$$)=>{if($rs$$)Participant.createParticipant({id_app:$data$$.id_app,email:$data$$.of_user,group_id:$_usergroup$$._id,
|
|
12
|
+
active:!0},$e$$=>{if($e$$)return console.log("can't add user",$data$$.of_user,"to company")});else{var $result$$=new User;$result$$.email=$data$$.of_user;$result$$.name=$data$$.ten_kh;$result$$.email2=$data$$.email;$result$$.local={};$result$$.local.email=$result$$.email;$result$$.local.name=$result$$.name;$result$$.local.picture="/images/avatar.jpg";$result$$.local.password=$result$$.generateHash($result$$.email+($data$$.default_password||$result$$.email+"@123456"));$result$$.save($e$jscomp$0$$=>
|
|
13
|
+
{if($e$jscomp$0$$)return console.log($e$jscomp$0$$.message);Participant.createParticipant({id_app:$data$$.id_app,email:$result$$.email,group_id:$_usergroup$$._id,active:!0},$e$$=>{if($e$$)return console.log("can't add user",$result$$.email,"to company")})})}})})};module.exports=customer;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
'use strict';const model=global.getModel("dmbp"),Participant=global.getModel("participant"),controller=require("../../controllers/controller"),async=require("async")
|
|
2
|
-
|
|
3
|
-
$
|
|
1
|
+
'use strict';const model=global.getModel("dmbp"),Participant=global.getModel("participant"),controller=require("../../controllers/controller"),async=require("async"),getSysorder=function($item$$,$callback$$){let $sysorder$$=($item$$.stt||"0")+"-"+$item$$.ma_bp;$item$$.ma_bp_me?model.findOne({ma_bp:$item$$.ma_bp_me,id_app:$item$$.id_app}).lean().exec(function($e$$,$item_me$$){$item_me$$?getSysorder($item_me$$,function($rs$$){$sysorder$$=$rs$$+"---"+$sysorder$$;$callback$$($sysorder$$)}):$callback$$($sysorder$$)}):
|
|
2
|
+
$callback$$($sysorder$$)};
|
|
3
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"dmbp",{sort:{sysorder:1},unique:["ma_bp"],onView:function($user$$,$items$$,$next$$){async.series({pt:function($callback$$){$items$$.filter($item$$=>$item$$.phu_trach).joinModel2($user$$.current_id_app,Participant,[{where:{phu_trach:"email"},fields:[{ten_phu_trach:"name"}]}],function(){$callback$$(null,$items$$)})},ph:function($callback$$){$items$$.filter($item$$=>$item$$.phoi_hop).joinModel2($user$$.current_id_app,Participant,
|
|
4
|
+
[{where:{phoi_hop:"email"},fields:[{ten_phoi_hop:"name"}]}],function(){$callback$$(null,$items$$)})}},()=>{$next$$(null,$items$$)})}});$contr_router$$.route();$contr_router$$.deleting=function($user$$,$obj$$,$next$$){if(0===$obj$$.loai_nh)return $next$$(Error("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p x\u00f3a nh\u00f3m m\u1eb9"));$next$$(null,$obj$$)};$contr_router$$.created=function($user$$,$obj$$,$next$$){getSysorder($obj$$,function($rs$$){$obj$$.sysorder=$rs$$;$obj$$.bac=$rs$$.split("---").length;
|
|
5
|
+
model.findOneAndUpdate({_id:$obj$$._id},{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:1}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.updated=function($user$$,$obj$$,$next$$){getSysorder($obj$$,async function($loai_nh_rs$$){$obj$$.sysorder=$loai_nh_rs$$;$obj$$.bac=$loai_nh_rs$$.split("---").length;$loai_nh_rs$$=1;await model.findOne({ma_bp_me:$obj$$.ma_bp.toString(),id_app:$obj$$.id_app})&&($loai_nh_rs$$=0);$obj$$.loai_nh=$loai_nh_rs$$;model.findOneAndUpdate({_id:$obj$$._id},
|
|
6
|
+
{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:$loai_nh_rs$$}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.on("saved",function($obj$jscomp$0$$){const $ma_bp_me$$=$obj$jscomp$0$$.ma_bp_me;$ma_bp_me$$&&model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,ma_bp:$ma_bp_me$$},{$set:{loai_nh:0}},function($error$$,$obj$$){$error$$?console.error($error$$):$obj$$?console.log("updated "+$obj$$._id):console.log("Not found mother account:"+$ma_bp_me$$)})});$contr_router$$.on("deleted",
|
|
7
|
+
function($obj$jscomp$0$$){$obj$jscomp$0$$.ma_bp_me&&model.findOne({ma_bp_me:$obj$jscomp$0$$.ma_bp_me,id_app:$obj$jscomp$0$$.id_app},function($error$jscomp$0$$,$acc$$){$error$jscomp$0$$||$acc$$||model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,ma_bp:$obj$jscomp$0$$.ma_bp_me},{$set:{loai_nh:1}},function($error$$,$obj$$){$error$$||$obj$$&&console.log("updated "+$obj$$._id)})})})};
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
'use strict';const model=global.getModel("group"),controller=require("../../controllers/controller"),
|
|
1
|
+
'use strict';const model=global.getModel("group"),controller=require("../../controllers/controller"),getSysorder=function($item$$,$callback$$){let $sysorder$$=$item$$._id.toString();$item$$.group_mother?model.findOne({_id:$item$$.group_mother}).lean().exec(function($e$$,$item_me$$){$item_me$$?getSysorder($item_me$$,function($rs$$){$sysorder$$=$rs$$+"---"+$sysorder$$;$callback$$($sysorder$$)}):$callback$$($sysorder$$)}):$callback$$($sysorder$$)},dmnhkh=function($contr_router$$){$contr_router$$=new controller($contr_router$$,
|
|
2
|
+
model,"dmnhkh",{sort:{sysorder:1},findExact:{group_type:1},keyValues:{group_type:"CUSTOMER"}});$contr_router$$.route();$contr_router$$.deleting=function($user$$,$obj$$,$next$$){if(0===$obj$$.loai_nh)return $next$$(Error("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p x\u00f3a nh\u00f3m m\u1eb9"));$next$$(null,$obj$$)};$contr_router$$.created=function($user$$,$obj$$,$next$$){getSysorder($obj$$,function($rs$$){$obj$$.sysorder=$rs$$;$obj$$.bac=$rs$$.split("---").length;model.findOneAndUpdate({_id:$obj$$._id},
|
|
3
|
+
{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:1}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.updated=function($user$$,$obj$$,$next$$){getSysorder($obj$$,async function($loai_nh_rs$$){$obj$$.sysorder=$loai_nh_rs$$;$obj$$.bac=$loai_nh_rs$$.split("---").length;$loai_nh_rs$$=1;await model.findOne({group_mother:$obj$$._id.toString()})&&($loai_nh_rs$$=0);$obj$$.loai_nh=$loai_nh_rs$$;model.findOneAndUpdate({_id:$obj$$._id},{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,
|
|
4
|
+
loai_nh:$loai_nh_rs$$}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.on("saved",function($obj$jscomp$0$$){const $group_mother$$=$obj$jscomp$0$$.group_mother;$group_mother$$&&model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,_id:$group_mother$$},{$set:{loai_nh:0}},function($error$$,$obj$$){$error$$?console.error($error$$):$obj$$?console.log("updated "+$obj$$._id):console.log("Not found mother account:"+$group_mother$$)})});$contr_router$$.on("deleted",function($obj$jscomp$0$$){$obj$jscomp$0$$.group_mother&&
|
|
5
|
+
model.findOne({group_mother:$obj$jscomp$0$$.group_mother},function($error$jscomp$0$$,$acc$$){$error$jscomp$0$$||$acc$$||model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,_id:$obj$jscomp$0$$.group_mother},{$set:{loai_nh:1}},function($error$$,$obj$$){$error$$||$obj$$&&console.log("updated "+$obj$$._id)})})})};module.exports=dmnhkh;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';const model=global.getModel("dmnvt"),controller=require("../../controllers/controller"),underscore=require("underscore");
|
|
2
|
-
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"dmnvt",{sort:{
|
|
3
|
-
model.findOne({_id:$item$$.nh_me}).lean().exec(function($e$$,$item_me$$){$item_me$$?$getSysorder$$($item_me$$,function($rs$$){$sysorder$$=$rs$$+"-"+$sysorder$$;$callback$$($sysorder$$)}):$callback$$($sysorder$$)}):$callback$$($sysorder$$)};$contr_router$$.route();$contr_router$$.deleting=function($user$$,$obj$$,$next$$){if(0===$obj$$.loai_nh)return $next$$(Error("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p x\u00f3a nh\u00f3m m\u1eb9"));$next$$(null,$obj$$)};$contr_router$$.created=function($user
|
|
4
|
-
$next$$){$getSysorder$$($obj$$,function($rs$$){$obj$$.sysorder=$rs$$;$obj$$.bac=$rs$$.split("-").length;model.findOneAndUpdate({_id:$obj$$._id},{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.updated=function($user$$,$obj$$,$next$$){$getSysorder$$($obj$$,function($
|
|
5
|
-
console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.on("saved",function($obj$jscomp$0$$){
|
|
6
|
-
function($error$jscomp$0$$,$acc$$){$error$jscomp$0$$||$acc$$||model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,_id:$obj$jscomp$0$$.nh_me},{$set:{loai_nh:1}},function($error$$,$obj$$){$error$$||$obj$$&&console.log("updated "+$obj$$._id)})})})};
|
|
2
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"dmnvt",{sort:{sysorder:1},onView:function($user$$,$items$$,$next$$){$items$$.joinModel($user$$.current_id_app,model,[{akey:"nh_me",bkey:"_id",fields:[{name:"ten_nh_me",value:"ten_nvt"}]}],function(){$items$$=underscore.sortBy($items$$,function($item$$){return $item$$.sysorder});$next$$(null,$items$$)})}});const $getSysorder$$=function($item$$,$callback$$){let $sysorder$$=($item$$.stt||"0")+$item$$._id.toString();
|
|
3
|
+
$item$$.nh_me?model.findOne({_id:$item$$.nh_me}).lean().exec(function($e$$,$item_me$$){$item_me$$?$getSysorder$$($item_me$$,function($rs$$){$sysorder$$=$rs$$+"-"+$sysorder$$;$callback$$($sysorder$$)}):$callback$$($sysorder$$)}):$callback$$($sysorder$$)};$contr_router$$.route();$contr_router$$.deleting=function($user$$,$obj$$,$next$$){if(0===$obj$$.loai_nh)return $next$$(Error("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p x\u00f3a nh\u00f3m m\u1eb9"));$next$$(null,$obj$$)};$contr_router$$.created=function($user$$,
|
|
4
|
+
$obj$$,$next$$){$getSysorder$$($obj$$,function($rs$$){$obj$$.sysorder=$rs$$;$obj$$.bac=$rs$$.split("-").length;model.findOneAndUpdate({_id:$obj$$._id},{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:1}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.updated=function($user$$,$obj$$,$next$$){$getSysorder$$($obj$$,async function($loai_nh_rs$$){$obj$$.sysorder=$loai_nh_rs$$;$obj$$.bac=$loai_nh_rs$$.split("-").length;$loai_nh_rs$$=1;await model.findOne({nh_me:$obj$$._id.toString()})&&
|
|
5
|
+
($loai_nh_rs$$=0);$obj$$.loai_nh=$loai_nh_rs$$;model.findOneAndUpdate({_id:$obj$$._id},{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:$loai_nh_rs$$}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.on("saved",function($obj$jscomp$0$$){const $nh_me$$=$obj$jscomp$0$$.nh_me;$nh_me$$&&model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,_id:$nh_me$$},{$set:{loai_nh:0}},function($error$$,$obj$$){$error$$?console.error($error$$):$obj$$?console.log("updated "+$obj$$._id):
|
|
6
|
+
console.log("Not found mother account:"+$nh_me$$)})});$contr_router$$.on("deleted",function($obj$jscomp$0$$){$obj$jscomp$0$$.nh_me&&model.findOne({nh_me:$obj$jscomp$0$$.nh_me,id_app:$obj$jscomp$0$$.id_app},function($error$jscomp$0$$,$acc$$){$error$jscomp$0$$||$acc$$||model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,_id:$obj$jscomp$0$$.nh_me},{$set:{loai_nh:1}},function($error$$,$obj$$){$error$$||$obj$$&&console.log("updated "+$obj$$._id)})})})};
|
|
@@ -1,36 +1,49 @@
|
|
|
1
1
|
'use strict';const model=global.getModel("dmvt"),controller=require("../../controllers/controller"),Dmdvt=global.getModel("dmdvt"),Dmnvt=global.getModel("dmnvt"),Dmtt=global.getModel("dmtt"),ckvt=require("../../libs/ckvt"),Dmqddvt=global.getModel("dmqddvt"),Dmchietkhau=global.getModel("dmchietkhau"),Dmkh=global.getModel("customer"),async=require("async"),underscore=require("underscore"),getGiaBan=require("../../libs/getGiaban"),counter=global.getModel("counter"),moment=require("moment"),_=require("lodash"),
|
|
2
|
-
utils=require("../../libs/utils"),getAllChildrenGroup=async
|
|
3
|
-
$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil_ma_nvt_nh_vt_cons$$,...$rs$$]);return $rs$$},getAllEcomcategories=async
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
$condition
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
$
|
|
16
|
-
$
|
|
17
|
-
$
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
$options$$.req
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
$
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
$
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
2
|
+
utils=require("../../libs/utils"),getAllChildrenGroup=async($id_app$$,$chil_ma_nvt_nh_vt_cons$$,$la_nhom_hang_hoa$$,$ma_nganh_hang$$)=>{let $rs$$=[],$query$$={id_app:$id_app$$,status:!0};$ma_nganh_hang$$&&($query$$.ma_nganh_hang=$ma_nganh_hang$$);void 0!=$la_nhom_hang_hoa$$&&($query$$.la_nhom_hang_hoa=$la_nhom_hang_hoa$$);$chil_ma_nvt_nh_vt_cons$$&&($rs$$.push($chil_ma_nvt_nh_vt_cons$$),$query$$.nh_me=$chil_ma_nvt_nh_vt_cons$$);$chil_ma_nvt_nh_vt_cons$$=(await Dmnvt.find($query$$,{_id:1,nh_me:1}).lean()).filter($n$$=>
|
|
3
|
+
$n$$._id.toString()!=$n$$.nh_me).map($d$$=>$d$$._id);0<$chil_ma_nvt_nh_vt_cons$$.length&&($chil_ma_nvt_nh_vt_cons$$=await Promise.all($chil_ma_nvt_nh_vt_cons$$.map($nh$$=>getAllChildrenGroup($id_app$$,$nh$$,$la_nhom_hang_hoa$$))),$chil_ma_nvt_nh_vt_cons$$=$chil_ma_nvt_nh_vt_cons$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil_ma_nvt_nh_vt_cons$$,...$rs$$]);return $rs$$},getAllEcomcategories=async($id_app$$,$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$)=>{let $rs$$=[$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$];
|
|
4
|
+
$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=(await global.getModel("ecomcategories").find({id_app:$id_app$$,danh_muc_me:$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$,status:!0},{ma_danh_muc:1,danh_muc_me:1}).lean()).filter($n$$=>$n$$.ma_danh_muc!=$n$$.danh_muc_me).map($d$$=>$d$$.ma_danh_muc);0<$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$.length&&($chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=await Promise.all($chil$jscomp$1_ma_danh_muc_nh_vt_cons$$.map($nh$$=>getAllEcomcategories($id_app$$,$nh$$))),$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=
|
|
5
|
+
$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$,...$rs$$]);return $rs$$},getAllEcomcategories_cty=async($id_app$$,$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$)=>{let $rs$$=[$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$];$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$=(await global.getModel("ecomcategories_cty").find({id_app:$id_app$$,danh_muc_me:$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$,status:!0},{ma_danh_muc:1,
|
|
6
|
+
danh_muc_me:1}).lean()).filter($n$$=>$n$$.ma_danh_muc!=$n$$.danh_muc_me).map($d$$=>$d$$.ma_danh_muc);0<$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$.length&&($chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$=await Promise.all($chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$.map($nh$$=>getAllEcomcategories_cty($id_app$$,$nh$$))),$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$=$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil$jscomp$2_ma_danh_muc$jscomp$1_nh_vt_cons$$,
|
|
7
|
+
...$rs$$]);return $rs$$},TinhGiaBan=($item$$,$callback$jscomp$0$$,$options$$,$user$$)=>{let $condition$$={ma_vt:$item$$.ma_vt,id_app:$item$$.id_app,vt:$item$$};$item$$.ma_tt&&($condition$$[`ma_tt${$item$$.loai_tt||1}`]=$item$$.ma_tt);$options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.ma_kho&&($condition$$.ma_kho=$options$$.req.query.ma_kho),$options$$.req.query.ma_ban&&($condition$$.ma_ban=$options$$.req.query.ma_ban),$options$$.req.query.ma_kh&&($condition$$.ma_kh=$options$$.req.query.ma_kh),
|
|
8
|
+
$options$$.req.query.nh_kh&&($condition$$.nh_kh=$options$$.req.query.nh_kh),$options$$.req.query.by_user&&($condition$$.user=$user$$),$options$$.req.query.online&&($condition$$.online=$options$$.req.query.online),$options$$.req.query.offline&&($condition$$.offline=$options$$.req.query.offline),$options$$.req.query.so_luong&&($condition$$.so_luong=$options$$.req.query.so_luong));setImmediate(()=>{getGiaBan($condition$$,($e$$,$gia$$)=>{if($e$$)return console.error("error when get gia_ban on dmvt",$e$$,
|
|
9
|
+
$condition$$),$callback$jscomp$0$$(null);$gia$$?(delete $gia$$._id,delete $gia$$.ma_vt,delete $gia$$.ten_vt,underscore.extend($item$$,$gia$$),$gia$$.promotion&&0<$gia$$.promotion.length?async.mapSeries($gia$$.promotion,($p$$,$callback$$)=>{($p$$.details_km||[]).joinModel2($item$$.id_app,model,{where:"ma_vt",fields:["ma_dvt","chieu_cao","chieu_rong","chieu_sau","trong_luong"]},function($rs$$){$p$$.details_km.forEach($r$$=>{$r$$.km_yn_for=`${$item$$.id_app}-${$item$$.ma_vt}`});$callback$$(null,$rs$$)})},
|
|
10
|
+
()=>{$callback$jscomp$0$$(null)}):$callback$jscomp$0$$(null)):$callback$jscomp$0$$(null)})})};
|
|
11
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"dmvt",{sort:{ma_vt:1},unique:["ma_vt"],onFinding:async($user$$,$condition$$,$next$$,$options$$)=>{$options$$&&$options$$.req&&$options$$.req.sort&&$options$$.req.sort.gia_ban_le&&($options$$.req.sort.gia_ban_le0=$options$$.req.sort.gia_ban_le,delete $options$$.req.sort.gia_ban_le);$options$$.req.query.show_properties||($options$$.req.query.show_properties=$condition$$.show_properties);$options$$.req.query.by_user||
|
|
12
|
+
($options$$.req.query.by_user=$condition$$.by_user);$options$$.req.query.online||($options$$.req.query.online=$condition$$.online);$options$$.req.query.offline||($options$$.req.query.offline=$condition$$.offline);$options$$.req.query.show_quantity_in_stock||($options$$.req.query.show_quantity_in_stock=$condition$$.show_quantity_in_stock);$options$$.req.query.ma_kho||($options$$.req.query.ma_kho=$condition$$.ma_kho);$options$$.req.query.ma_kh||($options$$.req.query.ma_kh=$condition$$.ma_kh);$options$$.req.query.nh_kh||
|
|
13
|
+
($options$$.req.query.nh_kh=$condition$$.nh_kh);$options$$.req.query.da_dat_hang||($options$$.req.query.da_dat_hang=$condition$$.da_dat_hang);$options$$.req.query.wishlist||($options$$.req.query.wishlist=$condition$$.wishlist);if($options$$.req.query.ma_kh||$condition$$.gia_theo_kh||$options$$.req.query.gia_theo_kh||$options$$.req.query.hh_theo_kh||$options$$.req.query.by_user||$options$$.req.query.da_dat_hang||$options$$.req.query.wishlist){let $kh$$;if($kh$$=$options$$.req.query.ma_kh?await global.getModel("customer").findOne({id_app:$condition$$.id_app,
|
|
14
|
+
ma_kh:$options$$.req.query.ma_kh}).lean():await global.getModel("customer").findOne({id_app:$condition$$.id_app,of_user:$user$$.email}).lean())$options$$.req.query.ma_kh=$kh$$.ma_kh,$kh$$.nh_kh&&($options$$.req.query.nh_kh=$kh$$.nh_kh),$kh$$.nh_kh2&&($options$$.req.query.nh_kh2=$kh$$.nh_kh2),$kh$$.nh_kh3&&($options$$.req.query.nh_kh3=$kh$$.nh_kh3),$kh$$.nh_kh4&&($options$$.req.query.nh_kh4=$kh$$.nh_kh4),$kh$$.nh_kh5&&($options$$.req.query.nh_kh5=$kh$$.nh_kh5),$kh$$.ma_nganh_hang&&0<$kh$$.ma_nganh_hang.length&&
|
|
15
|
+
($condition$$.ma_nganh_hang=$condition$$.ma_nganh_hang?$kh$$.ma_nganh_hang.filter($m$$=>$m$$===$condition$$.ma_nganh_hang):$kh$$.ma_nganh_hang)}$options$$.req.query.ma_ban||($options$$.req.query.ma_ban=$condition$$.ma_ban);$options$$.req.query.so_luong||($options$$.req.query.so_luong=$condition$$.so_luong);delete $condition$$.show_properties;delete $condition$$.by_user;delete $condition$$.show_quantity_in_stock;delete $condition$$.online;delete $condition$$.offline;delete $condition$$.ma_kho;delete $condition$$.ma_ban;
|
|
16
|
+
delete $condition$$.ma_kh;delete $condition$$.nh_kh;delete $condition$$.gia_theo_kh;delete $condition$$.da_dat_hang;delete $condition$$.wishlist;delete $condition$$.so_luong;$condition$$.ma_vt&&"object"!=typeof $condition$$.ma_vt&&(delete $condition$$.ma_danh_muc_cty,delete $condition$$.ma_danh_muc);async.series({wishlist:$callback$$=>{if($options$$.req.query.wishlist){let $query_wishlist$$={id_app:$condition$$.id_app,user:$user$$.email};$condition$$.ma_vt&&($query_wishlist$$.ma_vt=$condition$$.ma_vt);
|
|
17
|
+
global.getModel("ecomwishlist").find($query_wishlist$$,{ma_vt:1}).lean().then($ws$$=>{$condition$$.ma_vt=$ws$$.map($w$$=>$w$$.ma_vt);$callback$$()}).catch($e$$=>{$callback$$($e$$)})}else $callback$$()},da_dat_dh2:$callback$$=>{if($options$$.req.query.da_dat_hang){let $query_dh$$={id_app:$condition$$.id_app,$or:[{user_nv:$user$$.email},{user_ctv:$user$$.email},{user_created:$user$$.email}]};$condition$$.ma_vt&&($query_dh$$["details.ma_vt"]=$condition$$.ma_vt);global.getModel("dh2").find($query_dh$$,
|
|
18
|
+
{details:1}).sort({date_created:-1}).limit(10).lean().then($dhs$$=>{$condition$$.ma_vt=$dhs$$.map($dh$$=>$dh$$.details.map($d$$=>$d$$.ma_vt)).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$condition$$.ma_vt=[...(new Set([...$condition$$.ma_vt]))];$callback$$()}).catch($e$$=>{$callback$$($e$$)})}else $callback$$()},da_dat_so1:$callback$$=>{if($options$$.req.query.da_dat_hang&&(!$condition$$.ma_vt||10>$condition$$.ma_vt.length)){let $query_dh$$={id_app:$condition$$.id_app,$or:[{user_nv:$user$$.email},{user_ctv:$user$$.email},
|
|
19
|
+
{user_created:$user$$.email}]};global.getModel("so1").find($query_dh$$,{details:1}).sort({date_created:-1}).limit(10).lean().then($dhs$$=>{$dhs$$=$dhs$$.map($dh$$=>$dh$$.details.map($d$$=>$d$$.ma_vt)).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$condition$$.ma_vt=[...(new Set([...$condition$$.ma_vt,...$dhs$$]))];$callback$$()}).catch($e$$=>{$callback$$($e$$)})}else $callback$$()},barcode:$callback$jscomp$0$$=>{if($condition$$.ma_vt2&&!$condition$$.ma_vt&&$options$$&&$options$$.req&&$options$$.req.query&&
|
|
20
|
+
$options$$.req.query.show_properties){if(underscore.isArray($condition$$.ma_vt2)&&0===$condition$$.ma_vt2.length)return $callback$jscomp$0$$();async.series({tt:$callback$$=>{Dmtt.find({ma_tt2:$condition$$.ma_vt2,id_app:$condition$$.id_app},{ma_vt:1}).lean().exec(($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$callback$$(null,$rs$$.map($r$$=>$r$$.ma_vt))})},vt:$callback$$=>{model.find({ma_vt2:$condition$$.ma_vt2,id_app:$condition$$.id_app},{ma_vt:1}).lean().exec(($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);
|
|
21
|
+
$callback$$(null,$rs$$.map($r$$=>$r$$.ma_vt))})}},($e$jscomp$6_ma_vts$$,$rs$$)=>{if($e$jscomp$6_ma_vts$$)return $callback$jscomp$0$$($e$jscomp$6_ma_vts$$);delete $condition$$.ma_vt2;$e$jscomp$6_ma_vts$$=[...(new Set($rs$$.tt.concat($rs$$.vt)))];$condition$$.ma_vt={$in:$e$jscomp$6_ma_vts$$};$callback$jscomp$0$$()})}else $callback$jscomp$0$$()},nhom:$callback$$=>{$condition$$.ma_nvt&&"object"!==typeof $condition$$.ma_nvt||$condition$$.la_nhom_hang_hoa||$condition$$.ma_nganh_hang?getAllChildrenGroup($condition$$.id_app,
|
|
22
|
+
$condition$$.ma_nvt,$condition$$.la_nhom_hang_hoa,$condition$$.ma_nganh_hang).then($nh_vt$$=>{$condition$$.ma_nvt={$in:[...(new Set($nh_vt$$))]};delete $condition$$.la_nhom_hang_hoa;delete $condition$$.ma_nganh_hang;$callback$$()}):$callback$$()},danhmuc:$callback$$=>{$condition$$.ma_danh_muc&&"object"!==typeof $condition$$.ma_danh_muc?getAllEcomcategories($condition$$.id_app,$condition$$.ma_danh_muc).then($nh_vt$$=>{$condition$$.ma_danh_muc={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},
|
|
23
|
+
danhmuc_cty:$callback$$=>{$condition$$.ma_danh_muc_cty&&"object"!==typeof $condition$$.ma_danh_muc_cty?getAllEcomcategories_cty($condition$$.id_app,$condition$$.ma_danh_muc_cty).then($nh_vt$$=>{$condition$$.ma_danh_muc_cty={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},discount:$callback$$=>{if($condition$$.has_discount){let $_q$$={};$condition$$.id_app&&($_q$$.id_app=$condition$$.id_app);var $hieu_luc_den_tu_ngay$$=moment().startOf("date").toDate();let $hieu_luc_tu$$={$lte:moment().endOf("date").toDate()};
|
|
24
|
+
$hieu_luc_den_tu_ngay$$={$gte:$hieu_luc_den_tu_ngay$$};$_q$$.hieu_luc_tu=$hieu_luc_tu$$;$_q$$.hieu_luc_den=$hieu_luc_den_tu_ngay$$;$condition$$.ma_vt&&($_q$$.ma_vt=$condition$$.ma_vt);Dmchietkhau.find($_q$$,{ma_vt:1,ma_nvt:1}).lean().exec(($_ma_vt_e$$,$$or__ma_nvt_rs$$)=>{$$or__ma_nvt_rs$$&&($_ma_vt_e$$=$$or__ma_nvt_rs$$.filter($r$$=>$r$$.ma_vt).map($r$$=>$r$$.ma_vt),$$or__ma_nvt_rs$$=$$or__ma_nvt_rs$$.filter($r$$=>$r$$.ma_nvt&&!$r$$.ma_vt).map($r$$=>$r$$.ma_nvt),$$or__ma_nvt_rs$$=[{ma_vt:{$in:$_ma_vt_e$$}},
|
|
25
|
+
{ma_nvt:{$in:$$or__ma_nvt_rs$$}}],$condition$$.$and?$condition$$.$and.push({$or:$$or__ma_nvt_rs$$}):$condition$$.$and=[{$or:$$or__ma_nvt_rs$$}]);$callback$$()})}else $callback$$()}},$e$$=>{if($e$$)return $next$$($e$$);delete $condition$$.has_discount;$condition$$.$and&&0==$condition$$.$and.length&&delete $condition$$.$and;$next$$(null,$condition$$)})}});$contr_router$$.route();$contr_router$$.validating=($user$$,$obj$$,$next$$)=>{$obj$$.ma_vt?$next$$(null,$obj$$):counter.getNextSequence($user$$.current_id_app,
|
|
26
|
+
"DMVT","ma_vt",function($error$$,$sequence$$){$error$$&&($sequence$$=0);$sequence$$=$sequence$$.toString();$obj$$.ma_vt="SP"+"00000000".substring(0,8-$sequence$$.length)+$sequence$$;$next$$(null,$obj$$)})};$contr_router$$.creating=async function($user$$,$obj$$,$next$$){$obj$$.combo&&0<$obj$$.combo.length&&($obj$$.tg_tk=!1);if($obj$$.ma_can&&await model.findOne({ma_can:$obj$$.ma_can,id_app:$user$$.current_id_app},{_id:1}))return $next$$("M\u00e3 c\u00e2n \u0111\u00e3 t\u1ed3n t\u1ea1i");if($obj$$.ma_vt2&&
|
|
27
|
+
await model.findOne({ma_vt2:$obj$$.ma_vt2,id_app:$user$$.current_id_app},{_id:1}))return $next$$("M\u00e3 v\u1eadt t\u01b0 2 \u0111\u00e3 t\u1ed3n t\u1ea1i");$next$$(null,$obj$$)};$contr_router$$.updating=async function($check_arise_user$$,$data$$,$obj$$,$next$$){$data$$.combo&&0<$data$$.combo.length&&($data$$.tg_tk=!1);if(($check_arise_user$$=await global.getModel("sokho").findOne({ma_vt:$obj$$.ma_vt,id_app:$obj$$.id_app},{_id:1}))&&$data$$.ma_vt&&$data$$.ma_vt!==$obj$$.ma_vt)return $next$$("V\u1eadt t\u01b0 n\u00e0y \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u n\u00ean kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i m\u00e3 v\u1eadt t\u01b0");
|
|
28
|
+
if($check_arise_user$$&&$data$$.ma_dvt&&$data$$.ma_dvt!==$obj$$.ma_dvt)return $next$$("V\u1eadt t\u01b0 n\u00e0y \u0111\u00e3 ph\u00e1t sinh d\u1eef li\u1ec7u n\u00ean kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i \u0111\u01a1n v\u1ecb t\u00ednh");$data$$.ma_vt=$data$$.ma_vt||$obj$$.ma_vt;if($data$$.ma_can&&$data$$.ma_can!==$obj$$.ma_can&&await model.findOne({ma_can:$data$$.ma_can,id_app:$obj$$.id_app},{_id:1}))return $next$$("M\u00e3 c\u00e2n \u0111\u00e3 t\u1ed3n t\u1ea1i");if($data$$.ma_vt2&&$data$$.ma_vt2!==
|
|
29
|
+
$obj$$.ma_vt2&&await model.findOne({ma_vt2:$data$$.ma_vt2,id_app:$obj$$.id_app},{_id:1}))return $next$$("M\u00e3 v\u1eadt t\u01b0 2 \u0111\u00e3 t\u1ed3n t\u1ea1i");$next$$(null,$data$$,$obj$$)};$contr_router$$.view=function($user$$,$items$$,$fn$$,$options$$){async.series([function($callback$$){$items$$.filter($i$$=>$i$$.ma_nvt).joinModel2(null,Dmnvt,[{akey:"ma_nvt",bkey:"_id",fields:[{name:"ten_nvt",value:"ten_nvt"}]}],function($rs$$){$callback$$(null,$rs$$)})},function($callback$$){$options$$&&
|
|
30
|
+
$options$$.req&&$options$$.req.query&&($options$$.req.query.wishlist||!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("wish"))?$items$$.filter($i$$=>$i$$.id_app).joinModel2(null,"ecomwishlist",[{where:$item$$=>({id_app:$item$$.id_app,user:$user$$.email,ma_vt:$item$$.ma_vt}),setFields:($item$$,$ref$$)=>{$item$$.wish=!0;$item$$.id_wish=$ref$$._id}}],function($rs$$){$callback$$(null,$rs$$)}):$callback$$()},function($callback$$){$items$$.filter($i$$=>$i$$.ma_ncc).joinModel2(null,
|
|
31
|
+
Dmkh,[{where:{id_app:"id_app",ma_ncc:"ma_kh"},fields:[{name:"ten_ncc",value:"ten_kh"}]}],function($rs$$){$callback$$(null,$rs$$)})},function($callback$$){Promise.all($items$$.filter($i$$=>$i$$.id_app&&$i$$.ma_dvt).map($item$$=>(async()=>{let $dvtqd$$=await Dmqddvt.findOne({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt});$dvtqd$$?$dvtqd$$.tu||$dvtqd$$.mau||($dvtqd$$.tu=1,$dvtqd$$.mau=1):$dvtqd$$=await Dmqddvt.create({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt,
|
|
32
|
+
ty_le_qd:1,tu:1,mau:1});return $dvtqd$$})())).then(()=>{$callback$$(null,$items$$)}).catch($e$$=>{console.error("Error create qddvt",$e$$.message);$callback$$(null,$items$$)})},function($callback$$){if($options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("freeship")))try{let $freeshipModel$$=global.getModel("ecompromotion_freeships"),$tu_ngay$$=moment().startOf("date").toDate(),$hieu_luc_tu$$={$lte:moment().endOf("date").toDate()},
|
|
33
|
+
$hieu_luc_den$$={$gte:$tu_ngay$$};Promise.all($items$$.filter($i$$=>$i$$.id_app).map($item$$=>(async()=>{let $freeship$$=await $freeshipModel$$.find({id_app:$item$$.id_app,hieu_luc_tu:$hieu_luc_tu$$,hieu_luc_den:$hieu_luc_den$$,shared:!0,trang_thai:"1",$or:[{"details.0":{$exists:!1}},{"details.ma_danh_muc":{$in:[$item$$.ma_danh_muc,null,void 0,""]},"details.ma_vt":{$in:[$item$$.ma_vt,"",null,void 0]}}]}).lean();$item$$.freeship=$freeship$$})())).then(()=>{$callback$$(null,$items$$)}).catch($e$$=>
|
|
34
|
+
{console.error($e$$);$callback$$(null,$items$$)})}catch($e$$){console.error($e$$),$callback$$(null,$items$$)}else $callback$$(null,$items$$)},function($callback$$){if($options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("flashsales")))try{let $flashsale$$=global.getModel("ecompromotion_flashsales"),$tu_ngay$$=moment().startOf("date").toDate(),$hieu_luc_tu$$={$lte:moment().endOf("date").toDate()},$hieu_luc_den$$={$gte:$tu_ngay$$};Promise.all($items$$.filter($i$$=>
|
|
35
|
+
$i$$.id_app).map($item$$=>(async()=>{let $fs$$=await $flashsale$$.find({id_app:$item$$.id_app,tu_ngay:$hieu_luc_tu$$,den_ngay:$hieu_luc_den$$,shared:!0,trang_thai:"1",$or:[{"details.0":{$exists:!1}},{"details.ma_danh_muc":{$in:[$item$$.ma_danh_muc,null,void 0,""]},"details.ma_vt":{$in:[$item$$.ma_vt,"",null,void 0]}}]}).lean();$item$$.flashsales=$fs$$})())).then(()=>{$callback$$(null,$items$$)}).catch($e$$=>{console.error($e$$);$callback$$(null,$items$$)})}catch($e$$){console.error($e$$),$callback$$(null,
|
|
36
|
+
$items$$)}else $callback$$(null,$items$$)},function($callback$$){$options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.show_properties||!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ds_thuoc_tinh"))?async.mapSeries($items$$,async $item$$=>{$item$$.ds_thuoc_tinh=await Dmtt.find({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,status:!0}).lean();return $item$$},()=>{$callback$$()}):$callback$$()},function($callback$$){$items$$.forEach(function($r$$){$r$$.picture?
|
|
37
|
+
$r$$.picture_thumb=$r$$.picture:$options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("picture"))&&($r$$.picture_thumb="/images/picture.png");$r$$.picture2&&($r$$.picture2_thumb=$r$$.picture2);$r$$.picture3&&($r$$.picture3_thumb=$r$$.picture3);$r$$.picture4&&($r$$.picture4_thumb=$r$$.picture4);$r$$.picture5&&($r$$.picture5_thumb=$r$$.picture5)});$items$$.filter($i$$=>$i$$.ma_dvt).joinModel2(null,Dmdvt,[{where:{id_app:"id_app",ma_dvt:"ma_dvt"},
|
|
38
|
+
fields:[{name:"ten_dvt",value:"ten_dvt"}]}],function($rs$$){$callback$$(null,$rs$$)})}],function(){let $result$$=$items$$.map($item$$=>{if($options$$&&$options$$.req&&$options$$.req.query&&$options$$.req.query.show_properties&&$item$$.ds_thuoc_tinh&&0<$item$$.ds_thuoc_tinh.length){let $_new_items$$=$item$$.ds_thuoc_tinh.map($tt$$=>{let $_new_item$$={...$item$$};$_new_item$$.ma_tt=$tt$$.ma_tt;$_new_item$$.ten_tt=$tt$$.ten_tt;$_new_item$$.loai_tt=$tt$$.loai_tt;$_new_item$$[`ma_tt${$tt$$.loai_tt}`]=
|
|
39
|
+
$tt$$.ma_tt;$_new_item$$.nh_tt=$tt$$.nh_tt;$_new_item$$.ma_dvt=$tt$$.ma_dvt||$_new_item$$.ma_dvt;$_new_item$$.ma_can=$tt$$.ma_can||$_new_item$$.ma_can;$_new_item$$.ma_vt2=$tt$$.ma_tt2||$_new_item$$.ma_vt2;$_new_item$$.gia_ban_le=$tt$$.gia_ban_le||$_new_item$$.gia_ban_le;delete $_new_item$$.ds_thuoc_tinh;return $_new_item$$}).sort(($a$$,$b$$)=>$a$$.gia_ban_le-$b$$.gia_ban_le);if($options$$.req.query.online){let $ds_thuoc_tinh$$=_.cloneDeep($_new_items$$);$_new_items$$.forEach($r$$=>{$r$$.ds_thuoc_tinh=
|
|
40
|
+
$ds_thuoc_tinh$$});return[$_new_items$$[0]]}return $_new_items$$}return[$item$$]}).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);async.mapSeries($result$$,($item$jscomp$0$$,$callback$jscomp$1$$)=>{$item$jscomp$0$$.ty_le_ck=0;$item$jscomp$0$$.tien_ck=0;$item$jscomp$0$$.id_app?async.series({giaban:$callback$$=>{$options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("gia_ban_le"))?TinhGiaBan($item$jscomp$0$$,$callback$$,$options$$,$user$$):
|
|
41
|
+
$callback$$()},gia_ban_thuoc_tinh:$callback$jscomp$0$$=>{$options$$&&$options$$.req&&$options$$.req.query&&(!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("gia_ban_le"))&&$item$jscomp$0$$.ds_thuoc_tinh&&0<$item$jscomp$0$$.ds_thuoc_tinh.length?async.mapSeries($item$jscomp$0$$.ds_thuoc_tinh,($item$$,$callback$$)=>{TinhGiaBan($item$$,$callback$$,$options$$,$user$$)},()=>{$callback$jscomp$0$$()}):$callback$jscomp$0$$()},ton_dvt:$callback$$=>{$options$$&&$options$$.req&&$options$$.req.query&&
|
|
42
|
+
($options$$.req.query.show_quantity_in_stock||!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ton_kho_online_hien_tai"))&&$item$jscomp$0$$.ton_kho_online_hien_tai&&$item$jscomp$0$$.ma_dvt?setImmediate(async()=>{let $dvtqd$$=await Dmqddvt.findOne({id_app:$item$jscomp$0$$.id_app,ma_vt:$item$jscomp$0$$.ma_vt,ma_dvt:$item$jscomp$0$$.ma_dvt});$dvtqd$$&&($item$jscomp$0$$.ton_kho_online_hien_tai_dvt=$dvtqd$$.tu&&$dvtqd$$.mau?utils.round($item$jscomp$0$$.ton_kho_online_hien_tai*$dvtqd$$.mau/
|
|
43
|
+
$dvtqd$$.tu,4):utils.round($item$jscomp$0$$.ton_kho_online_hien_tai/($dvtqd$$.ty_le_qd||1),4));$callback$$()}):$callback$$()},ton_tt:$callback$jscomp$0$$=>{$options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.show_quantity_in_stock||!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ton_kho_online_hien_tai"))&&$item$jscomp$0$$.ds_thuoc_tinh?setImmediate(async()=>{let $ds_kho_online$$=(await global.getModel("dmkho").find({id_app:$item$jscomp$0$$.id_app,la_kho_online:!0},
|
|
44
|
+
{ma_kho:1}).lean()).map($k$$=>$k$$.ma_kho);async.mapSeries($item$jscomp$0$$.ds_thuoc_tinh.filter($item$$=>$item$$.ma_vt&&$item$$.ton_kho_online_hien_tai),($item$$,$callback$$)=>{setImmediate(async()=>{if($item$$.kg_kiem_tra_ton_kho_tt){if($item$$.ma_dvt){var $condition$jscomp$4_dvtqd$$=await Dmqddvt.findOne({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt}).lean();$condition$jscomp$4_dvtqd$$&&($item$$.ton_kho_online_hien_tai_dvt=$condition$jscomp$4_dvtqd$$.tu&&$condition$jscomp$4_dvtqd$$.mau?
|
|
45
|
+
utils.round($item$$.ton_kho_online_hien_tai*$condition$jscomp$4_dvtqd$$.mau/$condition$jscomp$4_dvtqd$$.tu,4):utils.round($item$$.ton_kho_online_hien_tai/($condition$jscomp$4_dvtqd$$.ty_le_qd||1),4))}$callback$$()}else $condition$jscomp$4_dvtqd$$={ma_vt:$item$$.ma_vt,id_app:$item$$.id_app},$item$$.ma_tt&&($condition$jscomp$4_dvtqd$$[`ma_tt${$item$$.loai_tt||1}`]=$item$$.ma_tt),$condition$jscomp$4_dvtqd$$.groupBy=["ma_vt"],$condition$jscomp$4_dvtqd$$.ngay=new Date,$condition$jscomp$4_dvtqd$$.ma_kho=
|
|
46
|
+
{$in:$ds_kho_online$$},ckvt($condition$jscomp$4_dvtqd$$,async function($dvtqd$jscomp$3_e$$,$rs$$){$item$$.ton_kho_online_hien_tai_dvt=$rs$$.map($r$$=>$r$$.ton00||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$$.ma_dvt&&($dvtqd$jscomp$3_e$$=await Dmqddvt.findOne({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt}).lean())&&($item$$.ton_kho_online_hien_tai_dvt=$dvtqd$jscomp$3_e$$.tu&&$dvtqd$jscomp$3_e$$.mau?utils.round($item$$.ton_kho_online_hien_tai_dvt*$dvtqd$jscomp$3_e$$.mau/$dvtqd$jscomp$3_e$$.tu,
|
|
47
|
+
4):utils.round($item$$.ton_kho_online_hien_tai_dvt/($dvtqd$jscomp$3_e$$.ty_le_qd||1),4));$callback$$()})})},()=>{$callback$jscomp$0$$()})}):$callback$jscomp$0$$()},ton:$callback$$=>{if($options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.show_quantity_in_stock||!$options$$.req.query.fields||0<=$options$$.req.query.fields.indexOf("ton00"))){let $condition$$={ma_vt:$item$jscomp$0$$.ma_vt,id_app:$item$jscomp$0$$.id_app};$options$$.req.query.ma_kho&&($condition$$.ma_kho=$options$$.req.query.ma_kho);
|
|
48
|
+
$options$$.req.query.ma_lo&&($condition$$.ma_lo=$options$$.req.query.ma_lo);$options$$.req.query.ma_dvcs&&($condition$$.ma_dvcs=$options$$.req.query.ma_dvcs);$condition$$.groupBy=["id_app","ma_vt"];$condition$$.ngay=new Date;setImmediate(async()=>{ckvt($condition$$,async function($dvtqd$jscomp$4_e$$,$rs$$){$item$jscomp$0$$.ton00=$rs$$.map($r$$=>$r$$.ton00||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$jscomp$0$$.ma_dvt&&($dvtqd$jscomp$4_e$$=await Dmqddvt.findOne({id_app:$item$jscomp$0$$.id_app,ma_vt:$item$jscomp$0$$.ma_vt,
|
|
49
|
+
ma_dvt:$item$jscomp$0$$.ma_dvt}))&&($item$jscomp$0$$.ton00=$dvtqd$jscomp$4_e$$.tu&&$dvtqd$jscomp$4_e$$.mau?utils.round($item$jscomp$0$$.ton00*$dvtqd$jscomp$4_e$$.mau/$dvtqd$jscomp$4_e$$.tu,4):utils.round($item$jscomp$0$$.ton00/($dvtqd$jscomp$4_e$$.ty_le_qd||1),0));$callback$$()})})}else $callback$$()}},()=>{$callback$jscomp$1$$()}):$callback$jscomp$1$$(null)},()=>{$fn$$(null,$result$$)})})}};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
'use strict';const model=global.getModel("ecomcategories"),controller=require("../../controllers/controller"),getSysorder=function($item$$,$callback$$){let $sysorder$$=$item$$._id.toString();$item$$.danh_muc_me?model.findOne({ma_danh_muc:$item$$.danh_muc_me,id_app:$item$$.id_app}).lean().exec(function($e$$,$item_me$$){$item_me$$?getSysorder($item_me$$,function($rs$$){$sysorder$$=$rs$$+"---"+$sysorder$$;$callback$$($sysorder$$)}):$callback$$($sysorder$$)}):$callback$$($sysorder$$)},group=function($contr_router$$){$contr_router$$=
|
|
2
|
+
new controller($contr_router$$,model,"ecomcategories",{sort:{sysorder:1},unique:["ma_danh_muc"]});$contr_router$$.route();$contr_router$$.deleting=function($user$$,$obj$$,$next$$){if(0===$obj$$.loai_nh)return $next$$(Error("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p x\u00f3a nh\u00f3m m\u1eb9"));$next$$(null,$obj$$)};$contr_router$$.created=function($user$$,$obj$$,$next$$){getSysorder($obj$$,function($rs$$){$obj$$.sysorder=$rs$$;$obj$$.bac=$rs$$.split("---").length;model.findOneAndUpdate({_id:$obj$$._id},
|
|
3
|
+
{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:1}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.updated=function($user$$,$obj$$,$next$$){getSysorder($obj$$,async function($loai_nh_rs$$){$obj$$.sysorder=$loai_nh_rs$$;$obj$$.bac=$loai_nh_rs$$.split("---").length;$loai_nh_rs$$=1;await model.findOne({danh_muc_me:$obj$$.ma_danh_muc,id_app:$obj$$.id_app})&&($loai_nh_rs$$=0);$obj$$.loai_nh=$loai_nh_rs$$;model.findOneAndUpdate({_id:$obj$$._id},{$set:{bac:$obj$$.bac,
|
|
4
|
+
sysorder:$obj$$.sysorder,loai_nh:$loai_nh_rs$$}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.on("saved",function($obj$jscomp$0$$){const $danh_muc_me$$=$obj$jscomp$0$$.danh_muc_me;$danh_muc_me$$&&model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,ma_danh_muc:$danh_muc_me$$},{$set:{loai_nh:0}},function($error$$,$obj$$){$error$$?console.error($error$$):$obj$$?console.log("updated "+$obj$$.ma_danh_muc):console.log("Not found mother account:"+$danh_muc_me$$)})});
|
|
5
|
+
$contr_router$$.on("deleted",function($obj$jscomp$0$$){$obj$jscomp$0$$.danh_muc_me&&model.findOne({danh_muc_me:$obj$jscomp$0$$.danh_muc_me,id_app:$obj$jscomp$0$$.id_app},function($error$jscomp$0$$,$acc$$){$error$jscomp$0$$||$acc$$||model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,ma_danh_muc:$obj$jscomp$0$$.danh_muc_me},{$set:{loai_nh:1}},function($error$$,$obj$$){$error$$||$obj$$&&console.log("updated "+$obj$$.ma_danh_muc)})})})};module.exports=group;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
'use strict';const model=global.getModel("ecomcategories_cty"),controller=require("../../controllers/controller"),getSysorder=function($item$$,$callback$$){let $sysorder$$=$item$$._id.toString();$item$$.danh_muc_me?model.findOne({ma_danh_muc:$item$$.danh_muc_me,id_app:$item$$.id_app}).lean().exec(function($e$$,$item_me$$){$item_me$$?getSysorder($item_me$$,function($rs$$){$sysorder$$=$rs$$+"---"+$sysorder$$;$callback$$($sysorder$$)}):$callback$$($sysorder$$)}):$callback$$($sysorder$$)},group=function($contr_router$$){$contr_router$$=
|
|
2
|
+
new controller($contr_router$$,model,"ecomcategories_cty",{sort:{sysorder:1},unique:["ma_danh_muc"]});$contr_router$$.route();$contr_router$$.deleting=function($user$$,$obj$$,$next$$){if(0===$obj$$.loai_nh)return $next$$(Error("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p x\u00f3a nh\u00f3m m\u1eb9"));$next$$(null,$obj$$)};$contr_router$$.created=function($user$$,$obj$$,$next$$){getSysorder($obj$$,function($rs$$){$obj$$.sysorder=$rs$$;$obj$$.bac=$rs$$.split("---").length;model.findOneAndUpdate({_id:$obj$$._id},
|
|
3
|
+
{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:1}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.updated=function($user$$,$obj$$,$next$$){getSysorder($obj$$,async function($loai_nh_rs$$){$obj$$.sysorder=$loai_nh_rs$$;$obj$$.bac=$loai_nh_rs$$.split("---").length;$loai_nh_rs$$=1;await model.findOne({danh_muc_me:$obj$$.ma_danh_muc,id_app:$obj$$.id_app})&&($loai_nh_rs$$=0);$obj$$.loai_nh=$loai_nh_rs$$;model.findOneAndUpdate({_id:$obj$$._id},{$set:{bac:$obj$$.bac,
|
|
4
|
+
sysorder:$obj$$.sysorder,loai_nh:$loai_nh_rs$$}},function($e$$){$e$$&&console.log($e$$)});$next$$(null,$obj$$)})};$contr_router$$.on("saved",function($obj$jscomp$0$$){const $danh_muc_me$$=$obj$jscomp$0$$.danh_muc_me;$danh_muc_me$$&&model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,ma_danh_muc:$danh_muc_me$$},{$set:{loai_nh:0}},function($error$$,$obj$$){$error$$?console.error($error$$):$obj$$?console.log("updated "+$obj$$.ma_danh_muc):console.log("Not found mother account:"+$danh_muc_me$$)})});
|
|
5
|
+
$contr_router$$.on("deleted",function($obj$jscomp$0$$){$obj$jscomp$0$$.danh_muc_me&&model.findOne({danh_muc_me:$obj$jscomp$0$$.danh_muc_me,id_app:$obj$jscomp$0$$.id_app},function($error$jscomp$0$$,$acc$$){$error$jscomp$0$$||$acc$$||model.findOneAndUpdate({id_app:$obj$jscomp$0$$.id_app,ma_danh_muc:$obj$jscomp$0$$.danh_muc_me},{$set:{loai_nh:1}},function($error$$,$obj$$){$error$$||$obj$$&&console.log("updated "+$obj$$.ma_danh_muc)})})})};module.exports=group;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use strict';const model=global.getModel("fbconversation"),controller=require("../../controllers/controller"),permission=require("../../libs/permission"),fbconversation=function($router$$){(new controller($router$$,model,"fbconversation",{sort:{updated_time:-1},unique:["page_id","id"],onCreating:($user$$,$data$$,$callback$$)=>{permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$||!$admin$$)return $callback$$($e$$||"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y");
|
|
2
|
+
$callback$$(null,$data$$)})},onUpdating:($user$$,$data$$,$obj$$,$callback$$)=>{permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$||!$admin$$)return $callback$$($e$$||"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y");$callback$$(null,$data$$,$obj$$)})},onView:async($user$$,$items$$,$next$$)=>{await $items$$.asyncJoinModel2($user$$.current_id_app,global.getModel("fbpage"),{where:"page_id",fields:"page_title"});$next$$(null,$items$$)}})).route()};
|
|
3
|
+
module.exports=fbconversation;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use strict';const model=global.getModel("fbmessage"),controller=require("../../controllers/controller"),permission=require("../../libs/permission"),fbmessage=function($router$$){(new controller($router$$,model,"fbmessage",{sort:{created_time:-1},unique:["page_id","conv_id","id"],onCreating:($user$$,$data$$,$callback$$)=>{permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$||!$admin$$)return $callback$$($e$$||"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y");
|
|
2
|
+
$callback$$(null,$data$$)})},onUpdating:($user$$,$data$$,$obj$$,$callback$$)=>{permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$||!$admin$$)return $callback$$($e$$||"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y");$callback$$(null,$data$$,$obj$$)})},onView:async($user$$,$items$$,$next$$)=>{await $items$$.asyncJoinModel2($user$$.current_id_app,global.getModel("fbpage"),{where:"page_id",fields:"page_title"});$next$$(null,$items$$)}})).route()};
|
|
3
|
+
module.exports=fbmessage;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';const model=global.getModel("fbpage"),controller=require("../../controllers/controller"),permission=require("../../libs/permission"),axios=require("axios"),async=require("async"),fbpage=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"fbpage",{sort:{date_created:-1},unique:["page_id"],onCreating:($user$$,$data$$,$callback$$)=>{permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$||!$admin$$)return $callback$$($e$$||"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y");
|
|
2
|
+
$callback$$(null,$data$$)})},onUpdating:($user$$,$data$$,$obj$$,$callback$$)=>{permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$||!$admin$$)return $callback$$($e$$||"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y");$callback$$(null,$data$$,$obj$$)})},onView:($user$$,$items$$,$callback$$)=>{permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$)return $callback$$($e$$);$admin$$||$items$$.forEach($item$$=>
|
|
3
|
+
{delete $item$$.page_access_token});$callback$$(null,$items$$)})}});$contr_router$$.route();$contr_router$$.router.route($contr_router$$.route_name+"/message/webhook").get(async($challenge_req$$,$res$$)=>{var $appInfo_id_app$$=$challenge_req$$.params.id_app;$appInfo_id_app$$=await global.getModel("app").findOne({_id:$appInfo_id_app$$});if(!$appInfo_id_app$$)return $res$$.status(403).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y th\u00f4ng tin trang n\u00e0y"});let $mode$$=$challenge_req$$.query["hub.mode"],
|
|
4
|
+
$token$$=$challenge_req$$.query["hub.verify_token"];$challenge_req$$=$challenge_req$$.query["hub.challenge"];$mode$$&&$token$$?"subscribe"===$mode$$&&$token$$===$appInfo_id_app$$.options.facebook_webhook_verify_token?(console.log("WEBHOOK_VERIFIED"),$res$$.status(200).send($challenge_req$$)):$res$$.status(403).send({error:"Forbidden"}):$res$$.status(403).send({error:"Forbidden"})});$contr_router$$.router.route($contr_router$$.route_name+"/message/webhook").post(async($req$$,$res$$)=>{let $body$$=
|
|
5
|
+
$req$$.body;console.log("\ud83d\udfea Received webhook:");console.dir($body$$,{depth:null});if("page"==$body$$.object)try{const $id_app$$=$req$$.params.id_app,$page_id$$=$body$$.entry[0].id,$pageInfo$$=await model.findOne({id_app:$id_app$$,page_id:$page_id$$}).lean();if(!$pageInfo$$)return $res$$.status(404).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y th\u00f4ng tin trang n\u00e0y"});if($body$$.entry[0].messaging&&0<$body$$.entry[0].messaging.length&&$body$$.entry[0].messaging[0].sender&&$body$$.entry[0].messaging[0].sender.id){let $user_id$$=
|
|
6
|
+
$body$$.entry[0].messaging[0].sender.id,$mid$$=($body$$.entry[0].messaging[0].message||{}).mid;if($mid$$){let $conv$$=await global.getModel("fbconversation").getConvByUserId($id_app$$,$page_id$$,$pageInfo$$.page_access_token,$user_id$$);$conv$$&&await global.getModel("fbconversation").getMessage($id_app$$,$page_id$$,$conv$$.id,$pageInfo$$.page_access_token,$mid$$)}}}catch($e$$){console.error("Kh\u00f4ng th\u1ec3 x\u1eed l\u00fd tin nh\u1eafn t\u1eeb facebook",$e$$)}$res$$.status(200).send("EVENT_RECEIVED")});
|
|
7
|
+
$contr_router$$.router.route($contr_router$$.route_name+"/conversations/:page_id").get(async($req$$,$res$$)=>{const $page_id$$=$req$$.params.page_id,$id_app$$=$req$$.params.id_app,$pageInfo$$=await model.findOne({id_app:$id_app$$,page_id:$page_id$$});if(!$pageInfo$$)return $res$$.status(400).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y th\u00f4ng tin trang n\u00e0y"});let $rs$$=[],$next_page$$;async.forever($next$$=>{setImmediate(()=>{$next_page$$&&console.log("sync next page",$next_page$$);axios.request({method:"get",
|
|
8
|
+
maxBodyLength:Infinity,url:$next_page$$?$next_page$$:`https://graph.facebook.com/${$page_id$$}/conversations/?platform=messenger&access_token=${$pageInfo$$.page_access_token}`,headers:{}}).then($response$$=>{const $convs$$=($response$$.data||{}).data||[];$next_page$$=(($response$$.data||{}).paging||{}).next;async.map($convs$$,async $c$$=>{setImmediate(async()=>{if(!await global.getModel("fbconversation").findOne({id_app:$id_app$$,page_id:$page_id$$,id:$c$$.id},{id:1})){$c$$.page_id=$page_id$$;$c$$.id_app=
|
|
9
|
+
$id_app$$;$c$$.user_created=$req$$.user.email;try{await global.getModel("fbconversation").create($c$$)}catch($e$$){console.error("Can't save conversation",$e$$,$c$$);return}}try{await global.getModel("fbconversation").sync($id_app$$,$page_id$$,$c$$.id)}catch($e$$){console.error("Can't sync conversation",$e$$,$c$$)}})},$error$$=>{if($error$$)return $next$$($error$$);$rs$$=[...$rs$$,...$convs$$];$next$$($next_page$$?void 0:"end")})}).catch($error$$=>{$next$$($error$$)})})},$error$$=>{if("end"!=$error$$)return $res$$.status(400).send({error:$error$$});
|
|
10
|
+
$res$$.send($rs$$)})});$contr_router$$.router.route($contr_router$$.route_name+"/messages/:page_id/:conv_id").get(async($conv_id_req$$,$res$$)=>{const $page_id$$=$conv_id_req$$.params.page_id,$id_app$$=$conv_id_req$$.params.id_app;$conv_id_req$$=$conv_id_req$$.params.conv_id;try{const $rs$$=await global.getModel("fbconversation").sync($id_app$$,$page_id$$,$conv_id_req$$);$res$$.send($rs$$)}catch($e$$){$res$$.status(400).send($e$$)}})};module.exports=fbpage;
|