Commit 47810bfa by 庄冰

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

parents 93848d85 494d6dea
......@@ -4,6 +4,7 @@ const uuidv4 = require('uuid/v4');
const md5 = require("MD5");
class WEBBase {
constructor() {
this.execClientNew = system.getObject("util.execClientNew");
this.restClient = system.getObject("util.restClient");
this.execClientNew = system.getObject("util.execClientNew");
this.cacheManager = system.getObject("db.common.cacheManager");
......@@ -21,20 +22,24 @@ class WEBBase {
async doexecMethod(gname, methodname, pobj, query, req) {
req.requestId = this.getUUID();
try {
var rtn = await this[methodname](pobj, query, req);
var result = await this[methodname](pobj, query, req);
if (!result.requestId) {
result.requestId = pobj.RequestId ? pobj.RequestId : pobj.requestId || req.requestId;
}
this.logCtl.createDb({
appid: req.app.id,
appkey: req.app.uappKey,
requestId: req.requestId,
op: req.classname + "/" + methodname,
content: JSON.stringify(pobj),
resultInfo: JSON.stringify(rtn),
resultInfo: JSON.stringify(result),
clientIp: req.clientIp,
agent: req.uagent,
opTitle: "api服务提供方appKey:" + settings.appKey,
});
rtn.requestId = req.requestId;
return rtn;
var tmpResult = pobj.actionType && pobj.actionType.indexOf("List") < 0 ? result : { status: result.status, message: result.message, requestId: result.requestId };
this.execClientNew.execLogs("reqPath:" + req.path, pobj, "center-channel-doexecMethod-web", tmpResult, null);
return result;
} catch (e) {
console.log(e.stack, "api调用出现异常,请联系管理员..........")
this.logCtl.createDb({
......
......@@ -13,63 +13,45 @@ class utils360Sve extends AppServiceBase {
}
//组合参数,由前端传到360
async getParamsFor360(pobj, actionBody) {
if (!actionBody.orderNo) {
return system.getResult(null, "actionBody.orderNo can not be empty,100110");
}
let seaUrl = this.centerOrderUrl + 'opaction/opPayOrder/getOrderListByOrderServiceNo';
let seaRet = await this.restPostUrl(pobj, seaUrl);
if (seaRet.status != 0) {
return system.getResultFail(-1, '获取订单信息失败')
}
let totalSum = 0;
let sku_id = '';
let amount = 0;
let consignee = "";
let mobile = "";
let email = "";
for (let i = 0; i < seaRet.data.length; i++) {
let item = seaRet.data[i];
if(!mobile){
pobj.actionType.orderNo = item.orderNo;
pobj.actionType = "getOrderDeliveryInfo";
let deliveryResult = await this.restPostUrl(pobj, orderUrl);
consignee = deliveryResult.data.orderContact.contactName;
mobile = deliveryResult.data.orderContact.mobile;
email = deliveryResult.data.orderContact.email
}
sku_id = item.itemCode;
totalSum += Number(item.totalSum);
amount += Number(item.payTotalSum);
}
// let sku_id = orderResult.data.orderProduct.itemCode;
// let price = Number(orderResult.data.orderProduct.price)*100;
let price = totalSum * 100;
// let quantity = seaRet.data.length;
// let amount = Number(orderResult.data.receiptVoucher.totalSum)*100;
amount = amount * 100;
let order_id = pobj.actionBody.orderNo;
// let consignee = deliveryResult.data.orderContact.contactName;
// let mobile = deliveryResult.data.orderContact.mobile;
// let email = deliveryResult.data.orderContact.email;
let singStr = sku_id + price + order_id + pobj.appInfo.uapp_secret;
let sign = md5(singStr).toUpperCase();
// 推送参数
let result = {
sku_id: sku_id,
price: price,
quantity: seaRet.data.length,
amount: amount,
order_id: order_id,
consignee: consignee,
mobile: mobile,
email: email,
sign: sign
}
return system.getResult(result);
//组合参数,由前端传到360
async getParamsFor360(pobj, actionBody) {
if (!actionBody.orderNo) {
return system.getResult(null, "actionBody.orderNo can not be empty,100110");
}
pobj.actionType = "getPayOrderInfo";
let orderUrl = settings.centerOrderUrl() + "action/order/springBoard";
let orderResult = await this.restPostUrl(pobj, orderUrl);
if (orderResult.status != 0) {
return orderResult;
}
pobj.actionType ="getOrderDeliveryInfo";
var deliveryResult = await this.restPostUrl(pobj,orderUrl);
if (deliveryResult.status != 0) {
return deliveryResult;
}
let sku_id = orderResult.data.orderProduct.itemCode;
let price = Number(orderResult.data.orderProduct.price)*100;
let quantity = orderResult.data.orderProduct.quantity;
let amount = Number(orderResult.data.receiptVoucher.totalSum)*100;
let order_id = orderResult.data.receiptVoucher.sourceOrderNo;
let consignee = deliveryResult.data.orderContact.contactName;
let mobile = deliveryResult.data.orderContact.mobile;
let email = deliveryResult.data.orderContact.email;
let singStr = sku_id + price + order_id + pobj.appInfo.uapp_secret;
let sign = md5(singStr).toUpperCase();
let result ={
sku_id,
price,
quantity,
amount,
order_id,
consignee,
mobile,
email,
sign
}
return system.getResult(result);
}
//更新订单状态到360
async pushOrderStatus(pobj) {
......@@ -93,7 +75,7 @@ class utils360Sve extends AppServiceBase {
order_id, status
}
let result = await this.restPostUrl(pushObj, url);
if(result.code ==200){
if (result.code == 200) {
this.pushlogSve.createDb({
op: "360-pushOrderStatus",
content: JSON.stringify(pushObj),//推送的参数信息
......@@ -102,7 +84,7 @@ class utils360Sve extends AppServiceBase {
logLevel: '1',
opTitle: "推送360信息返回成功"
});
}else{
} else {
this.logCtl.error({
appid: pobj.appInfo ? pobj.appInfo.uapp_id || "" : "",
appkey: pobj.appInfo ? pobj.appInfo.uapp_key || "" : "",
......@@ -113,7 +95,7 @@ class utils360Sve extends AppServiceBase {
optitle: pobj.opType + "推送操作异常status->pushOrderStatus",
});
}
console.log(result,'-------------push360-----------------')
console.log(result, '-------------push360-----------------')
return result;
} catch (e) {
this.logCtl.error({
......
......@@ -268,19 +268,19 @@ class UtilsAuthService extends AppServiceBase {
let result = await this.get360Token();
let token = result.access_token;
//360验证接口
// let subData = "pin=" + pin + "&token=" + token;
// let url = settings.requestUrl360() + 'api/v1/VerifyPin';
// let rtn = await this.restClient.execGet(subData,url);
// if (!rtn || !rtn.stdout) {
// return system.getResult(null, "restGet data is empty");
// }
// let checkRet = JSON.parse(rtn.stdout);
// if(checkRet.code != 200){
// return system.getResultFail(-1,checkRet.msg)
// }
let subData = "pin=" + pin + "&token=" + token;
let url = settings.requestUrl360() + 'api/v1/VerifyPin';
let rtn = await this.restClient.execGet(subData,url);
if (!rtn || !rtn.stdout) {
return system.getResult(null, "restGet data is empty");
}
let checkRet = JSON.parse(rtn.stdout);
if(checkRet.code != 200){
return system.getResultFail(-1,checkRet.msg)
}
//---渠道用户登录,有则返回userpin ,没有则注册用户并返回userpin
actionBody.channelUserId = pin;
opResult = await this.getLoginByUserName(pobj, actionBody);
opResult = await this.getLoginByUserName(req,pobj, actionBody);
return opResult;
}
......
......@@ -31,7 +31,6 @@ class UtilsOrderService extends AppServiceBase {
return system.getResult(null, "支付价格payCode信息有误,100050");
}
var totalSum = Number(price_list[productIndex].price) * Number(actionBody.quantity);
var additions = null;
var additionsIndex = -1;
if (actionBody.additions && actionBody.additions.payCode) {
additionsIndex = price_list.findIndex(f => f.pay_code == actionBody.additions.payCode && f.is_show == 0);
......@@ -75,26 +74,35 @@ class UtilsOrderService extends AppServiceBase {
}
pobj.actionType = "getProductDetail";
var url = settings.centerAppUrl() + "action/opProduct/springBoard";
var productItemResult = await this.restPostUrl(pobj, url);
var productItemResult = await this.execPostByTimeOut(null, pobj, url);
if (productItemResult.status != 0) {
return productItemResult;
}
pobj.actionBody.product_info = productItemResult.data;
if (productItemResult.data.status != 0) {
return productItemResult.data;
}
pobj.actionBody.product_info = productItemResult.data.data;
var verifyResult = await this.isOrderVerify(pobj, pobj.actionBody);
if (verifyResult.status != 0) {
return verifyResult;
}
pobj.actionType = "getProductInterface";
pobj.actionBody.product_id = pobj.actionBody.product_info.id;
var productItemInterfaceResult = await this.restPostUrl(pobj, url);
pobj.actionBody.product_info.interface_info = productItemInterfaceResult.data;
var productItemInterfaceResult = await this.execPostByTimeOut(null, pobj, url);
pobj.actionBody.product_info.interface_info = productItemInterfaceResult.data.data;
pobj.actionType = "addOrder";
var reqUrl = this.centerOrderUrl + "action/order/springBoard";
// console.log(pobj);
var result = await this.restPostUrl(pobj, reqUrl);
result.totalSum = actionBody.totalSum;
return result;
var result = await this.execPostByTimeOut(null, pobj, reqUrl);
if (result.status != 0) {
return result;
}
if (result.data.status != 0) {
return result.data;
}
result.data.totalSum = actionBody.totalSum;
return result.data;
}
async delOrder(pobj, actionBody) {
if (!actionBody.orderNo) {
......@@ -917,7 +925,7 @@ class UtilsOrderService extends AppServiceBase {
opOrderResult.data = null;
return opOrderResult;
}
if(!opOrderResult.data){
if (!opOrderResult.data) {
return opOrderResult;
}
opOrderResult.data.appInfo = {
......@@ -933,7 +941,7 @@ class UtilsOrderService extends AppServiceBase {
};
opOrderResult.data.orderNo = params.orderNo;
opOrderResult.data.order_info.pay_flow_no = params.trade_no || "";// 2020 0704 lin 新增 推送fq必填字段
opOrderResult.data.order_info.pay_channel = params.payType ||"";//付款方式
opOrderResult.data.order_info.pay_channel = params.payType || "";//付款方式
opOrderResult.data.order_info.pay_time = params.payTime;//付款时间
opOrderResult.data.order_info.pay_payer_bank_no = params.buyer_email || "";//付款账号
opOrderResult.data.order_contact = opOrderResult.data.delivery_content.orderContact;
......@@ -945,7 +953,7 @@ class UtilsOrderService extends AppServiceBase {
// 推送
this.utilsPushSve.pushBusInfo(pobj, "pushOrder", 0);
if(['icpsq','edisq'].includes(opOrderResult.data.product_info.channel_item_code)){
if (['icpsq', 'edisq'].includes(opOrderResult.data.product_info.channel_item_code)) {
this.utilsPushSve.aliBusiness2Delivery(pobj, "pushDeliveryOrder");
}
opOrderResult.data = null;
......@@ -1007,13 +1015,13 @@ class UtilsOrderService extends AppServiceBase {
// 修改并返回订单支付状 态,创建收款单
// 根据合同号获取所有订单 循环修改order_info 信息
let seaUrl = this.centerOrderUrl + 'opaction/opPayOrder/getOrderListByOrderServiceNo';
let seaRet = await this.restPostUrl(params,seaUrl);
if(seaRet.status!=0){
seaRet.data= null;
let seaRet = await this.restPostUrl(params, seaUrl);
if (seaRet.status != 0) {
seaRet.data = null;
return seaRet;
}
let orderList = seaRet.data;
for(let i=0;i<orderList.length;i++){
for (let i = 0; i < orderList.length; i++) {
params.orderNo = orderList[i].orderNo;
// 这里修改了order_info的状态(status/paytime等)
var orderUrl = this.centerOrderUrl + "opaction/opPayOrder/receivePayCallBackNotifyByChannel";
......@@ -1022,7 +1030,7 @@ class UtilsOrderService extends AppServiceBase {
opOrderResult.data = null;
continue;
}
if(!opOrderResult.data){
if (!opOrderResult.data) {
// return opOrderResult;
continue;
}
......@@ -1039,7 +1047,7 @@ class UtilsOrderService extends AppServiceBase {
};
opOrderResult.data.orderNo = params.orderNo;
opOrderResult.data.order_info.pay_flow_no = params.trade_no || "";// 2020 0704 lin 新增 推送fq必填字段
opOrderResult.data.order_info.pay_channel = params.payType ||"";//付款方式
opOrderResult.data.order_info.pay_channel = params.payType || "";//付款方式
opOrderResult.data.order_info.pay_time = params.payTime;//付款时间
opOrderResult.data.order_info.pay_payer_bank_no = params.buyer_email || "";//付款账号
opOrderResult.data.order_contact = opOrderResult.data.delivery_content.orderContact;
......@@ -1184,15 +1192,15 @@ class UtilsOrderService extends AppServiceBase {
}
//增加常用联系人,常用申请人
async addUsuallyContacts(pobj,actionBody){
async addUsuallyContacts(pobj, actionBody) {
if (!actionBody.channel_user_id) {
return system.getResultFail(-1, "渠道用户id不能为空");
}
if (!actionBody.contacts){
return system.getResultFail(-1,'用户信息不能为空')
if (!actionBody.contacts) {
return system.getResultFail(-1, '用户信息不能为空')
}
if(Object.keys(actionBody.contacts).length<0){
return system.getResultFail(-1,'用户信息不能为空')
if (Object.keys(actionBody.contacts).length < 0) {
return system.getResultFail(-1, '用户信息不能为空')
}
var reqUrl = this.centerOrderUrl + "action/tmOrder/springBoard";
var result = await this.restPostUrl(pobj, reqUrl);
......@@ -1200,9 +1208,9 @@ class UtilsOrderService extends AppServiceBase {
}
//删除常用联系人,常用申请人
async delUsuallyContacts(pobj,actionBody){
if(!actionBody.id){
return system.getResultFail(-1,'id不能为空')
async delUsuallyContacts(pobj, actionBody) {
if (!actionBody.id) {
return system.getResultFail(-1, 'id不能为空')
}
var reqUrl = this.centerOrderUrl + "action/tmOrder/springBoard";
var result = await this.restPostUrl(pobj, reqUrl);
......@@ -1210,15 +1218,15 @@ class UtilsOrderService extends AppServiceBase {
}
//修改常用联系人,常用申请人
async updateUsuallyContacts(pobj,actionBody){
if(!actionBody.id){
return system.getResultFail(-1,'id 不能为空');
async updateUsuallyContacts(pobj, actionBody) {
if (!actionBody.id) {
return system.getResultFail(-1, 'id 不能为空');
}
if(!actionBody.channel_user_id){
return system.getResultFail(-1,'id 不能为空');
if (!actionBody.channel_user_id) {
return system.getResultFail(-1, 'id 不能为空');
}
if(Object.keys(actionBody.contacts).length<0){
return system.getResultFail(-1,'信息不能为空');
if (Object.keys(actionBody.contacts).length < 0) {
return system.getResultFail(-1, '信息不能为空');
}
var reqUrl = this.centerOrderUrl + "action/tmOrder/springBoard";
var result = await this.restPostUrl(pobj, reqUrl);
......@@ -1226,9 +1234,9 @@ class UtilsOrderService extends AppServiceBase {
}
//查询常用联系人,常用申请人
async getUsuallyContacts(pobj,actionBody){
if(!actionBody.channel_user_id){
return system.getResultFail(-1,'用户id不能为空')
async getUsuallyContacts(pobj, actionBody) {
if (!actionBody.channel_user_id) {
return system.getResultFail(-1, '用户id不能为空')
}
var reqUrl = this.centerOrderUrl + "action/tmOrder/springBoard";
var result = await this.restPostUrl(pobj, reqUrl);
......@@ -1236,55 +1244,55 @@ class UtilsOrderService extends AppServiceBase {
}
//创建订单 官网
async addOrderWeb(pobj,actionBody){
async addOrderWeb(pobj, actionBody) {
if (!actionBody.quantity || Number(actionBody.quantity) <= 0) {
return system.getResult(null, "订单数量为空或有误,100030");
}
if(!actionBody.goodsId){
if (!actionBody.goodsId) {
return system.getResult(null, "官网产品id不能为空")
}
if(!actionBody.customerId){
return system.getResult(null,'客户Id不能为空')
if (!actionBody.customerId) {
return system.getResult(null, '客户Id不能为空')
}
if(actionBody.deliveryData.nclones.length<=0){
return system.getResult(null,'尼斯不能为空')
if (actionBody.deliveryData.nclones.length <= 0) {
return system.getResult(null, '尼斯不能为空')
}
if (actionBody.quantity !=actionBody.deliveryData.nclones.length || Number(actionBody.quantity) !=actionBody.deliveryData.nclones.length) {
if (actionBody.quantity != actionBody.deliveryData.nclones.length || Number(actionBody.quantity) != actionBody.deliveryData.nclones.length) {
return system.getResult(null, "订单数量有误,100030");
}
let nclones = actionBody.deliveryData.nclones;//大项集合
let product_item = [];//产品项
for(let i = 0;i < nclones.length ; i ++){
for (let i = 0; i < nclones.length; i++) {
let nclone = nclones[i];
if(nclone.nclThree.length >10){
if (nclone.nclThree.length > 10) {
actionBody.additions = {
"payCode": "zzsbzc-2", // Y 支付价格code
"quantity":nclone.nclThree.length - 10// Y 购买数量
"payCode": "zzsbzc-2", // Y 支付价格code
"quantity": nclone.nclThree.length - 10// Y 购买数量
}
}
actionBody.totalSum = 0;
actionBody.quantity = 1;
actionBody.deliveryData.nclones = [nclone]
actionBody.payTotalSum = actionBody.totalSum;
let saveResult = await this.addOrder(pobj,actionBody);
if(saveResult.status !=0){
let saveResult = await this.addOrder(pobj, actionBody);
if (saveResult.status != 0) {
return saveResult;
}
let obj = {
idempotentId:saveResult.data.orderNo,//商标注册订单id
nclCount:nclone.nclThree.length - 10 >0 ? nclone.nclThree.length - 10 :0//小项数量
idempotentId: saveResult.data.orderNo,//商标注册订单id
nclCount: nclone.nclThree.length - 10 > 0 ? nclone.nclThree.length - 10 : 0//小项数量
}
product_item.push(obj);
}
actionBody.product_item = product_item;
//新增订单(商标自助注册) IC
let icOrderResult = await this.utilsFqAliyunSve.pushOrder2IC(pobj, "pushOrder2IC");
let orderUrl = settings.centerOrderUrl() +'action/order/springBoard';
if(icOrderResult.status !=0){
for(let i =0;i<product_item.length;i++){
let orderUrl = settings.centerOrderUrl() + 'action/order/springBoard';
if (icOrderResult.status != 0) {
for (let i = 0; i < product_item.length; i++) {
actionBody.orderNo = product_item[i].idempotentId;
pobj.actionType = 'delOrder';
let rt = await this.restPostUrl(pobj,orderUrl);
let rt = await this.restPostUrl(pobj, orderUrl);
}
return icOrderResult;
}
......@@ -1293,7 +1301,7 @@ class UtilsOrderService extends AppServiceBase {
pobj.actionType = 'updateOrder';
let orderNos = [];
let orderIds = [];
for(let i =0;i<ids.length;i++){
for (let i = 0; i < ids.length; i++) {
let orderNo = ids[i].idempotentId;
let contractNo = ids[i].contractNo;
orderNos.push(ids[i].orderNo)
......@@ -1302,9 +1310,9 @@ class UtilsOrderService extends AppServiceBase {
actionBody.channelServiceNo = contractNo;
actionBody.channelOrderNo = ids[i].orderNo;
actionBody.orderServiceNo = orderServiceNo;
let rest = await this.restPostUrl(pobj,orderUrl);
let rest = await this.restPostUrl(pobj, orderUrl);
}
let result ={
let result = {
orderNos,
orderIds
}
......@@ -1312,9 +1320,9 @@ class UtilsOrderService extends AppServiceBase {
}
//获取支付记录
async getPayRecords(pobj,actionBody){
async getPayRecords(pobj, actionBody) {
let url = this.centerOrderUrl + 'opaction/opPayOrder/getPayRecords';
let result = await this.restPostUrl(pobj,url);
let result = await this.restPostUrl(pobj, url);
return result;
}
}
......
......@@ -92,6 +92,7 @@ class ExecClientNew {
this.execLogs(execFile + "执行execPostTimeOutByBusiness,errorInfo信息为请求的返回结果", params, params.identifyCode, reqResult, rtn);
return reqResult;
} catch (error) {
console.log("执行execPostByTimeOut存在异常", error.stack);
reqResult = system.getResultFail(-200, execFile + "执行execPostByTimeOut存在异常");
reqResult.requestId = requestId || uuid.v1();
this.execLogs(execFile + "执行execPostByTimeOut存在异常", params, params.identifyCode, reqResult, error.stack);
......
......@@ -205,12 +205,7 @@ module.exports = function (app) {
try {
var client_ip = system.get_client_ip(req);
let result ={};
const orderNo = req.body.orderNo;
if(orderNo.indexOf('CN') ==0){
result = await utilsOrderSve.channelOrdersPayNotify(req.body,client_ip);
}else{
result = await utilsOrderSve.channelPayNotify(req.body, client_ip);
}
result = await utilsOrderSve.channelPayNotify(req.body, client_ip);
logCtl.info({
optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "渠道支付订单通知 api层",
op: "center-channel/orderNotify/channelPayNotify",
......
......@@ -239,14 +239,14 @@ var settings = {
if (this.env == "dev") {
return "https://oauth2.e.360.cn/site/token"// 360测试环境
} else {
return ""//
return "https://oauth2.e.360.cn/site/token"//
}
},
requestUrl360: function () {
if (this.env == "dev") {
return "http://180.163.239.98:38085/"// 360测试环境
} else {
return ""//
return "http://180.163.239.98:38085/"//
}
},
aliUappId: function () {
......
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