flexbiz-server 12.0.21 → 12.0.22
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/libs/blockchainconnect.js +18 -19
- package/server/models/approve.js +3 -3
- package/server/models/area.js +3 -3
- package/server/models/assbuy.js +2 -2
- package/server/models/asscashwithdraw.js +2 -2
- package/server/models/assinvestment.js +4 -4
- package/server/models/asskey.js +1 -1
- package/server/models/assneedtobuy.js +3 -3
- package/server/models/assperiod.js +4 -4
- package/server/models/assproduct.js +3 -3
- package/server/models/assprofitsharing.js +3 -3
- package/server/models/assreceiver.js +1 -1
- package/server/models/assrequest.js +3 -3
- package/server/models/asssell.js +4 -4
- package/server/models/asstransfer.js +4 -4
- package/server/models/asswithdraw.js +2 -2
- package/server/models/bangtinhluong.js +1 -1
- package/server/models/bg1.js +8 -8
- package/server/models/bg2.js +7 -7
- package/server/models/cart.js +4 -4
- package/server/models/cddiem.js +1 -1
- package/server/models/cddt.js +2 -2
- package/server/models/cdtk.js +2 -2
- package/server/models/cdvt.js +3 -3
- package/server/models/chamcong.js +2 -2
- package/server/models/checkin.js +3 -2
- package/server/models/dmdt.js +4 -4
- package/server/models/dmdvt.js +1 -1
- package/server/models/dmgiaban.js +5 -5
- package/server/models/dmgiamua.js +4 -4
- package/server/models/dmkho.js +4 -4
- package/server/models/dmkhuyenmai.js +3 -3
- package/server/models/dmkhuyenmaihd.js +2 -2
- package/server/models/dmlo.js +2 -2
- package/server/models/dmloaicong.js +1 -1
- package/server/models/dmloaitask.js +1 -1
- package/server/models/dmloaits.js +1 -1
- package/server/models/dmnghiepvu.js +2 -2
- package/server/models/dmnguonvon.js +1 -1
- package/server/models/dmnhnv.js +3 -3
- package/server/models/dmnv.js +3 -3
- package/server/models/dmphi.js +2 -2
- package/server/models/dmqct.js +3 -3
- package/server/models/dmqddvt.js +1 -1
- package/server/models/dmtanggiamts.js +1 -1
- package/server/models/dmto.js +3 -3
- package/server/models/dmtt.js +2 -2
- package/server/models/dmvt.js +6 -6
- package/server/models/dmyt.js +3 -3
- package/server/models/file.js +2 -2
- package/server/models/listinfo.js +43 -38
- package/server/models/moduleinfo.js +3 -3
- package/server/models/otp.js +1 -1
- package/server/models/pbl.js +11 -11
- package/server/models/pdn.js +8 -8
- package/server/models/pkk.js +2 -2
- package/server/models/pnc.js +8 -8
- package/server/models/pnk.js +6 -6
- package/server/models/po1.js +10 -10
- package/server/models/pxc.js +8 -8
- package/server/models/pxk.js +6 -6
- package/server/models/quanhuyen.js +1 -1
- package/server/models/reportinfo.js +4 -4
- package/server/models/right.js +2 -2
- package/server/models/rpt.js +1 -1
- package/server/models/rptobject.js +2 -2
- package/server/models/socai.js +8 -7
- package/server/models/socaitmp.js +11 -11
- package/server/models/sodiemthuong.js +2 -2
- package/server/models/sokho.js +9 -8
- package/server/models/sokhocapphat.js +9 -8
- package/server/models/sokhokhongton.js +9 -9
- package/server/models/sokhott.js +9 -8
- package/server/models/sophanbokh.js +3 -3
- package/server/models/sosanxuat.js +4 -4
- package/server/models/sotinhkh.js +1 -1
- package/server/models/tableinfo.js +3 -3
- package/server/models/templaterpt.js +1 -1
- package/server/models/templatestore.js +2 -2
- package/server/models/templatevoucher.js +1 -1
- package/server/models/tinhthanh.js +1 -1
- package/server/models/tokens.js +1 -1
- package/server/models/trangthai.js +2 -2
- package/server/models/usergroup.js +1 -1
- package/server/models/vat.js +2 -2
- package/server/models/xaphuong.js +1 -1
- package/server/modules/lists/ls-file.js +17 -14
- package/server/modules/lists/ls-participant.js +5 -4
- package/server/modules/reports/rp-assinterest.js +3 -2
- package/server/modules/reports/rp-thgt.js +2 -2
- package/server/modules/systems/sys-user.js +19 -16
- package/server/modules/vouchers/vo-pkk.js +4 -7
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';const tinhthanhSchema=new Schema({ten_tinh_thanh:{type:String,required:!0,maxlength:1024},description:String,stt:{type:Number,default:0},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});tinhthanhSchema.index({ten_tinh_thanh:"text"});tinhthanhSchema.index({ten_tinh_thanh:1});tinhthanhSchema.index({status:1});
|
|
1
|
+
'use strict';const tinhthanhSchema=new Schema({ten_tinh_thanh:{type:String,required:!0,maxlength:1024,trim:!0},description:String,stt:{type:Number,default:0},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});tinhthanhSchema.index({ten_tinh_thanh:"text"});tinhthanhSchema.index({ten_tinh_thanh:1});tinhthanhSchema.index({status:1});
|
|
2
2
|
tinhthanhSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.tinhthanh||mongoose.model("tinhthanh",tinhthanhSchema);module.exports=model;
|
package/server/models/tokens.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';const tokenSchema=new Schema({email:{type:String,lowercase:!0,maxlength:128},token:String,refreshToken:String,agent:String,ip:String,service:String,once:Boolean,used:Boolean,note:String,status:{type:Boolean,default:!0},last_access:{type:Date,default:Date.now},date_created:{type:Date,default:Date.now}});tokenSchema.index({email:1});tokenSchema.index({token:"text"});tokenSchema.index({ip:1});tokenSchema.index({date_created:-1});tokenSchema.index({status:1});
|
|
1
|
+
'use strict';const tokenSchema=new Schema({email:{type:String,lowercase:!0,maxlength:128,trim:!0},token:String,refreshToken:String,agent:String,ip:String,service:String,once:Boolean,used:Boolean,note:String,status:{type:Boolean,default:!0},last_access:{type:Date,default:Date.now},date_created:{type:Date,default:Date.now}});tokenSchema.index({email:1});tokenSchema.index({token:"text"});tokenSchema.index({ip:1});tokenSchema.index({date_created:-1});tokenSchema.index({status:1});
|
|
2
2
|
module.exports=mongoose.models.token||mongoose.model("token",tokenSchema);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';const trangthaiSchema=new Schema({ma_ct:{type:String,uppercase:!0,required:!0,maxlength:32},ma_trang_thai:{type:String,uppercase:!0,required:!0,maxlength:32},ten_trang_thai:{type:String,required:!0,maxlength:1024},ten_trang_thai_en:{type:String,maxlength:1024},post:{type:Boolean,default:!1},post_sokho:{type:Boolean,default:!1},post_socai:{type:Boolean,default:!1},allow_delete:{type:Boolean,default:!1},allow_update:{type:Boolean,default:!1},lock_data:{type:Boolean,default:!1},
|
|
2
|
-
default:!0},not_need_right:{type:Boolean,default:!0},description:String,stt:{type:Number,default:0},color:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});trangthaiSchema.index({ma_ct:1});trangthaiSchema.index({ma_trang_thai:1});trangthaiSchema.index({ten_trang_thai:1});
|
|
1
|
+
'use strict';const trangthaiSchema=new Schema({ma_ct:{type:String,uppercase:!0,required:!0,maxlength:32,trim:!0},ma_trang_thai:{type:String,uppercase:!0,required:!0,maxlength:32,trim:!0},ten_trang_thai:{type:String,required:!0,maxlength:1024},ten_trang_thai_en:{type:String,maxlength:1024},post:{type:Boolean,default:!1},post_sokho:{type:Boolean,default:!1},post_socai:{type:Boolean,default:!1},allow_delete:{type:Boolean,default:!1},allow_update:{type:Boolean,default:!1},lock_data:{type:Boolean,default:!1},
|
|
2
|
+
check_data:{type:Boolean,default:!0},not_need_right:{type:Boolean,default:!0},description:String,stt:{type:Number,default:0},color:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});trangthaiSchema.index({ma_ct:1});trangthaiSchema.index({ma_trang_thai:1});trangthaiSchema.index({ten_trang_thai:1});
|
|
3
3
|
trangthaiSchema.index({ma_trang_thai:"text",ten_trang_thai:"text",ma_ct:"text"},{name:"trangthai_index_text"});trangthaiSchema.index({status:1});trangthaiSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.trangthai||mongoose.model("trangthai",trangthaiSchema);module.exports=model;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';const usergroupSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},group_name:{type:String,required:!0,maxlength:1024},phu_trach:{type:String,maxlength:1024},is_customer_group:{type:Boolean,default:!1},is_employee_group:{type:Boolean,default:!1},is_partner_group:{type:Boolean,default:!1},tang_duoc_gioi_thieu:Number,tang_gioi_thieu:Number,ty_le_hoa_hong:Number,tang_gioi_thieu_pt:Number,ty_le_hoa_hong_pt:Number,tang_gioi_thieu_denom:String,group_mother:String,status:{type:Boolean,
|
|
1
|
+
'use strict';const usergroupSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},group_name:{type:String,required:!0,maxlength:1024},phu_trach:{type:String,maxlength:1024,trim:!0},is_customer_group:{type:Boolean,default:!1},is_employee_group:{type:Boolean,default:!1},is_partner_group:{type:Boolean,default:!1},tang_duoc_gioi_thieu:Number,tang_gioi_thieu:Number,ty_le_hoa_hong:Number,tang_gioi_thieu_pt:Number,ty_le_hoa_hong_pt:Number,tang_gioi_thieu_denom:String,group_mother:String,status:{type:Boolean,
|
|
2
2
|
default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]});usergroupSchema.index({id_app:1,is_customer_group:1});usergroupSchema.index({id_app:1,is_employee_group:1});usergroupSchema.index({phu_trach:1});usergroupSchema.index({group_name:1});usergroupSchema.index({group_mother:1});
|
|
3
3
|
usergroupSchema.index({status:1});usergroupSchema.index({user_created:1,visible_to:1,visible_to_users:1});usergroupSchema.index({group_name:"text"});const model=mongoose.models.usergroup||mongoose.model("usergroup",usergroupSchema);model.referenceKeys={_id:[{model:"participant",key:"group_id",error:"Kh\u00f4ng th\u1ec3 x\u00f3a nh\u00f3m n\u00e0y."}]};
|
|
4
4
|
model.getInfo=async($id_app$$,$condition$$,$fields$$)=>{$condition$$.id_app=$id_app$$;return new Promise(($resolve$$,$reject$$)=>{model.findOne($condition$$).lean().exec(($e$$,$rs$$)=>{if($e$$||!$rs$$)return $reject$$(Error($e$$?$e$$.message:`Can't find user group:${$condition$$}`));$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)})})};
|
package/server/models/vat.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';const validAccount=require("../libs/validator-account"),vatSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_thue:{type:String,uppercase:!0,required:!0,maxlength:32},ten_thue:{type:String,required:!0,maxlength:1024},thue_suat:{type:Number,default:0},stt_in:{type:Number,default:0},tk_thue_no:{type:String,default:"",required:!0,maxlength:32},tk_thue_co:{type:String,default:"",required:!0,maxlength:32},tk_thue_no_treo:{type:String,default:"",maxlength:32
|
|
2
|
-
default:"",maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});vatSchema.validate={tk_thue_co:validAccount.existsTk,tk_thue_no:validAccount.existsTk};vatSchema.index({id_app:1,ma_thue:1,ten_thue:1,thue_suat:1,tk_thue_co:1,tk_thue_no:1});vatSchema.index({ma_thue:"text",ten_thue:"text"});vatSchema.index({status:1});
|
|
1
|
+
'use strict';const validAccount=require("../libs/validator-account"),vatSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_thue:{type:String,uppercase:!0,required:!0,maxlength:32,trim:!0},ten_thue:{type:String,required:!0,maxlength:1024},thue_suat:{type:Number,default:0},stt_in:{type:Number,default:0},tk_thue_no:{type:String,default:"",required:!0,maxlength:32,trim:!0},tk_thue_co:{type:String,default:"",required:!0,maxlength:32,trim:!0},tk_thue_no_treo:{type:String,default:"",maxlength:32,
|
|
2
|
+
trim:!0},tk_thue_co_treo:{type:String,default:"",maxlength:32,trim:!0},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});vatSchema.validate={tk_thue_co:validAccount.existsTk,tk_thue_no:validAccount.existsTk};vatSchema.index({id_app:1,ma_thue:1,ten_thue:1,thue_suat:1,tk_thue_co:1,tk_thue_no:1});vatSchema.index({ma_thue:"text",ten_thue:"text"});vatSchema.index({status:1});
|
|
3
3
|
vatSchema.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.vat||mongoose.model("vat",vatSchema);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';const xaphuongSchema=new Schema({ten_tinh_thanh:{type:String,required:!0,maxlength:1024},ten_quan_huyen:{type:String,required:!0,maxlength:1024},ten_xa_phuong:{type:String,required:!0,maxlength:1024},description:String,stt:{type:Number,default:0},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
1
|
+
'use strict';const xaphuongSchema=new Schema({ten_tinh_thanh:{type:String,required:!0,maxlength:1024,trim:!0},ten_quan_huyen:{type:String,required:!0,maxlength:1024,trim:!0},ten_xa_phuong:{type:String,required:!0,maxlength:1024,trim:!0},description:String,stt:{type:Number,default:0},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
2
2
|
xaphuongSchema.index({ten_tinh_thanh:1,ten_quan_huyen:1,ten_xa_phuong:1});xaphuongSchema.index({ten_tinh_thanh:"text",ten_quan_huyen:"text",ten_xa_phuong:"text"});xaphuongSchema.index({status:1});xaphuongSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.xaphuong||mongoose.model("xaphuong",xaphuongSchema);module.exports=model;
|
|
@@ -5,17 +5,20 @@ $extension_root$$=configs.paths.images;$extension_root$$||($extension_root$$=__d
|
|
|
5
5
|
$error$$=10*$value$$.width/100;watermark.embed({type:"image",source:$file_name$$,logo:$file_logo$$,destination:$file_name_watermark$$,position:{logoX:$value$$.width-$error$$-10,logoY:10,logoHeight:$error$$,logoWidth:$error$$}},function($status$$){1===$status$$.status?$resolve$$($file_name_watermark$$):(console.log("status set watermark",$status$$),$resolve$$($file_name$$))})})}):(console.log("file logo watermark is not exists",$file_logo$$),$file_name$$)},configResizeImage=async($_size_file_name_resize$$,
|
|
6
6
|
$file_name$$,$extension$$,$recache$$)=>{let $size$$,$cache$$;if($_size_file_name_resize$$)switch($_size_file_name_resize$$.toString().toUpperCase()){case "64":case "X":$size$$=64;$cache$$=!0;break;case "256":$size$$=256;$cache$$=!0;break;case "S":case "320":$size$$=320;$cache$$=!0;break;case "512":case "M":$size$$=512;$cache$$=!0;break;case "1024":case "L":$size$$=1024;$cache$$=!0;break;case "1080":case "FULLHD":$size$$=1080;$cache$$=!0;break;case "1440":case "2K":$size$$=1440;$cache$$=!0;break;default:try{$size$$=
|
|
7
7
|
Number($_size_file_name_resize$$)}catch($e$$){console.log("size param must be X or S or M or L or a number")}}return $size$$?($_size_file_name_resize$$=`${$file_name$$}.${$size$$}.${$extension$$}`,!$recache$$&&fs.existsSync($_size_file_name_resize$$)?{file_name_resize:$_size_file_name_resize$$,exist:!0}:{cache:$cache$$,size:$size$$,file_name_resize:$_size_file_name_resize$$}):{file_name_resize:$file_name$$}};
|
|
8
|
-
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"file",{sort:{ten_file:1},onView:($user$$,$items$$,$next$$)=>{$items$$.forEach($item$$=>{$item$$.file&&(delete $item$$.file.encoding,delete $item$$.file.mimetype,delete $item$$.file.path,$item$$.id_app&&configs.api_url&&($item$$.download_link=`${configs.api_url||""}/${$item$$.id_app}/file/download/${$item$$._id.toString()}`))});$next$$(null,$items$$)}});$contr_router$$.creating=function($
|
|
9
|
-
$obj
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
$
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
$
|
|
21
|
-
|
|
8
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"file",{sort:{ten_file:1},onView:($user$$,$items$$,$next$$)=>{$items$$.forEach($item$$=>{$item$$.file&&(delete $item$$.file.encoding,delete $item$$.file.mimetype,delete $item$$.file.path,$item$$.id_app&&configs.api_url&&($item$$.download_link=`${configs.api_url||""}/${$item$$.id_app}/file/download/${$item$$._id.toString()}`))});$next$$(null,$items$$)}});$contr_router$$.creating=async function($file_name$jscomp$2_input_tesseract_user$$,
|
|
9
|
+
$obj$$,$fn$$){if($obj$$.file&&$obj$$.read_image){$file_name$jscomp$2_input_tesseract_user$$=$obj$$.file.name;var $config_extension$jscomp$2_root$$=$obj$$.file.extension.toLowerCase();if(0<=["png","jpg"].indexOf($config_extension$jscomp$2_root$$)&&($config_extension$jscomp$2_root$$=configs.paths.uploads,$config_extension$jscomp$2_root$$||($config_extension$jscomp$2_root$$=__dirname,$config_extension$jscomp$2_root$$=path.dirname($config_extension$jscomp$2_root$$),$config_extension$jscomp$2_root$$=path.dirname($config_extension$jscomp$2_root$$),
|
|
10
|
+
$config_extension$jscomp$2_root$$=path.join($config_extension$jscomp$2_root$$,"uploads")),$file_name$jscomp$2_input_tesseract_user$$=path.join($config_extension$jscomp$2_root$$,$file_name$jscomp$2_input_tesseract_user$$),fs.existsSync($file_name$jscomp$2_input_tesseract_user$$))){$file_name$jscomp$2_input_tesseract_user$$=require("node-tesseract-ocr");$config_extension$jscomp$2_root$$={lang:"vie+eng"};try{const $text$$=await $file_name$jscomp$2_input_tesseract_user$$.recognize("image.jpg",$config_extension$jscomp$2_root$$);
|
|
11
|
+
$obj$$.text_from_image=$text$$}catch($error$$){return console.error($error$$),$fn$$($error$$.message)}}}$fn$$(null,$obj$$)};$contr_router$$.created=function($file_name$jscomp$3_user$$,$obj$$,$fn$$){if($obj$$.file){$file_name$jscomp$3_user$$=$obj$$.file.name;var $extension$jscomp$3_input$jscomp$1_root$$=$obj$$.file.extension.toLowerCase();if(0<=["mp4","mov","avi"].indexOf($extension$jscomp$3_input$jscomp$1_root$$)){$extension$jscomp$3_input$jscomp$1_root$$=configs.paths.uploads;$extension$jscomp$3_input$jscomp$1_root$$||
|
|
12
|
+
($extension$jscomp$3_input$jscomp$1_root$$=__dirname,$extension$jscomp$3_input$jscomp$1_root$$=path.dirname($extension$jscomp$3_input$jscomp$1_root$$),$extension$jscomp$3_input$jscomp$1_root$$=path.dirname($extension$jscomp$3_input$jscomp$1_root$$),$extension$jscomp$3_input$jscomp$1_root$$=path.join($extension$jscomp$3_input$jscomp$1_root$$,"uploads"));$extension$jscomp$3_input$jscomp$1_root$$=path.join($extension$jscomp$3_input$jscomp$1_root$$,$file_name$jscomp$3_user$$);let $output$$=configs.paths.videos;
|
|
13
|
+
$output$$||($output$$=__dirname,$output$$=path.dirname($output$$),$output$$=path.dirname($output$$),$output$$=path.join($output$$,"videos"));fs.existsSync($output$$)||fs.mkdirSync($output$$);$output$$=path.join($output$$,$obj$$._id.toString());fs.existsSync($output$$)||fs.mkdirSync($output$$);$output$$=path.join($output$$,$file_name$jscomp$3_user$$);convertVideo($extension$jscomp$3_input$jscomp$1_root$$,$output$$).catch($e$$=>{console.error("Can't convert video. Error:",$e$$)})}}else console.log("file not exists",
|
|
14
|
+
$obj$$);$fn$$(null,$obj$$)};$contr_router$$.deleted=function($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$,$rs$$,$next$$){if($rs$$.file){$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=$rs$$.file.name;let $root$$=configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=path.join($root$$,$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$);
|
|
15
|
+
fs.existsSync($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$)&&fs.unlink($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$,function($e$$){$e$$&&console.error($e$$)});$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=$rs$$.file.extension.toLowerCase();0<=["mp4","mov","avi"].indexOf($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$)&&($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=configs.paths.videos,$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$||
|
|
16
|
+
($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=__dirname,$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=path.dirname($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$),$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=path.dirname($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$),$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=path.join($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$,"videos")),$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=
|
|
17
|
+
path.join($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$,$rs$$._id.toString()),fs.existsSync($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$)&&deleteFolderRecursive($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$))}else console.log("file not exists",$rs$$);$next$$(null,$rs$$)};$contr_router$$.route(function($router$$){$router$$.route("/:id_app/file/download/:id").get(function($req$$,$res$$){let $id$$=$req$$.params.id,$size$$=$req$$.query.size||$req$$.query.resize||
|
|
18
|
+
"FULLHD";app.findOne({_id:$req$$.user.current_id_app}).lean().exec(function($e$$,$app_info$$){if($e$$||!$app_info$$)return $res$$.status(400).send("Kh\u00f4ng th\u1ec3 t\u1ea3i file n\u00e0y");model.findOne({_id:$id$$}).lean().exec(async($e$jscomp$4_file_name$$,$rs$$)=>{if($e$jscomp$4_file_name$$)return $res$$.status(400).send($e$jscomp$4_file_name$$);if($rs$$){$e$jscomp$4_file_name$$=$rs$$.file.name;let $extension$$=$rs$$.file.extension,$root$$=configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=
|
|
19
|
+
path.dirname($root$$),$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$e$jscomp$4_file_name$$=path.join($root$$,$e$jscomp$4_file_name$$);if(fs.existsSync($e$jscomp$4_file_name$$))if(0<=["png","jpg","jpeg"].indexOf($extension$$)){let $_new_file$$=await setWaterMark4Image($app_info$$,$e$jscomp$4_file_name$$,$extension$$,$req$$.query.recache),$_resize_conf$$=await configResizeImage($size$$,$_new_file$$,$extension$$,$req$$.query.recache);if($_resize_conf$$.exist)return gm($_resize_conf$$.file_name_resize).stream(function($err$$,
|
|
20
|
+
$stdout$$){$stdout$$.pipe($res$$)});let $_gm$$=gm($_new_file$$);$_gm$$.size(function($error$jscomp$0$$,$orgin_file_size$$){$orgin_file_size$$&&$_resize_conf$$.size&&$_resize_conf$$.size<$orgin_file_size$$.width&&$_resize_conf$$.size<$orgin_file_size$$.height&&($_gm$$=$_gm$$.resize($_resize_conf$$.size));$_resize_conf$$.cache?setImmediate(()=>{$_gm$$.write($_resize_conf$$.file_name_resize,function($error$$){if($error$$)console.error("save resize image:",$error$$.message),setImmediate(()=>{$res$$.sendFile($_new_file$$)});
|
|
21
|
+
else return gm($_resize_conf$$.file_name_resize).stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)})})}):$_gm$$.stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)})})}else $res$$.download($e$jscomp$4_file_name$$,$rs$$.file.originalname);else $res$$.status(400).send("File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i")}else $res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y")})})});$router$$.route("/:id_app/file/stream/:id/:file").get(function($req$$,$res$$){let $id$$=$req$$.params.id;
|
|
22
|
+
app.findOne({_id:$req$$.user.current_id_app}).lean().exec(function($e$$,$app_info$$){if($e$$||!$app_info$$)return $res$$.status(400).send("Kh\u00f4ng th\u1ec3 stream file n\u00e0y");model.findOne({_id:$id$$}).lean().exec(async($e$jscomp$6_file_name$$,$output$jscomp$2_rs$$)=>{if($e$jscomp$6_file_name$$)return $res$$.status(400).send($e$jscomp$6_file_name$$);if($output$jscomp$2_rs$$){$e$jscomp$6_file_name$$=$output$jscomp$2_rs$$.file.name;var $file$jscomp$1_root$$=$req$$.params.file;".ts"==$file$jscomp$1_root$$.substr(-3)&&
|
|
23
|
+
($e$jscomp$6_file_name$$=$file$jscomp$1_root$$);$file$jscomp$1_root$$=configs.paths.videos;$file$jscomp$1_root$$||($file$jscomp$1_root$$=__dirname,$file$jscomp$1_root$$=path.dirname($file$jscomp$1_root$$),$file$jscomp$1_root$$=path.dirname($file$jscomp$1_root$$),$file$jscomp$1_root$$=path.join($file$jscomp$1_root$$,"videos"));$output$jscomp$2_rs$$=path.join($file$jscomp$1_root$$,$output$jscomp$2_rs$$._id.toString(),$e$jscomp$6_file_name$$);if(fs.existsSync($output$jscomp$2_rs$$)){const $readStream$$=
|
|
24
|
+
fs.createReadStream($output$jscomp$2_rs$$);$readStream$$.on("open",function(){$readStream$$.pipe($res$$)});$readStream$$.on("error",function($err$$){$res$$.end($err$$)})}else $res$$.status(400).send("File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i")}else $res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y")})})})})};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';const model=global.getModel("participant"),User=global.getModel("user"),usergroup=global.getModel("usergroup"),controller=require("../../controllers/controller"),async=require("async"),permission=require("../../libs/permission");
|
|
2
2
|
module.exports=function($router$$){(new controller($router$$,model,"participant",{sort:{date_created:1},unique:["id_app","email"],onFinding:async($user$$,$condition$$,$next$$)=>{if($condition$$.groups&&!$condition$$.group_id)try{let $groups$$=(await usergroup.getList($user$$.current_id_app,$condition$$.groups)).map($g$$=>$g$$._id);delete $condition$$.groups;$groups$$=$groups$$.concat([null,"",void 0]);$condition$$.group_id={$in:$groups$$};$next$$(null,$condition$$)}catch($e$$){$next$$($e$$.message)}else $next$$(null,
|
|
3
|
-
$condition$$)},onFound:($user$$,$condition$$,$items$$,$next$$)=>{$next$$(null,$items$$)},onView:($user$$,$items$$,$next$$)=>{async.parallel({u:$callback$$=>{$items$$.joinModel2(null,User,[{where:{email:"email"},fields:[{picture:"picture"}]}],function(){$callback$$()})},group:$callback$$=>{$items$$.joinModel2($user$$.current_id_app,usergroup,[{where:{group_id:"_id"},fields:["group_name","is_customer_group","is_employee_group"]}],
|
|
4
|
-
($
|
|
5
|
-
|
|
6
|
-
$next$$(
|
|
3
|
+
$condition$$)},onFound:($user$$,$condition$$,$items$$,$next$$)=>{$next$$(null,$items$$)},onView:($user$$,$items$$,$next$$)=>{async.parallel({u:$callback$$=>{$items$$.joinModel2(null,User,[{where:{email:"email"},fields:[{picture:"picture"}],setFields:($item$$,$ref$$)=>{$item$$.name||($item$$.name=$ref$$.name)}}],function(){$callback$$()})},group:$callback$$=>{$items$$.joinModel2($user$$.current_id_app,usergroup,[{where:{group_id:"_id"},fields:["group_name","is_customer_group","is_employee_group"]}],
|
|
4
|
+
function(){$callback$$()})},verified:$callback$$=>{$items$$.joinModel2($user$$.current_id_app,global.getModel("assuser_identity"),[{where:{email:"user_created"},fields:[{trang_thai_xac_thuc:"trang_thai"}],setFields:($item$$,$ref$$)=>{$item$$.name||($item$$.name=$ref$$.name)}}],function(){$items$$.filter($i$$=>$i$$.trang_thai_xac_thuc).joinModel2(null,global.getModel("trangthai"),[{where:$item$$=>({ma_trang_thai:$item$$.trang_thai_xac_thuc,ma_ct:"ASSUSER_IDENTITY"}),fields:[{ten_trang_thai_xac_thuc:"ten_trang_thai"},
|
|
5
|
+
"color"]}],function(){$callback$$()})})}},()=>{$items$$.forEach($item$$=>{$item$$.real_name&&($item$$.name=$item$$.real_name)});$next$$(null,$items$$)})},onUpdating:async($user$$,$data$$,$obj$$,$next$$)=>{$data$$.admin&&!$obj$$.admin?permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$)return $next$$($e$$);if(!$admin$$)return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1eb7t ng\u01b0\u1eddi n\u00e0y l\u00e0 ng\u01b0\u1eddi qu\u1ea3n tr\u1ecb");$next$$(null,
|
|
6
|
+
$data$$,$obj$$)}):$next$$(null,$data$$,$obj$$)},onCreated:($user$$,$obj$$,$next$$)=>{$obj$$.auto_create_user&&$obj$$.password?User.findOne({email:$obj$$.email},($e$jscomp$0$$,$rs$$)=>{if($e$jscomp$0$$||$rs$$)return $next$$(null,$obj$$),console.log($e$jscomp$0$$||`User ${$obj$$.email} \u0111\u00e3 t\u1ed3n t\u1ea1i`);$e$jscomp$0$$=new User;$e$jscomp$0$$.email=$obj$$.email;$e$jscomp$0$$.name=$obj$$.name;$e$jscomp$0$$.local={};$e$jscomp$0$$.local.email=$obj$$.email;$e$jscomp$0$$.local.name=$obj$$.name;
|
|
7
|
+
$e$jscomp$0$$.local.password=$e$jscomp$0$$.generateHash($obj$$.password);$e$jscomp$0$$.save($e$$=>{if($e$$)return model.remove({_id:$obj$$._id}),$next$$(`Kh\u00f4ng th\u1ec3 t\u1ea1o ng\u01b0\u1eddi d\u00f9ng ${$obj$$.email}, L\u1ed7i: ${$e$$.message}`);$next$$(null,$obj$$)})}):$next$$(null,$obj$$)}})).route()};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';const controller=require("../../controllers/controllerRPT"),{bcQuery}=require("../../libs/blockchainconnect"),moment=require("moment");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"assinterest",async function($condition_req$$,$callback$$){$condition_req$$=$condition_req$$.query;let $obj$$="all-";$condition_req$$.id_period?$obj$$="period-"+$condition_req$$.id_period+"-":$condition_req$$.id_product&&($obj$$="product-"+$condition_req$$.id_period+"-");if(Number($condition_req$$.nam||0)&&($obj$$=$obj$$+$condition_req$$.nam+"-",Number($condition_req$$.quy)&&($obj$$=$obj$$+$condition_req$$.quy+"-"),Number($condition_req$$.thang))){if(!Number($condition_req$$.quy)){const $quy$$=
|
|
3
3
|
moment([Number($condition_req$$.nam),Number($condition_req$$.thang)-1,1]).quarter();$obj$$=$obj$$+$quy$$+"-"}$obj$$=$obj$$+$condition_req$$.thang+"-";$condition_req$$.ngay&&($obj$$+=$condition_req$$.ngay)}try{let $rs$$=(await bcQuery(`transferlogs/action-interest/${$obj$$}`)).TransferLog||[];await $rs$$.asyncJoinModel2($condition_req$$.id_app,"assproduct",{where:{idProduct:"id"},fields:"ten_san_pham"});await $rs$$.asyncJoinModel2($condition_req$$.id_app,"assperiod",{where:{idPeriod:"id"},fields:["ten_ky_han",
|
|
4
|
-
"lai_suat_cam_ket","lai_suat_truoc_han","lai_suat_thoi_gian_con_lai","lai_suat_tang_them_so_huu_token"]});await $rs$$.asyncJoinModel2($condition_req$$.id_app,"asskey",{where:{receiver:"address"},fields:["name","username"]});$rs$$.forEach($r$$=>{$r$$.date=new Date(1E3*Number($r$$.date));$r$$.bold=!1;$r$$.amount=
|
|
5
|
-
break;case "truochan":$r$$.lai_suat=$r$$.lai_suat_truoc_han;break;case "ngtoken":$r$$.lai_suat=$r$$.lai_suat_tang_them_so_huu_token;break;case "cdttttruochan":$r$$.lai_suat=$r$$.lai_suat_thoi_gian_con_lai}});$rs$$.push({memo:"T\u1ed5ng c\u1ed9ng",bold:!0,amount:$rs$$.map($r$$=>$r$$.amount).reduce(($a$$,$b$$)
|
|
4
|
+
"lai_suat_cam_ket","lai_suat_truoc_han","lai_suat_thoi_gian_con_lai","lai_suat_tang_them_so_huu_token"]});await $rs$$.asyncJoinModel2($condition_req$$.id_app,"asskey",{where:{receiver:"address"},fields:["username"]});await $rs$$.asyncJoinModel2(null,"user",{where:{username:"email"},fields:["name"]});await $rs$$.asyncJoinModel2($condition_req$$.id_app,"customer",{where:{username:"of_user"},fields:["ma_kh","ten_kh"]});$rs$$.forEach($r$$=>{$r$$.date=new Date(1E3*Number($r$$.date));$r$$.bold=!1;$r$$.amount=
|
|
5
|
+
Number($r$$.amount);$r$$.tokenAmount=Number($r$$.tokenAmount);$r$$.tokenValue=Number($r$$.tokenValue);$r$$.lai_suat=0;switch($r$$.subAction){case "camket":$r$$.lai_suat=$r$$.lai_suat_cam_ket;break;case "truochan":$r$$.lai_suat=$r$$.lai_suat_truoc_han;break;case "ngtoken":$r$$.lai_suat=$r$$.lai_suat_tang_them_so_huu_token;break;case "cdttttruochan":$r$$.lai_suat=$r$$.lai_suat_thoi_gian_con_lai}});$rs$$.push({memo:"T\u1ed5ng c\u1ed9ng",bold:!0,amount:$rs$$.map($r$$=>$r$$.amount).reduce(($a$$,$b$$)=>
|
|
6
|
+
$a$$+$b$$,0)});$callback$$(null,$rs$$)}catch($e$$){$callback$$($e$$)}})};
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"thgt",function($req$$,$callback$jscomp$0$$){const $condition$$=$req$$.query;if(!$condition$$.nam||!$condition$$.thang)return $callback$jscomp$0$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: nam,thang");$condition$$.nam=Number($condition$$.nam);$condition$$.thang=Number($condition$$.thang);(new Promise(($resolve$$,$reject$$)=>{let $cond$$={id_app:$condition$$.id_app,nam:$condition$$.nam,thang:$condition$$.thang,
|
|
3
3
|
yt_trung_gian:{$ne:!0}};$condition$$.ma_bp&&($cond$$.ma_bp=$condition$$.ma_bp.toUpperCase());$condition$$.id_lenhsx&&mongoose.Types.ObjectId.isValid($condition$$.id_lenhsx)&&($cond$$.id_lenhsx=$condition$$.id_lenhsx);console.log("dieu kien lay chi tiet gia thanh",$cond$$);gt_ctgt.find($cond$$).lean().exec(($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);$rs$$.forEach($r$$=>{"2"==$r$$.cong_tru&&($r$$.gt=-$r$$.gt,$r$$.gt_nt=-$r$$.gt_nt,$r$$.t_gt=-$r$$.t_gt,$r$$.t_gt_nt=-$r$$.t_gt_nt)});$resolve$$($rs$$)})})).then($ctgt$$=>
|
|
4
4
|
new Promise(($resolve$$,$reject$$)=>{async.parallel({dsyt:$callback$$=>{$ctgt$$.groupBy(["ma_yt"],["gt"],($e$$,$yts$$)=>{$callback$$(null,$yts$$)})},thgt:$callback$$=>{$ctgt$$.groupBy(["ma_sp","ma_bp","id_lenhsx"],["gt","gt_nt","t_gt","t_gt_nt"],($e$$,$rs$$)=>{$callback$$(null,$rs$$)},{fieldmaxs:["sl_dd_dk","sl_nk_tk","sl_sx_tk","sl_dd_ck"]})}},($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);const $report$$=$rs$$.thgt;$ctgt$$.forEach($ytgt$$=>{const $r$$=underscore.find($report$$,$re$$=>$re$$.ma_sp==
|
|
5
|
-
$ytgt$$.ma_sp&&$re$$.ma_bp==$ytgt$$.ma_bp&&$re$$.id_lenhsx==$ytgt$$.id_lenhsx);$r$$&&($r$$[$ytgt$$.ma_yt]=$ytgt$$.t_gt,$r$$[$ytgt$$.ma_yt+"_nt"]=$ytgt$$.t_gt_nt)});$resolve$$({report:$report$$,dsyt:$rs$$.dsyt})})})).then($rs$$=>{$rs$$.report.
|
|
6
|
-
$sum$$,($e$$,$tc$$)=>{$tc$$.forEach($r$$=>{$r$$.bold=!0;$r$$.ten_sp="T\u1ed5ng c\u1ed9ng";$rs$$.report.push($r$$)})});console.log("tong hop gia thanh",$rs$$);$callback$jscomp$0$$(null,$rs$$)})}).catch($e$$=>{console.log("error",$e$$);$callback$jscomp$0$$($e$$)})})};
|
|
5
|
+
$ytgt$$.ma_sp&&$re$$.ma_bp==$ytgt$$.ma_bp&&$re$$.id_lenhsx==$ytgt$$.id_lenhsx);$r$$&&($r$$[$ytgt$$.ma_yt]=$ytgt$$.t_gt,$r$$[$ytgt$$.ma_yt+"_nt"]=$ytgt$$.t_gt_nt)});$resolve$$({report:$report$$,dsyt:$rs$$.dsyt})})})).then(async $rs$$=>{await $rs$$.report.filter($r$$=>$r$$.id_lenhsx).asyncJoinModel2($condition$$.id_app,"lenhsx",[{where:{id_lenhsx:"_id"},fields:[{name:"so_lenhsx",value:"so_ct"}]}]);$rs$$.report.joinModel2($condition$$.id_app,dmvt,[{where:{ma_sp:"ma_vt"},fields:[{name:"ten_sp",value:"ten_vt"}]}],
|
|
6
|
+
()=>{const $sum$$="sl_dd_dk sl_sx_tk sl_nk_tk sl_dd_ck t_gt t_gt_nt".split(" ");$rs$$.dsyt.forEach($yt$$=>{$sum$$.push($yt$$.ma_yt)});$rs$$.report.groupBy([],$sum$$,($e$$,$tc$$)=>{$tc$$.forEach($r$$=>{$r$$.bold=!0;$r$$.ten_sp="T\u1ed5ng c\u1ed9ng";$rs$$.report.push($r$$)})});console.log("tong hop gia thanh",$rs$$);$callback$jscomp$0$$(null,$rs$$)})}).catch($e$$=>{console.log("error",$e$$);$callback$jscomp$0$$($e$$)})})};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
'use strict';const User=global.getModel("user"),log=global.getModel("log"),Customer=global.getModel("customer"),Endpoint=global.getModel("endpoint"),getNotifies=require("../../libs/getNotifies"),redisCache=require("../../libs/redis-cache"),underscore=require("underscore"),async=require("async"),fs=require("fs"),{isSupperAdmin}=require("../../libs/utils"),path=require("path"),Token=global.getModel("token"),gm=require("gm").subClass({imageMagick:!0}),request=
|
|
1
|
+
'use strict';const User=global.getModel("user"),log=global.getModel("log"),Customer=global.getModel("customer"),Endpoint=global.getModel("endpoint"),getNotifies=require("../../libs/getNotifies"),redisCache=require("../../libs/redis-cache"),underscore=require("underscore"),async=require("async"),fs=require("fs"),{isSupperAdmin}=require("../../libs/utils"),permission=require("../../libs/permission"),path=require("path"),Token=global.getModel("token"),gm=require("gm").subClass({imageMagick:!0}),request=
|
|
2
|
+
require("request"),findByToken=User.findByToken;
|
|
2
3
|
module.exports=function($router$$){const $usersAdmin$$=configs.admins;$router$$.route("/user").get(function($req$$,$res$$){const $access_token$$=$req$$.query.access_token;findByToken($access_token$$,$req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,function($e$$,$user$$){if($e$$)return $res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$});$user$$?($user$$.local=$user$$.local||{},$user$$.address=$user$$.local.address?$user$$.local.address:"",$user$$.phone=$user$$.local.phone?
|
|
3
4
|
$user$$.local.phone:"",$user$$.has_pin=$user$$.local.pin?!0:!1,$user$$.token=$access_token$$,$user$$.admin=underscore.contains($usersAdmin$$,$user$$.email)||isSupperAdmin($user$$.email.toLowerCase()),!$user$$.picture&&$user$$.local.picture&&($user$$.picture=$user$$.local.picture),console.log(JSON.stringify($user$$)),delete $user$$.tokens,delete $user$$.facebook,delete $user$$.google,delete $user$$.password,delete $user$$.pin,delete $user$$.local.pin,delete $user$$.local.rePassword,delete $user$$.local.password,
|
|
4
5
|
$res$$.send($user$$)):$res$$.status(404).send({error:"Token kh\u00f4ng t\u1ed3n t\u1ea1i"})})});$router$$.route("/profile").get(function($req$$,$res$$){const $email$$=$req$$.query.email,$query$$={};async.parallel({e:function($callback$$){$email$$?($query$$.email=$email$$,User.findOne($query$$).lean().exec(function($error$$,$user$$){if($error$$)return $callback$$($error$$);$callback$$(null,$user$$)})):$callback$$()},t:function($callback$$){$email$$?$callback$$():findByToken($req$$.query.access_token,
|
|
@@ -28,18 +29,20 @@ $rs$$.name,$cust$$.save(($e$$,$_cust$$)=>{if($e$$)return console.error("can't up
|
|
|
28
29
|
$router$$.route("/changepasswordByAdmin").post(function($req$$,$res$$){let $body$$=$req$$.body;if(!$body$$.newPassword)return $res$$.status(400).send({error:"B\u1ea1n ch\u01b0a nh\u1eadp m\u1eadt kh\u1ea9u m\u1edbi"});if($body$$.newPassword){if($body$$.reNewPassword!==$body$$.newPassword)return $res$$.status(400).send({error:"M\u1eadt kh\u1ea9u x\u00e1c nh\u1eadn kh\u00f4ng ch\u00ednh x\u00e1c"});if(!User.teststrengthPassword($body$$.newPassword))return $res$$.status(400).send({error:"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"})}findByToken($req$$.query.access_token,
|
|
29
30
|
$req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,function($error$jscomp$0$$,$user$$){if($error$jscomp$0$$)return $res$$.status(400).send({error:$error$jscomp$0$$.message||$error$jscomp$0$$.error||$error$jscomp$0$$});if(!$user$$)return $res$$.status(400).send({error:"token kh\u00f4ng c\u00f3 gi\u00e1 tr\u1ecb"});if(underscore.contains($usersAdmin$$,$user$$.email)||isSupperAdmin($user$$.email.toLowerCase()))User.findOne({email:$body$$.email},function($e$jscomp$0$$,$u$$){if($e$jscomp$0$$||
|
|
30
31
|
!$u$$)return $res$$.status(400).send({error:$body$$.email+" ch\u01b0a \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd"});$u$$.local.password=$u$$.generateHash($body$$.newPassword);$u$$.local.rspassword=null;$u$$.save(function($error$$){if($error$$)return $res$$.status(400).send($error$$);Token.deleteMany({email:$body$$.email,ip:{$in:["",null,void 0]}},$e$$=>{$e$$&&console.log("error when remove old tokens",$e$$)});log.create({id_app:"CHANGEPASSWORD",id_func:"CHANGEPASSWORD",action:"CHANGEPASSWORD"},$u$$.email,
|
|
31
|
-
$req$$.header("user-agent"),$req$$);redisCache.set("user",$u$$.toObject(),function($e$$){$e$$?console.error($e$$):console.log("cache user infomation to redis")});$res$$.send({message:"\u0110\u00e3 c\u1eadp nh\u1eadt th\u00e0nh c\u00f4ng"})})});else return $res$$.status(400).send({error:"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n thay \u0111\u1ed5i m\u1eadt kh\u1ea9u c\u1ee7a ng\u01b0\u1eddi s\u1eed d\u1ee5ng n\u00e0y"})})});$router$$.route("/
|
|
32
|
-
$req$$.
|
|
33
|
-
$
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
$
|
|
37
|
-
$
|
|
38
|
-
if(
|
|
39
|
-
$user$$.local.
|
|
40
|
-
$
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
$
|
|
45
|
-
|
|
32
|
+
$req$$.header("user-agent"),$req$$);redisCache.set("user",$u$$.toObject(),function($e$$){$e$$?console.error($e$$):console.log("cache user infomation to redis")});$res$$.send({message:"\u0110\u00e3 c\u1eadp nh\u1eadt th\u00e0nh c\u00f4ng"})})});else return $res$$.status(400).send({error:"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n thay \u0111\u1ed5i m\u1eadt kh\u1ea9u c\u1ee7a ng\u01b0\u1eddi s\u1eed d\u1ee5ng n\u00e0y"})})});$router$$.route("/delete").get(function($req$$,$res$$){findByToken($req$$.query.access_token,
|
|
33
|
+
$req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,async function($error$$,$_user$$){if($error$$||!$_user$$)return $res$$.status(400).send({error:$error$$.message||$error$$.error||$error$$||"Kh\u00f4ng th\u1ec3 t\u00ecm th\u1ea5y t\u00e0i kho\u1ea3n n\u00e0y",code:1100});try{await permission.verifyOTP($_user$$.email,$req$$.query["otp-id"],$req$$.query["otp-code"]),await global.getModel("participant").deleteMany({email:$_user$$.email}),await global.getModel("user").deleteMany({email:$_user$$.email}),
|
|
34
|
+
$res$$.send({ok:!0,message:"T\u00e0i kho\u1ea3n c\u1ee7a b\u1ea1n \u0111\u00e3 \u0111\u01b0\u1ee3c x\u00f3a th\u00e0nh c\u00f4ng"})}catch($e$$){return console.error($e$$),$res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$,code:4001})}})});$router$$.route("/changepassword").post(function($req$$,$res$$){let $access_token$$=$req$$.query.access_token;findByToken($access_token$$,$req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,async function($error$jscomp$0$$,$_user$$){if($error$jscomp$0$$)return $res$$.status(400).send({error:$error$jscomp$0$$.message||
|
|
35
|
+
$error$jscomp$0$$.error||$error$jscomp$0$$});if($_user$$){let $user$$=await User.findOne({email:$_user$$.email});if(!$user$$)return $res$$.status(404).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y ng\u01b0\u1eddi d\u00f9ng "+$_user$$.email});$error$jscomp$0$$=$req$$.body;$_user$$=await Token.findOne({token:$access_token$$})||{};if($user$$.local.password&&!$_user$$.once){if(!$error$jscomp$0$$.oldPassword)return $res$$.status(400).send({error:"B\u1ea1n ch\u01b0a nh\u1eadp m\u1eadt kh\u1ea9u hi\u1ec7n t\u1ea1i"});
|
|
36
|
+
if(!$user$$.validPassword($error$jscomp$0$$.oldPassword))return $res$$.status(400).send({error:"M\u1eadt kh\u1ea9u hi\u1ec7n t\u1ea1i kh\u00f4ng ch\u00ednh x\u00e1c"})}if($error$jscomp$0$$.newPassword){if($error$jscomp$0$$.reNewPassword!==$error$jscomp$0$$.newPassword)return $res$$.status(400).send({error:"M\u1eadt kh\u1ea9u x\u00e1c nh\u1eadn kh\u00f4ng ch\u00ednh x\u00e1c"});if(!User.teststrengthPassword($error$jscomp$0$$.newPassword))return $res$$.status(400).send({error:"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"})}else return $res$$.status(400).send({error:"B\u1ea1n ch\u01b0a nh\u1eadp m\u1eadt kh\u1ea9u m\u1edbi"});
|
|
37
|
+
$user$$.local.password=$user$$.generateHash($error$jscomp$0$$.newPassword);$user$$.local.rspassword=null;$user$$.save(function($error$$){if($error$$)return $res$$.status(400).send($error$$);Token.deleteMany({email:$user$$.email,token:{$ne:$access_token$$},ip:{$in:["",null,void 0]}},$e$$=>{$e$$&&console.error("error when remove old tokens",$e$$)});log.create({id_app:"CHANGEPASSWORD",id_func:"CHANGEPASSWORD",action:"CHANGEPASSWORD"},$user$$.email,$req$$.header("user-agent"),$req$$);redisCache.set("user",
|
|
38
|
+
$user$$.toObject(),function($e$$){$e$$?console.error($e$$):console.log("cache user infomation to redis")});$res$$.send({message:"\u0110\u00e3 c\u1eadp nh\u1eadt th\u00e0nh c\u00f4ng"})})}else return $res$$.status(404).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y ng\u01b0\u1eddi d\u00f9ng n\u00e0y"})})});$router$$.route("/changepin").post(function($req$$,$res$$){let $access_token$$=$req$$.query.access_token;findByToken($access_token$$,$req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,
|
|
39
|
+
async function($error$jscomp$17_passwords$$,$_user$jscomp$4_token$$){if($error$jscomp$17_passwords$$)return $res$$.status(400).send({error:$error$jscomp$17_passwords$$.message||$error$jscomp$17_passwords$$.error||$error$jscomp$17_passwords$$});if($_user$jscomp$4_token$$){let $user$$=await User.findOne({email:$_user$jscomp$4_token$$.email});if(!$user$$)return $res$$.status(404).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y ng\u01b0\u1eddi d\u00f9ng "+$_user$jscomp$4_token$$.email});$error$jscomp$17_passwords$$=
|
|
40
|
+
$req$$.body;$_user$jscomp$4_token$$=await Token.findOne({token:$access_token$$})||{};if($user$$.local.password&&!$_user$jscomp$4_token$$.once){if(!$error$jscomp$17_passwords$$.oldPassword)return $res$$.status(400).send({error:"B\u1ea1n ch\u01b0a nh\u1eadp m\u1eadt kh\u1ea9u"});if(!$user$$.validPassword($error$jscomp$17_passwords$$.oldPassword))return $res$$.status(400).send({error:"M\u1eadt kh\u1ea9u kh\u00f4ng ch\u00ednh x\u00e1c"})}if($error$jscomp$17_passwords$$.newPin){if($error$jscomp$17_passwords$$.reNewPin!==
|
|
41
|
+
$error$jscomp$17_passwords$$.newPin)return $res$$.status(400).send({error:"S\u1ed1 PIN x\u00e1c nh\u1eadn kh\u00f4ng ch\u00ednh x\u00e1c"});if(!User.teststrengthPin($error$jscomp$17_passwords$$.newPin))return $res$$.status(400).send({error:"S\u1ed1 Pin kh\u00f4ng h\u1ee3p l\u1ec7"})}else return $res$$.status(400).send({error:"B\u1ea1n ch\u01b0a nh\u1eadp s\u1ed1 PIN"});$user$$.local.pin=$user$$.generateHash($error$jscomp$17_passwords$$.newPin);$user$$.save(function($error$$){if($error$$)return $res$$.status(400).send($error$$);
|
|
42
|
+
log.create({id_app:"CHANGEPIN",id_func:"CHANGEPIN",action:"CHANGEPIN"},$user$$.email,$req$$.header("user-agent"),$req$$);redisCache.set("user",$user$$.toObject(),function($e$$){$e$$?console.error($e$$):console.log("cache user infomation to redis")});$res$$.send({message:"\u0110\u00e3 c\u1eadp nh\u1eadt th\u00e0nh c\u00f4ng"})})}else return $res$$.status(404).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y ng\u01b0\u1eddi d\u00f9ng n\u00e0y"})})});$router$$.route("/user/logout").get(function($req$$,$res$$){var $access_token$$=
|
|
43
|
+
$req$$.query.access_token;findByToken($access_token$$,$req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,function($error$$,$user$$){if($error$$)return $res$$.status(400).send({error:$error$$.message||$error$$.error||$error$$});Token.deleteMany({token:$access_token$$},function($ep_id_error$$){if($ep_id_error$$)return $res$$.status(400).send($ep_id_error$$);($ep_id_error$$=global.clientIO[$access_token$$])&&global.socketIO&&$ep_id_error$$.forEach($id$$=>{global.socketIO.in($id$$).fetchSockets().then($sockets$$=>
|
|
44
|
+
{for(const $socket$$ of $sockets$$)$socket$$.disconnect()})});log.create({id_app:"LOGOUT",id_func:"LOGOUT",action:"LOGOUT"},$user$$.email,$req$$.header("user-agent"),$req$$);$req$$.query.ep&&($ep_id_error$$=(new Buffer($req$$.query.ep)).toString("base64"),Endpoint.deleteMany({ep_id:$ep_id_error$$},function($e$$){$e$$&&console.log("error when log out endpoint",$e$$)}));$res$$.send({message:$user$$.email+" logged out"})})})});$router$$.route("/notifies").get(function($req$$,$res$$){getNotifies($req$$.user.email,
|
|
45
|
+
function($error$$,$notifies$$){if($error$$)return $res$$.status(400).send({error:$error$$.message||$error$$.error||$error$$});$res$$.send($notifies$$)})});$router$$.route("/register-endpoint").get(function($req$$,$res$$){var $endpoint$$=$req$$.query.ep;if($endpoint$$){var $ep_id$$=(new Buffer($endpoint$$)).toString("base64");Endpoint.findOne({ep_id:$ep_id$$},function($e$jscomp$0$$,$ep$$){if($e$jscomp$0$$)return $res$$.status(400).send($e$jscomp$0$$);$ep$$?($ep$$.user=$req$$.user.email,$ep$$.userAuth=
|
|
46
|
+
$req$$.query.userAuth,$ep$$.userPublicKey=$req$$.query.userPublicKey):$ep$$=new Endpoint({ep_id:$ep_id$$,user:$req$$.user.email,endpoint:$endpoint$$,userAuth:$req$$.query.userAuth,userPublicKey:$req$$.query.userPublicKey});$ep$$.save(function($e$$,$rs$$){if($e$$)return $res$$.status(400).send($e$$);$res$$.send($rs$$)})})}else $res$$.status(400).send({error:"H\u00e0m register-endpoint y\u00eau c\u1ea7u tham s\u1ed1 'ep'"})});$router$$.route("/remove-endpoint").get(function($req$$,$res$$){Endpoint.deleteMany({endpoint:$req$$.query.ep},
|
|
47
|
+
$e$$=>{if($e$$)return console.error($e$$);$res$$.send("success!")})});let $wallet$$=global.getModel("wallet");$router$$.route("/sign").post(function($req$$,$res$$){let $access_token$$=$req$$.query.access_token,$dataToSign$$=$req$$.body,$id_app$$=$dataToSign$$.id_app;if(!$id_app$$)return $res$$.status(400).send("Data for sign miss id_app");findByToken($access_token$$,$req$$.ip||$req$$.headers["x-forwarded-for"]||$req$$.connection.remoteAddress,async function($error$$,$user$$){if($error$$)return $res$$.status(400).send($error$$);
|
|
48
|
+
if($user$$)try{let $signature$$=await $wallet$$.sign($id_app$$,$user$$.email,$dataToSign$$);$res$$.send({signature:$signature$$})}catch($e$$){$res$$.status(400).send({error:$e$$.message||$e$$.error||$e$$})}else $res$$.status(400).send({error:"Not found user"})})})};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
'use strict';const PostBook=require("../../libs/post-book"),PostSocai=require("../../libs/post-socai"),Sokho=global.getModel("sokho"),Sokhott=global.getModel("sokhott"),dvcs=global.getModel("dvcs"),dmvt=global.getModel("dmvt"),dmkho=global.getModel("dmkho"),
|
|
2
|
-
async=require("async"),ma_ct="PKK";
|
|
1
|
+
'use strict';const PostBook=require("../../libs/post-book"),PostSocai=require("../../libs/post-socai"),Sokho=global.getModel("sokho"),Sokhott=global.getModel("sokhott"),dvcs=global.getModel("dvcs"),dmvt=global.getModel("dmvt"),dmkho=global.getModel("dmkho"),model=global.getModel("pkk"),controller=require("../../controllers/controller"),trangthai=global.getModel("trangthai"),async=require("async"),ma_ct="PKK";
|
|
3
2
|
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,ma_ct.toLowerCase(),{isVoucher:!0,check_stock:!1,sort:{ngay_ct:-1,so_ct:-1},unique:["so_ct"]});$contr_router$$.route();$contr_router$$.post=function($obj$$,$fn$$){$fn$$||($fn$$=function(){});async.parallel({post_sokho:function($callback$jscomp$0$$){(new PostBook($obj$$,[...$obj$$.details.filter($d$$=>$d$$.sl_xuat)],Sokho,async function($_detail_detail$$,$callback$$){$_detail_detail$$={...$_detail_detail$$};
|
|
4
3
|
0>$_detail_detail$$.sl_xuat?($_detail_detail$$.nxt=1,$_detail_detail$$.ma_kho=$obj$$.ma_kho||$_detail_detail$$.ma_kho,$_detail_detail$$.pn_gia_tb=!$_detail_detail$$.px_gia_dd,$_detail_detail$$.sl_nhap=Math.abs($_detail_detail$$.sl_xuat),$_detail_detail$$.tien_nhap_nt=Math.abs($_detail_detail$$.tien_xuat_nt),$_detail_detail$$.tien_nhap=Math.abs($_detail_detail$$.tien_xuat),$_detail_detail$$.sl_xuat=0,$_detail_detail$$.tien_xuat_nt=0,$_detail_detail$$.tien_xuat=0):($_detail_detail$$.nxt=2,$_detail_detail$$.ma_kho=
|
|
5
4
|
$obj$$.ma_kho||$_detail_detail$$.ma_kho,$_detail_detail$$.he_so_qd=1,$_detail_detail$$.sl_xuat_qd=$_detail_detail$$.sl_xuat*$_detail_detail$$.he_so_qd);$callback$$($_detail_detail$$)})).run(function($e$$,$rs$$){$callback$jscomp$0$$($e$$,$rs$$)})},post_sokhott:function($callback$jscomp$0$$){(new PostBook($obj$$,[...$obj$$.details.filter($d$$=>$d$$.sl_xuat)],Sokhott,async function($_detail$jscomp$1_detail$$,$callback$$){$_detail$jscomp$1_detail$$={...$_detail$jscomp$1_detail$$};0>$_detail$jscomp$1_detail$$.sl_xuat?
|
|
@@ -8,8 +7,6 @@ $obj$$.ma_kho||$_detail_detail$$.ma_kho,$_detail_detail$$.he_so_qd=1,$_detail_de
|
|
|
8
7
|
$callback$$){$_detail$jscomp$2_detail$$={...$_detail$jscomp$2_detail$$};0>$_detail$jscomp$2_detail$$.sl_xuat?($_detail$jscomp$2_detail$$.tk_co=$obj$$.tk_cl_tang||$_detail$jscomp$2_detail$$.tk_cl_tang||"6321",$_detail$jscomp$2_detail$$.tk_no=$_detail$jscomp$2_detail$$.tk_vt):($_detail$jscomp$2_detail$$.tk_no=$obj$$.tk_cl_giam||$_detail$jscomp$2_detail$$.tk_cl_giam||"6321",$_detail$jscomp$2_detail$$.tk_co=$_detail$jscomp$2_detail$$.tk_vt);$_detail$jscomp$2_detail$$.tien_nt=Math.abs($_detail$jscomp$2_detail$$.tien_xuat_nt);
|
|
9
8
|
$_detail$jscomp$2_detail$$.tien=Math.abs($_detail$jscomp$2_detail$$.tien_xuat);$callback$$($_detail$jscomp$2_detail$$)})).run(function($e$$,$rs$$){$callback$jscomp$0$$($e$$,$rs$$)})}},function($e$$,$rs$$){$fn$$($e$$,$rs$$)})};const $valid$$=function($i_user$$,$obj$$,$next$$){for($i_user$$=0;$i_user$$<$obj$$.details.length;$i_user$$++){const $detail$$=$obj$$.details[$i_user$$];$detail$$.line=$i_user$$;"VND"==$obj$$.ma_nt&&($detail$$.tien_xuat=$detail$$.tien_xuat_nt)}$next$$(null,$obj$$)};$contr_router$$.creating=
|
|
10
9
|
function($user$$,$obj$$,$next$$){$obj$$.details||($obj$$.details=[]);$valid$$($user$$,$obj$$,function($error$$){if($error$$)return $next$$($error$$);$next$$(null,$obj$$)})};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$next$$){$valid$$($user$$,$data$$,function($error$$){if($error$$)return $next$$($error$$);$next$$(null,$data$$,$obj$$)})};$contr_router$$.view=function($user$$,$items$$,$fn$$){let $id_app$$=$user$$.current_id_app;async.parallel({dv:function($callback$$){$items$$.filter($item$$=>
|
|
11
|
-
$item$$.ma_dvcs).joinModel($id_app$$,dvcs,[{akey:"ma_dvcs",bkey:"_id",fields:[{name:"ten_dvcs",value:"ten_dvcs"}]}],function(){$callback$$()})},trangthai:function($callback$$){$items$$.filter($item$$=>$item$$.trang_thai).joinModel2(null,trangthai,[{where:{trang_thai:"ma_trang_thai",ma_ct:"ma_ct"},fields:["ten_trang_thai","color"]}],function(){$callback$$()})},
|
|
12
|
-
$r$$.details.csum("sl_ton_tt"),$r$$.t_sl=$r$$.details.csum("sl_xuat"),$r$$.t_tien_xuat=$r$$.details.csum("tien_xuat"),$r$$.t_tien_xuat_nt=$r$$.details.csum("tien_xuat_nt"))});$callback$$()},
|
|
13
|
-
|
|
14
|
-
value:"ten_kho"}]}],function(){$callback1$$()})},function(){$callback$$()})},details_dt:function($callback$$){async.map($items$$,function($r$$,$callback1$$){$r$$.details.filter($item$$=>$item$$.ma_dt).joinModel($id_app$$,dmdt,[{akey:"ma_dt",bkey:"ma_dt",fields:[{name:"ten_dt",value:"ten_dt"}]}],function(){$callback1$$()})},function(){$callback$$()})},details_contract:function($callback$$){async.map($items$$,function($r$$,$callback1$$){$r$$.details.filter($item$$=>$item$$.ma_hd).joinModel($id_app$$,
|
|
15
|
-
contract,[{akey:"ma_hd",bkey:"so_hd",fields:[{name:"ten_hd",value:"ten_hd"}]}],function(){$callback1$$()})},function(){$callback$$()})},details_phi:function($callback$$){async.map($items$$,function($r$$,$callback1$$){$r$$.details.filter($item$$=>$item$$.ma_phi).joinModel($id_app$$,dmphi,[{akey:"ma_phi",bkey:"ma_phi",fields:[{name:"ten_phi",value:"ten_phi"}]}],function(){$callback1$$()})},function(){$callback$$()})}},function(){$fn$$(null,$items$$)})}};
|
|
10
|
+
$item$$.ma_dvcs).joinModel($id_app$$,dvcs,[{akey:"ma_dvcs",bkey:"_id",fields:[{name:"ten_dvcs",value:"ten_dvcs"}]}],function(){$callback$$()})},kho:function($callback$$){$items$$.filter($item$$=>$item$$.ma_kho).joinModel2($id_app$$,dmkho,[{where:"ma_kho",fields:["ten_kho"]}],function(){$callback$$()})},trangthai:function($callback$$){$items$$.filter($item$$=>$item$$.trang_thai).joinModel2(null,trangthai,[{where:{trang_thai:"ma_trang_thai",ma_ct:"ma_ct"},fields:["ten_trang_thai","color"]}],function(){$callback$$()})},
|
|
11
|
+
t_tien:function($callback$$){$items$$.forEach(function($r$$){$r$$.details&&($r$$.t_sl_ton_ss=$r$$.details.csum("sl_ton_ss"),$r$$.t_sl_ton_tt=$r$$.details.csum("sl_ton_tt"),$r$$.t_sl=$r$$.details.csum("sl_xuat"),$r$$.t_tien_xuat=$r$$.details.csum("tien_xuat"),$r$$.t_tien_xuat_nt=$r$$.details.csum("tien_xuat_nt"))});$callback$$()},details_vt:function($callback$$){async.map($items$$,function($r$$,$callback1$$){$r$$.details.joinModel2($id_app$$,dmvt,[{where:"ma_vt",fields:[{name:"ten_vt",value:"ten_vt"}]}],
|
|
12
|
+
function(){$callback1$$()})},function(){$callback$$()})}},function(){$fn$$(null,$items$$)})}};
|