Commit 133705b4 by linboxuan

Merge branch 'center-channel' of http://gitlab.gongsibao.com/jiangyong/zhichan into center-channel

parents 07965134 ae75d03e
......@@ -34,7 +34,7 @@ class APIBase {
return JSON.parse(cacheRes);
}
var result = await this[methodname](pobj, query, req);
if (!result.requestId) {
if (result && !result.requestId) {
result.requestId = pobj.RequestId ? pobj.RequestId : pobj.requestId || req.requestId;
}
this.logCtl.createDb({
......
......@@ -6,6 +6,7 @@ class RegAPI extends APIBase {
constructor() {
super();
this.regCenterOrderSve = system.getObject("service.common.regCenterOrderSve");
this.utilsPushSve = system.getObject("service.utilsSve.utilsPushSve");
}
/**
* 接口跳转-POST请求
......@@ -76,6 +77,9 @@ class RegAPI extends APIBase {
// opResult = await this.regCenterOrderSve.closeOrderDelivery(pobj);
// break;
case "againPushYf"://单独重新推送数据到云服
opResult = await this.utilsPushSve.business2Channel(pobj, pobj.opType);
break;
//-----------接入百度reg------end----------------------------
default:
opResult = system.getResult(null, "action_type参数错误");
......
......@@ -27,7 +27,7 @@ class AccessAuthAPI extends APIBase {
var rtn = await this.gatewaypushlogSve.taskAliIcapi();
return rtn;
}
async taskAgainFqPushInfo(pobj, qobj, req) {//再次推送蜂擎业务数据
async taskAgainFqPushInfo(pobj, qobj, req) {//再次推送渠道业务数据
var rtn = await this.utilsPushSve.business2Channel(pobj, pobj.opType);
this.pushlogSve.delDbPushfaillogById(Number(pobj.id || 0));
return rtn;
......@@ -71,7 +71,7 @@ class AccessAuthAPI extends APIBase {
self.taskAgainPushOneNewBusInfo(contentData);
} else if (element.failType == 4) {
self.taskAgainFqPushInfo(contentData);
}//FQ
}//推送渠道(如:FQ)
}
}
return system.getResultSuccess();
......
......@@ -109,7 +109,8 @@ var regCfg = {
'COLLECTING': 'COLLECTING',//材料收集环节
'AUDITING': 'AUDITING',//工商审核环节
'ENGRAVING': 'ENGRAVING',//刻章环节
'SUCCESS': 'SUCCESS' //已完成
'SUCCESS': 'SUCCESS', //已完成
'ACTIVE': 'ACTIVE' //服务中
},
//交付状态
deliverStatus:{
......@@ -117,7 +118,8 @@ var regCfg = {
'COLLECTING': '材料收集环节',//
'AUDITING': '工商审核环节',//
'ENGRAVING': '刻章环节',//
'SUCCESS': '已完成' //
'SUCCESS': '已完成', //
'ACTIVE': '服务中' //
},
//返回结果配置
getUUID() {
......
......@@ -102,6 +102,9 @@ class ProductAPI extends WEBBase {
case "receiveAliTmOrder"://接收阿里商标订单
opResult = await this.utilsOrderSve.receiveAliTmOrder(pobj, pobj.actionBody);
break;
case "receiveFqbossTmOrder"://接收阿里商标订单
opResult = await this.utilsOrderSve.receiveFqbossTmOrder(pobj, pobj.actionBody);
break;
case "receiveAliTmStatus"://接收阿里商标状态
opResult = await this.utilsOrderSve.receiveAliTmStatus(pobj, pobj.actionBody);
break;
......
var APIBase = require("../../api.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
class PushAliInfo extends APIBase {
constructor() {
super();
this.utilsPushSve = system.getObject("service.utilsSve.utilsPushSve");
}
/**
* 推送阿里商标跟进信息
* action_process 执行的流程
* action_type 执行的类型
* action_body 执行的参数
*/
async tmNote(pobj, qobj, req) {
var reqPushParams = {
reqbody: {
BizId: pobj.intentionBizId,
Note: pobj.note.replace(/<[^>]+>/g, "")
},
appInfo: {uapp_id: 18}
};
let result = await this.utilsPushSve.business2Channel(reqPushParams, "pushAliTmNote");
if (result && result.data) {
return result.data;
}
return result;
}
/**
* 推送阿里工商跟进信息
* action_process 执行的流程
* action_type 执行的类型
* action_body 执行的参数
*/
async icNote(pobj, qobj, req) {
var reqPushParams = {
reqbody: {
IntentionBizId: pobj.intentionBizId,
Type: 1,// 1需求,2订单
Note: pobj.note.replace(/<[^>]+>/g, "")
},
appInfo: {uapp_id: 18}
};
let result = await this.utilsPushSve.business2Channel(reqPushParams, "pushAliIcNote");
if (result && result.data) {
return result.data;
}
return result;
}
}
module.exports = PushAliInfo;
\ No newline at end of file
......@@ -13,7 +13,7 @@ class AppServiceBase {
this.execClient = system.getObject('util.execClient');
this.cacheManager = system.getObject("db.common.cacheManager");
this.pushlogSve = system.getObject("service.common.pushlogSve");
this.pushlogFailType = {OLDRPC: 1, NEWRPC: 2, FAILLOG: 3, FQ: 4};
this.pushlogFailType = {OLDRPC: 1, NEWRPC: 2, FAILLOG: 3, FQ: 4};//1老的rpc调用,2新的rpc调用-需配置,3错误日志,4推送峰擎,5直接调用-无需配置
this.logCtl = system.getObject("service.common.oplogSve");
}
......
......@@ -237,6 +237,12 @@ class NcService extends AppServiceBase {
var a = await this.baiduclient.baiduReqbyget({ path: "/api/bla/provider/requirement/update", reqbody: pushObj});
console.log('nc closeNeed+++',a)
}
if(result.data && result.data.uapp_id == 44){
pobj.appInfo.uapp_id = 44
if(pobj && pobj.actionBody && pobj.actionBody.note){
pobj.actionBody['description'] = pobj.actionBody.note
}
}
this.utilsPushSve.business2Channel(pobj, "pushCloseICPNeed");
}
return result;
......
......@@ -27,7 +27,7 @@ class PushlogService extends ServiceBase {
}
async createFailLogDb(qobj) {
try {
qobj.optitle = (new Date()).Format("yyyy-MM-dd hh:mm:ss") + ":" + qobj.optitle;
qobj.opTitle = (new Date()).Format("yyyy-MM-dd hh:mm:ss") + ":" + qobj.opTitle;
this.pushfaillogDao.create(qobj);
} catch (e) {
//日志记录
......
......@@ -240,6 +240,12 @@ class RtService extends AppServiceBase {
var a = await this.baiduclient.baiduReqbyget({ path: "/api/bla/provider/requirement/update", reqbody: pushObj});
console.log('rt closeNeed+++',a)
}
if(result.data && result.data.uapp_id == 44){
pobj.appInfo.uapp_id = 44
if(pobj && pobj.actionBody && pobj.actionBody.note){
pobj.actionBody['description'] = pobj.actionBody.note
}
}
this.utilsPushSve.business2Channel(pobj, "pushCloseICPNeed");
}
return result;
......
const AppServiceBase = require("../../app.base");
var settings = require("../../../../config/settings");
const system = require("../../../system");
class UtilsAliyunInfoService extends AppServiceBase {
constructor() {
super();
}
async sendAliyunInfoByNeedId(pobj) {
let verifyResult = await this.opAliyunRpcVerifyParam(pobj);
if (verifyResult.status != 0) {
return verifyResult;
}
let interface_params = verifyResult.data;
let params = {
action: interface_params.action,
reqbody: pobj.reqbody,
rpcParam: {}
}
if (interface_params.accessKeyId) {
params.rpcParam.accessKeyId = interface_params.accessKeyId;
}
if (interface_params.accessKeySecret) {
params.rpcParam.accessKeySecret = interface_params.accessKeySecret;
}
if (interface_params.endpoint) {
params.rpcParam.endpoint = interface_params.endpoint;
}
if (interface_params.apiVersion) {
params.rpcParam.apiVersion = interface_params.apiVersion;
}
let aliResult = await this.opAliyunRpcReq(pobj, params);
return await this.disposePushResult(pobj, aliResult, "ali->sendAliyunInfoByNeedId->aliResult", this.pushlogFailType.FQ);
}
}
module.exports = UtilsAliyunInfoService;
......@@ -1729,6 +1729,16 @@ class UtilsOrderService extends AppServiceBase {
* @param {*} actionBody
*/
async receiveAliTmOrder(pobj, actionBody) {
var res = await this.receiveFqbossTmOrder(pobj, actionBody);
return res;
}
/**
* 接收蜂擎boss商标订单
* @param {*} pobj
* @param {*} actionBody
*/
async receiveFqbossTmOrder(pobj, actionBody) {
if (!actionBody.channelItemCode) {
return system.getResult(null, "产品编码有误,100010");
}
......@@ -1743,12 +1753,58 @@ class UtilsOrderService extends AppServiceBase {
}
pobj.productInfo = productItemResult.data.data;
pobj.productInfo.price_item = pobj.productInfo.price_list[0];
pobj.actionType = "receiveAliTmOrder";
pobj.actionType = "receiveFqbossTmOrder";
var reqUrl = this.centerOrderUrl + "action/order/springBoard";
var result = await this.restPostUrl(pobj, reqUrl);
if(result && result.status==0){
if(pobj.appInfo && pobj.appInfo.uapp_id!=18 && !pobj.actionBody.serviceOrderNo){//京东云自助商标注册
await this.pushChannelOrder2fq(pobj);
}
}
return result;
}
async pushChannelOrder2fq(pobj) {
try {
var yfobj = {
actionBody: {
idempotentSource: pobj.productInfo.service_business_code || '' , //渠道来源 N
quantity:1,//数量 N
needId: pobj.actionBody.needNo || '',//需求id N
contactsName:pobj.actionBody.contactsName || '',//联系人名称 N
companyName:pobj.actionBody.applyName || '',//公司名称 N
scope:"商标自助订单进行备案,不用做任何处理",// N
orderNo: pobj.actionBody.channelOrderNo,
orderPrice: 300,//写死 自助300
phone: pobj.actionBody.contactsMobile,
appName:pobj.appInfo.app_name || '',
sku:'125855508212158464' //写死 自助一个
},
appInfo: pobj.appInfo
};
//yfPushRes.data.data
// {"contractNo":null,"orderNos":["20010618850"],"orderList":[{"operator_name":"系统用户","operatorName":"系统用户","operator":"124496450905186304","order_id":"20010618850","order_no":"20010618850","orderNo":"20010618850","message":"success","contractNo":null}]}
var yfPushRes = await this.utilsPushSve.business2Channel(yfobj, "pushOrderICPBusinessNew");
//日志记录
this.logCtl.info({
optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "企服通渠道订单推送至蜂擎:,method=pushChannelOrder2fq",
op: "service/impl/utilsSve/utilsOrderSve.js/pushChannelOrder2fq",
content: "参数:"+JSON.stringify(pobj)+";返回结果:"+JSON.stringify(yfPushRes),
clientIp: ""
});
} catch (e) {
//日志记录
this.logCtl.error({
optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "企服通渠道订单推送至蜂擎异常:,method=pushChannelOrder2fq",
op: "service/impl/utilsSve/utilsOrderSve.js/pushChannelOrder2fq---error",
content: "参数:"+JSON.stringify(pobj)+";异常信息:"+JSON.stringify(e.stack),
clientIp: ""
});
console.log("service/impl/utilsSve/utilsOrderSve.js/pushChannelOrder2fq推送异常",e.stack);
}
}
/**
* 接收阿里订单退款信息git
* @param {*} pobj
......
......@@ -14,7 +14,7 @@ class UtilsPushService extends AppServiceBase {
let productItemInterfaceResult = await this.restPostUrl(pobj, reqUrl);
pobj.interface_info = productItemInterfaceResult.data;
//日志记录
this.execClientNew.execLogs(`${pobj.opType}推送蜂擎获取的接口信息->business2Channel->app(getAppInterface)`, pobj, "center-channel-utilsPushSve-business2Channel", productItemInterfaceResult.data, null);
this.execClientNew.execLogs(`${opType}推送蜂擎获取的接口信息->business2Channel->app(getAppInterface)`, pobj, "center-channel-utilsPushSve-business2Channel", productItemInterfaceResult.data, null);
if (pobj.interface_info && pobj.interface_info.length > 0) {
let tmpResult = await this.pushBusInfo(pobj, opType, 1);
return system.getResultSuccess(tmpResult);
......@@ -73,11 +73,11 @@ class UtilsPushService extends AppServiceBase {
try {
if (interface_info.interface_type == "bd") {
if (!interface_info.method_name) {
return system.getResult(null, "产品接口参数信息有误,100350");
return system.getResult(null, "接口对应的method_name参数信息为空,100350");
}//操作的方法名称
var invokeObj = system.getObject(interface_info.interface_url);
if (!invokeObj[interface_info.method_name]) {
return system.getResult(null, "产品接口参数方法信息有误,100360");
return system.getResult(null, "接口对应的method_name参数方法信息有误,100360");
}
pobj.interface_params = interface_info.params;
var params = [pobj];
......
......@@ -18,7 +18,7 @@ module.exports = {
"rtSubmitMaterial", "rtNotification", "rtSubmitSolution", "rtCloseNeed", "rtClosePlan",
"getParamsFor360", "addOrderWeb", "getPayRecords", "getLoginInfo", "putUserMobileByVcode",
"putUserPwdByMobile", "icpNotifyNew", "getOrderStatisticsByUappId", "getOrderStatisticsByProduct", "getOrdersComparison", "getOrdersComparisonList",
"importOrders", "importNeeds", "receiveAliTmOrder", "receiveAliTmOrderRefund","receiveAliTmStatus",
"importOrders", "importNeeds", "receiveAliTmOrder","receiveFqbossTmOrder", "receiveAliTmOrderRefund","receiveAliTmStatus",
//百度工商注册
"regGetInfoByChannelNeedNo", "submitRegNeed", "regFeedbackSubmit", "regOrderStatus", "regOrderClose",
"getSolutionByChannelOrderNo", "regSubmitSolution", "regNeedClose",
......@@ -58,6 +58,10 @@ module.exports = {
"/api/tm/status/notify",
"/api/tm/tmcase/nbtzreceiveAssistTmData",
"/api/tm/tmcase/nbtzreceiveEditAssistTmData"
],
apiAliSendKeyPathList: [
"/api/opreceive/pushAliInfo/tmNote",
"/api/opreceive/pushAliInfo/icNote",
]
},
AREACOMM: {
......
......@@ -6,7 +6,7 @@ const utilsFeishuSve = system.getObject("service.utilsSve.utilsFeishuSve");
const signSve = system.getObject("service.common.signSve");
const xml2js = require('xml2js');
const jwt = require('jsonwebtoken');
const { PDICT } = require("../../config/businessConfig");
const {PDICT} = require("../../config/businessConfig");
const settings = require("../../config/settings");
module.exports = function (app) {
......@@ -175,7 +175,11 @@ module.exports = function (app) {
body += data;
});
req.on('end', async function () {
xml2js.parseString(body, { trim: true, explicitArray: false, explicitRoot: false }, async function (err, json) {
xml2js.parseString(body, {
trim: true,
explicitArray: false,
explicitRoot: false
}, async function (err, json) {
var client_ip = system.get_client_ip(req);
var result = await utilsOrderSve.wxPayNotify(json);
logCtl.info({
......@@ -338,7 +342,8 @@ module.exports = function (app) {
classPath = gname + "." + classPath;
var tClientIp = system.get_client_ip(req);
req.clientIp = tClientIp; req
req.clientIp = tClientIp;
req
req.uagent = req.headers["user-agent"];
req.classname = classPath;
......@@ -411,8 +416,27 @@ module.exports = function (app) {
res.end(JSON.stringify(result));
return;
}
console.log(req.originalUrl,"sy-------------------------------00001");
if (PDICT.apiAliSendKeyPathList.indexOf(req.originalUrl) >= 0) {
//验证数据key
var appkey = req.headers["appkey"] || "";
if (!appkey) {
result.msg = "req headers appkey can not be empty";
result.data = null;
res.end(JSON.stringify(result));
return;
}
if (appkey != "201912031344") {
result.msg = "req appkey verify error";
result.data = null;
res.end(JSON.stringify(result));
return;
}
next();
return;
}
if (PDICT.apiSecretPathList.indexOf(req.originalUrl) >= 0) {
//TODO:验证数据签名
//验证数据签名
var appkey = req.headers["appkey"] || "";
if (!appkey) {
result.msg = "req headers appkey can not be empty";
......@@ -551,7 +575,8 @@ module.exports = function (app) {
classPath = gname + "." + classPath;
var tClientIp = system.get_client_ip(req);
req.clientIp = tClientIp; req
req.clientIp = tClientIp;
req
req.uagent = req.headers["user-agent"];
req.classname = classPath;
......
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