refactor: 风险规则统一version+source判断+默认回退
This commit is contained in:
@@ -21,12 +21,25 @@ public class RiskRuleController {
|
|||||||
|
|
||||||
@GetMapping("/api/v1/risk-rules/{siteType}")
|
@GetMapping("/api/v1/risk-rules/{siteType}")
|
||||||
public ResponseEntity<?> getRules(@PathVariable String 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);
|
int currentVer = riskRuleService.getVersion(siteType);
|
||||||
if (currentVer <= version) return ResponseEntity.status(304).build();
|
|
||||||
Map<String, Object> data = riskRuleService.getRules(siteType);
|
Map<String, Object> data = riskRuleService.getRules(siteType);
|
||||||
if (data == null) return ResponseEntity.status(304).build();
|
if (data != null) {
|
||||||
return ResponseEntity.ok(data);
|
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<String, Object> 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}")
|
@PostMapping("/api/v1/risk-rules/{siteType}")
|
||||||
|
|||||||
Reference in New Issue
Block a user