// ___classname___ JSON数据导入程序 // ___datetime_now___ 由 JsonImportGen.js 自动生成,请勿手动修改 // 输入输出参数格式化 input = INPUT; try { input = decodeURIComponent(input); } catch (e) { } try { input = base64.decode(input); } catch (e) { } try { input = JSON.parse(input); input = JSON.parse(input); } catch (e) { } output = {}; testcfg = {}; try { testcfg = JSON.parse(etcd.get("/api/test.json")); } catch (e) { } function teststoredfs() { // 输入JSON临时存入DFS dir = "/opt___classname___"; d = new Date(); d.setMinutes(d.getMinutes() - d.getTimezoneOffset()); dtm = d.toJSON().replace(/[\-\:\.TZ ]/mg, ""); fn = dir + "/" + dtm; if (input.id) { fn += "." + input.id; } else { fn += "_" + _.random(0, 1000000); } fn += ".json"; dfs.write(fn, JSON.stringify(input, " ", 4)); output.filename = fn; // 刪除旧交件 files = dfs.readdir(dir); dt = Date.now() - 1000 * 3600 * 24 * 10; for (var i = files.length - 1; i >= 0; i--) { if (files[i].mtime < dt) { dfs.remove(files[i].fullname); files.splice(i, 1); } } // 留最后10个 files.sort(function (a, b) { return a.mtime - b.mtime; }); for (var i = 0; i < files.length - 10; i++) { dfs.remove(files[i].fullname); } } // 主执行阶段 try { if (!input["--testing--"]) { if (testcfg.storedfs) { teststoredfs(); } if (testcfg.checkfields) { eval(dfs.read("/script/matrix/utils/ajs/checkfields.js")); var newkeys = checkfields(input, ___field_map___); if (newkeys) { eval(dfs.read("/script/matrix/utils/ajs/JsonImporterFuncs.js")); var result = runServerJS("/matrix/utils/ajs/InitJsonImporter.js", { classname: "___classname___" }); for (var k in result) { output[k] = result[k]; } output.newkeys = newkeys; throw ("ok"); } } } // 数据合法性检查 if (___datacheck___) { } // mql定义 mql = `___mql___`; // 执行mql ret = odb.mql(mql, ___values___); // 打印完成信息 output.info = ___datainfo___; log.info(output.info); } catch (e) { if (e != "ok") { if (typeof (e) == "object") { output.error = e; } else if (typeof (e) == "string") { output.error = "插库错误:" + e; } else { output.error = JSON.stringify(e); } log.error(output.error); } } // 返回输出信息 OUTPUT = output;