mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 07:50:25 +08:00 
			
		
		
		
	优化服务列表返回速度
This commit is contained in:
		@@ -976,7 +976,7 @@ func (this *NodeDAO) ComposeNodeConfig(tx *dbs.Tx, nodeId int64, cacheMap *utils
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, server := range servers {
 | 
						for _, server := range servers {
 | 
				
			||||||
		serverConfig, err := SharedServerDAO.ComposeServerConfig(tx, server, cacheMap, true)
 | 
							serverConfig, err := SharedServerDAO.ComposeServerConfig(tx, server, cacheMap, true, false)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1009,12 +1009,12 @@ func (this *ServerDAO) ComposeServerConfigWithServerId(tx *dbs.Tx, serverId int6
 | 
				
			|||||||
	if server == nil {
 | 
						if server == nil {
 | 
				
			||||||
		return nil, ErrNotFound
 | 
							return nil, ErrNotFound
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return this.ComposeServerConfig(tx, server, nil, forNode)
 | 
						return this.ComposeServerConfig(tx, server, nil, forNode, false)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ComposeServerConfig 构造服务的Config
 | 
					// ComposeServerConfig 构造服务的Config
 | 
				
			||||||
// forNode 是否是节点请求
 | 
					// forNode 是否是节点请求
 | 
				
			||||||
func (this *ServerDAO) ComposeServerConfig(tx *dbs.Tx, server *Server, cacheMap *utils.CacheMap, forNode bool) (*serverconfigs.ServerConfig, error) {
 | 
					func (this *ServerDAO) ComposeServerConfig(tx *dbs.Tx, server *Server, cacheMap *utils.CacheMap, forNode bool, forList bool) (*serverconfigs.ServerConfig, error) {
 | 
				
			||||||
	if server == nil {
 | 
						if server == nil {
 | 
				
			||||||
		return nil, ErrNotFound
 | 
							return nil, ErrNotFound
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -1039,7 +1039,7 @@ func (this *ServerDAO) ComposeServerConfig(tx *dbs.Tx, server *Server, cacheMap
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	var groupConfig *serverconfigs.ServerGroupConfig
 | 
						var groupConfig *serverconfigs.ServerGroupConfig
 | 
				
			||||||
	for _, groupId := range server.DecodeGroupIds() {
 | 
						for _, groupId := range server.DecodeGroupIds() {
 | 
				
			||||||
		groupConfig1, err := SharedServerGroupDAO.ComposeGroupConfig(tx, groupId, cacheMap)
 | 
							groupConfig1, err := SharedServerGroupDAO.ComposeGroupConfig(tx, groupId, forList, cacheMap)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -1062,28 +1062,30 @@ func (this *ServerDAO) ComposeServerConfig(tx *dbs.Tx, server *Server, cacheMap
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// CNAME
 | 
						// CNAME
 | 
				
			||||||
	config.SupportCNAME = server.SupportCNAME == 1
 | 
						if !forList {
 | 
				
			||||||
	if server.ClusterId > 0 && len(server.DnsName) > 0 {
 | 
							config.SupportCNAME = server.SupportCNAME == 1
 | 
				
			||||||
		clusterDNS, err := SharedNodeClusterDAO.FindClusterDNSInfo(tx, int64(server.ClusterId), cacheMap)
 | 
							if server.ClusterId > 0 && len(server.DnsName) > 0 {
 | 
				
			||||||
		if err != nil {
 | 
								clusterDNS, err := SharedNodeClusterDAO.FindClusterDNSInfo(tx, int64(server.ClusterId), cacheMap)
 | 
				
			||||||
			return nil, err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if clusterDNS != nil && clusterDNS.DnsDomainId > 0 {
 | 
					 | 
				
			||||||
			clusterDNSConfig, err := clusterDNS.DecodeDNSConfig()
 | 
					 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return nil, err
 | 
									return nil, err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
								if clusterDNS != nil && clusterDNS.DnsDomainId > 0 {
 | 
				
			||||||
 | 
									clusterDNSConfig, err := clusterDNS.DecodeDNSConfig()
 | 
				
			||||||
 | 
									if err != nil {
 | 
				
			||||||
 | 
										return nil, err
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			domain, err := dns.SharedDNSDomainDAO.FindEnabledDNSDomain(tx, int64(clusterDNS.DnsDomainId), cacheMap)
 | 
									domain, err := dns.SharedDNSDomainDAO.FindEnabledDNSDomain(tx, int64(clusterDNS.DnsDomainId), cacheMap)
 | 
				
			||||||
			if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
				return nil, err
 | 
										return nil, err
 | 
				
			||||||
			}
 | 
									}
 | 
				
			||||||
			if domain != nil {
 | 
									if domain != nil {
 | 
				
			||||||
				var cname = server.DnsName + "." + domain.Name
 | 
										var cname = server.DnsName + "." + domain.Name
 | 
				
			||||||
				config.CNameDomain = cname
 | 
										config.CNameDomain = cname
 | 
				
			||||||
				if clusterDNSConfig.CNAMEAsDomain {
 | 
										if clusterDNSConfig.CNAMEAsDomain {
 | 
				
			||||||
					config.CNameAsDomain = true
 | 
											config.CNameAsDomain = true
 | 
				
			||||||
					config.AliasServerNames = append(config.AliasServerNames, cname)
 | 
											config.AliasServerNames = append(config.AliasServerNames, cname)
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -1174,61 +1176,71 @@ func (this *ServerDAO) ComposeServerConfig(tx *dbs.Tx, server *Server, cacheMap
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Web
 | 
						// Web
 | 
				
			||||||
	if server.WebId > 0 {
 | 
						if !forList {
 | 
				
			||||||
		webConfig, err := SharedHTTPWebDAO.ComposeWebConfig(tx, int64(server.WebId), cacheMap)
 | 
							if server.WebId > 0 {
 | 
				
			||||||
		if err != nil {
 | 
								webConfig, err := SharedHTTPWebDAO.ComposeWebConfig(tx, int64(server.WebId), cacheMap)
 | 
				
			||||||
			return nil, err
 | 
								if err != nil {
 | 
				
			||||||
		}
 | 
									return nil, err
 | 
				
			||||||
		if webConfig != nil {
 | 
								}
 | 
				
			||||||
			config.Web = webConfig
 | 
								if webConfig != nil {
 | 
				
			||||||
 | 
									config.Web = webConfig
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// ReverseProxy
 | 
						// ReverseProxy
 | 
				
			||||||
	if IsNotNull(server.ReverseProxy) {
 | 
						if !forList {
 | 
				
			||||||
		var reverseProxyRef = &serverconfigs.ReverseProxyRef{}
 | 
							if IsNotNull(server.ReverseProxy) {
 | 
				
			||||||
		err := json.Unmarshal(server.ReverseProxy, reverseProxyRef)
 | 
								var reverseProxyRef = &serverconfigs.ReverseProxyRef{}
 | 
				
			||||||
		if err != nil {
 | 
								err := json.Unmarshal(server.ReverseProxy, reverseProxyRef)
 | 
				
			||||||
			return nil, err
 | 
								if err != nil {
 | 
				
			||||||
		}
 | 
									return nil, err
 | 
				
			||||||
		config.ReverseProxyRef = reverseProxyRef
 | 
								}
 | 
				
			||||||
 | 
								config.ReverseProxyRef = reverseProxyRef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		reverseProxyConfig, err := SharedReverseProxyDAO.ComposeReverseProxyConfig(tx, reverseProxyRef.ReverseProxyId, cacheMap)
 | 
								reverseProxyConfig, err := SharedReverseProxyDAO.ComposeReverseProxyConfig(tx, reverseProxyRef.ReverseProxyId, cacheMap)
 | 
				
			||||||
		if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
			return nil, err
 | 
									return nil, err
 | 
				
			||||||
		}
 | 
								}
 | 
				
			||||||
		if reverseProxyConfig != nil {
 | 
								if reverseProxyConfig != nil {
 | 
				
			||||||
			config.ReverseProxy = reverseProxyConfig
 | 
									config.ReverseProxy = reverseProxyConfig
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// WAF策略
 | 
						// WAF策略
 | 
				
			||||||
	var clusterId = int64(server.ClusterId)
 | 
						var clusterId = int64(server.ClusterId)
 | 
				
			||||||
	httpFirewallPolicyId, err := SharedNodeClusterDAO.FindClusterHTTPFirewallPolicyId(tx, clusterId, cacheMap)
 | 
						if !forList {
 | 
				
			||||||
	if err != nil {
 | 
							httpFirewallPolicyId, err := SharedNodeClusterDAO.FindClusterHTTPFirewallPolicyId(tx, clusterId, cacheMap)
 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if httpFirewallPolicyId > 0 {
 | 
					 | 
				
			||||||
		config.HTTPFirewallPolicyId = httpFirewallPolicyId
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// 缓存策略
 | 
					 | 
				
			||||||
	httpCachePolicyId, err := SharedNodeClusterDAO.FindClusterHTTPCachePolicyId(tx, clusterId, cacheMap)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if httpCachePolicyId > 0 {
 | 
					 | 
				
			||||||
		config.HTTPCachePolicyId = httpCachePolicyId
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// traffic limit
 | 
					 | 
				
			||||||
	if len(server.TrafficLimit) > 0 {
 | 
					 | 
				
			||||||
		var trafficLimitConfig = &serverconfigs.TrafficLimitConfig{}
 | 
					 | 
				
			||||||
		err = json.Unmarshal(server.TrafficLimit, trafficLimitConfig)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		config.TrafficLimit = trafficLimitConfig
 | 
							if httpFirewallPolicyId > 0 {
 | 
				
			||||||
 | 
								config.HTTPFirewallPolicyId = httpFirewallPolicyId
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// 缓存策略
 | 
				
			||||||
 | 
						if !forList {
 | 
				
			||||||
 | 
							httpCachePolicyId, err := SharedNodeClusterDAO.FindClusterHTTPCachePolicyId(tx, clusterId, cacheMap)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if httpCachePolicyId > 0 {
 | 
				
			||||||
 | 
								config.HTTPCachePolicyId = httpCachePolicyId
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// traffic limit
 | 
				
			||||||
 | 
						if !forList {
 | 
				
			||||||
 | 
							if len(server.TrafficLimit) > 0 {
 | 
				
			||||||
 | 
								var trafficLimitConfig = &serverconfigs.TrafficLimitConfig{}
 | 
				
			||||||
 | 
								err := json.Unmarshal(server.TrafficLimit, trafficLimitConfig)
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
 | 
									return nil, err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								config.TrafficLimit = trafficLimitConfig
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 用户套餐
 | 
						// 用户套餐
 | 
				
			||||||
@@ -1271,7 +1283,7 @@ func (this *ServerDAO) ComposeServerConfig(tx *dbs.Tx, server *Server, cacheMap
 | 
				
			|||||||
	if config.TrafficLimit != nil && config.TrafficLimit.IsOn && !config.TrafficLimit.IsEmpty() {
 | 
						if config.TrafficLimit != nil && config.TrafficLimit.IsOn && !config.TrafficLimit.IsEmpty() {
 | 
				
			||||||
		if len(server.TrafficLimitStatus) > 0 {
 | 
							if len(server.TrafficLimitStatus) > 0 {
 | 
				
			||||||
			var status = &serverconfigs.TrafficLimitStatus{}
 | 
								var status = &serverconfigs.TrafficLimitStatus{}
 | 
				
			||||||
			err = json.Unmarshal(server.TrafficLimitStatus, status)
 | 
								err := json.Unmarshal(server.TrafficLimitStatus, status)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return nil, err
 | 
									return nil, err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@@ -1282,14 +1294,16 @@ func (this *ServerDAO) ComposeServerConfig(tx *dbs.Tx, server *Server, cacheMap
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// UAM
 | 
						// UAM
 | 
				
			||||||
	if teaconst.IsPlus && IsNotNull(server.Uam) {
 | 
						if !forList {
 | 
				
			||||||
		var uamConfig = &serverconfigs.UAMConfig{}
 | 
							if teaconst.IsPlus && IsNotNull(server.Uam) {
 | 
				
			||||||
		err = json.Unmarshal(server.Uam, uamConfig)
 | 
								var uamConfig = &serverconfigs.UAMConfig{}
 | 
				
			||||||
		if err != nil {
 | 
								err := json.Unmarshal(server.Uam, uamConfig)
 | 
				
			||||||
			return nil, err
 | 
								if err != nil {
 | 
				
			||||||
		}
 | 
									return nil, err
 | 
				
			||||||
		if uamConfig.IsOn {
 | 
								}
 | 
				
			||||||
			config.UAM = uamConfig
 | 
								if uamConfig.IsOn {
 | 
				
			||||||
 | 
									config.UAM = uamConfig
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -279,7 +279,7 @@ func (this *ServerGroupDAO) InitGroupWeb(tx *dbs.Tx, groupId int64) (int64, erro
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ComposeGroupConfig 组合配置
 | 
					// ComposeGroupConfig 组合配置
 | 
				
			||||||
func (this *ServerGroupDAO) ComposeGroupConfig(tx *dbs.Tx, groupId int64, cacheMap *utils.CacheMap) (*serverconfigs.ServerGroupConfig, error) {
 | 
					func (this *ServerGroupDAO) ComposeGroupConfig(tx *dbs.Tx, groupId int64, forList bool, cacheMap *utils.CacheMap) (*serverconfigs.ServerGroupConfig, error) {
 | 
				
			||||||
	if cacheMap == nil {
 | 
						if cacheMap == nil {
 | 
				
			||||||
		cacheMap = utils.NewCacheMap()
 | 
							cacheMap = utils.NewCacheMap()
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -315,65 +315,67 @@ func (this *ServerGroupDAO) ComposeGroupConfig(tx *dbs.Tx, groupId int64, cacheM
 | 
				
			|||||||
		IsOn: group.IsOn,
 | 
							IsOn: group.IsOn,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if IsNotNull(group.HttpReverseProxy) {
 | 
						if !forList {
 | 
				
			||||||
		reverseProxyRef := &serverconfigs.ReverseProxyRef{}
 | 
							if IsNotNull(group.HttpReverseProxy) {
 | 
				
			||||||
		err := json.Unmarshal(group.HttpReverseProxy, reverseProxyRef)
 | 
								reverseProxyRef := &serverconfigs.ReverseProxyRef{}
 | 
				
			||||||
		if err != nil {
 | 
								err := json.Unmarshal(group.HttpReverseProxy, reverseProxyRef)
 | 
				
			||||||
			return nil, err
 | 
								if err != nil {
 | 
				
			||||||
		}
 | 
									return nil, err
 | 
				
			||||||
		config.HTTPReverseProxyRef = reverseProxyRef
 | 
								}
 | 
				
			||||||
 | 
								config.HTTPReverseProxyRef = reverseProxyRef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		reverseProxyConfig, err := SharedReverseProxyDAO.ComposeReverseProxyConfig(tx, reverseProxyRef.ReverseProxyId, cacheMap)
 | 
								reverseProxyConfig, err := SharedReverseProxyDAO.ComposeReverseProxyConfig(tx, reverseProxyRef.ReverseProxyId, cacheMap)
 | 
				
			||||||
		if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
			return nil, err
 | 
									return nil, err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if reverseProxyConfig != nil {
 | 
				
			||||||
 | 
									config.HTTPReverseProxy = reverseProxyConfig
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if reverseProxyConfig != nil {
 | 
					 | 
				
			||||||
			config.HTTPReverseProxy = reverseProxyConfig
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if IsNotNull(group.TcpReverseProxy) {
 | 
							if IsNotNull(group.TcpReverseProxy) {
 | 
				
			||||||
		reverseProxyRef := &serverconfigs.ReverseProxyRef{}
 | 
								reverseProxyRef := &serverconfigs.ReverseProxyRef{}
 | 
				
			||||||
		err := json.Unmarshal(group.TcpReverseProxy, reverseProxyRef)
 | 
								err := json.Unmarshal(group.TcpReverseProxy, reverseProxyRef)
 | 
				
			||||||
		if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
			return nil, err
 | 
									return nil, err
 | 
				
			||||||
		}
 | 
								}
 | 
				
			||||||
		config.TCPReverseProxyRef = reverseProxyRef
 | 
								config.TCPReverseProxyRef = reverseProxyRef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		reverseProxyConfig, err := SharedReverseProxyDAO.ComposeReverseProxyConfig(tx, reverseProxyRef.ReverseProxyId, cacheMap)
 | 
								reverseProxyConfig, err := SharedReverseProxyDAO.ComposeReverseProxyConfig(tx, reverseProxyRef.ReverseProxyId, cacheMap)
 | 
				
			||||||
		if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
			return nil, err
 | 
									return nil, err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if reverseProxyConfig != nil {
 | 
				
			||||||
 | 
									config.TCPReverseProxy = reverseProxyConfig
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if reverseProxyConfig != nil {
 | 
					 | 
				
			||||||
			config.TCPReverseProxy = reverseProxyConfig
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if IsNotNull(group.UdpReverseProxy) {
 | 
							if IsNotNull(group.UdpReverseProxy) {
 | 
				
			||||||
		reverseProxyRef := &serverconfigs.ReverseProxyRef{}
 | 
								reverseProxyRef := &serverconfigs.ReverseProxyRef{}
 | 
				
			||||||
		err := json.Unmarshal(group.UdpReverseProxy, reverseProxyRef)
 | 
								err := json.Unmarshal(group.UdpReverseProxy, reverseProxyRef)
 | 
				
			||||||
		if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
			return nil, err
 | 
									return nil, err
 | 
				
			||||||
		}
 | 
								}
 | 
				
			||||||
		config.UDPReverseProxyRef = reverseProxyRef
 | 
								config.UDPReverseProxyRef = reverseProxyRef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		reverseProxyConfig, err := SharedReverseProxyDAO.ComposeReverseProxyConfig(tx, reverseProxyRef.ReverseProxyId, cacheMap)
 | 
								reverseProxyConfig, err := SharedReverseProxyDAO.ComposeReverseProxyConfig(tx, reverseProxyRef.ReverseProxyId, cacheMap)
 | 
				
			||||||
		if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
			return nil, err
 | 
									return nil, err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if reverseProxyConfig != nil {
 | 
				
			||||||
 | 
									config.UDPReverseProxy = reverseProxyConfig
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if reverseProxyConfig != nil {
 | 
					 | 
				
			||||||
			config.UDPReverseProxy = reverseProxyConfig
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// web
 | 
							// web
 | 
				
			||||||
	if group.WebId > 0 {
 | 
							if group.WebId > 0 {
 | 
				
			||||||
		webConfig, err := SharedHTTPWebDAO.ComposeWebConfig(tx, int64(group.WebId), cacheMap)
 | 
								webConfig, err := SharedHTTPWebDAO.ComposeWebConfig(tx, int64(group.WebId), cacheMap)
 | 
				
			||||||
		if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
			return nil, err
 | 
									return nil, err
 | 
				
			||||||
		}
 | 
								}
 | 
				
			||||||
		if webConfig != nil {
 | 
								if webConfig != nil {
 | 
				
			||||||
			config.Web = webConfig
 | 
									config.Web = webConfig
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -840,21 +840,38 @@ func (this *ServerService) ListEnabledServersMatch(ctx context.Context, req *pb.
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// 配置
 | 
							// 配置
 | 
				
			||||||
		config, err := models.SharedServerDAO.ComposeServerConfig(tx, server, nil, false)
 | 
							config, err := models.SharedServerDAO.ComposeServerConfig(tx, server, nil, false, true)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							var countServerNames int32 = 0
 | 
				
			||||||
 | 
							for _, serverName := range config.ServerNames {
 | 
				
			||||||
 | 
								if len(serverName.SubNames) > 0 {
 | 
				
			||||||
 | 
									countServerNames += int32(len(serverName.SubNames))
 | 
				
			||||||
 | 
								} else {
 | 
				
			||||||
 | 
									countServerNames++
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if req.IgnoreServerNames && len(config.ServerNames) > 0 {
 | 
				
			||||||
 | 
								config.ServerNames = config.ServerNames[:1]
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		configJSON, err := json.Marshal(config)
 | 
							configJSON, err := json.Marshal(config)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// 忽略信息
 | 
				
			||||||
 | 
							if req.IgnoreServerNames {
 | 
				
			||||||
 | 
								server.ServerNames = nil
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		result = append(result, &pb.Server{
 | 
							result = append(result, &pb.Server{
 | 
				
			||||||
			Id:                      int64(server.Id),
 | 
								Id:                      int64(server.Id),
 | 
				
			||||||
			IsOn:                    server.IsOn,
 | 
								IsOn:                    server.IsOn,
 | 
				
			||||||
			Type:                    server.Type,
 | 
								Type:                    server.Type,
 | 
				
			||||||
			Config:                  configJSON,
 | 
								Config:                  configJSON,
 | 
				
			||||||
			Name:                    server.Name,
 | 
								Name:                    server.Name,
 | 
				
			||||||
 | 
								CountServerNames:        countServerNames,
 | 
				
			||||||
			Description:             server.Description,
 | 
								Description:             server.Description,
 | 
				
			||||||
			HttpJSON:                server.Http,
 | 
								HttpJSON:                server.Http,
 | 
				
			||||||
			HttpsJSON:               server.Https,
 | 
								HttpsJSON:               server.Https,
 | 
				
			||||||
@@ -986,7 +1003,7 @@ func (this *ServerService) FindEnabledServer(ctx context.Context, req *pb.FindEn
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 配置
 | 
						// 配置
 | 
				
			||||||
	config, err := models.SharedServerDAO.ComposeServerConfig(tx, server, nil, userId > 0)
 | 
						config, err := models.SharedServerDAO.ComposeServerConfig(tx, server, nil, userId > 0, false)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -463,7 +463,7 @@ func (this *ServerGroupService) FindEnabledServerGroupConfigInfo(ctx context.Con
 | 
				
			|||||||
		result.HasUDPReverseProxy = ref.IsPrior
 | 
							result.HasUDPReverseProxy = ref.IsPrior
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	config, err := models.SharedServerGroupDAO.ComposeGroupConfig(tx, int64(group.Id), nil)
 | 
						config, err := models.SharedServerGroupDAO.ComposeGroupConfig(tx, int64(group.Id), false, nil)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user