diff --git a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectController.java b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectController.java index 8533ba4..d150fa8 100644 --- a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectController.java +++ b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectController.java @@ -195,4 +195,23 @@ public class ProtectObjectController implements ProtectObjectControllerApi { return ResponseResult.ok() .setData("success", protectObjectService.updateAuditStatusBatch(idsWithAuditStatusMap)); } + + @Override + @PostMapping("/auditInfo/{ids}") + public ResponseResult updateAuditInfo(@PathVariable List ids, + @RequestBody Map auditInfo) { + if (auditInfo.get("auditInfo") == null || auditInfo.get("auditInfo").isEmpty()) { + throw new IllegalArgumentException("auditInfo is empty"); + } + return ResponseResult.ok() + .setData("success", protectObjectService.updateAuditInfo(ids, auditInfo.get("auditInfo"))); + } + + @Override + @GetMapping("/auditInfo/{id}") + public ResponseResult queryAuditInfo(@PathVariable Integer id) { + return ResponseResult.ok() + .setData("auditInfo", protectObjectService.queryAuditInfo(id)); + } + } diff --git a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectControllerApi.java b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectControllerApi.java index 463cfc2..92da7bb 100644 --- a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectControllerApi.java +++ b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectControllerApi.java @@ -447,6 +447,83 @@ public interface ProtectObjectControllerApi { @GetMapping("/statistics") ResponseResult statisticsProtectObject(); + @Operation( + summary = "批量更新审批状态", + description = "批量更新审批状态,0未审核、1审核不通过、2审核通过", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回审核结果", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody( + description = "字典,key是id,value是审核状态", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = Map.class) + + ) + ) + ) @PostMapping("/auditbatch") ResponseResult updateWhiteListAuditStatusBatch(@RequestBody Map idsWithAuditStatusMap); + + @Operation( + summary = "更新审批意见", + description = "批量更新审批意见,接收多个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody( + description = "字典,key是'audit_info',value是审核意见", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = Map.class), + examples = @ExampleObject( + name = "example", + value = """ + { + "audit_info": "审核不通过,原因是xxxx" + } + """ + ) + + ) + ), + parameters = { + @Parameter(name = "ids", description = "欲更新的ID", example = "2,3"), + } + ) + @PostMapping("/auditInfo/{ids}") + ResponseResult updateAuditInfo(@PathVariable List ids, + @RequestBody Map auditInfo); + + + @Operation( + summary = "查询审批意见", + description = "查询审批意见,只接收一个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + parameters = { + @Parameter(name = "id", description = "查询的ID", example = "2"), + } + ) + @GetMapping("/auditInfo/{id}") + ResponseResult queryAuditInfo(@PathVariable Integer id); } diff --git a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectMapper.java b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectMapper.java index cd779e5..4c07bcd 100644 --- a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectMapper.java +++ b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectMapper.java @@ -56,4 +56,8 @@ public interface ProtectObjectMapper { void updateAuditStatusByIdBatch(@Param("idWithAuditStatusBatch") Map idWithAuditStatusBatch); List queryAuditStatusByIds(@Param("idsWithAuditStatusMap") Map idsWithAuditStatusMap); + + Boolean updateAuditInfo(@Param("ids")List ids, @Param("auditInfo")String auditInfo); + + String queryProtectObjectAuditInfo(Integer id); } diff --git a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectService.java b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectService.java index 65f2e32..d194428 100644 --- a/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectService.java +++ b/src/main/java/com/realtime/protection/server/defense/object/ProtectObjectService.java @@ -215,4 +215,12 @@ public class ProtectObjectService { return sqlSessionWrapper.startBatchSession(ProtectObjectMapper.class, updateProtectObjectAuditStatusFunction, idsWithAuditStatusMap); } + + public Boolean updateAuditInfo(List ids, String auditInfo) { + return protectObjectMapper.updateAuditInfo(ids, auditInfo); + } + + public String queryAuditInfo(Integer id) { + return protectObjectMapper.queryProtectObjectAuditInfo(id); + } } diff --git a/src/main/java/com/realtime/protection/server/defense/template/TemplateController.java b/src/main/java/com/realtime/protection/server/defense/template/TemplateController.java index 53d6815..ff6ff38 100644 --- a/src/main/java/com/realtime/protection/server/defense/template/TemplateController.java +++ b/src/main/java/com/realtime/protection/server/defense/template/TemplateController.java @@ -173,4 +173,23 @@ public class TemplateController implements TemplateControllerApi { return ResponseResult.ok() .setData("success", templateService.updateAuditStatusBatch(idsWithAuditStatusMap)); } + + @Override + @PostMapping("/auditInfo/{ids}") + public ResponseResult updateAuditInfo(@PathVariable List ids, + @RequestBody Map auditInfo) { + if (auditInfo.get("auditInfo") == null || auditInfo.get("auditInfo").isEmpty()) { + throw new IllegalArgumentException("auditInfo is empty"); + } + return ResponseResult.ok() + .setData("success", templateService.updateAuditInfo(ids, auditInfo.get("auditInfo"))); + } + + @Override + @GetMapping("/auditInfo/{id}") + public ResponseResult queryAuditInfo(@PathVariable Integer id) { + return ResponseResult.ok() + .setData("auditInfo", templateService.queryAuditInfo(id)); + } } + diff --git a/src/main/java/com/realtime/protection/server/defense/template/TemplateControllerApi.java b/src/main/java/com/realtime/protection/server/defense/template/TemplateControllerApi.java index 8f2ad7d..a1f2243 100644 --- a/src/main/java/com/realtime/protection/server/defense/template/TemplateControllerApi.java +++ b/src/main/java/com/realtime/protection/server/defense/template/TemplateControllerApi.java @@ -13,6 +13,7 @@ import jakarta.validation.Valid; import jakarta.validation.constraints.Min; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Map; @Tag(name = "防御策略模板API", description = "防御策略模板模块所有接口") @@ -481,6 +482,83 @@ public interface TemplateControllerApi { @GetMapping("/statistics") ResponseResult statisticsTemplate(); + @Operation( + summary = "批量更新审批状态", + description = "批量更新审批状态,0未审核、1审核不通过、2审核通过", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回审核结果", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody( + description = "字典,key是id,value是审核状态", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = Map.class) + + ) + ) + ) @PostMapping("/auditbatch") ResponseResult updateWhiteListAuditStatusBatch(@RequestBody Map idsWithAuditStatusMap); + + @Operation( + summary = "更新审批意见", + description = "批量更新审批意见,接收多个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody( + description = "字典,key是'audit_info',value是审核意见", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = Map.class), + examples = @ExampleObject( + name = "example", + value = """ + { + "audit_info": "审核不通过,原因是xxxx" + } + """ + ) + + ) + ), + parameters = { + @Parameter(name = "ids", description = "欲更新的ID", example = "2,3"), + } + ) + @PostMapping("/auditInfo/{ids}") + ResponseResult updateAuditInfo(@PathVariable List ids, + @RequestBody Map auditInfo); + + + @Operation( + summary = "查询审批意见", + description = "查询审批意见,只接收一个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + parameters = { + @Parameter(name = "id", description = "查询的ID", example = "2"), + } + ) + @GetMapping("/auditInfo/{id}") + ResponseResult queryAuditInfo(@PathVariable Integer id); } \ No newline at end of file diff --git a/src/main/java/com/realtime/protection/server/defense/template/TemplateMapper.java b/src/main/java/com/realtime/protection/server/defense/template/TemplateMapper.java index a87153c..6753cb4 100644 --- a/src/main/java/com/realtime/protection/server/defense/template/TemplateMapper.java +++ b/src/main/java/com/realtime/protection/server/defense/template/TemplateMapper.java @@ -53,4 +53,8 @@ public interface TemplateMapper { List queryAuditStatusByIds(@Param("idsWithAuditStatusMap") Map idsWithAuditStatusMap); void updateAuditStatusByIdBatch(@Param("idWithAuditStatusBatch") Map idWithAuditStatusBatch); + + Boolean updateAuditInfo(List ids, String auditInfo); + + String queryAuditInfo(Integer id); } diff --git a/src/main/java/com/realtime/protection/server/defense/template/TemplateService.java b/src/main/java/com/realtime/protection/server/defense/template/TemplateService.java index 4933c4e..85f69d2 100644 --- a/src/main/java/com/realtime/protection/server/defense/template/TemplateService.java +++ b/src/main/java/com/realtime/protection/server/defense/template/TemplateService.java @@ -174,4 +174,11 @@ public class TemplateService { } + public Boolean updateAuditInfo(List ids, String auditInfo) { + return templateMapper.updateAuditInfo(ids, auditInfo); + } + + public String queryAuditInfo(Integer id) { + return templateMapper.queryAuditInfo(id); + } } diff --git a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleController.java b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleController.java index c027e06..2472209 100644 --- a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleController.java +++ b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleController.java @@ -131,6 +131,7 @@ public class DynamicRuleController implements DynamicRuleControllerApi { /** * 审批 */ + @Override @GetMapping("/{id}/audit/{auditStatus}") public ResponseResult updateDynamicRuleAuditStatus(@PathVariable Integer id, @PathVariable Integer auditStatus) { if (id <= 0 || auditStatus < 0 || auditStatus > 2) { @@ -146,6 +147,7 @@ public class DynamicRuleController implements DynamicRuleControllerApi { /** * 批量审批 */ + @Override @PostMapping("/auditbatch") public ResponseResult updateDynamicRuleAuditStatusBatch(@RequestBody Map idsWithAuditStatusMap) { List errorIds = new ArrayList<>(); @@ -187,6 +189,22 @@ public class DynamicRuleController implements DynamicRuleControllerApi { AuditStatusEnum.getNumByState(AuditStatusEnum.PENDING.getState()) )); } + @Override + @PostMapping("/auditInfo/{ids}") + public ResponseResult updateAuditInfo(@PathVariable List ids, + @RequestBody Map auditInfo) { + if (auditInfo.get("auditInfo") == null || auditInfo.get("auditInfo").isEmpty()) { + throw new IllegalArgumentException("auditInfo is empty"); + } + return ResponseResult.ok() + .setData("success", dynamicRuleService.updateAuditInfo(ids, auditInfo.get("auditInfo"))); + } + @Override + @GetMapping("/auditInfo/{id}") + public ResponseResult queryAuditInfo(@PathVariable Integer id) { + return ResponseResult.ok() + .setData("auditInfo", dynamicRuleService.queryAuditInfo(id)); + } } diff --git a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleControllerApi.java b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleControllerApi.java index 0d2a025..c126a7f 100644 --- a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleControllerApi.java +++ b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleControllerApi.java @@ -10,12 +10,10 @@ import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; @Tag(name = "动态规则API", description = "动态规则模块所有接口") public interface DynamicRuleControllerApi { @@ -365,6 +363,47 @@ public interface DynamicRuleControllerApi { @RequestParam(value = "template_name", required = false) String templateName, @RequestParam(value = "page", defaultValue = "1") Integer page, @RequestParam(value = "page_size", defaultValue = "10") Integer pageSize); + @Operation( + summary = "更新批状态", + description = "更新审批状态,0未审核、1审核不通过、2审核通过", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回审核结果", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + parameters = { + @Parameter(name = "id", description = "id"), + @Parameter(name = "auditStatus", description = "要修改为的审核状态") + } + ) + ResponseResult updateDynamicRuleAuditStatus(@PathVariable Integer id, @PathVariable Integer auditStatus); + + @Operation( + summary = "批量更新审批状态", + description = "批量更新审批状态,0未审核、1审核不通过、2审核通过", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回审核结果", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody( + description = "字典,key是id,value是审核状态", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = Map.class) + + ) + ) + ) + ResponseResult updateDynamicRuleAuditStatusBatch(@RequestBody Map idsWithAuditStatusMap); @Operation( summary = "数据统计", @@ -399,4 +438,60 @@ public interface DynamicRuleControllerApi { ) @GetMapping("/statistics") ResponseResult getStaticRuleStatisticsData(); + @Operation( + summary = "更新审批意见", + description = "批量更新审批意见,接收多个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody( + description = "字典,key是'audit_info',value是审核意见", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = Map.class), + examples = @ExampleObject( + name = "example", + value = """ + { + "audit_info": "审核不通过,原因是xxxx" + } + """ + ) + + ) + ), + parameters = { + @Parameter(name = "ids", description = "欲更新的ID", example = "2,3"), + } + ) + @PostMapping("/auditInfo/{ids}") + ResponseResult updateAuditInfo(@PathVariable List ids, + @RequestBody Map auditInfo); + + + @Operation( + summary = "查询审批意见", + description = "查询审批意见,只接收一个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + parameters = { + @Parameter(name = "id", description = "查询的ID", example = "2"), + } + ) + @GetMapping("/auditInfo/{id}") + ResponseResult queryAuditInfo(@PathVariable Integer id); + } \ No newline at end of file diff --git a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleMapper.java b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleMapper.java index 5b99a46..69292c0 100644 --- a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleMapper.java +++ b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleMapper.java @@ -62,4 +62,8 @@ public interface DynamicRuleMapper { void updateAuditStatusByIdBatch(@Param("idWithAuditStatusBatch") Map idWithAuditStatusBatch); List queryAuditStatusByIds(@Param("idWithAuditStatusMap") Map idWithAuditStatusMap); + + Boolean updateAuditInfo(@Param("ids")List ids, @Param("auditInfo")String auditInfo); + + String queryAuditInfo(Integer id); } diff --git a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleService.java b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleService.java index 6e9a5ed..5ed90bc 100644 --- a/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleService.java +++ b/src/main/java/com/realtime/protection/server/rule/dynamicrule/DynamicRuleService.java @@ -282,4 +282,12 @@ public class DynamicRuleService { public List queryAuditStatusByIds(Map idsWithAuditStatusMap) { return dynamicRuleMapper.queryAuditStatusByIds(idsWithAuditStatusMap); } + + public Boolean updateAuditInfo(List ids, String auditInfo) { + return dynamicRuleMapper.updateAuditInfo(ids, auditInfo); + } + + public String queryAuditInfo(Integer id) { + return dynamicRuleMapper.queryAuditInfo(id); + } } diff --git a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleController.java b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleController.java index 9fdb543..9c24221 100644 --- a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleController.java +++ b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleController.java @@ -224,6 +224,22 @@ public class StaticRuleController implements StaticRuleControllerApi { } + @Override + @PostMapping("/auditInfo/{ids}") + public ResponseResult updateAuditInfo(@PathVariable List ids, + @RequestBody Map auditInfo) { + if (auditInfo.get("auditInfo") == null || auditInfo.get("auditInfo").isEmpty()) { + throw new IllegalArgumentException("auditInfo is empty"); + } + return ResponseResult.ok() + .setData("success", staticRuleService.updateAuditInfo(ids, auditInfo.get("auditInfo"))); + } + @Override + @GetMapping("/auditInfo/{id}") + public ResponseResult queryAuditInfo(@PathVariable Integer id) { + return ResponseResult.ok() + .setData("auditInfo", staticRuleService.queryAuditInfo(id)); + } } diff --git a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleControllerApi.java b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleControllerApi.java index 43f25f2..53676d1 100644 --- a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleControllerApi.java +++ b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleControllerApi.java @@ -346,4 +346,60 @@ public interface StaticRuleControllerApi { ) @GetMapping("/statistics") ResponseResult getStaticRuleStatisticsData(); + + @Operation( + summary = "更新审批意见", + description = "批量更新审批意见,接收多个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody( + description = "字典,key是'audit_info',value是审核意见", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = Map.class), + examples = @ExampleObject( + name = "example", + value = """ + { + "audit_info": "审核不通过,原因是xxxx" + } + """ + ) + + ) + ), + parameters = { + @Parameter(name = "ids", description = "欲更新的ID", example = "2,3"), + } + ) + @PostMapping("/auditInfo/{ids}") + ResponseResult updateAuditInfo(@PathVariable List ids, + @RequestBody Map auditInfo); + + + @Operation( + summary = "查询审批意见", + description = "查询审批意见,只接收一个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + parameters = { + @Parameter(name = "id", description = "查询的ID", example = "2"), + } + ) + @GetMapping("/auditInfo/{id}") + ResponseResult queryAuditInfo(@PathVariable Integer id); } diff --git a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleMapper.java b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleMapper.java index 49e6336..44cae5f 100644 --- a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleMapper.java +++ b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleMapper.java @@ -57,4 +57,8 @@ public interface StaticRuleMapper { Integer queryAuditStaticRuleTotalNum(@Param("auditStatus")Integer auditStatus); List queryAuditStatusByIds(@Param("idWithAuditStatusBatch") Map idsWithAuditStatusMap); + + Boolean updateAuditInfo(@Param("ids") List ids, @Param("auditInfo") String auditInfo); + + String queryAuditInfo(Integer id); } diff --git a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleService.java b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleService.java index d17bfd7..b5fa4e7 100644 --- a/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleService.java +++ b/src/main/java/com/realtime/protection/server/rule/staticrule/StaticRuleService.java @@ -324,4 +324,12 @@ public class StaticRuleService { public Integer queryAuditStaticRuleTotalNum(Integer auditStatus) { return staticRuleMapper.queryAuditStaticRuleTotalNum(auditStatus); } + + public Boolean updateAuditInfo(List ids, String auditInfo) { + return staticRuleMapper.updateAuditInfo(ids, auditInfo); + } + + public String queryAuditInfo(Integer id) { + return staticRuleMapper.queryAuditInfo(id); + } } diff --git a/src/main/java/com/realtime/protection/server/task/TaskController.java b/src/main/java/com/realtime/protection/server/task/TaskController.java index 9d5cdcf..c520305 100644 --- a/src/main/java/com/realtime/protection/server/task/TaskController.java +++ b/src/main/java/com/realtime/protection/server/task/TaskController.java @@ -209,4 +209,23 @@ public class TaskController implements TaskControllerApi { )); } + @Override + @PostMapping("/auditInfo/{ids}") + public ResponseResult updateAuditInfo(@PathVariable List ids, + @RequestBody Map auditInfo) { + if (auditInfo.get("auditInfo") == null || auditInfo.get("auditInfo").isEmpty()) { + throw new IllegalArgumentException("auditInfo is empty"); + } + return ResponseResult.ok() + .setData("success", taskService.updateAuditInfo(ids, auditInfo.get("auditInfo"))); + } + + @Override + @GetMapping("/auditInfo/{id}") + public ResponseResult queryAuditInfo(@PathVariable Integer id) { + return ResponseResult.ok() + .setData("auditInfo", taskService.queryAuditInfo(id)); + } + + } \ No newline at end of file diff --git a/src/main/java/com/realtime/protection/server/task/TaskControllerApi.java b/src/main/java/com/realtime/protection/server/task/TaskControllerApi.java index ef64949..5e8d5cc 100644 --- a/src/main/java/com/realtime/protection/server/task/TaskControllerApi.java +++ b/src/main/java/com/realtime/protection/server/task/TaskControllerApi.java @@ -17,6 +17,7 @@ import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotNull; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Map; @Tag(name = "任务控制器API", description = "任务管理模块相关的所有接口") @@ -598,4 +599,60 @@ public interface TaskControllerApi { ) @GetMapping("/statistics") ResponseResult statistics(); + + @Operation( + summary = "更新审批意见", + description = "批量更新审批意见,接收多个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody( + description = "字典,key是'audit_info',value是审核意见", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = Map.class), + examples = @ExampleObject( + name = "example", + value = """ + { + "audit_info": "审核不通过,原因是xxxx" + } + """ + ) + + ) + ), + parameters = { + @Parameter(name = "ids", description = "欲更新的ID", example = "2,3"), + } + ) + @PostMapping("/auditInfo/{ids}") + ResponseResult updateAuditInfo(@PathVariable List ids, + @RequestBody Map auditInfo); + + + @Operation( + summary = "查询审批意见", + description = "查询审批意见,只接收一个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + parameters = { + @Parameter(name = "id", description = "查询的ID", example = "2"), + } + ) + @GetMapping("/auditInfo/{id}") + ResponseResult queryAuditInfo(@PathVariable Integer id); } diff --git a/src/main/java/com/realtime/protection/server/task/TaskMapper.java b/src/main/java/com/realtime/protection/server/task/TaskMapper.java index e4358be..92d2f55 100644 --- a/src/main/java/com/realtime/protection/server/task/TaskMapper.java +++ b/src/main/java/com/realtime/protection/server/task/TaskMapper.java @@ -74,4 +74,8 @@ public interface TaskMapper { Integer queryAuditTaskTotalNum(Integer auditState); List queryAuditStatusByIds(@Param("idWithAuditStatusBatch") Map idsWithAuditStatusMap); + + Boolean updateAuditInfo(@Param("ids")List ids, @Param("auditInfo")String auditInfo); + + String queryAuditInfo(Integer id); } diff --git a/src/main/java/com/realtime/protection/server/task/TaskService.java b/src/main/java/com/realtime/protection/server/task/TaskService.java index f04c8ce..0918148 100644 --- a/src/main/java/com/realtime/protection/server/task/TaskService.java +++ b/src/main/java/com/realtime/protection/server/task/TaskService.java @@ -404,4 +404,11 @@ public class TaskService { return taskMapper.queryAuditStatusByIds(idsWithAuditStatusMap); } + public Boolean updateAuditInfo(List ids, String auditInfo) { + return taskMapper.updateAuditInfo(ids, auditInfo); + } + + public String queryAuditInfo(Integer id) { + return taskMapper.queryAuditInfo(id); + } } diff --git a/src/main/java/com/realtime/protection/server/whitelist/WhiteListController.java b/src/main/java/com/realtime/protection/server/whitelist/WhiteListController.java index 9f5a7e0..62d54c9 100644 --- a/src/main/java/com/realtime/protection/server/whitelist/WhiteListController.java +++ b/src/main/java/com/realtime/protection/server/whitelist/WhiteListController.java @@ -239,5 +239,23 @@ public class WhiteListController implements WhiteListControllerApi { .setData("success", whiteListService.updateAuditStatusBatch(idsWithAuditStatusMap)); } + @Override + @PostMapping("/auditInfo/{ids}") + public ResponseResult updateAuditInfo(@PathVariable List ids, + @RequestBody Map auditInfo) { + if (auditInfo.get("auditInfo") == null || auditInfo.get("auditInfo").isEmpty()) { + throw new IllegalArgumentException("auditInfo is empty"); + } + return ResponseResult.ok() + .setData("success", whiteListService.updateAuditInfo(ids, auditInfo.get("auditInfo"))); + } + + @Override + @GetMapping("/auditInfo/{id}") + public ResponseResult queryAuditInfo(@PathVariable Integer id) { + return ResponseResult.ok() + .setData("auditInfo", whiteListService.queryAuditInfo(id)); + } + } diff --git a/src/main/java/com/realtime/protection/server/whitelist/WhiteListControllerApi.java b/src/main/java/com/realtime/protection/server/whitelist/WhiteListControllerApi.java index 0a7e27e..274b8fb 100644 --- a/src/main/java/com/realtime/protection/server/whitelist/WhiteListControllerApi.java +++ b/src/main/java/com/realtime/protection/server/whitelist/WhiteListControllerApi.java @@ -296,6 +296,84 @@ public interface WhiteListControllerApi { @GetMapping("/statistics") ResponseResult getWhiteListStatisticsData(); + @Operation( + summary = "批量更新审批状态", + description = "批量更新审批状态,0未审核、1审核不通过、2审核通过", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回审核结果", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody( + description = "字典,key是id,value是审核状态", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = Map.class) + + ) + ) + ) @PostMapping("/auditbatch") ResponseResult updateWhiteListAuditStatusBatch(@RequestBody Map idsWithAuditStatusMap); + @Operation( + summary = "更新审批意见", + description = "批量更新审批意见,接收多个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody( + description = "字典,key是'audit_info',value是审核意见", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = Map.class), + examples = @ExampleObject( + name = "example", + value = """ + { + "audit_info": "审核不通过,原因是xxxx" + } + """ + ) + + ) + ), + parameters = { + @Parameter(name = "ids", description = "欲更新的ID", example = "2,3"), + } + ) + @PostMapping("/auditInfo/{ids}") + ResponseResult updateAuditInfo(@PathVariable List ids, + @RequestBody Map auditInfo); + + + @Operation( + summary = "查询审批意见", + description = "查询审批意见,只接收一个id", + responses = { + @io.swagger.v3.oas.annotations.responses.ApiResponse( + description = "返回是否成功", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseResult.class) + ) + ) + }, + parameters = { + @Parameter(name = "id", description = "查询的ID", example = "2"), + } + ) + @GetMapping("/auditInfo/{id}") + ResponseResult queryAuditInfo(@PathVariable Integer id); + } + diff --git a/src/main/java/com/realtime/protection/server/whitelist/WhiteListMapper.java b/src/main/java/com/realtime/protection/server/whitelist/WhiteListMapper.java index c7159a4..00b0dd2 100644 --- a/src/main/java/com/realtime/protection/server/whitelist/WhiteListMapper.java +++ b/src/main/java/com/realtime/protection/server/whitelist/WhiteListMapper.java @@ -55,4 +55,8 @@ public interface WhiteListMapper { void updateAuditStatusByIdBatch(@Param("idsWithAuditStatusMap") Map idsWithAuditStatusMap); List queryAuditStatusByIds(@Param("idsWithAuditStatusMap") Map idsWithAuditStatusMap); + + Boolean updateAuditInfo(@Param("ids")List ids, @Param("auditInfo")String auditInfo); + + String queryWhiteListObjectAuditInfo(Integer id); } diff --git a/src/main/java/com/realtime/protection/server/whitelist/WhiteListService.java b/src/main/java/com/realtime/protection/server/whitelist/WhiteListService.java index b910d0d..693630c 100644 --- a/src/main/java/com/realtime/protection/server/whitelist/WhiteListService.java +++ b/src/main/java/com/realtime/protection/server/whitelist/WhiteListService.java @@ -264,4 +264,12 @@ public class WhiteListService { return sqlSessionWrapper.startBatchSession(WhiteListMapper.class, updateWhiteListAuditStatusFunction, idsWithAuditStatusMap); } + + public Boolean updateAuditInfo(List ids, String auditInfo) { + return whiteListMapper.updateAuditInfo(ids, auditInfo); + } + + public String queryAuditInfo(Integer id) { + return whiteListMapper.queryWhiteListObjectAuditInfo(id); + } } diff --git a/src/main/resources/mappers/DynamicRuleMapper.xml b/src/main/resources/mappers/DynamicRuleMapper.xml index 120ff4b..ebd6832 100644 --- a/src/main/resources/mappers/DynamicRuleMapper.xml +++ b/src/main/resources/mappers/DynamicRuleMapper.xml @@ -120,6 +120,14 @@ #{id} + + UPDATE t_dynamic_rule + SET dynamic_rule_audit_info = #{auditInfo} + WHERE dynamic_rule_id IN + + #{id} + + + \ No newline at end of file diff --git a/src/main/resources/mappers/ProtectObjectMapper.xml b/src/main/resources/mappers/ProtectObjectMapper.xml index 3bceb89..6f82742 100644 --- a/src/main/resources/mappers/ProtectObjectMapper.xml +++ b/src/main/resources/mappers/ProtectObjectMapper.xml @@ -149,6 +149,11 @@ #{id} + UPDATE t_protect_object @@ -201,4 +206,13 @@ #{id} + + + UPDATE t_protect_object + SET protect_object_audit_info = #{auditInfo} + WHERE protect_object_id IN + + #{id} + + \ No newline at end of file diff --git a/src/main/resources/mappers/StaticRuleMapper.xml b/src/main/resources/mappers/StaticRuleMapper.xml index 51b0dc8..38ad854 100644 --- a/src/main/resources/mappers/StaticRuleMapper.xml +++ b/src/main/resources/mappers/StaticRuleMapper.xml @@ -101,6 +101,16 @@ + + + UPDATE t_static_rule + SET static_rule_audit_info = #{auditInfo} + WHERE static_rule_id IN + + #{id} + + + delete from t_static_rule where static_rule_id in @@ -270,5 +280,10 @@ #{id} + \ No newline at end of file diff --git a/src/main/resources/mappers/TaskMapper.xml b/src/main/resources/mappers/TaskMapper.xml index 4f8b1ac..33a1cc2 100644 --- a/src/main/resources/mappers/TaskMapper.xml +++ b/src/main/resources/mappers/TaskMapper.xml @@ -210,6 +210,14 @@ #{id} + + UPDATE t_task + SET task_audit_info = #{auditInfo} + WHERE task_id IN + + #{id} + + DELETE @@ -389,4 +397,9 @@ #{taskId} + \ No newline at end of file diff --git a/src/main/resources/mappers/TemplateMapper.xml b/src/main/resources/mappers/TemplateMapper.xml index f22d70d..9273503 100644 --- a/src/main/resources/mappers/TemplateMapper.xml +++ b/src/main/resources/mappers/TemplateMapper.xml @@ -180,6 +180,11 @@ #{id} + UPDATE t_strategy_template @@ -211,4 +216,12 @@ #{id} + + UPDATE t_strategy_template + SET audit_info = #{auditInfo} + WHERE strategy_template_id IN + + #{id} + + \ No newline at end of file diff --git a/src/main/resources/mappers/WhiteListMapper.xml b/src/main/resources/mappers/WhiteListMapper.xml index fdad115..141f492 100644 --- a/src/main/resources/mappers/WhiteListMapper.xml +++ b/src/main/resources/mappers/WhiteListMapper.xml @@ -130,6 +130,14 @@ #{id} + + UPDATE t_white_list + SET white_list_audit_info = #{auditInfo} + WHERE white_list_id IN + + #{id} + + + \ No newline at end of file diff --git a/src/test/java/com/realtime/protection/server/defense/object/ProtectObjectServiceTest.java b/src/test/java/com/realtime/protection/server/defense/object/ProtectObjectServiceTest.java index 5647298..07f065b 100644 --- a/src/test/java/com/realtime/protection/server/defense/object/ProtectObjectServiceTest.java +++ b/src/test/java/com/realtime/protection/server/defense/object/ProtectObjectServiceTest.java @@ -166,4 +166,14 @@ class ProtectObjectServiceTest extends ProtectionApplicationTests { int finalTestNum = testNum; assertThrows(IllegalArgumentException.class, () -> protectObjectService.changeProtectObjectAuditStatus(finalTestNum, 2)); } + + @Test + void updateAuditInfo() { + List protectObjectList = protectObjectService.queryProtectObjects(null, null, null, null, null, null, null, null, null, null, 1, 1); + List idList = new ArrayList<>(); + idList.add(protectObjectList.get(0).getProtectObjectId()); + System.out.println(idList); + assertTrue(protectObjectService.updateAuditInfo( idList, "test")); + assertEquals("test", protectObjectService.queryAuditInfo(idList.get(0))); + } } \ No newline at end of file