|  | @@ -5,6 +5,7 @@ import com.xunmei.host.websocket.enums.ProductEnums;
 | 
	
		
			
				|  |  |  import com.xunmei.host.websocket.service.RouterService;
 | 
	
		
			
				|  |  |  import com.xunmei.system.api.util.LogUtils;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import java.util.Arrays;
 | 
	
		
			
				|  |  |  import java.util.List;
 | 
	
		
			
				|  |  |  import java.util.Map;
 | 
	
		
			
				|  |  |  import java.util.Optional;
 | 
	
	
		
			
				|  | @@ -17,24 +18,28 @@ public class RouterServiceHandler {
 | 
	
		
			
				|  |  |      private static final Map<ProductEnums, List<RouterService>> PRODUCT_HASH_MAP = new ConcurrentHashMap<>();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      static {
 | 
	
		
			
				|  |  | -            Map<String, RouterService> map = SpringUtil.getBeansOfType(RouterService.class);
 | 
	
		
			
				|  |  | -            Map<ProductEnums, List<RouterService>> productEnumsListMap = map.values().stream().collect(Collectors.groupingBy(RouterService::product));
 | 
	
		
			
				|  |  | -            PRODUCT_HASH_MAP.putAll(productEnumsListMap);
 | 
	
		
			
				|  |  | +        Map<String, RouterService> map = SpringUtil.getBeansOfType(RouterService.class);
 | 
	
		
			
				|  |  | +        Map<ProductEnums, List<RouterService>> productEnumsListMap = map.values().stream().collect(Collectors.groupingBy(RouterService::product));
 | 
	
		
			
				|  |  | +        PRODUCT_HASH_MAP.putAll(productEnumsListMap);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            SpringUtil.getBeansOfType(RouterService.class).forEach((k, v) -> {
 | 
	
		
			
				|  |  | -                CONCURRENT_HASH_MAP.put(v.routerKey(), v);
 | 
	
		
			
				|  |  | -            });
 | 
	
		
			
				|  |  | +        SpringUtil.getBeansOfType(RouterService.class).forEach((k, v) -> {
 | 
	
		
			
				|  |  | +            CONCURRENT_HASH_MAP.put(v.routerKey(), v);
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public static RouterService getRouteService(String productName, String routerKey) {
 | 
	
		
			
				|  |  |          ProductEnums enums = ProductEnums.getByProductByName(productName);
 | 
	
		
			
				|  |  |          if (enums == null) {
 | 
	
		
			
				|  |  | -            LogUtils.WEBSOCKET_MSG.error("未找到对应的产品类型: routerKey: {},productName:{}", routerKey,productName);
 | 
	
		
			
				|  |  | +            LogUtils.WEBSOCKET_MSG.error("未找到对应的产品类型: routerKey: {},productName:{}", routerKey, productName);
 | 
	
		
			
				|  |  |              return null;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          final Optional<RouterService> first = PRODUCT_HASH_MAP.get(enums)
 | 
	
		
			
				|  |  |                  .stream()
 | 
	
		
			
				|  |  | -                .filter(routerService -> routerService.routerKey().contains(routerKey))
 | 
	
		
			
				|  |  | +                .filter(routerService -> {
 | 
	
		
			
				|  |  | +                    final String key = routerService.routerKey();
 | 
	
		
			
				|  |  | +                    final String[] split = key.split(",");
 | 
	
		
			
				|  |  | +                    return split.length == 1 ? key.equals(routerKey) : Arrays.asList(split).contains(routerKey);
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  |                  .findFirst();
 | 
	
		
			
				|  |  |          if (first.isPresent()) {
 | 
	
		
			
				|  |  |              return first.get();
 |