flexbiz-server 12.2.3 → 12.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/package.json +1 -1
  2. package/server/auths/local.js +27 -26
  3. package/server/controllers/controller.js +56 -55
  4. package/server/controllers/controllerRPT.js +18 -17
  5. package/server/libs/cdpstk.js +1 -1
  6. package/server/libs/databanle.js +13 -13
  7. package/server/libs/getGiaban.js +23 -22
  8. package/server/libs/post-book.js +9 -8
  9. package/server/libs/post-socai.js +9 -9
  10. package/server/libs/prototypes.js +4 -4
  11. package/server/libs/tinhGtPhanboSltp.js +5 -5
  12. package/server/libs/tinhGtPhanboYtcp.js +2 -2
  13. package/server/libs/tinhGtThcppstk.js +1 -1
  14. package/server/libs/tinhGtTrucTiep.js +8 -7
  15. package/server/libs/tinhgiatb.js +4 -4
  16. package/server/libs/tinhgiatb1vt.js +3 -3
  17. package/server/libs/tinhhoahong.js +32 -0
  18. package/server/libs/utils.js +4 -3
  19. package/server/models/app.js +9 -8
  20. package/server/models/approve.js +4 -4
  21. package/server/models/customer.js +8 -8
  22. package/server/models/dh2.js +10 -9
  23. package/server/models/dmgiaban.js +6 -6
  24. package/server/models/dmhoahonghd.js +6 -5
  25. package/server/models/fbconversation.js +9 -0
  26. package/server/models/fbmessage.js +2 -0
  27. package/server/models/fbpage.js +2 -0
  28. package/server/models/group.js +4 -2
  29. package/server/models/hd2.js +8 -8
  30. package/server/models/hd3.js +9 -9
  31. package/server/models/hd7.js +1 -1
  32. package/server/models/notification.js +3 -2
  33. package/server/models/participant.js +5 -5
  34. package/server/models/pbl.js +4 -4
  35. package/server/models/reportinfo.js +2 -2
  36. package/server/models/rptform.js +3 -2
  37. package/server/models/schedule.js +1 -1
  38. package/server/models/so1.js +7 -6
  39. package/server/models/socai.js +4 -4
  40. package/server/models/tdttco.js +8 -4
  41. package/server/models/tdttno.js +8 -4
  42. package/server/models/tokens.js +2 -2
  43. package/server/models/usergroup.js +5 -4
  44. package/server/models/vatra.js +2 -2
  45. package/server/models/vatvao.js +4 -4
  46. package/server/modules/lists/ls-assinvestment.js +1 -1
  47. package/server/modules/lists/ls-customer.js +13 -14
  48. package/server/modules/lists/ls-dmvt.js +48 -39
  49. package/server/modules/lists/ls-fbconversation.js +3 -0
  50. package/server/modules/lists/ls-fbmessage.js +3 -0
  51. package/server/modules/lists/ls-fbpage.js +10 -0
  52. package/server/modules/lists/ls-introducecode.js +1 -1
  53. package/server/modules/lists/ls-news.js +1 -1
  54. package/server/modules/lists/ls-opportunity.js +3 -3
  55. package/server/modules/lists/ls-session.js +1 -1
  56. package/server/modules/public/callin.js +6 -6
  57. package/server/modules/reports/rp-cdpstk.js +3 -3
  58. package/server/modules/reports/rp-chitiettaisan.js +9 -8
  59. package/server/modules/reports/rp-ckvt.js +9 -7
  60. package/server/modules/reports/rp-ctbanle.js +13 -12
  61. package/server/modules/reports/rp-databanle.js +8 -4
  62. package/server/modules/reports/rp-dtbanletheoct.js +16 -9
  63. package/server/modules/reports/rp-dtbanletheokh.js +12 -6
  64. package/server/modules/reports/rp-dtbanletheokho.js +14 -9
  65. package/server/modules/reports/rp-dtbanletheonam.js +15 -9
  66. package/server/modules/reports/rp-dtbanletheongay.js +13 -8
  67. package/server/modules/reports/rp-dtbanletheonv.js +15 -9
  68. package/server/modules/reports/rp-dtbanletheoquy.js +15 -9
  69. package/server/modules/reports/rp-dtbanletheothang.js +15 -9
  70. package/server/modules/reports/rp-getinvoice2pay.js +4 -6
  71. package/server/modules/reports/rp-getinvoice2receive.js +4 -6
  72. package/server/modules/reports/rp-hoahong.js +9 -0
  73. package/server/modules/reports/rp-kqhdkd.js +5 -4
  74. package/server/modules/reports/rp-ptcttct.js +7 -6
  75. package/server/modules/reports/rp-pttct.js +8 -8
  76. package/server/modules/reports/rp-pttctkho.js +3 -2
  77. package/server/modules/reports/rp-pttctkho2.js +3 -3
  78. package/server/modules/reports/rp-thnxt.js +8 -8
  79. package/server/modules/reports/rp-thnxt_sl.js +6 -6
  80. package/server/modules/reports/rp-thnxttt.js +6 -6
  81. package/server/modules/reports/rp-tmbctc.js +16 -16
  82. package/server/modules/systems/sys-app.js +25 -24
  83. package/server/modules/systems/sys-notification.js +2 -2
  84. package/server/modules/systems/sys-schedule.js +1 -1
  85. package/server/modules/systems/sys-user.js +8 -8
  86. package/server/modules/vouchers/vo-bc1.js +9 -8
  87. package/server/modules/vouchers/vo-bg2.js +9 -9
  88. package/server/modules/vouchers/vo-bn1.js +5 -4
  89. package/server/modules/vouchers/vo-dh2.js +15 -38
  90. package/server/modules/vouchers/vo-dnm.js +11 -12
  91. package/server/modules/vouchers/vo-hd2.js +63 -83
  92. package/server/modules/vouchers/vo-hd3.js +28 -22
  93. package/server/modules/vouchers/vo-hd7.js +37 -36
  94. package/server/modules/vouchers/vo-pbl.js +49 -49
  95. package/server/modules/vouchers/vo-pc1.js +9 -8
  96. package/server/modules/vouchers/vo-pn1.js +24 -22
  97. package/server/modules/vouchers/vo-pn5.js +1 -1
  98. package/server/modules/vouchers/vo-pn9.js +23 -23
  99. package/server/modules/vouchers/vo-pnc.js +8 -8
  100. package/server/modules/vouchers/vo-pnh.js +5 -5
  101. package/server/modules/vouchers/vo-pt1.js +17 -16
  102. package/server/modules/vouchers/vo-pxc.js +16 -16
  103. package/server/modules/vouchers/vo-pxh.js +12 -10
  104. package/server/modules/vouchers/vo-so1.js +94 -119
  105. package/server/modules/vouchers/vo-so4.js +1 -1
  106. package/server/modules/vouchers/vo-so5.js +2 -2
  107. package/server/workers/restoreApp.js +21 -12
  108. package/server/workers/runScript.js +3 -3
@@ -1,12 +1,21 @@
1
- 'use strict';const _global=require("../global"),async=require("async"),model=global.getModel("app"),Participant=global.getModel("participant"),fs=require("fs"),underscore=require("underscore"),JSZip=require("jszip");require("../libs/prototypes.js");const _=require("lodash"),{parentPort,workerData}=require("worker_threads"),{ObjectId}=require("mongodb");let connect2Db=!1;
2
- const replaceAll=($data$$,$old_id$$,$new_id$$,$cb$$)=>{async.mapSeries(Object.keys($data$$).filter($k$$=>"user.js"!==$k$$&&"app.js"!==$k$$),($coll$$,$cb$$)=>{$data$$[$coll$$]=$data$$[$coll$$].map($r$$=>$r$$.split($old_id$$).join($new_id$$));$cb$$()},()=>{$cb$$()})},insertOne=($coll$$,$rows$$)=>new Promise(($resolve$$,$reject$$)=>{async.mapSeries($rows$$,($row$$,$callback$$)=>{let $old_id$$=$row$$._id;delete $row$$._id;$coll$$.insertOne($row$$,($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$callback$$(null,
3
- {old_id:$old_id$$,new_id:$rs$$.insertedId.toString()})})},($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);$resolve$$($rs$$)})}),insert=($col_name$$,$coll$$,$rows$$,$id_app$$)=>{$rows$$=$rows$$.map($row$$=>{delete $row$$.__v;delete $row$$.pkey;$row$$.id_app=$id_app$$;return $row$$});return insertOne($coll$$,$rows$$)},restore=$message$$=>{if($message$$.configs&&_.isString($message$$.configs))try{$message$$.configs=JSON.parse($message$$.configs)}catch($e$$){delete $message$$.configs,console.info($e$$)}const $configs$$=
4
- $message$$.configs||require("../configs");connect2Db||(mongoose.connect($configs$$.database.url,{useNewUrlParser:!0}),connect2Db=!0);let $id_app$$=$message$$.id,$user$$=$message$$.user,$fileZip$$=$message$$.file;model.findOne({_id:$id_app$$}).lean().exec(async($e$jscomp$1$$,$app$$)=>{if($e$jscomp$1$$||!$app$$)return parentPort.postMessage({error:$e$jscomp$1$$||"C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i"});$e$jscomp$1$$=await Participant.findOne({email:$user$$,id_app:$id_app$$,admin:!0});
5
- if($app$$.user_created!==$user$$&&!$e$jscomp$1$$)return parentPort.postMessage({error:"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y"});fs.readFile($fileZip$$,($err$$,$dataZip$$)=>{if($err$$)return parentPort.postMessage({error:$err$$});try{JSZip.loadAsync($dataZip$$).then(function($zip$$){return $zip$$.file("backup.json").async("string")}).then($string_data$$=>{if($string_data$$){let $data$$=JSON.parse($string_data$$);async.parallel({app:$callback$$=>{let $appInfo$$=
6
- $data$$["app.js"];$appInfo$$?(delete $appInfo$$._id,delete $appInfo$$.__v,console.log("restore app info"),model.findOneAndUpdate({_id:$id_app$$},$appInfo$$,$e$$=>{if($e$$)return $callback$$($e$$);console.log("app info was restore successfull");$callback$$()})):$callback$$()},data:$callback$jscomp$0$$=>{try{let $colls$$=underscore.keys($data$$).filter($k$$=>"user.js"!==$k$$&&"app.js"!==$k$$);console.log("total collection",$colls$$.length);Promise.all($colls$$.map($col_name$$=>new Promise(($resolve$$,
7
- $reject$$)=>{let $rows$$=$data$$[$col_name$$]||[];$rows$$.forEach(($r$$,$index$$)=>{$r$$.index=$index$$});mongoose.connection.db.collection($col_name$$,($err$$,$coll$$)=>{if($err$$)return $reject$$($err$$);if(!$coll$$)return console.log("can't insert data, collection",$col_name$$,"is not exists"),$resolve$$([]);$coll$$.deleteMany({id_app:$id_app$$},$e$jscomp$0$$=>{if($e$jscomp$0$$)return $reject$$($e$jscomp$0$$);if(0===$rows$$.length)return $resolve$$([]);insert($col_name$$,$coll$$,$rows$$,$id_app$$).then($pairs$$=>
8
- {console.log("restored collection",$col_name$$,$rows$$.length);$resolve$$($pairs$$)}).catch($e$$=>{$reject$$($e$$)})})})}))).then($_pairs_pairs$$=>{$_pairs_pairs$$=$_pairs_pairs$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);console.log("inserted data");let $data_replace$$=JSON.parse($string_data$$);Object.keys($data_replace$$).filter($k$$=>"user.js"!==$k$$&&"app.js"!==$k$$).forEach($k$$=>{$data_replace$$[$k$$]=$data_replace$$[$k$$].map($r$$=>JSON.stringify($r$$))});async.mapSeries($_pairs_pairs$$,($pair$$,
9
- $cb$$)=>{setImmediate(()=>{replaceAll($data_replace$$,$pair$$.old_id,$pair$$.new_id,()=>{console.log("replace pair",$pair$$);$cb$$()})})},()=>{let $colls$$=underscore.keys($data_replace$$).filter($k$$=>"user.js"!==$k$$&&"app.js"!==$k$$);async.mapSeries($colls$$,($col_name$$,$callback3$$)=>{let $rows$$=$data_replace$$[$col_name$$];$rows$$&&0<$rows$$.length?mongoose.connection.db.collection($col_name$$,($err$$,$coll$$)=>{if($err$$)return $callback3$$($err$$);if(!$coll$$)return console.log("can't update data. collection",
10
- $col_name$$,"is not exists"),$callback3$$();async.mapSeries($rows$$,($_row_row$$,$callback$$)=>{$_row_row$$=JSON.parse($_row_row$$);delete $_row_row$$.__v;delete $_row_row$$.pkey;$_row_row$$.id_app=$id_app$$;let $_id$$=ObjectId($_row_row$$._id);delete $_row_row$$._id;$coll$$.updateOne({_id:$_id$$},{$set:$_row_row$$},($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);console.log("updated",$col_name$$,$rs$$.matchedCount,$rs$$.modifiedCount,$rs$$.upsertedId);$callback$$()})},$e$$=>{console.log("updated collection",
11
- $col_name$$,"successfull");$callback3$$($e$$)})}):$callback3$$()},$e$$=>{$e$$||console.log("all collections was restore successful");$callback$jscomp$0$$($e$$)})})}).catch($e$$=>{$callback$jscomp$0$$($e$$)})}catch($e$$){console.error($e$$),$callback$jscomp$0$$($e$$)}}},$e$$=>{if($e$$)return console.error($e$$),parentPort.postMessage({error:$e$$});console.log("database was restore successful");parentPort.postMessage({result:"Ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e3 kh\u00f4i ph\u1ee5c d\u1eef li\u1ec7u th\u00e0nh c\u00f4ng"})})}else return parentPort.postMessage({error:"File l\u01b0u tr\u1eef kh\u00f4ng c\u00f3 d\u1eef li\u1ec7u"})})}catch($e$$){return console.error($e$$),
12
- parentPort.postMessage({error:$e$$.message})}})})};parentPort.on("message",$message$$=>{$message$$?restore($message$$):parentPort.postMessage({error:"msg is not valid"})});workerData&&workerData.id&&workerData.findOne&&restore(workerData);
1
+ 'use strict';const _global=require("../global"),async=require("async"),model=global.getModel("app"),Participant=global.getModel("participant"),fs=require("fs"),JSZip=require("jszip");require("../libs/prototypes.js");const _=require("lodash"),{parentPort,workerData}=require("worker_threads"),{ObjectId}=require("mongodb");let connect2Db=!1;
2
+ const coll_ex="user.js app.js dvcs socais socaitmps vatras vatvaos tdttnos tdttcos tdttno_tts tdttco_tts files folders notes accounts dmdvts currencies dmvts sokhos sokhotts sokhokhongtons sokhocapphats cdvts dmnvs cdnpheps bangtinhluongs cdkhs cdkts cddts cddiems sophanbokhs sotinhkhs qtsdieuchinhs hspbts dmqcts pkts pkcs dmkcs calllogs".split(" "),restoreColl=async($id_app$$,$dvcs_pairs$$,$data$$,$colls$$)=>(await Promise.all($colls$$.map($col_name$$=>{console.log("restore ",$col_name$$,"...");
3
+ return new Promise(($resolve$$,$reject$$)=>{let $rows$$=$data$$[$col_name$$]||[];$rows$$.forEach(($r$$,$index$$)=>{let $time$$=(new Date).getTime();$r$$.index=$index$$+$time$$;$r$$.line=$index$$+$time$$;$r$$.nh_dk=$index$$+$time$$});mongoose.connection.db.collection($col_name$$,($err$$,$coll$$)=>{if($err$$)return $reject$$($err$$);if(!$coll$$)return console.error("can't insert data, collection",$col_name$$,"is not exists"),$resolve$$([]);$coll$$.deleteMany({id_app:$id_app$$},$e$$=>{if($e$$)return $reject$$($e$$);
4
+ if(0===$rows$$.length)return $resolve$$([]);insert($col_name$$,$coll$$,$rows$$,$id_app$$,$dvcs_pairs$$).then($pairs$$=>{$resolve$$($pairs$$)}).catch($e$$=>{$reject$$($e$$)})})})})}))).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),insertOne=($col_name$$,$id_app$$,$coll$$,$rows$$,$dvcs_pairs$$=[],$update_book$$=!0)=>new Promise(($resolve$$,$reject$$)=>{async.mapSeries($rows$$,($row$$,$callback$$)=>{let $old_id$$=$row$$._id;delete $row$$._id;for(let $key$$ in $row$$)$row$$[$key$$]&&_.isString($row$$[$key$$])&&
5
+ (0<=$key$$.indexOf("ngay_")||0<=$key$$.indexOf("date"))&&($row$$[$key$$]=new Date($row$$[$key$$]));$coll$$.insertOne($row$$,async($e$$,$pair_rs$$)=>{if($e$$)return $callback$$($e$$);$e$$=$pair_rs$$.insertedId.toString();$pair_rs$$={old_id:$old_id$$,new_id:$e$$};$update_book$$&&(global.getModel("socai").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("socaitmp").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("sokho").updateMany({id_app:$row$$.id_app,
6
+ id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("sokhott").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("sokhocapphat").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("sokhokhongton").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("vatra").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("vatvao").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),0>$col_name$$.indexOf("file")&&
7
+ (global.getModel("file").updateMany({id_app:$row$$.id_app,id_link:$old_id$$},{id_link:$e$$}),global.getModel("file").updateMany({id_app:$row$$.id_app,id_folder:$old_id$$},{id_folder:$e$$})),0>$col_name$$.indexOf("folder")&&global.getModel("folder").updateMany({id_app:$row$$.id_app,id_link:$old_id$$},{id_link:$e$$}),0<=$col_name$$.indexOf("folder")&&global.getModel("folder").updateMany({id_app:$row$$.id_app,thu_muc_goc:$old_id$$},{thu_muc_goc:$e$$}),0>$col_name$$.indexOf("note")&&global.getModel("note").updateMany({id_app:$row$$.id_app,
8
+ id_link:$old_id$$},{id_link:$e$$}),0>$col_name$$.indexOf("tdttno")&&(global.getModel("tdttno").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("tdttno_tt").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("tdttno_tt").updateMany({id_app:$row$$.id_app,id_hd:$old_id$$},{id_hd:$e$$})),0>$col_name$$.indexOf("tdttco")&&(global.getModel("tdttco").updateMany({id_app:$row$$.id_app,id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("tdttco_tt").updateMany({id_app:$row$$.id_app,
9
+ id_ct:$old_id$$},{id_ct:$e$$}),global.getModel("tdttco_tt").updateMany({id_app:$row$$.id_app,id_hd:$old_id$$},{id_hd:$e$$})),0<=$col_name$$.indexOf("qts")&&(global.getModel("sophanbokh").updateMany({id_app:$row$$.id_app,id_ts:$old_id$$},{id_ts:$e$$}),global.getModel("sotinhkh").updateMany({id_app:$row$$.id_app,id_ts:$old_id$$},{id_ts:$e$$}),global.getModel("qts_dieuchinh").updateMany({id_app:$row$$.id_app,id_ts:$old_id$$},{id_ts:$e$$}),global.getModel("hspbts").updateMany({id_app:$row$$.id_app,id_ts:$old_id$$},
10
+ {id_ts:$e$$})),0<=$col_name$$.indexOf("dmnhvts")&&(global.getModel("dmvt").updateMany({id_app:$row$$.id_app,ma_nvt:$old_id$$},{ma_nvt:$e$$}),global.getModel("dmvt").updateMany({id_app:$row$$.id_app,ma_nvt2:$old_id$$},{ma_nvt2:$e$$}),global.getModel("dmvt").updateMany({id_app:$row$$.id_app,ma_nvt3:$old_id$$},{ma_nvt3:$e$$}),global.getModel("dmvt").updateMany({id_app:$row$$.id_app,ma_nvt4:$old_id$$},{ma_nvt4:$e$$})),0<=$col_name$$.indexOf("customer")&&global.getModel("calllog").updateMany({id_app:$row$$.id_app,
11
+ id_kh:$old_id$$},{id_kh:$e$$}));$callback$$(null,$pair_rs$$)})},async($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);await Promise.all($dvcs_pairs$$.map($pair$$=>(async()=>{$coll$$.updateMany({id_app:$id_app$$,ma_dvcs:$pair$$.old_id},{$set:{ma_dvcs:$pair$$.new_id}},()=>{console.log("updated dvcs",$col_name$$,$pair$$)})})()));$resolve$$($rs$$)})}),insert=($col_name$$,$coll$$,$rows$$,$id_app$$,$dvcs_pairs$$)=>{$rows$$=$rows$$.map($row$$=>{delete $row$$.__v;delete $row$$.pkey;$row$$.id_app=$id_app$$;return $row$$});
12
+ return"socais"===$col_name$$||"sokhos"===$col_name$$||"sokhott"===$col_name$$||"vatras"===$col_name$$||"vatvaos"===$col_name$$||"dvcs"===$col_name$$?insertOne($col_name$$,$id_app$$,$coll$$,$rows$$,$dvcs_pairs$$,!1):insertOne($col_name$$,$id_app$$,$coll$$,$rows$$,$dvcs_pairs$$,!0)},restore=$message$$=>{if($message$$.configs&&_.isString($message$$.configs))try{$message$$.configs=JSON.parse($message$$.configs)}catch($e$$){delete $message$$.configs,console.info($e$$)}const $configs$$=$message$$.configs||
13
+ require("../configs");connect2Db||(mongoose.connect($configs$$.database.url,{useNewUrlParser:!0}),connect2Db=!0);let $id_app$$=$message$$.id,$user$$=$message$$.user,$fileZip$$=$message$$.file;model.findOne({_id:$id_app$$}).lean().exec(async($e$jscomp$0$$,$app$$)=>{if($e$jscomp$0$$||!$app$$)return parentPort.postMessage({error:$e$jscomp$0$$||"C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i"});$e$jscomp$0$$=await Participant.findOne({email:$user$$,id_app:$id_app$$,admin:!0});if($app$$.user_created!==
14
+ $user$$&&!$e$jscomp$0$$)return parentPort.postMessage({error:"B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 n\u00e0y"});fs.readFile($fileZip$$,($err$jscomp$0$$,$dataZip$$)=>{if($err$jscomp$0$$)return parentPort.postMessage({error:$err$jscomp$0$$});try{JSZip.loadAsync($dataZip$$).then(function($zip$$){return $zip$$.file("backup.json").async("string")}).then($string_data$$=>{if($string_data$$){let $data$$=JSON.parse($string_data$$),$dvcs_pairs$$;async.series({app:$callback$$=>
15
+ {console.log("restore app...");let $appInfo$$=$data$$["app.js"];$appInfo$$?(delete $appInfo$$._id,delete $appInfo$$.__v,model.findOneAndUpdate({_id:$id_app$$},$appInfo$$,$e$$=>{if($e$$)return $callback$$($e$$);$callback$$()})):$callback$$()},dvcs:$callback$jscomp$0$$=>{async.mapSeries(coll_ex,($coll$$,$callback$$)=>{let $colls$$=Object.keys($data$$).filter($k$$=>$k$$==$coll$$);restoreColl($id_app$$,$dvcs_pairs$$,$data$$,$colls$$).then($pairs$$=>{"dvcs"==$coll$$&&($dvcs_pairs$$=$pairs$$);async.map($pairs$$,
16
+ ($pair$$,$cb$$)=>{setImmediate(()=>{"dvcs"==$coll$$&&($string_data$$=$string_data$$.split($pair$$.old_id).join($pair$$.new_id));$cb$$()})},()=>{$callback$$()})}).catch($e$$=>{$callback$$($e$$)})},$e$$=>{$callback$jscomp$0$$($e$$)})},data:$callback$jscomp$0$$=>{let $colls$jscomp$0$$=Object.keys($data$$).filter($k$$=>0>coll_ex.indexOf($k$$));restoreColl($id_app$$,$dvcs_pairs$$,$data$$,$colls$jscomp$0$$).then($pairs$$=>{let $_data_goc$$=JSON.parse($string_data$$),$colls$$=Object.keys($_data_goc$$).filter($k$$=>
17
+ 0>coll_ex.indexOf($k$$)),$data_replace$$={};$colls$$.forEach($c$$=>{$data_replace$$[$c$$]=($_data_goc$$[$c$$]||[]).map($r$$=>JSON.stringify($r$$))});async.mapSeries($pairs$$,($pair$$,$cb$$)=>{setImmediate(()=>{$colls$$.forEach($c$$=>{console.log("update pair",$pair$$,$c$$);$data_replace$$[$c$$]=$data_replace$$[$c$$].map($r$$=>0>$r$$.indexOf($pair$$.old_id)?$r$$:$r$$.split($pair$$.old_id).join($pair$$.new_id))});$cb$$()})},()=>{async.mapSeries($colls$$,($col_name$$,$callback3$$)=>{const $rows$$=$data_replace$$[$col_name$$];
18
+ console.log("update collection",$col_name$$,$rows$$.length,"rows");0<$rows$$.length?mongoose.connection.db.collection($col_name$$,($err$$,$coll$$)=>{if($err$$)return $callback3$$($err$$);if(!$coll$$)return console.error("can't update data. collection",$col_name$$,"is not exists"),$callback3$$();async.mapSeries($rows$$,($_row$$,$callback$$)=>{setImmediate(()=>{let $row$$=JSON.parse($_row$$);delete $row$$.__v;delete $row$$.pkey;$row$$.id_app=$id_app$$;let $_id$$=ObjectId($row$$._id);delete $row$$._id;
19
+ for(let $key$$ in $row$$)$row$$[$key$$]&&_.isString($row$$[$key$$])&&(0<=$key$$.indexOf("ngay_")||0<=$key$$.indexOf("date"))&&($row$$[$key$$]=new Date($row$$[$key$$]));$coll$$.updateOne({_id:$_id$$},{$set:$row$$},($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);console.log("updated",$col_name$$,$rs$$.matchedCount,$rs$$.modifiedCount,$rs$$.upsertedId);$callback$$()})})},$e$$=>{console.log("updated collection",$col_name$$,"successfull");$callback3$$($e$$)})}):$callback3$$()},$e$$=>{$e$$||console.log("all collections was restore successful");
20
+ $callback$jscomp$0$$($e$$)})})}).catch($e$$=>{$callback$jscomp$0$$($e$$)})}},$e$$=>{if($e$$)return console.error($e$$),parentPort.postMessage({error:$e$$});console.log("database was restore successful");parentPort.postMessage({result:"Ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e3 kh\u00f4i ph\u1ee5c d\u1eef li\u1ec7u th\u00e0nh c\u00f4ng"})})}else return parentPort.postMessage({error:"File l\u01b0u tr\u1eef kh\u00f4ng c\u00f3 d\u1eef li\u1ec7u"})})}catch($e$$){return console.error($e$$),parentPort.postMessage({error:$e$$.message})}})})};
21
+ parentPort.on("message",$message$$=>{$message$$?restore($message$$):parentPort.postMessage({error:"msg is not valid"})});workerData&&workerData.id&&workerData.findOne&&restore(workerData);
@@ -1,4 +1,4 @@
1
- 'use strict';const axios=require("axios"),moment=require("moment"),numeral=require("numeral"),{evalute}=require("../libs/utils"),{parentPort,workerData}=require("worker_threads"),async=require("async"),_=require("lodash"),runScript=async $data_function_body_msg$$=>{if($data_function_body_msg$$=$data_function_body_msg$$.script){if(0<=$data_function_body_msg$$.indexOf("async "))return parentPort.postMessage({error:"async function is not allow"});0>$data_function_body_msg$$.indexOf("return ")&&($data_function_body_msg$$=
2
- `return ${$data_function_body_msg$$}`);var $sandbox$$={moment,numeral,axios,async};try{await evalute(`return (async ()=>{
1
+ 'use strict';const axios=require("axios"),moment=require("moment"),numeral=require("numeral"),{evalute}=require("../libs/utils"),{parentPort,workerData}=require("worker_threads"),async=require("async"),_=require("lodash"),runScript=async $data_function_body_msg$$=>{if($data_function_body_msg$$=$data_function_body_msg$$.script){if(0<=$data_function_body_msg$$.indexOf("async "))return parentPort.postMessage({error:"async function is not allow"});$data_function_body_msg$$=`return (async ()=>{
3
2
  ${$data_function_body_msg$$}
4
- })`,$sandbox$$)(),parentPort.postMessage({result:"OK"})}catch($e$$){parentPort.postMessage({error:$e$$})}}};parentPort.on("message",$msg$$=>{$msg$$?runScript($msg$$):parentPort.postMessage({error:"msg is not valid"})});if(workerData&&workerData.configs){let $msg$$=workerData;if($msg$$.configs&&_.isString($msg$$.configs))try{$msg$$.configs=JSON.parse($msg$$.configs)}catch($e$$){delete $msg$$.configs,console.info($e$$)}$msg$$.configs&&runScript($msg$$)};
3
+ })`;var $error$$={moment,numeral,axios,async};try{await evalute($data_function_body_msg$$,$error$$)(),parentPort.postMessage({result:"OK"})}catch($e$$){$error$$=$e$$.error||$e$$.message||$e$$,$error$$=$error$$+"\nScript: \n"+$data_function_body_msg$$,parentPort.postMessage({error:$error$$})}}};parentPort.on("message",$msg$$=>{$msg$$?runScript($msg$$):parentPort.postMessage({error:"msg is not valid"})});
4
+ if(workerData&&workerData.configs){let $msg$$=workerData;if($msg$$.configs&&_.isString($msg$$.configs))try{$msg$$.configs=JSON.parse($msg$$.configs)}catch($e$$){delete $msg$$.configs,console.info($e$$)}$msg$$.configs&&runScript($msg$$)};