火力规则:返回平台以及组件

This commit is contained in:
MHW
2026-03-12 16:01:04 +08:00
parent 8b3fe9b548
commit 956d3f69ea
30 changed files with 817 additions and 4 deletions

View File

@@ -0,0 +1,47 @@
package com.solution.rule.handler;
import cn.hutool.core.collection.CollUtil;
import com.solution.common.constant.ExceptionConstants;
import com.solution.rule.domain.RuleParam;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.List;
/**
* 封装规则处理链
*/
@Component
public class RuleChainHandler {
@Resource
private List<AbstractRuleChainHandler> chainHandlers;
private AbstractRuleChainHandler firstHandler;
/**
* 组装处理链
*/
@PostConstruct
private void constructChain(){
if (CollUtil.isEmpty(chainHandlers)) {
throw new RuntimeException(ExceptionConstants.NOT_FOUND_CARRIAGE_CHAIN_HANDLER);
}
this.firstHandler = chainHandlers.get(0);
for (int i = 0; i < chainHandlers.size(); i++) {
if(i == (chainHandlers.size() - 1)){
chainHandlers.get(i).setNextHandler(null);
}else {
chainHandlers.get(i).setNextHandler(chainHandlers.get(i + 1));
}
}
}
public RuleParam findRuleParam(RuleParam ruleParam){
return firstHandler.doHandler(ruleParam);
}
}