Commit 4c01a502 by 宋毅

tj

parent 7c6241eb
...@@ -24,17 +24,17 @@ class APIBase { ...@@ -24,17 +24,17 @@ class APIBase {
pobj.actionBody.resultInfo = result; pobj.actionBody.resultInfo = result;
pobj.actionBody.requestId = result.requestId; pobj.actionBody.requestId = result.requestId;
pobj.actionBody.opTitle = "reqPath:" + req.path; pobj.actionBody.opTitle = "reqPath:" + req.path;
this.esUtils.addEsLogs(settings.queuedName + "api-req", pobj.actionBody); this.esUtils.addEsLogs(settings.queuedName + "api-req", pobj);
} }
return result; return result;
} catch (e) { } catch (error) {
var stackStr = e.stack ? e.stack : JSON.stringify(e); var stackStr = error.stack ? error.stack : JSON.stringify(error);
console.log(stackStr, "api.base调用出现异常,请联系管理员.........."); // console.log(stackStr, "api.base调用出现异常,请联系管理员..........");
var rtnerror = system.getResultFail(-200, "出现异常,error:" + stackStr); var rtnerror = system.getResultFail(-200, "出现异常,error:" + stackStr);
pobj.actionBody.requestId = await this.getBusUid("err"); pobj.actionBody.requestId = await this.getBusUid("err");
pobj.actionBody.errorInfo = stackStr; pobj.actionBody.errorInfo = stackStr;
pobj.actionBody.opTitle = ",reqPath:" + req.path; pobj.actionBody.opTitle = ",reqPath:" + req.path;
this.esUtils.addEsLogs(settings.queuedName + "apidoexec-error", pobj.actionBody); this.esUtils.addEsLogs(settings.queuedName + "apidoexec-error", pobj);
return rtnerror; return rtnerror;
} }
} }
......
const APIBase = require("../../api.base");
const system = require("../../../system");
const settings = require("../../../../config/settings")
class TestDataAPI extends APIBase {
constructor() {
super();
this.redisClient = system.getObject("util.redisClient");
this.configInfoDao = system.getObject("db.opLogs.configInfoDao");
}
/**
* 接口跳转-POST请求
* actionType 执行的功能模块
* action_body 执行的参数
*/
async springBoard(pobj, qobj, req) {
var tmpList = await this.configInfoDao.getList();
console.log(tmpList, ".........configInfoDao...............");
// for (let index = 0; index < 10; index++) {
// var num = index * 100;
// var tmpList = { "retcode": index, "msg": ("sy-success" + index.toString()), "sy-data": { "pageSize": 10, "curPage": 1, "search": {}, "orderArr": null, "total": 6, "rows": [{ "id": 1, "need_num": "N202006031601654", "user_id": "1", "user_name": "张三", "contacts_name": "张三", "contacts_moblie": "13075556693", "region_id": "1", "region_name": "北京", "consult_type": 2, "consult_type_name": "公司注册", "status": 4, "notes": "测试数据勿删", "need_info": null, "servicer_code": "gsb", "servicer_name": "公司宝", "created_at": "2020-06-03T16:04:45.000Z", "updated_at": "2020-06-03T16:04:52.000Z", "deleted_at": null, "version": null, "solution_content": { "memoInfo": "备注信息", "clerkName": "业务员名称", "isWhether": "是否刻章", "clerkPhone": "业务员联系方式", "addressType": "地址类型-实际经营地址||虚拟地址", "companyName": "公司名称", "fullAddress": "注册的详细地址", "serviceArea": "服务地区(注册地区)", "schemeNumber": "方案编号", "statusReason": "退回或关闭的原因", "taxpayerType": "纳税人类型", "businessScope": "经营范围", "currentStatus": "当前状态", "engagedIndustry": "从事行业", "serviceProvider": "分配的服务商", "companyProperties": "公司性质" }, "isRefusal": 0 }, { "id": 2, "need_num": "N202006031601655", "user_id": "1", "user_name": "张三", "contacts_name": "张三", "contacts_moblie": "13075556693", "region_id": "1", "region_name": "北京", "consult_type": 2, "consult_type_name": "公司注册", "status": 4, "notes": "测试数据勿删", "need_info": null, "servicer_code": "gsb", "servicer_name": "公司宝", "created_at": "2020-06-03T16:04:45.000Z", "updated_at": "2020-06-03T16:04:52.000Z", "deleted_at": null, "version": null, "solution_content": { "memoInfo": "备注信息", "clerkName": "业务员名称", "isWhether": "是否刻章", "clerkPhone": "业务员联系方式", "addressType": "地址类型-实际经营地址||虚拟地址", "companyName": "公司名称", "fullAddress": "注册的详细地址", "serviceArea": "服务地区(注册地区)", "schemeNumber": "方案编号", "statusReason": "退回或关闭的原因", "taxpayerType": "纳税人类型", "businessScope": "经营范围", "currentStatus": "当前状态", "engagedIndustry": "从事行业", "serviceProvider": "分配的服务商", "companyProperties": "公司性质" }, "isRefusal": 0 }, { "id": 3, "need_num": "N202006031601656", "user_id": "1", "user_name": "张三", "contacts_name": "张三", "contacts_moblie": "13075556693", "region_id": "1", "region_name": "北京", "consult_type": 2, "consult_type_name": "公司注册", "status": 4, "notes": "测试数据勿删", "need_info": null, "servicer_code": "gsb", "servicer_name": "公司宝", "created_at": "2020-06-03T16:04:45.000Z", "updated_at": "2020-06-03T16:04:52.000Z", "deleted_at": null, "version": null, "solution_content": { "memoInfo": "备注信息", "clerkName": "业务员名称", "isWhether": "是否刻章", "clerkPhone": "业务员联系方式", "addressType": "地址类型-实际经营地址||虚拟地址", "companyName": "公司名称", "fullAddress": "注册的详细地址", "serviceArea": "服务地区(注册地区)", "schemeNumber": "方案编号", "statusReason": "退回或关闭的原因", "taxpayerType": "纳税人类型", "businessScope": "经营范围", "currentStatus": "当前状态", "engagedIndustry": "从事行业", "serviceProvider": "分配的服务商", "companyProperties": "公司性质" }, "isRefusal": 0 }, { "id": 4, "need_num": "N202006031601657", "user_id": "1", "user_name": "张三", "contacts_name": "张三", "contacts_moblie": "13075556693", "region_id": "1", "region_name": "北京", "consult_type": 2, "consult_type_name": "公司注册", "status": 4, "notes": "测试数据勿删", "need_info": null, "servicer_code": "gsb", "servicer_name": "公司宝", "created_at": "2020-06-03T16:04:45.000Z", "updated_at": "2020-06-03T16:04:52.000Z", "deleted_at": null, "version": null, "solution_content": { "memoInfo": "备注信息", "clerkName": "业务员名称", "isWhether": "是否刻章", "clerkPhone": "业务员联系方式", "addressType": "地址类型-实际经营地址||虚拟地址", "companyName": "公司名称", "fullAddress": "注册的详细地址", "serviceArea": "服务地区(注册地区)", "schemeNumber": "方案编号", "statusReason": "退回或关闭的原因", "taxpayerType": "纳税人类型", "businessScope": "经营范围", "currentStatus": "当前状态", "engagedIndustry": "从事行业", "serviceProvider": "分配的服务商", "companyProperties": "公司性质" }, "isRefusal": 0 }, { "id": 5, "need_num": "N202006031601658", "user_id": "1", "user_name": "张三", "contacts_name": "张三", "contacts_moblie": "13075556693", "region_id": "1", "region_name": "北京", "consult_type": 2, "consult_type_name": "公司注册", "status": 4, "notes": "测试数据勿删", "need_info": null, "servicer_code": "gsb", "servicer_name": "公司宝", "created_at": "2020-06-03T16:04:45.000Z", "updated_at": "2020-06-03T16:04:52.000Z", "deleted_at": null, "version": null, "solution_content": null, "isRefusal": null }, { "id": 6, "need_num": "N202006031601659", "user_id": "1", "user_name": "张三", "contacts_name": "张三", "contacts_moblie": "13075556693", "region_id": "1", "region_name": "北京", "consult_type": 2, "consult_type_name": "公司注册", "status": 4, "notes": "测试数据勿删", "need_info": null, "servicer_code": "gsb", "servicer_name": "公司宝", "created_at": "2020-06-03T16:04:45.000Z", "updated_at": "2020-06-03T16:04:52.000Z", "deleted_at": null, "version": null, "solution_content": null, "isRefusal": null }] }, "requestId": "" };
// this.redisClient.zaddSortedSet("FAIL-" + settings.queuedName, num, tmpList);
// console.log(index, "..index................");
// }
// var tmpList = await this.redisClient.zrangeList("FAIL-" + settings.queuedName, 200, 200);
// var tmpList1 = await this.redisClient.zremrangebyscoreData("FAIL-" + settings.queuedName, 200, 200);
// var tmpList2 = await this.redisClient.zrangeList("FAIL-" + settings.queuedName, 200, 200);
// for (let index = 0; index < 1000000; index++) {
// var tmpList = { "retcode": index, "msg": "success", "data": { "pageSize": 10, "curPage": 1, "search": {}, "orderArr": null, "total": 6, "rows": [{ "id": 1, "need_num": "N202006031601654", "user_id": "1", "user_name": "张三", "contacts_name": "张三", "contacts_moblie": "13075556693", "region_id": "1", "region_name": "北京", "consult_type": 2, "consult_type_name": "公司注册", "status": 4, "notes": "测试数据勿删", "need_info": null, "servicer_code": "gsb", "servicer_name": "公司宝", "created_at": "2020-06-03T16:04:45.000Z", "updated_at": "2020-06-03T16:04:52.000Z", "deleted_at": null, "version": null, "solution_content": { "memoInfo": "备注信息", "clerkName": "业务员名称", "isWhether": "是否刻章", "clerkPhone": "业务员联系方式", "addressType": "地址类型-实际经营地址||虚拟地址", "companyName": "公司名称", "fullAddress": "注册的详细地址", "serviceArea": "服务地区(注册地区)", "schemeNumber": "方案编号", "statusReason": "退回或关闭的原因", "taxpayerType": "纳税人类型", "businessScope": "经营范围", "currentStatus": "当前状态", "engagedIndustry": "从事行业", "serviceProvider": "分配的服务商", "companyProperties": "公司性质" }, "isRefusal": 0 }, { "id": 2, "need_num": "N202006031601655", "user_id": "1", "user_name": "张三", "contacts_name": "张三", "contacts_moblie": "13075556693", "region_id": "1", "region_name": "北京", "consult_type": 2, "consult_type_name": "公司注册", "status": 4, "notes": "测试数据勿删", "need_info": null, "servicer_code": "gsb", "servicer_name": "公司宝", "created_at": "2020-06-03T16:04:45.000Z", "updated_at": "2020-06-03T16:04:52.000Z", "deleted_at": null, "version": null, "solution_content": { "memoInfo": "备注信息", "clerkName": "业务员名称", "isWhether": "是否刻章", "clerkPhone": "业务员联系方式", "addressType": "地址类型-实际经营地址||虚拟地址", "companyName": "公司名称", "fullAddress": "注册的详细地址", "serviceArea": "服务地区(注册地区)", "schemeNumber": "方案编号", "statusReason": "退回或关闭的原因", "taxpayerType": "纳税人类型", "businessScope": "经营范围", "currentStatus": "当前状态", "engagedIndustry": "从事行业", "serviceProvider": "分配的服务商", "companyProperties": "公司性质" }, "isRefusal": 0 }, { "id": 3, "need_num": "N202006031601656", "user_id": "1", "user_name": "张三", "contacts_name": "张三", "contacts_moblie": "13075556693", "region_id": "1", "region_name": "北京", "consult_type": 2, "consult_type_name": "公司注册", "status": 4, "notes": "测试数据勿删", "need_info": null, "servicer_code": "gsb", "servicer_name": "公司宝", "created_at": "2020-06-03T16:04:45.000Z", "updated_at": "2020-06-03T16:04:52.000Z", "deleted_at": null, "version": null, "solution_content": { "memoInfo": "备注信息", "clerkName": "业务员名称", "isWhether": "是否刻章", "clerkPhone": "业务员联系方式", "addressType": "地址类型-实际经营地址||虚拟地址", "companyName": "公司名称", "fullAddress": "注册的详细地址", "serviceArea": "服务地区(注册地区)", "schemeNumber": "方案编号", "statusReason": "退回或关闭的原因", "taxpayerType": "纳税人类型", "businessScope": "经营范围", "currentStatus": "当前状态", "engagedIndustry": "从事行业", "serviceProvider": "分配的服务商", "companyProperties": "公司性质" }, "isRefusal": 0 }, { "id": 4, "need_num": "N202006031601657", "user_id": "1", "user_name": "张三", "contacts_name": "张三", "contacts_moblie": "13075556693", "region_id": "1", "region_name": "北京", "consult_type": 2, "consult_type_name": "公司注册", "status": 4, "notes": "测试数据勿删", "need_info": null, "servicer_code": "gsb", "servicer_name": "公司宝", "created_at": "2020-06-03T16:04:45.000Z", "updated_at": "2020-06-03T16:04:52.000Z", "deleted_at": null, "version": null, "solution_content": { "memoInfo": "备注信息", "clerkName": "业务员名称", "isWhether": "是否刻章", "clerkPhone": "业务员联系方式", "addressType": "地址类型-实际经营地址||虚拟地址", "companyName": "公司名称", "fullAddress": "注册的详细地址", "serviceArea": "服务地区(注册地区)", "schemeNumber": "方案编号", "statusReason": "退回或关闭的原因", "taxpayerType": "纳税人类型", "businessScope": "经营范围", "currentStatus": "当前状态", "engagedIndustry": "从事行业", "serviceProvider": "分配的服务商", "companyProperties": "公司性质" }, "isRefusal": 0 }, { "id": 5, "need_num": "N202006031601658", "user_id": "1", "user_name": "张三", "contacts_name": "张三", "contacts_moblie": "13075556693", "region_id": "1", "region_name": "北京", "consult_type": 2, "consult_type_name": "公司注册", "status": 4, "notes": "测试数据勿删", "need_info": null, "servicer_code": "gsb", "servicer_name": "公司宝", "created_at": "2020-06-03T16:04:45.000Z", "updated_at": "2020-06-03T16:04:52.000Z", "deleted_at": null, "version": null, "solution_content": null, "isRefusal": null }, { "id": 6, "need_num": "N202006031601659", "user_id": "1", "user_name": "张三", "contacts_name": "张三", "contacts_moblie": "13075556693", "region_id": "1", "region_name": "北京", "consult_type": 2, "consult_type_name": "公司注册", "status": 4, "notes": "测试数据勿删", "need_info": null, "servicer_code": "gsb", "servicer_name": "公司宝", "created_at": "2020-06-03T16:04:45.000Z", "updated_at": "2020-06-03T16:04:52.000Z", "deleted_at": null, "version": null, "solution_content": null, "isRefusal": null }] }, "requestId": "" };
// this.redisClient.setDelayEventData(settings.queuedName, tmpList, 120);
// console.log(index, "..index................");
// }
if (!pobj.actionType) {
return system.getResult(null, "actionType参数不能为空");
}
// var result = await this.opActionType(pobj, pobj.actionType, req);
// return result;
}
async opActionType(pobj, actionType, req) {
var opResult = null;
switch (actionType) {
case "test":
var tmpParam = {
actionType: "test",
actionBody: pobj.actionBody
}
opResult = await this.execPostByTimeOut(tmpParam, "http://192.168.1.189:4012/api/test/testApi/springBoard"
, null, { token: "123456", userId: "sy123" });
break;
default:
opResult = system.getResult(null, "actionType参数错误");
break;
}
return opResult;
}
}
module.exports = TestDataAPI;
\ No newline at end of file
const system = require("../system"); const system = require("../system");
const moment = require('moment'); const moment = require('moment');
const settings = require("../../config/settings"); const settings = require("../../config/settings");
class ConsumerBase { class ConsumerBase {
constructor(className) { constructor(className) {
this.serviceName = className; this.serviceName = className;
this.execClient = system.getObject("util.execClient"); this.execClient = system.getObject("util.execClient");
this.pushSuccessLogDao = system.getObject("db.opLogs.pushSuccessLogDao"); this.pushSuccessLogDao = system.getObject("db.opLogs.pushSuccessLogDao");
this.pushFailureLogDao = system.getObject("db.opLogs.pushFailureLogDao"); this.pushFailureLogDao = system.getObject("db.opLogs.pushFailureLogDao");
this.errorLogDao = system.getObject("db.opLogs.errorLogDao"); this.errorLogDao = system.getObject("db.opLogs.errorLogDao");
this.redisClient = system.getObject("util.redisClient"); this.redisClient = system.getObject("util.redisClient");
this.duplicateInstance = this.redisClient.getDuplicateInstance(); this.duplicateInstance = this.redisClient.getDuplicateInstance();
} }
static getServiceName(ClassObj) { static getServiceName(ClassObj) {
return ClassObj["name"]; return ClassObj["name"];
} }
async doConsumer(queuedName, counter) { async doConsumer(queuedName, counter) {
try { try {
if (!counter) { if (!counter) {
counter = 1; counter = 1;
} }
var self = this; var self = this;
this.duplicateInstance.brpop(queuedName, 0, async function (err, repl) { this.duplicateInstance.brpop(queuedName, 0, async function (err, repl) {
if (err) { if (err) {
return new Error('doConsumer brpop error :' + err); return new Error('doConsumer brpop error :' + err);
} }
else { else {
if (repl[1]) { if (repl[1]) {
self.execSubDoConsumer(queuedName, JSON.parse(repl[1])); self.execSubDoConsumer(queuedName, JSON.parse(repl[1]));
} }
self.doConsumer(queuedName, counter); self.doConsumer(queuedName, counter);
} }
}); });
} catch (error) { } catch (error) {
this.errorLogDao.addOpErrorLogs("队列执行doConsumer存在异常", null, null, error.stack, 3); var stackStr = error.stack ? error.stack : JSON.stringify(error);
//日志 this.errorLogDao.addOpErrorLogs("队列执行doConsumer存在异常", null, null, stackStr, 3);
console.log(error.stack, ",队列执行doConsumer存在异常"); //日志
} console.log(stackStr, ",队列执行doConsumer存在异常");
} }
}
async execSubDoConsumer(queuedName, actionBody) {
var execResult = null; async execSubDoConsumer(queuedName, actionBody) {
try { var execResult = null;
this.subBeforeConsumer(queuedName, actionBody); try {
actionBody.requestId = await this.getBusUid("PUB-"); this.subBeforeConsumer(queuedName, actionBody);
if (queuedName.indexOf("SYTXFAIL-SYTXPUBLIC-MSGQ") < 0) { actionBody.requestId = await this.getBusUid("PUB-");
execResult = await this.subDoConsumer(queuedName, actionBody); if (queuedName.indexOf("SYTXFAIL-SYTXPUBLIC-MSGQ") < 0) {
actionBody.resultInfo = execResult; execResult = await this.subDoConsumer(queuedName, actionBody);
if (execResult.status === 1) { actionBody.resultInfo = execResult;
var notifyQueuedName = "NOTIFY-SYTXPUBLIC-MSGQ"; if (execResult.status === 1) {
if (queuedName.indexOf(notifyQueuedName) < 0) { var notifyQueuedName = "NOTIFY-SYTXPUBLIC-MSGQ";
if (actionBody.notifyUrl && actionBody.notifyUrl.indexOf("http") >= 0) { if (queuedName.indexOf(notifyQueuedName) < 0) {
await this.redisClient.lpushData(notifyQueuedName, actionBody); if (actionBody.notifyUrl && actionBody.notifyUrl.indexOf("http") >= 0) {
} await this.redisClient.lpushData(notifyQueuedName, actionBody);
} }
if ("LOGS-SYTXPUBLIC-MSGQ" != settings.queuedName) { }
await this.pushSuccessLogDao.addOpSuccessLogs("推送成功", actionBody, execResult); if ("LOGS-SYTXPUBLIC-MSGQ" != settings.queuedName) {
} await this.pushSuccessLogDao.addOpSuccessLogs("推送成功", actionBody, execResult);
return; }
} return;
var failQueuedName = "SYTXFAIL-SYTXPUBLIC-MSGQ"; }
actionBody.queuedName = queuedName; var failQueuedName = "SYTXFAIL-SYTXPUBLIC-MSGQ";
actionBody.counter = actionBody.counter ? actionBody.counter : 1; actionBody.queuedName = queuedName;
await this.redisClient.lpushData(failQueuedName, actionBody); actionBody.counter = actionBody.counter ? actionBody.counter : 1;
return; await this.redisClient.lpushData(failQueuedName, actionBody);
} return;
if (actionBody.counter > 4) { }
await this.pushFailureLogDao.addOpFailureLogs("推送失败", actionBody, actionBody.resultInfo); if (actionBody.counter > 4) {
return; await this.pushFailureLogDao.addOpFailureLogs("推送失败", actionBody, actionBody.resultInfo);
} return;
execResult = await this.subDoConsumer(queuedName, actionBody); }
} catch (error) { execResult = await this.subDoConsumer(queuedName, actionBody);
this.errorLogDao.addOpErrorLogs("队列执行execSubDoConsumer存在异常", actionBody, execResult, error.stack, 3); } catch (error) {
//日志记录 var stackStr = error.stack ? error.stack : JSON.stringify(error);
console.log(error.stack, ",队列执行execSubDoConsumer存在异常"); this.errorLogDao.addOpErrorLogs("队列执行execSubDoConsumer存在异常", actionBody, execResult, stackStr, 3);
} //日志记录
} console.log(stackStr, ",队列执行execSubDoConsumer存在异常");
}
}
async subBeforeConsumer(queuedName, actionBody) {
console.log("请在子类中重写此方法进行前置操作......", this.serviceName);
} async subBeforeConsumer(queuedName, actionBody) {
async subDoConsumer(queuedName, actionBody) { console.log("请在子类中重写此方法进行前置操作......", this.serviceName);
throw new Error("请在子类中重写此方法进行操作业务逻辑............................!"); }
} async subDoConsumer(queuedName, actionBody) {
sleep(milliSeconds) { throw new Error("请在子类中重写此方法进行操作业务逻辑............................!");
var startTime = new Date().getTime(); }
while (new Date().getTime() < startTime + milliSeconds); sleep(milliSeconds) {
} var startTime = new Date().getTime();
/** while (new Date().getTime() < startTime + milliSeconds);
* 带超时时间的post请求 }
* @param {*} params 请求数据-json格式 /**
* @param {*} url 请求地址 * 带超时时间的post请求
* @param {*} ContentType 请求头类型,默认application/json * @param {*} params 请求数据-json格式
* @param {*} headData 请求头内容-json格式,如:请求头中传递token,格式:{token:"9098902q849q0434q09439"} * @param {*} url 请求地址
*/ * @param {*} ContentType 请求头类型,默认application/json
async execPostByTimeOut(params, url, ContentType, headData, timeOut = 60) { * @param {*} headData 请求头内容-json格式,如:请求头中传递token,格式:{token:"9098902q849q0434q09439"}
return await this.execClient.execPostTimeOutByBusiness("consumer.base", params, url, ContentType, headData, timeOut); */
} async execPostByTimeOut(params, url, ContentType, headData, timeOut = 60) {
/* return await this.execClient.execPostTimeOutByBusiness("consumer.base", params, url, ContentType, headData, timeOut);
返回20位业务订单号 }
prefix:业务前缀 /*
*/ 返回20位业务订单号
async getBusUid(prefix) { prefix:业务前缀
prefix = (prefix || ""); */
if (prefix) { async getBusUid(prefix) {
prefix = prefix.toUpperCase(); prefix = (prefix || "");
} if (prefix) {
var prefixlength = prefix.length; prefix = prefix.toUpperCase();
var subLen = 8 - prefixlength; }
var uidStr = ""; var prefixlength = prefix.length;
if (subLen > 0) { var subLen = 8 - prefixlength;
uidStr = await this.getUidInfo(subLen, 60); var uidStr = "";
} if (subLen > 0) {
var timStr = moment().format("YYYYMMDDHHmm"); uidStr = await this.getUidInfo(subLen, 60);
return prefix + timStr + uidStr; }
} var timStr = moment().format("YYYYMMDDHHmm");
/* return prefix + timStr + uidStr;
len:返回长度 }
radix:参与计算的长度,最大为62 /*
*/ len:返回长度
async getUidInfo(len, radix) { radix:参与计算的长度,最大为62
var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');//长度62,到yz长度为长36 */
var uuid = [], i; async getUidInfo(len, radix) {
radix = radix || chars.length; var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');//长度62,到yz长度为长36
if (len) { var uuid = [], i;
for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix]; radix = radix || chars.length;
} else { if (len) {
var r; for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'; } else {
uuid[14] = '4'; var r;
for (i = 0; i < 36; i++) { uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
if (!uuid[i]) { uuid[14] = '4';
r = 0 | Math.random() * 16; for (i = 0; i < 36; i++) {
uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]; if (!uuid[i]) {
} r = 0 | Math.random() * 16;
} uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
} }
return uuid.join(''); }
} }
} return uuid.join('');
module.exports = ConsumerBase; }
}
module.exports = ConsumerBase;
const ConsumerBase = require("../../consumer.base"); const ConsumerBase = require("../../consumer.base");
const system = require("../../../system"); const system = require("../../../system");
const moment = require('moment'); const moment = require('moment');
class PublicFailConsumer extends ConsumerBase { class PublicFailConsumer extends ConsumerBase {
constructor() { constructor() {
super(ConsumerBase.getServiceName(PublicFailConsumer)); super(ConsumerBase.getServiceName(PublicFailConsumer));
} }
async subBeforeConsumer(queuedName, actionBody) { async subBeforeConsumer(queuedName, actionBody) {
console.log("前置操作......", this.serviceName); console.log("前置操作......", this.serviceName);
} }
async subDoConsumer(queuedName, actionBody) { async subDoConsumer(queuedName, actionBody) {
actionBody.counter = actionBody.counter + 1; actionBody.counter = actionBody.counter + 1;
var exTime = actionBody.counter * 20; var exTime = actionBody.counter * 20;
var mathStr = await this.getUidInfo(3, 10); var mathStr = await this.getUidInfo(3, 10);
var scoreValue = Number(moment().format("YYYYMMDDHHmmssSSS") + mathStr); var scoreValue = Number(moment().format("YYYYMMDDHHmmssSSS") + mathStr);
await this.redisClient.init(scoreValue); await this.redisClient.init(scoreValue);
await this.redisClient.setDelayEventData(queuedName, scoreValue, exTime); await this.redisClient.setDelayEventData(queuedName, scoreValue, exTime);
await this.redisClient.zaddSortedSet(queuedName, scoreValue, actionBody); await this.redisClient.zaddSortedSet(queuedName, scoreValue, actionBody);
return system.getResultSuccess(); return system.getResultSuccess();
} }
} }
module.exports = PublicFailConsumer; module.exports = PublicFailConsumer;
\ No newline at end of file
const ConsumerBase = require("../../consumer.base"); const ConsumerBase = require("../../consumer.base");
const system = require("../../../system"); const system = require("../../../system");
class PublicLogsConsumer extends ConsumerBase { class PublicLogsConsumer extends ConsumerBase {
constructor() { constructor() {
super(ConsumerBase.getServiceName(PublicLogsConsumer)); super(ConsumerBase.getServiceName(PublicLogsConsumer));
this.configInfoDao = system.getObject("db.opLogs.configInfoDao"); this.configInfoDao = system.getObject("db.opLogs.configInfoDao");
this.errorLogDao = system.getObject("db.opLogs.errorLogDao"); this.errorLogDao = system.getObject("db.opLogs.errorLogDao");
this.esUtils = system.getObject("util.esUtils"); this.esUtils = system.getObject("util.esUtils");
} }
async subBeforeConsumer(queuedName, actionBody) { async subBeforeConsumer(queuedName, actionBody) {
console.log("前置操作......", this.serviceName); console.log("前置操作......", this.serviceName);
} }
async subDoConsumer(queuedName, actionBody) { async subDoConsumer(queuedName, actionBody) {
var params = { var params = {
opTitle: actionBody.opTitle, opTitle: actionBody.opTitle,
identifyCode: actionBody.identifyCode, identifyCode: actionBody.identifyCode,
messageBody: actionBody.messageBody, messageBody: actionBody.messageBody,
requestId: actionBody.requestId requestId: actionBody.requestId
} }
var execResult = await this.esUtils.addEsLogs(queuedName, actionBody);; var execResult = await this.esUtils.addEsLogs(queuedName, actionBody);;
return execResult; return execResult;
} }
} }
module.exports = PublicLogsConsumer; module.exports = PublicLogsConsumer;
\ No newline at end of file
const ConsumerBase = require("../../consumer.base"); const ConsumerBase = require("../../consumer.base");
class PublicNotifyConsumer extends ConsumerBase { class PublicNotifyConsumer extends ConsumerBase {
constructor() { constructor() {
super(ConsumerBase.getServiceName(PublicNotifyConsumer)); super(ConsumerBase.getServiceName(PublicNotifyConsumer));
} }
async subBeforeConsumer(queuedName, actionBody) { async subBeforeConsumer(queuedName, actionBody) {
console.log("前置操作......", this.serviceName); console.log("前置操作......", this.serviceName);
} }
async subDoConsumer(queuedName, actionBody) { async subDoConsumer(queuedName, actionBody) {
var params = { var params = {
actionType: actionBody.actionType, actionType: actionBody.actionType,
identifyCode: actionBody.identifyCode, identifyCode: actionBody.identifyCode,
actionBody: { actionBody: {
messageBody: actionBody.messageBody, messageBody: actionBody.messageBody,
resultInfo: actionBody.resultInfo resultInfo: actionBody.resultInfo
}, },
requestId: actionBody.requestId requestId: actionBody.requestId
} }
var execResult = await this.execPostByTimeOut(params, actionBody.notifyUrl); var execResult = await this.execPostByTimeOut(params, actionBody.notifyUrl);
return execResult; return execResult;
} }
} }
module.exports = PublicNotifyConsumer; module.exports = PublicNotifyConsumer;
\ No newline at end of file
const ConsumerBase = require("../../consumer.base"); const ConsumerBase = require("../../consumer.base");
class PublicConsumer extends ConsumerBase { class PublicConsumer extends ConsumerBase {
constructor() { constructor() {
super(ConsumerBase.getServiceName(PublicConsumer)); super(ConsumerBase.getServiceName(PublicConsumer));
} }
async subBeforeConsumer(queuedName, actionBody) { async subBeforeConsumer(queuedName, actionBody) {
console.log("前置操作......", this.serviceName); console.log("前置操作......", this.serviceName);
} }
async subDoConsumer(queuedName, actionBody) { async subDoConsumer(queuedName, actionBody) {
var params = { var params = {
actionType: actionBody.actionType, actionType: actionBody.actionType,
identifyCode: actionBody.identifyCode, identifyCode: actionBody.identifyCode,
actionBody: actionBody.messageBody, actionBody: actionBody.messageBody,
requestId: actionBody.requestId requestId: actionBody.requestId
} }
var execResult = await this.execPostByTimeOut(params, actionBody.pushUrl); var execResult = await this.execPostByTimeOut(params, actionBody.pushUrl);
return execResult; return execResult;
} }
} }
module.exports = PublicConsumer; module.exports = PublicConsumer;
\ No newline at end of file
const system = require("../system"); const system = require("../system");
class Dao { class Dao {
constructor(modelName) { constructor(modelName) {
this.modelName = modelName; this.modelName = modelName;
var db = system.getObject("db.common.connection").getCon(); var db = system.getObject("db.common.connection").getCon();
this.db = db; this.db = db;
this.model = db.models[this.modelName]; this.model = db.models[this.modelName];
} }
static getModelName(ClassObj) { static getModelName(ClassObj) {
var nameStr = ClassObj["name"].substring(0, ClassObj["name"].lastIndexOf("Dao")); var nameStr = ClassObj["name"].substring(0, ClassObj["name"].lastIndexOf("Dao"));
var initialStr = nameStr.substring(0, 1); var initialStr = nameStr.substring(0, 1);
var resultStr = initialStr.toLowerCase() + nameStr.substring(1, nameStr.length); var resultStr = initialStr.toLowerCase() + nameStr.substring(1, nameStr.length);
return resultStr; return resultStr;
} }
preCreate(u) { preCreate(u) {
return u; return u;
} }
/** /**
* *
* @param {*} u 对象 * @param {*} u 对象
* @param {*} t 事务对象t * @param {*} t 事务对象t
*/ */
async create(u, t) { async create(u, t) {
var u2 = this.preCreate(u); var u2 = this.preCreate(u);
if (t) { if (t) {
return this.model.create(u2, { transaction: t }).then(u => { return this.model.create(u2, { transaction: t }).then(u => {
return u; return u;
}); });
} else { } else {
return this.model.create(u2, { transaction: t }).then(u => { return this.model.create(u2, { transaction: t }).then(u => {
return u; return u;
}); });
} }
} }
async customQuery(sql, paras, t) { async customQuery(sql, paras, t) {
var tmpParas = null;//||paras=='undefined'?{type: this.db.QueryTypes.SELECT }:{ replacements: paras, type: this.db.QueryTypes.SELECT }; var tmpParas = null;//||paras=='undefined'?{type: this.db.QueryTypes.SELECT }:{ replacements: paras, type: this.db.QueryTypes.SELECT };
if (t && t != 'undefined') { if (t && t != 'undefined') {
if (paras == null || paras == 'undefined') { if (paras == null || paras == 'undefined') {
tmpParas = { type: this.db.QueryTypes.SELECT }; tmpParas = { type: this.db.QueryTypes.SELECT };
tmpParas.transaction = t; tmpParas.transaction = t;
} else { } else {
tmpParas = { replacements: paras, type: this.db.QueryTypes.SELECT }; tmpParas = { replacements: paras, type: this.db.QueryTypes.SELECT };
tmpParas.transaction = t; tmpParas.transaction = t;
} }
} else { } else {
tmpParas = paras == null || paras == 'undefined' || paras.keys == 0 ? { type: this.db.QueryTypes.SELECT } : { replacements: paras, type: this.db.QueryTypes.SELECT }; tmpParas = paras == null || paras == 'undefined' || paras.keys == 0 ? { type: this.db.QueryTypes.SELECT } : { replacements: paras, type: this.db.QueryTypes.SELECT };
} }
var result = this.db.query(sql, tmpParas); var result = this.db.query(sql, tmpParas);
return result; return result;
} }
} }
module.exports = Dao; module.exports = Dao;
const Sequelize = require('sequelize'); const Sequelize = require('sequelize');
const settings=require("../../../../config/settings") const settings=require("../../../../config/settings")
const fs=require("fs") const fs=require("fs")
const path=require("path"); const path=require("path");
var glob = require("glob"); var glob = require("glob");
class DbFactory{ class DbFactory{
constructor(){ constructor(){
const dbConfig=settings.database(); const dbConfig=settings.database();
this.db=new Sequelize(dbConfig.dbname, this.db=new Sequelize(dbConfig.dbname,
dbConfig.user, dbConfig.user,
dbConfig.password, dbConfig.password,
dbConfig.config); dbConfig.config);
this.db.Sequelize=Sequelize; this.db.Sequelize=Sequelize;
this.db.Op=Sequelize.Op; this.db.Op=Sequelize.Op;
this.initModels(); this.initModels();
this.initRelations(); this.initRelations();
} }
async initModels(){ async initModels(){
var self=this; var self=this;
var modelpath=path.normalize(path.join(__dirname, '../..'))+"/models/"; var modelpath=path.normalize(path.join(__dirname, '../..'))+"/models/";
console.log(modelpath); console.log(modelpath);
var models=glob.sync(modelpath+"/**/*.js"); var models=glob.sync(modelpath+"/**/*.js");
console.log(models.length); console.log(models.length);
models.forEach(function(m){ models.forEach(function(m){
self.db.import(m); self.db.import(m);
}); });
console.log("init models...."); console.log("init models....");
} }
async initRelations(){ async initRelations(){
} }
//async getCon(){,用于使用替换table模型内字段数据使用 //async getCon(){,用于使用替换table模型内字段数据使用
getCon(){ getCon(){
var that=this; var that=this;
// await this.db.authenticate().then(()=>{ // await this.db.authenticate().then(()=>{
// console.log('Connection has been established successfully.'); // console.log('Connection has been established successfully.');
// }).catch(err => { // }).catch(err => {
// console.error('Unable to connect to the database:', err); // console.error('Unable to connect to the database:', err);
// throw err; // throw err;
// }); // });
//同步模型 //同步模型
if(settings.env=="dev"){ if(settings.env=="dev"){
//console.log(pa); //console.log(pa);
// pconfigObjs.forEach(p=>{ // pconfigObjs.forEach(p=>{
// console.log(p.get({plain:true})); // console.log(p.get({plain:true}));
// }); // });
// await this.db.models.user.create({nickName:"dev","description":"test user",openId:"testopenid",unionId:"testunionid"}) // await this.db.models.user.create({nickName:"dev","description":"test user",openId:"testopenid",unionId:"testunionid"})
// .then(function(user){ // .then(function(user){
// var acc=that.db.models.account.build({unionId:"testunionid",nickName:"dev"}); // var acc=that.db.models.account.build({unionId:"testunionid",nickName:"dev"});
// acc.save().then(a=>{ // acc.save().then(a=>{
// user.setAccount(a); // user.setAccount(a);
// }); // });
// }); // });
} }
return this.db; return this.db;
} }
} }
module.exports=DbFactory; module.exports=DbFactory;
// const dbf=new DbFactory(); // const dbf=new DbFactory();
// dbf.getCon().then((db)=>{ // dbf.getCon().then((db)=>{
// //console.log(db); // //console.log(db);
// // db.models.user.create({nickName:"jy","description":"cccc",openId:"xxyy",unionId:"zz"}) // // db.models.user.create({nickName:"jy","description":"cccc",openId:"xxyy",unionId:"zz"})
// // .then(function(user){ // // .then(function(user){
// // var acc=db.models.account.build({unionId:"zz",nickName:"jy"}); // // var acc=db.models.account.build({unionId:"zz",nickName:"jy"});
// // acc.save().then(a=>{ // // acc.save().then(a=>{
// // user.setAccount(a); // // user.setAccount(a);
// // }); // // });
// // console.log(user); // // console.log(user);
// // }); // // });
// // db.models.user.findAll().then(function(rs){ // // db.models.user.findAll().then(function(rs){
// // console.log("xxxxyyyyyyyyyyyyyyyyy"); // // console.log("xxxxyyyyyyyyyyyyyyyyy");
// // console.log(rs); // // console.log(rs);
// // }) // // })
// }); // });
// const User = db.define('user', { // const User = db.define('user', {
// firstName: { // firstName: {
// type: Sequelize.STRING // type: Sequelize.STRING
// }, // },
// lastName: { // lastName: {
// type: Sequelize.STRING // type: Sequelize.STRING
// } // }
// }); // });
// db // db
// .authenticate() // .authenticate()
// .then(() => { // .then(() => {
// console.log('Co+nnection has been established successfully.'); // console.log('Co+nnection has been established successfully.');
// //
// User.sync(/*{force: true}*/).then(() => { // User.sync(/*{force: true}*/).then(() => {
// // Table created // // Table created
// return User.create({ // return User.create({
// firstName: 'John', // firstName: 'John',
// lastName: 'Hancock' // lastName: 'Hancock'
// }); // });
// }); // });
// //
// }) // })
// .catch(err => { // .catch(err => {
// console.error('Unable to connect to the database:', err); // console.error('Unable to connect to the database:', err);
// }); // });
// //
// User.findAll().then((rows)=>{ // User.findAll().then((rows)=>{
// console.log(rows[0].firstName); // console.log(rows[0].firstName);
// }); // });
const system = require("../../../system"); const system = require("../../../system");
const AppServiceBase = require("../../app.base"); const AppServiceBase = require("../../app.base");
const settings = require("../../../../config/settings"); const settings = require("../../../../config/settings");
const moment = require('moment'); const moment = require('moment');
//用户权限操作 //用户权限操作
class UtilsIcService extends AppServiceBase { class UtilsIcService extends AppServiceBase {
constructor() { constructor() {
super(); super();
this.esUtils = system.getObject("util.esUtils"); this.esUtils = system.getObject("util.esUtils");
} }
/** /**
* 公司模糊查询 * 公司模糊查询
* actionBody {companyName:公司名称,currentPage:第几页,pageSize:每页大小} * actionBody {companyName:公司名称,currentPage:第几页,pageSize:每页大小}
*/ */
async getListByLikeCompanyName(actionBody) { async getListByLikeCompanyName(actionBody) {
if (!actionBody.companyName) { if (!actionBody.companyName) {
return system.getResult(null, "companyName can not be empty"); return system.getResult(null, "companyName can not be empty");
} }
actionBody.companyName = await this.getConvertSemiangleStr(actionBody.companyName); actionBody.companyName = await this.getConvertSemiangleStr(actionBody.companyName);
var pageSize = !actionBody.pageSize ? 15 : Number(actionBody.pageSize); var pageSize = !actionBody.pageSize ? 15 : Number(actionBody.pageSize);
if (pageSize < 0) { if (pageSize < 0) {
pageSize = 15; pageSize = 15;
} }
var from = !actionBody.currentPage ? 0 : Number((actionBody.currentPage - 1) * pageSize); var from = !actionBody.currentPage ? 0 : Number((actionBody.currentPage - 1) * pageSize);
if (from < 0) { if (from < 0) {
from = 0; from = 0;
} }
var esIndexName = "tx_ic_bigdata_business_index/_search"; var esIndexName = "tx_ic_bigdata_business_index/_search";
var params = { var params = {
"query": { "query": {
"bool": { "bool": {
"must": [ "must": [
{ {
"query_string": { "query_string": {
"default_field": "company_name", "default_field": "company_name",
"query": '\"' + actionBody.companyName + '\"' "query": '\"' + actionBody.companyName + '\"'
} }
} }
] ]
} }
}, },
"from": from, "from": from,
"size": pageSize, "size": pageSize,
"_source": [ "_source": [
"company_name"//公司名称 "company_name"//公司名称
// "company_org_type",//公司类型 // "company_org_type",//公司类型
// "credit_code",//统一社会信用代码 // "credit_code",//统一社会信用代码
// "legal_person",//法人姓名 // "legal_person",//法人姓名
// "from_time",//营业期限开始日期 // "from_time",//营业期限开始日期
// "to_time",//营业期限结束日期 // "to_time",//营业期限结束日期
// "estiblish_time",//成立时间 // "estiblish_time",//成立时间
// "reg_status",//公司状态 // "reg_status",//公司状态
// "reg_number",//注册号 // "reg_number",//注册号
// "org_number",//组织机构代码 // "org_number",//组织机构代码
// "reg_location",//公司地址 // "reg_location",//公司地址
// "reg_capital",//注册资本 // "reg_capital",//注册资本
// "business_scope",//公司经营范围 // "business_scope",//公司经营范围
// "reg_institute",//登记机关 // "reg_institute",//登记机关
// "company_province",//公司省份 // "company_province",//公司省份
// "company_city",//公司二级市 // "company_city",//公司二级市
// "company_cate_1",//行业分类一级分类 // "company_cate_1",//行业分类一级分类
// "company_cate_2",//行业分类二级分类 // "company_cate_2",//行业分类二级分类
// "company_cate_3"//行业分类三级分类 // "company_cate_3"//行业分类三级分类
] ]
// , // ,
// "sort": [ // "sort": [
// { // {
// "reg_capital": "desc" // "reg_capital": "desc"
// } // }
// ] // ]
} }
var resultData = null; var resultData = null;
try { try {
resultData = await this.esUtils.execPostEs(settings.queuedName, params, esIndexName); resultData = await this.esUtils.execPostEs(settings.queuedName, params, esIndexName);
var sources = []; var sources = [];
var data = { var data = {
"totalCount": resultData.data.hits.total, "totalCount": resultData.data.hits.total,
"pageSize": pageSize, "pageSize": pageSize,
"currentPage": from === 0 ? from : (from - 1), "currentPage": from === 0 ? from : (from - 1),
"list": sources "list": sources
}; };
if (!resultData.data.hits) { if (!resultData.data.hits) {
return system.getResult(null, "data is empty"); return system.getResult(null, "data is empty");
} }
if (!resultData.data.hits.hits || resultData.data.hits.hits.length === 0) { if (!resultData.data.hits.hits || resultData.data.hits.hits.length === 0) {
return system.getResult(null, "data is empty!"); return system.getResult(null, "data is empty!");
} }
resultData.data.hits.hits.forEach(function (c) { resultData.data.hits.hits.forEach(function (c) {
var source = { var source = {
"companyName": c._source.company_name//公司名称 "companyName": c._source.company_name//公司名称
// "companyOrgType": c._source.company_org_type || "",//公司类型 // "companyOrgType": c._source.company_org_type || "",//公司类型
// "creditCode": c._source.credit_code || "",//统一社会信用代码 // "creditCode": c._source.credit_code || "",//统一社会信用代码
// "legalPerson": c._source.legal_person,//法人姓名 // "legalPerson": c._source.legal_person,//法人姓名
// "fromTime": c._source.from_time ? moment(c._source.from_time * 1000).format("YYYY-MM-DD") : "",//营业期限开始日期 // "fromTime": c._source.from_time ? moment(c._source.from_time * 1000).format("YYYY-MM-DD") : "",//营业期限开始日期
// "toTime": c._source.to_time ? moment(c._source.to_time * 1000).format("YYYY-MM-DD") : "",//营业期限结束日期 // "toTime": c._source.to_time ? moment(c._source.to_time * 1000).format("YYYY-MM-DD") : "",//营业期限结束日期
// "estiblishTime": c._source.estiblish_time ? moment(c._source.estiblish_time * 1000).format("YYYY-MM-DD") : "",//成立时间 // "estiblishTime": c._source.estiblish_time ? moment(c._source.estiblish_time * 1000).format("YYYY-MM-DD") : "",//成立时间
// "regStatus": c._source.reg_status || "",//公司状态 // "regStatus": c._source.reg_status || "",//公司状态
// "regNumber": c._source.reg_number || "",//注册号 // "regNumber": c._source.reg_number || "",//注册号
// "orgNumber": c._source.org_number || "",//组织机构代码 // "orgNumber": c._source.org_number || "",//组织机构代码
// "regLocation": c._source.reg_location || "",//公司地址 // "regLocation": c._source.reg_location || "",//公司地址
// "regCapital": c._source.reg_capital || "",//注册资本 // "regCapital": c._source.reg_capital || "",//注册资本
// "businessScope": c._source.business_scope || "",//公司经营范围 // "businessScope": c._source.business_scope || "",//公司经营范围
// "regInstitute": c._source.reg_institute || "",//登记机关 // "regInstitute": c._source.reg_institute || "",//登记机关
// "companyProvince": c._source.company_province || "",//公司省份 // "companyProvince": c._source.company_province || "",//公司省份
// "companyCity": c._source.company_city || "",//公司二级市 // "companyCity": c._source.company_city || "",//公司二级市
// "companyCate1": c._source.company_cate_1 || "",//行业分类一级分类 // "companyCate1": c._source.company_cate_1 || "",//行业分类一级分类
// "companyCate2": c._source.company_cate_2 || "",//行业分类二级分类 // "companyCate2": c._source.company_cate_2 || "",//行业分类二级分类
// "companyCate3": c._source.company_cate_3 || ""//行业分类三级分类 // "companyCate3": c._source.company_cate_3 || ""//行业分类三级分类
}; };
sources.push(source); sources.push(source);
}); });
return system.getResultSuccess(data); return system.getResultSuccess(data);
} catch (e) { } catch (error) {
console.log(e.stack, ".. getListByLikeCompanyName query is error"); var stackStr = error.stack ? error.stack : JSON.stringify(error);
//TODO:日志 console.log(stackStr, ".. getListByLikeCompanyName query is error");
return system.getResultError("query is error"); //TODO:日志
} return system.getResultError("query is error");
} }
}
/**
* 公司精确查询 /**
* actionBody {companyName:公司名称} * 公司精确查询
*/ * actionBody {companyName:公司名称}
async getItemByCompanyName(actionBody) { */
if (!actionBody.companyName) { async getItemByCompanyName(actionBody) {
return system.getResult(null, "companyName can not be empty"); if (!actionBody.companyName) {
} return system.getResult(null, "companyName can not be empty");
actionBody.companyName = await this.getConvertSemiangleStr(actionBody.companyName); }
var esIndexName = "tx_ic_bigdata_business_index/_search"; actionBody.companyName = await this.getConvertSemiangleStr(actionBody.companyName);
var params = { var esIndexName = "tx_ic_bigdata_business_index/_search";
"query": { var params = {
"bool": { "query": {
"must": [ "bool": {
{ "must": [
"term": { {
"company_name.raw": actionBody.companyName "term": {
} "company_name.raw": actionBody.companyName
} }
] }
} ]
}, }
"from": 0, },
"size": 1, "from": 0,
"_source": [ "size": 1,
"company_name",//公司名称 "_source": [
"company_org_type",//公司类型 "company_name",//公司名称
"credit_code",//统一社会信用代码 "company_org_type",//公司类型
"legal_person",//法人姓名 "credit_code",//统一社会信用代码
"from_time",//营业期限开始日期 "legal_person",//法人姓名
"to_time",//营业期限结束日期 "from_time",//营业期限开始日期
"estiblish_time",//成立时间 "to_time",//营业期限结束日期
"reg_status",//公司状态 "estiblish_time",//成立时间
"reg_number",//注册号 "reg_status",//公司状态
"org_number",//组织机构代码 "reg_number",//注册号
"reg_location",//公司地址 "org_number",//组织机构代码
"reg_capital",//注册资本 "reg_location",//公司地址
"business_scope",//公司经营范围 "reg_capital",//注册资本
"reg_institute",//登记机关 "business_scope",//公司经营范围
"company_province",//公司省份 "reg_institute",//登记机关
"company_city",//公司二级市 "company_province",//公司省份
"company_cate_1",//行业分类一级分类 "company_city",//公司二级市
"company_cate_2",//行业分类二级分类 "company_cate_1",//行业分类一级分类
"company_cate_3"//行业分类三级分类 "company_cate_2",//行业分类二级分类
] "company_cate_3"//行业分类三级分类
// , ]
// "sort": [ // ,
// { // "sort": [
// "reg_capital": "desc" // {
// } // "reg_capital": "desc"
// ] // }
} // ]
}
var resultData = null;
try { var resultData = null;
resultData = await this.esUtils.execPostEs(settings.queuedName, params, esIndexName); try {
if (!resultData.data.hits) { resultData = await this.esUtils.execPostEs(settings.queuedName, params, esIndexName);
return system.getResult(null, "data is empty"); if (!resultData.data.hits) {
} return system.getResult(null, "data is empty");
if (!resultData.data.hits.hits || resultData.data.hits.hits.length === 0) { }
return system.getResult(null, "data is empty!"); if (!resultData.data.hits.hits || resultData.data.hits.hits.length === 0) {
} return system.getResult(null, "data is empty!");
var item = { }
"companyName": resultData.data.hits.hits[0]._source.company_name,//公司名称 var item = {
"companyOrgType": resultData.data.hits.hits[0]._source.company_org_type || "",//公司类型 "companyName": resultData.data.hits.hits[0]._source.company_name,//公司名称
"creditCode": resultData.data.hits.hits[0]._source.credit_code || "",//统一社会信用代码 "companyOrgType": resultData.data.hits.hits[0]._source.company_org_type || "",//公司类型
"legalPerson": resultData.data.hits.hits[0]._source.legal_person,//法人姓名 "creditCode": resultData.data.hits.hits[0]._source.credit_code || "",//统一社会信用代码
"fromTime": resultData.data.hits.hits[0]._source.from_time ? moment(resultData.data.hits.hits[0]._source.from_time * 1000).format("YYYY-MM-DD") : "",//营业期限开始日期 "legalPerson": resultData.data.hits.hits[0]._source.legal_person,//法人姓名
"toTime": resultData.data.hits.hits[0]._source.to_time ? moment(resultData.data.hits.hits[0]._source.to_time * 1000).format("YYYY-MM-DD") : "",//营业期限结束日期 "fromTime": resultData.data.hits.hits[0]._source.from_time ? moment(resultData.data.hits.hits[0]._source.from_time * 1000).format("YYYY-MM-DD") : "",//营业期限开始日期
"estiblishTime": resultData.data.hits.hits[0]._source.estiblish_time ? moment(resultData.data.hits.hits[0]._source.estiblish_time * 1000).format("YYYY-MM-DD") : "",//成立时间 "toTime": resultData.data.hits.hits[0]._source.to_time ? moment(resultData.data.hits.hits[0]._source.to_time * 1000).format("YYYY-MM-DD") : "",//营业期限结束日期
"regStatus": resultData.data.hits.hits[0]._source.reg_status || "",//公司状态 "estiblishTime": resultData.data.hits.hits[0]._source.estiblish_time ? moment(resultData.data.hits.hits[0]._source.estiblish_time * 1000).format("YYYY-MM-DD") : "",//成立时间
"regNumber": resultData.data.hits.hits[0]._source.reg_number || "",//注册号 "regStatus": resultData.data.hits.hits[0]._source.reg_status || "",//公司状态
"orgNumber": resultData.data.hits.hits[0]._source.org_number || "",//组织机构代码 "regNumber": resultData.data.hits.hits[0]._source.reg_number || "",//注册号
"regLocation": resultData.data.hits.hits[0]._source.reg_location || "",//公司地址 "orgNumber": resultData.data.hits.hits[0]._source.org_number || "",//组织机构代码
"regCapital": resultData.data.hits.hits[0]._source.reg_capital || "",//注册资本 "regLocation": resultData.data.hits.hits[0]._source.reg_location || "",//公司地址
"businessScope": resultData.data.hits.hits[0]._source.business_scope || "",//公司经营范围 "regCapital": resultData.data.hits.hits[0]._source.reg_capital || "",//注册资本
"regInstitute": resultData.data.hits.hits[0]._source.reg_institute || "",//登记机关 "businessScope": resultData.data.hits.hits[0]._source.business_scope || "",//公司经营范围
"companyProvince": resultData.data.hits.hits[0]._source.company_province || "",//公司省份 "regInstitute": resultData.data.hits.hits[0]._source.reg_institute || "",//登记机关
"companyCity": resultData.data.hits.hits[0]._source.company_city || "",//公司二级市 "companyProvince": resultData.data.hits.hits[0]._source.company_province || "",//公司省份
"companyCate1": resultData.data.hits.hits[0]._source.company_cate_1 || "",//行业分类一级分类 "companyCity": resultData.data.hits.hits[0]._source.company_city || "",//公司二级市
"companyCate2": resultData.data.hits.hits[0]._source.company_cate_2 || "",//行业分类二级分类 "companyCate1": resultData.data.hits.hits[0]._source.company_cate_1 || "",//行业分类一级分类
"companyCate3": resultData.data.hits.hits[0]._source.company_cate_3 || ""//行业分类三级分类 "companyCate2": resultData.data.hits.hits[0]._source.company_cate_2 || "",//行业分类二级分类
}; "companyCate3": resultData.data.hits.hits[0]._source.company_cate_3 || ""//行业分类三级分类
return system.getResultSuccess(item); };
} catch (e) { return system.getResultSuccess(item);
//TODO:日志 } catch (error) {
console.log(e.stack, ".. getItemByCompanyName query is error"); var stackStr = error.stack ? error.stack : JSON.stringify(error);
return system.getResultError("query is error"); //TODO:日志
} console.log(stackStr, ".. getItemByCompanyName query is error");
} return system.getResultError("query is error");
}
async getConvertSemiangleStr(str) { }
var result = "";
str = str.replace(/\s+/g, ""); async getConvertSemiangleStr(str) {
var len = str.length; var result = "";
for (var i = 0; i < len; i++) { str = str.replace(/\s+/g, "");
var cCode = str.charCodeAt(i); var len = str.length;
//全角与半角相差(除空格外):65248(十进制) for (var i = 0; i < len; i++) {
cCode = (cCode >= 0xFF01 && cCode <= 0xFF5E) ? (cCode - 65248) : cCode; var cCode = str.charCodeAt(i);
//处理空格 //全角与半角相差(除空格外):65248(十进制)
cCode = (cCode == 0x03000) ? 0x0020 : cCode; cCode = (cCode >= 0xFF01 && cCode <= 0xFF5E) ? (cCode - 65248) : cCode;
result += String.fromCharCode(cCode); //处理空格
} cCode = (cCode == 0x03000) ? 0x0020 : cCode;
return result; result += String.fromCharCode(cCode);
} }
} return result;
module.exports = UtilsIcService; }
}
module.exports = UtilsIcService;
const system = require("../../../system"); const system = require("../../../system");
const settings = require("../../../../config/settings"); const settings = require("../../../../config/settings");
const AppServiceBase = require("../../app.base"); const AppServiceBase = require("../../app.base");
//用户权限操作 //用户权限操作
class UtilsProduceService extends AppServiceBase { class UtilsProduceService extends AppServiceBase {
constructor() { constructor() {
super(); super();
} }
/** /**
* 接口跳转-POST请求 * 接口跳转-POST请求
* action_type 执行的类型 * action_type 执行的类型
* action_body 执行的参数 * action_body 执行的参数
*/ */
async produceData(pobj, req) { async produceData(pobj, req) {
if (!pobj.actionBody) { if (!pobj.actionBody) {
return system.getResult(null, "actionBody不能为空"); return system.getResult(null, "actionBody不能为空");
} }
var keyCount = Object.keys(pobj.actionBody).length; var keyCount = Object.keys(pobj.actionBody).length;
if (keyCount === 0) { if (keyCount === 0) {
return system.getResult(null, "actionBody参数不能为空"); return system.getResult(null, "actionBody参数不能为空");
} }
if (!pobj.actionBody.pushUrl) { if (!pobj.actionBody.pushUrl) {
return system.getResult(null, "actionBody.pushUrl参数不能为空"); return system.getResult(null, "actionBody.pushUrl参数不能为空");
} }
if (!pobj.actionBody.identifyCode) { if (!pobj.actionBody.identifyCode) {
return system.getResult(null, "actionBody.identifyCode参数不能为空"); return system.getResult(null, "actionBody.identifyCode参数不能为空");
} }
if (!pobj.actionBody.messageBody) { if (!pobj.actionBody.messageBody) {
return system.getResult(null, "actionBody.messageBody不能为空"); return system.getResult(null, "actionBody.messageBody不能为空");
} }
var msgKeyCount = Object.keys(pobj.actionBody.messageBody).length; var msgKeyCount = Object.keys(pobj.actionBody.messageBody).length;
if (msgKeyCount === 0) { if (msgKeyCount === 0) {
return system.getResult(null, "actionBody.messageBody参数不能为空"); return system.getResult(null, "actionBody.messageBody参数不能为空");
} }
await this.redisClient.lpushData(settings.queuedName, pobj.actionBody); await this.redisClient.lpushData(settings.queuedName, pobj.actionBody);
return system.getResultSuccess(); return system.getResultSuccess();
} }
/** /**
* 接口跳转-POST请求 * 接口跳转-POST请求
* action_type 执行的类型 * action_type 执行的类型
* action_body 执行的参数 * action_body 执行的参数
*/ */
async produceLogsData(pobj, req) { async produceLogsData(pobj, req) {
if (!pobj.actionBody) { if (!pobj.actionBody) {
return system.getResult(null, "actionBody不能为空"); return system.getResult(null, "actionBody不能为空");
} }
var keyCount = Object.keys(pobj.actionBody).length; var keyCount = Object.keys(pobj.actionBody).length;
if (keyCount === 0) { if (keyCount === 0) {
return system.getResult(null, "actionBody参数不能为空"); return system.getResult(null, "actionBody参数不能为空");
} }
if (!pobj.actionBody.identifyCode) { if (!pobj.actionBody.identifyCode) {
return system.getResult(null, "actionBody.identifyCode参数不能为空"); return system.getResult(null, "actionBody.identifyCode参数不能为空");
} }
if (!pobj.actionBody.messageBody) { if (!pobj.actionBody.messageBody) {
return system.getResult(null, "actionBody.messageBody不能为空"); return system.getResult(null, "actionBody.messageBody不能为空");
} }
var msgKeyCount = Object.keys(pobj.actionBody.messageBody).length; var msgKeyCount = Object.keys(pobj.actionBody.messageBody).length;
if (msgKeyCount === 0) { if (msgKeyCount === 0) {
return system.getResult(null, "actionBody.messageBody参数不能为空"); return system.getResult(null, "actionBody.messageBody参数不能为空");
} }
await this.redisClient.lpushData(settings.queuedName, pobj.actionBody); await this.redisClient.lpushData(settings.queuedName, pobj.actionBody);
return system.getResultSuccess(); return system.getResultSuccess();
} }
} }
module.exports = UtilsProduceService; module.exports = UtilsProduceService;
const system = require("../../../system"); const system = require("../../../system");
const AppServiceBase = require("../../app.base"); const AppServiceBase = require("../../app.base");
const { TXCOSCONFIG } = require("../../../../config/platform"); const { TXCOSCONFIG } = require("../../../../config/platform");
const COSSTS = require('qcloud-cos-sts'); const COSSTS = require('qcloud-cos-sts');
//用户权限操作 //用户权限操作
class UtilsTxCosService extends AppServiceBase { class UtilsTxCosService extends AppServiceBase {
constructor() { constructor() {
super(); super();
this.configInfoDao = system.getObject("db.opLogs.configInfoDao"); this.configInfoDao = system.getObject("db.opLogs.configInfoDao");
} }
/** /**
* 接口跳转-POST请求 * 接口跳转-POST请求
* action_type 执行的类型 * action_type 执行的类型
* action_body 执行的参数 * action_body 执行的参数
*/ */
async getCosInfo() { async getCosInfo() {
var result = null; var result = null;
if (TXCOSCONFIG.allowPrefix === '_ALLOW_DIR_/*') { if (TXCOSCONFIG.allowPrefix === '_ALLOW_DIR_/*') {
result = system.getResult(null, "请修改 allowPrefix 配置项,指定允许上传的路径前缀"); result = system.getResult(null, "请修改 allowPrefix 配置项,指定允许上传的路径前缀");
return result; return result;
} }
var configInfoResult = await this.configInfoDao.getList(); var configInfoResult = await this.configInfoDao.getList();
if (configInfoResult.status != 1) { if (configInfoResult.status != 1) {
result = system.getResult(null, "db-configInfo list is empty"); result = system.getResult(null, "db-configInfo list is empty");
return result; return result;
} }
var cosSecretId = configInfoResult.data.filter(f => f.c_key === "cosSecretId"); var cosSecretId = configInfoResult.data.filter(f => f.c_key === "cosSecretId");
var cosSecretKey = configInfoResult.data.filter(f => f.c_key === "cosSecretKey"); var cosSecretKey = configInfoResult.data.filter(f => f.c_key === "cosSecretKey");
var cosBucket = configInfoResult.data.filter(f => f.c_key === "cosBucket"); var cosBucket = configInfoResult.data.filter(f => f.c_key === "cosBucket");
var cosRegion = configInfoResult.data.filter(f => f.c_key === "cosRegion"); var cosRegion = configInfoResult.data.filter(f => f.c_key === "cosRegion");
var cosProxy = configInfoResult.data.filter(f => f.c_key === "cosProxy"); var cosProxy = configInfoResult.data.filter(f => f.c_key === "cosProxy");
if (!cosSecretId || !cosSecretKey || !cosBucket || !cosRegion) { if (!cosSecretId || !cosSecretKey || !cosBucket || !cosRegion) {
result = system.getResult(null, "db-configInfo,cos info is empty"); result = system.getResult(null, "db-configInfo,cos info is empty");
return result; return result;
} }
// 获取临时密钥 // 获取临时密钥
var LongBucketName = cosBucket[0].c_value; var LongBucketName = cosBucket[0].c_value;
var ShortBucketName = LongBucketName.substr(0, LongBucketName.lastIndexOf('-')); var ShortBucketName = LongBucketName.substr(0, LongBucketName.lastIndexOf('-'));
var AppId = LongBucketName.substr(LongBucketName.lastIndexOf('-') + 1); var AppId = LongBucketName.substr(LongBucketName.lastIndexOf('-') + 1);
var policy = { var policy = {
'version': '2.0', 'version': '2.0',
'statement': [{ 'statement': [{
'action': TXCOSCONFIG.allowActions, 'action': TXCOSCONFIG.allowActions,
'effect': 'allow', 'effect': 'allow',
'resource': [ 'resource': [
'qcs::cos:' + cosRegion[0].c_value + ':uid/' + AppId + ':prefix//' + AppId + '/' + ShortBucketName + '/' + TXCOSCONFIG.allowPrefix, 'qcs::cos:' + cosRegion[0].c_value + ':uid/' + AppId + ':prefix//' + AppId + '/' + ShortBucketName + '/' + TXCOSCONFIG.allowPrefix,
], ],
}], }],
}; };
var options = { var options = {
secretId: cosSecretId[0].c_value, secretId: cosSecretId[0].c_value,
secretKey: cosSecretKey[0].c_value, secretKey: cosSecretKey[0].c_value,
proxy: cosProxy ? cosProxy[0].c_value || "" : "", proxy: cosProxy ? cosProxy[0].c_value || "" : "",
region: cosRegion[0].c_value, region: cosRegion[0].c_value,
durationSeconds: TXCOSCONFIG.durationSeconds, durationSeconds: TXCOSCONFIG.durationSeconds,
policy: policy, policy: policy,
}; };
console.log(options, "...getCosInfo.....options"); console.log(options, "...getCosInfo.....options");
var getParam = await new Promise(function (resv, rej) { var getParam = await new Promise(function (resv, rej) {
COSSTS.getCredential(options, function (err, tempKeys) { COSSTS.getCredential(options, function (err, tempKeys) {
if (err) { if (err) {
rej(err); rej(err);
} else { } else {
if (tempKeys.credentials) { if (tempKeys.credentials) {
tempKeys.credentials.tmpBucket = cosBucket[0].c_value; tempKeys.credentials.tmpBucket = cosBucket[0].c_value;
tempKeys.credentials.tmpRegion = cosRegion[0].c_value; tempKeys.credentials.tmpRegion = cosRegion[0].c_value;
} }
resv(tempKeys); resv(tempKeys);
} }
}); });
}); });
result = getParam ? system.getResultSuccess(getParam) : system.getResult(null, "获取cos信息失败"); result = getParam ? system.getResultSuccess(getParam) : system.getResult(null, "获取cos信息失败");
return result; return result;
} }
} }
module.exports = UtilsTxCosService; module.exports = UtilsTxCosService;
var fs = require("fs"); var fs = require("fs");
var objsettings = require("../config/objsettings"); var objsettings = require("../config/objsettings");
var settings = require("../config/settings"); var settings = require("../config/settings");
const request = require('request'); const request = require('request');
class System { class System {
static declare(ns) { static declare(ns) {
var ar = ns.split('.'); var ar = ns.split('.');
var root = System; var root = System;
for (var i = 0, len = ar.length; i < len; ++i) { for (var i = 0, len = ar.length; i < len; ++i) {
var n = ar[i]; var n = ar[i];
if (!root[n]) { if (!root[n]) {
root[n] = {}; root[n] = {};
root = root[n]; root = root[n];
} else { } else {
root = root[n]; root = root[n];
} }
} }
} }
static async delReq(url, qdata) { static async delReq(url, qdata) {
let rtn = {} let rtn = {}
let promise = new Promise(function (resv, rej) { let promise = new Promise(function (resv, rej) {
request.del({ request.del({
url: url, url: url,
qs: qdata qs: qdata
}, function (error, response, body) { }, function (error, response, body) {
rtn.statusCode = response.statusCode rtn.statusCode = response.statusCode
if (!error) { if (!error) {
if (body) { if (body) {
let data = JSON.parse(body) let data = JSON.parse(body)
rtn.data = data rtn.data = data
} else { } else {
rtn.data = null rtn.data = null
} }
resv(rtn); resv(rtn);
} else { } else {
rej(error) rej(error)
} }
}); });
}) })
return promise; return promise;
} }
static async getReq(url, qdata) { static async getReq(url, qdata) {
let rtn = {} let rtn = {}
let promise = new Promise(function (resv, rej) { let promise = new Promise(function (resv, rej) {
request.get({ request.get({
url: url, url: url,
json: true, json: true,
qs: qdata qs: qdata
}, function (error, response, body) { }, function (error, response, body) {
rtn.statusCode = response.statusCode; rtn.statusCode = response.statusCode;
if (!error) { if (!error) {
if (body) { if (body) {
rtn.data = body rtn.data = body
} else { } else {
rtn.data = null rtn.data = null
} }
resv(rtn); resv(rtn);
} else { } else {
rej(error); rej(error);
} }
}); });
}) })
return promise; return promise;
} }
static async postJsonTypeReq(url, data, md = "POST") { static async postJsonTypeReq(url, data, md = "POST") {
let rtn = {} let rtn = {}
let promise = new Promise(function (resv, rej) { let promise = new Promise(function (resv, rej) {
request({ request({
url: url, url: url,
method: md, method: md,
json: true, json: true,
headers: { headers: {
"content-type": "application/json", "content-type": "application/json",
}, },
body: data body: data
}, function (error, response, body) { }, function (error, response, body) {
console.log(error) console.log(error)
rtn.statusCode = response.statusCode rtn.statusCode = response.statusCode
if (!error) { if (!error) {
if (body) { if (body) {
rtn.data = body rtn.data = body
} else { } else {
rtn.data = null rtn.data = null
} }
resv(rtn); resv(rtn);
} else { } else {
rej(error) rej(error)
} }
}); });
}) })
return promise; return promise;
} }
static async post3wFormTypeReq(url, data) { static async post3wFormTypeReq(url, data) {
let rtn = {} let rtn = {}
let promise = new Promise(function (resv, rej) { let promise = new Promise(function (resv, rej) {
request.post({ request.post({
url: url, url: url,
form: data form: data
}, function (error, response, body) { }, function (error, response, body) {
rtn.statusCode = response.statusCode rtn.statusCode = response.statusCode
if (!error) { if (!error) {
let data = JSON.parse(body) let data = JSON.parse(body)
rtn.data = data rtn.data = data
resv(rtn); resv(rtn);
} else { } else {
rej(error) rej(error)
} }
}); });
}) })
return promise; return promise;
} }
static async postMpFormTypeReq(url, formdata) { static async postMpFormTypeReq(url, formdata) {
let promise = new Promise(function (resv, rej) { let promise = new Promise(function (resv, rej) {
request.post({ request.post({
url: url, url: url,
formData: formdata formData: formdata
}, function (error, response, body) { }, function (error, response, body) {
if (!error && response.statusCode == 200) { if (!error && response.statusCode == 200) {
resv(body); resv(body);
} else { } else {
rej(error) rej(error)
} }
}); });
}) })
return promise; return promise;
} }
/** /**
* 请求返回成功 * 请求返回成功
* @param {*} data 操作成功返回的数据,有值为成功,无值为失败 * @param {*} data 操作成功返回的数据,有值为成功,无值为失败
* @param {*} okmsg 操作成功的描述 * @param {*} okmsg 操作成功的描述
* @param {*} req 请求头信息 * @param {*} req 请求头信息
*/ */
static getResult(data, opmsg = "操作成功", req) { static getResult(data, opmsg = "操作成功", req) {
return { return {
status: !data ? -1 : 1, status: !data ? -1 : 1,
message: opmsg, message: opmsg,
data: data data: data
}; };
} }
/** /**
* 请求返回成功 * 请求返回成功
* @param {*} data 操作成功返回的数据 * @param {*} data 操作成功返回的数据
* @param {*} okmsg 操作成功的描述 * @param {*} okmsg 操作成功的描述
*/ */
static getResultSuccess(data, okmsg = "success") { static getResultSuccess(data, okmsg = "success") {
return { return {
status: 1, status: 1,
message: okmsg, message: okmsg,
data: data || null, data: data || null,
}; };
} }
/** /**
* 请求返回失败 * 请求返回失败
* @param {*} status 操作失败状态,默认为-1 * @param {*} status 操作失败状态,默认为-1
* @param {*} errmsg 操作失败的描述,默认为fail * @param {*} errmsg 操作失败的描述,默认为fail
* @param {*} data 操作失败返回的数据 * @param {*} data 操作失败返回的数据
*/ */
static getResultFail(status = -1, errmsg = "fail", data = null) { static getResultFail(status = -1, errmsg = "fail", data = null) {
return { return {
status: status, status: status,
message: errmsg, message: errmsg,
data: data, data: data,
}; };
} }
/** /**
* 请求处理异常 * 请求处理异常
* @param {*} errmsg 操作失败的描述,默认为fail * @param {*} errmsg 操作失败的描述,默认为fail
* @param {*} data 操作失败返回的数据 * @param {*} data 操作失败返回的数据
*/ */
static getResultError(errmsg = "fail", data = null) { static getResultError(errmsg = "fail", data = null) {
return { return {
status: -200, status: -200,
message: errmsg, message: errmsg,
data: data, data: data,
}; };
} }
static register(key, ClassObj, groupName, filename) { static register(key, ClassObj, groupName, filename) {
if (System.objTable[key] != null) { if (System.objTable[key] != null) {
throw new Error("相同key的对象已经存在"); throw new Error("相同key的对象已经存在");
} else { } else {
let obj; let obj;
if (ClassObj.name === "ServiceBase") { if (ClassObj.name === "ServiceBase") {
obj = new ClassObj(groupName, filename.replace("Sve", "Dao")); obj = new ClassObj(groupName, filename.replace("Sve", "Dao"));
} else { } else {
obj = new ClassObj(groupName, filename); obj = new ClassObj(groupName, filename);
} }
System.objTable[key] = obj; System.objTable[key] = obj;
} }
return System.objTable[key]; return System.objTable[key];
} }
static getObject(objpath) { static getObject(objpath) {
var pathArray = objpath.split("."); var pathArray = objpath.split(".");
var packageName = pathArray[0]; var packageName = pathArray[0];
var groupName = pathArray[1]; var groupName = pathArray[1];
var filename = pathArray[2]; var filename = pathArray[2];
var classpath = ""; var classpath = "";
if (filename) { if (filename) {
classpath = objsettings[packageName] + "/" + groupName; classpath = objsettings[packageName] + "/" + groupName;
} else { } else {
classpath = objsettings[packageName]; classpath = objsettings[packageName];
filename = groupName; filename = groupName;
} }
var objabspath = classpath + "/" + filename + ".js"; var objabspath = classpath + "/" + filename + ".js";
//判断文件的存在性 //判断文件的存在性
//如果不存在,需要查看packageName //如果不存在,需要查看packageName
//如果packageName=web.service,dao //如果packageName=web.service,dao
if (System.objTable[objabspath] != null) { if (System.objTable[objabspath] != null) {
return System.objTable[objabspath]; return System.objTable[objabspath];
} else { } else {
var ClassObj = null; var ClassObj = null;
try { try {
ClassObj = require(objabspath); ClassObj = require(objabspath);
} catch (e) { } catch (e) {
console.log(e.stack, "...getObject.....errror"); // console.log(e.stack, "...getObject.....errror");
let fname = objsettings[packageName + "base"]; let fname = objsettings[packageName + "base"];
ClassObj = require(fname); ClassObj = require(fname);
} }
if (ClassObj.name == "Dao") { if (ClassObj.name == "Dao") {
let modelname = filename.substring(0, filename.lastIndexOf("Dao")) let modelname = filename.substring(0, filename.lastIndexOf("Dao"))
return System.register(objabspath, ClassObj, modelname); return System.register(objabspath, ClassObj, modelname);
} }
if (ClassObj.name.indexOf("Ctl") >= 0) { if (ClassObj.name.indexOf("Ctl") >= 0) {
console.log(ClassObj.name); console.log(ClassObj.name);
} }
return System.register(objabspath, ClassObj, groupName, filename); return System.register(objabspath, ClassObj, groupName, filename);
} }
} }
static get_client_ip(req) { static get_client_ip(req) {
var ip = req.headers['x-forwarded-for'] || var ip = req.headers['x-forwarded-for'] ||
req.ip || req.ip ||
req.connection.remoteAddress || req.connection.remoteAddress ||
req.socket.remoteAddress || req.socket.remoteAddress ||
(req.connection.socket && req.connection.socket.remoteAddress) || ''; (req.connection.socket && req.connection.socket.remoteAddress) || '';
var x = ip.match(/(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/); var x = ip.match(/(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/);
if (x) { if (x) {
return x[0]; return x[0];
} else { } else {
return "localhost"; return "localhost";
} }
}; };
} }
Date.prototype.Format = function (fmt) { //author: meizz Date.prototype.Format = function (fmt) { //author: meizz
var o = { var o = {
"M+": this.getMonth() + 1, //月份 "M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日 "d+": this.getDate(), //日
"h+": this.getHours(), //小时 "h+": this.getHours(), //小时
"m+": this.getMinutes(), //分 "m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒 "s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度 "q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒 "S": this.getMilliseconds() //毫秒
}; };
if (/(y+)/.test(fmt)) if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o) for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt; return fmt;
} }
System.objTable = {}; System.objTable = {};
module.exports = System; module.exports = System;
\ No newline at end of file
...@@ -85,8 +85,9 @@ class EsUtils { ...@@ -85,8 +85,9 @@ class EsUtils {
} }
return system.getResultSuccess(stdoutInfo); return system.getResultSuccess(stdoutInfo);
} catch (error) { } catch (error) {
console.log(error.stack, "......execPostEs....error....."); var stackStr = error.stack ? error.stack : JSON.stringify(error);
this.errorLogDao.addOpErrorLogs(queuedName + "执行execPostEs存在异常", params, null, error.stack, 3); console.log(stackStr, "......execPostEs....error.....");
this.errorLogDao.addOpErrorLogs(queuedName + "执行execPostEs存在异常", params, null, stackStr, 3);
} }
} }
} }
......
...@@ -61,7 +61,8 @@ class ExecClient { ...@@ -61,7 +61,8 @@ class ExecClient {
var result = JSON.parse(rtn.stdout); var result = JSON.parse(rtn.stdout);
return result; return result;
} catch (error) { } catch (error) {
this.errorLogDao.addOpErrorLogs(execFile + "执行execPostByTimeOut存在异常", params, rtn.stdout, error.stack, 3); var stackStr = error.stack ? error.stack : JSON.stringify(error);
this.errorLogDao.addOpErrorLogs(execFile + "执行execPostByTimeOut存在异常", params, rtn ? rtn.stdout : null, stackStr, 3);
return system.getResultFail(-200, execFile + "执行execPostByTimeOut存在异常"); return system.getResultFail(-200, execFile + "执行execPostByTimeOut存在异常");
} }
} }
......
...@@ -42,8 +42,9 @@ class RedisClient { ...@@ -42,8 +42,9 @@ class RedisClient {
await self.zremRangebyscoreData(opResult[0], opResult[1], opResult[1]); await self.zremRangebyscoreData(opResult[0], opResult[1], opResult[1]);
} }
} catch (error) { } catch (error) {
var stackStr = error.stack ? error.stack : JSON.stringify(error);
//TODO:日志处理 //TODO:日志处理
console.log(error.stack, ".....message......................error..........."); console.log(stackStr, ".....message......................error...........");
} }
}); });
......
var express = require('express'); var express = require('express');
var path = require('path'); var path = require('path');
var methodOverride = require('method-override'); var methodOverride = require('method-override');
// var cookierParser = require('cookie-parser'); // var cookierParser = require('cookie-parser');
// var session = require('express-session'); // var session = require('express-session');
// var RedisStore = require('connect-redis')(session); // var RedisStore = require('connect-redis')(session);
var bodyParser = require('body-parser'); var bodyParser = require('body-parser');
// var multer = require('multer'); // var multer = require('multer');
var errorHandler = require('errorhandler'); var errorHandler = require('errorhandler');
var settings = require('./settings'); var settings = require('./settings');
var system = require('../base/system'); var system = require('../base/system');
var routes = require('./routes'); var routes = require('./routes');
// const logCtl = system.getObject("service.common.oplogSve"); // const logCtl = system.getObject("service.common.oplogSve");
// const clientRedis = system.getObject("util.redisClient").client; // const clientRedis = system.getObject("util.redisClient").client;
//const tm=system.getObject("db.taskManager"); //const tm=system.getObject("db.taskManager");
module.exports = function (app) { module.exports = function (app) {
app.set('port', settings.port); app.set('port', settings.port);
app.use(methodOverride()); app.use(methodOverride());
// app.use(cookierParser()); // app.use(cookierParser());
app.use(bodyParser.json({ limit: '50mb' })); app.use(bodyParser.json({ limit: '50mb' }));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true })); app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
routes(app);//初始化路由 routes(app);//初始化路由
app.use(express.static(path.join(settings.basepath, '/app/front/entry/public'))); app.use(express.static(path.join(settings.basepath, '/app/front/entry/public')));
app.all('*', function (req, res, next) { app.all('*', function (req, res, next) {
req.objs = system; req.objs = system;
res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild'); res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
//跨域允许的请求方式 //跨域允许的请求方式
res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS'); res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
res.header('Access-Control-Allow-Credentials', 'true'); res.header('Access-Control-Allow-Credentials', 'true');
if (req.method.toLowerCase() == 'options') { if (req.method.toLowerCase() == 'options') {
res.send(200); //让options请求快速返回/ res.send(200); //让options请求快速返回/
} }
else { else {
next(); next();
} }
}); });
// if (settings.env == "dev") { // if (settings.env == "dev") {
// app.use(session( // app.use(session(
// { // {
// name: 'devdemosid', // name: 'devdemosid',
// cookie: { maxAge: 3600000 }, // cookie: { maxAge: 3600000 },
// rolling: true, // rolling: true,
// resave: false, // resave: false,
// saveUninitialized: false, // saveUninitialized: false,
// secret: 'uwotm8', // secret: 'uwotm8',
// store: new RedisStore({ // store: new RedisStore({
// client: clientRedis, // client: clientRedis,
// }), // }),
// })); // }));
// } else { // } else {
// app.use(session( // app.use(session(
// { // {
// name: 'demosid', // name: 'demosid',
// cookie: { maxAge: 3600000 }, // cookie: { maxAge: 3600000 },
// rolling: true, // rolling: true,
// resave: false, // resave: false,
// saveUninitialized: false, // saveUninitialized: false,
// secret: 'uwotm8', // secret: 'uwotm8',
// store: new RedisStore({ // store: new RedisStore({
// client: clientRedis, // client: clientRedis,
// }), // }),
// })); // }));
// } // }
// development only // development only
if ('development' == app.get('env')) { if ('development' == app.get('env')) {
app.use(errorHandler()); app.use(errorHandler());
} else { } else {
app.use(function (err, req, res) { app.use(function (err, req, res) {
console.log("prod error handler..........................................."); console.log("prod error handler...........................................");
console.log(err); console.log(err);
logCtl.error({ logCtl.error({
optitle: "environment 调用异常error:", optitle: "environment 调用异常error:",
op: req.url, op: req.url,
content: e.toString(), content: e.toString(),
clientIp: system.get_client_ip(req), clientIp: system.get_client_ip(req),
agent: req.headers["user-agent"], agent: req.headers["user-agent"],
}); });
//logerApp.error("prod error handler",err); //logerApp.error("prod error handler",err);
res.send("link index"); res.send("link index");
}); });
} }
}; };
var settings = { var settings = {
redis: { redis: {
// host: "121.36.3.35", // host: "121.36.3.35",
// port: 6379, // port: 6379,
host: "43.247.184.32", host: "43.247.184.32",
port: 8967, port: 8967,
password: "Gongsibao2018", password: "Gongsibao2018",
db: 2, db: 1,
}, },
database: { database: {
dbname: "tx-queue-log", dbname: "tx-queue-log",
user: "write", user: "write",
password: "write", password: "write",
config: { config: {
host: '43.247.184.35', host: '43.247.184.35',
port: 8899, port: 8899,
dialect: 'mysql', dialect: 'mysql',
operatorsAliases: false, operatorsAliases: false,
pool: { pool: {
max: 5, max: 5,
min: 0, min: 0,
acquire: 90000000, acquire: 90000000,
idle: 1000000 idle: 1000000
}, },
debug: false, debug: false,
dialectOptions: { dialectOptions: {
requestTimeout: 999999, requestTimeout: 999999,
// timezone: '+8:00' // timezone: '+8:00'
// instanceName:'DEV' // instanceName:'DEV'
} //设置MSSQL超时时间 } //设置MSSQL超时时间
} }
}, },
reqEsDevUrl: "http://192.168.4.249:9200/", reqEsDevUrl: "http://192.168.4.249:9200/",
reqHomePageDevUrl: "http://zcchannel.apps.com:4003/", reqHomePageDevUrl: "http://zcchannel.apps.com:4003/",
reqAuthUrl: "http://sj.app.com:4002/auth" reqAuthUrl: "http://sj.app.com:4002/auth"
}; };
module.exports = settings; module.exports = settings;
var path= require('path'); var path= require('path');
var basepath=path.normalize(path.join(__dirname, '../..')); var basepath=path.normalize(path.join(__dirname, '../..'));
var settings = { var settings = {
api:path.join(basepath,"app/base/api/impl"), api:path.join(basepath,"app/base/api/impl"),
util:path.join(basepath,"app/base/utils"), util:path.join(basepath,"app/base/utils"),
service:path.join(basepath,"app/base/service/impl"), service:path.join(basepath,"app/base/service/impl"),
db:path.join(basepath,"app/base/db/impl"), db:path.join(basepath,"app/base/db/impl"),
service2:path.join(basepath,"app/base/service"), service2:path.join(basepath,"app/base/service"),
consumer:path.join(basepath,"app/base/db/consumer"), consumer:path.join(basepath,"app/base/db/consumer"),
} }
module.exports = settings; module.exports = settings;
File mode changed from 100644 to 100755
var fs=require("fs"); var fs=require("fs");
var path=require("path"); var path=require("path");
var system = require('../base/system'); var system = require('../base/system');
module.exports = function (app) { module.exports = function (app) {
var routePath=__dirname+"/routes"; var routePath=__dirname+"/routes";
fs.readdir(routePath,function(err,rs){ fs.readdir(routePath,function(err,rs){
if(rs){ if(rs){
rs.forEach(function(r){ rs.forEach(function(r){
var func=require(routePath+"/"+r); var func=require(routePath+"/"+r);
func.call(null,app); func.call(null,app);
}); });
} }
}); });
}; };
var path = require('path'); var path = require('path');
var ENVINPUT = { var ENVINPUT = {
DB_HOST: process.env.DB_HOST, DB_HOST: process.env.DB_HOST,
DB_PORT: process.env.DB_PORT, DB_PORT: process.env.DB_PORT,
DB_USER: process.env.DB_USER, DB_USER: process.env.DB_USER,
DB_PWD: process.env.DB_PWD, DB_PWD: process.env.DB_PWD,
REDIS_HOST: process.env.REDIS_HOST, REDIS_HOST: process.env.REDIS_HOST,
REDIS_PORT: process.env.REDIS_PORT, REDIS_PORT: process.env.REDIS_PORT,
REDIS_PWD: process.env.REDIS_PWD, REDIS_PWD: process.env.REDIS_PWD,
REDIS_DB: process.env.QUEUE_REDIS_DB, REDIS_DB: process.env.QUEUE_REDIS_DB,
DB_NAME: process.env.QUEUE_DB_NAME, DB_NAME: process.env.QUEUE_DB_NAME,
APP_ENV: process.env.APP_ENV ? process.env.APP_ENV : "test",//运行环境 APP_ENV: process.env.APP_ENV ? process.env.APP_ENV : "dev",//运行环境
CONSUMER_NAME: process.env.CONSUMER_NAME || "publicServiceAllocation.publicConsumer",//消费者名称 CONSUMER_NAME: process.env.CONSUMER_NAME || "publicServiceAllocation.publicConsumer",//消费者名称
QUEUED_NAME: process.env.QUEUED_NAME || "SYTXPUBLIC-MSGQ",//队列名称,FAIL-失败队列(队列和失败队列一对存在进行部署) QUEUED_NAME: process.env.QUEUED_NAME || "SYTXPUBLIC-MSGQ",//队列名称,FAIL-失败队列(队列和失败队列一对存在进行部署)
}; };
var settings = { var settings = {
env: ENVINPUT.APP_ENV, env: ENVINPUT.APP_ENV,
consumerName: ENVINPUT.CONSUMER_NAME, consumerName: ENVINPUT.CONSUMER_NAME,
queuedName: ENVINPUT.QUEUED_NAME, queuedName: ENVINPUT.QUEUED_NAME,
basepath: path.normalize(path.join(__dirname, '../..')), basepath: path.normalize(path.join(__dirname, '../..')),
port: process.env.NODE_PORT || 4018, port: process.env.NODE_PORT || 4018,
redis: function () { redis: function () {
if (this.env == "dev" || this.env == "test") { if (this.env == "dev" || this.env == "test") {
var localsettings = require("./localsettings"); var localsettings = require("./localsettings");
return localsettings.redis; return localsettings.redis;
} else { } else {
return { return {
host: ENVINPUT.REDIS_HOST, host: ENVINPUT.REDIS_HOST,
port: ENVINPUT.REDIS_PORT, port: ENVINPUT.REDIS_PORT,
password: ENVINPUT.REDIS_PWD, password: ENVINPUT.REDIS_PWD,
db: ENVINPUT.REDIS_DB, db: ENVINPUT.REDIS_DB,
}; };
} }
}, },
database: function () { database: function () {
if (this.env == "dev" || this.env == "test") { if (this.env == "dev" || this.env == "test") {
var localsettings = require("./localsettings"); var localsettings = require("./localsettings");
return localsettings.database; return localsettings.database;
} else { } else {
return { return {
dbname: ENVINPUT.DB_NAME, dbname: ENVINPUT.DB_NAME,
user: ENVINPUT.DB_USER, user: ENVINPUT.DB_USER,
password: ENVINPUT.DB_PWD, password: ENVINPUT.DB_PWD,
config: { config: {
host: ENVINPUT.DB_HOST, host: ENVINPUT.DB_HOST,
dialect: 'mysql', dialect: 'mysql',
operatorsAliases: false, operatorsAliases: false,
pool: { pool: {
max: 5, max: 5,
min: 0, min: 0,
acquire: 90000000, acquire: 90000000,
idle: 1000000 idle: 1000000
}, },
debug: false, debug: false,
dialectOptions: { dialectOptions: {
requestTimeout: 999999, requestTimeout: 999999,
// instanceName:'DEV' // instanceName:'DEV'
} //设置MSSQL超时时间 } //设置MSSQL超时时间
}, },
}; };
} }
} }
}; };
settings.ENVINPUT = ENVINPUT; settings.ENVINPUT = ENVINPUT;
module.exports = settings; module.exports = settings;
const system = require("./app/base/system"); const system = require("./app/base/system");
var settings = require("./app/config/settings"); var settings = require("./app/config/settings");
var http = require('http'); var http = require('http');
var express = require('express'); var express = require('express');
var environment = require('./app/config/environment'); var environment = require('./app/config/environment');
const app = express(); const app = express();
// //数据库支持暂缓支持 // //数据库支持暂缓支持
// var dbf = system.getObject("db.common.connection"); // var dbf = system.getObject("db.common.connection");
// con = dbf.getCon(); // con = dbf.getCon();
console.log(settings.consumerName, "--consumerName-----start-----"); console.log(settings.consumerName, "--consumerName-----start-----");
if (settings.consumerName) { if (settings.consumerName) {
var consumer = system.getObject("consumer." + settings.consumerName); var consumer = system.getObject("consumer." + settings.consumerName);
(async () => { (async () => {
await consumer.doConsumer(settings.queuedName); await consumer.doConsumer(settings.queuedName);
})(); })();
} else { } else {
console.log("not find consumer,please check ............................"); console.log("not find consumer,please check ............................");
} }
environment(app);//初始化环境 environment(app);//初始化环境
var server = http.createServer(app); var server = http.createServer(app);
server.listen(settings.port, function () { server.listen(settings.port, function () {
console.log('Express server listening on port ' + settings.port); console.log('Express server listening on port ' + settings.port);
}); });
This source diff could not be displayed because it is too large. You can view the blob instead.
{ {
"name": "bigdata", "name": "bigdata",
"version": "1.0.0", "version": "1.0.0",
"description": "h5framework", "description": "h5framework",
"main": "main.js", "main": "main.js",
"scripts": { "scripts": {
"dev": "nodemon main.js", "dev": "nodemon main.js",
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@alicloud/pop-core": "^1.7.7", "@alicloud/pop-core": "^1.7.7",
"MD5": "^1.3.0", "MD5": "^1.3.0",
"after": "^0.8.2", "after": "^0.8.2",
"ali-oss": "^4.12.2", "ali-oss": "^4.12.2",
"aliyun-api-gateway": "^1.1.6", "aliyun-api-gateway": "^1.1.6",
"axios": "^0.19.2", "axios": "^0.19.2",
"babel-polyfill": "^6.26.0", "babel-polyfill": "^6.26.0",
"base64id": "^1.0.0", "base64id": "^1.0.0",
"bluebird": "^3.5.1", "bluebird": "^3.5.1",
"body-parser": "^1.18.2", "body-parser": "^1.18.2",
"co": "^4.6.0", "co": "^4.6.0",
"connect-redis": "^3.3.3", "connect-redis": "^3.3.3",
"continuation-local-storage": "^3.2.1", "continuation-local-storage": "^3.2.1",
"cookie-parser": "^1.4.3", "cookie-parser": "^1.4.3",
"crypto": "^1.0.1", "crypto": "^1.0.1",
"crypto-js": "^3.1.9-1", "crypto-js": "^3.1.9-1",
"ejs": "^2.5.8", "ejs": "^2.5.8",
"element-ui": "^2.4.0", "element-ui": "^2.4.0",
"engine.io-parser": "^2.1.2", "engine.io-parser": "^2.1.2",
"errorhandler": "^1.5.0", "errorhandler": "^1.5.0",
"exif-js": "^2.3.0", "exif-js": "^2.3.0",
"express": "^4.16.2", "express": "^4.16.2",
"express-session": "^1.15.6", "express-session": "^1.15.6",
"gm": "^1.23.1", "gm": "^1.23.1",
"marked": "^0.7.0", "marked": "^0.7.0",
"method-override": "^2.3.10", "method-override": "^2.3.10",
"morgan": "^1.9.0", "morgan": "^1.9.0",
"multer": "^1.3.0", "multer": "^1.3.0",
"mysql2": "^1.5.3", "mysql2": "^1.5.3",
"node-cron": "^2.0.1", "node-cron": "^2.0.1",
"node-uuid": "^1.4.8", "node-uuid": "^1.4.8",
"node-xlsx": "^0.15.0", "node-xlsx": "^0.15.0",
"nodemailer": "^6.3.0", "nodemailer": "^6.3.0",
"pinyin": "^2.9.0", "pinyin": "^2.9.0",
"puppeteer": "^1.20.0", "puppeteer": "^1.20.0",
"qcloud-cos-sts": "^3.0.2", "qcloud-cos-sts": "^3.0.2",
"qr-image": "^3.2.0", "qr-image": "^3.2.0",
"sequelize": "^4.37.8", "sequelize": "^4.37.8",
"sequelize-cli": "^4.1.1", "sequelize-cli": "^4.1.1",
"serve-favicon": "^2.4.5", "serve-favicon": "^2.4.5",
"sha1": "^1.1.1", "sha1": "^1.1.1",
"socket.io": "^2.1.1", "socket.io": "^2.1.1",
"uuid": "^3.2.1" "uuid": "^3.2.1"
}, },
"devDependencies": { "devDependencies": {
"element-theme": "^2.0.1", "element-theme": "^2.0.1",
"element-theme-chalk": "^2.4.0" "element-theme-chalk": "^2.4.0"
} }
} }
大家关注:推送时间:0,2,4,6,8 大家关注:推送时间:0,2,4,6,8
一.公共队列配置 一.公共队列配置
公共业务配置: 公共业务配置:
消费者名称(CONSUMER_NAME):publicServiceAllocation.publicConsumer 消费者名称(CONSUMER_NAME):publicServiceAllocation.publicConsumer
队列名称 (QUEUED_NAME):SYTXPUBLIC-MSGQ 队列名称 (QUEUED_NAME):SYTXPUBLIC-MSGQ
公共业务失败配置: 公共业务失败配置:
消费者名称(CONSUMER_NAME):publicFail.publicFailConsumer 消费者名称(CONSUMER_NAME):publicFail.publicFailConsumer
队列名称 (QUEUED_NAME):SYTXFAIL-SYTXPUBLIC-MSGQ 队列名称 (QUEUED_NAME):SYTXFAIL-SYTXPUBLIC-MSGQ
公共日志配置: 公共日志配置:
消费者名称(CONSUMER_NAME):publicLogs.publicLogsConsumer 消费者名称(CONSUMER_NAME):publicLogs.publicLogsConsumer
队列名称 (QUEUED_NAME):LOGS-SYTXPUBLIC-MSGQ 队列名称 (QUEUED_NAME):LOGS-SYTXPUBLIC-MSGQ
公共通知配置: 公共通知配置:
通知者名称(CONSUMER_NAME):publicNotify.publicNotifyConsumer 通知者名称(CONSUMER_NAME):publicNotify.publicNotifyConsumer
队列名称 (QUEUED_NAME):NOTIFY-SYTXPUBLIC-MSGQ 队列名称 (QUEUED_NAME):NOTIFY-SYTXPUBLIC-MSGQ
二.公共队列接口 二.公共队列接口
1.生产业务数据供消费者消费 1.生产业务数据供消费者消费
地址:http://192.168.1.128:4018/api/queueAction/producer/springBoard 地址:http://192.168.1.128:4018/api/queueAction/producer/springBoard
请求方式:post 请求方式:post
参数: 参数:
{ {
"actionType": "produceData",// Y 功能名称 "actionType": "produceData",// Y 功能名称
"actionBody": { "actionBody": {
"pushUrl": "http://60.205.209.94:4012/web/auth/channelAccessAuth/springBoard",// Y 推送地址 "pushUrl": "http://60.205.209.94:4012/web/auth/channelAccessAuth/springBoard",// Y 推送地址
"actionType": "test",// Y 推送地址接收时的功能名称 "actionType": "test",// Y 推送地址接收时的功能名称
"notifyUrl": "http://60.205.209.94:4012/web/auth/channelAccessAuth/springBoard",// N 推送成功后通知的Url "notifyUrl": "http://60.205.209.94:4012/web/auth/channelAccessAuth/springBoard",// N 推送成功后通知的Url
"identifyCode": "tx-test01",// Y 操作的业务标识 "identifyCode": "tx-test01",// Y 操作的业务标识
"messageBody": { // Y 推送的业务消息,必须有一项对象属性值 "messageBody": { // Y 推送的业务消息,必须有一项对象属性值
"name":"张三", "name":"张三",
"age":21 "age":21
} }
} }
} }
1.(1) 推送地址:http://60.205.209.94:4012/web/auth/channelAccessAuth/springBoard 1.(1) 推送地址:http://60.205.209.94:4012/web/auth/channelAccessAuth/springBoard
参数: 参数:
{ {
"actionType": "test",// Y 功能名称 "actionType": "test",// Y 功能名称
"identifyCode": "tx-test01",// Y 操作的业务标识 "identifyCode": "tx-test01",// Y 操作的业务标识
"actionBody": { "actionBody": {
"name":"张三", "name":"张三",
"age":21 "age":21
}, },
"requestId":"PUB-202006111530vbot" "requestId":"PUB-202006111530vbot"
} }
返回参数: 返回参数:
{ {
status: 1, //1为成功,否则为失败 status: 1, //1为成功,否则为失败
msg: "测试成功", msg: "测试成功",
data: null//业务处理返回 data: null//业务处理返回
} }
1.(2) 有推送成功后通知的Url地址:http://60.205.209.94:4012/web/auth/channelAccessAuth/springBoard (举例) 1.(2) 有推送成功后通知的Url地址:http://60.205.209.94:4012/web/auth/channelAccessAuth/springBoard (举例)
参数: 参数:
{ {
"actionType": "test",// Y 功能名称 "actionType": "test",// Y 功能名称
"identifyCode": "tx-test01",// Y 操作的业务标识 "identifyCode": "tx-test01",// Y 操作的业务标识
"actionBody": { "actionBody": {
"messageBody": { // Y 推送的业务消息,必须有一项对象属性值 "messageBody": { // Y 推送的业务消息,必须有一项对象属性值
"name":"张三", "name":"张三",
"age":21 "age":21
}, },
"resultInfo":{ "resultInfo":{
status: 1, //1为成功,否则为失败 status: 1, //1为成功,否则为失败
msg: "测试成功", msg: "测试成功",
data: null//业务处理返回 data: null//业务处理返回
} }
}, },
"requestId":"PUB-202006111530vbot" "requestId":"PUB-202006111530vbot"
} }
返回参数: 返回参数:
{ {
status: 1, //1为成功,否则为失败 status: 1, //1为成功,否则为失败
msg: "测试成功", msg: "测试成功",
data: null data: null
} }
2.生产日志数据供消费者消费 2.生产日志数据供消费者消费
地址:http://192.168.1.128:4019/api/queueAction/producer/springBoard 地址:http://192.168.1.128:4019/api/queueAction/producer/springBoard
请求方式:post 请求方式:post
参数: 参数:
{ {
"actionType": "produceLogsData",// Y 功能名称 "actionType": "produceLogsData",// Y 功能名称
"actionBody": { "actionBody": {
"opTitle": "",// N 操作的业务标题 "opTitle": "",// N 操作的业务标题
"identifyCode": "logs001",// Y 操作的业务标识 "identifyCode": "logs001",// Y 操作的业务标识
"messageBody": {//日志的描述信息 "messageBody": {//日志的描述信息
"opUrl": "http://192.168.1.189:4012/api/test/testApi/springBoard",// N 操作的业务Url "opUrl": "http://192.168.1.189:4012/api/test/testApi/springBoard",// N 操作的业务Url
"message": ""// Y 日志消息描述 "message": ""// Y 日志消息描述
}, },
"resultInfo":"",//返回信息 "resultInfo":"",//返回信息
"errorInfo": ""//错误信息 "errorInfo": ""//错误信息
} }
} }
返回参数: 返回参数:
{ {
status: 1, //1为成功,否则为失败 status: 1, //1为成功,否则为失败
msg: "测试成功", msg: "测试成功",
data: null data: null
} }
三.业务查询接口 三.业务查询接口
1.tx cos 信息获取 1.tx cos 信息获取
地址:http://192.168.1.128:4018/api/uploadAction/txCos/getCosInfo 地址:http://192.168.1.128:4018/api/uploadAction/txCos/getCosInfo
请求方式:get 请求方式:get
参数:无 参数:无
返回参数: 返回参数:
{ {
"status": 1,//1成功,否则失败 "status": 1,//1成功,否则失败
"message": "success", "message": "success",
"data": { "data": {
"expiredTime": 1592400959, "expiredTime": 1592400959,
"expiration": "2020-06-17T13:35:59Z", "expiration": "2020-06-17T13:35:59Z",
"credentials": { "credentials": {
"sessionToken": "PoKzACX299C52uF2ZEm9DvHR5KKRIH2i6702448bfee8f3dacbb2be6d3cfd6904MsCx-g2RTRyhKe7FxRhpfffuUqHPV8paOomljLr5zKBMH8EYunXiAaOghJTuZCzZwYGrJqZ8lmJFg3HBnTvRHSh3WImZ5D8Itylq9JQM7C5Ia2rxw9r3gkPLWrxWeUvovAwXqOCpzXl8eZEsdtPJJUb086uyKnjKwQ6rV61Tu7wl1MKUne4TDl1QJrL-uiB7otDZze4SYY6pZWkJByjCyKaLE6K-Xtky01pS8vAxR9vbKjyVan6fM_us8eoEjp_lrPeiCXOBBbo26FmSFvBoPMDBFYLv_0I4A0g4t0B0mrzHE8AtCu8tXt3sQ-iw7kgfCQ2XfZonNsqO8g-KXrEGEKpZDqDGSvIHYvHPboHp2ZfcKohi12vLcQ0e5zmysqCmq-NViRXLoZRcIP_Nx2orQkDHV2UZtEDRbPdCe1fakqtbIOMSoDh8z3308pf-hl-rr1w_5JNrn_aO-ieNMNYSGO7U3R51whungjZCvJkXIVtE6kbd224l4GHq-Ozcgw2V", "sessionToken": "PoKzACX299C52uF2ZEm9DvHR5KKRIH2i6702448bfee8f3dacbb2be6d3cfd6904MsCx-g2RTRyhKe7FxRhpfffuUqHPV8paOomljLr5zKBMH8EYunXiAaOghJTuZCzZwYGrJqZ8lmJFg3HBnTvRHSh3WImZ5D8Itylq9JQM7C5Ia2rxw9r3gkPLWrxWeUvovAwXqOCpzXl8eZEsdtPJJUb086uyKnjKwQ6rV61Tu7wl1MKUne4TDl1QJrL-uiB7otDZze4SYY6pZWkJByjCyKaLE6K-Xtky01pS8vAxR9vbKjyVan6fM_us8eoEjp_lrPeiCXOBBbo26FmSFvBoPMDBFYLv_0I4A0g4t0B0mrzHE8AtCu8tXt3sQ-iw7kgfCQ2XfZonNsqO8g-KXrEGEKpZDqDGSvIHYvHPboHp2ZfcKohi12vLcQ0e5zmysqCmq-NViRXLoZRcIP_Nx2orQkDHV2UZtEDRbPdCe1fakqtbIOMSoDh8z3308pf-hl-rr1w_5JNrn_aO-ieNMNYSGO7U3R51whungjZCvJkXIVtE6kbd224l4GHq-Ozcgw2V",
"tmpSecretId": "AKIDEnTeKjjfFtycc7cxYUEJcNIA4PsrAe270UcAoEq2qDd3j2g6RnUVh7rciY4mSR_M", "tmpSecretId": "AKIDEnTeKjjfFtycc7cxYUEJcNIA4PsrAe270UcAoEq2qDd3j2g6RnUVh7rciY4mSR_M",
"tmpSecretKey": "Z7qbmpzQRvIxv0bmIji3eH7HrGgONDe+USpqy/zuGUs=", "tmpSecretKey": "Z7qbmpzQRvIxv0bmIji3eH7HrGgONDe+USpqy/zuGUs=",
"tmpBucket": "test-1258715722", "tmpBucket": "test-1258715722",
"tmpRegion": "ap-beijing" "tmpRegion": "ap-beijing"
}, },
"requestId": "0e672c45-dc70-437d-93f5-cf2091487d38", "requestId": "0e672c45-dc70-437d-93f5-cf2091487d38",
"startTime": 1592399159 "startTime": 1592399159
}, },
"requestId": "SCZ202006172105Wz6yF" "requestId": "SCZ202006172105Wz6yF"
} }
2.企业模糊查询信息 2.企业模糊查询信息
地址:http://192.168.1.128:4018/api/icAction/icQuery/springBoard 地址:http://192.168.1.128:4018/api/icAction/icQuery/springBoard
请求方式:get 请求方式:get
参数: 参数:
{ {
"actionType":"getListByLikeCompanyName", "actionType":"getListByLikeCompanyName",
"actionBody":{ "actionBody":{
"companyName":"玉实业有限公司" "companyName":"玉实业有限公司"
} }
} }
返回参数: 返回参数:
{ {
"status": 1, "status": 1,
"message": "success", "message": "success",
"data": { "data": {
"totalCount": 3, "totalCount": 3,
"pageSize": 15, "pageSize": 15,
"currentPage": 0, "currentPage": 0,
"list": [ "list": [
{ {
"companyName": "上海汉玉实业有限公司" "companyName": "上海汉玉实业有限公司"
}, },
{ {
"companyName": "广州贤玉实业有限公司" "companyName": "广州贤玉实业有限公司"
}, },
{ {
"companyName": "上海琦玉实业有限公司" "companyName": "上海琦玉实业有限公司"
} }
] ]
}, },
"requestId": "SCZ2020061816078D804" "requestId": "SCZ2020061816078D804"
} }
参数说明: 参数说明:
"companyName": "上海汉玉实业有限公司",//公司名称 "companyName": "上海汉玉实业有限公司",//公司名称
3.企业精确查询信息 3.企业精确查询信息
地址:http://192.168.1.128:4018/api/icAction/icQuery/springBoard 地址:http://192.168.1.128:4018/api/icAction/icQuery/springBoard
请求方式:get 请求方式:get
参数: 参数:
{ {
"actionType":"getItemByCompanyName", "actionType":"getItemByCompanyName",
"actionBody":{ "actionBody":{
"companyName":"上海汉玉实业有限公司" "companyName":"上海汉玉实业有限公司"
} }
} }
返回参数: 返回参数:
{ {
"status": 1, "status": 1,
"message": "success", "message": "success",
"data": { "data": {
"companyName": "上海汉玉实业有限公司", "companyName": "上海汉玉实业有限公司",
"companyOrgType": "有限责任公司", "companyOrgType": "有限责任公司",
"creditCode": "", "creditCode": "",
"legalPerson": "曹雪静", "legalPerson": "曹雪静",
"fromTime": "2008-03-20", "fromTime": "2008-03-20",
"toTime": "2018-03-19", "toTime": "2018-03-19",
"estiblishTime": "2008-03-20", "estiblishTime": "2008-03-20",
"regStatus": "注销", "regStatus": "注销",
"regNumber": "310228001075786", "regNumber": "310228001075786",
"orgNumber": " ", "orgNumber": " ",
"regLocation": "上海市金山区卫昌路229号2幢220室", "regLocation": "上海市金山区卫昌路229号2幢220室",
"regCapital": "3.000", "regCapital": "3.000",
"businessScope": "化妆品,日用百货,服装鞋帽,健身器材销售,投资咨询、商务咨询(除经纪)(涉及行政许可的凭许可证经营)。", "businessScope": "化妆品,日用百货,服装鞋帽,健身器材销售,投资咨询、商务咨询(除经纪)(涉及行政许可的凭许可证经营)。",
"regInstitute": "金山区市场监管局", "regInstitute": "金山区市场监管局",
"companyProvince": "上海", "companyProvince": "上海",
"companyCity": "金山区", "companyCity": "金山区",
"companyCate1": "批发和零售业", "companyCate1": "批发和零售业",
"companyCate2": "批发业", "companyCate2": "批发业",
"companyCate3": "纺织、服装及家庭用品批发" "companyCate3": "纺织、服装及家庭用品批发"
}, },
"requestId": "SCZ202006181604MJBns" "requestId": "SCZ202006181604MJBns"
} }
参数说明: 参数说明:
"companyName": "上海汉玉实业有限公司",//公司名称 "companyName": "上海汉玉实业有限公司",//公司名称
"companyOrgType": "有限责任公司",//公司类型 "companyOrgType": "有限责任公司",//公司类型
"creditCode": "",//统一社会信用代码 "creditCode": "",//统一社会信用代码
"legalPerson": "曹雪静",//法人姓名 "legalPerson": "曹雪静",//法人姓名
"fromTime": "2008-03-20",//营业期限开始日期 "fromTime": "2008-03-20",//营业期限开始日期
"toTime": "2018-03-19",//营业期限结束日期 "toTime": "2018-03-19",//营业期限结束日期
"estiblishTime": "2008-03-20",//成立时间 "estiblishTime": "2008-03-20",//成立时间
"regStatus": "注销",//公司状态 "regStatus": "注销",//公司状态
"regNumber": "310228001075786",//注册号 "regNumber": "310228001075786",//注册号
"orgNumber": " ",//组织机构代码 "orgNumber": " ",//组织机构代码
"regLocation": "上海市金山区卫昌路229号2幢220室",//公司地址 "regLocation": "上海市金山区卫昌路229号2幢220室",//公司地址
"regCapital": "3.000",//注册资本 "regCapital": "3.000",//注册资本
"businessScope": "化妆品,日用百货,服装鞋帽,健身器材销售,投资咨询、商务咨询(除经纪)(涉及行政许可的凭许可证经营)。",//公司经营范围 "businessScope": "化妆品,日用百货,服装鞋帽,健身器材销售,投资咨询、商务咨询(除经纪)(涉及行政许可的凭许可证经营)。",//公司经营范围
"regInstitute": "金山区市场监管局",//登记机关 "regInstitute": "金山区市场监管局",//登记机关
"companyProvince": "上海",//公司省份 "companyProvince": "上海",//公司省份
"companyCity": "金山区",//公司二级市 "companyCity": "金山区",//公司二级市
"companyCate1": "批发和零售业",//行业分类一级分类 "companyCate1": "批发和零售业",//行业分类一级分类
"companyCate2": "批发业",//行业分类二级分类 "companyCate2": "批发业",//行业分类二级分类
"companyCate3": "纺织、服装及家庭用品批发"//行业分类三级分类 "companyCate3": "纺织、服装及家庭用品批发"//行业分类三级分类
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment