Commit 31136731 by 蒋勇

d

parents b3e8aed8 d29af882
......@@ -8,8 +8,16 @@ class ChannelCtl extends CtlBase {
super("common", CtlBase.getServiceName(ChannelCtl));
}
async refQuery(pobj, qobj, req) {
let rtn=await this.service.refQuery(pobj);
let rtn = await this.service.refQuery(pobj);
return rtn
}
async authorizeUser(pobj, qobj, req) {
if (!pobj.channelId) {
return system.getResult(null, "channelId can not be empty,100290");
}
await this.service.authorizeUser(pobj);
return system.getResult("SUCCESS");
}
}
module.exports = ChannelCtl;
......@@ -20,12 +20,23 @@ class logCtl extends CtlBase {
let { opTitle, identifyCode, messageBody, resultInfo, errorInfo, requestId, created_at } = item;
messageBody = messageBody ? JSON.parse(messageBody) : {}
resultInfo = resultInfo ? JSON.parse(resultInfo) : {}
let status;
if (resultInfo && resultInfo.status === 0) {
status = "SUCCESS"
} else {
status = "FAIL"
}
if (errorInfo && errorInfo !== "null") {
status = "FAIL"
}
return {
opTitle: opTitle.split(",").length > 1 ? opTitle.split(",")[1] : opTitle,
opTitle: opTitle,
url: `${messageBody.gname}/${messageBody.qname}/${messageBody.method}`,
user: messageBody.param && messageBody.param.username || '',
ip: messageBody.param && messageBody.param.clientIp,
created_at,
requestId,
status,
info: {
opTitle, identifyCode, messageBody, resultInfo, errorInfo, requestId, created_at
}
......
......@@ -5,6 +5,7 @@ class UserCache extends CacheBase {
constructor() {
super();
this.userDao = system.getObject("db.auth.userDao");
this.channelDao = system.getObject("db.common.channelDao");
}
isdebug() {
return settings.env == "dev";
......@@ -26,7 +27,20 @@ class UserCache extends CacheBase {
});
if (configValue && configValue[0]) {
return JSON.stringify(configValue[0]);
let data = JSON.parse(JSON.stringify(configValue[0]));
let channelDatas = await this.channelDao.findAll({});
channelDatas = JSON.parse(JSON.stringify(channelDatas));
channelDatas.forEach(item => {
if (item.userids && item.userids.split(",").includes(data.id.toString())) {
data.channel = {
id: item.id,
code: item.code,
name: item.name
}
}
});
// 获取渠道信息
return JSON.stringify(data);
}
return null;
}
......
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig=system.getSysConfig();
const appconfig = system.getSysConfig();
module.exports = (db, DataTypes) => {
return db.define("channel", {
code:{
code: {
type: DataTypes.STRING,
allowNull: false,
},
......@@ -14,48 +14,52 @@ module.exports = (db, DataTypes) => {
routehost: {
type: DataTypes.STRING,
allowNull: false,
}//和user的from相同,在注册user时,去创建
},//和user的from相同,在注册user时,去创建
userids: {
type: DataTypes.STRING,
allowNull: true,
},
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'p_channel',
validate: {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'p_channel',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
......@@ -5,71 +5,79 @@ const appconfig = system.getSysConfig();
class ChannelService extends ServiceBase {
constructor() {
super("common", ServiceBase.getDaoName(ChannelService));
this.handlers={}
this.handlers = {}
}
async channelHandle(channelobj,path,datajson){
let p=channelobj.pts.filter(item=>{
return item.path==path
async channelHandle(channelobj, path, datajson) {
let p = channelobj.pts.filter(item => {
return item.path == path
})
if(p.length==0){
throw Error("请配置渠道流量的路径方法映射")
if (p.length == 0) {
throw Error("请配置渠道流量的路径方法映射")
}
let fileName=channelobj.code
let method=p[0].method
if(!this.handlers[fileName]) {
this.handlers[fileName]=require("./channelhandlers/"+fileName+".js")
let fileName = channelobj.code
let method = p[0].method
if (!this.handlers[fileName]) {
this.handlers[fileName] = require("./channelhandlers/" + fileName + ".js")
}
if( !this.handlers[fileName][method]){
if (!this.handlers[fileName][method]) {
throw Error(`请在${fileName}文件中定义渠道流量的处理方法${method}`)
}
let rtn=await this.handlers[fileName][method](datajson);
let rtn = await this.handlers[fileName][method](datajson);
return rtn;
}
async create(p,q,req){
let self =this
async create(p, q, req) {
let self = this
return this.db.transaction(async function (t) {
let u = await self.dao.create(p,t)
let u = await self.dao.create(p, t)
//创建路由--针对于特定来源渠道域名的路由,给中台服务添加路由
try{
try {
let ps = ["/"]
let routeobj = await self.cjsonregister(ChannelService.newRouteUrl(settings.pmappname),
{ name: p.code, paths: ps, hosts: [p.routehost], strip_path: false })
}catch(e){
{ name: p.code, paths: ps, hosts: [p.routehost], strip_path: false })
} catch (e) {
await self.cdel(ChannelService.routeUrl(p.code))
throw new Error("创建渠道报错")
}
return u
})
}
async update(p,q,req){
let self =this
async update(p, q, req) {
let self = this
return this.db.transaction(async function (t) {
let old=await self.dao.findOne({id:p.id})
let u = await self.dao.update(p,t)
let old = await self.dao.findOne({ id: p.id })
let u = await self.dao.update(p, t)
//创建路由--针对于特定来源渠道域名的路由,给中台服务添加路由
try{
try {
await self.cdel(ChannelService.routeUrl(old.code))
let ps = ["/"]
let ps = ["/"]
let routeobj = await self.cjsonregister(ChannelService.newRouteUrl(settings.pmappname),
{ name: p.code, paths: ps, hosts: [p.routehost], strip_path: false })
}catch(e){
{ name: p.code, paths: ps, hosts: [p.routehost], strip_path: false })
} catch (e) {
throw new Error("创建渠道报错")
}
return u
})
}
async delete(p,q,req){
let self =this
async delete(p, q, req) {
let self = this
return this.db.transaction(async function (t) {
let u = await self.dao.delete(p,t)
let u = await self.dao.delete(p, t)
//创建路由--针对于特定来源渠道域名的路由,给中台服务添加路由
try{
try {
await self.cdel(ChannelService.routeUrl(u.code))
}catch(e){
} catch (e) {
throw new Error("创建渠道报错")
}
return u
})
}
async authorizeUser(p, q, req) {
await this.dao.updateByWhere({
userids: p.userids
}, {
id: p.channelId
})
}
}
module.exports = ChannelService;
\ No newline at end of file
......@@ -32,16 +32,32 @@ class LogClient {
async logList(pobj) {
let { search, pageInfo, company_id } = pobj;
let { userName, errorInfo, messageBody, resultInfo, created_at, opTitle, requestId } = search;
let query = {
indexName: `logs-sytxpublic-msgq-${settings.logindex}`,
pageSize: pageInfo.pageSize,
currentPage: pageInfo.pageNo
};
if (company_id && company_id != 1) {
query.identifyCode = `_${company_id}_`
query.identifyCode = `_${company_id}_`;
}
if (search.opTitle) {
query.opTitle = search.opTitle
if (opTitle) {
query.opTitle = opTitle;
}
if (requestId) {
query.requestId = requestId;
}
if (userName) {
query.messageBody = userName;
}
if (errorInfo) {
query.errorInfo = errorInfo;
}
if (messageBody) {
query.messageBody = messageBody;
}
if (resultInfo) {
query.resultInfo = resultInfo;
}
// {
// "opTitle": "",// N 操作的业务标题
......@@ -55,6 +71,29 @@ class LogClient {
console.log("请求--------日志");
console.log(settings.logUrl());
console.log(query);
// return {
// "totalCount": 1,
// "pageSize": 20,
// "currentPage": 0,
// "list": [
// {
// "opTitle": "center_manage_首页",
// "identifyCode": "10_",
// "messageBody": "{\"gname\":\"msg\",\"qname\":\"msgCtl\",\"method\":\"findUnreadCount\",\"param\":{\"clientIp\":\"9.223.9.138\",\"agent\":\"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36\",\"classname\":\"msg.msgCtl\",\"app_id\":1,\"company_id\":\"10\",\"userid\":\"15\",\"username\":\"j2\",\"bizpath\":\"/home\",\"is_read\":false},\"actionType\":\"\",\"pushUrl\":\"\"}",
// "resultInfo": "{\"status\":0}",
// "errorInfo": "null",
// "requestId": "19a258474e384a0db939270580f01407",
// "created_at": "2020-07-16T05:18:48.454Z"
// }, {
// "opTitle": "center_manage_消息中心",
// "identifyCode": "10_",
// "messageBody": "{\"gname\":\"msg\",\"qname\":\"msgCtl\",\"method\":\"findUnreadCount\",\"param\":{\"clientIp\":\"9.223.9.138\",\"agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36\",\"classname\":\"msg.msgCtl\",\"app_id\":1,\"company_id\":\"10\",\"userid\":\"15\",\"username\":\"j2\",\"bizpath\":\"/message/message_page\",\"is_read\":false},\"actionType\":\"\",\"pushUrl\":\"\"}",
// "resultInfo": "{\"status\":-1}",
// "errorInfo": "null",
// "requestId": "06d94fbcd05b44a1ae292a21f5931f41",
// "created_at": "2020-07-16T05:51:54.888Z"
// }]
// }
let rtn = await system.postJsonTypeReq(settings.logUrl(), {
"actionType": "queryLogsData",// Y 功能名称
"actionBody": query
......
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=/ccc.png><title></title><link href=/css/chunk-14b9857b.0dc416de.css rel=prefetch><link href=/css/chunk-175acaff.0e321c05.css rel=prefetch><link href=/css/chunk-1b756945.9e7173ae.css rel=prefetch><link href=/css/chunk-21b5182a.6e6ae301.css rel=prefetch><link href=/css/chunk-2c359864.0dc416de.css rel=prefetch><link href=/css/chunk-3385141a.0dc416de.css rel=prefetch><link href=/css/chunk-34953cb0.71e3d438.css rel=prefetch><link href=/css/chunk-480215f6.84fd9662.css rel=prefetch><link href=/css/chunk-5ccefbbb.9e7173ae.css rel=prefetch><link href=/css/chunk-61b0b1e5.9e7173ae.css rel=prefetch><link href=/css/chunk-8e32057a.e8e9a917.css rel=prefetch><link href=/css/chunk-e7e51fa0.9e7173ae.css rel=prefetch><link href=/css/chunk-ff3eaeb0.9e7173ae.css rel=prefetch><link href=/js/chunk-0109d85c.230b30b0.js rel=prefetch><link href=/js/chunk-037694a5.f33ee723.js rel=prefetch><link href=/js/chunk-0aa2a834.9028f9e8.js rel=prefetch><link href=/js/chunk-137dcf78.d8fcc61f.js rel=prefetch><link href=/js/chunk-14b9857b.35e42781.js rel=prefetch><link href=/js/chunk-15c8c366.fa80aca8.js rel=prefetch><link href=/js/chunk-175acaff.85235a4c.js rel=prefetch><link href=/js/chunk-1792c498.4c51a3cf.js rel=prefetch><link href=/js/chunk-1a0615f2.e22dfdd2.js rel=prefetch><link href=/js/chunk-1b756945.b1b799d5.js rel=prefetch><link href=/js/chunk-21b5182a.74708748.js rel=prefetch><link href=/js/chunk-22347577.e72840b4.js rel=prefetch><link href=/js/chunk-24a41303.88feac34.js rel=prefetch><link href=/js/chunk-25d9ab36.087a7b9f.js rel=prefetch><link href=/js/chunk-2aeda6fa.2bd11851.js rel=prefetch><link href=/js/chunk-2b3066fa.3128c43a.js rel=prefetch><link href=/js/chunk-2c359864.90a950b1.js rel=prefetch><link href=/js/chunk-2d0d61ef.7f8c6572.js rel=prefetch><link href=/js/chunk-2d0e68e0.1a313c84.js rel=prefetch><link href=/js/chunk-2d0efc5d.662e1339.js rel=prefetch><link href=/js/chunk-3385141a.a6e1a986.js rel=prefetch><link href=/js/chunk-34953cb0.2fc03dd6.js rel=prefetch><link href=/js/chunk-3a0bcea0.192dd1cf.js rel=prefetch><link href=/js/chunk-477a8e91.ab26380e.js rel=prefetch><link href=/js/chunk-480215f6.5fad332f.js rel=prefetch><link href=/js/chunk-4b58f216.e79a0ff7.js rel=prefetch><link href=/js/chunk-5ccefbbb.0f021a99.js rel=prefetch><link href=/js/chunk-5e7b929d.871be3dc.js rel=prefetch><link href=/js/chunk-61b0b1e5.a0cb8f8a.js rel=prefetch><link href=/js/chunk-65e97401.60cebc96.js rel=prefetch><link href=/js/chunk-8e32057a.5b0635fd.js rel=prefetch><link href=/js/chunk-d9cb04fa.195de55a.js rel=prefetch><link href=/js/chunk-e7e51fa0.77cd6a20.js rel=prefetch><link href=/js/chunk-ff3eaeb0.4b0df71d.js rel=prefetch><link href=/css/app.4189c8e8.css rel=preload as=style><link href=/css/chunk-vendors.1d90d08d.css rel=preload as=style><link href=/js/app.7ebb41a0.js rel=preload as=script><link href=/js/chunk-vendors.9ae5f635.js rel=preload as=script><link href=/css/chunk-vendors.1d90d08d.css rel=stylesheet><link href=/css/app.4189c8e8.css rel=stylesheet></head><body><noscript><strong>We're sorry but iview-admin doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/js/chunk-vendors.9ae5f635.js></script><script src=/js/app.7ebb41a0.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=/ccc.png><title></title><link href=/css/chunk-14b9857b.0dc416de.css rel=prefetch><link href=/css/chunk-175acaff.0e321c05.css rel=prefetch><link href=/css/chunk-1b756945.9e7173ae.css rel=prefetch><link href=/css/chunk-21b5182a.6e6ae301.css rel=prefetch><link href=/css/chunk-2c359864.0dc416de.css rel=prefetch><link href=/css/chunk-3385141a.0dc416de.css rel=prefetch><link href=/css/chunk-34953cb0.71e3d438.css rel=prefetch><link href=/css/chunk-480215f6.84fd9662.css rel=prefetch><link href=/css/chunk-5ccefbbb.9e7173ae.css rel=prefetch><link href=/css/chunk-61b0b1e5.9e7173ae.css rel=prefetch><link href=/css/chunk-8e32057a.e8e9a917.css rel=prefetch><link href=/css/chunk-e7e51fa0.9e7173ae.css rel=prefetch><link href=/css/chunk-ff3eaeb0.9e7173ae.css rel=prefetch><link href=/js/chunk-0109d85c.230b30b0.js rel=prefetch><link href=/js/chunk-037694a5.f33ee723.js rel=prefetch><link href=/js/chunk-0aa2a834.9028f9e8.js rel=prefetch><link href=/js/chunk-137dcf78.d8fcc61f.js rel=prefetch><link href=/js/chunk-14b9857b.35e42781.js rel=prefetch><link href=/js/chunk-15c8c366.fa80aca8.js rel=prefetch><link href=/js/chunk-175acaff.85235a4c.js rel=prefetch><link href=/js/chunk-1792c498.4c51a3cf.js rel=prefetch><link href=/js/chunk-1a0615f2.e22dfdd2.js rel=prefetch><link href=/js/chunk-1b756945.b1b799d5.js rel=prefetch><link href=/js/chunk-21b5182a.74708748.js rel=prefetch><link href=/js/chunk-22347577.e72840b4.js rel=prefetch><link href=/js/chunk-24a41303.88feac34.js rel=prefetch><link href=/js/chunk-25d9ab36.087a7b9f.js rel=prefetch><link href=/js/chunk-2aeda6fa.2bd11851.js rel=prefetch><link href=/js/chunk-2b3066fa.3128c43a.js rel=prefetch><link href=/js/chunk-2c359864.90a950b1.js rel=prefetch><link href=/js/chunk-2d0d61ef.7f8c6572.js rel=prefetch><link href=/js/chunk-2d0e68e0.1a313c84.js rel=prefetch><link href=/js/chunk-2d0efc5d.662e1339.js rel=prefetch><link href=/js/chunk-3385141a.a6e1a986.js rel=prefetch><link href=/js/chunk-34953cb0.2fc03dd6.js rel=prefetch><link href=/js/chunk-3a0bcea0.192dd1cf.js rel=prefetch><link href=/js/chunk-477a8e91.ab26380e.js rel=prefetch><link href=/js/chunk-480215f6.5fad332f.js rel=prefetch><link href=/js/chunk-4b58f216.e79a0ff7.js rel=prefetch><link href=/js/chunk-5ccefbbb.0f021a99.js rel=prefetch><link href=/js/chunk-5e7b929d.871be3dc.js rel=prefetch><link href=/js/chunk-61b0b1e5.a0cb8f8a.js rel=prefetch><link href=/js/chunk-65e97401.60cebc96.js rel=prefetch><link href=/js/chunk-8e32057a.5b0635fd.js rel=prefetch><link href=/js/chunk-d9cb04fa.195de55a.js rel=prefetch><link href=/js/chunk-e7e51fa0.77cd6a20.js rel=prefetch><link href=/js/chunk-ff3eaeb0.4b0df71d.js rel=prefetch><link href=/css/app.4189c8e8.css rel=preload as=style><link href=/css/chunk-vendors.1d90d08d.css rel=preload as=style><link href=/js/app.7ebb41a0.js rel=preload as=script><link href=/js/chunk-vendors.9ae5f635.js rel=preload as=script><link href=/css/chunk-vendors.1d90d08d.css rel=stylesheet><link href=/css/app.4189c8e8.css rel=stylesheet></head><body><noscript><strong>We're sorry but iview-admin doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/js/chunk-vendors.9ae5f635.js></script><script src=/js/app.7ebb41a0.js></script></body></html>
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