记录操作日志

平台在门户应用entry中提供了日志记录的表和接口,有记录操作日志和记录操作调用次数两个表

记录操作日志表结构如下:

  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    额外数据
  }

记录操作的调用次数的表结构如下:

  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    额外数据
  }

调用的接口为/operation_log/log是POST请求,参数如下

{
  logtype:"log,count", //值为log是记录操作,值为count是记录操作调用次数
  log_type:menu, //自己定义需要的类型,如save、new等,如:menu是平台记录移动端常用功能设置的类型,menu_pc是平台记录桌面端常用功能设置的类型
  log_group:xxx, //自定义分组的数据,如按用户分可以设置为用的userName,按部门可以记录部门相关的值等
  log_key:xxx //日志键值
  ext:xxx //自己定义要存储的日志信息
}

具体调用参考如下:

1.记录操作调用次数,如门户中打开功能时调用记录次数的接口,每次打开功能记录数会加1,通过次数来实现的常用功能列表

$.ajax({
    "url": "/entry/operation_log/log",
    "method": "POST",
    "timeout": 0,
    "async":true,
    "gloable":false,
    "headers": {
    "Content-Type": "application/json"
    },
    "data": JSON.stringify({
    "logtype":"count",//记录操作调用次数
    "log_type":"menu_pc",
    "log_group":UAA.getCurrentUser().userName,
    "log_key":itemInfo.originUrl,//菜单url作为日志键值存储
    "ext":JSON.stringify(itemInfo)
    })
});

2.记录操作日志,如下在出库的时候让日志中记录一些出库信息

public String outstock(String orderID) throws Exception {
        // 请添加你的业务代码

        //获取当前的用户信息
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
                .getRequest();
        RequestContext rc = ContextUtil.getRequestContext(request);
        UserInfo userinfo = rc.getUserInfo();

        //使用分布式事务
        com.justep.util.db.GlobalTransaction transInfo = null;
        try {
            transInfo = com.justep.util.db.TransactionUtil.beginTrans();
            // 查询订单从表
            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);//调用记录日志的请求
            }
            transInfo.commit();
        } catch (Exception e) {
            if (transInfo != null) {
                transInfo.rollback();
            }
            throw e;
        } finally {
            if (transInfo != null) {

                transInfo.close();
            }
        }

        return "OK";

}

results matching ""

    No results matching ""

    results matching ""

      No results matching ""