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

# 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
# 最终效果展示
