添加自定义操作日志到平台
## 业务概述
> 此节演示了如何添加自定义操作日志到平台中,每次用户新增报修数据时候会记录到云平台的操作日志里面。
## 最终效果图

## 1.添加日志配置

> 日志名称:开发者配置自定义名称。
>
> 日志uri:该属性决定了此日志模板属于哪一个接口,且在格式化时根据uri以及语言种类获取对应的日志模板进行格式化或国际化(该属性一旦新增后不可修改)。
>
> 格式化模板:该属性决定了日志格式化时显示的内容。 注意:添加日志模板时将日志数据的key以```${keyXXX}``` 方式写入到模板中那么当进行格式化时则会将```${keyXXX}```替换为```日志数据keyXXX对应的值```。
## 2.新建报修时增加日志代码
该token 前端传入的token 数据。
```java
LogApi logApi = new LogApi(token);
```
describeJson 为json 数据。
该json的key对应格式化模板的参数value对应格式化之后的值。
```java
JSONObject describeJson = new JSONObject(){{
put("repair",repair.getDescribe());
}};
```
获取日志数据如果失败的话就会滚业务数据。
```java
ResultObject resultObject = logApi.addUserLog(spliceLogParam(token, repair.getProjectId(), describeJson.toJSONString()));
if (!resultObject.getCode().equals("000000")){
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return Result.fail("日志添加失败");
}
```
查询到用户的信息并根据用户信息拼接日志参数。
```java
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;
}
```
### 最终效果展示
