mirror of https://github.com/jeecgboot/jeecg-boot
				
				
				
			
						commit
						6d34164a16
					
				| 
						 | 
				
			
			@ -21,6 +21,7 @@ import org.jeecg.config.RouterDataType;
 | 
			
		|||
import org.jeecg.loader.repository.DynamicRouteService;
 | 
			
		||||
import org.jeecg.loader.repository.MyInMemoryRouteDefinitionRepository;
 | 
			
		||||
import org.jeecg.loader.vo.MyRouteDefinition;
 | 
			
		||||
import org.jeecg.loader.vo.PredicatesVo;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.cloud.context.config.annotation.RefreshScope;
 | 
			
		||||
import org.springframework.cloud.gateway.event.RefreshRoutesEvent;
 | 
			
		||||
| 
						 | 
				
			
			@ -35,10 +36,7 @@ import reactor.core.publisher.Mono;
 | 
			
		|||
 | 
			
		||||
import java.net.URI;
 | 
			
		||||
import java.net.URISyntaxException;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.Properties;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import java.util.concurrent.Executor;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -207,10 +205,26 @@ public class DynamicRouteLoader implements ApplicationEventPublisherAware {
 | 
			
		|||
            }
 | 
			
		||||
            Object predicates = obj.get("predicates");
 | 
			
		||||
            if (predicates != null) {
 | 
			
		||||
                JSONArray list = JSON.parseArray(predicates.toString());
 | 
			
		||||
                
 | 
			
		||||
                List<PredicatesVo> list = JSON.parseArray(predicates.toString(), PredicatesVo.class);
 | 
			
		||||
                Map<String, List<String>> groupedPredicates = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
                for (PredicatesVo predicatesVo : list) {
 | 
			
		||||
                    String name = predicatesVo.getName();
 | 
			
		||||
                    List<String> args = predicatesVo.getArgs();
 | 
			
		||||
                    groupedPredicates.computeIfAbsent(name, k -> new ArrayList<>()).addAll(args);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                list = new ArrayList<>();
 | 
			
		||||
                for (Map.Entry<String, List<String>> entry : groupedPredicates.entrySet()) {
 | 
			
		||||
                    String name = entry.getKey();
 | 
			
		||||
                    List<String> args = entry.getValue();
 | 
			
		||||
                    list.add(new PredicatesVo(name, args));
 | 
			
		||||
                }
 | 
			
		||||
                
 | 
			
		||||
                List<PredicateDefinition> predicateDefinitionList = new ArrayList<>();
 | 
			
		||||
                for (Object map : list) {
 | 
			
		||||
                    JSONObject json = (JSONObject) map;
 | 
			
		||||
                    JSONObject json = JSON.parseObject(JSON.toJSONString(map));
 | 
			
		||||
                    PredicateDefinition predicateDefinition = new PredicateDefinition();
 | 
			
		||||
                    //update-begin-author:zyf date:20220419 for:【VUEN-762】路由条件添加异常问题,原因是部分路由条件参数需要设置固定key
 | 
			
		||||
                    String name=json.getString("name");
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
package org.jeecg.loader.vo;
 | 
			
		||||
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.NoArgsConstructor;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@Data
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
@NoArgsConstructor
 | 
			
		||||
public class PredicatesVo {
 | 
			
		||||
    private String  name;
 | 
			
		||||
    private List<String> args;
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue