package cn.com.goldenwater.domain; import cn.com.goldenwater.utils.StringUtils; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import org.springframework.cloud.gateway.filter.FilterDefinition; import org.springframework.cloud.gateway.handler.predicate.PredicateDefinition; import java.io.Serializable; import java.util.ArrayList; import java.util.List; @Data @TableName public class GatewayRoutes implements Serializable { private String id; private String serviceName; private String uri; private String predicates; private String filters; private String status; public List getPredicateDefinition() { if (this.predicates != null) { String predicates; if (!this.predicates.contains("/**")) { predicates = this.predicates + "/**"; } else { predicates = this.predicates; } PredicateDefinition predicateDefinition = new PredicateDefinition(); predicateDefinition.setName("Path"); predicateDefinition.addArg("_genkey_0", predicates); List predicateDefinitionList = new ArrayList<>(); predicateDefinitionList.add(predicateDefinition); return predicateDefinitionList; } else { return null; } } public List getFilterDefinition() { if (StringUtils.isNoneBlank(this.filters)) { FilterDefinition filterDefinition = new FilterDefinition(); filterDefinition.setName("StripPrefix"); filterDefinition.addArg("_genkey_0", this.filters); List filterDefinitionList = new ArrayList<>(); filterDefinitionList.add(filterDefinition); return filterDefinitionList; } else { return null; } } }