diff --git a/par-api/src/main/java/com/par/api/controller/RiskRuleController.java b/par-api/src/main/java/com/par/api/controller/RiskRuleController.java index fecf7c3..5534c59 100644 --- a/par-api/src/main/java/com/par/api/controller/RiskRuleController.java +++ b/par-api/src/main/java/com/par/api/controller/RiskRuleController.java @@ -21,12 +21,25 @@ public class RiskRuleController { @GetMapping("/api/v1/risk-rules/{siteType}") public ResponseEntity getRules(@PathVariable String siteType, - @RequestParam(defaultValue = "0") int version) { + @RequestParam(defaultValue = "0") int version, + @RequestParam(defaultValue = "") String source) { + // 先尝试自定义规则 int currentVer = riskRuleService.getVersion(siteType); - if (currentVer <= version) return ResponseEntity.status(304).build(); Map data = riskRuleService.getRules(siteType); - if (data == null) return ResponseEntity.status(304).build(); - return ResponseEntity.ok(data); + if (data != null) { + data.put("source", "custom"); + if (currentVer == version && "custom".equals(source)) return ResponseEntity.status(304).build(); + return ResponseEntity.ok(data); + } + // 回退默认模板 + int defVer = riskRuleService.getVersion("default:" + siteType); + Map defData = riskRuleService.getRules("default:" + siteType); + if (defData != null) { + defData.put("source", "default"); + if (defVer == version && "default".equals(source)) return ResponseEntity.status(304).build(); + return ResponseEntity.ok(defData); + } + return ResponseEntity.status(304).build(); } @PostMapping("/api/v1/risk-rules/{siteType}")