flexbiz-server 12.0.26 → 12.1.0
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 -1
- package/server/app.js +17 -15
- package/server/auths/local.js +14 -14
- package/server/cluster.js +15 -13
- package/server/controllers/controller.js +120 -117
- package/server/global.js +1 -1
- package/server/libs/blockchainconnect.js +8 -8
- package/server/libs/ckvt.js +1 -1
- package/server/libs/ckvtcapphat.js +1 -1
- package/server/libs/ckvttt.js +2 -2
- package/server/libs/permission.js +6 -4
- package/server/libs/phanbokh.js +1 -1
- package/server/libs/prototypes.js +1 -1
- package/server/libs/thnxt.js +1 -1
- package/server/libs/thnxttt.js +1 -1
- package/server/libs/tinhGtCapnhatPNK.js +1 -1
- package/server/libs/tinhGtThcppstk.js +3 -3
- package/server/libs/tinhgiatb.js +19 -18
- package/server/libs/tinhgiatb1vt.js +2 -2
- package/server/libs/tinhkhauhao1ts.js +1 -1
- package/server/libs/utils.js +1 -1
- package/server/libs/vsocai.js +4 -4
- package/server/models/assinvestment.js +2 -2
- package/server/models/cart.js +2 -2
- package/server/models/exportexceltemplate.js +1 -1
- package/server/models/importexceltemplate.js +1 -1
- package/server/models/right.js +2 -2
- package/server/models/socai.js +1 -1
- package/server/models/socaitmp.js +1 -1
- package/server/models/sokho.js +2 -2
- package/server/models/sokhocapphat.js +2 -2
- package/server/models/sokhokhongton.js +1 -1
- package/server/models/sokhott.js +2 -2
- package/server/models/tokens.js +2 -2
- package/server/models/transaction.js +5 -4
- package/server/models/user.js +2 -2
- package/server/models/vsocai.js +1 -1
- package/server/modules/lists/ls-assinvestment.js +6 -6
- package/server/modules/lists/ls-asskey.js +3 -3
- package/server/modules/lists/ls-asssell.js +2 -2
- package/server/modules/lists/ls-cart.js +10 -10
- package/server/modules/lists/ls-log.js +2 -2
- package/server/modules/lists/ls-strategickpi.js +1 -1
- package/server/modules/lists/ls-task.js +2 -2
- package/server/modules/public/dmvt.js +1 -1
- package/server/modules/reports/calc-tinhluong.js +11 -11
- package/server/modules/reports/rp-ckvttheotg.js +1 -1
- package/server/modules/reports/rp-congviectheobp.js +7 -7
- package/server/modules/reports/rp-congviectheodt.js +7 -6
- package/server/modules/reports/rp-congviectheokh.js +7 -6
- package/server/modules/reports/rp-congviectheonv.js +5 -5
- package/server/modules/reports/rp-getbtpb.js +3 -3
- package/server/modules/reports/rp-getdk4pkc.js +1 -1
- package/server/modules/reports/rp-getluong.js +1 -1
- package/server/modules/reports/rp-getluongchuyen.js +3 -3
- package/server/modules/reports/rp-getvc2xhd.js +10 -6
- package/server/modules/reports/rp-hoadonbanhangtheohantt.js +1 -1
- package/server/modules/reports/rp-hoadonmuahangtheohantt.js +1 -1
- package/server/modules/reports/rp-ptbitralai.js +1 -1
- package/server/modules/reports/rp-ptcttct.js +2 -2
- package/server/modules/reports/rp-sotaisan.js +1 -1
- package/server/modules/systems/sys-app.js +1 -1
- package/server/modules/systems/sys-moduleinfo.js +1 -1
- package/server/modules/systems/sys-user.js +6 -5
- package/server/modules/vouchers/vo-bc1.js +5 -5
- package/server/modules/vouchers/vo-bc5.js +1 -1
- package/server/modules/vouchers/vo-bn5.js +1 -1
- package/server/modules/vouchers/vo-dh2.js +2 -2
- package/server/modules/vouchers/vo-hd7.js +6 -6
- package/server/modules/vouchers/vo-pbl.js +10 -10
- package/server/modules/vouchers/vo-pc5.js +1 -1
- package/server/modules/vouchers/vo-pkt.js +2 -2
- package/server/modules/vouchers/vo-pn1.js +2 -2
- package/server/modules/vouchers/vo-pn2.js +2 -2
- package/server/modules/vouchers/vo-pn6.js +4 -4
- package/server/modules/vouchers/vo-pt1.js +2 -2
- package/server/modules/vouchers/vo-pt5.js +1 -1
- package/server/modules/vouchers/vo-so1.js +10 -10
- package/server/modules/vouchers/vo-so2.js +3 -3
- package/server/modules/vouchers/vo-so3.js +3 -3
- package/server/modules/vouchers/vo-so5.js +2 -2
- package/server/modules/vouchers/vo-xhd.js +1 -1
- package/server/route.js +20 -19
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "flexbiz-server",
|
|
3
3
|
"main": "./server/app.js",
|
|
4
4
|
"description": "Flexible Server",
|
|
5
|
-
"version": "12.0
|
|
5
|
+
"version": "12.1.0",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Van Truong Pham",
|
|
8
8
|
"email": "invncur@gmail.com"
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"cheerio": "^1.0.0-rc.10",
|
|
26
26
|
"compression": "^1.7.4",
|
|
27
27
|
"compression-webpack-plugin": "^3.0.0",
|
|
28
|
+
"cookie-parser": "^1.4.6",
|
|
28
29
|
"cors": "^2.8.5",
|
|
29
30
|
"crypto-js": "^3.1.9-1",
|
|
30
31
|
"docx-templates": "^4.8.2",
|
package/server/app.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
'use strict';require("events").EventEmitter.defaultMaxListeners=1E4;
|
|
2
|
-
const express=require("express"),bodyParser=require("body-parser"),
|
|
3
|
-
|
|
4
|
-
$module$$});require("moment-timezone").tz.setDefault($configs$$.timezone||"Asia/Ho_Chi_Minh");$app$$||($app$$=express());$app$$.
|
|
5
|
-
require("
|
|
6
|
-
|
|
7
|
-
$configs$$.paths
|
|
8
|
-
{
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
$
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
()=>{
|
|
2
|
+
const express=require("express"),bodyParser=require("body-parser"),passport=require("passport"),https=require("https"),http=require("http"),fs=require("fs"),cors=require("cors"),async=require("async"),_global=require("./global"),User=global.getModel("user"),defaultConfigs=require("./defaultConfigs"),crypto=require("crypto"),mainServer=function($app$$,$options$$={cluster:!0,port:443,useSocket:!0},$callback$jscomp$1$$=null){const $configs$$=global.configs={...defaultConfigs,...$options$$.configs};$configs$$.admins||
|
|
3
|
+
($configs$$.admins=$configs$$.adminUsers.map($u$$=>$u$$.email));$configs$$.supportUsers||($configs$$.supportUsers=[...$configs$$.admins]);$configs$$.public_token||($configs$$.public_token="flex.public.token");global.port=$options$$.port||$configs$$.PORT||443;var $compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$=require($configs$$.paths.menu||"./menu").getModules();global.modulesInMenu={};Object.values($compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$).forEach(function($module$$){global.modulesInMenu[$module$$.name]=
|
|
4
|
+
$module$$});require("moment-timezone").tz.setDefault($configs$$.timezone||"Asia/Ho_Chi_Minh");$app$$||($app$$=express());$app$$.set("trust proxy",1);$compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$=require("express-session");$app$$.use($compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$({secret:"QV098PVT123456HLBN",resave:!1,saveUninitialized:!0,cookie:{secure:!1}}));$compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$=
|
|
5
|
+
require("cookie-parser");$app$$.use($compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$());$app$$.use(function($req_uid$$,$res$$,$next$$){($req_uid$$=$req_uid$$.cookies.uid)||($req_uid$$="uid:"+crypto.randomBytes(20).toString("hex"));$res$$.cookie("uid",$req_uid$$,{expires:new Date(Date.now()+864E5)});$next$$()});$compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$=require("compression");$app$$.use($compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$());
|
|
6
|
+
$compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$=$configs$$.paths.uploads||__dirname+"/uploads";$compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$=require("multer")({dest:$compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$,limits:{fileSize:$configs$$.limitFileSize||1048576}});$app$$.use($compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$);$app$$.use(cors({credentials:!0,exposedHeaders:["set-cookie"],
|
|
7
|
+
origin:($origin$$,$callback$$)=>{$callback$$(null,!0)}}));$configs$$.paths||($configs$$.paths={});$app$$.use("/",express.static($configs$$.paths.public||__dirname+"/public"));$app$$.use("/admin",express.static($configs$$.paths.admin||__dirname+"/admin"));$app$$.use("/templates",express.static($configs$$.paths.templates||__dirname+"/templates"));$app$$.use("/images",express.static($configs$$.paths.images||__dirname+"/images"));$app$$.use(bodyParser.json({limit:$configs$$.limitRequestSize||"1mb"}));
|
|
8
|
+
$app$$.use(bodyParser.urlencoded({limit:$configs$$.limitRequestSize||"1mb",extended:!0}));$app$$.use(passport.initialize());$compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$=require("morgan");var $accessLogStream_rfs$$=require("rotating-file-stream");const $logDirectory$$=$configs$$.paths.log||__dirname+"/log";fs.existsSync($logDirectory$$)||fs.mkdirSync($logDirectory$$);$accessLogStream_rfs$$=$accessLogStream_rfs$$("access.log",{interval:"1d",path:$logDirectory$$});$app$$.use($compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$("combined",
|
|
9
|
+
{stream:$accessLogStream_rfs$$,skip:function($req$$,$res$$){return 400>$res$$.statusCode}}));$app$$.use(function($err$$,$req$$,$res$$,$next$$){console.error($err$$.stack);$res$$.status(500).send("Server Error!")});global.mongoose.connect($configs$$.database.url,{useNewUrlParser:!0}).then(()=>{function $initSysData$$(){console.log("creating system data...");const $files$$=fs.readdirSync(__dirname+"/data/sys");async.map($files$$,function($file$$,$callback$jscomp$0$$){setImmediate(()=>{if(".js"==$file$$.substr(-3)){const $data$$=
|
|
10
|
+
JSON.parse(JSON.stringify(require("./data/sys/"+$file$$).data)),$model$$=global.getModel(""+$file$$);console.log("creating system data...",$file$$);$model$$.deleteMany({},$e$$=>{console.error($e$$);async.map($data$$,function($r$$,$callback$$){delete $r$$._id;delete $r$$.__v;delete $r$$.collection_name;delete $r$$.pkey;$model$$.create($r$$,function($error$$){if($error$$)return $callback$$($error$$);$callback$$()})},function($error$$,$rs$$){$callback$jscomp$0$$($error$$,$rs$$)})})}else $callback$jscomp$0$$()})},
|
|
11
|
+
function($error$$){if($error$$)return console.log($error$$);console.log("created system data")})}console.log("Connected to Database");var $Agenda_Mailmanagement_redis$$=require("redis");global.clientRedis=$Agenda_Mailmanagement_redis$$.createClient();global.clientRedis.on("connect",function(){console.log("redis connected")});if(!0!==$options$$.lite){$Agenda_Mailmanagement_redis$$=require("./libs/mailmanagement");global.mailmanagement=new $Agenda_Mailmanagement_redis$$;global.mailmanagement.start();
|
|
12
|
+
$Agenda_Mailmanagement_redis$$=require("agenda");global.agenda=new $Agenda_Mailmanagement_redis$$({db:{address:$configs$$.database.url}});require("./libs/schedule").define();global.agenda.on("ready",async()=>{console.log("agenda is ready")});const $campaign$$=global.getModel("campaign");$campaign$$.find({status:!0}).lean().exec(($e$$,$rs$$)=>{$rs$$&&$rs$$.forEach($cam$$=>{$campaign$$.listenerEvents($cam$$,()=>{})})});$configs$$.adminUsers.forEach(function($adminUser$$){User.findOne({email:$adminUser$$.email},
|
|
13
|
+
function($error$jscomp$4_u$$,$rs$$){if($error$jscomp$4_u$$)return console.error($error$jscomp$4_u$$);$rs$$||($adminUser$$.local={name:$adminUser$$.name,email:$adminUser$$.email,active:!0},$error$jscomp$4_u$$=new User($adminUser$$),$error$jscomp$4_u$$.local.password=$error$jscomp$4_u$$.generateHash($adminUser$$.defaultPassword),$error$jscomp$4_u$$.save(function($error$$,$user$$){if($error$$)return console.error($error$$);$user$$&&console.log("da tao thanh cong user "+$user$$.email)}))})});$configs$$.initSysData?
|
|
14
|
+
$initSysData$$():global.getModel("tableinfo").findOne({},($e$$,$rs$$)=>{$rs$$||$initSysData$$()});require("./route")($app$$,()=>{if(!1!==$options$$.createServer){var $StaticPool_StaticPool$$=require("sticky-session");if($configs$$.use_ssl){var $server_sslConfig$$=require("./sslConfig");$server_sslConfig$$=https.createServer($server_sslConfig$$($options$$.sslDir),$app$$)}else $server_sslConfig$$=http.createServer($app$$);$server_sslConfig$$.timeout=6E5;!1!==$options$$.useSocket&&User.initSocket($server_sslConfig$$);
|
|
15
|
+
if(!1!==$options$$.cluster){if(!$StaticPool_StaticPool$$.listen($server_sslConfig$$,global.port))$server_sslConfig$$.once("listening",function(){console.log("server started on",global.port)});$StaticPool_StaticPool$$=require("cluster");$StaticPool_StaticPool$$.on("exit",function($worker$$,$code$$,$signal$$){console.error("worker "+$worker$$.process.pid+" died",$code$$,$signal$$)});$StaticPool_StaticPool$$.on("online",function($worker$$){console.info("worker "+$worker$$.process.pid+" is online")})}else $server_sslConfig$$.listen(global.port,
|
|
16
|
+
()=>{console.log("server start at "+global.port+" port")})}$options$$.start_import_data_pool&&($StaticPool_StaticPool$$=require("./libs/WorkerStaticPool"),global.importDataMainPool=new $StaticPool_StaticPool$$(__dirname+"/workers/inputWorker.js"),global.importDataMainPool.exec({load:!0,configs:JSON.parse(JSON.stringify($configs$$))},()=>{console.log("load import data pool")}));$options$$.start_report_pool&&($StaticPool_StaticPool$$=require("./libs/WorkerStaticPool"),global.reportMainPool=new $StaticPool_StaticPool$$(__dirname+
|
|
17
|
+
"/workers/reportWorker.js"),global.reportMainPool.exec({load:!0,configs:JSON.parse(JSON.stringify($configs$$))},()=>{console.log("load report pool")}));$callback$jscomp$1$$&&$callback$jscomp$1$$()})}else require("./route")($app$$,()=>{$callback$jscomp$1$$&&$callback$jscomp$1$$()},!0)}).catch($err$$=>{console.log("Not Connected to Database ERROR! ",$err$$)});return $app$$};
|
|
18
|
+
process.on("uncaughtException",function($err$jscomp$2_error$$){console.error((new Date).toUTCString()+" uncaughtException:",$err$jscomp$2_error$$.message);console.error($err$jscomp$2_error$$.stack);$err$jscomp$2_error$$=`
|
|
17
19
|
Error: ${$err$jscomp$2_error$$.message}
|
|
18
20
|
Stack: ${$err$jscomp$2_error$$.stack}
|
|
19
21
|
`;try{const $logDirectory$$=__dirname+"/log";fs.existsSync($logDirectory$$)||fs.mkdirSync($logDirectory$$);fs.writeFile(`${$logDirectory$$}/error-${(new Date).getTime()}.txt`,$err$jscomp$2_error$$,()=>{console.log("wrote log error")})}catch($e$$){console.log($e$$)}process.exit(1)});module.exports=mainServer;
|
package/server/auths/local.js
CHANGED
|
@@ -13,21 +13,21 @@ JSON.parse($body$$);"100"==$info$$.CodeResult?saveOTP($Phone$$,$otp_code$$,($e$$
|
|
|
13
13
|
code:4001});const $otp_code$$=$req$$.params.otp,$otp$$=await OTP.findById($id$$);if(!$otp$$||$otp$$.otp!=$otp_code$$||$otp$$.verified||$otp$$.expire_time.getTime()<(new Date).getTime())return $res$$.status(400).send({error:"M\u00e3 x\u00e1c th\u1ef1c n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i ho\u1eb7c \u0111\u00e3 h\u1ebft hi\u1ec7u l\u1ef1c",code:4001});await OTP.findOneAndUpdate({_id:$id$$},{verified:!0});let $is_new$$=!1;const $username$$=$otp$$.phone;let $user$$=await User.findOne({email:$username$$});
|
|
14
14
|
if(!$user$$){$user$$=new User;$user$$.email=$username$$;$user$$.local={active:!0};$user$$.local.email=$otp$$.email;$user$$.local.phone=$otp$$.phone;$user$$.local.name=$otp$$.phone;$user$$.name=$otp$$.phone;$is_new$$=!0;try{await $user$$.save()}catch($e$$){return console.log("error verify otp, create user",$e$$),$res$$.status(500).send($e$$)}}else if(!$user$$.local||!$user$$.local.active){$user$$.local=$user$$.local||{};$user$$.local.active=!0;try{await $user$$.save()}catch($e$$){return console.log("error verify otp, create user",
|
|
15
15
|
$e$$),$res$$.status(500).send($e$$)}}if($req$$.query.id_app&&$req$$.query.group_id){const $id_app$$=$req$$.query.id_app,$group_id$$=$req$$.query.group_id,$app$$=await App.findById($id_app$$);$app$$&&Participant.createParticipant({id_app:$id_app$$,email:$user$$.email,name:$user$$.name,group_id:$group_id$$,active:!0},$cust_e$$=>{if($cust_e$$)return console.log("can't add user",$user$$.email,"to company",$app$$.name);$cust_e$$={ten_kh:$user$$.name,email:$user$$.email,dien_thoai:$otp$$.phone,id_app:$id_app$$,
|
|
16
|
-
user_created:$user$$.email,user_updated:$user$$.email,kh_yn:!0,of_user:$user$$.email};try{Customer.asyncCreateCustomer($cust_e$$)}catch($e$$){console.log("Auto create new customer with error:",$e$$.message)}})}const $accessToken$$=generateToken($user$$),$agent$$=$req$$.headers["user-agent"];
|
|
17
|
-
|
|
18
|
-
$next$$)},async($req$jscomp$3_user$$,$res$$)=>{let $data$$=$req$jscomp$3_user$$.body;$req$jscomp$3_user$$=$req$jscomp$3_user$$.user;if(!$data$$)return $res$$.status(400).send("Not have data to sign");if(!$data$$.id_app)return $res$$.status(400).send("Data miss id_app property");try{let $signature$$=await Wallet.sign($data$$.id_app,$req$jscomp$3_user$$.email,$data$$);$res$$.send($signature$$)}catch($e$$){return $res$$.status(400).send($e$$.message||$e$$)}})
|
|
19
|
-
function($req$$,$res$$,$next$$){let $ip$$=($req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress).split(".").join("").split(":").join(""),$authorization$$=$req$$.headers.authorization;if(!$authorization$$)return $res$$.status(400).send({message:"Authorization is required"});$authorization$$=Buffer.from($authorization$$.replace("Basic ",""),"base64").toString("utf-8");$authorization$$=$authorization$$.split(":");if(1<$authorization$$.length){let $t_session$$=
|
|
20
|
-
|
|
21
|
-
$req$$[$d_session$$]=$now$$;$req$$=$now$$.getTime()-$d$$.getTime();if(18E6>$req$$&&10<$times_try$$)return $res$$.status(400).send({message:"B\u1ea1n \u0111\u0103ng nh\u1eadp sai 10 l\u1ea7n li\u00ean ti\u1ebfp. H\u00e3y th\u1eed l\u1ea1i sau "+Math.
|
|
22
|
-
global.clientRedis.set($d_session$$,$now$$));global.clientRedis.get($d_session$$,function($err$jscomp$3_time_wait$$,$reply$$){$reply$$?$d$$=new Date($reply$$):global.clientRedis.set($d_session$$,$now$$);$err$jscomp$3_time_wait$$=$now$$.getTime()-$d$$.getTime();if(18E6>$err$jscomp$3_time_wait$$&&10<$times_try$$)return $res$$.status(400).send({message:"B\u1ea1n \u0111\u0103ng nh\u1eadp sai 10 l\u1ea7n li\u00ean ti\u1ebfp. H\u00e3y th\u1eed l\u1ea1i sau "+Math.
|
|
16
|
+
user_created:$user$$.email,user_updated:$user$$.email,kh_yn:!0,of_user:$user$$.email};try{Customer.asyncCreateCustomer($cust_e$$)}catch($e$$){console.log("Auto create new customer with error:",$e$$.message)}})}const $accessToken$$=generateToken($user$$),$agent$$=$req$$.headers["user-agent"];let $session_created$$;$req$$.cookies&&($session_created$$=$req$$.cookies.uid);(new Token({email:$user$$.email,session_created:$session_created$$,token:$accessToken$$,agent:$agent$$,ip:"",once:1==$req$$.query.once||
|
|
17
|
+
"true"==$req$$.query.once||"1"===$req$$.query.once?!0:!1})).save(function($e$$,$rs$$){return $e$$?$res$$.status(500).send($e$$):$res$$.send({token:$accessToken$$,is_new:$is_new$$,once:$rs$$.once})})}catch($e$$){console.error("error verify otp",$e$$),$res$$.status(400).send($e$$.message)}});$app$$.post("/auth/sign",$rateLimiter$$,($req$$,$res$$,$next$$)=>{$passport$$.authenticate("basic",{session:!1},function($err$$,$user$$){if($err$$||!$user$$)return $res$$.status(401).send({message:$err$$||"Unauthorized"});
|
|
18
|
+
$req$$.user=$user$$;$next$$()})($req$$,$res$$,$next$$)},async($req$jscomp$3_user$$,$res$$)=>{let $data$$=$req$jscomp$3_user$$.body;$req$jscomp$3_user$$=$req$jscomp$3_user$$.user;if(!$data$$)return $res$$.status(400).send("Not have data to sign");if(!$data$$.id_app)return $res$$.status(400).send("Data miss id_app property");try{let $signature$$=await Wallet.sign($data$$.id_app,$req$jscomp$3_user$$.email,$data$$);$res$$.send($signature$$)}catch($e$$){return $res$$.status(400).send($e$$.message||$e$$)}});
|
|
19
|
+
$app$$.get("/auth/local",$rateLimiter$$,function($req$$,$res$$,$next$$){let $ip$$=($req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress).split(".").join("").split(":").join(""),$authorization$$=$req$$.headers.authorization;if(!$authorization$$)return $res$$.status(400).send({message:"Authorization is required"});$authorization$$=Buffer.from($authorization$$.replace("Basic ",""),"base64").toString("utf-8");$authorization$$=$authorization$$.split(":");if(1<$authorization$$.length){let $t_session$$=
|
|
20
|
+
"times_login_"+$ip$$+"_"+$authorization$$[0].trim().toLowerCase(),$d_session$$="datetime_login_"+$ip$$+"_"+$authorization$$[0].trim().toLowerCase();$req$$.t_session=$t_session$$;$req$$.d_session=$d_session$$;let $now$$=new Date,$d$$=$now$$,$times_try$$=1;if($req$$.headers.cookie&&$req$$.session){$req$$=$req$$.session;$req$$[$t_session$$]?($times_try$$=$req$$[$t_session$$]+1,$req$$[$t_session$$]=$times_try$$):($req$$[$t_session$$]=$times_try$$,$req$$[$d_session$$]=$now$$);$req$$[$d_session$$]?$d$$=
|
|
21
|
+
new Date($req$$[$d_session$$]):$req$$[$d_session$$]=$now$$;$req$$=$now$$.getTime()-$d$$.getTime();if(18E6>$req$$&&10<$times_try$$)return $res$$.status(400).send({message:"B\u1ea1n \u0111\u0103ng nh\u1eadp sai 10 l\u1ea7n li\u00ean ti\u1ebfp. H\u00e3y th\u1eed l\u1ea1i sau "+Math.roundBy((18E6-$req$$)/6E4,0)+" ph\u00fat"});$next$$()}else global.clientRedis.get($t_session$$,function($err$$,$reply$$){$reply$$?($times_try$$=Number($reply$$)+1,global.clientRedis.set($t_session$$,$times_try$$)):(global.clientRedis.set($t_session$$,
|
|
22
|
+
$times_try$$),global.clientRedis.set($d_session$$,$now$$));global.clientRedis.get($d_session$$,function($err$jscomp$3_time_wait$$,$reply$$){$reply$$?$d$$=new Date($reply$$):global.clientRedis.set($d_session$$,$now$$);$err$jscomp$3_time_wait$$=$now$$.getTime()-$d$$.getTime();if(18E6>$err$jscomp$3_time_wait$$&&10<$times_try$$)return $res$$.status(400).send({message:"B\u1ea1n \u0111\u0103ng nh\u1eadp sai 10 l\u1ea7n li\u00ean ti\u1ebfp. H\u00e3y th\u1eed l\u1ea1i sau "+Math.roundBy((18E6-$err$jscomp$3_time_wait$$)/
|
|
23
23
|
6E4,0)+" ph\u00fat"});$next$$()})})}},function($req$$,$res$$,$next$$){$passport$$.authenticate("basic",{session:!1},function($err$$,$user$$){if($err$$||!$user$$)return $res$$.status(401).send({message:$err$$||"Unauthorized"});if(configs.require_verify&&!$user$$.local.active)return $res$$.status(401).send({require_verify:!0});$req$$.user=$user$$;$next$$()})($req$$,$res$$,$next$$)},async($req$$,$res$$)=>{let $agent$$=$req$$.headers["user-agent"];if($req$$.headers.cookie){var $group_id$jscomp$1_session$$=
|
|
24
24
|
$req$$.session;$group_id$jscomp$1_session$$[$req$$.t_session]=0;$group_id$jscomp$1_session$$[$req$$.d_session]=""}else global.clientRedis.set($req$$.t_session,0),global.clientRedis.set($req$$.d_session,"");log.create({id_app:"LOGIN",id_func:"LOGIN",action:"LOCALLOGIN"},$req$$.user.email,$req$$.header("user-agent"),$req$$);let $user$$=$req$$.user;if($req$$.query.id_app&&$req$$.query.group_id&&global.mongoose.Types.ObjectId.isValid($req$$.query.group_id)){const $id_app$$=$req$$.query.id_app;$group_id$jscomp$1_session$$=
|
|
25
25
|
$req$$.query.group_id;const $app$$=await App.findById($id_app$$),$group$$=await UserGroup.findOne({_id:$group_id$jscomp$1_session$$,is_customer_group:!0});$app$$&&$group$$&&Participant.createParticipant({id_app:$id_app$$,email:$user$$.email,name:$user$$.name,group_id:$group_id$jscomp$1_session$$,active:!0},$cust$jscomp$1_e$$=>{if($cust$jscomp$1_e$$)return console.log("can't add user",$user$$.email,"to company",$app$$.name);$cust$jscomp$1_e$$={ten_kh:$user$$.name,email:$user$$.email,id_app:$id_app$$,
|
|
26
|
-
user_created:$user$$.email,user_updated:$user$$.email,kh_yn:!0,of_user:$user$$.email};validator.isMobilePhone($user$$.email,["vi-VN"])&&($cust$jscomp$1_e$$.dien_thoai=$user$$.email);try{Customer.asyncCreateCustomer($cust$jscomp$1_e$$)}catch($e$$){console.log("Auto create new customer with error:",$e$$.message)}})}const $accessToken$$=generateToken($user$$);(new Token({email:$user$$.email,
|
|
27
|
-
|
|
28
|
-
if(!$body$$)return $res$$.status(400).send("Kh\u00f4ng c\u00f3 n\u1ed9i dung");if(!$body$$.email)return $res$$.status(400).send("L\u1ed7i: B\u1ea1n ch\u01b0a nh\u1eadp t\u00e0i kho\u1ea3n");$body$$.email=$body$$.email.trim().toLowerCase();if(!$body$$.name)return $res$$.status(400).send("L\u1ed7i: H\u1ecd v\u00e0 t\u00ean ch\u01b0a nh\u1eadp");User.findOne({$or:[{email:$body$$.email},
|
|
29
|
-
if($result$$){if($result$$.local&&$result$$.local.email==$body$$.email||$result$$.email===$body$$.email||$result$$.email2===$body$$.email)return $res$$.status(400).send("L\u1ed7i: T\u00e0i kho\u1ea3n "+$body$$.email+" \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd");$result$$.local||($result$$.local={})}else $result$$=new User,$result$$.email=$body$$.email
|
|
30
|
-
$result$$.local.name;$body$$.picture?$result$$.local.picture=$body$$.picture:$result$$.local.picture||($result$$.local.picture="/images/avatar.jpg");let $password$$;if($body$$.password){if($body$$.rePassword!==$body$$.password)return $res$$.status(400).send("L\u1ed7i: M\u1eadt kh\u1ea9u x\u00e1c nh\u1eadn kh\u00f4ng ch\u00ednh x\u00e1c");if(!User.teststrengthPassword($body$$.password))return $res$$.status(400).send("L\u1ed7i: M\u1eadt kh\u1ea9u ph\u1ea3i c\u00f3 \u00edt nh\u1ea5t 6 k\u00fd t\u1ef1 v\u00e0 bao g\u1ed3m \u00edt nh\u1ea5t m\u1ed9t ch\u1eef s\u1ed1, m\u1ed9t ch\u1eef hoa v\u00e0 m\u1ed9t ch\u1eef th\u01b0\u1eddng");
|
|
26
|
+
user_created:$user$$.email,user_updated:$user$$.email,kh_yn:!0,of_user:$user$$.email};validator.isMobilePhone($user$$.email,["vi-VN"])&&($cust$jscomp$1_e$$.dien_thoai=$user$$.email);try{Customer.asyncCreateCustomer($cust$jscomp$1_e$$)}catch($e$$){console.log("Auto create new customer with error:",$e$$.message)}})}const $accessToken$$=generateToken($user$$);let $session_created$$;$req$$.cookies&&($session_created$$=$req$$.cookies.uid);(new Token({email:$user$$.email,session_created:$session_created$$,
|
|
27
|
+
token:$accessToken$$,agent:$agent$$,ip:"",once:1==$req$$.query.once||"true"==$req$$.query.once||"1"===$req$$.query.once?!0:!1})).save(function($e$$,$rs$$){if($e$$)return $res$$.status(500).send($e$$);$res$$.send({token:$accessToken$$,once:$rs$$.once})})});$app$$.get("/check-user/:email",$rateLimiter$$,function($req$$,$res$$){User.findOne({email:$req$$.params.email},{email:1,name:1,picture:1}).lean().exec(function($e$$,$user$$){if($e$$)return $res$$.status(400).send($e$$);$res$$.send($user$$)})});
|
|
28
|
+
$app$$.post("/signup",$rateLimiter$$,async($req$$,$res$$)=>{let $body$$=$req$$.body;$body$$.json&&($body$$=JSON.parse($body$$.json));if(!$body$$)return $res$$.status(400).send("Kh\u00f4ng c\u00f3 n\u1ed9i dung");if(!$body$$.email)return $res$$.status(400).send("L\u1ed7i: B\u1ea1n ch\u01b0a nh\u1eadp t\u00e0i kho\u1ea3n");$body$$.email=$body$$.email.trim().toLowerCase();if(!$body$$.name)return $res$$.status(400).send("L\u1ed7i: H\u1ecd v\u00e0 t\u00ean ch\u01b0a nh\u1eadp");User.findOne({$or:[{email:$body$$.email},
|
|
29
|
+
{email2:$body$$.email}]},function($error$jscomp$1$$,$result$$){if($error$jscomp$1$$)return $res$$.status(400).send($error$jscomp$1$$);if($result$$){if($result$$.local&&$result$$.local.email==$body$$.email||$result$$.email===$body$$.email||$result$$.email2===$body$$.email)return $res$$.status(400).send("L\u1ed7i: T\u00e0i kho\u1ea3n "+$body$$.email+" \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd");$result$$.local||($result$$.local={})}else $result$$=new User,$result$$.email=$body$$.email,
|
|
30
|
+
$result$$.local={};$result$$.local.email=$body$$.email;$result$$.local.name=$body$$.name;$result$$.partner=$body$$.partner;$result$$.name=$result$$.local.name;$body$$.picture?$result$$.local.picture=$body$$.picture:$result$$.local.picture||($result$$.local.picture="/images/avatar.jpg");let $password$$;if($body$$.password){if($body$$.rePassword!==$body$$.password)return $res$$.status(400).send("L\u1ed7i: M\u1eadt kh\u1ea9u x\u00e1c nh\u1eadn kh\u00f4ng ch\u00ednh x\u00e1c");if(!User.teststrengthPassword($body$$.password))return $res$$.status(400).send("L\u1ed7i: M\u1eadt kh\u1ea9u ph\u1ea3i c\u00f3 \u00edt nh\u1ea5t 6 k\u00fd t\u1ef1 v\u00e0 bao g\u1ed3m \u00edt nh\u1ea5t m\u1ed9t ch\u1eef s\u1ed1, m\u1ed9t ch\u1eef hoa v\u00e0 m\u1ed9t ch\u1eef th\u01b0\u1eddng");
|
|
31
31
|
$password$$=$body$$.password}else $password$$=_crypto.createHash("md5").update($result$$.email+(new Date).toISOString()).digest("hex");$result$$.local.password=$result$$.generateHash($password$$);$result$$.save(function($app$jscomp$3_error$$,$newUser$$){if($app$jscomp$3_error$$)return $res$$.status(400).send("L\u1ed7i: Kh\u00f4ng th\u1ec3 \u0111\u0103ng k\u00fd");log.create({id_app:"SIGNUP",id_func:"SIGNUP",action:"SIGNUP"},$result$$.email,$req$$.header("user-agent"),$req$$);if($body$$.cty_name){$app$jscomp$3_error$$=
|
|
32
32
|
new App;$app$jscomp$3_error$$.user_created=$result$$.email;$app$jscomp$3_error$$.user_updated=$result$$.email;$app$jscomp$3_error$$.name=$body$$.cty_name;var $d$jscomp$1_now$$=new Date;$app$jscomp$3_error$$.ngay_dn=new Date($d$jscomp$1_now$$.getFullYear(),0,1);$app$jscomp$3_error$$.ngay_ks=new Date($d$jscomp$1_now$$.getFullYear()-1,12,0);$app$jscomp$3_error$$.nam_bd=$d$jscomp$1_now$$.getFullYear();$app$jscomp$3_error$$.ngay_ky1=new Date($d$jscomp$1_now$$.getFullYear(),0,1);$d$jscomp$1_now$$=new Date;
|
|
33
33
|
$d$jscomp$1_now$$.setMonth($d$jscomp$1_now$$.getMonth()+3);$app$jscomp$3_error$$.expire_date=new Date($d$jscomp$1_now$$);$app$jscomp$3_error$$.save(function($error$jscomp$0$$,$obj$$){if($error$jscomp$0$$)return console.log("Khong tao duoc new app: "+$error$jscomp$0$$);require("../libs/initDatabase").init($obj$$._id,function($error$$){$error$$&&console.log("Can't init database \n"+$error$$)})})}$body$$.id_app&&App.findById($body$$.id_app,($e$jscomp$0$$,$app$$)=>{if($e$jscomp$0$$||!$app$$)return console.log("Can't find app",
|
|
@@ -35,5 +35,5 @@ $body$$.id_app,$e$jscomp$0$$);Participant.createParticipant({id_app:$body$$.id_a
|
|
|
35
35
|
$e$$.message)}})});validator.isEmail($body$$.email)&&!$body$$.password?(loadTemplate("thong tin dang nhap.html",{email:$result$$.email,password:$password$$,receiver_name:$body$$.name},function($error$jscomp$0$$,$html$$){if($error$jscomp$0$$)return console.log($error$jscomp$0$$);email.sendHtml({to:{name:$result$$.name,address:$result$$.email},subject:"Th\u00f4ng tin t\u00e0i kho\u1ea3n",html:$html$$},function($error$$){$error$$&&console.error("Khong the gui email thon tin tai khoan cho nguoi dung\n"+
|
|
36
36
|
$error$$)})}),$res$$.send("T\u00e0i kho\u1ea3n c\u1ee7a b\u1ea1n \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ea1o. Ki\u1ec3m tra email \u0111\u1ec3 l\u1ea5y th\u00f4ng tin \u0111\u0103ng nh\u1eadp")):$res$$.send("T\u00e0i kho\u1ea3n "+$body$$.email+" \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ea1o")})})});$app$$.get("/resetpassword",$rateLimiter$$,async($req$$,$res$$)=>{let $address$$=$req$$.query.email;if(!$address$$)return $res$$.status(400).send("Y\u00eau c\u1ea7u m\u1ed9t email");$address$$=$address$$.toLowerCase();
|
|
37
37
|
User.findOne({$or:[{"local.email":$address$$},{email:$address$$},{email2:$address$$}]},function($error$jscomp$2$$,$result$$){if($error$jscomp$2$$)return $res$$.status(400).send($error$jscomp$2$$);if(!$result$$)return $res$$.status(400).send(`T\u00e0i kho\u1ea3n ${$address$$} ch\u01b0a \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd`);let $newpassword$$=_crypto.createHash("md5").update((new Date).toISOString()).digest("hex");$result$$.local.rspassword=$result$$.generateHash($newpassword$$);$result$$.save(function($error$jscomp$1$$){if($error$jscomp$1$$)return $res$$.status(400).send($error$jscomp$1$$);
|
|
38
|
-
log.create({id_app:"RESETPASSWORD",id_func:"RESETPASSWORD",action:"RESETPASSWORD"},$result$$.email,$req$$.header("user-agent"),$req$$);loadTemplate("reset mat khau.html",{receiver_name:$result$$.name,email:$result$$.email,password:$newpassword$$},function($error$jscomp$0$$,$html$$){if($error$jscomp$0$$)return console.log($error$jscomp$0$$)
|
|
39
|
-
console.error("Khong the gui thong tin tai khoan cho nguoi su dung\n"+$error$$)})
|
|
38
|
+
log.create({id_app:"RESETPASSWORD",id_func:"RESETPASSWORD",action:"RESETPASSWORD"},$result$$.email,$req$$.header("user-agent"),$req$$);loadTemplate("reset mat khau.html",{receiver_name:$result$$.name,email:$result$$.email,password:$newpassword$$},function($error$jscomp$0$$,$html$$){if($error$jscomp$0$$)return console.log($error$jscomp$0$$);$result$$.email&&validator.isEmail($result$$.email)&&email.sendHtml({to:{name:$result$$.name,address:$result$$.email},subject:"\u0110\u1ed5i m\u1eadt kh\u1ea9u",
|
|
39
|
+
html:$html$$},function($error$$){$error$$&&console.error("Khong the gui thong tin tai khoan cho nguoi su dung\n"+$error$$)});$result$$.email2&&validator.isEmail($result$$.email2)&&email.sendHtml({to:{name:$result$$.name,address:$result$$.email2},subject:"\u0110\u1ed5i m\u1eadt kh\u1ea9u",html:$html$$},function($error$$){$error$$&&console.error("Khong the gui thong tin tai khoan cho nguoi su dung\n"+$error$$)})});$res$$.send("M\u1eadt kh\u1ea9u c\u1ee7a b\u1ea1n \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u1ed5i th\u00e0nh c\u00f4ng. Ki\u1ec3m tra email \u0111\u1ec3 l\u1ea5y m\u1eadt kh\u1ea9u m\u1edbi, sau \u0111\u00f3 b\u1ea1n n\u00ean \u0111\u1ed5i m\u1eadt kh\u1ea9u n\u00e0y")})})})};
|
package/server/cluster.js
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
'use strict';require("events").EventEmitter.defaultMaxListeners=1E4;
|
|
2
|
-
const express=require("express"),bodyParser=require("body-parser"),
|
|
3
|
-
useAgenda:!0,createRedisCache:!0}){const $configs$$=global.configs={...defaultConfigs,...$
|
|
4
|
-
require($configs$$.paths.menu||"./menu").getModules();global.modulesInMenu={};Object.values($
|
|
5
|
-
$app$$.use($
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
$app$$.use(
|
|
9
|
-
require("
|
|
10
|
-
$
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
global.
|
|
14
|
-
|
|
2
|
+
const express=require("express"),bodyParser=require("body-parser"),passport=require("passport"),https=require("https"),http=require("http"),fs=require("fs"),cors=require("cors"),crypto=require("crypto"),_global=require("./global"),defaultConfigs=require("./defaultConfigs"),sslConfig=require("./sslConfig"),clusterServer=function($app$$,$sslDir$$,$_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$={},$_port_accessLogStream_rfs$$=9999,$options$$={start_import_data_pool:!1,
|
|
3
|
+
start_report_pool:!0,useAgenda:!0,createRedisCache:!0}){const $configs$$=global.configs={...defaultConfigs,...$_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$,cluster:0!=$options$$.cluster};$configs$$.admins||($configs$$.admins=$configs$$.adminUsers.map($u$$=>$u$$.email));$configs$$.supportUsers||($configs$$.supportUsers=[...$configs$$.admins]);$configs$$.public_token||($configs$$.public_token="flex.public.token");global.port=$_port_accessLogStream_rfs$$;$_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$=
|
|
4
|
+
require($configs$$.paths.menu||"./menu").getModules();global.modulesInMenu={};Object.values($_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$).forEach(function($module$$){global.modulesInMenu[$module$$.name]=$module$$});require("moment-timezone").tz.setDefault($configs$$.timezone||"Asia/Ho_Chi_Minh");$app$$||($app$$=express());$app$$.set("trust proxy",1);$_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$=require("express-session");
|
|
5
|
+
$app$$.use($_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$({secret:"QV098PVT123456HLBN",resave:!1,saveUninitialized:!0,cookie:{secure:!1}}));$_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$=require("cookie-parser");$app$$.use($_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$());$app$$.use(function($req_uid$$,$res$$,$next$$){($req_uid$$=$req_uid$$.cookies.uid)||($req_uid$$="uid:"+crypto.randomBytes(20).toString("hex"));
|
|
6
|
+
$res$$.cookie("uid",$req_uid$$,{expires:new Date(Date.now()+864E5)});$next$$()});$_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$=require("compression");$app$$.use($_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$());$_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$=$configs$$.paths.uploads||__dirname+"/uploads";$_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$=
|
|
7
|
+
require("multer")({dest:$_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$,limits:{fileSize:$configs$$.limitFileSize||1048576}});$app$$.use($_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$);$app$$.use(cors({credentials:!0,exposedHeaders:["set-cookie"],origin:($origin$$,$callback$$)=>{$callback$$(null,!0)}}));$configs$$.paths||($configs$$.paths={});$app$$.use("/",express.static($configs$$.paths.public||__dirname+"/public"));
|
|
8
|
+
$app$$.use("/admin",express.static($configs$$.paths.admin||__dirname+"/admin"));$app$$.use("/templates",express.static($configs$$.paths.templates||__dirname+"/templates"));$app$$.use("/images",express.static($configs$$.paths.images||__dirname+"/images"));$app$$.use(bodyParser.json({limit:$configs$$.limitRequestSize||"1mb"}));$app$$.use(bodyParser.urlencoded({limit:$configs$$.limitRequestSize||"1mb",extended:!0}));$app$$.use(passport.initialize());$_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$=
|
|
9
|
+
require("morgan");$_port_accessLogStream_rfs$$=require("rotating-file-stream");const $logDirectory$$=$configs$$.paths.log||__dirname+"/log";fs.existsSync($logDirectory$$)||fs.mkdirSync($logDirectory$$);$_port_accessLogStream_rfs$$=$_port_accessLogStream_rfs$$("access-cluster.log",{interval:"1d",path:$logDirectory$$});$app$$.use($_configs_compress_cookieParser_modulesVisible_morgan_multer_root_dir_uploads_session$$("combined",{stream:$_port_accessLogStream_rfs$$,skip:function($req$$,$res$$){return 400>
|
|
10
|
+
$res$$.statusCode}}));$app$$.use(function($err$$,$req$$,$res$$,$next$$){console.error($err$$.stack);$res$$.status(500).send("Server error!")});global.mongoose.connect($configs$$.database.url,{useNewUrlParser:!0}).then(async $clientMongo_redis$$=>{console.log("Connected to Database");global.clientMongo=$clientMongo_redis$$;$clientMongo_redis$$=require("redis");global.clientRedis=$clientMongo_redis$$.createClient({enable_offline_queue:!1});global.clientRedis.on("connect",async function(){console.log("redis connected");
|
|
11
|
+
var $Agenda_Mailmanagement_StaticPool_StaticPool$$=require("./libs/redis-cache");0!=$options$$.createRedisCache&&$Agenda_Mailmanagement_StaticPool_StaticPool$$.set();$Agenda_Mailmanagement_StaticPool_StaticPool$$=require("./libs/mailmanagement");global.mailmanagement=new $Agenda_Mailmanagement_StaticPool_StaticPool$$;!1!==$options$$.useAgenda&&($Agenda_Mailmanagement_StaticPool_StaticPool$$=require("agenda"),global.agenda=new $Agenda_Mailmanagement_StaticPool_StaticPool$$({db:{address:$configs$$.database.url}}),
|
|
12
|
+
require("./libs/schedule").define(),await global.agenda.start());global.getModel("schedule").start();require("./route")($app$$);$Agenda_Mailmanagement_StaticPool_StaticPool$$=$configs$$.use_ssl?https.createServer(sslConfig($sslDir$$),$app$$):http.createServer($app$$);$Agenda_Mailmanagement_StaticPool_StaticPool$$.timeout=6E5;global.getModel("user").initSocket($Agenda_Mailmanagement_StaticPool_StaticPool$$);if(!1!==$options$$.cluster){if(!require("sticky-session").listen($Agenda_Mailmanagement_StaticPool_StaticPool$$,
|
|
13
|
+
global.port))$Agenda_Mailmanagement_StaticPool_StaticPool$$.once("listening",function(){console.log("server cluster started on",global.port)});$Agenda_Mailmanagement_StaticPool_StaticPool$$=require("cluster");$Agenda_Mailmanagement_StaticPool_StaticPool$$.on("exit",function($worker$$,$code$$,$signal$$){console.error("worker "+$worker$$.process.pid+" died",$code$$,$signal$$)});$Agenda_Mailmanagement_StaticPool_StaticPool$$.on("online",function($worker$$){console.info("worker "+$worker$$.process.pid+
|
|
14
|
+
" is online");global.clientRedis.set("lastworker",JSON.stringify({pid:$worker$$.process.pid}))})}else $Agenda_Mailmanagement_StaticPool_StaticPool$$.listen(global.port,()=>{console.log("server start at "+global.port+" port")});$options$$.start_import_data_pool&&($Agenda_Mailmanagement_StaticPool_StaticPool$$=require("./libs/WorkerStaticPool"),global.importDataMainPool=new $Agenda_Mailmanagement_StaticPool_StaticPool$$(__dirname+"/workers/inputWorker.js"),global.importDataMainPool.exec({load:!0,configs:JSON.parse(JSON.stringify($configs$$))},
|
|
15
|
+
()=>{console.log("load import data pool")}));$options$$.start_report_pool&&($Agenda_Mailmanagement_StaticPool_StaticPool$$=require("./libs/WorkerStaticPool"),global.reportMainPool=new $Agenda_Mailmanagement_StaticPool_StaticPool$$(__dirname+"/workers/reportWorker.js"),global.reportMainPool.exec({load:!0,configs:JSON.parse(JSON.stringify($configs$$))},()=>{console.log("load report pool")}))})}).catch($err$$=>{console.error("Not Connected to Database ERROR!",$err$$)})};
|
|
16
|
+
process.on("uncaughtException",function($err$jscomp$2_error$$){console.error((new Date).toUTCString()+" uncaughtException:",$err$jscomp$2_error$$.message);console.error($err$jscomp$2_error$$.stack);$err$jscomp$2_error$$=`
|
|
15
17
|
Error: ${$err$jscomp$2_error$$.message}
|
|
16
18
|
Stack: ${$err$jscomp$2_error$$.stack}
|
|
17
19
|
`;try{const $logDirectory$$=__dirname+"/log";fs.existsSync($logDirectory$$)||fs.mkdirSync($logDirectory$$);fs.writeFile(`${$logDirectory$$}/error-${(new Date).getTime()}.txt`,$err$jscomp$2_error$$,()=>{console.log("wrote log error")})}catch($e$$){console.log($e$$)}process.exit(1)});module.exports=clusterServer;
|