添加自定义操作日志到平台

## 业务概述 > 此节演示了如何添加自定义操作日志到平台中,每次用户新增报修数据时候会记录到云平台的操作日志里面。 ## 最终效果图 ![11.png](https://cos.easydoc.net/16860085/files/lflybryc.png) ## 1.添加日志配置 ![12.png](https://cos.easydoc.net/16860085/files/lflybv5c.png) > 日志名称:开发者配置自定义名称。 > > 日志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; } ``` ### 最终效果展示 ![11.png](https://cos.easydoc.net/16860085/files/lflyc2mj.png)