使用webhook拦截系统业务事件

## 业务概述 > 此节将带领开发者使用WebHook来拦截业务平台事件,实现了以下场景: > 当删除业务平台的项目时,如果该项目还存在未处理的报修记录,那么将拦截此事件,并在删除项目时提示该项目存在【报修内容】未处理。 ## 最终效果图 ![07.png](https://cos.easydoc.net/16860085/files/lfly6vqa.png) ## 1.编写后台拦截代码 通过```JSONObject``` 获取请求参数后判断参数中是否含有项目ID。 ```java if (!json.containsKey("projectId")){ return Result.fail(); } ``` 获取当前项目下待处理的报修记录。 ```java List<Repair> repairList = this.lambdaQuery() .eq(Repair::getProjectId, projectId) .list() .stream() .filter(r -> r.getState() == 0) .collect(Collectors.toList()); ``` 拼接所有的未处理的报修记录。 ```java StringBuilder resultStr = new StringBuilder(); resultStr.append("报修记录里:"); repairList.forEach(r ->{ resultStr.append(r.getDescribe()+"、"); }); resultStr.append("还未处理"); ``` ## 2.配置WebHook拦截 > 完成Hook配置之后删除系统项目时候就会调用配置的地址。 ![08.png](https://cos.easydoc.net/16860085/files/lfly6zkq.png) ## 3.最终效果 ![07.png](https://cos.easydoc.net/16860085/files/lfly73gw.png)