Skip to content

模块访问次数统计

该案例利用全局设置中的应用监听器,监听用户访问模块事件,在用户访问后,调用自动化将模块访问的日志记录到模块访问统计表中。 并且配合仪表盘展示模块的访问次数统计信息

效果展示

效果展示

操作步骤

一、准备访问记录数据表

数据表结构如下:

标识符字段名称字段类型
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
});

四、配置仪表盘

数据源设置

数据源设置.png

图表设置

图标设置.png