Appearance
模块访问次数统计
该案例利用全局设置中的应用监听器,监听用户访问模块事件,在用户访问后,调用自动化将模块访问的日志记录到模块访问统计表中。 并且配合仪表盘展示模块的访问次数统计信息
效果展示
操作步骤
一、准备访问记录数据表
数据表结构如下:
标识符 | 字段名称 | 字段类型 |
---|---|---|
appId | 应用ID | 单行文本 |
appName | 应用名称 | 单行文本 |
moduleId | 模块ID | 单行文本 |
moduleName | 模块名称 | 单行文本 |
accessCount | 访问次数 | 整数 |
lastAccessTime | 最后访问时间 | 日期 |
lastAccessUser | 最后访问人 | 单行文本 |
该数据表用于存储访问记录。
二、创建应用监听器
1、打开应用设计器=>全局设置=>监听器
2、创建监听器,设置如下:
三、脚本示例
本示例调用脚本将访问数据写入到统计表中,如果是多应用的情况,可以单独建立一个统计的应用,暴露一个统计API,类似百度统计之类的。 在脚本中通过http的方式调用此api,这样就可以实现多个应用的访问信息在一个应用内展示。 另外本示例仅仅记录的访问数量,并没有记录明细数据,如果希望更加细粒度的统计使用情况。可以将每一次访问的日志都记录下来。
js
let event = automatic.getVar('event');
let appId = event.appId;
let moduleId = event.moduleId;
//
let tableName = 'moduleStatistics';
//
let record = null;
let oldRecordList = informat.table.queryList(tableName,{
filter:{
conditionList:[
{ fieldId: 'appId', opt: 'eq', value: appId },
{ fieldId: 'moduleId', opt: 'eq', value: moduleId },
]
}
});
if(oldRecordList.length === 0) {
record={
appId: appId,
moduleId: moduleId,
appName: event.eventContent.app.name,
moduleName: event.eventContent.moduleDefine.name,
accessCount:0
}
record.id = informat.table.insert(tableName,record);
} else {
record = oldRecordList[0];
}
//
informat.table.update(tableName, {
id: record.id,
lastAccessTime: new Date(),
lastAccessUser: event.eventContent.user.name,
accessCount: record.accessCount + 1
});