记录操作日志
企业门户应用中的日志模块提供了记录日志服务,支持记录操作日志和记录操作次数,说明如下
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 排倒序