添加自定义操作日志到平台
# 业务概述
此节演示了如何添加自定义操作日志到平台中,每次用户新增报修数据时候会记录到云平台的操作日志里面。
# 最终效果图
# 1.添加日志配置
日志名称:开发者配置自定义名称。
日志uri:该属性决定了此日志模板属于哪一个接口,且在格式化时根据uri以及语言种类获取对应的日志模板进行格式化或国际化(该属性一旦新增后不可修改)。
格式化模板:该属性决定了日志格式化时显示的内容。 注意:添加日志模板时将日志数据的key以
${keyXXX}
方式写入到模板中那么当进行格式化时则会将${keyXXX}
替换为日志数据keyXXX对应的值
。
# 2.新建报修时增加日志代码
该token 前端传入的token 数据。
LogApi logApi = new LogApi(token);
1
describeJson 为json 数据。
该json的key对应格式化模板的参数value对应格式化之后的值。
JSONObject describeJson = new JSONObject(){{
put("repair",repair.getDescribe());
}};
1
2
3
2
3
获取日志数据如果失败的话就会滚业务数据。
ResultObject resultObject = logApi.addUserLog(spliceLogParam(token, repair.getProjectId(), describeJson.toJSONString()));
if (!resultObject.getCode().equals("000000")){
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return Result.fail("日志添加失败");
}
1
2
3
4
5
2
3
4
5
查询到用户的信息并根据用户信息拼接日志参数。
private AddUserLogForm spliceLogParam(String token,String projectId,String describe){
// 通过用户 userApi 获取用户详细信息
UserApi userApi = new UserApi(token);
LoginUserVo userVo = userApi.getLoginUser().getData();
AddUserLogForm form = new AddUserLogForm();
form.setUserId(userVo.getId());
form.setCompanyId(userVo.getCompanyId());
form.setProjectId(projectId);
// 格式化后的json 数据,转化成字符串
form.setDetails(describe);
// requestUri 应和开发者配置的Uri 保持一致
form.setRequestUri("/examplesDemo/repair/addRepair");
form.setResultCode("000000");
form.setResultMessage("添加成功");
form.setOldDataMigration("0");
return form;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18