package cn.com.goldenwater.domain; import cn.com.goldenwater.utils.JsonUtils; import cn.com.goldenwater.utils.StringUtils; import com.alibaba.fastjson2.JSONObject; 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; import java.util.Map; @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; /** * 响应成功格式 */ private String resultSuccessFormat; private String auth; private String authQueryOptions; private String authExpirationTime; 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; } } public JSONObject getResultSuccessFormatData() { if (StringUtils.isNoneBlank(this.resultSuccessFormat)) { return JsonUtils.jsonToPojo(this.resultSuccessFormat, JSONObject.class); } else { return JsonUtils.jsonToPojo("{\"code\":\"200\",\"field\":\"code\"}", JSONObject.class); } } }