Commit d9c7f676 by 王昆

gsb

parent 4a20f09d
#!/bin/bash #!/bin/bash
FROM registry.cn-beijing.aliyuncs.com/hantang/node105:v2 FROM registry.cn-beijing.aliyuncs.com/hantang/node105:v2
MAINTAINER jy "jiangyong@gongsibao.com" MAINTAINER jy "jiangyong@gongsibao.com"
ADD bpo-web /apps/bpo-web/ ADD xgg-pc /apps/xgg-pc/
WORKDIR /apps/bpo-web/ WORKDIR /apps/xgg-pc/
RUN cnpm install -S RUN cnpm install -S
CMD ["node","/apps/bpo-web/main.js"] CMD ["node","/apps/xgg-pc/main.js"]
......
{
"git.ignoreLimitWarning": true
}
\ No newline at end of file
const system=require("../system");
class ApiBase{
constructor(){
this.cacheManager=system.getObject("db.cacheManager");
}
async checkKey(appKey){
let key = await this.cacheManager["InitAppKeyCache"].getAppKeyVal(appKey);
if(key==null){
return system.getResult2(null,null,"ok","请检查您的授权KEY");
}
}
}
module.exports=ApiBase;
var system = require("../../system")
const md5 = require("MD5");
const logCtl = system.getObject("web.oplogCtl");
var svgCaptcha = require('svg-captcha');
const uuidv4 = require('uuid/v4');
class EcontractApi {
constructor() {
this.redisClient = system.getObject("util.redisClient");
}
async randomkey() {
return uuidv4();
}
async captcha(qobj) {
var uuid = uuidv4();
var key = uuid.replace(/\-/g,"");
var options = {size : 4, noise : 1, ignoreChars: '0o1i'};
options.width = qobj.width || 120;
options.height = qobj.height || 32;
options.background = qobj.background || "#E8E8E8";
var redisKey = "captcha_" + key;
var cap = svgCaptcha.create(options);
await this.redisClient.setWithEx(redisKey, cap.text, 60);
return system.getResult2({
key : key,
captcha : cap.data,
});
}
}
module.exports = EcontractApi;
\ No newline at end of file
var system = require("../../system")
var moment = require("moment");
const md5 = require("MD5");
const logCtl = system.getObject("web.oplogCtl");
class EcontractApi {
constructor() {
this.esettleSve = system.getObject("service.esettleSve");
this.restClient = system.getObject("util.restClient");
this.redisClient = system.getObject("util.redisClient");
this.outTradeNoKey = 'bpo_outtradeno';
}
async settleCommission(obj, req) {
this.esettleSve.settleCommission(obj.begin, obj.end);
}
async testCardValid(obj, req) {
var url = "https://payadmin.gongsibao.com/merchant/bank/support";
var params = {
appId: obj.appId,
accNo: obj.accNo,
mchtId: obj.mchtId,
nonceStr: await this.getUidStr(16),
signType: "MD5",
}
var signArr = [];
signArr.push("accNo=" + params.accNo || "");
signArr.push("appId=" + params.appId || "");
signArr.push("mchtId=" + params.mchtId || "");
signArr.push("nonceStr=" + params.nonceStr || "");
signArr.push("signType=" + params.signType || "");
signArr.push("key=ea4eafab8be1d0242399f39649bfabe0");
params.sign = md5(signArr.join("&")).toUpperCase();
// "appId": "10000000000",
// "mchtId": "1",
try {
var t1 = new Date().getTime();
var rs = await this.restClient.execPost(params, url);
var t2 = new Date().getTime();
console.log((t2 - t1), rs, "-------------------- use time & rs-----------------");
return rs;
} catch (error) {
return error.stack;
}
}
async getSign(obj, req) {
return md5(obj.key || "").toUpperCase();
}
async pushSettle(obj, req) {
try {
var signArr = [];
signArr.push("accBank=" + obj.accBank || "");
signArr.push("accNo=" + obj.accNo || "");
signArr.push("accType=" + obj.accType || "");
signArr.push("addedValueTax=" + obj.addedValueTax || 0);
signArr.push("amt=" + obj.amt || 0);
signArr.push("appid=" + obj.appid || "");
signArr.push("companyName=" + obj.companyName || "");
signArr.push("credit_code=" + obj.credit_code || "");
signArr.push("mchtId=" + obj.mchtId || "");
signArr.push("nonceStr=" + obj.nonceStr || "");
signArr.push("outTradeNo=" + obj.outTradeNo || "");
signArr.push("payNo=" + obj.payNo || "");
signArr.push("serviceRate=" + obj.serviceRate || 0);
signArr.push("serviceTax=" + obj.serviceTax || 0);
signArr.push("tradeTime=" + obj.tradeTime || "");
signArr.push("key=wxdc08c441c9fdb7a7");
var sign = md5(signArr.join("&")).toUpperCase();
if (obj.sign != sign) {
return {
code: 1001001,
msg: "签名失败",
};
}
var settle = {
appid: obj.appid,
mchtId: obj.mchtId,
outTradeNo: obj.outTradeNo || "",
payNo: obj.payNo || "",
companyName: obj.companyName || "",
credit_code: obj.credit_code || "",
ecompany_id: 0,
amt: obj.amt || 0,
serviceRate: obj.serviceRate || 0,
serviceTax: obj.serviceTax || 0,
addedValueTax: obj.addedValueTax || 0,
tradeTime: obj.tradeTime || "",
accType: obj.accType || 0,
accBank: obj.accBank || 0,
accNo: obj.accNo || 0,
};
return await this.esettleSve.saveSettle(obj);
} catch (e) {
var result = {
code: 500,
msg: "接口异常"
};
console.log(e.stack);
return result;
}
}
async doSettleLogic(obj, req) {
return await this.esettleSve.doSettleLogic(1);
}
async busiAccount() {
var result = {};
try {
var param = {
"appId": "1103817785",
"sign": "439BAC772B4ECF9B7D9BB2EBB4A1C438",
"mchtId": "1103817785420820481",
"signType": "MD5",
"nonceStr": await this.getUidStr(16)
}
var signArr = [];
signArr.push("appId=" + param.appId);
signArr.push("mchtId=" + param.mchtId);
signArr.push("nonceStr=" + param.nonceStr);
signArr.push("signType=" + param.signType);
signArr.push("key=ca47edd3ae8bac3f7a68d8126d891f52");
param.sign = md5(signArr.join("&")).toUpperCase();
console.log(param);
try {
let rs = await this.restClient.execPost(param, "https://pay.gongsibao.com/merchant/busiAccount/query");
if (rs && rs.stdout) {
var stdout = JSON.parse(rs.stdout) || {};
var code = stdout.code;
if (code == 0) {
code = 1;
} else if (code == 1) {
code = 0;
} else {}
result.code = code;
result.msg = stdout.msg;
result.data = stdout.data;
} else {
result.code = 0;
result.msg = '结算接口返回空';
}
} catch (error) {
result.code = 500;
result.msg = '结算接口异常';
}
} catch (error) {
result.code = 500;
result.msg = '服务异常';
}
return result;
}
async transfer(obj, req) {
var result = {};
var bizs = obj.bizs;
var bizContent = [];
if(!bizs || bizs.length == 0) {
result.code = 0;
result.msg = "请填写发薪人员";
return result;
}
for (var biz of bizs) {
bizContent.push({
"note": "测试",
"idType": "00",
"idName": biz.idName,
"seqNo": "1001",
"accNo": biz.accNo,
"mobile": biz.mobile,
"amt": Number(biz.amt || 100),
"accType": "00",
"idNo": biz.idNo
});
}
var outTradeNo = await this.redisClient.get(this.outTradeNoKey);
if (!outTradeNo) {
outTradeNo = 123456579921;
} else {
outTradeNo = Number(outTradeNo) + 1;
}
this.redisClient.set(this.outTradeNoKey, outTradeNo.toString());
var now = moment().add(30, 'seconds').format('YYYYMMDDHHmmss');
var param = {
"appId": "1103817785",
"currency": "CNY",
"mchtId": "1103817785420820481",
"nonceStr": "nonceStrnonceStr",
"notityUrl": "http://bpohhr.gongsibao.com/api/econtractApi/transferNotify",
"outTradeNo": outTradeNo,
"signType": "MD5",
"tradeTime": now,
"bizContent": bizContent
}
// now
var signArr = [];
signArr.push("appId=" + param.appId);
signArr.push("currency=" + param.currency);
signArr.push("mchtId=" + param.mchtId);
signArr.push("nonceStr=" + param.nonceStr);
signArr.push("notityUrl=" + param.notityUrl);
signArr.push("outTradeNo=" + param.outTradeNo);
signArr.push("signType=" + param.signType);
signArr.push("tradeTime=" + param.tradeTime);
signArr.push("key=ca47edd3ae8bac3f7a68d8126d891f52");
param.sign = md5(signArr.join("&")).toUpperCase();
console.log(param);
try {
let rs = await this.restClient.execPost(param, "https://pay.gongsibao.com/merchant/order/transfer");
console.log(rs);
if (rs && rs.stdout) {
var stdout = JSON.parse(rs.stdout) || {};
var code = stdout.code;
if (code == 0) {
code = 1;
} else if (code == 1) {
code = 0;
} else {}
result.code = code;
result.msg = stdout.msg;
} else {
result.code = 0;
result.msg = '结算接口返回空';
}
} catch (error) {
result.code = 500;
result.msg = '结算接口异常';
}
// [{
// "note": "测试",
// "idType": "00",
// "idName": "任智军",
// "seqNo": "1001",
// "accNo": "6225880170506167",
// "mobile": "13488845635",
// "amt": 100,
// "accType": "00",
// "idNo": "230828197712268019"
// }],
return result;
}
async getUidStr(len, radix) {
var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
var uuid = [],
i;
radix = radix || chars.length;
if (len) {
for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
} else {
var r;
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
uuid[14] = '4';
for (i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | Math.random() * 16;
uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
}
}
}
return uuid.join('');
}
}
module.exports = EcontractApi;
\ No newline at end of file
var system = require("../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../config/settings");
const logCtl = system.getObject("web.oplogCtl");
class eSignBaoApi extends ApiBase {
constructor() {
super();
this.utilesignbaoSve = system.getObject("service.utilesignbaoSve");
this.econtractSve = system.getObject("service.econtractSve");
this.dkcontractSve = system.getObject("service.dkcontractSve");
}
//e签宝签署回调=post
/*
action:标记该通知的业务类型
action=SIGN_FLOW_UPDATE,5.9.3 签署人签署状态更新通知,e签宝签署状态变化完成后调用(拒签、签署完成),签署人签署完成,调用e签宝归档流程
action=SIGN_FLOW_FINISH,5.9.4 签署任务结束通知,由调用【**归档流程**】后回调此回调
*/
async noticeCallback(obj, req) {
//日志记录
logCtl.info({
optitle: "e签宝签署回调信息info",
op: "wxapplet/impl/esignbao/eSignBaoCallback",
content: "请求参数:" + req ? JSON.stringify(req) : "",
clientIp: req.clientIp
});
var result = {
code: 1,
message: "success",
shopNum: "",
data: {}
};
var thirdOrderNo = req.thirdOrderNo || "";
var action = req.action == null || req.action == "" || req.action == "undefined" ? "" : req.action;
var flowId = req.flowId == null || req.flowId == "" || req.flowId == "undefined" ? "" : req.flowId;
if (action == "" || flowId == "") {
result.code = -101;
result.message = "请求参数有误";
return result;
}
try {
if (action != "SIGN_FLOW_FINISH" && action != "SIGN_FLOW_UPDATE") {
result.code = -102;
result.message = "action请求参数有误";
return result;
}
var params = {
flowId: flowId
};
var contractDetails = await this.utilesignbaoSve.getContractDetails(params, "eSignBaoApplet");
if (action == "SIGN_FLOW_UPDATE") { //5.9.3 签署人签署状态更新通知,e签宝签署状态变化完成后调用(拒签、签署完成)
var signResultStatus = req.signResult == null || req.signResult == "" || req.signResult == "undefined" ? -1 : req.signResult;
if (signResultStatus >= 0) {
// 跟进回调----更新db签署人签署状态
if(thirdOrderNo.indexOf("dk_") == 0) {
this.dkcontractSve.updateCallbackStatus(req);
} else {
this.econtractSve.updateCallbackStatus(req);
}
if (signResultStatus == 2) { //签署人签署完成,调用e签宝归档流程
var archiveProcess = await this.utilesignbaoSve.archiveProcess(params, "eSignBaoApplet");
}
}
} else if (action == "SIGN_FLOW_FINISH") { //5.9.4 签署任务结束通知,由调用【**归档流程**】后回调此回调
var flowStatus = req.flowStatus == null || req.flowStatus == "" || req.flowStatus == "undefined" ? -1 : req.flowStatus;
if (flowStatus >= 0) {
//TODO:跟进回调----更新db签署流程状态
}
}
return result;
} catch (e) {
console.log(e.stack);
//日志记录
logCtl.error({
optitle: "e签宝签署回调异常error",
op: "wxapplet/impl/esignbao/eSignBaoCallback",
content: e.stack,
clientIp: req.clientIp
});
}
}
async testdk(obj, req) {
await this.dkcontractSve.updateCallbackStatus(req);
return 11111;
}
}
module.exports = eSignBaoApi;
\ No newline at end of file
var System = require("../../system")
const uuidv4 = require('uuid/v4');
const crypto = require('crypto');
const cryptoJS = require("crypto-js");
const querystring = require('querystring');
const logCtl = System.getObject("web.oplogCtl");
const fs=require("fs");
const xlsx = require('node-xlsx')
var moment = require('moment')
class TestApi {
constructor() {
this.utilesignbaoSve = System.getObject("service.utilesignbaoSve");
}
async genPosterQrcodeImg(obj) {
return await this.imghandleApi.genPosterQrcodeImg(obj.qrcode, obj.bakImg);
}
async creatCompanyAccountId(obj) { //创建企业账号
var params = {
thirdId: obj.thirdId || "owD7y5AqMWjDSru10gDacEeA9Q5g", //企业用户在对接方的账号标识字段-该字段来唯一标识一个企业用户
creatorId: obj.creatorId || "fc7d596a767b47a4874490966c7641c7", //企业创建人在 e签宝的个人账号唯一标识(宋毅accountId)
name: obj.name || "汉唐信通(北京)咨询股份有限公司", //企业名称
organCode: obj.organCode || "911101057889696760", //企业证照号(企业统一社会信用代码)
organType: obj.organType || 11, //企业账号证照类型--11为企业统一社会信用代码
legalName: obj.legalName || "宋毅", //企业法人姓名
legalIdNo: obj.legalIdNo || "341221198504218256", //企业法人身份证号
legalIdType: 19, //个人账号证件类型--19为中国大陆居民身份证
email: obj.email || "lisa@gongsibao.com" //企业邮箱
};
var tt = await this.utilesignbaoSve.creatCompanyAccountId(params, "testApi");
tt.aaa = "aaa";
console.log(tt);
return tt;
}
async importexcel() {
var names = [];
for(var i = 1; i <= 6; i++) {
try {
var filePath = "/tmp/banks"+ i +".xlsx";
console.log("----------------------------- begin "+ i +" -----------------------------");
var sheets = xlsx.parse(filePath);
if (!sheets || sheets.length == 0) {
return result;
}
var sheet = sheets[0];
if (!sheet || !sheet.data || sheet.data.length == 0) {
return result;
}
var rows = sheet.data;
for (var idx in rows) {
var cells = rows[idx];
if (!cells || cells.length < 3) {
continue;
}
var obj = {
number: cells[0],
bankName: cells[1],
bankCode: cells[2]
}
await this.ebankSve.create(obj);
}
console.log("----------------------------- end "+ i +"-----------------------------");
} catch (error) {
console.log(error.stack);
}
}
}
}
module.exports = TestApi;
\ No newline at end of file
const system=require("../system");
const settings=require("../../config/settings");
class CtlBase{
constructor(sname){
this.serviceName=sname;
this.service=system.getObject("service."+sname);
this.cacheManager=system.getObject("db.cacheManager");
this.md5 = require("MD5");
}
notify(req,msg){
if(req.session){
req.session.bizmsg=msg;
}
}
async findOne(queryobj,qobj){
var rd=await this.service.findOne(qobj);
return system.getResult2(rd,null);
}
async findAndCountAll(queryobj,obj,req){
obj.codepath=req.codepath;
if(req.session.user){
obj.uid=req.session.user.id;
obj.appid=req.session.user.app_id;
obj.onlyCode=req.session.user.unionId;
obj.ukstr=req.session.user.app_id+"¥"+req.session.user.id+"¥"+req.session.user.nickName+"¥"+req.session.user.headUrl;
}
var apps=await this.service.findAndCountAll(obj);
return system.getResult2(apps,null);
}
async refQuery(queryobj,qobj){
var rd=await this.service.refQuery(qobj);
return system.getResult2(rd,null);
}
async bulkDelete(queryobj,ids){
var rd=await this.service.bulkDelete(ids);
return system.getResult2(rd,null);
}
async delete(queryobj,qobj){
var rd=await this.service.delete(qobj);
return system.getResult2(rd,null);
}
async create(queryobj,qobj,req){
if(req && req.session && req.session.app){
qobj.app_id=req.session.app.id;
qobj.onlyCode=req.session.user.unionId;
if(req.codepath){
qobj.codepath=req.codepath;
}
}
var rd=await this.service.create(qobj);
return system.getResult2(rd,null);
}
async update(queryobj,qobj,req){
if(req && req.session && req.session.user){
qobj.onlyCode=req.session.user.unionId;
}
if(req.codepath){
qobj.codepath=req.codepath;
}
var rd=await this.service.update(qobj);
return system.getResult2(rd,null);
}
static getServiceName(ClassObj){
return ClassObj["name"].substring(0,ClassObj["name"].lastIndexOf("Ctl")).toLowerCase()+"Sve";
}
async initNewInstance(queryobj,req){
return system.getResult2({},null);
}
async findById(oid){
var rd=await this.service.findById(oid);
return system.getResult2(rd,null);
}
trim(o) {
if(!o) {
return "";
}
return o.toString().trim();
}
doTimeCondition(params, fields) {
if (!params || !fields || fields.length == 0) {
return;
}
for (var f of fields) {
if (params[f]) {
var suffix = this.endWith(f, 'Begin') ? " 00:00:00" : " 23:59:59";
params[f] = params[f] + suffix;
}
}
}
encryptPasswd(passwd) {
if(!passwd) {
throw new Error("请输入密码");
}
var md5 = this.md5(passwd + "_" + settings.salt);
return md5.toString().toLowerCase();
}
endWith(source, str){
if(!str || !source || source.length == 0 || str.length > source.length) {
return false;
}
return source.substring(source.length - str.length) == str;
}
// async doExecute(methodname,params){
// var result= await this[methodname](params);
// return system.getResult2(result,null);
// }
}
module.exports=CtlBase;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class ArticleCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(ArticleCtl));
//this.appS=system.getObject("service.appSve");
}
async findById(q,oid){
return super.findById(Number(oid.id));
}
}
module.exports=ArticleCtl;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
class AuthCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(AuthCtl));
}
async saveAuths(query,qobj,req){
var auths=qobj.aus;
var xrtn=await this.service.saveAuths(auths);
return system.getResult2(xrtn,null);
}
async findAuthsByRole(query,qobj,req){
var rolecodestrs=qobj.rolecode;
var xrtn=await this.service.findAuthsByRole(rolecodestrs);
return system.getResult2(xrtn,null);
}
}
module.exports=AuthCtl;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class CacheCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(CacheCtl));
//this.appS=system.getObject("service.appSve");
}
async initNewInstance(queryobj,qobj){
return system.getResult2({},null);
}
async delCache(queryobj,qobj){
await this.service.delCache(qobj);
return system.getResult2({},null);
}
async findOnlines(queryobj,qobj,req){
//var ms=await this.cacheManager["VisitCountCache"].findOnlines(req.session.app.appid);
var ms=await this.cacheManager["VisitCountCache"].findOnlines();
console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxxx");
console.log(ms);
return system.getResult2(ms,null);
}
async clearAllCache(queryobj,qobj){
console.log("clearAllCache===========================");
await this.service.clearAllCache(qobj);
return system.getResult2({},null);
}
}
module.exports=CacheCtl;
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class BigDataCtl {
constructor() {
//this.appS=system.getObject("service.appSve");
this.appKey = "9d9bcbb6a82f44dbbdb185afe28032bc";
this.companynamesearchApi = "https://bigdata.gongsibao.com/api/gsbicsearch/companynamesearch";
this.restClient = system.getObject("util.restClient");
}
async companySuggest(queryobj, qobj, req) {
if (!qobj.name || !qobj.name.trim()) {
return system.getResult2([], null);
}
var params = {
"appKey": this.appKey,
"companyName": qobj.name.trim()
}
let rs = await this.restClient.execPost(params, this.companynamesearchApi);
if(rs && rs.stdout) {
var obj = JSON.parse(rs.stdout) || {};
if(obj.data && obj.data.list) {
return system.getResult2(obj.data.list, null);
}
}
return system.getResult2([], null);
}
}
module.exports = BigDataCtl;
\ No newline at end of file
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
const logCtl = system.getObject("web.oplogCtl");
const moment = require("moment");
class DKaggreementCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(DKaggreementCtl));
this.utilesignbaoSve = system.getObject("service.utilesignbaoSve");
this.excelClient = system.getObject("util.excelClient");
}
async aggreements(queryobj, qobj, req) {
try {
var list = await this.service.findAll();
return system.getResult2(list);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async list(queryobj, qobj, req) {
var params = qobj.search;
try {
var page = await this.service.pageByCondition(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async info(queryobj, qobj, req) {
var id = Number(qobj.id);
try {
var info = await this.service.getInfo(id);
if (info) {
if (info.created_at) {
info.created_at = moment(info.created_at).format("YYYY-MM-DD HH:mm:ss");
}
}
return system.getResult2(info);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async mysave(queryobj, qobj, req) {
try {
var aggreement = null;
let id = qobj.id;
if (id) {
aggreement = await this.service.findById(id);
}
var oldfilepath = "";
if (aggreement) {
oldfilepath = aggreement.filepath;
//修改
aggreement.name = qobj.name || "";
aggreement.filepath = qobj.filepath || "";
aggreement.callbackurl = qobj.callbackurl || "";
aggreement.remark = qobj.remark || "";
aggreement.ctlname = qobj.ctlname || "";
aggreement.homeurl = qobj.homeurl || "";
aggreement.signinforouter = qobj.signinforouter || "";
await aggreement.save();
} else {
//新增
console.log("new++++++++++++++++++++++++++++++++++++");
aggreement = {};
aggreement.name = qobj.name || "";
aggreement.filepath = qobj.filepath || "";
aggreement.callbackurl = qobj.callbackurl || "";
aggreement.remark = qobj.remark || "";
aggreement.ctlname = qobj.ctlname || "";
aggreement.homeurl = qobj.homeurl || "";
aggreement.signinforouter = qobj.signinforouter || "";
aggreement = await this.service.create(aggreement);
}
// 调用e签宝接口生成aggreement
if (aggreement.filepath && aggreement.filepath != oldfilepath) {
try {
let aggreementRs = await this.utilesignbaoSve.createEntTemplate(aggreement.filepath, aggreement.name, "etemplateCtl");
logCtl.info({
optitle: "e签宝===>保存协议信息aggreement",
op: "app/base/controller/impl/dkaggreementCtl/mysave",
content: "参数:filepath=" + aggreement.filepath + ";name=" + aggreement.name + "; result : " + JSON.stringify(aggreementRs),
clientIp: ""
});
if (aggreementRs && aggreementRs.code == 1 && aggreementRs.data) {
aggreement.filekey = aggreementRs.data.fileKey;
aggreement.templateid = aggreementRs.data.templateId;
await aggreement.save();
} else {
}
} catch (e) {
console.error(e);
}
}
return system.getResult2(aggreement, null);
} catch (e) {
console.log("-----------------------------e");
console.log(e);
return {
code: -1
}
}
}
}
module.exports = DKaggreementCtl;
\ No newline at end of file
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
const moment = require("moment");
class DKcompanyCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(DKcompanyCtl));
this.userSve = system.getObject("service.userSve");
this.utilesignbaoSve = system.getObject("service.utilesignbaoSve");
}
async signList(queryobj, qobj, req) {
var params = qobj.search;
try {
var page = await this.service.pageByCondition(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async signSave(queryobj, qobj, req) {
try {
var rtn = null;
var dkcompany = await this.buildCompeny(qobj);
var isCreateSealKey = dkcompany.isCreateSealKey;
if (dkcompany.id) {
//修改
await dkcompany.save();
} else {
//新增
dkcompany = await this.service.create(dkcompany);
}
if(isCreateSealKey || !dkcompany.sealFileKey) {
// 创建企业印章fileKey
// var accountId = "740b19e0799a4d7abacfa1a31fb72b1e"; // 测试
var accountId = "f50d8f8cdd8d4bcda6b1aaad1d4b14bf"; // 生产
var aliasName = dkcompany.id + "-" + uuidv4();
var rs = await this.utilesignbaoSve.createEntSeal(dkcompany.sealUrl, accountId, aliasName, "dkcompanyCtl");
if(rs.code == 1) {
dkcompany.sealFileKey = rs.data.fileKey;
dkcompany.sealId = rs.data.sealId;
await dkcompany.save();
}
}
return system.getResult2(1, null);
} catch (e) {
console.log("-----------------------------e");
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async buildCompeny(qobj) {
var dkcompany = null;
if (qobj.id) {
dkcompany = await this.service.findById(qobj.id);
dkcompany.isCreateSealKey = dkcompany.sealUrl != qobj.sealUrl;
} else {
dkcompany = {isCreateSealKey: true};
}
dkcompany.name = qobj.name;
dkcompany.isEnabled = true;
dkcompany.isQuiet = true;
dkcompany.legal = qobj.legal || "";
dkcompany.phone = qobj.phone || "";
dkcompany.addr = qobj.addr || "";
dkcompany.owner_id = qobj.owner_id;
dkcompany.sealUrl = qobj.sealUrl || "";
return dkcompany;
}
async mySignList(queryobj, qobj, req) {
var params = qobj.search;
if(!req.session.myIds || req.session.myIds.length == 0) {
params.ownerIds = [req.session.user.id];
} else {
params.ownerIds = req.session.myIds;
}
try {
var page = await this.service.signPage(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async mySignSave(queryobj, qobj, req) {
try {
var dkcompany = null;
if (qobj.id) {
dkcompany = await this.service.findById(qobj.id);
}
var rtn = null;
if (dkcompany) { //修改
dkcompany.name = qobj.name;
dkcompany.encryptkey = qobj.encryptkey || "";
dkcompany.posturl = qobj.posturl || "";
dkcompany.isEnabled = qobj.isEnabled;
dkcompany.owner_id = req.session.user.id;
await dkcompany.save();
} else { //新增
var dkcompany = {};
dkcompany.name = qobj.name;
dkcompany.encryptkey = qobj.encryptkey || "";
dkcompany.posturl = qobj.posturl || "";
dkcompany.isEnabled = qobj.isEnabled;
dkcompany.owner_id = req.session.user.id;
dkcompany = await this.service.create(dkcompany);
}
return system.getResult2(dkcompany, null);
} catch (e) {
console.log("-----------------------------e");
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async suggest(queryobj, qobj, req) {
var name = this.trim(qobj.name);
if(!name) {
return system.getResult2([])
}
var ids = [];
if(qobj.ismy) {
ids.push(req.session.user.id);
}
var list = await this.service.suggest(name, ids);
return system.getResult2(list);
}
async allList(queryobj, qobj, req) {
var params = {};
var loginUser = req.session.user;
var roles = loginUser.Roles || [];
var isZC = false;
for(var r of roles) {
if(r.code == 'zcry' || r.code == 'zcgl') {
isZC = true;
break;
}
}
if(!loginUser.isAdmin && !isZC) {
if(!req.session.myIds || req.session.myIds.length == 0) {
return system.getResult2({count: 0, rows: []});
}
params.ownerIds = req.session.myIds;
}
return await this.list(queryobj, qobj, req, params);
}
async myList(queryobj, qobj, req) {
var params = {
owner_id: req.session.user.id
}
return await this.list(queryobj, qobj, req, params);
}
async list(queryobj, qobj, req, params) {
// 1待审核 2通过 3驳回
// "proxyAuditStatus": {"0":"待审核","1":"审核通过","2":"审核驳回"},
if (!qobj.search) {
qobj.search = {};
}
var auditType;
if (params) {
if (params.owner_id) {
qobj.ownerIds = [params.owner_id];
} else if(params.ownerIds) {
qobj.ownerIds = params.ownerIds;
}
}
qobj.raw = true;
var rs = await super.findAndCountAll(queryobj, qobj, req);
if (rs && rs.data && rs.data.rows) {
var ownerIds = [];
for (var row of rs.data.rows) {
if (row.updated_at) {
row.updated_at = new Date(row.updated_at).Format("yyyy-MM-dd hh:mm");
}
if (row.created_at) {
row.created_at = new Date(row.created_at).Format("yyyy-MM-dd hh:mm");
}
if (row.updated_at) {
row.updated_at = new Date(row.updated_at).Format("yyyy-MM-dd hh:mm");
}
if (row.owner_id) {
ownerIds.push(row.owner_id);
}
}
var usermap = await this.userSve.findMapByIds(ownerIds);
if (ownerIds.length > 0) {
for (var row of rs.data.rows) {
if (row.owner_id) {
row.owner = usermap["id_" + row.owner_id];
}
}
}
}
return rs;
}
async info(queryobj, qobj, req) {
var id = qobj.id;
try {
var info = await this.service.getInfo(id);
if(info) {
if(info.owner_id) {
info.owner = await this.userSve.findById(info.owner_id);
}
if(info.created_at) {
info.created_at = moment(info.created_at).format("YYYY-MM-DD HH:mm:ss");
}
}
return system.getResult2(info);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
}
module.exports = DKcompanyCtl;
\ No newline at end of file
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
const logCtl = system.getObject("web.oplogCtl");
const moment = require("moment");
class DKtemplateCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(DKtemplateCtl));
this.utilesignbaoSve = system.getObject("service.utilesignbaoSve");
this.dkcontractSve = system.getObject("service.dkcontractSve");
this.dkcompanySve = system.getObject("service.dkcompanySve");
this.wxSve = system.getObject("service.wxSve");
this.dkaggreementSve = system.getObject("service.dkaggreementSve");
this.excelClient = system.getObject("util.excelClient");
}
async findReadyContracts(q, obj, req) {
// obj = obj || {};
// obj.userId = req.session.user.id;
// // 验证companyId
// if (!obj.ecompany_id || !obj.eaccount_id) {
// return system.getResult2([]);
// }
// let sinedCompanyIds = await this.econtractSve.findUserSinedCompanyIds(Number(obj.eaccount_id));
// if (sinedCompanyIds.indexOf(Number(obj.ecompany_id)) != -1) {
// return system.getResult2([]);
// }
// var rs = await this.service.findReadyContracts(obj);
// return system.getResult2(rs);
}
async signList(queryobj, qobj, req) {
var params = qobj.search;
try {
var dkcompanyId = params.dkcompany_id;
if (dkcompanyId) {
params.dkcompanyIds = [dkcompanyId];
delete params.dkcompany_id;
}
var page = await this.service.pageByCondition(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async signExport(pobj, req, res) {
var params = JSON.parse(pobj.search);
try {
params.currentPage = 1;
params.pageSize = 60000;
var dkcompanyId = params.dkcompany_id;
if (dkcompanyId) {
params.dkcompanyIds = [dkcompanyId];
delete params.dkcompany_id;
}
var page = await this.service.signPage(params);
var csvobj = {
fileName: "二维码-" + moment().format("YYYYMMDD") + ".csv",
rows: page.rows,
opts: {
fields: ['id', 'ecompany.name', 'nameA', 'qrcodeurl'],
unwind: ['ecompany'],
excelStrings: true,
unwindBlank: true
},
headers: {
"id": "编号",
'ecompany.name': "公司名",
'nameA': "签约主体",
'qrcodeurl': "二维码"
},
};
await this.excelClient.exportCsv(req, res, csvobj);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async mySignList(queryobj, qobj, req) {
var params = qobj.search;
try {
var ownerIds = null;
if (!req.session.myIds || req.session.myIds.length == 0) {
ownerIds = [req.session.user.id];
} else {
ownerIds = req.session.myIds;
}
var ecompanyIds = await this.dkcompanySve.findIdsByOwnerIds(ownerIds);
if (!ecompanyIds || ecompanyIds.length == 0) {
return system.getResult2({
count: 0,
rows: []
});
}
var ecompanyId = params.ecompany_id;
if (ecompanyId) {
delete params.ecompany_id;
}
if (ecompanyId) {
if (ecompanyIds.indexOf(ecompanyId) == -1) {
return system.getResult2({
count: 0,
rows: []
});
} else {
params.ecompanyIds = [ecompanyId];
}
} else {
params.ecompanyIds = ecompanyIds;
}
var page = await this.service.signPage(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async mySignExport(pobj, req, res) {
var params = JSON.parse(pobj.search);
try {
params.currentPage = 1;
params.pageSize = 60000;
var ownerIds = null;
if (!req.session.myIds || req.session.myIds.length == 0) {
ownerIds = [req.session.user.id];
} else {
ownerIds = req.session.myIds;
}
var ecompanyIds = await this.dkcompanySve.findIdsByOwnerIds(ownerIds);
if (!ecompanyIds || ecompanyIds.length == 0) {
return system.getErrResult2("无数据");
}
var ecompanyId = params.ecompany_id;
if (ecompanyId) {
delete params.ecompany_id;
}
if (ecompanyId) {
if (ecompanyIds.indexOf(ecompanyId) == -1) {
return system.getErrResult2("无数据");
} else {
params.ecompanyIds = [ecompanyId];
}
} else {
params.ecompanyIds = ecompanyIds;
}
var page = await this.service.signPage(params);
var csvobj = {
fileName: "二维码-" + moment().format("YYYYMMDD") + ".csv",
rows: page.rows,
opts: {
fields: ['id', 'ecompany.name', 'nameA', 'qrcodeurl'],
unwind: ['ecompany'],
excelStrings: true,
unwindBlank: true
},
headers: {'id': '编号', 'ecompany.name': "公司名", 'nameA': "签约主体", 'qrcodeurl': "二维码"},
};
await this.excelClient.exportCsv(req, res, csvobj);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async info(queryobj, qobj, req) {
var id = Number(qobj.id);
try {
var info = await this.service.getInfo(id);
if (info) {
if (info.created_at) {
info.created_at = moment(info.created_at).format("YYYY-MM-DD HH:mm:ss");
}
info.dkcompany = await this.dkcompanySve.getInfo(info.dkcompany_id) || {};
info.dkcompanyName = info.dkcompany.name || "";
}
return system.getResult2(info);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async mysave(queryobj, qobj, req) {
try {
var template = null;
let id = qobj.id;
if (id) {
template = await this.service.findById(id);
}
var dkcompany = await this.dkcompanySve.findById(qobj.dkcompany_id);
var aggreement = await this.dkaggreementSve.findById(qobj.dkaggreement_id);
if (template) {
//修改
template.name = qobj.name || dkcompany.name;
template.dkcompany_id = qobj.dkcompany_id;
template.dkaggreement_id = qobj.dkaggreement_id;
template.remark = qobj.remark || "";
await template.save();
} else {
//新增
console.log("new++++++++++++++++++++++++++++++++++++");
template = {};
template.name = qobj.name || dkcompany.name;
template.dkcompany_id = qobj.dkcompany_id;
template.dkaggreement_id = qobj.dkaggreement_id;
template = await this.service.create(template);
}
var homeurl = aggreement.homeurl || "https://bpohhr.gongsibao.com/ts";
template.codeurl = homeurl + "?tid=" + template.id;
await template.save();
return system.getResult2(template, null);
} catch (e) {
console.log("-----------------------------e");
console.log(e);
return {
code: -1
}
}
}
}
module.exports = DKtemplateCtl;
\ No newline at end of file
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class EcompanycontractCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(EcompanycontractCtl));
this.cacheManager = system.getObject("db.cacheManager");
this.excelClient = system.getObject("util.excelClient");
this.ecompanySve = system.getObject("service.ecompanySve");
this.epartnerSve = system.getObject("service.epartnerSve");
}
async findAndCountAll(queryobj, obj, req) {
var codepath = req.codepath;
if (codepath.indexOf("ecompanycontractall") > 0) {
} else {
obj.search.user_id = req.session.user.id;
}
obj.raw = "true";
var apps = await super.findAndCountAll(queryobj, obj, req);
if(apps && apps.data && apps.data.rows && apps.data.rows.length > 0) {
var epartnerIds = [];
for(var item of apps.data.rows) {
if(item.epartner_id) {
epartnerIds.push(item.epartner_id);
}
}
if(epartnerIds.length > 0) {
var epartnerMap = await this.epartnerSve.findMapByIds(epartnerIds);
for(var item of apps.data.rows) {
item.epartner = epartnerMap["id_" + item.epartner_id] || {};
console.log(item);
}
}
}
return apps;
}
async saveContract(queryobj,qobj,req){
var getNo = await this.service.findOne({contractNo: qobj.contractNo});
//1.添加合同
if(getNo) {
return system.getErrResult2("合同编号已经存在");
}
qobj.epartner_id = qobj.epartner_id || 0;
if(qobj.epartner_id) {
var epartner = await this.epartnerSve.findById(qobj.epartner_id);
qobj.user_id = epartner.user_id;
}
var rd = await this.service.create(qobj);
//2.添加子公司
var getSubNames = qobj.names;
for (var item in getSubNames) {
var compName = getSubNames[item]['subname'];
if(getSubNames[item]['isExists'] == 0){
var newEcompany = {
name: compName,
nameA: qobj.nameA || "智信云(天津)科技有限公司",
ecompanycontract_id: rd.id,
owner_id: rd.user_id || 0,
epartner_id : qobj.epartner_id || 0,
};
await this.ecompanySve.savebpo(newEcompany);
}
}
return system.getResult2(rd,null);
}
//我的合同中的新增(修改合同中的userId)
async updateUserId(queryobj,qobj,req){
var result = {
code: 0,
msg:'合同编号不存在'
};
var companyContract = await this.service.findOne({contractNo: qobj.contractNo});
//1.合同编号是否存在
if(!companyContract) {
return result;
}else{
if(companyContract.user_id != 0){
result.msg = "合同编号已分配";
return result;
}
}
//2.修改数据
companyContract.user_id = req.session.user.id;
await companyContract.save();
result.code =1;
result.msg = "添加成功";
return result;
}
async assignContract(queryobj,qobj,req){
var id = Number(this.trim(qobj.contractId)) || 0;
var epartner_id = Number(this.trim(qobj.epartner_id)) || 0;
try {
var rs = await this.service.assignContract(id, epartner_id);
if(rs) {
return system.getErrResult2(rs);
}
return system.getResult2(1);
} catch (error) {
console.log(error.stack);
}
return system.getErrResult2("分配失败");
}
async compInfo(queryobj,qobj,req){
var result = {
code: 0,
contract:'',
ecompany: [],
};
//1.获取合同信息
var getCont = await this.service.findOne({id: qobj.id});
if(getCont){
//2.获取合同关联的公司集合
var getComp = await this.ecompanySve.companyBycontrId(qobj.id);
result.code = 1;
result.contract = getCont;
result.ecompany = getComp;
if(getCont.epartner_id) {
result.epartner = await this.epartnerSve.findById(getCont.epartner_id) || {};
} else {
result.epartner = {};
}
return result;
}
return result;
}
async parseExcel(queryobj, obj, req) {
var result = {
code: 0,
data: [],
};
var compNames = [];
try {
var rs = await this.excelClient.readExcel(req.session.user.id, obj.nameUrl);
if (rs.code == 1) {
var rows = rs.data;
for (var item in rows) {
var compName = rows[item];
var isExists = await this.ecompanySve.isExistsCompanyName(compName);
compNames.push(compName + "-" + isExists);
}
result.code = 1;
result.data = compNames;
return system.getResult2(result);
}else{
return system.getResult2(result);
}
} catch (error) {
console.log(error.stack);
return result;
}
}
}
module.exports = EcompanycontractCtl;
\ No newline at end of file
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
const moment = require('moment');
class EcompanyeventCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(EcompanyeventCtl));
}
async handingList(queryobj, qobj, req) {
var ecompany = req.session.ecompany;
if (!ecompany) {
return system.getResult2({count: 0});
}
try {
var params = {
ecompany_id: ecompany.id,
statusFlag: '2'
};
var rs = await this.service.getList(params, qobj.currentPage || 1, qobj.pageSize || 5);
if (rs && rs.rows) {
for (var row of rs.rows) {
if (row.created_at) {
row.created_at = moment(row.created_at).format("YYYY-MM-DD HH:mm:ss");
}
}
}
return system.getResult2(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async adminHandingList(queryobj, qobj, req) {
try {
var params = {
ecompany_id: -1,
statusFlag: '2'
};
var rs = await this.service.getList(params, qobj.currentPage || 1, qobj.pageSize || 5);
if (rs && rs.rows) {
for (var row of rs.rows) {
if (row.created_at) {
row.created_at = moment(row.created_at).format("YYYY-MM-DD HH:mm:ss");
}
}
}
return system.getResult2(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
}
module.exports = EcompanyeventCtl;
\ No newline at end of file
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
const moment = require('moment');
class EcompanyworkloadCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(EcompanyworkloadCtl));
}
async info(queryobj, qobj, req) {
try {
var info = await this.service.getById(qobj.id);
return system.getResult2(info);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async companylist(queryobj, qobj, req) {
var params = qobj.search || {};
var ecompany = req.session.ecompany;
if (!ecompany) {
return system.getResult2({count: 0, rows:[]});
}
try {
params.ecompany_id = ecompany.id;
var rs = await this.service.pageByCondition(params);
return system.getResult2(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async zccompanylist(queryobj, qobj, req) {
var params = qobj.search || {};
try {
var rs = await this.service.pageByCondition(params);
return system.getResult2(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async mysave(queryobj, qobj, req) {
qobj = qobj || {};
var ecompany = req.session.ecompany;
if (!ecompany) {
return system.getErrResult2("请先做企业认证");
}
try {
var workload;
if(qobj.id) {
workload = await this.service.findById(qobj.id);
workload.name = qobj.name;
workload.url = qobj.url;
workload.updated_at = new Date();
workload.month = Number(qobj.month.replace("-", ""));
await workload.save();
} else {
workload = {
ecompany_id: ecompany.id,
name: qobj.name,
url: qobj.url,
month: Number(qobj.month.replace("-", "")),
}
workload = await this.service.create(workload);
}
return system.getResult2(workload);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async zcsave(queryobj, qobj, req) {
qobj = qobj || {};
try {
var workload;
if(qobj.id) {
workload = await this.service.findById(qobj.id);
workload.name = qobj.name;
workload.url = qobj.url;
workload.ecompany_id = qobj.ecompany_id || 0;
workload.updated_at = new Date();
workload.month = Number(qobj.month.replace("-", ""));
await workload.save();
} else {
workload = {
ecompany_id: qobj.ecompany_id,
name: qobj.name,
url: qobj.url,
month: Number(qobj.month.replace("-", "")),
}
workload = await this.service.create(workload);
}
return system.getResult2(workload);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
}
module.exports = EcompanyworkloadCtl;
\ No newline at end of file
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
const moment = require('moment');
const md5 = require("MD5");
class ecompanywxuserCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(ecompanywxuserCtl));
this.idcardClient = system.getObject("util.idcardClient");
this.ecompanySve = system.getObject("service.ecompanySve");
this.etemplateSve = system.getObject("service.etemplateSve");
this.ecompanybusiSve = system.getObject("service.ecompanybusiSve");
this.redisClient = system.getObject("util.redisClient");
}
// 通过用户id保存用户,目前只有北京酷酷在用
async saveuser(q, p, req) {
var ecompany_id = Number(p.ecompany_id);
try {
if(!await this.idcardClient.checkIDCard(p.id_no)) {
return system.getErrResult2("您的身份证号格式错误");
}
var wxuser = {
ecompany_id: Number(p.ecompany_id),
openId: this.trim(p.openId),
id_no: this.trim(p.id_no),
id_name: this.trim(p.id_name),
userCode: this.trim(p.userCode),
isSend: false,
};
var rs = await this.service.savewxuser(wxuser);
if(rs == -101) {
return system.getErrResult2("公司还未配置签约参数");
}
if(rs == -201) {
return system.getErrResult2("提交失败,您填写的身份证号码已经录入系统");
}
return system.getResult2(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
// 通过模板id保存用户
async saveEcidUser(q, p, req) {
var etemplate_id = Number(p.etemplate_id);
try {
var template = await this.etemplateSve.findById(etemplate_id);
var wxuser = {
ecompany_id: Number(template.ecompany_id || 0),
etemplate_id: Number(etemplate_id || 0),
openId: this.trim(p.openId),
id_no: this.trim(p.id_no || ""),
id_name: this.trim(p.id_name || ""),
userCode: this.trim(p.userCode || ""),
isSend: false,
};
var rs = await this.service.saveEcidUser(wxuser);
if(rs == -101) {
return system.getErrResult2("公司还未配置签约参数");
}
if(rs == -201) {
return system.getErrResult2("提交失败,您填写的身份证号码已经录入系统");
}
return system.getResult2(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async companyName(q, p, req) {
var ecompany_id = Number(p.companyId);
try {
var ecompany = await this.ecompanySve.findById(ecompany_id);
if(!ecompany) {
return system.getErrResult2("公司名称未设置");
}
return system.getResult2(ecompany.name);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async companyByEcid(q, p, req) {
var ecid = Number(p.ecid);
try {
var etemplate = await this.etemplateSve.findById(ecid);
var ecompany = await this.ecompanySve.findById(etemplate.ecompany_id);
if(!ecompany || !etemplate) {
return system.getErrResult2("公司未设置");
}
ecompany.etemplate = etemplate;
return system.getResult2(ecompany);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
// 跟拒ecompany_id验证签名
async validateSign(q, p, req) {
try {
var sign = p.sign || "";
var companyId = p.companyId || 0;
var nonceStr = p.nonceStr || "";
var userCode = p.userCode || "";
var busi = await this.ecompanybusiSve.findOne({ecompany_id: companyId});
if(!busi) {
return system.getErrResult2("企业未做业务开通");
}
var signArr = [];
signArr.push("appId=" + busi.appId);
signArr.push("nonceStr=" + nonceStr);
signArr.push("userCode=" + userCode);
signArr.push("key=" + busi.key);
var calcSign = md5(signArr.join("&")).toUpperCase();
if(sign != calcSign) {
return system.getErrResult2("签名失败,请关闭页面重试。");
}
return system.getResult2(1);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
// 跟拒etemplate_id验证签名
async validateECSign(q, p, req) {
try {
var sign = p.sign || "";
var etemplateId = p.ecid || 0;
var nonceStr = p.nonceStr || "";
var userCode = p.userCode || "";
var busi = await this.ecompanybusiSve.findOne({etemplate_id: etemplateId});
if(!busi) {
return system.getErrResult2("企业未做业务开通");
}
var signArr = [];
signArr.push("appId=" + busi.appId);
signArr.push("nonceStr=" + nonceStr);
signArr.push("userCode=" + userCode);
signArr.push("key=" + busi.key);
var calcSign = md5(signArr.join("&")).toUpperCase();
if(sign != calcSign) {
return system.getErrResult2("签名失败,请关闭页面重试。");
}
return system.getResult2(1);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
}
module.exports = ecompanywxuserCtl;
\ No newline at end of file
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class EintentionCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(EintentionCtl));
this.regionareaSve = system.getObject("service.regionareaSve");
this.ecompanySve = system.getObject("service.ecompanySve");
this.userSve = system.getObject("service.userSve");
}
async create(queryobj,qobj,req){
if(req && req.session && req.session.user){
// qobj.app_id=req.session.app.id;
qobj.owner_id=req.session.user.id;
qobj.owner_name=req.session.user.nickName;
if(req.codepath){
qobj.codepath=req.codepath;
}
}
if (qobj.cityCode) {
qobj.cityName = await this.regionareaSve.findNameByCode(qobj.cityCode);
}
var ecompany = await this.ecompanySve.findOne({name: qobj.name});
if(ecompany && ecompany.owner_id != qobj.owner_id) {
var user = await this.userSve.findById(ecompany.owner_id);
var nickName = "直营人员";
if(user) {
nickName = user.nickName;
}
return system.getErrResult2("该客户已被" + nickName + "录入");
}
var repeat = await this.service.findOne({name:qobj.name});
if(repeat) {
return system.getErrResult2("该客户已被" + (repeat.owner_name || "") + "录入");
}
try {
var rd=await this.service.create(qobj);
return system.getResult2(rd,null);
} catch (error) {
if(error.name == 'SequelizeUniqueConstraintError') {
return system.getErrResult2("该客户已录入");
}
return system.getErrResult2("你的网络繁忙,请稍候重试");
}
}
async update(queryobj,qobj,req){
if(req && req.session && req.session.user){
qobj["update_id"]=req.session.user.id;
qobj["update_name"]=req.session.user.nickName;
}
if(req.codepath){
qobj.codepath=req.codepath;
}
var old = await this.service.findById(qobj.id) || {};
if(old.name != qobj.name) {
var ecompany = await this.ecompanySve.findOne({name: qobj.name});
if(ecompany && ecompany.owner_id && ecompany.owner_id != old.owner_id) {
var user = await this.userSve.findById(ecompany.owner_id);
var nickName = "直营人员";
if(user) {
nickName = user.nickName;
}
return system.getErrResult2("该客户已被" + nickName + "录入");
}
var repeat = await this.service.findOne({name:qobj.name});
if(repeat) {
return system.getErrResult2("该客户已被" + (repeat.owner_name || "") + "录入");
}
}
if (qobj.cityCode) {
qobj.cityName = await this.regionareaSve.findNameByCode(qobj.cityCode);
}
try {
var rd = await this.service.update(qobj);
return system.getResult2(rd,null);
} catch (error) {
if(error.name == 'SequelizeUniqueConstraintError') {
return system.getErrResult2("该客户已录入");
}
return system.getErrResult2("你的网络繁忙,请稍候重试");
}
}
async validName(queryobj, qobj, req) {
var loginid = req.session.user.id;
var intention = await this.service.findOne({name:qobj.name});
if(intention && intention.owner_id != loginid) {
return system.getErrResult2("该客户已被" + (intention.owner_name || "") + "录入");
}
var ecompany = await this.ecompanySve.findOne({name: qobj.name});
if(ecompany && ecompany.owner_id != loginid) {
var user = await this.userSve.findById(ecompany.owner_id);
var nickName = "直营人员";
if(user) {
nickName = user.nickName;
}
return system.getErrResult2("该客户已被" + nickName + "录入");
}
return system.getResult2(1);
}
async myList(queryobj, qobj, req) {
var params = qobj.search || {};
params.ownerIds = [req.session.user.id];
return await this.queryList(params);
}
async allList(queryobj, qobj, req) {
var search = qobj.search || {};
var loginUser = req.session.user;
var roles = loginUser.Roles || [];
var isZC = false;
for(var r of roles) {
if(r.code == 'zcry' || r.code == 'zcgl') {
isZC = true;
break;
}
}
if(!loginUser.isAdmin && !isZC) {
if(!req.session.myIds || req.session.myIds.length == 0) {
return system.getResult2({count: 0, rows: []});
}
search.ownerIds = req.session.myIds;
}
return await this.queryList(qobj.search);
}
async queryList(params) {
var params = params || {};
this.doTimeCondition(params, ["createdBegin", "createdEnd"]);
try {
var page = await this.service.pageByCondition(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async assignUser(queryobj, qobj, req) {
var loginuser = req.session.user;
var id = qobj.id;
var assignUserId = qobj.assignUserId;
if(!id || !assignUserId) {
return system.getErrResult2("分配错误,请重试");
}
try {
var rs = await this.service.assignUser(id, assignUserId, loginuser.id);
if(rs == -1) {
return system.getErrResult2("意向不存在,请刷新重试");
}
return system.getResult2(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
}
module.exports = EintentionCtl;
\ No newline at end of file
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class EintentionfollowCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(EintentionfollowCtl));
}
async addFollow(queryobj, qobj, req) {
var follow = {
eintention_id: qobj.eintention_id,
followUserId: req.session.user.id,
followUserName: req.session.user.nickName,
followStatus: qobj.followStatus,
followStatusName: qobj.followStatusName,
content: qobj.content,
};
try {
await this.service.create(follow);
return system.getResult2(1);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async followList(queryobj, qobj, req) {
var params = qobj.search || {};
if(!params.eintention_id) {
return system.getResult2({total:0, rows:[]});
}
try {
var page = await this.service.pageByCondition(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
}
module.exports = EintentionfollowCtl;
\ No newline at end of file
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
const moment = require("moment");
class EjobCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(EjobCtl));
this.ejobapplySve = system.getObject("service.ejobapplySve");
this.esettleSve = system.getObject("service.esettleSve");
this.ecompanySve = system.getObject("service.ecompanySve");
}
async jobInfo(queryobj, qobj, req) {
try {
var jobInfo = await this.service.jobDetail(qobj.jobId, qobj.pattern || {});
return system.getResult2(jobInfo);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async saveJob(queryobj, qobj, req) {
var user = req.session.user;
var ecompany = await this.ecompanySve.findOne({user_id : user.id});
if(!ecompany) {
return system.getErrResult2("您的企业未认证通过, 请先做企业认证再发布需求");
}
if(ecompany.jdAuthStatus != '1') {
return system.getErrResult2("您的企业未认证通过, 请耐心等待通过后再发布需求");
}
try {
qobj.ejob.ecompany_id = ecompany.id;
var rs = await this.service.saveJob(qobj.ejob);
if(rs.msg) {
return system.getErrResult2(rs.msg);
}
return system.getResult2(rs.ejob);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async companyJobs(queryobj, qobj, req) {
var ecompany = req.session.ecompany;
if(!ecompany) {
return system.getResult2({count:0, rows:[]});
}
var params = qobj.search;
this.doTimeCondition(params, ["applyBegin", "applyEnd", "publishBegin", "publishEnd", "rejectBegin", "rejectEnd", "cancelBegin", "cancelEnd"]);
params.ecompanyId = ecompany.id;
try {
var page = await this.service.jobPage(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async allJobs(queryobj, qobj, req) {
var params = qobj.search;
this.doTimeCondition(params, ["applyBegin", "applyEnd", "publishBegin", "publishEnd", "rejectBegin", "rejectEnd", "cancelBegin", "cancelEnd"]);
try {
var page = await this.service.jobPage(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async statSQXQL(queryobj, qobj, req) {
var ecompany = req.session.ecompany;
if(!ecompany) {
return system.getResult2({count:0});
}
var params = this.getTimes(qobj.statTime || "");
try {
params.ecompany_id = ecompany.id;
var count = await this.service.stat(params);
return system.getResult2({count:count});
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async statAllSQXQL(queryobj, qobj, req) {
var params = this.getTimes(qobj.statTime || "");
try {
var count = await this.service.stat(params);
return system.getResult2({count:count});
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async statFDL(queryobj, qobj, req) {
var ecompany = req.session.ecompany;
if(!ecompany) {
return system.getResult2({count:0});
}
var params = this.getTimes(qobj.statTime || "");
try {
params.ecompany_id = ecompany.id;
params.jobStatuses = ['1'];
var count = await this.service.stat(params);
return system.getResult2({count:count});
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async statAllFDL(queryobj, qobj, req) {
var params = this.getTimes(qobj.statTime || "");
try {
params.jobStatuses = ['1'];
var count = await this.service.stat(params);
return system.getResult2({count:count});
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async statJDL(queryobj, qobj, req) {
var ecompany = req.session.ecompany;
if(!ecompany) {
return system.getResult2({count:0});
}
var params = this.getTimes(qobj.statTime || "");
try {
params.ecompany_id = ecompany.id;
var count = await this.ejobapplySve.stat(params);
return system.getResult2({count:count});
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async statAllJDL(queryobj, qobj, req) {
var params = this.getTimes(qobj.statTime || "");
try {
var count = await this.ejobapplySve.stat(params);
return system.getResult2({count:count});
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async statCGQYL(queryobj, qobj, req) {
var ecompany = req.session.ecompany;
if(!ecompany) {
return system.getResult2({count:0});
}
var params = this.getTimes(qobj.statTime || "");
try {
params.ecompany_id = ecompany.id;
params.statuses = ['2','3','4'];
var count = await this.ejobapplySve.stat(params);
return system.getResult2({count:count});
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async statAllCGQYL(queryobj, qobj, req) {
var params = this.getTimes(qobj.statTime || "");
try {
params.statuses = ['2','3','4'];
var count = await this.ejobapplySve.stat(params);
return system.getResult2({count:count});
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async statJYZE(queryobj, qobj, req) {
var ecompany = req.session.ecompany;
if(!ecompany) {
return system.getResult2({count:0});
}
var params = this.getTimes(qobj.statTime || "");
try {
params.ecompany_name = ecompany.name;
var count = await this.esettleSve.statSettle(params);
if(count) {
count = parseFloat((count / 100).toFixed(2));
}
return system.getResult2({count:count});
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async statAllJYZE(queryobj, qobj, req) {
var params = this.getTimes(qobj.statTime || "");
try {
var count = await this.esettleSve.statSettle(params);
if(count) {
count = parseFloat((count / 100).toFixed(2));
}
return system.getResult2({count:count});
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async jobCancel(queryobj, qobj, req) {
try {
var user = req.session.user;
if (!user) {
return system.getErrResult2('登录状态过期, 请刷新页面重新登录');
}
var jobId = Number(qobj.jobId);
var job = await this.service.findById(jobId);
if (!job) {
return system.getErrResult2('零工不存在');
}
if(job.jobStatus != '0') {
return system.getErrResult2('撤销失败, 零工' + job.jobStatusName);
}
job.jobStatus = '3';
job.jobStatusName = '已撤销';
job.cancel_at = new Date();
await job.save();
return system.getResult2(1);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async audit(queryobj, qobj, req) {
try {
var user = req.session.user;
if (!user) {
return system.getErrResult2('登录状态过期, 请刷新页面重新登录');
}
var jobId = Number(qobj.jobId);
var rs = await this.service.audit(jobId, qobj.auditStatus, this.trim(qobj.auditRemark), user.id);
if(rs == -1) {
return system.getErrResult2("需求不存在");
}
if(rs == -2) {
return system.getErrResult2("审核失败, 需求已被审核");
}
if(rs == -3) {
return system.getErrResult2("请填写驳回原因");
}
return system.getResult2(1);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
getTimes(statTime) {
var begin;
var end;
if(statTime == '1') {
begin = moment().year(moment().year()).startOf('year').format("YYYY-MM-DD") + " 00:00:00";
end = moment().year(moment().year()).endOf('year').format("YYYY-MM-DD") + " 23:59:59";
} else if(statTime == '2') {
begin = moment().quarter(moment().quarter()).startOf('quarter').format("YYYY-MM-DD") + " 00:00:00";
end = moment().quarter(moment().quarter()).endOf('quarter').format("YYYY-MM-DD") + " 23:59:59";
} else if(statTime == '3') {
begin = moment().month(moment().month()).startOf('month').format("YYYY-MM-DD") + " 00:00:00";
end = moment().month(moment().month()).endOf('month').format("YYYY-MM-DD") + " 23:59:59";
} else {
}
return {begin:begin || "", end:end || ""}
}
}
module.exports = EjobCtl;
\ No newline at end of file
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class EjobapplyCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(EjobapplyCtl));
//this.appS=system.getObject("service.appSve");
}
async jobApplys(queryobj, qobj, req) {
var jobId = qobj.jobId;
if(!jobId) {
return system.getResult2({count:0, rows:[]});
}
var ecompany = req.session.ecompany;
if(!ecompany) {
return system.getResult2({count:0, rows:[]});
}
var params = qobj.search || {};
params.ejob_id = jobId;
params.ecompany_id = ecompany.id;
this.doTimeCondition(params, ["applyBegin", "applyEnd", "signBegin", "signEnd", "auditBegin", "auditEnd", "cancelBegin", "cancelEnd"]);
try {
var page = await this.service.pageByCondition(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async jobAllApplys(queryobj, qobj, req) {
var jobId = qobj.jobId;
if(!jobId) {
return system.getResult2({count:0, rows:[]});
}
var params = qobj.search || {};
params.ejob_id = jobId;
this.doTimeCondition(params, ["applyBegin", "applyEnd", "signBegin", "signEnd", "auditBegin", "auditEnd", "cancelBegin", "cancelEnd"]);
try {
var page = await this.service.pageByCondition(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async companyApplys(queryobj, qobj, req) {
var ecompany = req.session.ecompany;
if(!ecompany) {
return system.getResult2({count:0, rows:[]});
}
var params = qobj.search || {};
params.needJob = true;
params.ecompany_id = ecompany.id;
// params.applyStatuses = ['2', '3', '4'];
try {
var page = await this.service.pageUserByCondition(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async allApplys(queryobj, qobj, req) {
var ecompany = req.session.ecompany;
if(!ecompany) {
return system.getResult2({count:0, rows:[]});
}
var params = qobj.search || {};
params.needJob = true;
// params.applyStatuses = ['2', '3', '4'];
try {
var page = await this.service.pageUserByCondition(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async applyInfo(queryobj, qobj, req) {
var id = qobj.id;
if(!id) {
return system.getErrResult2("零工申请不存在");
}
try {
var info = await this.service.info(id);
return system.getResult2(info);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async notifyInterview(queryobj, qobj, req) {
var ids = qobj.ids || [];
if(ids.length == 0) {
return system.getResult2(1);
}
for(var id of ids) {
try {
var rs = await this.service.notifyInterView(id, qobj.interviewTime);
console.log("notifyInterview id[" + id + "], rs[" + rs + "] ");
} catch (e) {
console.log(e);
}
}
return system.getResult2(1);
}
async audit(queryobj, qobj, req) {
var ids = qobj.ids || [];
if(ids.length == 0) {
return system.getResult2(1);
}
for(var id of ids) {
try {
var rs = await this.service.audit(id, this.trim(qobj.auditStatus), this.trim(qobj.auditRemark));
console.log("notifyInterview id[" + id + "], rs[" + rs + "] ");
} catch (e) {
console.log(e);
}
}
return system.getResult2(1);
}
}
module.exports=EjobapplyCtl;
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
const moment = require("moment");
class EjobrosterCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(EjobrosterCtl));
this.ejobapplySve = system.getObject("service.ejobapplySve");
this.esettleSve = system.getObject("service.esettleSve");
this.ecompanySve = system.getObject("service.ecompanySve");
}
async list(queryobj, qobj, req) {
var params = qobj.search || {};
try {
var page = await this.service.pageByCondition(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async saveRoster(queryobj, qobj, req) {
try {
var rs = await this.service.saveRoster(req.session.user.id, qobj.url);
if(rs.code == 0) {
return system.getErrResult2(rs.msg || "文件解析失败");
}
return system.getResult2(1);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async parseRoster(queryobj, qobj, req) {
try {
var rs = await this.service.parseRoster(req.session.user.id, qobj.url);
if(rs.code == 0) {
return system.getErrResult2(rs.msg || "文件解析失败");
}
return system.getResult2(rs.data);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
}
module.exports = EjobrosterCtl;
\ No newline at end of file
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
const moment = require('moment');
class EmessageCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(EmessageCtl));
}
async entMessageList(queryobj, qobj, req) {
var user = req.session.user;
if(!user) {
return system.getResult2({count:0});
}
try {
var params = {
user_id: user.id,
types: [5],
};
var rs = await this.service.getList(params, qobj.currentPage || 1, qobj.pageSize || 5);
if(rs && rs.rows) {
for(var row of rs.rows) {
if(row.created_at) {
row.created_at = moment(row.created_at).format("YYYY-MM-DD HH:mm:ss");
}
}
}
return system.getResult2(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
}
module.exports=EmessageCtl;
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
const uiconfig = system.getUiConfig2(settings.wxconfig.appId);
class EpartnerupgradeauditCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(EpartnerupgradeauditCtl));
this.userSve = system.getObject("service.userSve");
this.epartnerSve = system.getObject("service.epartnerSve");
}
async auditList(queryobj, qobj, req) {
qobj.raw = true;
var rs = await this.findAndCountAll(queryobj, qobj, req);
// 补全合伙人数据
if (!rs || !rs.data || !rs.data.rows) {
return rs;
}
var partnerIds = [];
for (var row of rs.data.rows) {
if (row.epartner_id) {
partnerIds.push(row.epartner_id);
}
}
var partnerMap = await this.epartnerSve.findMapByIds(partnerIds);
for (var row of rs.data.rows) {
row.epartner = partnerMap["id_" + row.epartner_id];
if(row.epartner && row.epartner.reg_at) {
row.epartner.reg_at = new Date(row.epartner.reg_at).Format("yyyy-MM-dd hh:mm");
}
}
return rs;
}
async pass(queryobj, qobj, req) {
var ids = qobj.ids || [];
for (var id of ids) {
try {
var audit = await this.service.findById(id);
if (!audit) {
return system.getErrResult2("审核信息不存在");
}
if (audit.auditStatus != '0') {
return system.getErrResult2("该信息已审核");
}
var epartner = await this.epartnerSve.findById(audit.epartner_id);
if (!epartner) {
return system.getErrResult2("合伙人不存在");
}
epartner.partnerType = audit.targetType;
epartner.partnerTypeName = audit.targetTypeName;
audit.auditStatus = '1';
audit.auditStatusName = '审核通过';
audit.audit_id = req.session.user.id;
audit.audit_at = new Date();
await epartner.save();
await audit.save();
} catch (error) {
console.error(error);
}
}
return system.getResult2("1");
}
async reject(queryobj, qobj, req) {
var ids = qobj.ids || [];
for (var id of ids) {
try {
var audit = await this.service.findById(id);
if (!audit) {
return system.getErrResult2("审核信息不存在");
}
if (audit.auditStatus != '0') {
return system.getErrResult2("该信息已审核");
}
var epartner = await this.epartnerSve.findById(audit.epartner_id);
if (!epartner) {
return system.getErrResult2("合伙人不存在");
}
audit.auditStatus = '2';
audit.auditStatusName = '审核驳回';
audit.audit_id = req.session.user.id;
audit.audit_at = new Date();
await audit.save();
} catch (error) {
console.error(error);
}
}
return system.getResult2('1');
}
}
module.exports = EpartnerupgradeauditCtl;
\ No newline at end of file
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
const uiconfig = system.getUiConfig2(settings.wxconfig.appId);
class EsettlecommissionCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(EsettlecommissionCtl));
this.userSve = system.getObject("service.userSve");
this.epartnerSve = system.getObject("service.epartnerSve");
}
async allList(queryobj, qobj, req) {
var params = {};
var loginUser = req.session.user;
var roles = loginUser.Roles || [];
var isZC = false;
for(var r of roles) {
if(r.code == 'zcry' || r.code == 'zcgl') {
isZC = true;
break;
}
}
if(!loginUser.isAdmin && !isZC) {
if(!req.session.myIds || req.session.myIds.length == 0) {
return system.getResult2({count: 0, rows: []});
}
qobj.userIds = req.session.myIds;
}
return await this.list(queryobj, qobj, req, params);
}
async myList(queryobj, qobj, req) {
qobj.userIds = [req.session.user.id]
return await this.list(queryobj, qobj, req, {});
}
async list(queryobj, qobj, req, params) {
// if (!params) {
// return null;
// }
if (!qobj.search) {
qobj.search = {};
}
// if (params) {
// if (params.user_id) {
// qobj.search.user_id = params.user_id;
// }
// }
qobj.raw = true;
var rs = await super.findAndCountAll(queryobj, qobj, req);
if (rs && rs.data && rs.data.rows) {
var epartnerIds = [];
system.f2y4list(rs.data.rows, ["amt","service_tax","commission"], "¥ ");
for (var row of rs.data.rows) {
if(row.epartner_id) {
epartnerIds.push(row.epartner_id);
}
if (row.pay_complete_time) {
row.pay_complete_time = new Date(row.pay_complete_time).Format("yyyy-MM-dd hh:mm:ss");
}
}
var partnerMap = await this.epartnerSve.findMapByIds(epartnerIds);
for (var row of rs.data.rows) {
if(row.epartner_id) {
row.epartner = partnerMap["id_" + row.epartner_id];
}
}
// var usermap = await this.userSve.findMapByIds(ownerIds);
// if(ownerIds.length > 0) {
// for (var row of rs.data.rows) {
// if(row.owner_id) {
// row.owner = usermap["id_" + row.owner_id];
// }
// }
// }
}
return rs;
}
}
module.exports = EsettlecommissionCtl;
\ No newline at end of file
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
const md5 = require("MD5");
const moment = require("moment");
const uiconfig = system.getUiConfig2(settings.wxconfig.appId);
class esettleofflineCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(esettleofflineCtl));
this.userSve = system.getObject("service.userSve");
this.epartnerSve = system.getObject("service.epartnerSve");
this.ecompanySve = system.getObject("service.ecompanySve");
}
async save(queryobj, qobj, req) {
var id = qobj.id;
var settle = {};
if(id) {
settle.id = id;
}
this.buildSettle(settle, qobj);
settle.opid = req.session.user.id;
var rs = await this.service.saveSettle(settle);
if(rs.code) {
return system.getResult2(1);
}
return system.getErrResult2(rs.msg || "文件解析失败");
}
buildSettle(settle, qobj) {
settle.ecompany_id = qobj.ecompany_id;
settle.ecompanyName = qobj.ecompanyName;
settle.pay_complete_time = qobj.pay_complete_time;
settle.pay_time = qobj.pay_complete_time;
settle.month = Number(moment(qobj.pay_complete_time).format("YYYYMM"));;
settle.amt = (Number(qobj.amt) * 100).toFixed(0);
settle.actual_amt = (Number(qobj.actual_amt) * 100).toFixed(0);
settle.service_rate = qobj.service_rate;
settle.service_tax = (Number(qobj.service_tax) * 100).toFixed(0);
settle.added_value_tax = (Number(qobj.added_value_tax) * 100).toFixed(0);
settle.open_bank = qobj.open_bank;
settle.bankno = qobj.bankno;
settle.fileurl = qobj.fileurl;
settle.sourceType = qobj.sourceType;
if(!qobj.id) {
settle.epartner_id = 0;
settle.user_id = 0;
settle.out_trade_no = ""
settle.tbl_order_id = 0;
settle.busi_id = 0;
settle.deduct_amt = 0;
}
}
async allList(queryobj, qobj, req) {
try {
var params = this.getSettleParams(qobj.search);
var page = await this.service.pageByCondition(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
getSettleParams(search) {
var params = search || {};
if(this.trim(params.payBegin)) {
params.payBegin = this.trim(params.payBegin) + " 00:00:00";
}
if(this.trim(params.payEnd)) {
params.payEnd = this.trim(params.payEnd) + " 23:59:59";
}
if(this.trim(params.createBegin)) {
params.createBegin = this.trim(params.createBegin) + " 00:00:00";
}
if(this.trim(params.createEnd)) {
params.createEnd = this.trim(params.createEnd) + " 23:59:59";
}
if(params.amtBegin) {
params.amtBegin = Number(params.amtBegin) * 100;
}
if(params.amtEnd) {
params.amtEnd = Number(params.amtEnd) * 100;
}
return params;
}
async parseItems(queryobj, qobj, req) {
try {
var rs = await this.service.parseItems(req.session.user.id, qobj.url, qobj.pay_complete_time || "");
if(rs.code == 0) {
return system.getErrResult2(rs.msg || "文件解析失败");
}
return system.getResult2(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async statOfflineSettle(queryobj, qobj, req) {
var loginUser = req.session.user;
if(!loginUser.isBpoManager && !loginUser.isAdmin) {
return system.getResult2({});
}
try {
var params = qobj.search || {};
if(params.month) {
params.month = Number(params.month.replace("-", ""));
}
var rs = await this.service.statOfflineSettle(params);
return system.getResult2(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
}
module.exports = esettleofflineCtl;
\ No newline at end of file
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
const md5 = require("MD5");
const moment = require("moment");
const uiconfig = system.getUiConfig2(settings.wxconfig.appId);
class EsettleofflineitemCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(EsettleofflineitemCtl));
}
async itemList(queryobj, qobj, req) {
try {
var params = qobj.search || {};
if(!params.esettleoffline_id) {
return system.getErrResult2({total:0, rows:[]});
}
var page = await this.service.pageByCondition(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
}
module.exports = EsettleofflineitemCtl;
\ No newline at end of file
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
const logCtl = system.getObject("web.oplogCtl");
const moment = require("moment");
class EtemplateCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(EtemplateCtl));
this.utilesignbaoSve = system.getObject("service.utilesignbaoSve");
this.econtractSve = system.getObject("service.econtractSve");
this.ecompanySve = system.getObject("service.ecompanySve");
this.wxSve = system.getObject("service.wxSve");
this.excelClient = system.getObject("util.excelClient");
}
async findReadyContracts(q, obj, req) {
obj = obj || {};
obj.userId = req.session.user.id;
// 验证companyId
if (!obj.ecompany_id || !obj.eaccount_id) {
return system.getResult2([]);
}
let sinedCompanyIds = await this.econtractSve.findUserSinedCompanyIds(Number(obj.eaccount_id));
if (sinedCompanyIds.indexOf(Number(obj.ecompany_id)) != -1) {
return system.getResult2([]);
}
var rs = await this.service.findReadyContracts(obj);
return system.getResult2(rs);
}
async signList(queryobj, qobj, req) {
var params = qobj.search;
try {
var ecompanyId = params.ecompany_id;
if (ecompanyId) {
params.ecompanyIds = [ecompanyId];
delete params.ecompany_id;
}
var page = await this.service.signPage(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async getListByName(queryobj, qobj, req){
var name = this.trim(qobj.name);
if(!name) {
return system.getResult2([])
}
var list = await this.service.getListByName(name);
return system.getResult2(list);
}
async signExport(pobj, req, res) {
var params = JSON.parse(pobj.search);
try {
params.currentPage = 1;
params.pageSize = 60000;
var ecompanyId = params.ecompany_id;
if (ecompanyId) {
params.ecompanyIds = [ecompanyId];
delete params.ecompany_id;
}
var page = await this.service.signPage(params);
var csvobj = {
fileName: "二维码-" + moment().format("YYYYMMDD") + ".csv",
rows: page.rows,
opts: {
fields: ['id', 'ecompany.name', 'nameA', 'qrcodeurl'],
unwind: ['ecompany'],
excelStrings: true,
unwindBlank: true
},
headers: {
"id": "编号",
'ecompany.name': "公司名",
'nameA': "签约主体",
'qrcodeurl': "二维码"
},
};
await this.excelClient.exportCsv(req, res, csvobj);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async mySignList(queryobj, qobj, req) {
var params = qobj.search;
try {
var ownerIds = null;
if (!req.session.myIds || req.session.myIds.length == 0) {
ownerIds = [req.session.user.id];
} else {
ownerIds = req.session.myIds;
}
var ecompanyIds = await this.ecompanySve.findIdsByOwnerIds(ownerIds);
if (!ecompanyIds || ecompanyIds.length == 0) {
return system.getResult2({
count: 0,
rows: []
});
}
var ecompanyId = params.ecompany_id;
if (ecompanyId) {
delete params.ecompany_id;
}
if (ecompanyId) {
if (ecompanyIds.indexOf(ecompanyId) == -1) {
return system.getResult2({
count: 0,
rows: []
});
} else {
params.ecompanyIds = [ecompanyId];
}
} else {
params.ecompanyIds = ecompanyIds;
}
var page = await this.service.signPage(params);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async mySignExport(pobj, req, res) {
var params = JSON.parse(pobj.search);
try {
params.currentPage = 1;
params.pageSize = 60000;
var ownerIds = null;
if (!req.session.myIds || req.session.myIds.length == 0) {
ownerIds = [req.session.user.id];
} else {
ownerIds = req.session.myIds;
}
var ecompanyIds = await this.ecompanySve.findIdsByOwnerIds(ownerIds);
if (!ecompanyIds || ecompanyIds.length == 0) {
return system.getErrResult2("无数据");
}
var ecompanyId = params.ecompany_id;
if (ecompanyId) {
delete params.ecompany_id;
}
if (ecompanyId) {
if (ecompanyIds.indexOf(ecompanyId) == -1) {
return system.getErrResult2("无数据");
} else {
params.ecompanyIds = [ecompanyId];
}
} else {
params.ecompanyIds = ecompanyIds;
}
var page = await this.service.signPage(params);
var csvobj = {
fileName: "二维码-" + moment().format("YYYYMMDD") + ".csv",
rows: page.rows,
opts: {
fields: ['id', 'ecompany.name', 'nameA', 'qrcodeurl'],
unwind: ['ecompany'],
excelStrings: true,
unwindBlank: true
},
headers: {'id': '编号', 'ecompany.name': "公司名", 'nameA': "签约主体", 'qrcodeurl': "二维码"},
};
await this.excelClient.exportCsv(req, res, csvobj);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async info(queryobj, qobj, req) {
console.log("dddddddddss");
var id = Number(qobj.id);
try {
var info = await this.service.getInfo(id);
if (info) {
if (info.created_at) {
info.created_at = moment(info.created_at).format("YYYY-MM-DD HH:mm:ss");
}
var ecompany = await this.ecompanySve.getCompany(info.ecompany_id) || {};
info.ecompany = ecompany || {};
if (ecompany) {
info.ecompanyName = ecompany.name;
}
}
return system.getResult2(info);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async mysave(queryobj, qobj, req) {
try {
var template = null;
let id = qobj.id;
if (id) {
template = await this.service.findById(id);
}
var ecompany = await this.ecompanySve.findById(qobj.ecompany_id);
if (template) { //修改
template.name = qobj.name || ecompany.name;
template.nameA = qobj.nameA;
template.ecompany_id = qobj.ecompany_id;
template.filepath = qobj.filepath;
template.remark = qobj.remark || "";
await template.save();
} else { //新增
console.log("new++++++++++++++++++++++++++++++++++++");
template = {};
template.name = qobj.name || ecompany.name;
template.nameA = qobj.nameA;
template.ecompany_id = qobj.ecompany_id;
template.filepath = qobj.filepath;
template.placeholderkey = qobj.placeholderkey;
template.remark = qobj.remark || "";
template = await this.service.create(template);
}
// 调用e签宝接口生成template
if (template.filepath && ecompany.name) {
try {
let templateRs = await this.utilesignbaoSve.createEntTemplate(template.filepath, ecompany.name, "etemplateCtl");
logCtl.info({
optitle: "e签宝===>保存模板信息template",
op: "app/base/controller/impl/etemplateCtl/mysave",
content: "参数:filepath=" + template.filepath + ";name=" + template.name + "; result : " + JSON.stringify(templateRs),
clientIp: ""
});
if (templateRs && templateRs.code == 1 && templateRs.data) {
template.filekey = templateRs.data.fileKey;
template.templateid = templateRs.data.templateId;
await template.save();
} else {
console.log("======================12222222222222222222222222222222222222222222222222222222222222222222222222====================");
}
} catch (e) {
console.error(e);
}
}
template.qrcodeurl = await this.wxSve.makeQrWithScene("wxf616c0a459d66081", template.id);
template.save();
return system.getResult2(template, null);
} catch (e) {
console.log("-----------------------------e");
console.log(e);
return {
code: -1
}
}
}
}
module.exports = EtemplateCtl;
\ No newline at end of file
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class LoopplayCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(LoopplayCtl));
//this.appS=system.getObject("service.appSve");
}
async findById(q,oid){
return super.findById(Number(oid.id));
}
async findByChannelcode(qobj,obj,req){
if(obj.channelcode==null||obj.channelcode==""||obj.channelcode=="undefined"){
return {code:-1,msg:"参数channelcode错误"};
}
var result=await this.service.findByChannelcode(obj);
return {code:1,msg:"success",data:result};
}
async findAll(queryobj,obj,req){
var lst= await this.service.findAll();
return system.getResult2(lst,null);
}
async findAndCountAll(queryobj,obj,req){
obj.codepath=req.codepath;
if(req.session.user){
obj.uid=req.session.user.id;
obj.appid=req.session.user.app_id;
obj.onlyCode=req.session.user.unionId;
obj.account_id=req.session.user.account_id;
obj.ukstr=req.session.user.app_id+"¥"+req.session.user.id+"¥"+req.session.user.nickName+"¥"+req.session.user.headUrl;
}
var apps=await this.service.findAndCountAll(obj);
return system.getResult2(apps,null);
}
// async findAll(q,oid){
// var rd=await this.service.findAll();
// return system.getResult2(rd,null);
// return super.findById(Number(oid.id));
// }
}
module.exports=LoopplayCtl;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
class MetaCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(MetaCtl));
this.userS=system.getObject("service.userSve");
this.authS=system.getObject("service.authSve");
}
//权限 角色+资源节点code+权限字符串,codepath--
async getUiConfig(queryObj,req){
var bizCode=queryObj.biz;
var cfg=await this.service.getUiConfig(settings.wxconfig.appId);
console.log(cfg);
var tmpRoleAuthStr="";
if(req && req.session && req.session.user){
var tmpRoles=[];
if(req.session.user.Roles){
req.session.user.Roles.forEach(r=>{
tmpRoles.push(r.code);
});
//按照角色获取权限列表
var auths=await this.authS.findAuthsByRole(tmpRoles,req.companyid);
var codeauthattrs=auths.map(r=>{
if(r.authstrs && r.authstrs!=""){
return r.authstrs;
}else{
return "";
}
});
tmpRoleAuthStr=codeauthattrs.join(",");
}
}
//获取当前登录人的角色,进而获取权限,进而合并工具栏目
var toolbar=[];
const bizConfigData= cfg.config["bizs"][bizCode];
console.log(bizCode);
Object.keys(bizConfigData.config.auth).map(k=>{
//只要有权限就添加
if( req.session.user && req.session.user.isAdmin){
toolbar=toolbar.concat(bizConfigData.config.auth[k]);
}else{
if(tmpRoleAuthStr.indexOf(k)>=0){
toolbar=toolbar.concat(bizConfigData.config.auth[k]);
}
}
})
bizConfigData.config.toolbar=toolbar;
return system.getResult2(bizConfigData.config,null);
}
async getDicConfig(queryObj,req){
var dicKey=queryObj["dicKey"];
var cfg=await this.service.getUiConfig(settings.wxconfig.appId);
//获取当前登录人的角色,进而获取权限,进而合并工具栏目
if(dicKey=="data_priv"){
if(req.session && req.session.user && !req.session.user.isSuper){
delete cfg.config["pdict"][dicKey]["company"];
}
}
return system.getResult2(cfg.config["pdict"][dicKey],null);
}
async findSubSystems(q,req){
var rtnSubs=[];
var cfg=await this.service.getUiConfig(settings.wxconfig.appId);
var tmpRoleCodepathStr=[];
if(req && req.session && req.session.user){
var tmpRoles=[];
if(req.session.user.Roles){
req.session.user.Roles.forEach(r=>{
tmpRoles.push(r.code);
});
//按照角色获取权限列表
var auths=await this.authS.findAuthsByRole(tmpRoles,req.companyid);
var codepathattrs=auths.map(r=>{
if(r.authstrs && r.authstrs!=""){
if(r.codepath) {
var cparr = r.codepath.split("/");
for(var c of cparr) {
tmpRoleCodepathStr.push(c);
}
}
return r.codepath;
}else{
return "";
}
});
for(var i =0;i<cfg.config["rstree"].children.length;i++){
var r=cfg.config["rstree"].children[i];
if(r.isSubmenu){
if(tmpRoleCodepathStr.indexOf(r.code)>=0){
rtnSubs.push({subcode:r.code,subtitle:r.label});
}else{
if(req.session.user.isAdmin){
if(r.code.indexOf("pmg")<0){
rtnSubs.push({subcode:r.code,subtitle:r.label});
}
}
}
}
}
}
}
return system.getResult2(rtnSubs,null);
}
//每个角色有一个code/codepath的集合
//只要当前code出现在codepath中,就返回
//针对叶子节点授权,那么父节点出现在codepath中,所以可以实现父节点返回
async getRsConfig(q,req){
var rs2=[];
console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
var cfg=await this.service.getUiConfig(settings.wxconfig.appId);
console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy");
var tmpRoleCodepathStr=[];
if(req && req.session && req.session.user){
//按照用户查询角色
// try{
// var user= await this.userS.getAuths(req.session.user.id);
// var roles=await user.getRoles({raw:true});
// console.log(roles);
// }catch(e){
// console.log(e);
// }
var tmpRoles=[];
if(req.session.user.Roles){
req.session.user.Roles.forEach(r=>{
tmpRoles.push(r.code);
});
//按照角色获取权限列表
var auths=await this.authS.findAuthsByRole(tmpRoles,req.companyid);
var codepathattrs=auths.map(r=>{
if(r.authstrs && r.authstrs!=""){
if(r.codepath) {
var cparr = r.codepath.split("/");
for(var c of cparr) {
tmpRoleCodepathStr.push(c);
}
}
return r.codepath;
}else{
return "";
}
});
}
}
console.log(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>获取当前登录人的角色,进而获取权限,进而合并工具栏目>>>>>>>>>>>>.getRsConfig");
//获取当前登录人的角色,进而获取权限,进而合并工具栏目
for(var i =0;i<cfg.config["rstree"].children.length;i++){
var r=cfg.config["rstree"].children[i];
console.log(r.code);
var funcrange=function(n){
if(req && req.session && req.session.user){
if( req.session.user.isAdmin || req.session.user.isSuper){
if(n.codePath.indexOf("pmg")<0 && req.session.user.isAdmin ){
n.hidden=false;
}
if(n.codePath.indexOf("pmg")>=0 && req.session.user.isAdmin){
n.hidden=true;
}
if(n.codePath.indexOf("pmg")>=0 && req.session.user.isSuper ){
console.log("isSuperisSuperisSuperisSuperisSuperisSuperisSuperisSuperisSuperisSuper");
n.hidden=false;
}
if(n.codePath.indexOf("pmg")<0 && req.session.user.isSuper && !req.session.user.isAdmin){
console.log("isSuperisSuperisSuperisSuperisSuperisSuperisSuperisSuperisSuperisSuper");
n.hidden=true;
}
}else{
if(tmpRoleCodepathStr.indexOf(n.code)<0){
if(n.isctl && n.isctl=="no"){
n.hidden=false;
console.log(n.code,"no ctl","show menu");
}else {
n.hidden=true;
console.log(n.code,"no authed","hide menu");
}
}else{
n.hidden=false;
console.log(n.code,"authed......","show menu");
}
}
}
if(n.children){
n.children.forEach((dd)=>{
return funcrange(dd);
});
}else{
if(n.isctl && n.isctl=="no"){
n.hidden=false;
}
return;
}
};
funcrange(r);
}
return system.getResult2(cfg.config["rstree"],null);
}
async getRouteConfig(){
var cfg=await this.service.getUiConfig(settings.wxconfig.appId);
//获取当前登录人的角色,进而获取权限,进而合并工具栏目
var tmp={};
tmp.bizs=cfg.config["bizs"];
var products = [];
tmp.ps = [];
return system.getResult2(tmp,null);
}
async getRouteConfigWithoutProduct(){
var cfg=await this.service.getUiConfig(settings.wxconfig.appId);
//获取当前登录人的角色,进而获取权限,进而合并工具栏目
var tmp={};
tmp.bizs=cfg.config["bizs"];
console.log(tmp);
return system.getResult2(tmp,null);
}
}
module.exports=MetaCtl;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class NewschannelCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(NewschannelCtl));
//this.appS=system.getObject("service.appSve");
}
async findAgreenment(queryobj,qobj,req){
var rd=await this.service.findAgreenment();
return system.getResult2(rd,null);
}
async initNewInstance(queryobj,qobj){
var u=uuidv4();
var aid=u.replace(/\-/g,"");
var rd={name:"",appid:aid}
return system.getResult2(rd,null);
}
async findPrev5(queryobj,qobj){
var rd=await this.service.findPrev5();
return system.getResult2(rd,null);
}
}
module.exports=NewschannelCtl;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class OplogCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(OplogCtl));
//this.appS=system.getObject("service.appSve");
}
async initNewInstance(qobj){
var u=uuidv4();
var aid=u.replace(/\-/g,"");
var rd={name:"",appid:aid}
return system.getResult2(rd,null);
}
async debug(obj){
obj.logLevel="debug";
return this.create(null,obj);
}
async info(obj){
obj.logLevel="info";
return this.create(null,obj);
}
async warn(obj){
obj.logLevel="warn";
return this.create(null,obj);
}
async error(obj){
obj.logLevel="error";
return this.create(null,obj);
}
async fatal(obj){
obj.logLevel="fatal";
return this.create(null,obj);
}
}
module.exports=OplogCtl;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class PConfigCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(PConfigCtl));
this.cacheManager=system.getObject("db.cacheManager");
//this.appS=system.getObject("service.appSve");
}
async initNewInstance(queryobj,qobj){
var u=uuidv4();
var aid=u.replace(/\-/g,"");
var rd={name:"",appid:aid}
return system.getResult2(rd,null);
}
async getConfigValue(obj,req){
var configType=obj.configType;
var pconfig=await this.cacheManager["PConfigCache"].cachePConfig();
var result= pconfig.find(item => {
return item.configType === configType;
});
return result;
}
}
module.exports=PConfigCtl;
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
const uiconfig = system.getUiConfig2(settings.wxconfig.appId);
class ProxyapplicantCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(ProxyapplicantCtl));
this.userSve = system.getObject("service.userSve");
this.epartneradvSve = system.getObject("service.epartneradvSve");
}
async advantage() {
var dict = uiconfig.config.pdict.bpoAdvantage;
var list = [];
for (var id in dict) {
list.push({
id: id,
name: dict[id]
});
}
return system.getResult2(list);
}
async apply(queryobj, qobj, req) {
var userName = super.trim(qobj.userName);
var mobile = super.trim(qobj.mobile);
var city = super.trim(qobj.city);
var advList = qobj.advList || [];
if (!userName) {
return system.getErrResult2("请输入姓名");
}
if (userName.length > 20) {
return system.getErrResult2("姓名不能超过20个字");
}
if (!mobile) {
return system.getErrResult2("请输入手机号");
}
if (!/^1[23456789]\d{9}$/.test(mobile)) {
return system.getErrResult2("手机号格式不正确");
}
if (city.length > 20) {
return system.getErrResult2("城市太长了");
}
var applicant = await this.service.findOne({
mobile: mobile,
auditStatus: '1'
});
if (applicant) {
return system.getErrResult2("您已经提交申请, 请耐心等待审核");
}
var puser = await this.userSve.findOne({
mobile: mobile
});
if (puser) {
return system.getErrResult2("您的手机号已注册");
}
applicant = {
userName: userName,
mobile: mobile,
city: city,
intro: "",
owner_id: 0,
auditStatus: '0',
auditStatusName: '待审核',
audit_id: 0,
isEnabled: 1,
advNames: advList.join(",")
}
var rs = await this.service.create(applicant);
if (rs) {
var id = rs.id;
if (advList.length > 0) {
for (var adv of advList) {
this.epartneradvSve.create({
epartner_id: id,
name: adv
});
}
}
}
return system.getResult2(1);
}
async pass(queryobj, qobj, req) {
var id = qobj.id || 0;
try {
var rs = await this.service.auditPass(id, req.session.user.id);
if (rs == -1) {
return system.getErrResult2("该合伙人已审核");
}
if (rs == -2) {
return system.getErrResult2("该合伙人账户已存在");
}
} catch (error) {
console.error(error);
return system.getErrResult2("审核失败, " + error.stack);
}
return system.getResult2("1");
}
async reject(queryobj, qobj, req) {
var id = qobj.id || 0;
var tc = await this.service.findById(id);
if (tc.auditStatus != '0') {
return system.getErrResult2("该合伙人已审核");
}
tc.audit_id = req.session.user.id;
tc.auditStatus = '2';
tc.auditStatusName = '审核驳回';
await tc.save();
return system.getResult2(tc);
}
}
module.exports = ProxyapplicantCtl;
\ No newline at end of file
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class regionareaCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(regionareaCtl));
}
}
module.exports=regionareaCtl ;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class RoleCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(RoleCtl));
//this.appS=system.getObject("service.appSve");
}
async initNewInstance(queryobj,req){
return system.getResult2({},null);
}
}
module.exports=RoleCtl;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class TaskCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(TaskCtl));
}
async restartTasks(queryobj,qobj){
var result=await this.service.restartTasks(qobj);
return system.getResult2(result,null);
}
async restartTasks2(queryobj,qobj){
var result=await this.service.restartTasks2(qobj);
return system.getResult2(result,null);
}
async initNewInstance(queryobj,qobj){
var u=uuidv4();
var aid=u.replace(/\-/g,"");
var rd={name:"",appid:aid}
return system.getResult2(rd,null);
}
async makerpt(queryobj,qobj){
var result=await this.service.makerpt(qobj);
return system.getResult2(result,null);
}
}
module.exports=TaskCtl;
var System=require("../../system")
const crypto = require('crypto');
var fs=require("fs");
var accesskey='DHmRtFlw2Zr3KaRwUFeiu7FWATnmla';
var accessKeyId='LTAIyAUK8AD04P5S';
var url="https://gsb-zc.oss-cn-beijing.aliyuncs.com";
class UploadCtl{
constructor(){
this.cmdPdf2HtmlPattern = "docker run -i --rm -v /tmp/:/pdf 0c pdf2htmlEX --zoom 1.3 '{fileName}'";
this.restS=System.getObject("util.execClient");
this.cmdInsertToFilePattern = "sed -i 's/id=\"page-container\"/id=\"page-container\" contenteditable=\"true\"/'";
//sed -i 's/1111/&BBB/' /tmp/input.txt
//sed 's/{position}/{content}/g' {path}
}
async getOssConfig(){
var policyText = {
"expiration":"2119-12-31T16:00:00.000Z",
"conditions":[
["content-length-range",0,1048576000],
["starts-with","$key","zc"]
]
};
var b = new Buffer(JSON.stringify(policyText));
var policyBase64 = b.toString('base64');
var signature= crypto.createHmac('sha1',accesskey).update(policyBase64).digest().toString('base64'); //base64
var data={
OSSAccessKeyId:accessKeyId,
policy:policyBase64,
Signature:signature,
Bucket:'gsb-zc',
success_action_status:201,
url:url
};
return data;
};
async upfile(srckey,dest){
var oss=System.getObject("util.ossClient");
var result=await oss.upfile(srckey,"/tmp/"+dest);
return result;
};
async downfile(srckey){
var oss=System.getObject("util.ossClient");
var downfile=await oss.downfile(srckey).then(function(){
downfile="/tmp/"+srckey;
return downfile;
});
return downfile;
};
async pdf2html(obj){
var srckey=obj.key;
var downfile=await this.downfile(srckey);
var cmd=this.cmdPdf2HtmlPattern.replace(/\{fileName\}/g, srckey);
var rtn=await this.restS.exec(cmd);
var path="/tmp/"+srckey.split(".pdf")[0]+".html";
var a=await this.insertToFile(path);
fs.unlink("/tmp/"+srckey);
var result=await this.upfile(srckey.split(".pdf")[0]+".html",srckey.split(".pdf")[0]+".html");
return result.url;
};
async insertToFile(path){
var cmd=this.cmdInsertToFilePattern+" "+path;
return await this.restS.exec(cmd);
};
}
module.exports=UploadCtl;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class UserbpocompanyCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(UserbpocompanyCtl));
//this.appS=system.getObject("service.appSve");
}
async save(q, obj, req) {
console.log(obj, "=============================================");
try {
var page = await this.service.save(obj.uid, obj.names);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
async userCompanys(q, obj, req) {
console.log(obj, "=============================================");
try {
var page = await this.service.byUserId(obj.uid);
return system.getResult2(page);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
}
module.exports=UserbpocompanyCtl;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class UsereaccountCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(UsereaccountCtl));
}
//解析Excel中,批量导入签约人员信息
async parseItems(queryobj, qobj, req) {
try {
var rs = await this.service.parseItems(req.session.user.id, qobj.url);
if(rs.code == 0) {
return system.getErrResult2(rs.msg || "文件解析失败");
}
return system.getResult2(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试");
}
}
}
module.exports=UsereaccountCtl;
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
class WxCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(WxCtl));
this.execClient = system.getObject("util.execClient");
this.redisClient = system.getObject("util.redisClient");
}
async fetchOAuthPath(q, obj, req) {
var appk = obj.apk;
var subfixstr = obj.subfix;
if (appk == "") {
appk = null;
}
if (subfixstr == "") {
subfixstr = null;
}
var result = await this.service.fetchOAuthPath(appk, subfixstr);
return system.getResult2(result, null);
}
async getJsApiConfig(q, obj) {
console.log("getJsApiConfig.......................");
console.log(obj.url);
var result = await this.service.getJsApiConfig(null, obj.url);
return system.getResult2(result, null);
}
async wxuseropenid(q, obj, req) {
var code = obj.code;
var redisKey = "bpo_code_openid_" + code;
var openId = await this.redisClient.get(redisKey);
if(openId) {
return system.getResult2(openId);
}
var rtn = null;
var url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxf616c0a459d66081&secret=35275146272c7c862ff4b1ba11282d02&code=" + code + "&grant_type=authorization_code";
try {
rtn = await this.execClient.execGet({}, url);
console.log(rtn);
var result = JSON.parse(rtn.stdout);
if(result.openid) {
await this.redisClient.set(redisKey, result.openid, 6 * 60 * 60);
return system.getResult2(result.openid);
}
return system.getErrResult2("openId获取失败,请重新打开页面");
} catch (e) {
console.log(e);
return system.getErrResult2(JSON.stringify(rtn) || "openId获取失败,请关闭页面重试");
}
}
}
module.exports = WxCtl;
\ No newline at end of file
const system=require("../system")
class CacheBase{
constructor(){
this.redisClient=system.getObject("util.redisClient");
this.desc="请在子类中定义本缓存的说明!"
}
}
module.exports=CacheBase;
const CacheBase = require("../cache.base");
const system = require("../../system");
const settings=require("../../../config/settings");
//缓存首次登录的赠送的宝币数量
class AppCache extends CacheBase {
constructor() {
super();
this.domain = settings.domain();
this.appMap = {
'wxf616c0a459d66081': {
appid: 'wxf616c0a459d66081',
secret: "35275146272c7c862ff4b1ba11282d02",
name: '薪必果',
homePage: this.domain + 'h5',
authPage: this.domain + 'ec',
}
};
}
async cacheApp(appkey) {
var configValue = await this.appMap[appkey];
if (configValue) {
return configValue;
} else {
console.log("uiconfig already cache....");
}
return null;
}
}
module.exports = AppCache;
\ No newline at end of file
const CacheBase = require("../cache.base");
const system = require("../../system");
class AppletUserinfoCache extends CacheBase {
constructor() {
super();
this.userDao = system.getObject("db.userDao");
this.globalKeyPrefix = "applet_userinfo";
}
async del(openid, appid) {
var key = (appid || this.globalKeyPrefix) + "_" + openid;
await this.redisClient.delete(key);
}
async set(openid, value, appid) {
var key = (appid || this.globalKeyPrefix) + "_" + openid;
this.redisClient.set(key, value);
return key;
}
async get(openid, appid) {
var key = (appid || this.globalKeyPrefix) + "_" + openid;
const value = await this.redisClient.get(key);
if (value) {
return value;
} else {
var user = await this.userDao.getUserByOpenId(openid);
user = JSON.stringify(user);
if (user != null && user != "") {
await this.redisClient.set(key, user);
return user;
} else {
return null;
}
}
}
}
module.exports = AppletUserinfoCache;
\ No newline at end of file
const CacheBase=require("../cache.base");
const system=require("../../system");
//缓存首次登录的赠送的宝币数量
class MagCache extends CacheBase{
constructor(){
super();
this.prefix="magCache";
}
async keys(p){
console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcache");
return this.redisClient.keys(p);
}
async get(k){
return this.redisClient.get(k);
}
async del(k){
return this.redisClient.delete(k);
}
async clearAll(){
console.log("xxxxxxxxxxxxxxxxxxxclearAll............");
return this.redisClient.flushall();
}
}
module.exports=MagCache;
const CacheBase=require("../cache.base");
const system=require("../../system");
const settings=require("../../../config/settings");
//缓存首次登录的赠送的宝币数量
class UIConfigCache extends CacheBase{
constructor(){
super();
this.prefix="g_uiconfig_";
}
async cacheUiConfig(appid){
var configValue =system.getUiConfig2(appid);
return configValue;
}
}
module.exports=UIConfigCache;
const CacheBase=require("../cache.base");
const system=require("../../system");
const wxFunc=require("../../service/wxsvr");
//缓存首次登录的赠送的宝币数量
class WxCache extends CacheBase{
constructor(){
super();
this.prefix="wx_";
this.accessTokenUrl="https://api.weixin.qq.com/cgi-bin/token";
this.desc="缓存访问key,js票据";
this.restClient=system.getObject("util.restClient");
}
async cacheAccessToken(appkey){
const key=this.prefix+appkey+"_"+"accesskey";
var configValue=await this.redisClient.get(key);
if(!configValue || configValue=="undefined"){
//x随便定义获取一个weixin
var configData=wxFunc("x").getAccessConfig(appkey);
console.log(configData);
var akobjout=await this.restClient.execGet2(configData,this.accessTokenUrl);
console.log(akobjout);
var akobj=JSON.parse(akobjout.stdout);
await this.redisClient.setWithEx(key,akobj.access_token,7000);
return akobj.access_token;
}else {
console.log("cache already cache....");
}
return configValue;
}
async cacheJsConfigTicket(appkey){
const key=this.prefix+appkey+"_"+"jsticket";
var ticketUrl="https://api.weixin.qq.com/cgi-bin/ticket/getticket";
var configValue=await this.redisClient.get(key);
if(!configValue || configValue=="undefined"){
var acck=await this.cacheAccessToken(appkey);
var subdata={
access_token:acck,
type:"jsapi",
};
var ticketobjout=await this.restClient.execGet2(subdata,ticketUrl);
var ticketobj=JSON.parse(ticketobjout.stdout);
await this.redisClient.setWithEx(key,ticketobj.ticket,7000);
return ticketobj.ticket;
}else {
console.log("cache already cache....");
}
return configValue;
}
}
module.exports=WxCache;
// var wc=new WxCache();
// wc.cacheJsConfigTicket("wx4c91e81bbb6039cd").then(d=>{
// console.log(d);
// });
// var configData=wx.getAccessConfig();
// wc.restClient.execGet2(configData,wc.accessTokenUrl).then(
// d=>{
// console.log(d.stdout);
// }
// );
const system=require("../system");
class Dao{
constructor(modelName){
this.modelName=modelName;
var db=system.getObject("db.connection").getCon();
this.db=db;
console.log("........set dao model..........");
this.model=db.models[this.modelName];
}
preCreate(u){
return u;
}
async create(u,t){
var u2=this.preCreate(u);
if(t){
return this.model.create(u2,{transaction: t}).then(u=>{
return u;
});
}else{
return this.model.create(u2,{transaction: t}).then(u=>{
return u;
});
}
}
static getModelName(ClassObj){
return ClassObj["name"].substring(0,ClassObj["name"].lastIndexOf("Dao")).toLowerCase()
}
async refQuery(qobj){
var w =qobj.refwhere? qobj.refwhere:{};
if(qobj.levelinfo){
w[qobj.levelinfo.levelfield]=qobj.levelinfo.level;
}
if(qobj.parentinfo){
w[qobj.parentinfo.parentfield]=qobj.parentinfo.parentcode;
}
if(qobj.likestr){
w[qobj.fields[0]]={[this.db.Op.like]:"%"+qobj.likestr+"%"};
return this.model.findAll({where:w,attributes:qobj.fields});
}else{
return this.model.findAll({where:w,attributes:qobj.fields});
}
}
async bulkDelete(ids){
var en= await this.model.destroy({where:{id:{[this.db.Op.in]:ids}}});
return en;
}
async delete(qobj){
var en= await this.model.findOne({where:qobj});
if(en!=null){
return en.destroy();
}
return null;
}
extraModelFilter(){
//return {"key":"include","value":{model:this.db.models.app}};
return null;
}
extraWhere(obj,where){
return where;
}
orderBy(){
//return {"key":"include","value":{model:this.db.models.app}};
return [["created_at","DESC"]];
}
buildQuery(qobj){
var linkAttrs=[];
const pageNo=qobj.pageInfo.pageNo;
const pageSize=qobj.pageInfo.pageSize;
const search=qobj.search;
const raw = qobj.raw;
var qc={};
//设置分页查询条件
qc.limit=pageSize;
qc.offset=(pageNo-1)*pageSize;
if(qobj.distinct) {
qc.distinct = true;
}
//默认的查询排序
qc.order=this.orderBy();
//构造where条件
qc.where= qobj.customizedWhereObj || {};
if(search){
Object.keys(search).forEach(k=>{
console.log(search[k],":search[k]search[k]search[k]");
if(search[k] && search[k]!='undefined' && search[k]!=""){
if((k.indexOf("Date")>=0 || k.indexOf("_at")>=0 )){
if(search[k]!="" && search[k]){
var stdate=new Date(search[k][0]);
var enddate=new Date(search[k][1]);
qc.where[k]={[this.db.Op.between]:[stdate,enddate]};
}
}
else if (k.indexOf("id")>=0) {
qc.where[k]=search[k];
}
else if (k.indexOf("channelCode")>=0) {
qc.where[k]=search[k];
}
else if (k.indexOf("Type")>=0) {
qc.where[k]=search[k];
}
else if (k.indexOf("Status")>=0) {
qc.where[k]=search[k];
}
else if (k.indexOf("status")>=0) {
qc.where[k]=search[k];
}
else if (k.indexOf("pcode")>=0 || k.indexOf("ccode")) {
qc.where[k]=search[k];
}
else{
if(k.indexOf("~")>=0){
linkAttrs.push(k);
}else{
qc.where[k]={[this.db.Op.like]:"%"+search[k]+"%"};
}
}
}
});
}
this.extraWhere(qobj,qc.where,qc,linkAttrs);
var extraFilter=this.extraModelFilter(qobj);
if(extraFilter){
qc[extraFilter.key]=extraFilter.value;
}
if(raw) {
qc.raw = true;
}
console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm");
console.log(qc);
return qc;
}
async findAndCountAll(qobj,t){
var qc=this.buildQuery(qobj);
var apps= await this.model.findAndCountAll(qc);
return apps;
}
preUpdate(obj){
return obj;
}
async update(obj,tm){
var obj2=this.preUpdate(obj);
if(tm!=null && tm!='undefined'){
return this.model.update(obj2,{where:{id:obj2.id},transaction:tm});
}else {
return this.model.update(obj2,{where:{id:obj2.id}});
}
}
async updateByWhere(setObj,whereObj,t){
if(t&&t!='undefined'){
if(whereObj&&whereObj!='undefined'){
whereObj.transaction=t;
} else {
whereObj={transaction: t};
}
}
return this.model.update(setObj,whereObj);
}
async customExecAddOrPutSql(sql,paras, t){
paras = paras || {};
if(t) {
params.transaction = t;
}
return this.db.query(sql,paras);
}
async customQuery(sql,paras,t){
var tmpParas=null;//||paras=='undefined'?{type: this.db.QueryTypes.SELECT }:{ replacements: paras, type: this.db.QueryTypes.SELECT };
if(t&&t!='undefined'){
if(paras==null||paras=='undefined'){
tmpParas={type: this.db.QueryTypes.SELECT };
tmpParas.transaction=t;
}else {
tmpParas={replacements: paras, type: this.db.QueryTypes.SELECT };
tmpParas.transaction=t;
}
}else {
tmpParas=paras==null||paras=='undefined'?{type: this.db.QueryTypes.SELECT }:{ replacements: paras, type: this.db.QueryTypes.SELECT };
}
return this.db.query(sql,tmpParas);
}
async findCount(whereObj=null){
return this.model.count(whereObj, {logging : false}).then(c=>{
return c;
});
}
async findSum(fieldName,whereObj=null){
return this.model.sum(fieldName,whereObj);
}
async getPageList(pageIndex,pageSize,whereObj=null,orderObj=null,attributesObj=null,includeObj=null){
var tmpWhere={};
tmpWhere.limit=pageSize;
tmpWhere.offset= (pageIndex - 1) * pageSize;
if(whereObj!=null){
tmpWhere.where=whereObj;
}
if(orderObj!=null&&orderObj.length>0){
tmpWhere.order=orderObj;
}
if(attributesObj!=null&&attributesObj.length>0){
tmpWhere.attributes=attributesObj;
}
if(includeObj!=null&&includeObj.length>0){
tmpWhere.include=includeObj;
tmpWhere.distinct=true;
}
tmpWhere.raw=true;
return await this.model.findAndCountAll(tmpWhere);
}
async findOne(obj){
return this.model.findOne({"where":obj});
}
async findById(oid){
return this.model.findById(oid);
}
}
module.exports=Dao;
const system=require("../../system");
const Dao=require("../dao.base");
class AccountDao extends Dao{
constructor(){
super(Dao.getModelName(AccountDao));
}
async findOrCreate(ac,t){
var account= await this.model.findOne({where:{unionId:ac.unionId}},{transaction:t});
if(account){
return account;
}else{
account=await this.model.create(ac,{transaction:t});
return account;
}
}
async findOneByOnlyCode(onlycode){
return this.model.findOne({"where":{"onlyCode":onlycode}});
}
}
module.exports=AccountDao;
const system=require("../../system");
const Dao=require("../dao.base");
class AppDao extends Dao{
constructor(){
super(Dao.getModelName(AppDao));
}
async findOne(paramappid,t){
if(t){
var app= await this.model.findOne({where:{appid:paramappid}},{transaction:t});
return app;
}else{
var app= await this.model.findOne({where:{appid:paramappid}});
return app;
}
}
extraWhere(qobj,qw,qc){
qc.raw=true;
return qw;
}
}
module.exports=AppDao;
const system=require("../../system");
const Dao=require("../dao.base");
class ArticleDao extends Dao{
constructor(){
super(Dao.getModelName(ArticleDao));
}
extraModelFilter(){
return {"key":"include","value":[{model:this.db.models.newschannel,attributes:["id","title"]},]};
}
orderBy(){
//return {"key":"include","value":{model:this.db.models.app}};
return [["orderNo","ASC"]];
}
}
module.exports=ArticleDao;
const system=require("../../system");
const Dao=require("../dao.base");
class AuthDao extends Dao{
constructor(){
super(Dao.getModelName(AuthDao));
}
extraWhere(qobj,qw,qc){
qc.raw=true;
return qw;
}
}
module.exports=AuthDao;
const system=require("../../system");
const Dao=require("../dao.base");
class Bankthreelog2Dao extends Dao{
constructor(){
super(Dao.getModelName(Bankthreelog2Dao));
}
}
module.exports=Bankthreelog2Dao;
const system=require("../../system");
const Dao=require("../dao.base");
class BankthreelogDao extends Dao{
constructor(){
super(Dao.getModelName(BankthreelogDao));
}
}
module.exports=BankthreelogDao;
const fs = require("fs");
const settings = require("../../../config/settings");
class CacheManager {
constructor() {
//await this.buildCacheMap();
this.buildCacheMap();
}
buildCacheMap() {
var self = this;
self.doc = {};
var cachePath = settings.basepath + "/app/base/db/cache/";
const files = fs.readdirSync(cachePath);
if (files) {
files.forEach(function (r) {
var classObj = require(cachePath + "/" + r);
self[classObj.name] = new classObj();
var refTmp = self[classObj.name];
if (refTmp.prefix) {
self.doc[refTmp.prefix] = refTmp.desc;
} else {
console.log("请在" + classObj.name + "缓存中定义prefix");
}
});
}
}
}
module.exports = CacheManager;
// var cm= new CacheManager();
// cm["InitGiftCache"].cacheGlobalVal("hello").then(function(){
// cm["InitGiftCache"].cacheGlobalVal().then(x=>{
// console.log(x);
// });
// });
\ No newline at end of file
const Sequelize = require('sequelize');
const settings = require("../../../config/settings")
const fs = require("fs")
const path = require("path");
class DbFactory {
constructor() {
const dbConfig = settings.database();
this.db = new Sequelize(dbConfig.dbname,
dbConfig.user,
dbConfig.password,
dbConfig.config);
this.db.Sequelize = Sequelize;
this.db.Op = Sequelize.Op;
// 结算数据库配置
const settleConfig = settings.settleDB();
this.settledb = new Sequelize(settleConfig.dbname,
settleConfig.user,
settleConfig.password,
settleConfig.config);
this.settledb.Sequelize = Sequelize;
this.settledb.Op = Sequelize.Op;
this.initModels();
this.initRelations();
}
async initModels() {
var self = this;
var modelpath = path.normalize(path.join(__dirname, '..')) + "/models/";
var models = fs.readdirSync(modelpath);
models.forEach(function (m) {
self.db.import(modelpath + m);
});
console.log("init models....");
}
async initRelations() {
/**
一个账户对应多个登陆用户
一个账户对应一个commany
一个APP对应多个登陆用户
一个APP有多个角色
登陆用户和角色多对多
**/
/*建立用户和角色之间的关系*/
this.db.models.user.belongsToMany(this.db.models.role, {
as: "Roles",
through: 'p_userrole',
constraints: false,
});
this.db.models.role.belongsToMany(this.db.models.user, {
as: "Users",
through: 'p_userrole',
constraints: false,
});
/*建立频道和文章之间的关系*/
this.db.models.article.belongsTo(this.db.models.newschannel, {
constraints: false,
});
this.db.models.newschannel.hasMany(this.db.models.article, {
constraints: false,
});
this.db.models.etemplate.belongsTo(this.db.models.ecompany, {
constraints: false,
});
this.db.models.ecompany.hasMany(this.db.models.etemplate, {
constraints: false,
});
this.db.models.econtract.belongsTo(this.db.models.etemplate, {
constraints: false,
});
this.db.models.etemplate.hasMany(this.db.models.econtract, {
constraints: false,
});
this.db.models.econtract.belongsTo(this.db.models.user, {
constraints: false,
});
this.db.models.econtract.belongsTo(this.db.models.usereaccount, {
constraints: false,
});
this.db.models.user.hasMany(this.db.models.econtract, {
constraints: false,
});
this.db.models.econtract.belongsTo(this.db.models.ecompany, {
constraints: false,
});
this.db.models.ecompany.hasMany(this.db.models.econtract, {
constraints: false,
});
this.db.models.usereaccount.belongsTo(this.db.models.user, {
constraints: false,
});
}
//async getCon(){,用于使用替换table模型内字段数据使用
getCon() {
var that = this;
// await this.db.authenticate().then(()=>{
// console.log('Connection has been established successfully.');
// }).catch(err => {
// console.error('Unable to connect to the database:', err);
// throw err;
// });
//同步模型
if (settings.env == "dev") {}
return this.db;
}
getSettleDBCon() {
var that = this;
if (settings.env == "dev") {}
return this.settledb;
}
}
module.exports = DbFactory;
\ No newline at end of file
const system=require("../../system");
const Dao=require("../dao.base");
class DKaggreementDao extends Dao{
constructor(){
super(Dao.getModelName(DKaggreementDao));
}
async findMapByIds(ids, attrs) {
var result = [];
if(!ids || ids.length == 0) {
return result;
}
attrs = attrs || "*";
var sql = "SELECT " + attrs + " FROM c_dkaggreement where id IN (:ids) ";
var list = await this.customQuery(sql, {ids:ids});
if(!list || list.length == 0) {
return result;
}
for(var item of list) {
result["id_" + item.id] = item;
}
return result;
}
}
module.exports=DKaggreementDao;
const system = require("../../system");
const Dao = require("../dao.base");
class DKcompanyDao extends Dao {
constructor() {
super(Dao.getModelName(DKcompanyDao));
}
async findMapByIds(ids, attrs) {
var result = [];
if(!ids || ids.length == 0) {
return result;
}
attrs = attrs || "*";
var sql = "SELECT " + attrs + " FROM c_dkcompany where id IN (:ids) ";
var list = await this.customQuery(sql, {ids:ids});
if(!list || list.length == 0) {
return result;
}
for(var item of list) {
result["id_" + item.id] = item;
}
return result;
}
async idsLikeName(name) {
var result = [];
if(!name || !name.trim()) {
return result;
}
var sql = "SELECT id FROM c_dkcompany WHERE name LIKE :name ";
var list = await this.customQuery(sql, {name : "%" + name + "%"});
if(list) {
for(var item of list) {
result.push(item.id);
}
}
return result;
}
async findNamesByOwnerIds(ownerIds) {
var result = [];
if(!ownerIds || ownerIds.length == 0) {
return result;
}
var sql = "SELECT name FROM c_dkcompany WHERE owner_id IN (:ownerIds) ";
var list = await this.customQuery(sql, {ownerIds: ownerIds});
if(!list || list.length == 0) {
return result;
}
for(var item of list) {
result.push(item.name);
}
return result;
}
async findIdsByOwnerIds(ownerIds) {
var result = [];
if(!ownerIds || ownerIds.length == 0) {
return result;
}
var sql = "SELECT id FROM c_dkcompany WHERE owner_id IN (:ownerIds) ";
var list = await this.customQuery(sql, {ownerIds: ownerIds});
if(!list || list.length == 0) {
return result;
}
for(var item of list) {
result.push(item.id);
}
return result;
}
async findMapByNames(names, attrs) {
var result = [];
if(!ids || ids.length == 0) {
return result;
}
attrs = attrs || "*";
var sql = "SELECT " + attrs + " FROM c_dkcompany where name IN (:names) WHERE deleted_at IS NULL ";
var list = await this.customQuery(sql, {names:names});
if(!list || list.length == 0) {
return result;
}
for(var item of list) {
result[item.name] = item;
}
return result;
}
async suggest(name, ownerIds) {
if(!name) {
return [];
}
var sql = "SELECT id, name FROM `c_dkcompany` WHERE name LIKE :queryLike AND deleted_at IS NULL ";
if(ownerIds && ownerIds.length > 0) {
sql = sql + " AND owner_id IN (:ownerIds) ";
}
sql = sql + " ORDER BY id ASC ";
var list = await this.customQuery(sql, {queryLike: "%" + name + "%", ownerIds: ownerIds});
return list || [];
}
}
module.exports = DKcompanyDao;
\ No newline at end of file
const system=require("../../system");
const Dao=require("../dao.base");
class DKcontractDao extends Dao{
constructor(){
super(Dao.getModelName(DKcontractDao));
}
}
module.exports=DKcontractDao;
const system=require("../../system");
const Dao=require("../dao.base");
class DKtemplateDao extends Dao{
constructor(){
super(Dao.getModelName(DKtemplateDao));
}
}
module.exports=DKtemplateDao;
const system=require("../../system");
const Dao=require("../dao.base");
class EbankDao extends Dao{
constructor(){
super(Dao.getModelName(EbankDao));
}
}
module.exports=EbankDao;
const system = require("../../system");
const Dao = require("../dao.base");
class EcompanyDao extends Dao {
constructor() {
super(Dao.getModelName(EcompanyDao));
}
extraWhere(obj,w){
//如果是我的客户
if(obj.ownerIds) {
w["owner_id"] = {
[this.db.Op.in]: obj.ownerIds
};
}
return w;
}
async findMapByIds(ids, attrs) {
var result = [];
if(!ids || ids.length == 0) {
return result;
}
attrs = attrs || "*";
var sql = "SELECT " + attrs + " FROM c_ecompany where id IN (:ids) ";
var list = await this.customQuery(sql, {ids:ids});
if(!list || list.length == 0) {
return result;
}
for(var item of list) {
result["id_" + item.id] = item;
}
return result;
}
async idsLikeName(name) {
var result = [];
if(!name || !name.trim()) {
return result;
}
var sql = "SELECT id FROM c_ecompany WHERE name LIKE :name ";
var list = await this.customQuery(sql, {name : "%" + name + "%"});
if(list) {
for(var item of list) {
result.push(item.id);
}
}
return result;
}
async findNamesByEPartnerId(epartnerId) {
var result = [];
if(!epartnerId) {
return result;
}
var sql = "SELECT name FROM c_ecompany WHERE epartner_id = " + epartnerId;
var list = await this.customQuery(sql);
if(!list || list.length == 0) {
return result;
}
for(var item of list) {
result.push(item.name);
}
return result;
}
async findNamesByOwnerIds(ownerIds) {
var result = [];
if(!ownerIds || ownerIds.length == 0) {
return result;
}
var sql = "SELECT name FROM c_ecompany WHERE owner_id IN (:ownerIds) ";
var list = await this.customQuery(sql, {ownerIds: ownerIds});
if(!list || list.length == 0) {
return result;
}
for(var item of list) {
result.push(item.name);
}
return result;
}
async findIdsByOwnerIds(ownerIds) {
var result = [];
if(!ownerIds || ownerIds.length == 0) {
return result;
}
var sql = "SELECT id FROM c_ecompany WHERE owner_id IN (:ownerIds) ";
var list = await this.customQuery(sql, {ownerIds: ownerIds});
if(!list || list.length == 0) {
return result;
}
for(var item of list) {
result.push(item.id);
}
return result;
}
async findMapByNames(names, attrs) {
var result = [];
if(!ids || ids.length == 0) {
return result;
}
attrs = attrs || "*";
var sql = "SELECT " + attrs + " FROM c_ecompany where name IN (:names) WHERE deleted_at IS NULL ";
var list = await this.customQuery(sql, {names:names});
if(!list || list.length == 0) {
return result;
}
for(var item of list) {
result[item.name] = item;
}
return result;
}
async suggest(name, ownerIds) {
if(!name) {
return [];
}
var sql = "SELECT id, name FROM `c_ecompany` WHERE name LIKE :queryLike AND deleted_at IS NULL ";
if(ownerIds && ownerIds.length > 0) {
sql = sql + " AND owner_id IN (:ownerIds) ";
}
sql = sql + " ORDER BY id ASC ";
var list = await this.customQuery(sql, {queryLike: "%" + name + "%", ownerIds: ownerIds});
return list || [];
}
}
module.exports = EcompanyDao;
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed. Click to expand it.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed. Click to expand it.
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