Commit 3df92378 by 兰国旗

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

parents c35cc259 7e3af1e1
......@@ -5,6 +5,7 @@ const sha256 = require('sha256');
const md5 = require("MD5");
class APIBase {
constructor() {
this.execClientNew = system.getObject("util.execClientNew");
this.restClient = system.getObject("util.restClient");
this.redisClient = system.getObject("util.redisClient");
this.cacheManager = system.getObject("db.common.cacheManager");
......@@ -23,6 +24,7 @@ class APIBase {
//-----------------------新的模式------------------开始
async doexecMethod(gname, methodname, pobj, query, req) {
req.requestId = this.getUUID();
try {
var shaStr = await sha256(JSON.stringify(pobj));
......@@ -31,26 +33,30 @@ class APIBase {
if (cacheRes) {
return JSON.parse(cacheRes);
}
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;
if(this.cacheMethodList.indexOf(methodname)>=0 && rtn.status && rtn.status==0){
if (this.cacheMethodList.indexOf(methodname) >= 0 && result.status && result.status == 0) {
//保存缓存
await this.redisClient.setWithEx(shaStr, JSON.stringify(rtn), 3600);
await this.redisClient.setWithEx(shaStr, JSON.stringify(result), 3600);
}
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", tmpResult, null);
return result;
} catch (e) {
console.log(e.stack, "api调用出现异常,请联系管理员..........")
console.log(e.stack, "api调用出现异常,请联系管理员..........");
this.logCtl.createDb({
appid: req.app.id,
appkey: req.app.uappKey,
......@@ -62,16 +68,17 @@ class APIBase {
agent: req.uagent,
opTitle: "api调用出现异常,请联系管理员error,appKey:" + settings.appKey,
});
this.logCtl.error({
appid: req.app.id,
appkey: req.app.uappKey,
requestId: req.requestId,
op: req.classname + "/" + methodname,
content: e.stack,
clientIp: pobj.clientIp,
agent: req.uagent,
optitle: "api调用出现异常,请联系管理员",
});
// this.logCtl.error({
// appid: req.app.id,
// appkey: req.app.uappKey,
// requestId: req.requestId,
// op: req.classname + "/" + methodname,
// content: e.stack,
// clientIp: pobj.clientIp,
// agent: req.uagent,
// optitle: "api调用出现异常,请联系管理员",
// });
this.execClientNew.execLogs("reqPath异常:" + req.path, pobj, "center-channel-doexecMethod", tmpResult, null);
var rtnerror = system.getResultFail(-200, "出现异常,error:" + e.stack);
rtnerror.requestId = req.requestId;
return rtnerror;
......@@ -83,10 +90,23 @@ class APIBase {
async restPostUrl(pobj, url) {
var rtn = await this.restClient.execPost(pobj, url);
if (!rtn || !rtn.stdout) {
return system.getResult(null, "restPost data is empty");
return system.getResult(null, "restPost data is empty");
}
var result = JSON.parse(rtn.stdout);
return result;
}
}
/**
* 带超时时间的post请求
* @param {*} req 请求信息
* @param {*} params 请求数据-json格式
* @param {*} url 请求地址
* @param {*} ContentType 请求头类型,默认application/json
* @param {*} headData 请求头内容-json格式,如:请求头中传递token,格式:{token:"9098902q849q0434q09439"}
* @param {*} timeOut 超时时间
*/
async execPostByTimeOut(req, params, url, ContentType, headData, timeOut = 60) {
const result = await this.execClientNew.execPostTimeOutByBusiness('sve.base', params, url, ContentType, headData, timeOut, req);
return result;
}
}
module.exports = APIBase;
......@@ -56,110 +56,110 @@ class IcpNotify extends APIBase {
if (pobj.area) {
switch (pobj.area) {
case "1":
pobj.area = "北京";
break;
pobj.area = "北京";
break;
case "2":
pobj.area = "上海";
break;
pobj.area = "上海";
break;
case "3":
pobj.area = "福建";
break;
pobj.area = "福建";
break;
case "4":
pobj.area = "广西";
break;
pobj.area = "广西";
break;
case "5":
pobj.area = "广东";
break;
pobj.area = "广东";
break;
case "6":
pobj.area = "安徽";
break;
pobj.area = "安徽";
break;
case "7":
pobj.area = "河南";
break;
pobj.area = "河南";
break;
case "8":
pobj.area = "湖北";
break;
pobj.area = "湖北";
break;
case "9":
pobj.area = "浙江";
break;
pobj.area = "浙江";
break;
case "10":
pobj.area = "江苏";
break;
pobj.area = "江苏";
break;
case "11":
pobj.area = "山东";
break;
pobj.area = "山东";
break;
case "12":
pobj.area = "陕西";
break;
pobj.area = "陕西";
break;
case "13":
pobj.area = "宁夏";
break;
pobj.area = "宁夏";
break;
case "14":
pobj.area = "甘肃";
break;
pobj.area = "甘肃";
break;
case "15":
pobj.area = "新疆";
break;
pobj.area = "新疆";
break;
case "16":
pobj.area = "青海";
break;
pobj.area = "青海";
break;
case "17":
pobj.area = "天津";
break;
pobj.area = "天津";
break;
case "18":
pobj.area = "重庆";
break;
pobj.area = "重庆";
break;
case "19":
pobj.area = "河北";
break;
pobj.area = "河北";
break;
case "20":
pobj.area = "山西";
break;
pobj.area = "山西";
break;
case "21":
pobj.area = "辽宁";
break;
pobj.area = "辽宁";
break;
case "22":
pobj.area = "吉林";
break;
pobj.area = "吉林";
break;
case "23":
pobj.area = "黑龙江";
break;
pobj.area = "黑龙江";
break;
case "24":
pobj.area = "江西";
break;
pobj.area = "江西";
break;
case "25":
pobj.area = "湖南";
break;
pobj.area = "湖南";
break;
case "26":
pobj.area = "四川";
break;
pobj.area = "四川";
break;
case "27":
pobj.area = "贵州";
break;
pobj.area = "贵州";
break;
case "28":
pobj.area = "云南";
break;
pobj.area = "云南";
break;
case "29":
pobj.area = "内蒙古";
break;
pobj.area = "内蒙古";
break;
case "30":
pobj.area = "西藏";
break;
pobj.area = "西藏";
break;
case "31":
pobj.area = "含外资";
break;
pobj.area = "含外资";
break;
case "32":
pobj.area = "全外资";
break;
pobj.area = "全外资";
break;
case "33":
pobj.area = "香港";
break;
pobj.area = "香港";
break;
case "34":
pobj.area = "海南";
break;
pobj.area = "海南";
break;
default:
pobj.area = "";
break;
pobj.area = "";
break;
}
}
if (!pobj.area) {
......
......@@ -23,7 +23,7 @@ class ProductAPI extends WEBBase {
var opResult = null;
switch (action_type) {
case "getIndustryInfo":// 获取行业信息
opResult = await this.utilsUcommuneSve.getUserInfo(pobj, pobj.actionBody);
opResult = await this.utilsUcommuneSve.getUserInfo(req, pobj, pobj.actionBody);
break;
case "placeOrder":// 提交订单
opResult = await this.utilsUcommuneSve.getOrderList(pobj, pobj.actionBody);
......
......@@ -23,7 +23,7 @@ class ProductAPI extends WEBBase {
var opResult = null;
switch (action_type) {
case "getUserInfo":// 根据优客token获取用户信息,生成userPin返回前端 actionBody
opResult = await this.utilsUcommuneSve.getUserInfo(pobj, pobj.actionBody);
opResult = await this.utilsUcommuneSve.getUserInfo(req, pobj, pobj.actionBody);
break;
case "orderTotalSum":// addOrder后进入支付页面获取支付金额
opResult = await this.utilsUcommuneSve.orderTotalSum(pobj, pobj.actionBody);
......
......@@ -29,18 +29,17 @@ class AccessAuthAPI extends WEBBase {
switch (action_type) {
// sy
case "test"://测试
var rpcParam = {
accessKeyId: "LTAI4Fgz1uoUpfHpa79iq3XV",
accessKeySecret: "up8vlX0wzwCVtRAjKRXsCrFta6CHOY",
endpoint: "https://trademark.aliyuncs.com",
apiVersion: "2019-09-02"
};
opResult = await this.utilsTmAliyunSve.getAliOssInfo(null, "ATTORNEY", rpcParam);
// var rpcParam = {
// accessKeyId: "LTAI4Fgz1uoUpfHpa79iq3XV",
// accessKeySecret: "up8vlX0wzwCVtRAjKRXsCrFta6CHOY",
// endpoint: "https://trademark.aliyuncs.com",
// apiVersion: "2019-09-02"
// };
// opResult = await this.utilsTmAliyunSve.getAliOssInfo(null, "ATTORNEY", rpcParam);
// opResult = system.getResultSuccess(null, "测试成功");
opResult = system.getResultSuccess(null, "测试成功");
break;
case "getTokenInfo"://渠道通过账户进行登录,有则返回用户信息,没有则创建用户
opResult = system.getResultSuccess({
app_code: pobj.appInfo.app_code,
app_hosts: pobj.appInfo.app_hosts,
......@@ -48,17 +47,11 @@ class AccessAuthAPI extends WEBBase {
uapp_key: pobj.appInfo.uapp_key,
id: pobj.appInfo.id
})
break;
case "getNeedUserPinByChannelUserId"://渠道通过账户进行登录,有则返回用户信息,没有则创建用户
var tmpOpResult = await this.utilsAuthSve.getLoginByUserName(pobj, pobj.actionBody);
if (tmpOpResult.status != 0 && tmpOpResult.status != 2060) {
return tmpOpResult;
}
opResult = system.getResultSuccess({ userpin: pobj.actionBody.userpin })
if (tmpOpResult.status == 2060) {
opResult.msg = tmpOpResult.msg;
opResult.data.userpin = tmpOpResult.data.userpin;
opResult = await this.utilsAuthSve.getLoginByUserName(req, pobj, pobj.actionBody);
if (opResult.status != 0) {
return opResult;
}
//获取需求信息
pobj.actionType = "getItemByChannelNeedNo";
......@@ -70,26 +63,18 @@ class AccessAuthAPI extends WEBBase {
opResult.data.typeCode = needResult.data.typeCode
break;
case "getLoginByUserName"://渠道通过账户进行登录,有则返回用户信息,没有则创建用户
var tmpOpResult = await this.utilsAuthSve.getLoginByUserName(pobj, pobj.actionBody);
if (tmpOpResult.status != 0 && tmpOpResult.status != 2060) {
return tmpOpResult;
}
opResult = system.getResultSuccess({ userpin: pobj.actionBody.userpin })
if (tmpOpResult.status == 2060) {
opResult.msg = tmpOpResult.msg;
opResult.data.userpin = tmpOpResult.data.userpin;
}
opResult = await this.utilsAuthSve.getLoginByUserName(req, pobj, pobj.actionBody);
break;
case "getVerifyCode"://获取默认模板的手机验证码
opResult = await this.utilsAuthSve.getVerifyCodeByMoblie(pobj, pobj.actionBody);
case "getVerifyCode"://获取默认模板的手机验证码---已优化
opResult = await this.utilsAuthSve.getVerifyCodeByMoblie(req, pobj, pobj.actionBody);
if (opResult.status == 0) {
return system.getResultSuccess()
}
break;
case "userPinByLgoin"://通过账户和密码登录
opResult = await this.utilsAuthSve.getReqUserPinByLgoin(pobj, pobj.actionBody);
case "userPinByLgoin"://通过账户和密码登录---已优化
opResult = await this.utilsAuthSve.getReqUserPinByLgoin(req, pobj, pobj.actionBody);
if (opResult.status == 0) {
return system.getResultSuccess({ userpin: pobj.actionBody.userpin })
return opResult;
}
break;
case "userTestLogin": // 假登陆
......@@ -98,30 +83,33 @@ class AccessAuthAPI extends WEBBase {
} else {
return system.getResultFail(-1, '用户名或密码错误')
}
case "userPinByLgoinVcode"://通过短信登录信息
case "userPinByLgoinVcode"://通过短信登录信息---已优化
pobj.actionBody.reqType = "login";
opResult = await this.utilsAuthSve.getReqUserPinByLgoinVcode(pobj, pobj.actionBody);
if (opResult.status == 0) {
return system.getResultSuccess({ userpin: pobj.actionBody.userpin })
}
opResult = await this.utilsAuthSve.getReqUserPinByLgoinVcode(req, pobj, pobj.actionBody);
// if (opResult.status == 0) {
// return system.getResultSuccess({ userpin: pobj.actionBody.userpin })
// }
break;
case "userPinByRegister"://通过短信注册信息
case "userPinByRegister"://通过短信注册信息---已优化
pobj.actionBody.reqType = "reg";
opResult = await this.utilsAuthSve.getReqUserPinByLgoinVcode(pobj, pobj.actionBody);
if (opResult.status == 0) {
return system.getResultSuccess({ userpin: pobj.actionBody.userpin })
}
opResult = await this.utilsAuthSve.getReqUserPinByLgoinVcode(req, pobj, pobj.actionBody);
// if (opResult.status == 0) {
// return system.getResultSuccess({ userpin: pobj.actionBody.userpin })
// }
break;
case "putUserPwdByMobile"://通过手机验证码修改用户密码
case "putUserPwdByMobile"://通过手机验证码修改用户密码---已优化
opResult = await this.utilsAuthSve.putUserPwdByMobile(pobj, pobj.actionBody);
break;
case "getLoginInfo"://通过userpin获取用户登录信息
case "putUserMobileByVcode"://通过手机验证码修改手机号,邮箱
opResult = await this.utilsAuthSve.putUserMobileByVcode(pobj, pobj.actionBody);
break;
case "getLoginInfo"://通过userpin获取用户登录信息--已经废弃,在路由中处理了
opResult = await this.utilsAuthSve.getLoginInfo(pobj, pobj.actionBody);
break;
case "channelUserLogin":
opResult = await this.utilsAuthSve.channelUserLogin(pobj,pobj.actionBody,req);
opResult = await this.utilsAuthSve.channelUserLogin(pobj, pobj.actionBody, req);
break;
case "logout"://用户退出
case "logout"://用户退出--已经废弃,前端自己进行移除userpin信息
opResult = await this.utilsAuthSve.userLogout(pobj, pobj.actionBody);
break;
default:
......@@ -140,10 +128,7 @@ class AccessAuthAPI extends WEBBase {
var token = this.getUUID();
pobj.actionBody.reqType = "hosts";
var opResult = await this.utilsAuthSve.getReqTokenByHosts(pobj.actionBody, token);
if (opResult.status != 0) {
return opResult;
}
return system.getResultSuccess({ token: token })
return opResult;
}
/**
* 接口跳转-POST请求
......@@ -153,10 +138,7 @@ class AccessAuthAPI extends WEBBase {
var token = this.getUUID();
pobj.actionBody.reqType = "appkey";
var opResult = await this.utilsAuthSve.getReqTokenByHosts(pobj.actionBody, token);
if (opResult.status != 0) {
return opResult;
}
return system.getResultSuccess({ token: token })
return opResult;
}
}
module.exports = AccessAuthAPI;
\ No newline at end of file
......@@ -42,15 +42,7 @@ class ChannelAccessAuthAPI extends WEBBase {
pobj.actionBody.channelUserId = aliUserResult.data.channelUserId;
pobj.actionBody.isAdmin = aliUserResult.data.isAdmin;
pobj.actionBody.isSuper = aliUserResult.data.isSuper;
var tmpOpResult = await this.utilsAuthSve.getLoginByUserName(pobj, pobj.actionBody);
if (tmpOpResult.status != 0 && tmpOpResult.status != 2060) {
return tmpOpResult;
}
opResult = system.getResultSuccess({ userpin: pobj.actionBody.userpin })
if (tmpOpResult.status == 2060) {
opResult.msg = tmpOpResult.msg;
opResult.data.userpin = tmpOpResult.data.userpin;
}
opResult = await this.utilsAuthSve.getLoginByUserName(req, pobj, pobj.actionBody);
break;
case "getDingJsApiAuthInfo"://获取钉钉鉴权信息
opResult = await this.utilsChannelAuthSve.getDingJsApiAuthInfo(pobj, pobj.actionBody);
......
var APIBase = require("../../api.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
const uuidv4 = require('uuid/v4');
/**
* icp通知接口(百度icp接入)
* 庄冰 2020.10.22
*/
class Consultation extends APIBase {
constructor() {
super();
this.gatewaypushlogSve = system.getObject("service.common.gatewaypushlogSve");
}
getUUID() {
var uuid = uuidv4();
var u = uuid.replace(/\-/g, "");
return u;
}
getResultSuccess(requestId) {
return {
"requestId": requestId,
"success": true,
"errorMsg": "",
"errorCode": "ok"
}
}
getResultFail(errmsg) {
var self = this;
return {
"requestId": self.getUUID(),
"success": false,
"errorMsg": errmsg,
"errorCode": "ok"
};
}
//icp需求提交
async submit(pobj,obj,req) {
var self = this;
if(!pobj.appInfo || !pobj.appInfo.uapp_key || !pobj.appInfo.uapp_secret){
return self.getResultFail("未知应用或应用未启用");
}
if (!pobj.intentionBizId) {
return self.getResultFail("intentionBizId不能为空");
}
if (!pobj.phone) {
return self.getResultFail("mobile不能为空");
}
if (!pobj.consultType) {
return self.getResultFail("consultType不能为空");
}
pobj.type = pobj.consultType;
pobj.mobile = pobj.phone;
pobj.action_type = "submitIcpNeed";
if (pobj.area) {
switch (pobj.area) {
case "1":
pobj.area = "北京";
break;
case "2":
pobj.area = "上海";
break;
case "3":
pobj.area = "福建";
break;
case "4":
pobj.area = "广西";
break;
case "5":
pobj.area = "广东";
break;
case "6":
pobj.area = "安徽";
break;
case "7":
pobj.area = "河南";
break;
case "8":
pobj.area = "湖北";
break;
case "9":
pobj.area = "浙江";
break;
case "10":
pobj.area = "江苏";
break;
case "11":
pobj.area = "山东";
break;
case "12":
pobj.area = "陕西";
break;
case "13":
pobj.area = "宁夏";
break;
case "14":
pobj.area = "甘肃";
break;
case "15":
pobj.area = "新疆";
break;
case "16":
pobj.area = "青海";
break;
case "17":
pobj.area = "天津";
break;
case "18":
pobj.area = "重庆";
break;
case "19":
pobj.area = "河北";
break;
case "20":
pobj.area = "山西";
break;
case "21":
pobj.area = "辽宁";
break;
case "22":
pobj.area = "吉林";
break;
case "23":
pobj.area = "黑龙江";
break;
case "24":
pobj.area = "江西";
break;
case "25":
pobj.area = "湖南";
break;
case "26":
pobj.area = "四川";
break;
case "27":
pobj.area = "贵州";
break;
case "28":
pobj.area = "云南";
break;
case "29":
pobj.area = "内蒙古";
break;
case "30":
pobj.area = "西藏";
break;
case "31":
pobj.area = "含外资";
break;
case "32":
pobj.area = "全外资";
break;
case "33":
pobj.area = "香港";
break;
case "34":
pobj.area = "海南";
break;
default:
pobj.area = "";
break;
}
}
if (!pobj.area) {
return self.getResultFail("area参数错误");
}
var param = {
requestId: req.requestId || self.getUUID(),
requestUrl: "/icp/consultation/submit",
requestjson: JSON.stringify(pobj),//请求地址
pushUrl: "/action/intentionapi/springBoard",//调用地址
pushActionType: "submitIcpNeed",//调用参数
pushtimes: 0,//推送次数
pushStatus: "wts",//推送状态
}
await self.gatewaypushlogSve.create(param);
return self.getResultSuccess(param.requestId);
}
}
module.exports = Consultation;
\ No newline at end of file
var APIBase = require("../../api.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
const uuidv4 = require('uuid/v4');
/**
* icp通知接口(百度icp接入)
* 庄冰 2020.10.22
*/
class Feedback extends APIBase {
constructor() {
super();
this.gatewaypushlogSve = system.getObject("service.common.gatewaypushlogSve");
}
getUUID() {
var uuid = uuidv4();
var u = uuid.replace(/\-/g, "");
return u;
}
getResultSuccess(requestId) {
return {
"requestId": requestId,
"success": true,
"errorMsg": "",
"errorCode": "ok"
}
}
getResultFail(errmsg) {
var self = this;
return {
"requestId": self.getUUID(),
"success": false,
"errorMsg": errmsg,
"errorCode": "ok"
};
}
//icp需求反馈
async submit(pobj,obj,req) {
var self = this;
if(!pobj.appInfo || !pobj.appInfo.uapp_key || !pobj.appInfo.uapp_secret){
return self.getResultFail("未知应用或应用未启用");
}
if (!pobj.intentionBizId) {
return self.getResultFail("intentionBizId不能为空");
}
if (!pobj.description) {
return self.getResultFail("description不能为空");
}
if (!pobj.intentionStatus) {
return self.getResultFail("intentionStatus不能为空");
}
var param = {
requestId: req.requestId || self.getUUID(),
requestUrl: "/icp/feedback/submit",
requestjson: JSON.stringify(pobj),//请求地址
pushUrl: "/action/intentionapi/springBoard",//调用地址
pushActionType: "icpFeedbackSubmit",//调用参数
pushtimes: 0,//推送次数
pushStatus: "wts",//推送状态
}
await self.gatewaypushlogSve.create(param);
return self.getResultSuccess(param.requestId);
}
}
module.exports = Feedback;
\ No newline at end of file
var APIBase = require("../../api.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
const uuidv4 = require('uuid/v4');
/**
* icp通知接口(百度icp接入)
* 庄冰 2020.10.22
*/
class Order extends APIBase {
constructor() {
super();
this.gatewaypushlogSve = system.getObject("service.common.gatewaypushlogSve");
}
getUUID() {
var uuid = uuidv4();
var u = uuid.replace(/\-/g, "");
return u;
}
getResultSuccess(requestId) {
return {
"requestId": requestId,
"success": true,
"errorMsg": "",
"errorCode": "ok"
}
}
getResultFail(errmsg) {
var self = this;
return {
"requestId": self.getUUID(),
"success": false,
"errorMsg": errmsg,
"errorCode": "ok"
};
}
//icp状态变更
async notify(pobj,obj,req) {
var self = this;
if(!pobj.appInfo || !pobj.appInfo.uapp_key || !pobj.appInfo.uapp_secret){
return self.getResultFail("未知应用或应用未启用");
}
if (!pobj.orderNo) {
return self.getResultFail("orderNo不能为空");
}
if(!pobj.isDirectBuy || pobj.isDirectBuy=="0"){
pobj.isDirectBuy=0;
}
pobj.status = 1;
if (pobj.isDirectBuy==0 && !pobj.bizId) {
return self.getResultFail("非直接下单bizId不能为空");
}
if (pobj.isDirectBuy==1 && !pobj.phone) {
return self.getResultFail("直接下单phone不能为空");
}
if (pobj.isDirectBuy==1 && !pobj.consultType) {
return self.getResultFail("直接下单consultType不能为空");
}
pobj.action_type = "icpOrderStatus";
var param = {
requestId: req.requestId || self.getUUID(),
requestUrl: "/icp/order/notify",
requestjson: JSON.stringify(pobj),//请求地址
pushUrl: "/action/intentionapi/springBoard",//调用地址
pushActionType: "icpNotifyNew",//调用参数
pushtimes: 0,//推送次数
pushStatus: "wts",//推送状态
}
await self.gatewaypushlogSve.create(param);
return self.getResultSuccess(param.requestId);
}
}
module.exports = Order;
\ No newline at end of file
var WEBBase = require("../../web.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
class NameAPI extends WEBBase{
class NameAPI extends WEBBase {
constructor() {
super();
this.redisClient = system.getObject("util.redisClient");
......@@ -29,17 +29,17 @@ class NameAPI extends WEBBase{
opResult = await this.getCache();
break;
case "getPreference"://偏好
opResult=await this.getPreference();
opResult = await this.getPreference();
break;
case "createName"://起名
opResult =await this.addOrderDelivery(pobj,pobj.actionBody);
opResult = await this.addOrderDelivery(pobj, pobj.actionBody);
break;
case "getNameDetail"://详情
opResult = await this.getNameDetail(pobj);
break;
case "getNames"://详情
opResult = await this.getNames(pobj,pobj.actionBody);
break;
opResult = await this.getNames(req, pobj.actionBody);
break;
default:
opResult = system.getResult(null, "action_type参数错误");
break;
......@@ -51,7 +51,7 @@ class NameAPI extends WEBBase{
* 获取行业类别数据 後期可提出為一個service文件
* @returns {Promise<{}>}
*/
async getCache(){
async getCache() {
let cacheResult = {};
cacheResult.cache = cacheJson
return system.getResult(cacheResult);
......@@ -61,17 +61,17 @@ class NameAPI extends WEBBase{
* 获取偏好信息 後期可提出為一個service文件
* @returns {Promise<{}>}
*/
async getPreference(){
async getPreference() {
let preResult = {};
const key = 'qmbpreference';
let result = await this.redisClient.get(key)
if(result){
if (result) {
preResult.preference = JSON.parse(result);
return system.getResult(preResult);
}else{
const data = await this.restPostUrl({},this.centerCacheUrl+"preference_select");
if(data.code == 200){
await this.redisClient.set(key,JSON.stringify(data.data),2*3600)
} else {
const data = await this.restPostUrl({}, this.centerCacheUrl + "preference_select");
if (data.code == 200) {
await this.redisClient.set(key, JSON.stringify(data.data), 2 * 3600)
preResult.preference = data.data
return system.getResult(preResult);
}
......@@ -84,7 +84,7 @@ class NameAPI extends WEBBase{
* @param actionBody
* @returns {Promise<{msg: string, data: (*|null), bizmsg: *, status: number}|{msg: *, data: *, status: *}|{msg: *, data: (*|null), status: number}>}
*/
async addOrderDelivery(pobj,actionBody){
async addOrderDelivery(pobj, actionBody) {
if (!actionBody.orderId) {
return system.getResult(null, "orderId参数不能为空");
}
......@@ -106,46 +106,43 @@ class NameAPI extends WEBBase{
if (!actionBody.preference) {
return system.getResult(null, "preference参数不能为空");
}
await this.redisClient.set("ch"+JSON.stringify(actionBody.orderId),JSON.stringify(actionBody));
await this.redisClient.set("ch" + JSON.stringify(actionBody.orderId), JSON.stringify(actionBody));
return system.getResultSuccess();
}
//获取取名结果,并保存到数据库
async getNameDetail(pobj){
async getNameDetail(pobj) {
pobj.actionType = 'getOrderDeliveryInfo';
const opResult = await this.utilsOrderSve.getOrderDeliveryInfo(pobj, pobj.actionBody);
if(opResult.status != 0){
return system.getResult(null,opResult.msg);
const opResult = await this.utilsOrderSve.getOrderDeliveryInfo(pobj, pobj.actionBody);
if (opResult.status != 0) {
return system.getResult(null, opResult.msg);
}
if(opResult.data.hasOwnProperty('result_name')){
return system.getResult(opResult.data,'操作成功');
if (opResult.data.hasOwnProperty('result_name')) {
return system.getResult(opResult.data, '操作成功');
}
let actionBody =await this.redisClient.get('ch'+ JSON.stringify(pobj.actionBody.orderNo));
if(!actionBody){
let actionBody = await this.redisClient.get('ch' + JSON.stringify(pobj.actionBody.orderNo));
if (!actionBody) {
return system.getResult(null)
}
let nameResult = await this.restPostUrl(JSON.parse(actionBody),this.centerCacheUrl+"treasure_name");
if(nameResult.code == 200){
let nameResult = await this.restPostUrl(JSON.parse(actionBody), this.centerCacheUrl + "treasure_name");
if (nameResult.code == 200) {
pobj.actionType = 'addOrderDelivery';
pobj.actionBody = nameResult.data;
//取名结果存储
let result = await this.restPostUrl(pobj,this.centerOrderUrl + "action/nameOrder/springBoard");
return system.getResult(nameResult.data,"操作成功");
let result = await this.restPostUrl(pobj, this.centerOrderUrl + "action/nameOrder/springBoard");
return system.getResult(nameResult.data, "操作成功");
}
return system.getResult(null,'try again');
return system.getResult(null, 'try again');
}
async getNames(pobj,actionBody){
let rtn = await this.restClient.execPost(actionBody,this.aliGetNamesjavaUrl);
if (!rtn.stdout) {
return system.getResultFail();
}
var result = JSON.parse(rtn.stdout);
if(result) {
return system.getResultSuccess(result);
}
return system.getResultFail(result);
async getNames(req, actionBody) {
const result = await this.execPostByTimeOut(req, actionBody, this.aliGetNamesjavaUrl);
if (result.status != 0) {
return result;
}
const tmpData = result.data ? result.data.companyName : [];
return system.getResultSuccess(tmpData);
}
}
......@@ -153,7 +150,7 @@ const cacheJson = {
"科技类": ["网络科技", "电子商务", "信息技术", "游戏", "电子", "软件", "新材料", "生物科技", "教育科技", "环保科技", "信息科技"],
"许可类": ["投资管理", "金融", "资产", "商业保理", "融资租赁", "医疗器械", "人力资源", "食品", "劳务派遣"],
"服务类": ["广告", "文化传媒", "建筑装潢", "设计", "美容美发", "房地产中介", "物业管理", "商务咨询", "企业管理"],
"其他": ["贸易","实业","制造","服饰","化妆品","工程","农业","餐饮管理","物流"],
"其他": ["贸易", "实业", "制造", "服饰", "化妆品", "工程", "农业", "餐饮管理", "物流"],
}
......
......@@ -26,7 +26,7 @@ class ProductAPI extends WEBBase {
pobj.requestId = req.requestId;
var opResult = null;
switch (action_type) {
case "getParamsFor360"://创建订单
case "getParamsFor360":
opResult = await this.utils360Sve.getParamsFor360(pobj, pobj.actionBody);
break;
default:
......
......@@ -32,41 +32,33 @@ class AccessAuthAPI extends APIBase {
opResult = system.getResultSuccess(null, "测试成功");
break;
case "getLoginByUserName"://渠道通过账户进行登录,有则返回用户信息,没有则创建用户
var tmpOpResult = await this.utilsAuthSve.getLoginByUserName(pobj, pobj.actionBody);
if (tmpOpResult.status != 0 && tmpOpResult.status != 2060) {
return tmpOpResult;
}
opResult = system.getResultSuccess({ userpin: pobj.actionBody.userpin })
if (tmpOpResult.status == 2060) {
opResult.msg = tmpOpResult.msg;
opResult.data.userpin = tmpOpResult.data.userpin;
}
opResult = await this.utilsAuthSve.getLoginByUserName(req, pobj, pobj.actionBody);
break;
case "getVerifyCode"://获取默认模板的手机验证码
opResult = await this.utilsAuthSve.getVerifyCodeByMoblie(pobj, pobj.actionBody);
opResult = await this.utilsAuthSve.getVerifyCodeByMoblie(req, pobj, pobj.actionBody);
if (opResult.status == 0) {
return system.getResultSuccess()
}
break;
case "userPinByLgoin"://通过账户和密码登录
opResult = await this.utilsAuthSve.getReqUserPinByLgoin(pobj, pobj.actionBody);
opResult = await this.utilsAuthSve.getReqUserPinByLgoin(req, pobj, pobj.actionBody);
if (opResult.status == 0) {
return system.getResultSuccess({ userpin: pobj.actionBody.userpin })
return opResult;
}
break;
case "userPinByLgoinVcode"://通过短信登录信息
pobj.actionBody.reqType = "login";
opResult = await this.utilsAuthSve.getReqUserPinByLgoinVcode(pobj, pobj.actionBody);
if (opResult.status == 0) {
return system.getResultSuccess({ userpin: pobj.actionBody.userpin })
}
opResult = await this.utilsAuthSve.getReqUserPinByLgoinVcode(req, pobj, pobj.actionBody);
// if (opResult.status == 0) {
// return system.getResultSuccess({ userpin: pobj.actionBody.userpin })
// }
break;
case "userPinByRegister"://通过短信注册信息
pobj.actionBody.reqType = "reg";
opResult = await this.utilsAuthSve.getReqUserPinByLgoinVcode(pobj, pobj.actionBody);
if (opResult.status == 0) {
return system.getResultSuccess({ userpin: pobj.actionBody.userpin })
}
opResult = await this.utilsAuthSve.getReqUserPinByLgoinVcode(req, pobj, pobj.actionBody);
// if (opResult.status == 0) {
// return system.getResultSuccess({ userpin: pobj.actionBody.userpin })
// }
break;
case "putUserPwdByMobile"://通过手机验证码修改用户密码
opResult = await this.utilsAuthSve.putUserPwdByMobile(pobj, pobj.actionBody);
......@@ -92,11 +84,8 @@ class AccessAuthAPI extends APIBase {
async getAppTokenByHosts(pobj, qobj, req) {
var token = this.getUUID();
pobj.actionBody.reqType = "hosts";
var opResult = await this.utilsAuthSve.getReqTokenByHosts(pobj.actionBody, token);
if (opResult.status != 0) {
return opResult;
}
return system.getResultSuccess({ token: token })
let opResult = await this.utilsAuthSve.getReqTokenByHosts(pobj.actionBody, token);
return opResult;
}
/**
* 接口跳转-POST请求
......@@ -105,11 +94,8 @@ class AccessAuthAPI extends APIBase {
async getAppTokenByAppKey(pobj, qobj, req) {
var token = this.getUUID();
pobj.actionBody.reqType = "appkey";
var opResult = await this.utilsAuthSve.getReqTokenByHosts(pobj.actionBody, token);
if (opResult.status != 0) {
return opResult;
}
return system.getResultSuccess({ token: token })
let opResult = await this.utilsAuthSve.getReqTokenByHosts(pobj.actionBody, token);
return opResult;
}
}
module.exports = AccessAuthAPI;
\ No newline at end of file
......@@ -2,53 +2,53 @@ var APIBase = require("../../api.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
class edi extends APIBase {
constructor() {
super();
this.centerorderSve = system.getObject("service.common.centerorderSve");
this.utilsOrderSve = system.getObject("service.utilsSve.utilsOrderSve");
this.utilsNeedSve = system.getObject("service.utilsSve.utilsNeedSve");
}
constructor() {
super();
this.centerorderSve = system.getObject("service.common.centerorderSve");
this.utilsOrderSve = system.getObject("service.utilsSve.utilsOrderSve");
this.utilsNeedSve = system.getObject("service.utilsSve.utilsNeedSve");
}
/**
* 接口跳转-POST请求
* action_process 执行的流程
* action_type 执行的类型
* action_body 执行的参数
*/
async springBoard(pobj, qobj, req) {
if (!pobj.actionType) {
return system.getResult(null, "actionType参数不能为空");
}
var result = await this.opActionProcess(pobj, pobj.actionType, pobj.actionBody, req);
return result;
/**
* 接口跳转-POST请求
* action_process 执行的流程
* action_type 执行的类型
* action_body 执行的参数
*/
async springBoard(pobj, qobj, req) {
if (!pobj.actionType) {
return system.getResult(null, "actionType参数不能为空");
}
async opActionProcess(pobj, action_type, action_body, req) {
var opResult = null;
switch (action_type) {
case "submitNeedAliEsp":
opResult = await this.utilsNeedSve.submitNeedAliEsp(pobj,pobj.actionBody);
break;
case "needCloseAliEsp":
opResult = await this.utilsNeedSve.needCloseAliEsp(pobj,pobj.actionBody);
break;
case "produceNoticeAliEsp":
opResult = await this.utilsNeedSve.ediNotify(pobj, pobj.actionBody);
if (opResult.status == 0) {
opResult = await this.utilsNeedSve.produceNoticeAliEsp(pobj,pobj.actionBody);
}
break;
case "soulutionFeebackAliEsp":
// opResult = await this.utilsNeedSve.ediNotify(pobj, pobj.actionBody);
// opResult = await this.utilsNeedSve.soulutionFeebackAliEsp(pobj,pobj.actionBody);
pobj.actionType = "receiveFeedback"
opResult = await this.centerorderSve.reqCenterOrderApi(pobj);
break;
default:
opResult = system.getResult(null, "action_type参数错误");
break;
var result = await this.opActionProcess(pobj, pobj.actionType, pobj.actionBody, req);
return result;
}
async opActionProcess(pobj, action_type, action_body, req) {
var opResult = null;
switch (action_type) {
case "submitNeedAliEsp":
opResult = await this.utilsNeedSve.submitNeedAliEsp(pobj, pobj.actionBody);
break;
case "needCloseAliEsp":
opResult = await this.utilsNeedSve.needCloseAliEsp(pobj, pobj.actionBody);
break;
case "produceNoticeAliEsp":
opResult = await this.utilsNeedSve.ediNotify(pobj, pobj.actionBody);
if (opResult.status == 0) {
opResult = await this.utilsNeedSve.produceNoticeAliEsp(req, pobj, pobj.actionBody);
}
return opResult;
break;
case "soulutionFeebackAliEsp":
// opResult = await this.utilsNeedSve.ediNotify(pobj, pobj.actionBody);
// opResult = await this.utilsNeedSve.soulutionFeebackAliEsp(pobj,pobj.actionBody);
pobj.actionType = "receiveFeedback"
opResult = await this.centerorderSve.reqCenterOrderApi(pobj);
break;
default:
opResult = system.getResult(null, "action_type参数错误");
break;
}
return opResult;
}
}
module.exports = edi;
\ No newline at end of file
......@@ -5,6 +5,7 @@ const md5 = require("MD5");
class WEBBase {
constructor() {
this.restClient = system.getObject("util.restClient");
this.execClientNew = system.getObject("util.execClientNew");
this.cacheManager = system.getObject("db.common.cacheManager");
this.logCtl = system.getObject("service.common.oplogSve");
this.toolSve = system.getObject("service.trademark.toolSve");
......@@ -68,10 +69,23 @@ class WEBBase {
async restPostUrl(pobj, url) {
var rtn = await this.restClient.execPost(pobj, url);
if (!rtn || !rtn.stdout) {
return system.getResult(null, "restPost data is empty");
return system.getResult(null, "restPost data is empty");
}
var result = JSON.parse(rtn.stdout);
return result;
}
}
/**
* 带超时时间的post请求
* @param {*} req 请求信息
* @param {*} params 请求数据-json格式
* @param {*} url 请求地址
* @param {*} ContentType 请求头类型,默认application/json
* @param {*} headData 请求头内容-json格式,如:请求头中传递token,格式:{token:"9098902q849q0434q09439"}
* @param {*} timeOut 超时时间
*/
async execPostByTimeOut(req, params, url, ContentType, headData, timeOut = 60) {
const result = await this.execClientNew.execPostTimeOutByBusiness('sve.base', params, url, ContentType, headData, timeOut, req);
return result;
}
}
module.exports = WEBBase;
const CacheBase = require("../cache.base");
const system = require("../../system");
const settings = require("../../../config/settings");
class AppTokenByHostsCache extends CacheBase {
class AppTokenByHostsCache extends CacheBase {//----废弃--sy-2020-10-21
constructor() {
super();
this.restClient = system.getObject("util.restClient");
......@@ -16,7 +16,7 @@ class AppTokenByHostsCache extends CacheBase {
var actionBody = val;
var acckapp = await this.restClient.execPost(actionBody, settings.centerAppUrl() + "auth/accessAuth/getTokenByHosts");
var result = acckapp.stdout;
console.log(acckapp.stdout, "AppTokenByHostsCache............. acckapp.stdout..........");
// console.log(acckapp.stdout, "AppTokenByHostsCache............. acckapp.stdout..........");
if (result) {
var tmp = JSON.parse(result);
return tmp;
......
......@@ -3,10 +3,13 @@ const moment = require('moment')
const settings = require("../../config/settings");
const md5 = require("MD5");
const uuidv4 = require('uuid/v4');
const cryptoJS = require('crypto-js');
class AppServiceBase {
constructor() {
this.restClient = system.getObject("util.restClient");
this.execClient = system.getObject("util.execClient");
this.execClientNew = system.getObject("util.execClientNew");
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 };
......@@ -365,7 +368,7 @@ class AppServiceBase {
返回20位业务订单号
prefix:业务前缀
*/
async getBusUid(prefix) {
async getBusUid(prefix) {
prefix = (prefix || "");
if (prefix) {
prefix = prefix.toUpperCase();
......@@ -383,7 +386,7 @@ class AppServiceBase {
len:返回长度
radix:参与计算的长度,最大为62
*/
async getUidInfo(len, radix) {
async getUidInfo(len, radix) {
var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');//长度62,到yz长度为长36
var uuid = [], i;
radix = radix || chars.length;
......@@ -407,5 +410,95 @@ class AppServiceBase {
var u = uuid.replace(/\-/g, "");
return u;
}
/**
* 加密信息
* @param {*} encrypt_key
* @param {*} encrypt_secret
* @param {*} opStr
*/
async encryptStr(encrypt_key, encrypt_secret, opStr) {
if (!opStr) {
return system.getResult(null, "opStr is empty");
}
let keyHex = cryptoJS.enc.Utf8.parse(encrypt_key);
let ivHex = cryptoJS.enc.Utf8.parse(encrypt_secret.substring(0, 8));
var cipherStr = cryptoJS.TripleDES.encrypt(opStr, keyHex, { iv: ivHex }).toString();
return cipherStr;
}
/**
* 解密信息
* @param {*} encrypt_key
* @param {*} encrypt_secret
* @param {*} opStr
*/
async decryptStr(encrypt_key, encrypt_secret, opStr) {
if (!opStr) {
return system.getResult(null, "opStr is empty");
}
try {
let keyHex = cryptoJS.enc.Utf8.parse(encrypt_key);
let ivHex = cryptoJS.enc.Utf8.parse(encrypt_secret.substring(0, 8));
var bytes = cryptoJS.TripleDES.decrypt(opStr, keyHex, {
iv: ivHex
});
var plaintext = bytes.toString(cryptoJS.enc.Utf8);
if (!plaintext) {
return system.getResult(null, "解密失败" + opStr);
}
return system.getResultSuccess(plaintext);
} catch (error) {
return system.getResultFail(-200, "解密异常:" + opStr);
}
}
/**
* 带超时时间的post请求
* @param {*} req 请求信息
* @param {*} params 请求数据-json格式
* @param {*} url 请求地址
* @param {*} ContentType 请求头类型,默认application/json
* @param {*} headData 请求头内容-json格式,如:请求头中传递token,格式:{token:"9098902q849q0434q09439"}
* @param {*} timeOut 超时时间
*/
async execPostByTimeOut(req, params, url, ContentType, headData, timeOut = 60) {
const result = await this.execClientNew.execPostTimeOutByBusiness('sve.base', params, url, ContentType, headData, timeOut, req);
return result;
}
/**
* 验证签名
* @param {*} params 要验证的参数
* @param {*} app_secret 应用的校验key
*/
async verifySign(params, app_secret) {
if (!params) {
return system.getResult(null, "请求参数为空");
}
if (!params.sign) {
return system.getResult(null, "请求参数sign为空");
}
var signArr = [];
var keys = Object.keys(params).sort();
if (keys.length == 0) {
return system.getResult(null, "请求参数信息为空");
}
for (let k = 0; k < keys.length; k++) {
const tKey = keys[k];
if (tKey != "sign" && params[tKey]) {
let tmpKeyValue = params[tKey];
if (tmpKeyValue instanceof Array || tmpKeyValue instanceof Object) {
tmpKeyValue = JSON.stringify(tmpKeyValue);
}
signArr.push(tKey + "=" + tmpKeyValue);
}
}
if (signArr.length == 0) {
return system.getResult(null, "请求参数组装签名参数信息为空");
}
var resultSignStr = signArr.join("&") + "&key=" + app_secret;
var resultTmpSign = md5(resultSignStr).toUpperCase();
if (params.sign != resultTmpSign) {
return system.getResult(null, "返回值签名验证失败");
}
return system.getResultSuccess();
}
}
module.exports = AppServiceBase;
......@@ -541,7 +541,7 @@ class CenterorderService extends AppServiceBase {
//-----------接入百度ICP------start-------zhuangbing--2020.10.22-------------------------
async icppaysuccessNew(pobj) {
var sobj = {
actionType: "getaliicpProduce",
actionType: "getIcpProduce",
// actionBody: { typeCode: itemResult.data.channelTypeCode, province: itemResult.data.province },
actionBody: { typeCode: pobj.actionBody.channelTypeCode, province: pobj.actionBody.province },
appInfo: pobj.appInfo,
......@@ -605,8 +605,7 @@ class CenterorderService extends AppServiceBase {
var fqobj = {
actionBody: {
area: pobj.actionBody.province,
city: pobj.actionBody.province,
regType: pobj.actionBody.regType,
idempotentSource: pobj.actionBody.regType,
orderNo: pobj.actionBody.channelOrder.channelOrderNo,
orderPrice: Number(pobj.actionBody.orderPrice / 100),
phone: pobj.actionBody.publishMobile,
......@@ -629,8 +628,8 @@ class CenterorderService extends AppServiceBase {
},
appInfo: pobj.appInfo
}
this.utilsPushSve.aliBusiness2Fq(fqobj, "pushOrderICPBusiness");
this.utilsPushSve.aliBusiness2Delivery(deliveryObj, "pushDeliveryOrder");
this.utilsPushSve.baiduBusiness2Fq(fqobj, "pushOrderICPBusinessNew");
this.utilsPushSve.baiduBusiness2Delivery(deliveryObj, "pushDeliveryOrder");
return system.getResultSuccess();
}
}
......
......@@ -60,7 +60,7 @@ class QcCenterOrderService extends AppServiceBase {
IntentionBizId: needinfo.channelNeedNo,
CompanyName: solution.CompanyName, IcpType: solution.IcpType, CompanyAddress: solution.CompanyAddress,
Area: solution.Area, Note: solution.Note,
ActionType:solution.ActionType,
ActionType:solution.actionType,
Source:"官网"
};
if (needsolution.channelSolutionNo) {
......@@ -205,14 +205,31 @@ class QcCenterOrderService extends AppServiceBase {
async serviceProviderNotification(pobj) {
var res = await this.reqCenterOrderApi(pobj, "action/qcapi/springBoard");
if (res && res.status == 0 && res.data) {
pobj.actionType = "getOrderByOrderNo";
let orderUrl = settings.centerOrderUrl() + "action/order/springBoard";
let orderResult = await this.restPostUrl(pobj, orderUrl);
if(orderResult.status !=0){
return system.getResultFail(-1,'查询订单失败')
}
let uapp_id = orderResult.data.uapp_id;
pobj.appInfo = {uapp_id : uapp_id};
pobj.actionType = "getAppInterface";
var reqUrl = settings.centerAppUrl() + "action/opProduct/springBoard";
var productItemInterfaceResult = await this.restPostUrl(pobj, reqUrl);
if(productItemInterfaceResult.status != 0){
system.getResultFail(-1,'获取接口参数失败')
}
pobj.interface_info = productItemInterfaceResult.data;
pobj.pushObj = res.data;
this.utilsPushSve.pushBusInfo(pobj,'pushStatus',1);
//推送数据至阿里
var pushObj = {
BizId: res.data.BizId,
OfficialFileURL: res.data.OfficialFileURL,
ApplicationStatus: res.data.ApplicationStatus
};
//推送状态变更
this.aliclient.reqbyget({ action: "AcceptPartnerNotification", reqbody: pushObj, apiVersion: "2019-05-08" });
// var pushObj = {
// BizId: res.data.BizId,
// OfficialFileURL: res.data.OfficialFileURL,
// ApplicationStatus: res.data.ApplicationStatus
// };
// //推送状态变更
// this.aliclient.reqbyget({ action: "AcceptPartnerNotification", reqbody: pushObj, apiVersion: "2019-05-08" });
return system.getResultSuccess();
}
return res;
......@@ -635,5 +652,55 @@ async foodRecordLogList(pobj) {
return system.getResultSuccess(res);
}
//推送订单状态
async pushOrderStatus(pobj){
if (!pobj.interface_params) {
return system.getResult(null, "interface_params can not be empty,100400");
}
let interface_params_info = JSON.parse(pobj.interface_params);
if (!interface_params_info || !interface_params_info.pushUrl || !interface_params_info.action || interface_params_info.apiVersion) {
return system.getResult(null, "interface_params(pushUrl、action、apiVersion) can not be empty,100430");
}
let pushObj = {
BizId: pobj.pushObj.BizId,
OfficialFileURL: pobj.pushObj.OfficialFileURL,
ApplicationStatus: pobj.pushObj.ApplicationStatus
};
let obj = {
action:interface_params_info.action,
reqbody:pushObj,
apiVersion:interface_params_info.apiVersion
}
let result = await this.aliclient.reqbyget(obj);
return result;
}
// //推送ICP方案
// async pushIcpSolution1(pushObj, solutionNo, appInfo, self) {
// //推送方案确认信息
// var confirmRes = await this.aliclient.reqbyget({ action: "ConfirmIntention", reqbody: { BizId: pushObj.IntentionBizId }, apiVersion: "2019-05-08" });
// console.log("confirmRes",confirmRes)
// // if (confirmRes && confirmRes.status == 0 && confirmRes.data) {
// // var confirmResData = confirmRes.data;
// // if (confirmResData.ConfirmUrl) {
// // var reqObj3 = {
// // actionType: "receiveIcpConfirmUrl",
// // appInfo: appInfo,
// // actionBody: {
// // solutionNo: solutionNo,
// // confirmUrl: confirmResData.ConfirmUrl
// // }
// // };
// // var a = await self.reqCenterOrderApi(reqObj3);//保存用户确认方案url
// // }
// // }
// // return confirmRes;
// }
}
module.exports = QcCenterOrderService;
\ No newline at end of file
module.exports = QcCenterOrderService;
// var a = new QcCenterOrderService();
// a.pushIcpSolution1({
// IntentionBizId:"20201016103819000001",
// })
const system = require("../../../system")
const settings = require("../../../../config/settings")
const md5 = require("MD5");
class SignService{
constructor() {
this.centerAppUrl = settings.centerAppUrl();
this.restClient = system.getObject("util.restClient");
}
async restPostUrl(pobj, url) {
try {
var rtn = await this.restClient.execPost(pobj, url);
if (!rtn || !rtn.stdout) {
return system.getResult(null, "restPost data is empty");
}
var result = JSON.parse(rtn.stdout);
return result;
} catch (e) {
var errorMsg = "error:" + e.stack;
return system.getResult(null, errorMsg);
}
}
async getAppInfoByAppKey(appkey){
let url = this.centerAppUrl + 'payment/paymentApi/getAppInfoByAppKey';
let appInfoRt = await this.restPostUrl({ appKey: appkey }, url);
return appInfoRt;
}
/**
* 验证签名
* @param {*} params 要验证的参数
* @param {*} app_secret 应用的校验key
*/
async verifySign(params, app_secret) {
if (!params) {
return system.getResult(null, "请求参数为空");
}
if (!params.sign) {
return system.getResult(null, "请求参数sign为空");
}
var signArr = [];
var keys = Object.keys(params).sort();
if (keys.length == 0) {
return system.getResult(null, "请求参数信息为空");
}
for (let k = 0; k < keys.length; k++) {
const tKey = keys[k];
if (tKey != "sign" && params[tKey]) {
let tmpKeyValue = params[tKey];
if (tmpKeyValue instanceof Array || tmpKeyValue instanceof Object) {
tmpKeyValue = JSON.stringify(tmpKeyValue);
}
signArr.push(tKey + "=" + tmpKeyValue);
}
}
if (signArr.length == 0) {
return system.getResult(null, "请求参数组装签名参数信息为空");
}
var resultSignStr = signArr.join("&") + "&key=" + app_secret;
var resultTmpSign = md5(resultSignStr).toUpperCase();
if (params.sign != resultTmpSign) {
return system.getResult(null, "返回值签名验证失败");
}
return system.getResultSuccess();
}
async createSign(params, app_key) {
if (!params) {
return system.getResultFail(-310, "请求参数为空");
}
var signArr = [];
var keys = Object.keys(params).sort();
if (keys.length == 0) {
return system.getResultFail(-330, "请求参数信息为空");
}
for (let k = 0; k < keys.length; k++) {
const tKey = keys[k];
if (tKey != "sign" && params[tKey] && !(params[tKey] instanceof Array)) {
signArr.push(tKey + "=" + params[tKey]);
}
}
if (signArr.length == 0) {
return system.getResultFail(-350, "请求参数组装签名参数信息为空");
}
var resultSignStr = signArr.join("&") + "&key=" + app_key;
var resultTmpSign = md5(resultSignStr).toUpperCase();
return system.getResultSuccess(resultTmpSign);
}
}
module.exports = SignService;
// var task = new SignService();
// var obj = {
// "intentionBizId": "zhuangbingceshi008",
// "phone": "13075556693",
// "userName": "庄冰",
// "description": "1111111111111222",
// "area": "1",
// "consultType": 5
// };
// task.createSign(obj,"7cbb892450174167b5c7e01we4716t51").then(d=>{
// console.log(d,"!!!!!!!!!!!!!!!!!!!!!!!!!!");
// });
......@@ -2,56 +2,146 @@ var system = require("../../../system");
var settings = require("../../../../config/settings");
const AppServiceBase = require("../../app.base");
const md5 = require('md5')
const logCtl = system.getObject("service.common.oplogSve");
//阿里支付类
class utils360Sve extends AppServiceBase {
constructor() {
super();
this.centerAppUrl = settings.centerAppUrl();
}
//-------------------------------------------钉钉h5支付-----------------开始
constructor() {
super();
this.centerAppUrl = settings.centerAppUrl();
this.utilsAuthSve = system.getObject("service.utilsSve.utilsAuthSve")
this.pushlogSve = system.getObject("service.common.pushlogSve");
}
async getParamsFor360(pobj, actionBody) {
if (!actionBody.orderNo) {
return system.getResult(null, "actionBody.orderNo can not be empty,100110");
}
pobj.actionType = "getPayOrderInfo";
var orderUrl = settings.centerOrderUrl() + "action/order/springBoard";
var 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;
//组合参数,由前端传到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);
}
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
//更新订单状态到360
async pushOrderStatus(pobj) {
try {
var verifyResult = await this.verifyParam(pobj);
if (verifyResult.status != 0) {
return await this.disposePushResultFail(pobj, verifyResult, "status->pushOrderStatus->verifyResult", this.pushlogFailType.FAILLOG);
}
var interface_params_info = verifyResult.data;
let token = await this.utilsAuthSve.get360Token();
let url = interface_params_info.opUrl + '?token=' + token.access_token;
let order_id = pobj.actionBody.orderNo;
let ApplicationStatus = pobj.pushObj.ApplicationStatus;
let status = 0;
if (Number(ApplicationStatus) < 508) {
status = 30
} else {
status = 40;
}
let pushObj = {
order_id, status
}
let result = await this.restPostUrl(pushObj, url);
if(result.code ==200){
this.pushlogSve.createDb({
op: "360-pushOrderStatus",
content: JSON.stringify(pushObj),//推送的参数信息
resultInfo: JSON.stringify(result),
returnType: '1',
logLevel: '1',
opTitle: "推送360信息返回成功"
});
}else{
this.logCtl.error({
appid: pobj.appInfo ? pobj.appInfo.uapp_id || "" : "",
appkey: pobj.appInfo ? pobj.appInfo.uapp_key || "" : "",
requestId: pobj.requestId || "",
op: "utilsSve/utils360Sve/pushOrderStatus",
content: "error:" + result.msg,
// clientIp: pobj.clientIp,
optitle: pobj.opType + "推送操作异常status->pushOrderStatus",
});
}
console.log(result,'-------------push360-----------------')
return result;
} catch (e) {
this.logCtl.error({
appid: pobj.appInfo ? pobj.appInfo.uapp_id || "" : "",
appkey: pobj.appInfo ? pobj.appInfo.uapp_key || "" : "",
requestId: pobj.requestId || "",
op: "utilsSve/utils360Sve/pushOrderStatus",
content: "error:" + e.stack,
// clientIp: pobj.clientIp,
optitle: pobj.opType + "推送操作异常status->pushOrderStatus",
});
}
}
return system.getResult(result);
}
//-------------------------------------------钉钉h5支付-----------------结束
// 参数信息验证
async verifyParam(pobj) {
var verify = system.getResultSuccess();
if (!pobj.interface_params) {
verify = system.getResult(null, "interface_params can not be empty,100400");
}
var interface_params_info = JSON.parse(pobj.interface_params);
if (!interface_params_info || !interface_params_info.opUrl) {
verify = system.getResult(null, "interface_params(pushUrl) can not be empty,100430");
}
verify.data = interface_params_info;
return verify;
}
}
module.exports = utils360Sve;
......@@ -963,7 +963,7 @@ class UtilsOrderService extends AppServiceBase {
}
async channelPayNotify360(params, client_ip) {//渠道订单支付通知
async channelOrdersPayNotify(params, client_ip) {//渠道订单支付通知
try {
this.logCtl.info({
optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "渠道订单支付回调参数信息",
......@@ -1004,47 +1004,57 @@ class UtilsOrderService extends AppServiceBase {
params.appInfo = { uapp_id: appInfo.uapp_id };
params.pay_type = params.payType;
params.time_end = params.payTime;
//修改并返回订单支付状态,创建收款单
// 这里修改了order_info的状态(status/paytime等)
var orderUrl = this.centerOrderUrl + "opaction/opPayOrder/receivePayCallBackNotifyByChannel";
var opOrderResult = await this.restPostUrl(params, orderUrl);
if (opOrderResult.status != 0) {
opOrderResult.data = null;
return opOrderResult;
}
if(!opOrderResult.data){
return opOrderResult;
}
opOrderResult.data.appInfo = {
uapp_id: appInfo.uapp_id,
uapp_key: appInfo.uapp_key,
app_code: appInfo.app_code,
app_name: appInfo.app_name
};
opOrderResult.data.userInfo = {
channel_userid: opOrderResult.data.order_info.channelUserId,
channel_username: opOrderResult.data.order_info.channelUserId,
channel_nickname: opOrderResult.data.order_info.channelUserId
};
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_time = params.payTime;//付款时间
opOrderResult.data.order_info.pay_payer_bank_no = params.buyer_email || "";//付款账号
opOrderResult.data.order_contact = opOrderResult.data.delivery_content.orderContact;
// 修改并返回订单支付状 态,创建收款单
// 根据合同号获取所有订单 循环修改order_info 信息
let seaUrl = this.centerOrderUrl + 'opaction/opPayOrder/getOrderListByOrderServiceNo';
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++){
params.orderNo = orderList[i].orderNo;
// 这里修改了order_info的状态(status/paytime等)
var orderUrl = this.centerOrderUrl + "opaction/opPayOrder/receivePayCallBackNotifyByChannel";
var opOrderResult = await this.restPostUrl(params, orderUrl);
if (opOrderResult.status != 0) {
opOrderResult.data = null;
continue;
}
if(!opOrderResult.data){
// return opOrderResult;
continue;
}
opOrderResult.data.appInfo = {
uapp_id: appInfo.uapp_id,
uapp_key: appInfo.uapp_key,
app_code: appInfo.app_code,
app_name: appInfo.app_name
};
opOrderResult.data.userInfo = {
channel_userid: opOrderResult.data.order_info.channelUserId,
channel_username: opOrderResult.data.order_info.channelUserId,
channel_nickname: opOrderResult.data.order_info.channelUserId
};
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_time = params.payTime;//付款时间
opOrderResult.data.order_info.pay_payer_bank_no = params.buyer_email || "";//付款账号
opOrderResult.data.order_contact = opOrderResult.data.delivery_content.orderContact;
var pobj = {
appInfo: opOrderResult.data.appInfo,
actionBody: opOrderResult.data
}
var pobj = {
appInfo: opOrderResult.data.appInfo,
actionBody: opOrderResult.data
}
// 推送
this.utilsPushSve.pushBusInfo(pobj, "pushOrder", 0);
if(['icpsq','edisq'].includes(opOrderResult.data.product_info.channel_item_code)){
this.utilsPushSve.aliBusiness2Delivery(pobj, "pushDeliveryOrder");
// 推送
this.utilsPushSve.pushBusInfo(pobj, "pushOrder", 0);
// opOrderResult.data = null;
// return opOrderResult;
}
opOrderResult.data = null;
return opOrderResult;
return system.getResultSuccess();
} catch (e) {
// await this.cacheManager["TlPayLocker"].release(params.orderNo);
this.logCtl.error({
......@@ -1242,17 +1252,6 @@ class UtilsOrderService extends AppServiceBase {
if (actionBody.quantity !=actionBody.deliveryData.nclones.length || Number(actionBody.quantity) !=actionBody.deliveryData.nclones.length) {
return system.getResult(null, "订单数量有误,100030");
}
pobj.actionType = "getProductDetail";
var url = settings.centerAppUrl() + "action/opProduct/springBoard";
var productItemResult = await this.restPostUrl(pobj, url);
if (productItemResult.status != 0) {
return productItemResult;
}
pobj.actionBody.product_info = productItemResult.data;
pobj.actionType = "getProductInterface";
pobj.actionBody.product_id = productItemResult.data.id;
var productItemInterfaceResult = await this.restPostUrl(pobj, url);
pobj.actionBody.product_info.interface_info = productItemInterfaceResult.data;
let nclones = actionBody.deliveryData.nclones;//大项集合
let product_item = [];//产品项
for(let i = 0;i < nclones.length ; i ++){
......@@ -1266,7 +1265,6 @@ class UtilsOrderService extends AppServiceBase {
actionBody.totalSum = 0;
actionBody.quantity = 1;
actionBody.deliveryData.nclones = [nclone]
var verifyResult = await this.isOrderVerify(pobj, pobj.actionBody);
actionBody.payTotalSum = actionBody.totalSum;
let saveResult = await this.addOrder(pobj,actionBody);
if(saveResult.status !=0){
......
......@@ -125,5 +125,49 @@ class UtilsPushService extends AppServiceBase {
return await this.disposePushResultFail(pobj, errorResult, "数据推送异常-->reflexAction-->errorResult", this.pushlogFailType.FAILLOG);
}
}
//---------百度---zhuangbing--2020.10.28------start--------------------------------------------
async baiduBusiness2Fq(pobj, opType) {//供业务调用,在代码中调用,不在db中做配置进行调用
pobj.actionType = "getAppInterface";
var reqUrl = settings.centerAppUrl() + "action/opProduct/springBoard";
var productItemInterfaceResult = await this.restPostUrl(pobj, reqUrl);
pobj.interface_info = productItemInterfaceResult.data;
//日志记录
this.logCtl.info({
appid: pobj.appInfo ? pobj.appInfo.uapp_id || "" : "",
appkey: pobj.appInfo ? pobj.appInfo.uapp_key || "" : "",
requestId: pobj.requestId || "",
op: "service/impl/utilsSve/utilsPushSve.js/service/app.base.js/baiduBusiness2Fq",
content: JSON.stringify(pobj),
resultInfo: productItemInterfaceResult.data ? JSON.stringify(productItemInterfaceResult.data) : "接口数据为空",
optitle: pobj.opType + "推送蜂擎获取的接口信息->baiduBusiness2Fq",
});
if (pobj.interface_info) {
await this.pushBusInfo(pobj, opType, 1);
return system.getResultSuccess();
}
return system.getResult(null, "push Fail,interface_info data is empty");
}
async baiduBusiness2Delivery(pobj, opType) {//供业务调用,在代码中调用,不在db中做配置进行调用
pobj.actionType = "getAppInterface";
var reqUrl = settings.centerAppUrl() + "action/opProduct/springBoard";
var productItemInterfaceResult = await this.restPostUrl(pobj, reqUrl);
pobj.interface_info = productItemInterfaceResult.data;
//日志记录
this.logCtl.info({
appid: pobj.appInfo ? pobj.appInfo.uapp_id || "" : "",
appkey: pobj.appInfo ? pobj.appInfo.uapp_key || "" : "",
requestId: pobj.requestId || "",
op: "service/impl/utilsSve/utilsPushSve.js/service/app.base.js/baiduBusiness2Delivery",
content: JSON.stringify(pobj),
resultInfo: productItemInterfaceResult.data ? JSON.stringify(productItemInterfaceResult.data) : "接口数据为空",
optitle: opType + "推送蜂擎获取的接口信息->baiduBusiness2Delivery",
});
if (pobj.interface_info) {
await this.pushBusInfo(pobj, opType, 1);
return system.getResultSuccess();
}
return system.getResult(null, "push Fail,interface_info data is empty");
}
//---------百度---zhuangbing--2020.10.28------end--------------------------------------------
}
module.exports = UtilsPushService;
......@@ -22,10 +22,11 @@ class UtilsUcommuneService extends AppServiceBase {
/**
* 根据优客token获取用户信息,生成userPin返回前端
* @param {*} req
* @param {*} pobj
* @param {*} actionBody userToken 为优客工厂的userToken
*/
async getUserInfo(pobj, actionBody) {
async getUserInfo(req, pobj, actionBody) {
this.logCtl.info({
optitle: "优客免登接口",
op: "center-app/app/base/service/impl/utilsSve/utilsUcommuneSve.js/getUserInfo",
......@@ -45,9 +46,9 @@ class UtilsUcommuneService extends AppServiceBase {
pobj.actionBody.nickName = result.data.name;
pobj.actionBody.mobile = result.data.mobile;
pobj.actionBody.headUrl = result.data.headImg;
pobj.actionBody.userpin = pobj.actionBody.userpin || this.getUUID();
var tmpOpResult = await this.utilsAuthSve.getLoginByUserName(pobj, pobj.actionBody);
if (tmpOpResult.status != 0 && tmpOpResult.status != 2060) {
// pobj.actionBody.userpin = pobj.actionBody.userpin || this.getUUID();//采用jwt方式封装userpin
var tmpOpResult = await this.utilsAuthSve.getLoginByUserName(req, pobj, pobj.actionBody);
if (tmpOpResult.status != 0) {
return tmpOpResult;
}
this.logCtl.info({
......
module.exports = {
PDICT: {
encrypt_key: "202006242013DDD90880",
encrypt_secret: "25455136E3BCA24335C3142C72D90990",
secret_prefix: "CENTERAPP",
token_secret_dev: "1E15FB63A004635A9BFB66BFA0637E99",//dev
token_secret_prod: "25455136E3BCA24335C3142C72D88990",//prod
webMustUserpinList: ["serviceProviderSubmitMaterial", "closeOrderDelivery", "serviceProviderNotification", "tmConfirm", "getNeedSolutionDetailByUser",
"getProgrammeInfoByChannelNeedNo", "submitIcpProgramme", "submitIcpMaterial", "acceptIcpPartnerNotification", "abolishIcpProgramme",
"addOrder", "getH5PayUrl", "getOrderQrCode", "queryOrderStatus", "getOrderInfo", "getOrderDeliveryInfo", "getOrderDetails",
"getOrderDeliveryFlowInfo", "getOrderDeliveryFlowList", "getOrderLogInfo", "updateContacts", "updateTmOrder", "delOrder", "submitProgramme",
"getProgrammeListByUser", "getProgrammeInfoByNeedNo", "abolishProgramme", "getAliPayInfo", "getPaidLogoListByUser", "getCollectibleLogoListByUser",
"collectLogo", "getLogoMaterial", "cancelCollectLogo", "icpNotify", "createName", "getNameDetail", "orderConfirm",
"orderTotalSum", "collect", "reg", "orderCheck", "getReOrderList", "getOfficalList", "addReviewList", "opSubmitNeed", "opNeedClose", "opNeedList",
"getItemByNeedNo", "opNeedDetailByChannelNo", "getNeedListUser", "manualEvaluation", "diagnosisInfo", "check", "enterpriseInfo", "diagnosisDetail",
"submitIcpIntention", "queryIntentionList", "confirmIcpIntention", "tmAccept", "tmStatus", "needBatchUpload",
"serviceSubmitOption", "submitWangwenSolution", "closeNeed", "recordLog", "recordLogList", "foodServiceSubmitOption", "submitFoodSolution",
"foodCloseNeed", "foodRecordLog", "foodRecordLogList", "getParamsFor360", "addOrderWeb", "getPayRecords", "getLoginInfo", "putUserMobileByVcode",
"putUserPwdByMobile", "icpNotifyNew"
],
apiMustUserpinList: ["submitNeed", "paySuccess", "icpNotify", "getLoginInfo", "icpNotifyNew"],
apiSecretPathList: ["/api/icp/consultation/submit","/api/icp/feedback/submit","/api/icp/order/notify"]
}
}
......@@ -3,7 +3,7 @@ var settings = {
host: "121.36.3.35",
port: 8967,
password: "Gongsibao2018",
db: 5,
db: 4,
},
database: {
dbname: "igirl_api",
......
......@@ -22,7 +22,14 @@ var settings = {
cacheprefix: "centerChannel",
usertimeout: 3600,//单位秒
basepath: path.normalize(path.join(__dirname, '../..')),
port: process.env.NODE_PORT || 4012,
port: process.env.NODE_PORT || 4012,
//记录日志地址
opNewLogUrl() {
if (this.env == 'dev') {
return "http://43.247.184.94:7200/center_channel_req_log/_doc?pretty";
}
return "http://43.247.184.94:7200/center_channel_req_log/_doc?pretty";
},
fbQueryUrl: function () {
if (this.env == 'dev' || this.env == 'test') {
return 'http://43.247.184.92:15505'
......@@ -36,7 +43,7 @@ var settings = {
} else {
return "http://sytxpublic-msgq-service/api/queueAction/producer/springBoard";
}
},
},
entProfileUrl: function () {
if (this.env == "dev") {
return "https://entprofile.gongsibao.com/";
......@@ -53,11 +60,11 @@ var settings = {
},
aliGetNamesjavaUrl: function () {
if (this.env == "dev") {
return "192.168.210.240:80/getNames";
return "http://localhost:80/getNames";
} else {
return "http://aliossjava-service/getNames";
}
},
tmtransactionUrl: function () {
if (this.env == "dev") {
......@@ -66,7 +73,7 @@ var settings = {
return "http://center-tmtransaction-service";
}
},
qifuPayAfterH5JumpUrl: function () {
if (this.env == "dev") {
return "http://tm.qifu.gongsibao.com:4012/#/home/indent_list";
......@@ -80,22 +87,22 @@ var settings = {
} else {
return "http://tm.qifu.gongsibao.com/#/home/indent_list";
}
},
},
qifuH5PayNotifyUrl: function () {
if (this.env == "dev") {
// return "http://gsb.qifu.gongsibao.com:4012/tlpay/notify";
return "http://gsb.qifu-dev.gongsibao.com/tlpay/notify"// 2020 0804 lin 修改测试环境tl回调地址
// return "http://gsb.qifu.gongsibao.com:4012/tlpay/notify";
return "http://gsb.qifu-dev.gongsibao.com/tlpay/notify"// 2020 0804 lin 修改测试环境tl回调地址
} else {
return "http://gsb.qifu.gongsibao.com/tlpay/notify";
}
},
},
qifubaoUrl: function () {//企服宝(交付系统)
if (this.env == "dev") {
return "http://xxxx:xxxx/";
} else {
return "";
}
},
},
paasUrl: function () {
if (this.env == "dev") {
return "http://p.apps.com:4001/";
......@@ -142,12 +149,12 @@ var settings = {
}
},
centerChannelUrl: function () {
if (this.env == "dev") {
return "http://60.205.209.94:4012/"
} else {
// return "channel的正式环境" 6.30修改目前只用作生成alipay/wx的通知回调地址
return "http://youke.qifu.gongsibao.com/"
}
if (this.env == "dev") {
return "http://60.205.209.94:4012/"
} else {
// return "channel的正式环境" 6.30修改目前只用作生成alipay/wx的通知回调地址
return "http://youke.qifu.gongsibao.com/"
}
},
gatewayUrl: function () {
if (this.env == "dev") {
......@@ -163,24 +170,24 @@ var settings = {
return "http://center-order-service/";
}
},
igirlWeburl: function(){
igirlWeburl: function () {
if (this.env == "dev") {
return "http://127.0.0.1:3000/";
} else {
return "http://igirl-service/";
}
},
centerCacheUrl:function(){
if(this.env=='dev'){
centerCacheUrl: function () {
if (this.env == 'dev') {
return "http://123.57.217.203:30005/";
}else{
} else {
return "http://specialprofile-service/"
}
},
fileDealUrl:function(){
if(this.env=='dev'){
fileDealUrl: function () {
if (this.env == 'dev') {
return "http://43.247.184.92:15503";
}else{
} else {
return "http://43.247.184.92:15503"
}
},
......@@ -199,7 +206,7 @@ var settings = {
return "http://43.247.184.94:7200/";
}
},
certificationUrl:function () {
certificationUrl: function () {
if (this.env == "dev") {
return "http://43.247.184.92:15506/";//
} else {
......@@ -224,18 +231,18 @@ var settings = {
if (this.env == "dev") {
return "https://m-dev.ucommune.com/"// 优客测试环境
} else {
// return "https://m.ucommune.com/"// 优客正式环境
// return "https://m.ucommune.com/"// 优客正式环境
return "https://m.ucommune.com/"// 6.29lin修改为测试环境。原因优客 目前还没有正式环境
}
},
tokenUrl360:function(){
tokenUrl360: function () {
if (this.env == "dev") {
return "https://oauth2.e.360.cn/site/token"// 360测试环境
} else {
return ""//
}
},
requestUrl360:function(){
requestUrl360: function () {
if (this.env == "dev") {
return "http://180.163.239.98:38085/"// 360测试环境
} else {
......@@ -307,25 +314,25 @@ var settings = {
};
}
},
alipay: function() {// 没有在使用 确定不需要后会去掉
return new AlipaySdk({
alipay: function () {// 没有在使用 确定不需要后会去掉
return new AlipaySdk({
// appId: payConfig.ali.appId,
// privateKey: payConfig.ali.privateKey,
// alipayPublicKey: payConfig.ali.publicKey,
// appId: payConfig.ali.appId,
// privateKey: payConfig.ali.privateKey,
// alipayPublicKey: payConfig.ali.publicKey,
});
},
wxpay: function() {// 没有在使用 确定不需要后会去掉
return WXPay({
appid: 'wx6f3ebe44defe336a',
mch_id: '1232813602',
partner_key: 'sinotone2014sinotone2014sinotone', //微信商户平台API密钥
//pfx: fs.readFileSync('./wxpay_cert.p12'), //微信商户平台证书
//pfx: "sinotone2014sinotone2014sinotone"
})
wxpay: function () {// 没有在使用 确定不需要后会去掉
return WXPay({
appid: 'wx6f3ebe44defe336a',
mch_id: '1232813602',
partner_key: 'sinotone2014sinotone2014sinotone', //微信商户平台API密钥
//pfx: fs.readFileSync('./wxpay_cert.p12'), //微信商户平台证书
//pfx: "sinotone2014sinotone2014sinotone"
})
// const config = {
// appid: 'wx6f3ebe44defe336a',
// mchid: '1232813602',
......@@ -333,15 +340,15 @@ var settings = {
// };
// return new tenpay(config);
},
paySecret: function() {
paySecret: function () {
if (this.env == "dev") {
// return "ab53dfb909e4c32a";
// return "ab53dfb909e4c32a";
return "34cdecaac35b1d8d"// 7.1之前测试环境的secret无法使用,测试/正式全部使用同一个secret
} else {
return "34cdecaac35b1d8d";// 6.29lin新增 小黑给的secret
}
},
ucommuneOperatorPhone: function() {
ucommuneOperatorPhone: function () {
if (this.env == "dev") {
return "13911391996"// 7.7修改测试环境优客 辅助/担保订单推送业务员手机号
} else {
......
......@@ -4,6 +4,7 @@
1. [验证码登录](#userPinByLgoinVcode)
1. [用户注册](#userPinByRegister)
1. [按照手机号和验证码修改密码](#putUserPwdByMobile)
1. [按照验证码修改手机号、邮箱](#putUserMobileByVcode)
1. [获取用户登录信息](#getLoginInfo)
1. [退出](#logout)
1. [飞书登录](#feishuLogin)
......@@ -161,6 +162,36 @@
```
## **<a name="putUserMobileByVcode"> 根据验证码修改手机号、邮箱</a>**
[返回到目录](#menu)
##### URL
[/web/auth/accessAuth/springBoard]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 请求头中需要增加userpin(用户登录后的凭证)的值
#### 渠道执行的类型 actionType:putUserMobileByVcode
``` javascript
{
"newMobile":"15010929366", // N 手机号
"vcode":"593555", // Y 验证码
"email":"123456" // Y 邮箱
}
```
#### 返回结果
```javascript
{
"status": 0,// 0为成功,2030为验证码错误,否则失败
"msg": "success",
"data": null,
"requestId": "1b12b0e9c190436da000386ddf693c8f"
}
```
## **<a name="logout"> 退出</a>**
......
......@@ -36,6 +36,7 @@
"express": "^4.16.2",
"express-session": "^1.15.6",
"gm": "^1.23.1",
"jsonwebtoken": "^8.5.1",
"marked": "^0.7.0",
"method-override": "^2.3.10",
"mongoose": "^5.7.1",
......
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