Commit ae70fd8c by 王昆

gsb

parent dca4aa73
var system = require("../../system")
const md5 = require("md5");
class BpWXSignApi {
constructor() {
this.cwxsignapiSve = system.getObject("service.cwxsignapiSve");
this.redisClient = system.getObject("util.redisClient");
this.cwxsigninfoSve = system.getObject("service.cwxsigninfoSve");
this.utilesignbaoSve = system.getObject("service.utilesignbaoSve");
this.ecompanySve = system.getObject("service.ecompanySve");
this.etemplateSve = system.getObject("service.etemplateSve");
this.econtractSve = system.getObject("service.econtractSve");
this.dkcompanySve = system.getObject("service.dkcompanySve");
this.dktemplateSve = system.getObject("service.dktemplateSve");
this.dkcontractSve = system.getObject("service.dkcontractSve");
this.EXCEPT_KEYS = ['sign', 'idName'];
}
trim(o) {
if(!o) {
return "";
}
return o.toString().trim();
}
async getSignedUser(obj, req) {
// 验证合法性
let p = {
appId: this.trim(obj.appId),
nonceStr: this.trim(obj.nonceStr),
ecid: Number(obj.ecid || 0),
idNo: this.trim(obj.idNo),
};
let api = await this.cwxsignapiSve.findOne({app_id: p.appId, ecid: p.ecid});
if (!api) {
return {
code: 1001003,
msg: "配置信息错误,请联系薪必果人员进行配置"
};
}
let keys = Object.keys(p).sort();
let signArr = [];
for (let k = 0; k < keys.length; k++) {
let tKey = keys[k];
if (this.EXCEPT_KEYS.indexOf(tKey) == -1 && p[tKey]) {
signArr.push(tKey + "=" + p[tKey]);
}
}
let signStr = signArr.join("&") + "&key=" + api.app_secret;
let sign = md5(signStr).toUpperCase();
console.log(obj.sign, signStr, sign);
if (sign != obj.sign) {
return {
code: 1001001,
msg: "签名失败"
};
}
try {
if (api.app_type == 1) {
let user = await this.dkcontractSve.findSingleSignedUser({
dktemplate_id: p.ecid,
idNo: p.idNo.toUpperCase(),
});
let result = {
code: 0,
msg: "success",
data: user
};
return result;
} else {
return {
code: -1,
msg: "暂未提供,工程师正在紧急加班开发"
};
}
} catch (e) {
let result = {
code: 500,
msg: "接口异常"
};
console.log(e.stack);
return result;
}
}
}
module.exports = BpWXSignApi;
...@@ -24,6 +24,7 @@ class CWxSignApiCtl extends CtlBase { ...@@ -24,6 +24,7 @@ class CWxSignApiCtl extends CtlBase {
this.dkcontractSve = system.getObject("service.dkcontractSve"); this.dkcontractSve = system.getObject("service.dkcontractSve");
this.bankthreelogSve = system.getObject("service.bankthreelogSve"); this.bankthreelogSve = system.getObject("service.bankthreelogSve");
this.redisLock = System.getObject("util.redisLock");
this.EXCEPT_KEYS = ['sign', 'idName']; this.EXCEPT_KEYS = ['sign', 'idName'];
} }
...@@ -168,7 +169,7 @@ class CWxSignApiCtl extends CtlBase { ...@@ -168,7 +169,7 @@ class CWxSignApiCtl extends CtlBase {
signInfo = await this.cwxsigninfoSve.create(signInfo); signInfo = await this.cwxsigninfoSve.create(signInfo);
// 异步签约 // 异步签约
await this.doSign(api, signInfo, params); this.doSign(api, signInfo, params);
// openId回调 // openId回调
let rs = {}; let rs = {};
......
...@@ -753,6 +753,28 @@ class DKcontractService extends ServiceBase { ...@@ -753,6 +753,28 @@ class DKcontractService extends ServiceBase {
}); });
} }
async findSingleSignedUser(params) {
let sql = [];
sql.push("SELECT t1.id,t1.begin_at as beginDate,t1.end_at as endDate,");
sql.push("t2.userName AS idName, t2.mobile ,t2.`personsSign` AS idNo, t1.completed_at AS signTime, t2.bankno AS bankNo,");
sql.push("t1.fileurl AS fileUrl");
sql.push("FROM c_dkcontract t1");
sql.push("INNER JOIN p_user_eaccount t2 ON t1.`usereaccount_id` = t2.`id`");
sql.push("WHERE t1.`dktemplate_id` = :dktemplate_id AND t1.`eflowstatus` = '2' AND t1.`end_at`>= NOW()");
sql.push("AND t2.`personsSign` = :idNo");
sql.push("ORDER BY t1.id ASC LIMIT 1");
let list = await this.dao.customQuery(sql.join(" "), params);
if (!list || list.length == 0) {
return null;
}
for (let item of list) {
item.signTime = await this.formateTime(item.signTime);
item.beginDate = await this.formateTime(item.beginDate);
item.endDate = await this.formateTime(item.endDate);
}
return list[0];
}
returnjson(code, msg, data) { returnjson(code, msg, data) {
return { return {
code: code, code: code,
......
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