Commit 303d3629 by DESKTOP-7Q3CA17\86137

gsb

parent 3917150f
var system = require("../../system")
const md5 = require("MD5");
const logCtl = system.getObject("web.oplogCtl");
const moment = require("moment");
const uuidv1 = require('uuid/v1');
class GemaApi {
......@@ -11,7 +9,7 @@ class GemaApi {
this.qbgconfigSve = system.getObject("service.qbgconfigSve");
this.redisLock = system.getObject("util.redisLock");
this.idcardClient = system.getObject("util.idcardClient");
this.econtractSve = system.getObject("service.econtractSve");
}
......@@ -111,6 +109,62 @@ class GemaApi {
}
}
async sinedUser(obj, req) {
// 验证合法性
let appId = obj.appId;
let nonceStr = obj.nonceStr;
let ecid = obj.ecid || "";
let idNo = obj.idNo;
let busi = await this.qbgconfigSve.findOne({
appId: appId
});
if (!busi) {
return {
code: 1001003,
msg: "配置信息错误,请联系薪必果人员进行配置"
};
}
let signArr = [];
signArr.push("appId=" + appId);
signArr.push("ecid=" + ecid);
signArr.push("idNo=" + idNo);
signArr.push("nonceStr=" + nonceStr);
signArr.push("key=" + busi.key);
let signStr = signArr.join("&")
let sign = md5(signStr).toUpperCase();
console.log(signStr, sign);
if (sign != obj.sign) {
return {
code: 1001001,
msg: "签名失败"
};
}
let params = {
etemplate_id: ecid,
idNo: idNo.toUpperCase(),
};
try {
let user = await this.econtractSve.findSingleSignedUser(params);
let result = {
code: 0,
msg: "success",
data: user
};
return result;
} catch (e) {
let result = {
code: 500,
msg: "接口异常"
};
console.log(e.stack);
return result;
}
}
trim(o) {
if (!o) {
......
......@@ -7,6 +7,7 @@ module.exports = (db, DataTypes) => {
template_id: DataTypes.STRING,
initiator_account: DataTypes.STRING,
merchant_name: DataTypes.STRING,
ecompany_name: DataTypes.STRING,
ecompany_id: DataTypes.INTEGER,
},{
paranoid: true,//假的删除
......
......@@ -130,8 +130,9 @@ class QbgconfigService extends ServiceBase {
channel: 1,
contractName: qbg.merchant_name,
simpleFormFields: {
nameA: qbg.merchant_name,
nameA: qbg.ecompany_name,
nameB: params.idName,
unit: qbg.merchant_name,
signDateA: today,
signDateB: today
},
......@@ -160,8 +161,6 @@ class QbgconfigService extends ServiceBase {
ecompany_id: qbg.ecompany_id,
};
econtract = await this.econtractDao.create(econtract);
if (econtr && econtr.data && econtr.data.status == 0) {
econtract.eflowid = econtr.data.data.flowId;
econtract.edocid = econtr.data.data.docId;
......@@ -175,8 +174,6 @@ class QbgconfigService extends ServiceBase {
end_at.setFullYear(end_at.getFullYear() + 1);
econtract.end_at = end_at;
await econtract.save();
this.syncSign(econtract.id);
this.redisClient.rpushBCD({id: econtract.id, sve: "e"});
return this.returnjson(0, "success", {
contractId: econtract.id
});
......@@ -207,85 +204,6 @@ class QbgconfigService extends ServiceBase {
}
}
async syncSign(contractId) {
var contract = await this.dao.findById(contractId);
if (!contract) {
return null;
}
var account = await this.usereaccountDao.findById(contract.usereaccount_id);
if (!account) {
return null;
}
var user = await this.userDao.findById(account.user_id);
var busi = await this.ecompanybusiDao.findOne({
etemplate_id: contract.enttemplate_id
});
if (!account.isPush && busi && busi.postsignurl) {
var param = {
"appId": busi.appId,
"idNo": account.personsSign,
"idName": account.userName,
"bankNo": account.bankno,
"mobile": account.mobile,
"appId3rd": user.appId3rd || "",
"userCode3rd": user.userCode3rd || "",
"userId3rd": user.userId3rd || "",
"branchCode3rd": user.branchCode3rd || "",
"nonceStr": await this.getUidStr(16),
"beginDate": await this.formateTime(contract.begin_at),
"endDate": await this.formateTime(contract.end_at),
};
if (!user.userCode3rd && !user.userId3rd) {
param.openId = user.openId;
}
if (this.ydCompanyIds.indexOf(contract.entcompany_id) > -1) {
param.pbType = "eSign";
}
var signArr = [];
signArr.push("appId=" + param.appId);
signArr.push("appId3rd=" + param.appId3rd);
signArr.push("bankNo=" + param.bankNo);
signArr.push("beginDate=" + param.beginDate);
signArr.push("branchCode3rd=" + param.branchCode3rd);
signArr.push("endDate=" + param.endDate);
signArr.push("idName=" + param.idName);
signArr.push("idNo=" + param.idNo);
signArr.push("mobile=" + param.mobile);
signArr.push("nonceStr=" + param.nonceStr);
if (!user.userCode3rd && !user.userId3rd) {
signArr.push("openId=" + param.openId);
}
// if (contract.ecompany_id == 10173 || contract.ecompany_id == 10174 || contract.ecompany_id == 10175 || contract.ecompany_id == 10207) {
if (this.ydCompanyIds.indexOf(contract.entcompany_id) > -1) {
signArr.push("pbType=eSign");
}
signArr.push("userCode3rd=" + param.userCode3rd);
signArr.push("userId3rd=" + param.userId3rd);
signArr.push("key=" + busi.key);
param.sign = md5(signArr.join("&")).toUpperCase();
console.log(JSON.stringify(param));
var rs = "";
try {
var rs = await this.restClient.execPost(param, busi.postsignurl);
if (rs.stdout) {
let rsData = JSON.parse(rs.stdout);
if (rsData.code == "0" || rsData.code == "0000") {
account.isPush = true;
account.save();
}
}
return rs.stdout;
} catch (error) {
console.log(rs, "push sign url " + busi.postsignurl, "rs = " + rs);
console.log(error);
return "error";
}
}
}
}
......
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