diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/PortMappingController.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/PortMappingController.java index ea1dcbe5..c7fc8755 100644 --- a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/PortMappingController.java +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/PortMappingController.java @@ -30,7 +30,6 @@ public class PortMappingController { @Mapping("/page") public PageInfo page(PageQuery pageQuery, PortMappingListReq req) { ParamCheckUtil.checkNotNull(pageQuery, "pageQuery"); - return portMappingService.page(pageQuery, req); } diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/res/proxy/PortMappingListRes.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/res/proxy/PortMappingListRes.java index 465f9a6d..d0b14da0 100644 --- a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/res/proxy/PortMappingListRes.java +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/controller/res/proxy/PortMappingListRes.java @@ -21,11 +21,13 @@ */ package org.dromara.neutrinoproxy.server.controller.res.proxy; +import com.baomidou.mybatisplus.annotation.TableField; import org.dromara.neutrinoproxy.server.constant.EnableStatusEnum; import org.dromara.neutrinoproxy.server.constant.OnlineStatusEnum; import lombok.Data; import java.util.Date; +import java.util.List; /** * 端口映射列表响应 @@ -44,13 +46,17 @@ public class PortMappingListRes { */ private String protocal; /** - * 子域名 + * 子域名集合 */ - private String subdomain; + private List subdomains; + /** + * 域名集合 + */ + private List domains; /** - * 域名 + * 域名id集合 */ - private String domain; + private List domainIds; /** * license名称 */ diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/dal/PortMappingMapper.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/dal/PortMappingMapper.java index 71364325..b240047e 100644 --- a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/dal/PortMappingMapper.java +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/dal/PortMappingMapper.java @@ -11,6 +11,7 @@ import org.dromara.neutrinoproxy.server.controller.req.proxy.PortMappingListReq; import org.dromara.neutrinoproxy.server.dal.entity.PortMappingDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.dromara.neutrinoproxy.server.service.bo.FullDomainNameBO; import java.util.Date; import java.util.List; @@ -108,4 +109,6 @@ public interface PortMappingMapper extends BaseMapper { } List selectPortMappingByCondition(IPage page, @Param("req") PortMappingListReq req); + + List selectFullDomainNameListByIds(@Param("ids") Set ids); } diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/service/PortMappingService.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/service/PortMappingService.java index 5ce15105..606181b7 100644 --- a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/service/PortMappingService.java +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/service/PortMappingService.java @@ -40,6 +40,7 @@ import org.dromara.neutrinoproxy.server.dal.entity.PortMappingDO; import org.dromara.neutrinoproxy.server.dal.entity.PortPoolDO; import org.dromara.neutrinoproxy.server.dal.entity.UserDO; import org.dromara.neutrinoproxy.server.service.bo.FlowLimitBO; +import org.dromara.neutrinoproxy.server.service.bo.FullDomainNameBO; import org.dromara.neutrinoproxy.server.util.ParamCheckUtil; import org.dromara.neutrinoproxy.server.util.ProxyUtil; import org.dromara.neutrinoproxy.server.util.StringUtil; @@ -118,7 +119,15 @@ public class PortMappingService implements LifecycleBean { Map licenseMap = licenseList.stream().collect(Collectors.toMap(LicenseDO::getId, Function.identity())); Map userMap = userList.stream().collect(Collectors.toMap(UserDO::getId, Function.identity())); + //域名相关 + Set portMappingIds = respList.stream().map(PortMappingListRes::getId).collect(Collectors.toSet()); + List fullDomainNameBOS = portMappingMapper.selectFullDomainNameListByIds(portMappingIds); + Map> fullDomainNameBOMap = fullDomainNameBOS.stream().collect(Collectors.groupingBy(FullDomainNameBO::getId)); + respList.forEach(item -> { + //TODO 删除subdomain字段 + item.setSubdomains(null); + LicenseDO license = licenseMap.get(item.getLicenseId()); if (null == license) { return; @@ -130,8 +139,14 @@ public class PortMappingService implements LifecycleBean { return; } item.setUserName(user.getName()); - if (StrUtil.isNotBlank(proxyConfig.getServer().getTcp().getDomainName()) && StrUtil.isNotBlank(item.getSubdomain())) { - item.setDomain(item.getSubdomain() + "." + proxyConfig.getServer().getTcp().getDomainName()); + List bos = fullDomainNameBOMap.get(item.getId()); + if (CollectionUtil.isNotEmpty(bos)) { + List subdomains = bos.stream().map(FullDomainNameBO::getSubdomain).collect(Collectors.toList()); + List domains = bos.stream().map(FullDomainNameBO::getDomain).collect(Collectors.toList()); + List domainIds = bos.stream().map(FullDomainNameBO::getDomainId).collect(Collectors.toList()); + item.setSubdomains(subdomains); + item.setDomains(domains); + item.setDomainIds(domainIds); } if (NetworkProtocolEnum.HTTP.getDesc().equals(item.getProtocal())) { item.setProtocal("HTTP(S)"); diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/service/bo/FullDomainNameBO.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/service/bo/FullDomainNameBO.java new file mode 100644 index 00000000..4e6e07c2 --- /dev/null +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/service/bo/FullDomainNameBO.java @@ -0,0 +1,34 @@ +package org.dromara.neutrinoproxy.server.service.bo; + +import lombok.Data; +import lombok.experimental.Accessors; +import org.dromara.neutrinoproxy.server.controller.res.report.HomeDataView; + +import java.util.Date; + +/** + * 完整域名 + * @author: mirac + * @date: 2024/8/8 + */ +@Data +@Accessors(chain = true) +public class FullDomainNameBO { + /** + * 端口映射id + */ + private Integer id; + /** + * 子域名 + */ + private String subdomain; + /** + * 域名 + */ + private String domain; + + /** + * 域名id + */ + private Integer domainId; +} diff --git a/neutrino-proxy-server/src/main/resources/mapper/PortMappingMapper.xml b/neutrino-proxy-server/src/main/resources/mapper/PortMappingMapper.xml index 22348ef9..cbac75ba 100644 --- a/neutrino-proxy-server/src/main/resources/mapper/PortMappingMapper.xml +++ b/neutrino-proxy-server/src/main/resources/mapper/PortMappingMapper.xml @@ -29,4 +29,16 @@ order by pm.id asc + + \ No newline at end of file