记录操作日志

企业门户应用中的日志模块提供了记录日志服务,支持记录操作日志和记录操作次数,说明如下

URL:
  /operation_log/log
请求方法:
  POST
参数
{
  logtype:记录操作类型,log 表示记录操作日志,count 表示记录操作次数
  log_type:日志类型,可自定义 save、new 等,例如:menu 是平台记录移动端打开功能的类型,menu_pc 是平台记录桌面端打开功能的类型
  log_group:日志分组,可自定义,例如:按用户分可以设置为用户的 userName,按部门分可以设置为部门 ID 等
  log_key:日志键值
  ext:日志信息
}

记录操作日志

调用记录日志服务,记录操作日志,示例:出库时记录日志,代码如下

public String outstock(String orderID) throws Exception {
        //获取当前的用户信息
        HttpServletRequest request = SpringWebUtil.getRequest();
        RequestContext rc = ContextUtil.getRequestContext(request);
        UserInfo userinfo = rc.getUserInfo();

        // 查询订单从表
        List<OrderD> list = orderDCustomMapper.findListByMaster(orderID);
        // 遍历
        for (OrderD orderD : list) {
            String productID = orderD.getProductID();
            Integer num = orderD.getNum();
            // 更新库存
            productCustomMapper.updateStockByOrerID(orderID, -1 * num);

            //拼接操作日志记录内容
            JSONObject params = new JSONObject();
            params.put("logtype", "log");
            params.put("log_type", "updateStock");
            params.put("log_group", userinfo.getCode());
            params.put("log_key", orderID + "-" + productID);

            JSONObject exeParams = new JSONObject();
            exeParams.put("username", userinfo.getName());
            exeParams.put("content", "出库数量为" + num);
            params.put("ext", exeParams.toJSONString());

            ServiceUtil.post(SpringWebUtil.getRequest(), "entry", "/operation_log/log", params,Integer.class);//调用记录日志的请求
        }
        return "OK";
}

记录的操作日志写入“操作日志表”,表结构如下:

  table = "kong_operation_log",
  fields = {
    fid    varchar(36)    主键
    username    varchar(254) NULL    用户名
    user_code    varchar(254) NULL    登录名
    org_code    varchar(254) NULL    部门标识
    org_name    varchar(254) NULL    部门名称
    log_type    varchar(254) NULL    日志类型
    log_group    varchar(254) NULL    日志组
    log_key    varchar(254) NULL    日志键值
    create_at    datetime NULL    日志时间
    ip_address    varchar(254) NULL    访问者地址
    ip_location    varchar(254) NULL    访问者地点
    content    mediumtext NULL    请求内容
    status_code    int(11) NULL    返回值
    data1    varchar(254) NULL    扩展字段1
    data2    varchar(254) NULL    扩展字段2
    data3    varchar(254) NULL    扩展字段3
    data4    varchar(254) NULL    扩展字段4
    data5    varchar(254) NULL    扩展字段5
    data6    varchar(254) NULL    扩展字段6
    data7    int(11) NULL    扩展字段7
    data8    int(11) NULL    扩展字段8
    ext    mediumtext NULL    额外数据
  }

记录操作次数

调用记录日志服务,记录操作次数。示例:移动门户中,打开菜单时调用服务,使得打开菜单次数加1,用于实现常用功能和最近使用两个功能,代码如下

setOperationLog(itemInfo, contextComp) {
  var itemInfo = JSON.parse(itemInfo || "{}")
  this.request({
    header: {
      "Accept": "application/json"
    },
    url: this.getServiceUrl("/operation_log/log", "entry"),
    dataType: 'json',
    method: 'POST',
    data: {
      "logtype": "count",//记录操作次数
      "log_type": "menu",
      "log_group": contextComp.getUserInfoAttr("userName"),
      "log_key": itemInfo.url,//菜单url作为日志键值存储
      "ext": itemInfo
    }
  });
}

记录的操作次数写入“操作次数表”,表结构如下:

  table = "kong_operation_count",
  fields = {
    fid    varchar(36)    主键
    log_type    varchar(254) NULL    日志类型
    log_group    varchar(254) NULL    日志组
    log_key    varchar(254) NULL    日志键值
    update_at    datetime NULL    日志时间
    log_count    int(11) NULL    调用次数
    data1    varchar(254) NULL    扩展字段1
    data2    varchar(254) NULL    扩展字段2
    data3    varchar(254) NULL    扩展字段3
    data4    varchar(254) NULL    扩展字段4
    data5    varchar(254) NULL    扩展字段5
    data6    varchar(254) NULL    扩展字段6
    data7    int(11) NULL    扩展字段7
    data8    int(11) NULL    扩展字段8
    ext    mediumtext NULL    额外数据
  }

移动端门户中显示常用功能和最近使用

  • 查询常用功能,按次数 log_count 排倒序
  • 查询最近使用,按时间 update_at 排倒序

results matching ""

    No results matching ""