kpiplus
Version:
KPI+
1 lines • 1.22 kB
JavaScript
global.mongoose=require("mongoose"),global.Schema=mongoose.Schema;var configs=require("../configs"),async=require("async"),group=require("../models/group"),arrayFuncs=require("../libs/array-funcs");let onImport=function(n,o,r,e){o.groupBy("group_name",[],function(r,u){if(r)return e(r);async.map(u,(o,r)=>{if(!o.group_name)return r();o.group_name=o.group_name.toString().trim(),group.findOneAndUpdate({id_app:n.current_id_app,group_type:"CUSTOMER",group_name:o.group_name},{group_name:o.group_name,group_type:"CUSTOMER",status:!0},{new:!0,upsert:!0},function(n,e){if(n)return r(n);o.nh_kh=e._id.toString(),r(null)})},(r,u)=>{if(r)return e(r);async.map(o,function(o,r){async.parallel({nhom:function(r){o.group_name&&!o.nh_kh?(o.group_name=o.group_name.toString().trim(),group.findOne({id_app:n.current_id_app,group_type:"CUSTOMER",group_name:o.group_name},function(n,e){if(n)return r(n);o.nh_kh=e._id.toString(),r(null)})):r()}},function(n,o){r(n)})},function(n,o){e(n)})})})};process.on("message",function(n){mongoose.connect(configs.database.url).then(()=>{onImport(n.user,n.data,n.columns,function(o){mongoose.connection.close(),process.send({error:o,data:n.data,columns:n.columns})})},n=>{process.send({error:n})})});