Commit 9a557a21 by 王勇飞

Merge branch 'gsb-center-manage' of gitlab.gongsibao.com:jiangyong/zhichan into gsb-center-manage

parents bdbe32bf 4e733e98
...@@ -55,7 +55,27 @@ module.exports = (db, DataTypes) => { ...@@ -55,7 +55,27 @@ module.exports = (db, DataTypes) => {
regiontags: { regiontags: {
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
}// 区域标签 },// 区域标签
openid: {
type: DataTypes.STRING,
allowNull: true,
},
unid: {
type: DataTypes.STRING,
allowNull: true,
},
isDelivery: {
type: DataTypes.BOOLEAN,
defaultValue: false
},
isSalesman: {
type: DataTypes.BOOLEAN,
defaultValue: false
},
isAllArea: {
type: DataTypes.BOOLEAN,
defaultValue: false
}
}, { }, {
paranoid: true,//假的删除 paranoid: true,//假的删除
underscored: true, underscored: true,
......
...@@ -115,7 +115,6 @@ class UserService extends ServiceBase { ...@@ -115,7 +115,6 @@ class UserService extends ServiceBase {
//创建统一账号 to add extra fields //创建统一账号 to add extra fields
let cred = await self.cregister(u.userName, p.company_id, p.password, u.id + "") let cred = await self.cregister(u.userName, p.company_id, p.password, u.id + "")
console.log("......................................"); console.log("......................................");
console.log(cred.consumer.id);
if (cred) { if (cred) {
u.center_id = cred.consumer.id; u.center_id = cred.consumer.id;
u.jwtkey = cred.key; u.jwtkey = cred.key;
...@@ -392,7 +391,7 @@ class UserService extends ServiceBase { ...@@ -392,7 +391,7 @@ class UserService extends ServiceBase {
*/ */
async getBizUserForBizChance (clientMobile, spName, productCatName, regionName) { async getBizUserForBizChance (clientMobile, spName, productCatName, regionName) {
var self = this var self = this
clientMobile = clientMobile + "_" + spName + "_" + regionName clientMobile = clientMobile + "_" + spName + "_" + regionName + "_" + productCatName
//按照服务商名字查询到公司,按照公司查询出users,条件是可以接受派单任务,并且技能标签含有,产品类别名称 //按照服务商名字查询到公司,按照公司查询出users,条件是可以接受派单任务,并且技能标签含有,产品类别名称
return this.db.transaction(async function (t) { return this.db.transaction(async function (t) {
//先检查缓存是否存在bizuser //先检查缓存是否存在bizuser
...@@ -420,13 +419,13 @@ class UserService extends ServiceBase { ...@@ -420,13 +419,13 @@ class UserService extends ServiceBase {
let users = companyFind.us let users = companyFind.us
let cansels = users.filter(u => { let cansels = users.filter(u => {
if (regionName && regionName != "" && u.regiontags) { if (regionName && regionName != "" && u.regiontags) {
if (u.isAllocated && u.skilltags.indexOf(productCatName) >= 0 && u.regiontags.indexOf(regionName) >= 0) { if (u.isAllocated && u.isSalesman && u.skilltags.indexOf(productCatName) >= 0 && u.regiontags.indexOf(regionName) >= 0) {
return true return true
} else { } else {
return false return false
} }
} else { } else {
if (u.isAllocated && u.skilltags.indexOf(productCatName) >= 0) { if (u.isAllocated && u.isSalesman && u.isAllArea && u.skilltags.indexOf(productCatName) >= 0) {
return true return true
} else { } else {
return false return false
...@@ -471,7 +470,7 @@ class UserService extends ServiceBase { ...@@ -471,7 +470,7 @@ class UserService extends ServiceBase {
* @param {*} regionName 区域 * @param {*} regionName 区域
*/ */
async getBizUserForDelivery (xclientMobile, spName, productCatName, skucode, regionName) { async getBizUserForDelivery (xclientMobile, spName, productCatName, skucode, regionName) {
let clientMobile = 'fordeliver' + xclientMobile + "_" + spName + "_" + regionName let clientMobile = 'fordeliver' + xclientMobile + "_" + spName + "_" + regionName + "_" + productCatName
var self = this var self = this
//按照服务商名字查询到公司,按照公司查询出users,条件是可以接受派单任务,并且技能标签含有,产品类别名称 //按照服务商名字查询到公司,按照公司查询出users,条件是可以接受派单任务,并且技能标签含有,产品类别名称
return this.db.transaction(async function (t) { return this.db.transaction(async function (t) {
...@@ -519,13 +518,13 @@ class UserService extends ServiceBase { ...@@ -519,13 +518,13 @@ class UserService extends ServiceBase {
let users = companyFind.us let users = companyFind.us
let cansels = users.filter(u => { let cansels = users.filter(u => {
if (regionName && regionName != "" && u.regiontags) { if (regionName && regionName != "" && u.regiontags) {
if (u.isAllocated && u.skilltags.indexOf(productCatName) >= 0 && u.regiontags.indexOf(regionName) >= 0) { if (u.isAllocated && u.isDelivery && u.skilltags.indexOf(productCatName) >= 0 && u.regiontags.indexOf(regionName) >= 0) {
return true return true
} else { } else {
return false return false
} }
} else { } else {
if (u.isAllocated && u.skilltags.indexOf(productCatName) >= 0) { if (u.isAllocated && u.isDelivery && u.isAllArea && u.skilltags.indexOf(productCatName) >= 0) {
return true return true
} else { } else {
return false return false
...@@ -561,6 +560,108 @@ class UserService extends ServiceBase { ...@@ -561,6 +560,108 @@ class UserService extends ServiceBase {
} }
}) })
} }
/**
* 阿里交付单分配规则(交付单处理业务员和交付员不是一个同一人)
* @param {*} xclientMobile 客户电话
* @param {*} spName 服务商名称
* @param {*} productCatName 产品类型名称
* @param {*} skucode 最小销售货品编码,来自渠道上架的码
* @param {*} regionName 区域
*/
async getBizUserForAliDelivery (xclientMobile, spName, productCatName, skucode, regionName) {
let clientMobile = 'fordeliver' + xclientMobile + "_" + spName + "_" + regionName
let self = this
//按照服务商名字查询到公司,按照公司查询出users,条件是可以接受派单任务,并且技能标签含有,产品类别名称
return this.db.transaction(async function (t) {
//按照产品简码,查询服务成本
let productpricetmp = await self.db.models.productprice.findOne({
where: { skucode: skucode },
include: [
{ model: self.db.models.productcost, as: "costs", attributes: ['id', 'expensetype', 'costamount'] }
],
transaction: t
}
)
let serviceCost = productpricetmp.costs.filter(c => {
if (c.expensetype == "service") {
return true
}
})
let costAmount = 0
//获取服务费成本
if (serviceCost.length > 0) {
costAmount = serviceCost[0].costamount
}
//先检查缓存是否存在bizuser
let resultcache = await self.cacheManager["DeliveryBizUserCache"].getCache(clientMobile)
let isGoExec = false
if (!resultcache) {
isGoExec = true
} else {
let uname = resultcache.userName
let ucache = await self.cacheManager["UserCache"].cache(uname)
if (!ucache.isAllocated) {//解决修改为不接单
isGoExec = true
await self.cacheManager["DeliveryBizUserCache"].invalidate(clientMobile)
}
}
//TODO 查询数据库user表来获取交付员信息 需要根据是否是"交付员"字段筛选(派单规则是将交付单派给交付员)
if (isGoExec) {
let companyFind = await self.companyDao.model.findOne({
where: { name: spName }, include: [
{
model: self.db.models.user, as: "us", attributes: ['id', 'userName', 'mobile', 'isAllocated', 'opath', 'skilltags'], raw: true
}
], excludes: ['orgJson'], transaction: t
});
let users = companyFind.us
let cansels = users.filter(u => {
if (regionName && regionName != "" && u.regiontags) {
if (u.isAllocated && u.isDelivery && u.skilltags.indexOf(productCatName) >= 0 && u.regiontags.indexOf(regionName) >= 0) {
return true
} else {
return false
}
} else {
if (u.isAllocated && u.isDelivery && u.isAllArea && u.skilltags.indexOf(productCatName) >= 0) {
return true
} else {
return false
}
}
})
let lngth = cansels.length
//TODO 分配规则,需要改成循环分配
if (lngth > 0) {
let randindex = Math.floor(Math.random() * lngth)
let selresult = cansels[randindex]
//添加到缓存,按照客户电话key--缓存到业务员的对象
let tmp = {
userId: selresult.id,
userName: selresult.userName,
mobile: selresult.mobile,
opath: selresult.opath,
cost: costAmount,
compId: companyFind.id
}
await self.cacheManager["DeliveryBizUserCache"].cache(clientMobile, tmp)
return tmp
} else {
return null
}
} else {
if (resultcache) {//不继续,直接返回缓存
resultcache["cost"] = costAmount
return resultcache
} else {
return null
}
}
})
}
} }
module.exports = UserService; module.exports = UserService;
......
...@@ -5,7 +5,7 @@ class CompanyService extends ServiceBase { ...@@ -5,7 +5,7 @@ class CompanyService extends ServiceBase {
constructor() { constructor() {
super("common", ServiceBase.getDaoName(CompanyService)); super("common", ServiceBase.getDaoName(CompanyService));
} }
async getMyApps(appids, isSuper) { async getMyApps (appids, isSuper) {
let appsrtn = null let appsrtn = null
if (isSuper) { if (isSuper) {
appsrtn = this.db.models.app.findAll({ appsrtn = this.db.models.app.findAll({
...@@ -24,14 +24,14 @@ class CompanyService extends ServiceBase { ...@@ -24,14 +24,14 @@ class CompanyService extends ServiceBase {
} }
return appsrtn return appsrtn
} }
async bindApps(appids, companyid) { async bindApps (appids, companyid) {
var self = this var self = this
return this.db.transaction(async function (t) { return this.db.transaction(async function (t) {
let u = await self.dao.update({ appids: appids, id: companyid }, t) let u = await self.dao.update({ appids: appids, id: companyid }, t)
return appids return appids
}) })
} }
async setOrgs(p, cmk) { async setOrgs (p, cmk) {
var self = this var self = this
let curNodeData = p.curdata let curNodeData = p.curdata
let opathstr = curNodeData.orgpath let opathstr = curNodeData.orgpath
...@@ -39,20 +39,20 @@ class CompanyService extends ServiceBase { ...@@ -39,20 +39,20 @@ class CompanyService extends ServiceBase {
let strjson = JSON.stringify(p.orgJson) let strjson = JSON.stringify(p.orgJson)
p.id = p.company_id p.id = p.company_id
p.orgJson = strjson p.orgJson = strjson
let oldopath='' let oldopath = ''
if(!oldNodeData){//如果不传老对象,表示当前操作是删除节点操作,检查是否存在用户,如果已经存在 if (!oldNodeData) {//如果不传老对象,表示当前操作是删除节点操作,检查是否存在用户,如果已经存在
//那么就提示不能删除 //那么就提示不能删除
let us = await self.db.models.user.findOne({ where: { opath: { [self.db.Op.like]: `%${opathstr}%` } }}) let us = await self.db.models.user.findOne({ where: { opath: { [self.db.Op.like]: `%${opathstr}%` } } })
if(us){ if (us) {
let companytmp = await this.dao.model.findOne({ where: { id: p.company_id }}); let companytmp = await this.dao.model.findOne({ where: { id: p.company_id } });
return { orgJson: JSON.parse(companytmp.orgJson) } return { orgJson: JSON.parse(companytmp.orgJson) }
}else{ } else {
let u = await this.dao.update(p) let u = await this.dao.update(p)
let companytmp = await this.dao.model.findOne({ where: { id: p.company_id }}); let companytmp = await this.dao.model.findOne({ where: { id: p.company_id } });
return { orgJson: JSON.parse(companytmp.orgJson) } return { orgJson: JSON.parse(companytmp.orgJson) }
} }
}else{ } else {
oldopath = oldNodeData.orgpath oldopath = oldNodeData.orgpath == '' ? '123456' : oldNodeData.orgpath
} }
return this.db.transaction(async function (t) { return this.db.transaction(async function (t) {
...@@ -60,7 +60,7 @@ class CompanyService extends ServiceBase { ...@@ -60,7 +60,7 @@ class CompanyService extends ServiceBase {
let u = await self.dao.update(p, t) let u = await self.dao.update(p, t)
//更新,还得传输当前节点,查询出当前节点的角色 //更新,还得传输当前节点,查询出当前节点的角色
//按照当前节点的opath查询出所有的用户,更新这些用户的角色信息 //按照当前节点的opath查询出所有的用户,更新这些用户的角色信息
if (curNodeData) { if (curNodeData) {
if (curNodeData.isPosition) { if (curNodeData.isPosition) {
let us = await self.db.models.user.findAll({ where: { opath: { [self.db.Op.like]: `%${oldopath}%` } }, transaction: t }) let us = await self.db.models.user.findAll({ where: { opath: { [self.db.Op.like]: `%${oldopath}%` } }, transaction: t })
...@@ -77,22 +77,22 @@ class CompanyService extends ServiceBase { ...@@ -77,22 +77,22 @@ class CompanyService extends ServiceBase {
let rs = await self.db.models.role.findAll({ where: { id: { [self.db.Op.in]: roleids } }, transaction: t }) let rs = await self.db.models.role.findAll({ where: { id: { [self.db.Op.in]: roleids } }, transaction: t })
for (let u of us) { for (let u of us) {
await u.setRoles(rs, { transaction: t }) await u.setRoles(rs, { transaction: t })
if (opathstr != oldopath) { //if (opathstr != oldopath) {
u.opath = opathstr + "/" + u.userName u.opath = opathstr + "/" + u.userName
u.ptags = curNodeData.ptags u.ptags = curNodeData.ptags
u.save({ transaction: t }) u.save({ transaction: t })
} // }
//令用户缓存失效 //令用户缓存失效
await self.cacheManager["UserCache"].invalidate(u.userName) await self.cacheManager["UserCache"].invalidate(u.userName)
} }
}else{//不是岗位节点,检查修改后的路径是否和原始一致,如果不一致,那么需要查出原始的用户数据 } else {//不是岗位节点,检查修改后的路径是否和原始一致,如果不一致,那么需要查出原始的用户数据
//把原来的路径替换当前新的code //把原来的路径替换当前新的code
if(opathstr!=oldopath){ if (opathstr != oldopath) {
let us2 = await self.db.models.user.findAll({ where: { opath: { [self.db.Op.like]: `%${oldopath}%` } }, transaction: t }) let us2 = await self.db.models.user.findAll({ where: { opath: { [self.db.Op.like]: `%${oldopath}%` } }, transaction: t })
for (let u of us2) { for (let u of us2) {
let curpath= u.opath let curpath = u.opath
let newpath=curpath.replace(oldNodeData.code,curNodeData.code) let newpath = curpath.replace(oldNodeData.code, curNodeData.code)
u.opath =newpath u.opath = newpath
u.save({ transaction: t }) u.save({ transaction: t })
//令用户缓存失效 //令用户缓存失效
await self.cacheManager["UserCache"].invalidate(u.userName) await self.cacheManager["UserCache"].invalidate(u.userName)
......
...@@ -2,6 +2,8 @@ var fs = require("fs"); ...@@ -2,6 +2,8 @@ var fs = require("fs");
var objsettings = require("../config/objsettings"); var objsettings = require("../config/objsettings");
var settings = require("../config/settings"); var settings = require("../config/settings");
const request = require('request'); const request = require('request');
const jwk2pem = require('pem-jwk').jwk2pem
const jwt = require('jsonwebtoken')
class System { class System {
static declare (ns) { static declare (ns) {
var ar = ns.split('.'); var ar = ns.split('.');
...@@ -16,6 +18,14 @@ class System { ...@@ -16,6 +18,14 @@ class System {
} }
} }
} }
/**
* 验证token
* @param {String} token jwt token
* @param {Object} publicKey 公钥
*/
static verify (token, publicKey) {
return jwt.verify(token, jwk2pem(publicKey));
}
static async delReq (url, qdata) { static async delReq (url, qdata) {
let rtn = {} let rtn = {}
let promise = new Promise(function (resv, rej) { let promise = new Promise(function (resv, rej) {
...@@ -98,12 +108,14 @@ class System { ...@@ -98,12 +108,14 @@ class System {
url: url, url: url,
form: data form: data
}, function (error, response, body) { }, function (error, response, body) {
rtn.statusCode = response.statusCode
if (!error) { if (!error) {
rtn.statusCode = response.statusCode
let data = JSON.parse(body) let data = JSON.parse(body)
rtn.data = data rtn.data = data
resv(rtn); resv(rtn);
} else { } else {
console.log(error)
rej(error) rej(error)
} }
}); });
...@@ -365,4 +377,8 @@ module.exports = System; ...@@ -365,4 +377,8 @@ module.exports = System;
//System.execLogs("hello",{"opcode":"xxxxx"},"ddfdf",{requestId:'ddds'},null) //System.execLogs("hello",{"opcode":"xxxxx"},"ddfdf",{requestId:'ddds'},null)
// let str = "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRjMmM1MzMwMjNhMTExZTlhOTU3NjliODBiNDI4Y2QxIn0.eyJpZCI6IjViZDk2MWJkZWQxN2E5MmI1MDFjZWQ0ZCIsIm5hbWUiOiLpnZLph4kxMSIsImVtcGxveWVlIjoiNWQ5ZWNlODc1Zjk3ZGQzMzEwNzI4ZjY4IiwicGhvbmUiOiI3TFlYZ29ySkdGM2hBbHdqQTZGelFnPT0iLCJvcmdpZCI6IjViY2ZlOTVjYjBhMDFmMDAwOTI4NGJjMyIsInBsYXRmb3JtIjoiZDVmYTU4Yjk3NGExMjBlZTYxMTMzM2MwMDNjOWZlYzAiLCJ1bmlvbmlkIjoib2RuWjR0OERoV1V0N0lXT09maEF0UTdqM1docyIsImp0aSI6Imo3R0hLRGFzNDEzQTQ2OGkiLCJleHAiOjE1OTYwODEzMTEsImlhdCI6MTU5NTQ3NjUxMX0.I196XbcCR3k7r1O8uwoI2HUhow0UhGHKzii5wOR39vLmuNOUatNY7ccQTCHijqysbSCePP43Iuglrl2gLQASf5uAr9uqTzhTc3O4Z5iF3oR2qR1vlBxrzTDF8xuhKHQ4tO6Hbsib0FdOYVeU8fe0g_GZiIcuYIv-f8VsiAGMF9TEES129CDwZacJfVViw4EXVnXSivAzQG4JgGSwUACvPT140bCZ1XPeHi0GXmgtEN77NjWfOGI5RYGC0Gq3CGevlSWERjb3mUscAIjoXsOxlWNwy7dc1u1A7uX1a6bUhLU1wtiQ6md4TnyeR5OdYeVqGlIe3hZGcH_E3QrQMq988Q"
// console.log(str)
// let s = System.verify(str.split(' ')[1], settings.publickey())
// console.log(s)
...@@ -11,28 +11,42 @@ var system = require('../base/system'); ...@@ -11,28 +11,42 @@ var system = require('../base/system');
var routes = require('./routes'); var routes = require('./routes');
var history = require('connect-history-api-fallback'); var history = require('connect-history-api-fallback');
module.exports = function (app) { module.exports = function (app) {
app.set('port', settings.port); app.set('port', settings.port);
app.set('views', settings.basepath + '/app/front/entry'); app.set('views', settings.basepath + '/app/front/entry');
app.set('view engine', 'ejs'); app.set('view engine', 'ejs');
app.use(methodOverride());
app.use(history()); app.use(cookierParser());
app.use(bodyParser.json({ limit: '50mb' }));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
routes(app);//初始化路由
app.use(history(
{
rewrites: [
{
from: /.*/,
to: function (context) {
if (context.parsedUrl.pathname.indexOf("autologin") >= 0) {
return context.parsedUrl.pathname
} else {
return '/index.html';
}
app.use(methodOverride()); }
app.use(cookierParser()); }
app.use(bodyParser.json({limit:'50mb'})); ]
app.use(bodyParser.urlencoded({limit:'50mb',extended:true}));
routes(app);//初始化路由
app.use(express.static(path.join(settings.basepath, '/app/front/entry/public')));
// development only
if ('development' == app.get('env')) {
app.use(errorHandler());
}else{
app.use(function(err,req,res){
console.log("prod error handler................................>>>>>>>>>>>>>>>>>");
console.log(err);
//logerApp.error("prod error handler",err);
res.send("link admin");
});
} }
));
app.use(express.static(path.join(settings.basepath, '/app/front/entry/public')));
// development only
if ('development' == app.get('env')) {
app.use(errorHandler());
} else {
app.use(function (err, req, res) {
console.log("prod error handler................................>>>>>>>>>>>>>>>>>");
console.log(err);
//logerApp.error("prod error handler",err);
res.send("link admin");
});
}
}; };
var url = require("url"); var url = require("url");
var System = require("../../base/system"); var System = require("../../base/system");
const chnelapi=System.getObject("api.common.channels") const chnelapi = System.getObject("api.common.channels")
const userS = System.getObject("service.auth.userSve")
const roleS = System.getObject("service.auth.roleSve")
const companyS = System.getObject("service.common.companySve")
const settings = require("../settings.js")
let channelCache = {};
module.exports = function (app) { module.exports = function (app) {
app.all("*",async function(req, res,next){ app.get("/autologin", async function (req, res, next) {
try{ let appkey = req.query.appkey.trim()
let channel=await chnelapi.getChannels(req.headers["x-forwarded-host"]) if (!appkey) {
if(!channel){ res.end("没有资质宝appkey,请联系资质宝服务提供方")
return
}
let companykey = req.query.companykey.trim()
if (!companykey) {
res.end("没有公司宝的租户companykey,请联系资质宝服务提供方")
return
}
let cooktoken = req.cookies["token"]
let tv = cooktoken.split(' ')[1]
let sourceUser = System.verify(tv, settings.publickey())
let openid = sourceUser.employee
let userName = openid
let nickName = sourceUser.name
let unid = sourceUser.unionid
let fixedcodes = ["资质宝交付员", '资质宝业务员']
let rolecodes = sourceUser.roles ? sourceUser.roles : []
let rcs = rolecodes.filter(rc => {
if (fixedcodes.indexOf(rc) >= 0) {
return true
} else {
return false
}
})
if (rcs.length == 0) {
res.end("当前登录人没有资质宝访问权限")
return
}
//先按照openid去查看是否已经存在
let uf = await userS.dao.model.findOne({ where: { openid: openid } })
if (!uf) {
//按照公司companykey查询出要注册公司的所在公司,取公司id
let company = await companyS.dao.model.findOne({ where: { companykey: companykey } })
//构造注册用户对象,需要设置默认角色,默认角色需要按照rolecode查询出角色
let rolesfind = await roleS.dao.model.findAll({ where: { code: { [self.db.Op.in]: rcs }, company_id: company.id } })
//根据rolecode--,设置组织路径
let opath = ''
let isSalesman = false
let isDelivery = false
if (rcs[0] == "资质宝业务员") {
opath = "root10/bizgroup01/g1members/" + userName
isSalesman = true
} else {
opath = "root10/dlivergroup/dgroupmembers/" + userName
isDelivery = true
}
//调用pmregister
let reguser = {
company_id: company.id,
userName: userName,
nickName: nickName,
roles: rolesfind.map(r => r.id),
opath: opath,
openid: openid,
isSalesman: isSalesman,
isDelivery: isDelivery
}
uf = await userS.registerByTantent(reguser)
}
let rtnobj = await userS.loginApp(appkey, userName)
res.redirect(rtnobj.homePage + "?code=" + rtnobj.code)
})
app.post("*", async function (req, res, next) {
try {
let channel;
let sourceHost = req.headers["x-forwarded-host"];
if (sourceHost in channelCache) {
channel = channelCache[sourceHost];
} else {
channel = await chnelapi.getChannels(sourceHost);
channelCache[sourceHost] = channel;
}
if (!channel) {
next() next()
}else{ } else {
let rtn=await chnelapi.channelHandle(channel,req.path+"/"+ req.body.actionType,req.body) let rtn = await chnelapi.channelHandle(channel, req.path + "/" + req.body.actionType, req.body)
if(rtn!=null){ if (rtn != null) {
res.end(JSON.stringify(rtn)); res.end(JSON.stringify(rtn));
}else{ } else {
res.end(JSON.stringify({status:-1,message:"fail"})); res.end(JSON.stringify({ status: -1, message: "fail" }));
} }
} }
}catch(e){ } catch (e) {
console.log(e) console.log(e)
res.end(JSON.stringify({status:-1,message:e})); res.end(JSON.stringify({ status: -1, message: e }));
} }
}) })
app.get('/api/:gname/:qname/:method', function (req, res) { app.get('/api/:gname/:qname/:method', function (req, res) {
// var classPath = req.params["qname"]; // var classPath = req.params["qname"];
var methodName = req.params["method"]; var methodName = req.params["method"];
var gname=req.params["gname"]; var gname = req.params["gname"];
classPath=gname+"."+classPath; classPath = gname + "." + classPath;
var tClientIp = System.get_client_ip(req); var tClientIp = System.get_client_ip(req);
req.clientIp = tClientIp; req.clientIp = tClientIp;
req.uagent= req.headers["user-agent"]; req.uagent = req.headers["user-agent"];
// req.classname=classPath; // req.classname=classPath;
var params = []; var params = [];
params.push(gname); params.push(gname);
params.push(methodName); params.push(methodName);
params.push(req.body); params.push(req.body);
params.push(req.query); params.push(req.query);
params.push(req); params.push(req);
var p = null; var p = null;
var invokeObj = System.getObject("api." + classPath); var invokeObj = System.getObject("api." + classPath);
if (invokeObj["doexec"]) { if (invokeObj["doexec"]) {
...@@ -47,22 +124,22 @@ module.exports = function (app) { ...@@ -47,22 +124,22 @@ module.exports = function (app) {
}); });
app.post('/api/:gname/:qname/:method', function (req, res) { app.post('/api/:gname/:qname/:method', function (req, res) {
var classPath = req.params["qname"]; var classPath = req.params["qname"];
var methodName = req.params["method"]; var methodName = req.params["method"];
var gname=req.params["gname"]; var gname = req.params["gname"];
var params = []; var params = [];
classPath=gname+"."+classPath; classPath = gname + "." + classPath;
console.log("===================="); console.log("====================");
console.log(classPath); console.log(classPath);
var tClientIp = System.get_client_ip(req); var tClientIp = System.get_client_ip(req);
req.clientIp = tClientIp; req.clientIp = tClientIp;
req.uagent= req.headers["user-agent"]; req.uagent = req.headers["user-agent"];
// req.classname=classPath; // req.classname=classPath;
params.push(gname); params.push(gname);
params.push(methodName); params.push(methodName);
params.push(req.body); params.push(req.body);
params.push(req.query); params.push(req.query);
params.push(req); params.push(req);
var p = null; var p = null;
var invokeObj = System.getObject("api." + classPath); var invokeObj = System.getObject("api." + classPath);
if (invokeObj["doexec"]) { if (invokeObj["doexec"]) {
......
var url = require("url"); var url = require("url");
var system = require("../../base/system"); var system = require("../../base/system");
var metaCtl=system.getObject("web.common.metaCtl"); var metaCtl = system.getObject("web.common.metaCtl");
module.exports = function (app) { module.exports = function (app) {
app.get('/web/:gname/:qname/:method', function (req, res) { app.get('/web/:gname/:qname/:method', function (req, res) {
var classPath = req.params["qname"]; var classPath = req.params["qname"];
var methodName = req.params["method"]; var methodName = req.params["method"];
var gname=req.params["gname"]; var gname = req.params["gname"];
classPath=gname+"."+classPath; classPath = gname + "." + classPath;
var params = []; var params = [];
params.push(methodName); params.push(methodName);
params.push(req.body); params.push(req.body);
params.push(req.query); params.push(req.query);
params.push(req); params.push(req);
var p = null; var p = null;
var invokeObj = system.getObject("web." + classPath); var invokeObj = system.getObject("web." + classPath);
if (invokeObj["doexec"]) { if (invokeObj["doexec"]) {
...@@ -24,18 +24,18 @@ module.exports = function (app) { ...@@ -24,18 +24,18 @@ module.exports = function (app) {
app.post('/web/:gname/:qname/:method', function (req, res) { app.post('/web/:gname/:qname/:method', function (req, res) {
req.codepath = req.headers["codepath"]; req.codepath = req.headers["codepath"];
var classPath = req.params["qname"]; var classPath = req.params["qname"];
var methodName = req.params["method"]; var methodName = req.params["method"];
var gname=req.params["gname"]; var gname = req.params["gname"];
var params = []; var params = [];
classPath=gname+"."+classPath; classPath = gname + "." + classPath;
var tClientIp = system.get_client_ip(req); var tClientIp = system.get_client_ip(req);
req.body.clientIp = tClientIp; req.body.clientIp = tClientIp;
req.body.agent= req.headers["user-agent"]; req.body.agent = req.headers["user-agent"];
req.body.classname=classPath; req.body.classname = classPath;
params.push(methodName); params.push(methodName);
params.push(req.body); params.push(req.body);
params.push(req.query); params.push(req.query);
params.push(req); params.push(req);
var p = null; var p = null;
var invokeObj = system.getObject("web." + classPath); var invokeObj = system.getObject("web." + classPath);
if (invokeObj["doexec"]) { if (invokeObj["doexec"]) {
......
...@@ -18,8 +18,27 @@ var settings = { ...@@ -18,8 +18,27 @@ var settings = {
defaultpwd: "gsb2020", defaultpwd: "gsb2020",
basepath: path.normalize(path.join(__dirname, '../..')), basepath: path.normalize(path.join(__dirname, '../..')),
port: process.env.NODE_PORT || 80, port: process.env.NODE_PORT || 80,
logindex:"center_manage", logindex: "center_manage",
appname:"center_manage", appname: "center_manage",
publickey: function () {
if (this.env == "dev") {
return {
"kty": "RSA",
"n": "qrie8Rrptw5hGJ9fdI8f6QJuLLbTulWkSmFYDQDPu2aXP65wbRhtPMxn6DA9Qh_o29LqtlNd1L5dhY5ma_hXSwNv-FfiQoUkkdFFZ2H_mODnKaLtV5evho9r3_wGa92dxV_UZQVUurhZ7V6gQk0BzrpUuMqZ1JDOcD4iG_bEEZjuRXWpXtKKj7MoXJyTUrOlCyN1yFo7gxM3ee6rImxfDP4nEhKPnL7HqwTcXCQApLJORRluoThEciVXRs8SYk08MtemZUhCq8QjXTvS52S5u5o_osFqs1DnPYHpiAfydOfEweFCgomt7imD5vIjOlUDEBSGE0mRUFCBnM3Qg_idZQ",
"e": "AQAB",
"kid": "dc2c533023a111e9a95769b80b428cd1",
"alg": "ES256"
}
} else {
return {
"kty": "RSA",
"n": "vkjTlSBYiknVYOJZXAGOyckL3aIdxxcR7iBtGtScfmB5xPop3-ZyYIuBnvCDlqx4r33Hut0bBnEbyOCOWPjsL0szsNZO4Ojbzju3INhiXxqJUPsfuPs82zDEuq-MOF2FnxeGeihPY8Va_YPSjZj9ZeN7eUtRP-nct2N4XftOxQrUPwbMAWnfZskMrjiYD-NRsIcwYaKvkvO9sfjzD9Hkp3OVTnz-doVN7FqWTLGAX8veN2bTWOD5vTqfHwhgxFR0jgZgDHMD262zFBj4ULlLlGr2J9zhWPxEOvod58ll_tHA4Q9HLzmol3u8yGuD7heyRmqnF74qEbbal-Xk67uAyw",
"e": "AQAB",
"kid": "e1703c2001dd11e9b50fd525bc2a7e1d",
"alg": "ES256"
};
}
},
kongurl: function () { kongurl: function () {
if (this.env == "dev") { if (this.env == "dev") {
var localsettings = require("./localsettings"); var localsettings = require("./localsettings");
...@@ -35,7 +54,7 @@ var settings = { ...@@ -35,7 +54,7 @@ var settings = {
return "http://icdeliver-service"; return "http://icdeliver-service";
} }
}, },
logUrl:function(){ logUrl: function () {
if (this.env == "dev") { if (this.env == "dev") {
return "http://192.168.1.128:4019/api/queueAction/producer/springBoard"; return "http://192.168.1.128:4019/api/queueAction/producer/springBoard";
} else { } else {
......
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
"node-cron": "^2.0.1", "node-cron": "^2.0.1",
"node-uuid": "^1.4.8", "node-uuid": "^1.4.8",
"pdfcrowd": "^4.2.0", "pdfcrowd": "^4.2.0",
"pem-jwk": "^2.0.0",
"pinyin": "^2.8.3", "pinyin": "^2.8.3",
"qr-image": "^3.2.0", "qr-image": "^3.2.0",
"request": "^2.88.2", "request": "^2.88.2",
......
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