|
|
@@ -29,6 +29,8 @@ import SectionTreeDao from '../../complementary_ration_lib/models/sectionTreeMod
|
|
|
let sectionTreeDao = new SectionTreeDao();
|
|
|
let consts = require('../../main/models/project_consts');
|
|
|
import multiparty from 'multiparty';
|
|
|
+let rp = require('request-promise');
|
|
|
+
|
|
|
//统一回调函数
|
|
|
let callback = function(req, res, err, message, data){
|
|
|
res.json({error: err, message: message, data: data});
|
|
|
@@ -510,8 +512,8 @@ module.exports = {
|
|
|
error:0
|
|
|
};
|
|
|
try {
|
|
|
- let data = JSON.parse(req.body.data);
|
|
|
- result.data = await pm_facade.copyProject(req.session.sessionUser.id, req.session.sessionCompilation._id,data);
|
|
|
+ let data = {dataString:req.body.data,userID:req.session.sessionUser.id,compilationID:req.session.sessionCompilation._id};
|
|
|
+ result = await redirectToImportServer(data,"copyProject",req);
|
|
|
}catch (err){
|
|
|
console.log(err);
|
|
|
result.error=1;
|
|
|
@@ -672,8 +674,8 @@ module.exports = {
|
|
|
error:0
|
|
|
};
|
|
|
try {
|
|
|
- let data = JSON.parse(req.body.data);
|
|
|
- result.data = await pm_facade.exportProject(req.session.sessionUser.id, data);
|
|
|
+ let data = {dataString:req.body.data,userID:req.session.sessionUser.id};
|
|
|
+ result = await redirectToImportServer(data,"exportProject",req);
|
|
|
}catch (err){
|
|
|
console.log(err);
|
|
|
result.error=1;
|
|
|
@@ -684,23 +686,39 @@ module.exports = {
|
|
|
},
|
|
|
importProject:async function(req,res){
|
|
|
let form = new multiparty.Form({uploadDir: './tmp'});
|
|
|
- let uploadFullName;
|
|
|
form.parse(req, async function (err, fields, files) {
|
|
|
+ let path = "";
|
|
|
try {
|
|
|
console.log(fields);
|
|
|
const file = typeof files.file !== 'undefined' ? files.file[0] : null;
|
|
|
if (err || !file) {
|
|
|
throw '上传失败。';
|
|
|
};
|
|
|
+ path = file.path;
|
|
|
let data = fs.readFileSync(file.path,'utf-8');
|
|
|
- let result = await pm_facade.importProject(data,req,fields);
|
|
|
- fs.unlinkSync(file.path);
|
|
|
+ let body = {data: data, fields:fields, session:req.session};
|
|
|
+ let result = await redirectToImportServer(body,"importProject",req);
|
|
|
res.json(result);
|
|
|
}catch (e){
|
|
|
console.log(e);
|
|
|
res.json({error:1,msg:"导入失败请检查文件!"})
|
|
|
+ }finally {
|
|
|
+ fs.unlinkSync(path);
|
|
|
}
|
|
|
-
|
|
|
})
|
|
|
}
|
|
|
-};
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+async function redirectToImportServer(data,action,req) {
|
|
|
+ let importURL = config.getImportURL(process.env.NODE_ENV,req.headers.origin);
|
|
|
+ let options = {
|
|
|
+ method: 'POST',
|
|
|
+ uri: `http://${importURL}/import/${action}`,
|
|
|
+ body: data,
|
|
|
+ timeout:220000,
|
|
|
+ json: true
|
|
|
+ };
|
|
|
+ console.log("post import data to:"+options.uri);
|
|
|
+ return await rp.post(options);
|
|
|
+}
|