From dde470c9dad5acc64bb4803137c98b1ac153baa2 Mon Sep 17 00:00:00 2001 From: MHW Date: Fri, 13 Mar 2026 14:52:29 +0800 Subject: [PATCH] =?UTF-8?q?26-03-13-14=EF=BC=9A36=EF=BC=9A=E7=81=AB?= =?UTF-8?q?=E5=8A=9B=E8=A7=84=E5=88=99=E7=AE=80=E5=8D=95=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?-=E5=88=A0=E9=99=A4=E9=87=8D=E5=A4=8D=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- solution-rule/pom.xml | 39 ------- .../rule/domain/PlatformComponent.java | 32 ----- .../com/solution/rule/domain/RuleParam.java | 14 --- .../solution/rule/domain/dto/RequestDTO.java | 22 ---- .../rule/domain/dto/WeaponModelDTO.java | 23 ---- .../rule/domain/vo/ComponentCountVO.java | 16 --- .../domain/vo/PlatformComponentNamesVO.java | 17 --- .../domain/vo/PlatformWeaponAggregateVO.java | 18 --- .../rule/domain/vo/WeaponModelVO.java | 19 --- .../com/solution/rule/enums/SceneType.java | 39 ------- .../handler/AbstractRuleChainHandler.java | 43 ------- .../rule/handler/RuleChainHandler.java | 47 -------- .../rule/handler/WarplaneHandler.java | 36 ------ .../rule/mapper/ModelDetailMapper.java | 9 -- .../com/solution/rule/mapper/RuleMapper.java | 19 --- .../solution/rule/service/RuleService.java | 29 ----- .../rule/service/impl/RuleServiceImpl.java | 109 ------------------ .../rule/strategy/AirborneStrategy.java | 43 ------- .../rule/strategy/DefenseStrategy.java | 42 ------- .../solution/rule/strategy/SceneStrategy.java | 15 --- .../rule/strategy/SceneStrategyFactory.java | 45 -------- .../main/resources/mapper/rule/RuleMapper.xml | 37 ------ 22 files changed, 713 deletions(-) delete mode 100644 solution-rule/pom.xml delete mode 100644 solution-rule/src/main/java/com/solution/rule/domain/PlatformComponent.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/domain/RuleParam.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/domain/dto/RequestDTO.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/domain/dto/WeaponModelDTO.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/domain/vo/ComponentCountVO.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/domain/vo/PlatformComponentNamesVO.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/domain/vo/PlatformWeaponAggregateVO.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/domain/vo/WeaponModelVO.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/enums/SceneType.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/handler/AbstractRuleChainHandler.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/handler/RuleChainHandler.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/handler/WarplaneHandler.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/mapper/ModelDetailMapper.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/mapper/RuleMapper.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/service/RuleService.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/service/impl/RuleServiceImpl.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/strategy/AirborneStrategy.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/strategy/DefenseStrategy.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/strategy/SceneStrategy.java delete mode 100644 solution-rule/src/main/java/com/solution/rule/strategy/SceneStrategyFactory.java delete mode 100644 solution-rule/src/main/resources/mapper/rule/RuleMapper.xml diff --git a/solution-rule/pom.xml b/solution-rule/pom.xml deleted file mode 100644 index 33757b0..0000000 --- a/solution-rule/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - solution - com.solution - 3.9.1 - - - 4.0.0 - - solution-rule - - - rule模块 - - - - - - - com.solution - solution-common - - - - org.projectlombok - lombok - - - - io.springfox - springfox-boot-starter - - - - - \ No newline at end of file diff --git a/solution-rule/src/main/java/com/solution/rule/domain/PlatformComponent.java b/solution-rule/src/main/java/com/solution/rule/domain/PlatformComponent.java deleted file mode 100644 index dd66e3a..0000000 --- a/solution-rule/src/main/java/com/solution/rule/domain/PlatformComponent.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.solution.rule.domain; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * 平台挂载的组件实体类 - * 对应表 platform_component - */ -@Data -@ApiModel(value = "平台组件对象", description = "平台所挂载的武器、雷达、通信等组件") -public class PlatformComponent { - - @ApiModelProperty(value = "组件ID,主键自增") - private Integer id; - - @ApiModelProperty(value = "组件名称(具体型号)") - private String name; - - @ApiModelProperty(value = "组件类型:weapon(武器)、radar(雷达)、comm(通信)") - private String type; - - @ApiModelProperty(value = "组件描述信息") - private String description; - - @ApiModelProperty(value = "所属平台ID,关联platform表") - private Integer platformId; - - @ApiModelProperty(value = "组件数量") - private Long num; -} \ No newline at end of file diff --git a/solution-rule/src/main/java/com/solution/rule/domain/RuleParam.java b/solution-rule/src/main/java/com/solution/rule/domain/RuleParam.java deleted file mode 100644 index f437c75..0000000 --- a/solution-rule/src/main/java/com/solution/rule/domain/RuleParam.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.solution.rule.domain; - -import com.solution.rule.domain.dto.WeaponModelDTO; -import com.solution.rule.domain.vo.WeaponModelVO; -import lombok.Data; - - -@Data -public class RuleParam { - - private WeaponModelVO weaponModelVO; - - private WeaponModelDTO weaponModelDTO; -} diff --git a/solution-rule/src/main/java/com/solution/rule/domain/dto/RequestDTO.java b/solution-rule/src/main/java/com/solution/rule/domain/dto/RequestDTO.java deleted file mode 100644 index f2cdeeb..0000000 --- a/solution-rule/src/main/java/com/solution/rule/domain/dto/RequestDTO.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.solution.rule.domain.dto; - -import lombok.Data; - -/** - * 规则请求参数 - */ -@Data -public class RequestDTO { - - //编队数量 - private Long formationNum; - - //武装直升机数量 - private Long gunshipNum; - - //无人机数量 - private Long droneNum; - - //单兵武器数量 - private Long singleWeaponNum; -} diff --git a/solution-rule/src/main/java/com/solution/rule/domain/dto/WeaponModelDTO.java b/solution-rule/src/main/java/com/solution/rule/domain/dto/WeaponModelDTO.java deleted file mode 100644 index 1ec2fff..0000000 --- a/solution-rule/src/main/java/com/solution/rule/domain/dto/WeaponModelDTO.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.solution.rule.domain.dto; - -import com.solution.rule.domain.PlatformComponent; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.util.List; - -@Data -public class WeaponModelDTO { - - @ApiModelProperty("平台id") - private Integer id; - - @ApiModelProperty("平台名称") - private String name; - - @ApiModelProperty("平台描述") - private String description; - - @ApiModelProperty("平台组件") - private List components; -} diff --git a/solution-rule/src/main/java/com/solution/rule/domain/vo/ComponentCountVO.java b/solution-rule/src/main/java/com/solution/rule/domain/vo/ComponentCountVO.java deleted file mode 100644 index 9bb1f80..0000000 --- a/solution-rule/src/main/java/com/solution/rule/domain/vo/ComponentCountVO.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.solution.rule.domain.vo; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -// 组件计数VO -@Data -@ApiModel("组件计数信息") -public class ComponentCountVO { - @ApiModelProperty("组件名称") - private String componentName; - - @ApiModelProperty("组件数量") - private Long count; -} \ No newline at end of file diff --git a/solution-rule/src/main/java/com/solution/rule/domain/vo/PlatformComponentNamesVO.java b/solution-rule/src/main/java/com/solution/rule/domain/vo/PlatformComponentNamesVO.java deleted file mode 100644 index cd9e6c9..0000000 --- a/solution-rule/src/main/java/com/solution/rule/domain/vo/PlatformComponentNamesVO.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.solution.rule.domain.vo; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.util.List; - -@Data -@ApiModel("平台组件名称聚合") -public class PlatformComponentNamesVO { - @ApiModelProperty("平台名称") - private String platformName; - - @ApiModelProperty("该平台下的组件名称列表(去重)") - private List componentNames; -} \ No newline at end of file diff --git a/solution-rule/src/main/java/com/solution/rule/domain/vo/PlatformWeaponAggregateVO.java b/solution-rule/src/main/java/com/solution/rule/domain/vo/PlatformWeaponAggregateVO.java deleted file mode 100644 index f602600..0000000 --- a/solution-rule/src/main/java/com/solution/rule/domain/vo/PlatformWeaponAggregateVO.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.solution.rule.domain.vo; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.util.List; - -// 平台武器聚合VO -@Data -@ApiModel("平台武器聚合信息") -public class PlatformWeaponAggregateVO { - @ApiModelProperty("平台名称") - private String platformName; - - @ApiModelProperty("该平台下的组件列表") - private List components; -} \ No newline at end of file diff --git a/solution-rule/src/main/java/com/solution/rule/domain/vo/WeaponModelVO.java b/solution-rule/src/main/java/com/solution/rule/domain/vo/WeaponModelVO.java deleted file mode 100644 index 8388741..0000000 --- a/solution-rule/src/main/java/com/solution/rule/domain/vo/WeaponModelVO.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.solution.rule.domain.vo; - -import com.solution.rule.domain.dto.WeaponModelDTO; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -@Data -public class WeaponModelVO { - - @ApiModelProperty("平台名称") - private String platformName; - - @ApiModelProperty("组件名称") - private String componentName; - - @ApiModelProperty("组件数量") - private Long count; - -} diff --git a/solution-rule/src/main/java/com/solution/rule/enums/SceneType.java b/solution-rule/src/main/java/com/solution/rule/enums/SceneType.java deleted file mode 100644 index 142a69f..0000000 --- a/solution-rule/src/main/java/com/solution/rule/enums/SceneType.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.solution.rule.enums; - -public enum SceneType { - - DEFENSE(0, "防御"), - AIRBORNE(1, "空降"); - - private final int code; - private final String description; - - SceneType(int code, String description) { - this.code = code; - this.description = description; - } - - public int getCode() { - return code; - } - - public String getDescription() { - return description; - } - - - /** - * 根据数字编码获取对应的枚举 - * @param code 前端传递的数字 - * @return 枚举实例 - * @throws IllegalArgumentException 如果找不到对应枚举 - */ - public static SceneType fromCode(int code) { - for (SceneType type : values()) { - if (type.code == code) { - return type; - } - } - throw new IllegalArgumentException("未知的场景类型编码: " + code); - } -} \ No newline at end of file diff --git a/solution-rule/src/main/java/com/solution/rule/handler/AbstractRuleChainHandler.java b/solution-rule/src/main/java/com/solution/rule/handler/AbstractRuleChainHandler.java deleted file mode 100644 index 9d5c2e3..0000000 --- a/solution-rule/src/main/java/com/solution/rule/handler/AbstractRuleChainHandler.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.solution.rule.handler; - -import cn.hutool.core.util.ObjectUtil; -import com.solution.rule.domain.RuleParam; - -/** - * 规则链抽象类 - */ -public abstract class AbstractRuleChainHandler { - - - private AbstractRuleChainHandler nextHandler; - - - /** - * 执行过滤方法 - * @param ruleParam - * @return - */ - public abstract RuleParam doHandler(RuleParam ruleParam); - - - /** - * 执行下一个处理器 - * @param ruleParam - * @return - */ - public RuleParam doNextHandler(RuleParam ruleParam){ - if(ObjectUtil.isEmpty(nextHandler) || ObjectUtil.isNotEmpty(ruleParam)){ - return ruleParam; - } - return nextHandler.doHandler(ruleParam); - } - - /** - * 设置下游handler - * @param nextHandler - */ - public void setNextHandler(AbstractRuleChainHandler nextHandler) { - this.nextHandler = nextHandler; - } - -} diff --git a/solution-rule/src/main/java/com/solution/rule/handler/RuleChainHandler.java b/solution-rule/src/main/java/com/solution/rule/handler/RuleChainHandler.java deleted file mode 100644 index 42a5d33..0000000 --- a/solution-rule/src/main/java/com/solution/rule/handler/RuleChainHandler.java +++ /dev/null @@ -1,47 +0,0 @@ -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 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); - } - -} diff --git a/solution-rule/src/main/java/com/solution/rule/handler/WarplaneHandler.java b/solution-rule/src/main/java/com/solution/rule/handler/WarplaneHandler.java deleted file mode 100644 index 7896673..0000000 --- a/solution-rule/src/main/java/com/solution/rule/handler/WarplaneHandler.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.solution.rule.handler; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjectUtil; -import com.solution.common.constant.ExceptionConstants; -import com.solution.common.constant.PlatformAndModuleConstants; -import com.solution.rule.domain.PlatformComponent; -import com.solution.rule.domain.RuleParam; -import com.solution.rule.domain.dto.WeaponModelDTO; -import com.solution.rule.domain.vo.WeaponModelVO; -import org.springframework.stereotype.Component; - -import java.util.List; -import java.util.stream.Collectors; - -/** - * 战斗机处理链 - */ -@Component -public class WarplaneHandler extends AbstractRuleChainHandler{ - - @Override - public RuleParam doHandler(RuleParam ruleParam) { - if(ObjectUtil.isEmpty(ruleParam) || ObjectUtil.isEmpty(ruleParam.getWeaponModelDTO())){ - throw new RuntimeException(ExceptionConstants.PARAMETER_EXCEPTION); - } - WeaponModelDTO weaponModelDTO = ruleParam.getWeaponModelDTO(); - List platformComponents = weaponModelDTO.getComponents().stream() - .filter(component -> PlatformAndModuleConstants.F22.equals(component.getName())) - .collect(Collectors.toList()); - if (CollUtil.isEmpty(platformComponents)) { - throw new RuntimeException(ExceptionConstants.NOT_FOUND_F22_COMPONENT); - } - return null; - } -} diff --git a/solution-rule/src/main/java/com/solution/rule/mapper/ModelDetailMapper.java b/solution-rule/src/main/java/com/solution/rule/mapper/ModelDetailMapper.java deleted file mode 100644 index 903bf51..0000000 --- a/solution-rule/src/main/java/com/solution/rule/mapper/ModelDetailMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.solution.rule.mapper; - -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface ModelDetailMapper { - - -} diff --git a/solution-rule/src/main/java/com/solution/rule/mapper/RuleMapper.java b/solution-rule/src/main/java/com/solution/rule/mapper/RuleMapper.java deleted file mode 100644 index 2208c46..0000000 --- a/solution-rule/src/main/java/com/solution/rule/mapper/RuleMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.solution.rule.mapper; - -import com.solution.rule.domain.dto.WeaponModelDTO; -import com.solution.rule.domain.vo.WeaponModelVO; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; - -@Mapper -public interface RuleMapper { - - /** - * 获取所有武器平台和组件 - * @return - */ - List getWeapon(); - - List getPlatformComponentNames(); -} diff --git a/solution-rule/src/main/java/com/solution/rule/service/RuleService.java b/solution-rule/src/main/java/com/solution/rule/service/RuleService.java deleted file mode 100644 index 694da7d..0000000 --- a/solution-rule/src/main/java/com/solution/rule/service/RuleService.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.solution.rule.service; - -import com.solution.rule.domain.dto.RequestDTO; -import com.solution.rule.domain.dto.WeaponModelDTO; -import com.solution.rule.domain.vo.PlatformComponentNamesVO; -import com.solution.rule.domain.vo.PlatformWeaponAggregateVO; -import com.solution.rule.domain.vo.WeaponModelVO; - -import java.util.HashMap; -import java.util.List; - -public interface RuleService { - - /** - * 开始执行规则匹配 - * @param sceneType - * @param weaponModelDTO - * @return - */ - WeaponModelVO execute(Integer sceneType, WeaponModelDTO weaponModelDTO); - - List getWeapon(); - - /** - * 获取所有武器平台和组件 - * @return - */ - List getPlatformComponentNames(); -} diff --git a/solution-rule/src/main/java/com/solution/rule/service/impl/RuleServiceImpl.java b/solution-rule/src/main/java/com/solution/rule/service/impl/RuleServiceImpl.java deleted file mode 100644 index 1dd9545..0000000 --- a/solution-rule/src/main/java/com/solution/rule/service/impl/RuleServiceImpl.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.solution.rule.service.impl; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjectUtil; -import com.solution.common.constant.ExceptionConstants; -import com.solution.rule.domain.dto.WeaponModelDTO; -import com.solution.rule.domain.vo.ComponentCountVO; -import com.solution.rule.domain.vo.PlatformComponentNamesVO; -import com.solution.rule.domain.vo.PlatformWeaponAggregateVO; -import com.solution.rule.domain.vo.WeaponModelVO; -import com.solution.rule.mapper.RuleMapper; -import com.solution.rule.service.RuleService; -import com.solution.rule.strategy.SceneStrategy; -import com.solution.rule.strategy.SceneStrategyFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -@Service -public class RuleServiceImpl implements RuleService { - - @Autowired - private SceneStrategyFactory strategyFactory; - - @Autowired - private RuleMapper ruleMapper; - - @Override - public WeaponModelVO execute(Integer sceneType, WeaponModelDTO weaponModelDTO) { - if(ObjectUtil.isNull(sceneType) || ObjectUtil.isEmpty(weaponModelDTO)){ - throw new RuntimeException(ExceptionConstants.PARAMETER_EXCEPTION); - } - //TODO 查数据库获取我方装备 - List weapon = this.getWeapon(); - - SceneStrategy strategy = strategyFactory.getStrategy(sceneType); - WeaponModelVO result = strategy.execute(weaponModelDTO); - if(ObjectUtil.isEmpty(result)){ - throw new RuntimeException(ExceptionConstants.RESULT_EXCEPTION); - } - return result; - } - - - - @Override - public List getWeapon() { - List flatList = ruleMapper.getWeapon(); - if (CollUtil.isEmpty(flatList)) { - throw new RuntimeException(ExceptionConstants.RESULT_EXCEPTION); - } - - Map> groupByPlatform = flatList.stream() - .collect(Collectors.groupingBy(WeaponModelVO::getPlatformName)); - - List result = new ArrayList<>(); - for (Map.Entry> entry : groupByPlatform.entrySet()) { - PlatformWeaponAggregateVO platformVO = new PlatformWeaponAggregateVO(); - platformVO.setPlatformName(entry.getKey()); - - List components = entry.getValue().stream() - .map(item -> { - ComponentCountVO comp = new ComponentCountVO(); - comp.setComponentName(item.getComponentName()); - comp.setCount(item.getCount()); - return comp; - }) - .collect(Collectors.toList()); - platformVO.setComponents(components); - - result.add(platformVO); - } - - return result; - } - - - /** - * 获取所有武器平台和组件 - * @return - */ - @Override - public List getPlatformComponentNames() { - List flatList = ruleMapper.getPlatformComponentNames(); - if (CollUtil.isEmpty(flatList)) { - throw new RuntimeException(ExceptionConstants.RESULT_EXCEPTION); - } - - - Map> groupByPlatform = flatList.stream() - .collect(Collectors.groupingBy( - WeaponModelVO::getPlatformName, - Collectors.mapping(WeaponModelVO::getComponentName, Collectors.toList()) - )); - - return groupByPlatform.entrySet().stream() - .map(entry -> { - PlatformComponentNamesVO vo = new PlatformComponentNamesVO(); - vo.setPlatformName(entry.getKey()); - vo.setComponentNames(entry.getValue()); - return vo; - }) - .collect(Collectors.toList()); - } -} diff --git a/solution-rule/src/main/java/com/solution/rule/strategy/AirborneStrategy.java b/solution-rule/src/main/java/com/solution/rule/strategy/AirborneStrategy.java deleted file mode 100644 index 6540140..0000000 --- a/solution-rule/src/main/java/com/solution/rule/strategy/AirborneStrategy.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.solution.rule.strategy; - -import cn.hutool.core.util.ObjectUtil; -import com.solution.common.constant.ExceptionConstants; -import com.solution.rule.domain.RuleParam; -import com.solution.rule.domain.dto.WeaponModelDTO; -import com.solution.rule.domain.vo.WeaponModelVO; -import com.solution.rule.enums.SceneType; -import com.solution.rule.handler.RuleChainHandler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - - -@Component -public class AirborneStrategy implements SceneStrategy{ - - - @Autowired - private RuleChainHandler ruleChainHandler; - /** - * 空降场景处理 - * @param weaponModelDTO - * @return - */ - @Override - public WeaponModelVO execute(WeaponModelDTO weaponModelDTO) { - if(ObjectUtil.isEmpty(weaponModelDTO)){ - throw new RuntimeException(ExceptionConstants.PARAMETER_EXCEPTION); - } - RuleParam ruleParam = new RuleParam(); - ruleParam.setWeaponModelDTO(weaponModelDTO); - ruleParam = ruleChainHandler.findRuleParam(ruleParam); - if(ObjectUtil.isEmpty(ruleParam.getWeaponModelVO())){ - throw new RuntimeException(ExceptionConstants.RESULT_EXCEPTION); - } - return ruleParam.getWeaponModelVO(); - } - - @Override - public SceneType getSceneType() { - return SceneType.AIRBORNE; - } -} diff --git a/solution-rule/src/main/java/com/solution/rule/strategy/DefenseStrategy.java b/solution-rule/src/main/java/com/solution/rule/strategy/DefenseStrategy.java deleted file mode 100644 index e063702..0000000 --- a/solution-rule/src/main/java/com/solution/rule/strategy/DefenseStrategy.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.solution.rule.strategy; - -import cn.hutool.core.util.ObjectUtil; -import com.solution.common.constant.ExceptionConstants; -import com.solution.rule.domain.RuleParam; -import com.solution.rule.domain.dto.WeaponModelDTO; -import com.solution.rule.domain.vo.WeaponModelVO; -import com.solution.rule.enums.SceneType; -import com.solution.rule.handler.RuleChainHandler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -@Component -public class DefenseStrategy implements SceneStrategy{ - - - @Autowired - private RuleChainHandler ruleChainHandler; - /** - * 防御场景处理 - * @param weaponModelDTO - * @return - */ - @Override - public WeaponModelVO execute(WeaponModelDTO weaponModelDTO) { - if(ObjectUtil.isEmpty(weaponModelDTO)){ - throw new RuntimeException(ExceptionConstants.PARAMETER_EXCEPTION); - } - RuleParam ruleParam = new RuleParam(); - ruleParam.setWeaponModelDTO(weaponModelDTO); - ruleParam = ruleChainHandler.findRuleParam(ruleParam); - if(ObjectUtil.isEmpty(ruleParam.getWeaponModelVO())){ - throw new RuntimeException(ExceptionConstants.RESULT_EXCEPTION); - } - return ruleParam.getWeaponModelVO(); - } - - @Override - public SceneType getSceneType() { - return SceneType.DEFENSE; - } -} diff --git a/solution-rule/src/main/java/com/solution/rule/strategy/SceneStrategy.java b/solution-rule/src/main/java/com/solution/rule/strategy/SceneStrategy.java deleted file mode 100644 index 1e30b37..0000000 --- a/solution-rule/src/main/java/com/solution/rule/strategy/SceneStrategy.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.solution.rule.strategy; - -import com.solution.rule.domain.dto.RequestDTO; -import com.solution.rule.domain.dto.WeaponModelDTO; -import com.solution.rule.domain.vo.WeaponModelVO; -import com.solution.rule.enums.SceneType; - -import java.util.HashMap; - -public interface SceneStrategy { - - WeaponModelVO execute(WeaponModelDTO weaponModelDTO); - - SceneType getSceneType(); -} diff --git a/solution-rule/src/main/java/com/solution/rule/strategy/SceneStrategyFactory.java b/solution-rule/src/main/java/com/solution/rule/strategy/SceneStrategyFactory.java deleted file mode 100644 index beb935a..0000000 --- a/solution-rule/src/main/java/com/solution/rule/strategy/SceneStrategyFactory.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.solution.rule.strategy; - -import com.solution.rule.enums.SceneType; -import com.solution.rule.strategy.SceneStrategy; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import javax.annotation.PostConstruct; -import java.util.EnumMap; -import java.util.List; -import java.util.Map; - -@Component -public class SceneStrategyFactory { - - @Autowired - private List strategyList; - - private final Map strategyMap = new EnumMap<>(SceneType.class); - - @PostConstruct - public void init() { - for (SceneStrategy strategy : strategyList) { - SceneType type = strategy.getSceneType(); - if (strategyMap.containsKey(type)) { - throw new IllegalStateException("重复的场景类型: " + type); - } - strategyMap.put(type, strategy); - } - } - - /** - * 根据前端传递的数字编码获取对应的策略 - * @param code 前端传递的数字 - * @return 策略实现 - * @throws IllegalArgumentException 如果编码无效或策略未注册 - */ - public SceneStrategy getStrategy(int code) { - SceneType type = SceneType.fromCode(code); - SceneStrategy strategy = strategyMap.get(type); - if (strategy == null) { - throw new IllegalArgumentException("未找到编码 " + code + " 对应的策略实现"); - } - return strategy; - } -} \ No newline at end of file diff --git a/solution-rule/src/main/resources/mapper/rule/RuleMapper.xml b/solution-rule/src/main/resources/mapper/rule/RuleMapper.xml deleted file mode 100644 index 38d7dc5..0000000 --- a/solution-rule/src/main/resources/mapper/rule/RuleMapper.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file