1、DynamicRule的新增、更新添加对id、protectObjectId的判断;分页查询添加creator、sourceSystem查询条件;按id查询新增template_id为null的判断

2、StaticRule新增usedTaskStatus字段,多查单查返回usedTaskStatus;增、改、查、改审核状态添加id无效判断;
分页新增creator、ip查询条件
3、whiteList修改审核status,添加id无效判断
This commit is contained in:
Hao Miao
2024-01-15 18:13:53 +08:00
parent 135a1ae04c
commit 8315e6ee43
16 changed files with 200 additions and 67 deletions

View File

@@ -72,11 +72,9 @@ public class DynamicRuleController implements DynamicRuleControllerApi {
log.info("修改动态规则: {}:{}",
id, dynamicRuleObject.getDynamicRuleName());
dynamicRuleService.updateDynamicRuleObject(id, dynamicRuleObject);
return ResponseResult.ok()
.setData("dynamic_rule_id", id)
.setData("success", true);
.setData("success", dynamicRuleService.updateDynamicRuleObject(id, dynamicRuleObject));
}
//id查询
@@ -85,12 +83,9 @@ public class DynamicRuleController implements DynamicRuleControllerApi {
public ResponseResult queryDynamicRuleObjectById(@PathVariable Integer id) {
log.info("查询动态规则: {}", id);
DynamicRuleObject dynamicRuleObject = dynamicRuleService.queryDynamicRuleById(id);
if (dynamicRuleObject == null) {
return ResponseResult.invalid()
.setData("dynamic_rule", null);
}
//调用service查询
return ResponseResult.ok()
.setData("success", true)
.setData("dynamic_rule", dynamicRuleObject);
}
@@ -99,12 +94,16 @@ public class DynamicRuleController implements DynamicRuleControllerApi {
@GetMapping("/query")
public ResponseResult queryDynamicRuleObject(@RequestParam(value = "name", required = false) String dynamicRuleName,
@RequestParam(value = "id", required = false) Integer dynamicRuleId,
@RequestParam(value = "source_system", required = false) String protectObjectSourceSystem,
@RequestParam(value = "creator", required = false) String creator,
@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "page_size", defaultValue = "10") Integer pageSize) {
log.info("分页查询动态规则: {}:{}:{}:{}", dynamicRuleName, dynamicRuleId, page, pageSize);
//调用service查询
return ResponseResult.ok()
.setData("dynamic_rule_list", dynamicRuleService.queryDynamicRuleObject(dynamicRuleName, dynamicRuleId, page, pageSize));
.setData("success", true)
.setData("dynamic_rule_list", dynamicRuleService.queryDynamicRuleObject(dynamicRuleName, dynamicRuleId,
protectObjectSourceSystem, creator, page, pageSize));
}
//详情查看?? 就是按id查询吧

View File

@@ -131,15 +131,18 @@ public interface DynamicRuleControllerApi {
parameters = {
@Parameter(name = "name", description = "动态规则名称", example = "test"),
@Parameter(name = "id", description = "动态规则ID", example = "2"),
@Parameter(name = "source_system", description = "来源你系统", example = "BW系统"),
@Parameter(name = "creator", description = "创建人名称"),
@Parameter(name = "page", description = "页码", example = "1"),
@Parameter(name = "page_size", description = "每页大小", example = "10")
}
)
public ResponseResult queryDynamicRuleObject(
@RequestParam(value = "name", required = false) String dynamicRuleName,
@RequestParam(value = "id", required = false) Integer dynamicRuleId,
@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "page_size", defaultValue = "10") Integer pageSize) ;
ResponseResult queryDynamicRuleObject(@RequestParam(value = "name", required = false) String dynamicRuleName,
@RequestParam(value = "id", required = false) Integer dynamicRuleId,
@RequestParam(value = "source_system", required = false) String protectObjectSourceSystem,
@RequestParam(value = "creator", required = false) String creator,
@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "page_size", defaultValue = "10") Integer pageSize);
}

View File

@@ -15,7 +15,7 @@ public interface DynamicRuleMapper {
void newDynamicRule(@Param("object") DynamicRuleObject dynamicRuleObject);
//新建动态规则与保护对象关联
void newDynamicRulProtectObjectConcat(long dynamicRuleId, Integer protectObjectId);
Boolean newDynamicRulProtectObjectConcat(long dynamicRuleId, Integer protectObjectId);
void deleteDynamicRuleObject(Integer dynamicRuleId);
@@ -23,15 +23,21 @@ public interface DynamicRuleMapper {
List<ProtectObject> queryProtectObjectByRuleId(Integer dynamicRuleId);
void updateDynamicRuleObject(@Param("dynamicRuleId") Integer dynamicRuleId, @Param("object") DynamicRuleObject dynamicRuleObject);
Boolean updateDynamicRuleObject(@Param("dynamicRuleId") Integer dynamicRuleId, @Param("object") DynamicRuleObject dynamicRuleObject);
void newDynamicRules(List<DynamicRuleObject> dynamicRuleObjects);
void deleteDynamicRules(List<Integer> dynamicRuleIds);
List<DynamicRuleObject> queryDynamicRuleObject(String dynamicRuleName, Integer dynamicRuleId, Integer page, Integer pageSize);
List<DynamicRuleObject> queryDynamicRuleObject(String dynamicRuleName, Integer dynamicRuleId,
String sourceSystem, String creator,
Integer page, Integer pageSize);
void deleteDynamicRuleProtectObjectConcat(Integer dynamicRuleId);
Template queryTemplateByRuleId(Integer dynamicRuleId);
boolean newDynamicRulProtectObjectsConcat(Integer dynamicRuleId, List<Integer> protectObjectIds);
boolean queryProtectObjectById(Integer protectObjectId);
}

View File

@@ -24,14 +24,21 @@ public class DynamicRuleService {
@Transactional
public Integer newDynamicRuleObject(DynamicRuleObject dynamicRule) {
dynamicRuleMapper.newDynamicRule(dynamicRule);
Integer dynamicRuleId = dynamicRule.getDynamicRuleId();
if (dynamicRule.getProtectObjectIds() != null) {
dynamicRule.getProtectObjectIds().forEach(
protectObjectId -> dynamicRuleMapper.newDynamicRulProtectObjectConcat(dynamicRuleId, protectObjectId));
//判断protectObject id是否有效
boolean ProtectObjIdValid = dynamicRule.getProtectObjectIds().stream()
.allMatch(
protectObjectId -> dynamicRuleMapper.queryProtectObjectById(protectObjectId)
);
if (!ProtectObjIdValid) {
throw new IllegalArgumentException("protect object id is invalid");
}
Integer dynamicRuleId = dynamicRule.getDynamicRuleId();
dynamicRule.getProtectObjectIds().forEach(
protectObjectId -> dynamicRuleMapper.newDynamicRulProtectObjectConcat(dynamicRuleId, protectObjectId));
return dynamicRuleId;
}
@@ -77,12 +84,17 @@ public class DynamicRuleService {
//查询DynamicRule
DynamicRuleObject dynamicRuleObject = dynamicRuleMapper.queryDynamicRuleById(dynamicRuleId);
if (dynamicRuleObject == null){
return null;
throw new IllegalArgumentException("dynamic rule id is invalid");
}
//查询DynamicRule关联的ProtectObject
dynamicRuleObject.setProtectObjects(dynamicRuleMapper.queryProtectObjectByRuleId(dynamicRuleId));
//查询DynamicRule关联的template详细信息
Template template = dynamicRuleMapper.queryTemplateByRuleId(dynamicRuleId);
if (template == null){
//template在表中删除了需要重新设置template感觉这种情况不多见
dynamicRuleObject.setDynamicRuleSourceSystem("need reset");
dynamicRuleObject.setDynamicRuleEventType("need reset");
}
dynamicRuleObject.setDynamicRuleSourceSystem(template.getSourceSystem());
dynamicRuleObject.setDynamicRuleEventType(template.getTemplateName());
@@ -90,20 +102,28 @@ public class DynamicRuleService {
}
@Transactional
public void updateDynamicRuleObject(Integer dynamicRuleId, DynamicRuleObject dynamicRuleObject) {
public boolean updateDynamicRuleObject(Integer dynamicRuleId, DynamicRuleObject dynamicRuleObject) {
//更新DynamicRule
dynamicRuleObject.setDynamicRuleModifyTime(LocalDateTime.now());
dynamicRuleMapper.updateDynamicRuleObject(dynamicRuleId, dynamicRuleObject);
if (dynamicRuleObject.getProtectObjectIds() == null || dynamicRuleObject.getProtectObjectIds().isEmpty()) {
return;
Boolean idValid = dynamicRuleMapper.updateDynamicRuleObject(dynamicRuleId, dynamicRuleObject);
if (!idValid) {
throw new IllegalArgumentException("dynamic rule id is invalid");
}
//删除DynamicRule关联的ProtectObject
dynamicRuleMapper.deleteDynamicRuleProtectObjectConcat(dynamicRuleId);
//新增DynamicRule关联的ProtectObject
dynamicRuleObject.getProtectObjectIds().forEach(
protectObjectId -> dynamicRuleMapper.newDynamicRulProtectObjectConcat(dynamicRuleId, protectObjectId));
}
boolean ProtectObjIdValid = dynamicRuleObject.getProtectObjectIds().stream()
.allMatch(
protectObjectId -> dynamicRuleMapper.queryProtectObjectById(protectObjectId)
);
if (!ProtectObjIdValid) {
throw new IllegalArgumentException("protect object id is invalid");
}
return dynamicRuleMapper.newDynamicRulProtectObjectsConcat(dynamicRuleId, dynamicRuleObject.getProtectObjectIds());
}
// 批量删除
public Boolean deleteDynamicRuleObjects(List<Integer> dynamicRuleIds) {
Function<DynamicRuleMapper, Function<List<Integer>, Boolean>> deleteDynamicRuleFunction =
@@ -134,7 +154,10 @@ public class DynamicRuleService {
//分页查询基础的动态规则,暂时不返回关联的保护对象
public List<DynamicRuleObject> queryDynamicRuleObject(String dynamicRuleName, Integer dynamicRuleId, Integer page, Integer pageSize) {
return dynamicRuleMapper.queryDynamicRuleObject(dynamicRuleName, dynamicRuleId, page, pageSize);
public List<DynamicRuleObject> queryDynamicRuleObject(String dynamicRuleName, Integer dynamicRuleId,
String templateSourceSystem,String creator,
Integer page, Integer pageSize) {
return dynamicRuleMapper.queryDynamicRuleObject(dynamicRuleName, dynamicRuleId,
templateSourceSystem, creator, page, pageSize);
}
}