Commit b9209ea6 by 王昆

'测试代码提交'

parent 5e07bf8e
......@@ -295,6 +295,7 @@ class EcontractApi {
userId3rd: userId,
userCode3rd: userCode,
branchCode3rd: branchCode,
etemplate_id:busi.etemplate_id,
};
try {
......
var system = require("../../system")
const md5 = require("MD5");
const uuidv1 = require('uuid/v1');
class SignContractApi {
constructor() {
this.redisLock = system.getObject("util.redisLock");
this.dkcontractSve = system.getObject("service.dkcontractSve");
this.idcardClient = system.getObject("util.idcardClient");
this.esettleSve = system.getObject("service.esettleSve");
this.etemplatebusiSve = system.getObject("service.etemplatebusiSve");
this.ecompanybusiSve = system.getObject("service.ecompanybusiSve");
}
//签约完成参数:
//专票(三要素)
//普票(二要素)
async signParams(pobj) {
// 处理参数
var param = {
ecid: this.trim(pobj.ecid),
appId: this.trim(pobj.appId),
idName: this.trim(pobj.idName),
mobile: this.trim(pobj.mobile),
idNo: this.trim(pobj.idNo),
bankno: this.trim(pobj.bankno),
nonceStr: this.trim(pobj.nonceStr),
userId: this.trim(pobj.userId),
sign: this.trim(pobj.sign),
fileurl: this.trim(pobj.fileurl)
};
// 查appId关联key
var busi = await this.ecompanybusiSve.findOne({
appId: param.appId,
etemplate_id:param.ecid
});
if (!busi || !busi.key) {
return this.returnjson(1001003, "配置信息错误,请联系薪必果人员进行配置");
}
if (!param.ecid) {
return this.returnjson(-1, "请传入薪必果提供的ecid")
}
if (!param.appId) {
return this.returnjson(-1, "请传入薪必果提供的appId")
}
if (!param.idName) {
return this.returnjson(-1, "请提供该用户姓名")
}
if (!param.idNo) {
return this.returnjson(-1, "请提供该用户身份证号")
}
if (!await this.idcardClient.checkIDCard(param.idNo)) {
return this.returnjson(-1, "身份证格式不正确");
}
if (!param.nonceStr) {
return this.returnjson(-1, "请提供随机码")
}
if (!param.fileurl) {
return this.returnjson(-1, "请提供签约合同地址")
}
// 签名
var signArr = [];
var keys = Object.keys(param).sort();
for (var i = 0; i < keys.length; i++) {
var k = keys[i];
var v = param[k];
if (!k || !v || k == 'sign') {
continue;
}
signArr.push(k + "=" + v);
}
var signStr = signArr.join("&") + "&key=" + busi.key;
var sign = md5(signStr).toUpperCase();
console.log('dkcontractApi---autoSign--签名', param.sign, signStr, sign);
if (param.sign != sign) {
return this.returnjson(1001001, "签名错误");
}
try {
param.idNo = param.idNo.toUpperCase();
var key = param.idNo + "_" + param.ecid
const id = uuidv1();
await this.redisLock.lock(key, id, 20);
var result = await this.dkcontractSve.signParams(param);
await this.redisLock.unLock(key, id);
return result;
} catch (error) {
console.log(error);
}
}
async signingQuerytoPer(obj, req) {
let appId = obj.appId;
let ecid = obj.ecid;
let nonceStr = obj.nonceStr;
let userName = obj.userName;
let idNo = obj.idNo;
let busi = await this.ecompanybusiSve.findOne({
appId: appId,
etemplate_id : ecid
});
if (!busi) {
return {
code: 1001003,
msg: "配置信息错误,请联系薪必果人员进行配置"
};
}
let signArr = [];
signArr.push("appId=" + appId);
signArr.push("ecid=" + ecid);
signArr.push("idNo=" + idNo);
signArr.push("nonceStr=" + nonceStr);
if(userName){
signArr.push("userName=" + userName);
}
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: "签名失败"};
}
try {
let user = await this.dkcontractSve.signingQuerytoPer({ecid:ecid,userName:userName,idNo : idNo});
let result = {
code: 0,
msg: "success",
data: user
};
return result;
} catch (e) {
let result = {
code: 500,
msg: "接口异常"
};
console.log(e.stack);
return result;
}
}
returnjson(code, msg, data) {
return {
code: code,
msg: msg,
data: data || null
}
}
trim(o) {
if (!o) {
return "";
}
return o.toString().trim();
}
}
module.exports = SignContractApi;
......@@ -21,7 +21,7 @@ class DKSignCtl {
this.eSignBaoRedirectBossUrl = settings.apiconfig.eSignBaoRedirectBossUrl();
}
async logints(req) {
try {
// 日志记录
......@@ -37,7 +37,7 @@ class DKSignCtl {
var dktemplate = await this.dktemplateSve.getInfo(tid);
var domain = "http://bpohhr.gongsibao.com";
// var domain = "http://192.168.18.125:3000";
//var domain = "127.0.0.1:3001";
if(!dktemplate || !dktemplate.dkaggreement) {
return domain + "/errpage?errmsg=" + encodeURIComponent(encodeURIComponent("参数错误"));
}
......@@ -199,7 +199,7 @@ class DKSignCtl {
return system.getErrResult2(tt.message);
}
}
var params = {
thirdId: eaccount.eaccountid,
name: pobj.userName,
......@@ -213,16 +213,16 @@ class DKSignCtl {
params.thirdId = "gsbts_" + uuidv4(); //咱们的唯一码-onlycode
eaccount.isPush = false;
}
if (bool) {
eaccount.mobile = pobj.mobile;
eaccount.userName = pobj.userName;
eaccount.personsSign = pobj.personsSign;
eaccount.bankno = pobj.bankno;
await eaccount.save();
}
if (isNeedCreate) {
// 通过手机号,姓名,身份证,获取e签宝 accountid
var tt = await this.utilesignbaoSve.createAccountId(params, "userCtl");
......@@ -233,7 +233,7 @@ class DKSignCtl {
await eaccount.save();
}
}
logCtl.info({
optitle: "电子签更新用户",
op: "base/controller/impl/dksignCtl.js",
......@@ -243,7 +243,7 @@ class DKSignCtl {
return system.getResult2(eaccount);
} catch (error) {
console.log(error);
}
}
};
async getAccount(qobj, pobj, req) {
......@@ -286,6 +286,7 @@ class DKSignCtl {
"usereaccount_id": eaccount_id,
"eflowstatus": "1"
});
if (!contract) {
contract = {
name: dkcompany.name,
......@@ -302,26 +303,46 @@ class DKSignCtl {
} else {
}
var signdate = moment().format("YYYY/MM/DD");
var params = {
templateId: dkaggreement.templateid, //模板id,由创建模板接口调用返回的templateId 必填
name: dkcompany.name, //合同模板名称 必填
simpleFormFields: {
nameA: dkcompany.name, //甲方 必填
addressA: dkcompany.addr, // 甲方地址
phoneA: dkcompany.phone, // 甲方电话
nameB: eaccount.userName, //乙方姓名 必填
phoneB: eaccount.mobile, //乙方电话 必填
if(dktemplate.isnew == 1){
var params = {
templateId: dkaggreement.templateid, //模板id,由创建模板接口调用返回的templateId 必填
name: dkcompany.name, //合同模板名称 必填
nameC: eaccount.userName, // 已方姓名
phoneC: eaccount.mobile, // 乙方电话
idcardC: eaccount.personsSign, // 乙方身份证
banknoC: eaccount.bankno, // 乙方银行卡号
simpleFormFields: {
nameA: dkcompany.name, //甲方 必填
addressA: dkcompany.addr, // 甲方地址
phoneA: dkcompany.phone, // 甲方电话
nameB: eaccount.userName, //乙方姓名 必填
phoneB: eaccount.mobile, //乙方电话 必填
nameC: eaccount.userName, // 已方姓名
phoneC: eaccount.mobile, // 乙方电话
idcardC: eaccount.personsSign, // 乙方身份证
banknoC: eaccount.bankno, // 乙方银行卡号
signdate: signdate, // 签约日期
}
};
}else {
var params = {
templateId: dkaggreement.templateid, //模板id,由创建模板接口调用返回的templateId 必填
name: dkcompany.name, //合同模板名称 必填
simpleFormFields: {
nameA: dkcompany.name, //甲方 必填
nameB: eaccount.userName, //乙方姓名 必填
iphone: eaccount.mobile, // 乙方电话
idNo: eaccount.personsSign, // 乙方身份证
signDateA: signdate,
signDateB : signdate,// 签约日期
}
};
}
signdate: signdate, // 签约日期
}
};
var ebaoAccountId = eaccount.eaccountid; //签署人账户id-- 必填
var thirdOrderNo = "dk_" + contract.id; //第三方流水号,通知回调使用---选填
var eBaoRedirectBossUrl = "https://bpohhr.gongsibao.com/tsign?ecid=" + dktemplate.id + "&cb=1#/ecompany/tsigned";
......
......@@ -323,11 +323,22 @@ class EcontractCtl extends CtlBase {
simpleFormFields: {
nameA: nameA, //甲方 必填
nameB: eaccount.userName, //乙方 必填
unit: company.name, //合作单位(国美) 必填---------------------------超出长度风险---目前不知多少长度
signDateA: today, //甲方签约日期 必填
signDateB: today //乙方签约日期 必填
}
};
if(etemplate.isnew == 1 ){
params.simpleFormFields.unit = company.name; //合作单位(国美) 必填---------------------------超出长度风险---目前不知多少长度
}
if(etemplate.isnew != 1){
console.log("==============================================新合同",eaccount)
params.simpleFormFields.iphone =eaccount.mobile;
params.simpleFormFields.idNo =eaccount.personsSign;
}
var ebaoAccountId = eaccount.eaccountid; //签署人账户id-- 必填
var thirdOrderNo = contract.id; //第三方流水号,通知回调使用---选填
var eBaoRedirectBossUrl = this.eSignBaoRedirectBossUrl + "?ecid=" + etemplate.id + "&cb=1#/ecompany/signed";
......
module.exports = (db, DataTypes) => {
return db.define("dktemplate", {
isnew : DataTypes.INTEGER,
dkaggreement_id: DataTypes.INTEGER,
dkcompany_id: DataTypes.INTEGER,
name: DataTypes.STRING(50),
......
......@@ -8,7 +8,7 @@ module.exports = (db, DataTypes) => {
ecompanyMainId: DataTypes.INTEGER,
mainId: DataTypes.STRING(64),
nameA: DataTypes.STRING(50),
isnew : DataTypes.INTEGER,
templateid: {
type:DataTypes.STRING, // e签宝模板id
defaultValue: ""
......
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