flexbiz-server 12.2.2 → 12.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/package.json +2 -2
  2. package/server/app.js +14 -14
  3. package/server/auths/local.js +27 -26
  4. package/server/cluster.js +12 -11
  5. package/server/controllers/controller.js +83 -79
  6. package/server/controllers/controllerRPT.js +18 -17
  7. package/server/data/sys/listinfo.js +80395 -78085
  8. package/server/data/sys/reportinfo.js +8826 -8826
  9. package/server/data/sys/trangthai.js +10348 -10229
  10. package/server/libs/cdpstk.js +1 -1
  11. package/server/libs/databanle.js +13 -13
  12. package/server/libs/getGiaban.js +17 -16
  13. package/server/libs/permission.js +12 -12
  14. package/server/libs/post-book.js +9 -8
  15. package/server/libs/post-socai.js +9 -9
  16. package/server/libs/prototypes.js +7 -7
  17. package/server/libs/tinhGtPhanboSltp.js +5 -5
  18. package/server/libs/tinhGtPhanboYtcp.js +2 -2
  19. package/server/libs/tinhGtThcppstk.js +1 -1
  20. package/server/libs/tinhGtTrucTiep.js +8 -7
  21. package/server/libs/tinhgiatb.js +16 -19
  22. package/server/libs/tinhgiatb1vt.js +3 -3
  23. package/server/libs/tinhhoahong.js +32 -0
  24. package/server/libs/utils.js +4 -3
  25. package/server/models/app.js +9 -8
  26. package/server/models/approve.js +4 -4
  27. package/server/models/customer.js +8 -4
  28. package/server/models/dh2.js +10 -7
  29. package/server/models/dmbp.js +7 -4
  30. package/server/models/dmgiaban.js +6 -6
  31. package/server/models/dmhoahonghd.js +6 -5
  32. package/server/models/dmnvt.js +3 -3
  33. package/server/models/dmvt.js +9 -9
  34. package/server/models/ecomcategories.js +2 -2
  35. package/server/models/ecomcategories_cty.js +3 -0
  36. package/server/models/fbconversation.js +9 -0
  37. package/server/models/fbmessage.js +2 -0
  38. package/server/models/fbpage.js +2 -0
  39. package/server/models/group.js +7 -5
  40. package/server/models/hd2.js +11 -8
  41. package/server/models/hd3.js +9 -9
  42. package/server/models/hd7.js +1 -1
  43. package/server/models/listinfo.js +15 -8
  44. package/server/models/notification.js +3 -2
  45. package/server/models/originimportid.js +1 -0
  46. package/server/models/participant.js +5 -5
  47. package/server/models/pbl.js +4 -4
  48. package/server/models/reportinfo.js +2 -2
  49. package/server/models/rptform.js +3 -2
  50. package/server/models/schedule.js +1 -1
  51. package/server/models/so1.js +17 -14
  52. package/server/models/socai.js +7 -5
  53. package/server/models/task.js +4 -4
  54. package/server/models/tdttco.js +8 -4
  55. package/server/models/tdttno.js +8 -4
  56. package/server/models/tokens.js +2 -2
  57. package/server/models/tontucthoi.js +2 -2
  58. package/server/models/usergroup.js +4 -3
  59. package/server/models/vatra.js +2 -2
  60. package/server/models/vatvao.js +4 -4
  61. package/server/modules/lists/ls-assinvestment.js +1 -1
  62. package/server/modules/lists/ls-asskey.js +34 -34
  63. package/server/modules/lists/ls-customer.js +13 -7
  64. package/server/modules/lists/ls-dmbp.js +7 -3
  65. package/server/modules/lists/ls-dmnkh.js +5 -1
  66. package/server/modules/lists/ls-dmnvt.js +5 -5
  67. package/server/modules/lists/ls-dmvt.js +48 -35
  68. package/server/modules/lists/ls-ecomcategories.js +5 -0
  69. package/server/modules/lists/ls-ecomcategories_cty.js +5 -0
  70. package/server/modules/lists/ls-fbconversation.js +3 -0
  71. package/server/modules/lists/ls-fbmessage.js +3 -0
  72. package/server/modules/lists/ls-fbpage.js +10 -0
  73. package/server/modules/lists/ls-file.js +21 -25
  74. package/server/modules/lists/ls-group.js +5 -1
  75. package/server/modules/lists/ls-introducecode.js +8 -7
  76. package/server/modules/lists/ls-introducer.js +16 -17
  77. package/server/modules/lists/ls-message2.js +8 -7
  78. package/server/modules/lists/ls-message2setting.js +4 -4
  79. package/server/modules/lists/ls-news.js +1 -1
  80. package/server/modules/lists/ls-opportunity.js +3 -3
  81. package/server/modules/lists/ls-session.js +2 -2
  82. package/server/modules/lists/ls-task.js +18 -18
  83. package/server/modules/lists/ls-usergroup.js +6 -2
  84. package/server/modules/public/callin.js +6 -6
  85. package/server/modules/reports/calc-tinhgiatb.js +2 -2
  86. package/server/modules/reports/rp-cdpstk.js +3 -3
  87. package/server/modules/reports/rp-chitiettaisan.js +9 -8
  88. package/server/modules/reports/rp-ckvt.js +9 -7
  89. package/server/modules/reports/rp-congviectheonv.js +5 -5
  90. package/server/modules/reports/rp-ctbanle.js +13 -12
  91. package/server/modules/reports/rp-databanle.js +8 -4
  92. package/server/modules/reports/rp-dtbanletheoct.js +16 -9
  93. package/server/modules/reports/rp-dtbanletheokh.js +12 -6
  94. package/server/modules/reports/rp-dtbanletheokho.js +14 -9
  95. package/server/modules/reports/rp-dtbanletheonam.js +15 -9
  96. package/server/modules/reports/rp-dtbanletheongay.js +13 -8
  97. package/server/modules/reports/rp-dtbanletheonv.js +15 -9
  98. package/server/modules/reports/rp-dtbanletheoquy.js +15 -9
  99. package/server/modules/reports/rp-dtbanletheothang.js +15 -9
  100. package/server/modules/reports/rp-getinvoice2pay.js +4 -6
  101. package/server/modules/reports/rp-getinvoice2receive.js +4 -6
  102. package/server/modules/reports/rp-hoahong.js +9 -0
  103. package/server/modules/reports/rp-kqhdkd.js +5 -4
  104. package/server/modules/reports/rp-ptcttct.js +7 -6
  105. package/server/modules/reports/rp-pttct.js +8 -8
  106. package/server/modules/reports/rp-pttctkho.js +3 -2
  107. package/server/modules/reports/rp-pttctkho2.js +3 -3
  108. package/server/modules/reports/rp-thnxt.js +8 -7
  109. package/server/modules/reports/rp-thnxt_sl.js +6 -6
  110. package/server/modules/reports/rp-thnxttt.js +6 -6
  111. package/server/modules/reports/rp-tmbctc.js +16 -16
  112. package/server/modules/systems/sys-app.js +25 -24
  113. package/server/modules/systems/sys-notification.js +2 -2
  114. package/server/modules/systems/sys-schedule.js +1 -1
  115. package/server/modules/systems/sys-user.js +8 -8
  116. package/server/modules/vouchers/vo-bc1.js +9 -8
  117. package/server/modules/vouchers/vo-bg2.js +9 -9
  118. package/server/modules/vouchers/vo-bn1.js +5 -4
  119. package/server/modules/vouchers/vo-dh2.js +14 -19
  120. package/server/modules/vouchers/vo-dnm.js +11 -12
  121. package/server/modules/vouchers/vo-hd2.js +66 -54
  122. package/server/modules/vouchers/vo-hd3.js +28 -22
  123. package/server/modules/vouchers/vo-hd7.js +37 -36
  124. package/server/modules/vouchers/vo-pbl.js +49 -49
  125. package/server/modules/vouchers/vo-pc1.js +9 -8
  126. package/server/modules/vouchers/vo-pn1.js +24 -22
  127. package/server/modules/vouchers/vo-pn5.js +1 -1
  128. package/server/modules/vouchers/vo-pn9.js +23 -23
  129. package/server/modules/vouchers/vo-pnc.js +8 -8
  130. package/server/modules/vouchers/vo-pnh.js +5 -5
  131. package/server/modules/vouchers/vo-pt1.js +17 -16
  132. package/server/modules/vouchers/vo-pxc.js +16 -16
  133. package/server/modules/vouchers/vo-pxh.js +12 -10
  134. package/server/modules/vouchers/vo-so1.js +90 -116
  135. package/server/modules/vouchers/vo-so4.js +1 -1
  136. package/server/modules/vouchers/vo-so5.js +2 -2
  137. package/server/templates/reset mat khau.html +1 -1
  138. package/server/templates/reset mat khau.pug +1 -3
  139. package/server/workers/restoreApp.js +21 -12
  140. package/server/workers/runScript.js +3 -3
@@ -4,7 +4,7 @@
4
4
  </head>
5
5
  <body>
6
6
  <p>Xin chào {{receiver_name}},</p>
7
- <p>Bạn đã yêu cầu đổi mật khẩu truy cập tại <a href='{{domain}}'>{{domain}}</a>. Đây là thông tin mới dùng để đăng nhập vào tài khoản của bạn</p>
7
+ <p>Đây là thông tin mới dùng để đăng nhập vào tài khoản của bạn</p>
8
8
  <p><b>Tên đăng nhập:</b>{{email}}</p>
9
9
  <p><b>Mật khẩu:</b>{{password}}</p>
10
10
  <p>Sau khi đăng nhập thành công, bạn nên đổi lại mật khẩu trên.</p>
@@ -4,9 +4,7 @@
4
4
  </head>
5
5
  <body>
6
6
  p='Xin chào '+receiver_name
7
- p='Bạn đã yêu cầu đổi mật khẩu truy cập tại '
8
- a(href=domain)=domain
9
- |. Đây là thông tin mới dùng để đăng nhập vào tài khoản của bạn
7
+ p='Đây thông tin mới dùng để đăng nhập vào tài khoản của bạn'
10
8
  p
11
9
  !='<b>Tên đăng nhập:</b>'+email
12
10
  p
@@ -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$$)};