UNPKG

flexbiz-server

Version:

Flexible Server

10 lines (9 loc) 4.06 kB
const fs=require("fs"),path=require("path"),parameter_model=global.getModel("parameter"),rpt_model=global.getModel("rpt"),app=global.getModel("app"),parameter=require("../data/parameter"),rpt=require("../data/rpt"),utils=require("./utils"),Logger=require("./logger.js"); exports.init=async function($id_app$$,$fn$$){try{let $_app$$=await app.findOne({_id:$id_app$$}).inTxn().lean();if(!$_app$$)return $fn$$("C\u00f4ng ty kh\u00f4ng t\u1ed3n t\u1ea1i");let $data_init_dir$$=($_app$$.options||{}).data_init_dir||"data";const $dirPath$$=path.join(path.dirname(__dirname),$data_init_dir$$);if(fs.existsSync($dirPath$$)){const $files$$=fs.readdirSync($dirPath$$);Logger.warn("[initDatabase] kh\u1edfi t\u1ea1o d\u1eef li\u1ec7u cho c\u00f4ng ty",$_app$$.name,". Th\u01b0 m\u1ee5c d\u1eef li\u1ec7u:", $data_init_dir$$,$files$$);for(let $file$$ of $files$$)if($file$$.endsWith(".js")){const $pathFile$$=path.join($dirPath$$,$file$$),$data$$=JSON.parse(JSON.stringify(require($pathFile$$).data)),$modelName$$=path.basename($file$$,".js"),$model$$=global.getModel($modelName$$);Logger.warn("[initDatabase] \u0111ang kh\u1edfi t\u1ea1o d\u1eef li\u1ec7u ",$pathFile$$,"....");const $rows$$=$data$$.map($r$$=>{$r$$.id_app=$id_app$$;$r$$._id&&delete $r$$._id;return $r$$});$rows$$.length>0&&await $model$$.create($rows$$)}}if($_app$$.menu_code){Logger.warn("[initDatabase] kh\u1edfi t\u1ea1o d\u1eef li\u1ec7u t\u1eeb menuinfo", $_app$$.name,$_app$$.menu_code);let $menuinfo$$=await global.getModel("menuinfo").findOne({code:$_app$$.menu_code}).lean();if($menuinfo$$&&$menuinfo$$.default_datas)for(let $d$$ of $menuinfo$$.default_datas.filter($d$$=>$d$$.data&&$d$$.api_code)){let $data$$=utils.JSONParser($d$$.data);const $model$$=global.getModel($d$$.api_code);Logger.warn("[initDatabase] \u0111ang xo\u00e1 d\u1eef li\u1ec7u c\u0169",$d$$.api_code,"....");await $model$$.deleteMany({id_app:$id_app$$});Logger.warn("[initDatabase] \u0111ang t\u1ea1o d\u1eef li\u1ec7u m\u1edbi", $d$$.api_code,"....");if(Array.isArray($data$$)&&$data$$.length>0){const $rows$$=$data$$.map($r$$=>{$r$$.id_app=$id_app$$;$r$$._id&&delete $r$$._id;return $r$$});await $model$$.create($rows$$)}}}Logger.warn("[initDatabase] kh\u1edfi t\u1ea1o m\u1eabu b\u00e1o c\u00e1o cho c\u00f4ng ty",$_app$$.name);let $rpts$$=await rpt_model.find({id_app:$id_app$$}).inTxn().lean();for(let $rpt$$ of $rpts$$)await parameter_model.updateMany({id_rpt:$rpt$$._id_o,id_app:$id_app$$},{id_rpt:$rpt$$._id});Logger.warn("[initDatabase] \u0110\u00e3 kh\u1edfi t\u1ea1o xong d\u1eef li\u1ec7u cho c\u00f4ng ty", $_app$$.name);return $fn$$()}catch($e$$){return Logger.error("[initDatabase] L\u1ed7i trong qu\u00e1 tr\u00ecnh kh\u1edfi t\u1ea1o d\u1eef li\u1ec7u:",$e$$),$fn$$($e$$)}}; exports.initRpt=async function(){try{Logger.info("[initRpt] B\u1eaft \u0111\u1ea7u kh\u1edfi t\u1ea1o b\u00e1o c\u00e1o cho to\u00e0n b\u1ed9 c\u00f4ng ty...");const $apps$$=await app.find({}).lean();for(const $a$$ of $apps$$)try{const $rptsToInsert$$=rpt.data.map($newRpt_r$$=>{$newRpt_r$$={...$newRpt_r$$,id_app:$a$$._id};$newRpt_r$$._id&&delete $newRpt_r$$._id;return $newRpt_r$$}),$paramsToInsert$$=parameter.data.map($newParam_p$$=>{$newParam_p$$={...$newParam_p$$,id_app:$a$$._id};$newParam_p$$._id&& delete $newParam_p$$._id;return $newParam_p$$});$rptsToInsert$$.length>0&&await rpt_model.insertMany($rptsToInsert$$);$paramsToInsert$$.length>0&&await parameter_model.insertMany($paramsToInsert$$);const $savedRpts$$=await rpt_model.find({id_app:$a$$._id}).lean();for(const $rpt$$ of $savedRpts$$)$rpt$$._id_o&&await parameter_model.updateMany({id_rpt:$rpt$$._id_o,id_app:$a$$._id},{id_rpt:$rpt$$._id});Logger.info(`[initRpt] Ho\u00e0n th\u00e0nh kh\u1edfi t\u1ea1o b\u00e1o c\u00e1o cho c\u00f4ng ty: ${$a$$.name|| $a$$._id}`)}catch($errApp$$){Logger.error(`[initRpt] L\u1ed7i khi kh\u1edfi t\u1ea1o b\u00e1o c\u00e1o cho app ${$a$$._id}:`,$errApp$$)}Logger.info("[initRpt] \u0110\u00e3 x\u1eed l\u00fd xong to\u00e0n b\u1ed9 c\u00f4ng ty.")}catch($e$$){Logger.error("[initRpt] L\u1ed7i nghi\u00eam tr\u1ecdng:",$e$$)}};