Commit 38dd1f94 by DESKTOP-7Q3CA17\86137

gsb

parent 773f99e5
......@@ -3,6 +3,7 @@ const md5 = require("MD5");
const logCtl = system.getObject("web.oplogCtl");
const moment = require("moment");
const uuidv1 = require('uuid/v1');
class EcontractApi {
constructor() {
this.ecompanySve = system.getObject("service.ecompanySve");
......@@ -77,18 +78,18 @@ class EcontractApi {
}
// 创建模板
var newTemplate = {
ecompany_id:company.id,
name:name,
ecompanyMainId : etemplate.ecompanyMainId,
mainId:etemplate.mainId,
nameA : etemplate.nameA,
templateid:etemplate.templateid,
filekey:etemplate.filekey,//e签宝返回文件key
filepath:etemplate.filepath,//需要在后台补充
placeholderkey:etemplate.placeholderkey,//模板占位信息
isEnabled:true,
ecompany_id: company.id,
name: name,
ecompanyMainId: etemplate.ecompanyMainId,
mainId: etemplate.mainId,
nameA: etemplate.nameA,
templateid: etemplate.templateid,
filekey: etemplate.filekey,//e签宝返回文件key
filepath: etemplate.filepath,//需要在后台补充
placeholderkey: etemplate.placeholderkey,//模板占位信息
isEnabled: true,
};
newTemplate = await this.etemplateSve.create(newTemplate);
newTemplate = await this.etemplateSve.create(newTemplate);
ids.push(newTemplate.id);
} catch (e) {
console.log(e);
......@@ -99,23 +100,23 @@ class EcontractApi {
}
async addqrcodeurl(obj){
let ids = obj.ids || [];
if (!ids || ids.length == 0) {
return "no ids";
}
for (let id of ids) {
try {
var newTemplate = await this.etemplateSve.findById(id);
if (newTemplate) {
var qrcodeurl = await this.wxSve.makeQrWithScene("wxf616c0a459d66081", newTemplate.id);
newTemplate.qrcodeurl = qrcodeurl;
await newTemplate.save();
}
} catch (e) {
console.log(e, id, "addqrcodeurl");
}
}
async addqrcodeurl(obj) {
let ids = obj.ids || [];
if (!ids || ids.length == 0) {
return "no ids";
}
for (let id of ids) {
try {
var newTemplate = await this.etemplateSve.findById(id);
if (newTemplate) {
var qrcodeurl = await this.wxSve.makeQrWithScene("wxf616c0a459d66081", newTemplate.id);
newTemplate.qrcodeurl = qrcodeurl;
await newTemplate.save();
}
} catch (e) {
console.log(e, id, "addqrcodeurl");
}
}
}
async testpushContract(obj, req) {
......@@ -175,7 +176,7 @@ class EcontractApi {
}
for(var idcard in idCardList){
for (var idcard in idCardList) {
idcard = idcard.toUpperCase();
}
......@@ -400,6 +401,137 @@ class EcontractApi {
}
}
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("nonceStr=" + nonceStr);
signArr.push("idNo=" + idNo);
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.econtractSve.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;
}
}
async signingQueryLimitCon(obj, req) {
// 验证合法性
let appId = obj.appId;
let ecid = obj.ecid;
let nonceStr = obj.nonceStr;
var startId = obj.startId || 0;
var pageSize = 20;
if (!obj.appId) {
return this.returnjson(-1, "请传入appId")
}
let busi = await this.ecompanybusiSve.findOne({
appId: appId,
etemplate_id : ecid
});
if (!busi) {
return {
code: 1001003,
msg: "配置信息错误,请联系薪必果人员进行配置"
};
}
var signArr = [];
signArr.push("appId=" + busi.appId);
signArr.push("ecid=" + ecid);
signArr.push("nonceStr=" + nonceStr);
if(startId != 0){
signArr.push("startId=" + startId);
}
signArr.push("key=" + busi.key);
var sign = md5(signArr.join("&")).toUpperCase();
console.log(signArr.join("&"), sign);
if (sign != obj.sign) {
return {
code: 1001001,
msg: "签名失败"
};
}
var params = {
ecid: ecid,
startId: startId,
pageSize: pageSize,git
};
try {
var userList = await this.econtractSve.signingQueryLimitCon(params);
var result = {
code: 0,
msg: "success",
};
result.data = userList;
return result;
} catch (e) {
var result = {
code: 500,
msg: "接口异常"
};
console.log(e.stack);
//日志记录
logCtl.error({
optitle: "校验是否签约error",
op: "api/econtractApi/validContract",
content: e.stack,
clientIp: req.clientIp
});
return result;
}
}
async sinedUser(obj, req) {
// 验证合法性
let appId = obj.appId;
......@@ -505,30 +637,30 @@ class EcontractApi {
};
try {
var contractStatus = await this.econtractSve.sinedEcontractStatus(params);
var contractStatus = await this.econtractSve.sinedEcontractStatus(params);
var result = {
code: 0,
};
if(contractStatus.length == 0 ){
if (contractStatus.length == 0) {
result.msg = "未发起签约";
result.data = {
status: 0,
statusName: "未发起签约"
};
}else if(contractStatus.indexOf('2') != -1 ){
} else if (contractStatus.indexOf('2') != -1) {
result.msg = "签约完成";
result.data = {
status: 2,
statusName: "签约完成"
};
}else if(contractStatus.indexOf('3') != -1){
} else if (contractStatus.indexOf('3') != -1) {
result.msg = "签约失败";
result.data = {
status: 3,
statusName: "签约失败"
};
}else{
} else {
result.msg = "签约中";
result.data = {
status: 1,
......@@ -794,7 +926,7 @@ class EcontractApi {
signArr.push("userName=" + userName);
signArr.push("key=" + busi.key);
var calcSign = md5(signArr.join("&")).toUpperCase();
console.log("银行卡四要素验证密钥++++++++++++++++++++++++++++++》",calcSign);
console.log("银行卡四要素验证密钥++++++++++++++++++++++++++++++》", calcSign);
if (sign != calcSign) {
return {
code: 1,
......@@ -988,13 +1120,13 @@ class EcontractApi {
let busiIds = await this.etemplatebusiSve.busiIdsByTemplateId(param.ecid);
let num = await this.esettleSve.isValidAge(busiIds);
if(num) {
if (num) {
let card = await this.idcardClient.cardInfo(param.idNo);
let age = card.age || 0;
if(!age) {
if (!age) {
return this.returnjson(-1, "身份证号格式错误, 只支持18位身份证号码");
}
if(card.sex == 'male') {
if (card.sex == 'male') {
if (age < 18 || age > 60) {
return this.returnjson(-1, "签约失败,男限制18-60岁之间")
}
......@@ -1040,8 +1172,8 @@ class EcontractApi {
try {
param.idNo = param.idNo.toUpperCase();
param.bankno = param.bankno.replace(/\s*/g,"");
var key = param.idNo +"_"+ param.ecid
param.bankno = param.bankno.replace(/\s*/g, "");
var key = param.idNo + "_" + param.ecid
const id = uuidv1();
await this.redisLock.lock(key, id, 20);
var result = await this.econtractSve.autoSign(param);
......@@ -1094,13 +1226,13 @@ class EcontractApi {
let busiIds = await this.etemplatebusiSve.busiIdsByTemplateId(param.ecid);
let num = await this.esettleSve.isValidAge(busiIds);
if(num) {
if (num) {
let card = await this.idcardClient.cardInfo(param.idNo);
let age = card.age || 0;
if(!age) {
if (!age) {
return this.returnjson(-1, "身份证号格式错误, 只支持18位身份证号码");
}
if(card.sex == 'male') {
if (card.sex == 'male') {
if (age < 18 || age > 60) {
return this.returnjson(-1, "签约失败,男限制18-60岁之间")
}
......@@ -1146,8 +1278,8 @@ class EcontractApi {
try {
param.idNo = param.idNo.toUpperCase();
param.bankno = param.bankno.replace(/\s*/g,"");
var key = param.idNo +"_"+ param.ecid
param.bankno = param.bankno.replace(/\s*/g, "");
var key = param.idNo + "_" + param.ecid
const id = uuidv1();
await this.redisLock.lock(key, id, 20);
var result = await this.econtractSve.autoSign4(param);
......@@ -1196,13 +1328,13 @@ class EcontractApi {
let busiIds = await this.etemplatebusiSve.busiIdsByTemplateId(param.ecid);
let num = await this.esettleSve.isValidAge(busiIds);
if(num) {
if (num) {
let card = await this.idcardClient.cardInfo(param.idNo);
let age = card.age || 0;
if(!age) {
if (!age) {
return this.returnjson(-1, "身份证号格式错误, 只支持18位身份证号码");
}
if(card.sex == 'male') {
if (card.sex == 'male') {
if (age < 18 || age > 60) {
return this.returnjson(-1, "签约失败,男限制18-60岁之间")
}
......@@ -1248,7 +1380,7 @@ class EcontractApi {
try {
param.idNo = param.idNo.toUpperCase();
var key = param.idNo +"_"+ param.ecid
var key = param.idNo + "_" + param.ecid
const id = uuidv1();
await this.redisLock.lock(key, id, 20);
var result = await this.econtractSve.autoSigns(param);
......@@ -1363,13 +1495,13 @@ class EcontractApi {
let busiIds = await this.etemplatebusiSve.busiIdsByTemplateId(param.ecid);
let num = await this.esettleSve.isValidAge(busiIds);
if(num) {
if (num) {
let card = await this.idcardClient.cardInfo(param.idNo);
let age = card.age || 0;
if(!age) {
if (!age) {
return this.returnjson(-1, "身份证号格式错误, 只支持18位身份证号码");
}
if(card.sex == 'male') {
if (card.sex == 'male') {
if (age < 18 || age > 60) {
return this.returnjson(-1, "签约失败,男限制18-60岁之间")
}
......@@ -1412,7 +1544,7 @@ class EcontractApi {
try {
param.idNo = param.idNo.toUpperCase();
var key = param.idNo +"_"+ param.ecid
var key = param.idNo + "_" + param.ecid
const id = uuidv1();
await this.redisLock.lock(key, id, 20);
var result = await this.econtractSve.autoSignPersonalTwo(param);
......@@ -1457,13 +1589,13 @@ class EcontractApi {
let busiIds = await this.etemplatebusiSve.busiIdsByTemplateId(param.ecid);
let num = await this.esettleSve.isValidAge(busiIds);
if(num) {
if (num) {
let card = await this.idcardClient.cardInfo(param.idNo);
let age = card.age || 0;
if(!age) {
if (!age) {
return this.returnjson(-1, "身份证号格式错误, 只支持18位身份证号码");
}
if(card.sex == 'male') {
if (card.sex == 'male') {
if (age < 18 || age > 60) {
return this.returnjson(-1, "签约失败,男限制18-60岁之间")
}
......@@ -1506,7 +1638,7 @@ class EcontractApi {
try {
param.idNo = param.idNo.toUpperCase();
var key = param.idNo +"_"+ param.ecid
var key = param.idNo + "_" + param.ecid
const id = uuidv1();
await this.redisLock.lock(key, id, 20);
var result = await this.econtractSve.autoSignBankTwo(param);
......@@ -1908,9 +2040,9 @@ class EcontractApi {
}
//线下
var coids = await this.econtractofflineSve.findSignAccount(mtchId,idNoList,idNameList)
for (var coid of coids){
accountMap3[coid.id_name + "_" +coid.id_no] = 1;
var coids = await this.econtractofflineSve.findSignAccount(mtchId, idNoList, idNameList)
for (var coid of coids) {
accountMap3[coid.id_name + "_" + coid.id_no] = 1;
}
// 5 比对用户是否签约
......@@ -1958,7 +2090,6 @@ class EcontractApi {
}
}
module.exports = EcontractApi;
......@@ -948,6 +948,45 @@ class EcontractService extends ServiceBase {
}
async signingQuerytoPer(params) {
let sql = [];
sql.push("SELECT t1.id,t1.begin_at AS beginDate,t1.end_at AS endDate,t2.userName AS idName,t2.mobile,t2.`personsSign` AS idNo,t1.completed_at AS signTime,t2.bankno AS bankNo,t1.fileurl AS fileUrl ")
sql.push("FROM c_econtract t1 INNER JOIN p_user_eaccount t2 ON t1.`usereaccount_id` = t2.`id` ")
sql.push("WHERE t1.`etemplate_id` = :ecid AND t1.`eflowstatus` = '2' AND t1.`end_at` >= NOW() AND t2.`personsSign` = :idNo ")
if (params.userName) {
sql.push("AND t2.userName = :userName");
}
let list = await this.dao.customQuery(sql.join(" "), params);
if (!list || list.length == 0) {
return null;
}
for (var 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];
}
async signingQueryLimitCon(params) {
var 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,t1.fileurl AS fileUrl");
sql.push("FROM c_econtract t1");
sql.push("INNER JOIN p_user_eaccount t2 ON t1.`usereaccount_id` = t2.`id`");
sql.push("WHERE t1.`etemplate_id` = :ecid AND t1.id > :startId AND t1.`eflowstatus` = '2' AND t1.`end_at`>= NOW()");
sql.push("ORDER BY t1.id ASC LIMIT :pageSize ");
var list = await this.dao.customQuery(sql.join(" "), params);
for (var 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;
}
async sinedEcontractStatus(params) {
var sql = "SELECT * FROM c_econtract WHERE usereaccount_id IN ( SELECT id FROM p_user_eaccount WHERE personsSign = :idNo) AND etemplate_id = :etemplate_id";
......
......@@ -8,6 +8,8 @@ var settings = {
redis: {
host: "39.107.234.14",
port: 6379,
password: "123123",
db: 11,
},
database: {
dbname: "bpo",
......
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