diff --git a/CloudClientInternalNetworkPenetration.README.md b/CloudClientInternalNetworkPenetration.README.md
index 2b17bb5..3f4f369 100644
--- a/CloudClientInternalNetworkPenetration.README.md
+++ b/CloudClientInternalNetworkPenetration.README.md
@@ -2,11 +2,11 @@
#### 模块说明
-| 模块 | 所属层级 | 描述 | 端口 |
-|----------------------------------------------------------------------------------------|------|------------------------|----------------------------------------------------------------|
-| [middleground-cloud-heartbeat-common](middleground-cloud-heartbeat-common) | 基础模块 | 基于Netty数据解码、编码、通道处理器声明 | 无 |
-| [middleground-on-cloud-heartbeat-server](middleground-on-cloud-heartbeat-server) | 启动模块 | 内网穿透服务端 | http端口:6001、tcp端口:7001 (默认tcp端口=http端口+1000 如:6001+1000=7001) |
-| [middleground-under-cloud-heartbeat-client](middleground-under-cloud-heartbeat-client) | 启动模块 | 内网穿透客户端 | 6004 |
+| 模块 | 所属层级 | 描述 | 端口 |
+|------------------------------------------------------------------|------|------------------------|----------------------------------------------------------------|
+| [wu-lazy-cloud-heartbeat-common](wu-lazy-cloud-heartbeat-common) | 基础模块 | 基于Netty数据解码、编码、通道处理器声明 | 无 |
+| [wu-lazy-cloud-heartbeat-server](wu-lazy-cloud-heartbeat-server) | 启动模块 | 内网穿透服务端 | http端口:6001、tcp端口:7001 (默认tcp端口=http端口+1000 如:6001+1000=7001) |
+| [wu-lazy-cloud-heartbeat-client](wu-lazy-cloud-heartbeat-client) | 启动模块 | 内网穿透客户端 | 6004 |
#### 功能
@@ -52,13 +52,13 @@ spring:
如果云端需要部署云上暂存+内网穿透功能:需要部署 内网穿透服务端、暂存服务、内网穿透客户端、云上离线网关
```
-| 模块 | 说明 | 部署内网穿透必须 | 部署内网穿透+云上暂存必须 |
-|----------------------------------------------------------------------------------------|------------|----------|---------------|
-| [middleground-on-cloud-heartbeat-server](middleground-on-cloud-heartbeat-server) | 内网穿透+心跳服务端 | ☑️ | ☑️ |
-| [middleground-under-cloud-heartbeat-client](middleground-under-cloud-heartbeat-client) | 内网穿透+心跳客户端 | ✖️ | ☑️ |
-| [middleground-cloud-staging-provider](middleground-cloud-staging-provider) | 暂存服务 | ✖️ | ☑️ |
-| [middleground-on-cloud-central-gateway](middleground-on-cloud-central-gateway) | 云上暂存网关 | ✖️ | ☑️ |
-| [middleground-under-cloud-central-gateway](middleground-under-cloud-central-gateway) | 云下暂存网关 | ✖️ | ✖️ |
+| 模块 | 说明 | 部署内网穿透必须 | 部署内网穿透+云上暂存必须 |
+|------------------------------------------------------------------|------------|----------|---------------|
+| [wu-lazy-cloud-heartbeat-server](wu-lazy-cloud-heartbeat-server) | 内网穿透+心跳服务端 | ☑️ | ☑️ |
+| [wu-lazy-cloud-heartbeat-client](wu-lazy-cloud-heartbeat-client) | 内网穿透+心跳客户端 | ✖️ | ☑️ |
+| [wu-lazy-cloud-staging-provider](wu-lazy-cloud-staging-provider) | 暂存服务 | ✖️ | ☑️ |
+| [wu-lazy-cloud-central-gateway](wu-lazy-cloud-central-gateway) | 云上暂存网关 | ✖️ | ☑️ |
+| [wu-lazy-cloud-central-gateway](wu-lazy-cloud-central-gateway) | 云下暂存网关 | ✖️ | ✖️ |
##### 云网关部署
@@ -66,13 +66,13 @@ spring:
云网关部署内网穿透客户端
```
-| 模块 | 说明 | 部署内网穿透必须 | 部署内网穿透+云上暂存必须 |
-|----------------------------------------------------------------------------------------|------------|----------|---------------|
-| [middleground-on-cloud-heartbeat-server](middleground-on-cloud-heartbeat-server) | 内网穿透+心跳服务端 | ✖️ | ✖️ |
-| [middleground-under-cloud-heartbeat-client](middleground-under-cloud-heartbeat-client) | 内网穿透+心跳客户端 | ✖️ | ☑️ |
-| [middleground-cloud-staging-provider](middleground-cloud-staging-provider) | 暂存服务 | ✖️ | ✖️ |
-| [middleground-on-cloud-central-gateway](middleground-on-cloud-central-gateway) | 云上暂存网关 | ✖️ | ☑️ |
-| [middleground-under-cloud-central-gateway](middleground-under-cloud-central-gateway) | 云下暂存网关 | ✖️ | ✖️ |
+| 模块 | 说明 | 部署内网穿透必须 | 部署内网穿透+云上暂存必须 |
+|------------------------------------------------------------------|------------|----------|---------------|
+| [wu-lazy-cloud-heartbeat-server](wu-lazy-cloud-heartbeat-server) | 内网穿透+心跳服务端 | ✖️ | ✖️ |
+| [wu-lazy-cloud-heartbeat-client](wu-lazy-cloud-heartbeat-client) | 内网穿透+心跳客户端 | ✖️ | ☑️ |
+| [wu-lazy-cloud-staging-provider](wu-lazy-cloud-staging-provider) | 暂存服务 | ✖️ | ✖️ |
+| [wu-lazy-cloud-central-gateway](wu-lazy-cloud-central-gateway) | 云上暂存网关 | ✖️ | ☑️ |
+| [wu-lazy-cloud-central-gateway](wu-lazy-cloud-central-gateway) | 云下暂存网关 | ✖️ | ✖️ |
##### 独立租户部署
@@ -81,12 +81,12 @@ spring:
内网穿透+离线暂存能力: 需要部署内网穿透客户端、离线网关、离线暂存服务
```
-| 模块 | 说明 | 部署内网穿透必须 | 部署内网穿透+云上暂存必须 |
-|----------------------------------------------------------------------------------------|------------|----------|---------------|
-| [middleground-on-cloud-heartbeat-server](middleground-on-cloud-heartbeat-server) | 内网穿透+心跳服务端 | ✖️ | ✖️ |
-| [middleground-under-cloud-heartbeat-client](middleground-under-cloud-heartbeat-client) | 内网穿透+心跳客户端 | ☑️ | ☑️ |
-| [middleground-cloud-staging-provider](middleground-cloud-staging-provider) | 暂存服务 | ✖️ | ☑️ |
-| [middleground-on-cloud-central-gateway](middleground-on-cloud-central-gateway) | 云上暂存网关 | ✖️ | ✖️ |
-| [middleground-under-cloud-central-gateway](middleground-under-cloud-central-gateway) | 云下暂存网关 | ✖️ | ☑️ |
+| 模块 | 说明 | 部署内网穿透必须 | 部署内网穿透+云上暂存必须 |
+|------------------------------------------------------------------|------------|----------|---------------|
+| [wu-lazy-cloud-heartbeat-server](wu-lazy-cloud-heartbeat-server) | 内网穿透+心跳服务端 | ✖️ | ✖️ |
+| [wu-lazy-cloud-heartbeat-client](wu-lazy-cloud-heartbeat-client) | 内网穿透+心跳客户端 | ☑️ | ☑️ |
+| [wu-lazy-cloud-staging-provider](wu-lazy-cloud-staging-provider) | 暂存服务 | ✖️ | ☑️ |
+| [wu-lazy-cloud-central-gateway](wu-lazy-cloud-central-gateway) | 云上暂存网关 | ✖️ | ✖️ |
+| [wu-lazy-cloud-central-gateway](wu-lazy-cloud-central-gateway) | 云下暂存网关 | ✖️ | ☑️ |
diff --git a/README.md b/README.md
index f7def0a..3b35894 100644
--- a/README.md
+++ b/README.md
@@ -1,17 +1,101 @@
-原理分析 内网穿透的实现过程主要分三步
-1、启动服务端,这时服务端监听了两个端口(16001,16002,可根据启动参数修改),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-一个用来接收客户端请求(16001端口),
+
-一个用来接收访客代理(16002端口)
+#### 项目介绍
+wu-lazy-cloud-network 是一款基于(wu-framework-parent)孵化出的项目,内部使用Lazy ORM操作数据库,主要功能是网络穿透,对于没有公网IP的服务进行公网IP映射
+使用环境JDK17 Spring Boot 3.0.2
+### 功能
+ 1.内网穿透
+ 2.服务端自主下发数据到客户端
+ 3.流量监控
-2、启动客户端,客户端访问服务端提供的(16001端口)建立连接(server-client通道)
-3、访客访问代理接口(16002端口),服务端监听到之后创建访客ID,然后通过(server-client通道)向客户端发送指令,客户端接收指令后连接到真实服务端口(8080,可根据启动参数修改),连接真实服务成功后,客户端会重新向服务端建立一条连接(访客-server通道),服务端把访客和该通道进行绑定
+### 项目结构
-这三步最终形成了(访客-代理-客户端-真实服务)完整的通道。
+| 模块 | 版本 | 描述 |
+|---------------------------------------------------------------------------------------------------------------|----------------------|------------------------------|
+| [wu-lazy-cloud-heartbeat-common](wu-lazy-cloud-heartbeat-common) | 1.2.2-JDK17-SNAPSHOT | 内网穿透公共模块(声明接口、枚举、常量、适配器、解析器) |
+| [wu-lazy-cloud-heartbeat-client](wu-lazy-cloud-heartbeat-client) | 1.2.2-JDK17-SNAPSHOT | 客户端(支持二次开发) |
+| [wu-lazy-cloud-heartbeat-server](wu-lazy-cloud-heartbeat-server) | 1.2.2-JDK17-SNAPSHOT | 服务端(支持二次开发) |
+| [wu-lazy-cloud-network-ui](wu-lazy-cloud-network-ui) | 1.2.2-JDK17-SNAPSHOT | 服务端页面 |
+| [wu-lazy-cloud-heartbeat-client-sample](wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample) | 1.2.2-JDK17-SNAPSHOT | 客户端样例 |
+| [wu-lazy-cloud-heartbeat-server-sample](wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample) | 1.2.2-JDK17-SNAPSHOT | 服务端样例 |
-启动服务端 java -jar cc-server.jar 16001 16002
-启动客户端 java -jar cc-client.jar 127.0.0.1 16001 8080
+### 使用技术
+
+| 框架 | 版本 | 描述 |
+|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------|--------------|
+| spring-boot | 3.0.7 | springboot框架 |
+| [wu-framework-web](https://gitee.com/wujiawei1207537021/wu-framework-parent/tree/master/wu-framework-web) | 1.2.2-JDK17-SNAPSHOT | web容器 |
+| [Lazy -ORM](https://gitee.com/wujiawei1207537021/wu-framework-parent/tree/master/wu-inner-intergration/wu-database-parent) | 1.2.2-JDK17-SNAPSHOT | ORM |
+| mysql-connector-j | 8.0.33 | mysql驱动 |
+| [wu-authorization-server-platform-starter](https://gitee.com/wujiawei1207537021/wu-framework-parent/tree/master/wu-smart-platform/wu-authorization-server-platform-starter) | 1.2.2-JDK17-SNAPSHOT | 用户授权体系 |
+
+### 使用环境
+ IDEA
+ Mac、Windows
+ JAVA >=13
+ MAVEN
+
+### 启动
+ docker启动
+
+ docker run -d -it -p 18080:18080 --name wu-lazy-cloud-heartbeat-server registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-server:1.2.2-JDK17-SNAPSHOT
+
+ http://127.0.0.1:18080/swagger-ui/index.html
+
+ 源码启动
+#### 页面操作
+
+启动项目后打开服务端界面
+
+
+
+默认账号密码:admin/admin
+
+
+初始化项目
+
+添加角色
+
+为用户授权
+
+
+刷新页面
+
+
+客户端管理(客户端会自动注册)
+
+
+网络映射管理(修改后者新增需要映射的客户端)
+
+
+访客端口池管理(服务器端需要开放的端口)
+
+
+流量管理(每个客户端使用的流量)
+
\ No newline at end of file
diff --git a/authRoe2User.png b/authRoe2User.png
new file mode 100644
index 0000000..fc2846f
Binary files /dev/null and b/authRoe2User.png differ
diff --git a/cloud_client.png b/cloud_client.png
new file mode 100644
index 0000000..0901014
Binary files /dev/null and b/cloud_client.png differ
diff --git a/flow.png b/flow.png
new file mode 100644
index 0000000..c3ec8c1
Binary files /dev/null and b/flow.png differ
diff --git a/init_menu.png b/init_menu.png
new file mode 100644
index 0000000..54ab27d
Binary files /dev/null and b/init_menu.png differ
diff --git a/init_role.png b/init_role.png
new file mode 100644
index 0000000..c80615d
Binary files /dev/null and b/init_role.png differ
diff --git a/k8s-on.yaml b/k8s-on.yaml
deleted file mode 100644
index cd5305c..0000000
--- a/k8s-on.yaml
+++ /dev/null
@@ -1,152 +0,0 @@
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- annotations:
- k8s.kuboard.cn/displayName: 【云上云下】云上心跳服务端(新)
- labels:
- k8s.kuboard.cn/layer: monitor
- k8s.kuboard.cn/name: middleground-on-cloud-heartbeat-server
- name: middleground-on-cloud-heartbeat-server
- namespace: middleground-management
-spec:
- progressDeadlineSeconds: 600
- replicas: 1
- revisionHistoryLimit: 10
- selector:
- matchLabels:
- k8s.kuboard.cn/layer: monitor
- k8s.kuboard.cn/name: middleground-on-cloud-heartbeat-server
- strategy:
- rollingUpdate:
- maxSurge: 25%
- maxUnavailable: 25%
- type: RollingUpdate
- template:
- metadata:
- labels:
- k8s.kuboard.cn/layer: monitor
- k8s.kuboard.cn/name: middleground-on-cloud-heartbeat-server
- spec:
- containers:
- - envFrom:
- - configMapRef:
- name: common-cnf
- image: >-
- docker-registry.laihui.com/middleground/middleground-on-cloud-heartbeat-server:master_latest
- imagePullPolicy: Always
- name: middleground-on-cloud-heartbeat-server
- resources:
- limits:
- memory: 512Mi
- requests:
- memory: 512Mi
- terminationMessagePath: /dev/termination-log
- terminationMessagePolicy: File
- dnsPolicy: ClusterFirst
- restartPolicy: Always
- schedulerName: default-scheduler
- securityContext: {}
- terminationGracePeriodSeconds: 30
-
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- annotations:
- k8s.kuboard.cn/displayName: 【云上云下】云上中心网关(新)
- labels:
- k8s.kuboard.cn/layer: gateway
- k8s.kuboard.cn/name: middleground-on-cloud-central-gateway
- name: middleground-on-cloud-central-gateway
- namespace: middleground-management
-spec:
- progressDeadlineSeconds: 600
- replicas: 1
- revisionHistoryLimit: 10
- selector:
- matchLabels:
- k8s.kuboard.cn/layer: gateway
- k8s.kuboard.cn/name: middleground-on-cloud-central-gateway
- strategy:
- rollingUpdate:
- maxSurge: 25%
- maxUnavailable: 25%
- type: RollingUpdate
- template:
- metadata:
- labels:
- k8s.kuboard.cn/layer: gateway
- k8s.kuboard.cn/name: middleground-on-cloud-central-gateway
- spec:
- containers:
- - envFrom:
- - configMapRef:
- name: common-cnf
- image: >-
- docker-registry.laihui.com/middleground/middleground-on-cloud-central-gateway:master_latest
- imagePullPolicy: Always
- name: middleground-on-cloud-central-gateway
- resources:
- limits:
- memory: 384Mi
- requests:
- memory: 384Mi
- terminationMessagePath: /dev/termination-log
- terminationMessagePolicy: File
- dnsPolicy: ClusterFirst
- restartPolicy: Always
- schedulerName: default-scheduler
- securityContext: {}
- terminationGracePeriodSeconds: 30
-
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- annotations:
- k8s.kuboard.cn/displayName: 【云上云下】暂存服务(新)
- labels:
- k8s.kuboard.cn/layer: svc
- k8s.kuboard.cn/name: middleground-cloud-staging-provider
- name: middleground-cloud-staging-provider
- namespace: middleground-management
-spec:
- progressDeadlineSeconds: 600
- replicas: 1
- revisionHistoryLimit: 10
- selector:
- matchLabels:
- k8s.kuboard.cn/layer: svc
- k8s.kuboard.cn/name: middleground-cloud-staging-provider
- strategy:
- rollingUpdate:
- maxSurge: 25%
- maxUnavailable: 25%
- type: RollingUpdate
- template:
- metadata:
- labels:
- k8s.kuboard.cn/layer: svc
- k8s.kuboard.cn/name: middleground-cloud-staging-provider
- spec:
- containers:
- - envFrom:
- - configMapRef:
- name: common-cnf
- image: >-
- docker-registry.laihui.com/middleground/middleground-cloud-staging-provider:master_latest
- imagePullPolicy: Always
- name: middleground-cloud-staging-provider
- resources:
- limits:
- memory: 384Mi
- requests:
- memory: 384Mi
- terminationMessagePath: /dev/termination-log
- terminationMessagePolicy: File
- dnsPolicy: ClusterFirst
- restartPolicy: Always
- schedulerName: default-scheduler
- securityContext: {}
- terminationGracePeriodSeconds: 30
diff --git a/k8s-under.yaml b/k8s-under.yaml
deleted file mode 100644
index 432e4dc..0000000
--- a/k8s-under.yaml
+++ /dev/null
@@ -1,154 +0,0 @@
-
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- annotations:
- k8s.kuboard.cn/displayName: 【云上云下】云下心跳客户端(新)
- labels:
- k8s.kuboard.cn/layer: monitor
- k8s.kuboard.cn/name: middleground-under-cloud-heartbeat-client
- name: middleground-under-cloud-heartbeat-client
- namespace: middleground-tenant-share
-spec:
- progressDeadlineSeconds: 600
- replicas: 1
- revisionHistoryLimit: 10
- selector:
- matchLabels:
- k8s.kuboard.cn/layer: monitor
- k8s.kuboard.cn/name: middleground-under-cloud-heartbeat-client
- strategy:
- rollingUpdate:
- maxSurge: 25%
- maxUnavailable: 25%
- type: RollingUpdate
- template:
- metadata:
- labels:
- k8s.kuboard.cn/layer: monitor
- k8s.kuboard.cn/name: middleground-under-cloud-heartbeat-client
- spec:
- containers:
- - envFrom:
- - configMapRef:
- name: common-cnf
- image: >-
- docker-registry.laihui.com/middleground/middleground-under-cloud-heartbeat-client:master_latest
- imagePullPolicy: Always
- name: middleground-under-cloud-heartbeat-client
- resources:
- limits:
- memory: 384Mi
- requests:
- memory: 384Mi
- terminationMessagePath: /dev/termination-log
- terminationMessagePolicy: File
- dnsPolicy: ClusterFirst
- restartPolicy: Always
- schedulerName: default-scheduler
- securityContext: {}
- terminationGracePeriodSeconds: 30
-
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- annotations:
- k8s.kuboard.cn/displayName: 【云上云下】云下中心网关(新)
- labels:
- k8s.kuboard.cn/layer: gateway
- k8s.kuboard.cn/name: middleground-under-cloud-central-gateway
- name: middleground-under-cloud-central-gateway
- namespace: middleground-tenant-share
-spec:
- progressDeadlineSeconds: 600
- replicas: 1
- revisionHistoryLimit: 10
- selector:
- matchLabels:
- k8s.kuboard.cn/layer: gateway
- k8s.kuboard.cn/name: middleground-under-cloud-central-gateway
- strategy:
- rollingUpdate:
- maxSurge: 25%
- maxUnavailable: 25%
- type: RollingUpdate
- template:
- metadata:
- labels:
- k8s.kuboard.cn/layer: gateway
- k8s.kuboard.cn/name: middleground-under-cloud-central-gateway
- spec:
- containers:
- - envFrom:
- - configMapRef:
- name: common-cnf
- image: >-
- docker-registry.laihui.com/middleground/middleground-under-cloud-central-gateway:master_latest
- imagePullPolicy: Always
- name: middleground-under-cloud-central-gateway
- resources:
- limits:
- memory: 384Mi
- requests:
- memory: 384Mi
- terminationMessagePath: /dev/termination-log
- terminationMessagePolicy: File
- dnsPolicy: ClusterFirst
- restartPolicy: Always
- schedulerName: default-scheduler
- securityContext: {}
- terminationGracePeriodSeconds: 30
-
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- annotations:
- k8s.kuboard.cn/displayName: 【云上云下】云下暂存服务(新)
- labels:
- k8s.kuboard.cn/layer: svc
- k8s.kuboard.cn/name: middleground-cloud-staging-provider
- name: middleground-cloud-staging-provider
- namespace: middleground-tenant-share
-spec:
- progressDeadlineSeconds: 600
- replicas: 1
- revisionHistoryLimit: 10
- selector:
- matchLabels:
- k8s.kuboard.cn/layer: svc
- k8s.kuboard.cn/name: middleground-cloud-staging-provider
- strategy:
- rollingUpdate:
- maxSurge: 25%
- maxUnavailable: 25%
- type: RollingUpdate
- template:
- metadata:
- labels:
- k8s.kuboard.cn/layer: svc
- k8s.kuboard.cn/name: middleground-cloud-staging-provider
- spec:
- containers:
- - envFrom:
- - configMapRef:
- name: common-cnf
- image: >-
- docker-registry.laihui.com/middleground/middleground-cloud-staging-provider:master_latest
- imagePullPolicy: Always
- name: middleground-cloud-staging-provider
- resources:
- limits:
- memory: 384Mi
- requests:
- memory: 384Mi
- terminationMessagePath: /dev/termination-log
- terminationMessagePolicy: File
- dnsPolicy: ClusterFirst
- restartPolicy: Always
- schedulerName: default-scheduler
- securityContext: {}
- terminationGracePeriodSeconds: 30
-
diff --git a/login.png b/login.png
new file mode 100644
index 0000000..8377a9f
Binary files /dev/null and b/login.png differ
diff --git a/main.png b/main.png
new file mode 100644
index 0000000..c3ec8c1
Binary files /dev/null and b/main.png differ
diff --git a/mapping.png b/mapping.png
new file mode 100644
index 0000000..c8977bc
Binary files /dev/null and b/mapping.png differ
diff --git a/pom.xml b/pom.xml
index b19efcb..8b6413c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,13 +8,13 @@
wu-framework-parent
top.wu2020
- 1.2.1-JDK17-SNAPSHOT
+ 1.2.2-JDK17-SNAPSHOT
wu-lazy-cloud-network
pom
- 1.2.1-JDK17-SNAPSHOT
+ 1.2.2-JDK17-SNAPSHOT
云上云下
@@ -70,7 +70,7 @@
top.wu2020
wu-framework-dependencies
- 1.2.1-JDK17-SNAPSHOT
+ 1.2.2-JDK17-SNAPSHOT
pom
import
diff --git a/url_info.png b/url_info.png
new file mode 100644
index 0000000..9a805eb
Binary files /dev/null and b/url_info.png differ
diff --git a/visitor_port.png b/visitor_port.png
new file mode 100644
index 0000000..dd1099f
Binary files /dev/null and b/visitor_port.png differ
diff --git a/wu-lazy-cloud-heartbeat-client/Native-Dockerfile b/wu-lazy-cloud-heartbeat-client/Native-Dockerfile
index 9264610..9a7595d 100644
--- a/wu-lazy-cloud-heartbeat-client/Native-Dockerfile
+++ b/wu-lazy-cloud-heartbeat-client/Native-Dockerfile
@@ -5,7 +5,7 @@ MAINTAINER wujiawei <1207537021@qq.com>
RUN echo "Asia/Shanghai" > /etc/timezone
-COPY target/middleground-under-cloud-heartbeat-client /native-app
+COPY target/lazy-cloud-heartbeat-client /native-app
ENTRYPOINT ["/bin/sh" ,"-c", "exec ./native-app"]
diff --git a/wu-lazy-cloud-heartbeat-client/README.md b/wu-lazy-cloud-heartbeat-client/README.md
index 3389def..cc418fe 100644
--- a/wu-lazy-cloud-heartbeat-client/README.md
+++ b/wu-lazy-cloud-heartbeat-client/README.md
@@ -1,20 +1,19 @@
-
-
#### 构建native 镜像
+
```shell
mvn clean compile
mvn spring-boot:process-aot -Pnative
mvn native:build -Pnative
```
+
### 构建docker镜像
+
```shell
-docker build -t docker-registry.laihui.com/middleground/middleground-under-cloud-heartbeat-client:middleground-2.4.2-native-SNAPSHOT_latest -f Native-Dockerfile .
-docker push docker-registry.laihui.com/middleground/middleground-under-cloud-heartbeat-client:middleground-2.4.2-native-SNAPSHOT_latest
+docker build -t docker-registry.wujiawei.com/lazy/lazy-under-cloud-heartbeat-client:lazy-2.4.2-native-SNAPSHOT_latest -f Native-Dockerfile .
+docker push docker-registry.wujiawei.com/lazy/lazy-under-cloud-heartbeat-client:lazy-2.4.2-native-SNAPSHOT_latest
```
-
-
## BUILD IMAGE
```shell
@@ -26,16 +25,15 @@ docker push registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-cl
```
-
### run
+
```shell
-docker run -d -it --name client -e spring.middleground.netty.inet-host=124.222.48.62 -e spring.middleground.netty.inet-port=30676 -e spring.middleground.netty.client-id=node1 registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-client:server-jdk17-master
+docker run -d -it --name client -e spring.lazy.netty.inet-host=124.222.48.62 -e spring.lazy.netty.inet-port=30676 -e spring.lazy.netty.client-id=node1 registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-client:server-jdk17-master
```
-
```shell
gu install native-image
diff --git a/wu-lazy-cloud-heartbeat-client/pom.xml b/wu-lazy-cloud-heartbeat-client/pom.xml
index 8537798..3e7ef9e 100644
--- a/wu-lazy-cloud-heartbeat-client/pom.xml
+++ b/wu-lazy-cloud-heartbeat-client/pom.xml
@@ -1,11 +1,11 @@
-
top.wu2020
wu-lazy-cloud-network
- 1.2.1-JDK17-SNAPSHOT
+ 1.2.2-JDK17-SNAPSHOT
4.0.0
@@ -20,9 +20,9 @@
- top.wu2020
+ top.wu2020
wu-lazy-cloud-heartbeat-common
- 1.2.1-JDK17-SNAPSHOT
+ 1.2.2-JDK17-SNAPSHOT
com.alibaba
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/application/ClientNettyConfigApplication.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/application/ClientNettyConfigApplication.java
index 670e457..7915aeb 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/application/ClientNettyConfigApplication.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/application/ClientNettyConfigApplication.java
@@ -6,7 +6,6 @@ package wu.framework.lazy.cloud.heartbeat.client.application;
public interface ClientNettyConfigApplication {
-
/**
* 推送客户端在线
*/
@@ -19,14 +18,16 @@ public interface ClientNettyConfigApplication {
/**
* 暂存开启
- * @param clientId 租户ID
+ *
+ * @param clientId 租户ID
*/
void stagingOpen(String clientId);
/**
* 暂存关闭
- * @param clientId 客户端ID 对应的租户
+ *
+ * @param clientId 客户端ID 对应的租户
*/
void stagingClose(String clientId);
}
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/application/impl/ClientNettyConfigApplicationImpl.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/application/impl/ClientNettyConfigApplicationImpl.java
index f170c80..9ea0d7c 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/application/impl/ClientNettyConfigApplicationImpl.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/application/impl/ClientNettyConfigApplicationImpl.java
@@ -1,9 +1,9 @@
package wu.framework.lazy.cloud.heartbeat.client.application.impl;
-import wu.framework.lazy.cloud.heartbeat.client.application.ClientNettyConfigApplication;
import com.wu.framework.database.lazy.web.plus.stereotype.LazyApplication;
import lombok.extern.slf4j.Slf4j;
+import wu.framework.lazy.cloud.heartbeat.client.application.ClientNettyConfigApplication;
@Slf4j
@LazyApplication
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientChannelHeartbeatTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientHandleChannelHeartbeatTypeAdvanced.java
similarity index 82%
rename from wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientChannelHeartbeatTypeAdvanced.java
rename to wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientHandleChannelHeartbeatTypeAdvanced.java
index 5290c75..39802ec 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientChannelHeartbeatTypeAdvanced.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientHandleChannelHeartbeatTypeAdvanced.java
@@ -1,11 +1,11 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.advanced;
-import wu.framework.lazy.cloud.heartbeat.common.MessageType;
-import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.AbstractChannelHeartbeatTypeAdvanced;
import io.netty.channel.Channel;
import org.springframework.stereotype.Component;
+import wu.framework.lazy.cloud.heartbeat.common.MessageType;
+import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.AbstractHandleChannelHeartbeatTypeAdvanced;
/**
@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
* TYPE_HEARTBEAT
*/
@Component
-public class ClientChannelHeartbeatTypeAdvanced extends AbstractChannelHeartbeatTypeAdvanced {
+public class ClientHandleChannelHeartbeatTypeAdvanced extends AbstractHandleChannelHeartbeatTypeAdvanced {
/**
* 处理当前数据
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientHandleDistributeSingleClientMessageTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientHandleDistributeSingleClientMessageTypeAdvanced.java
new file mode 100644
index 0000000..6345374
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientHandleDistributeSingleClientMessageTypeAdvanced.java
@@ -0,0 +1,28 @@
+package wu.framework.lazy.cloud.heartbeat.client.netty.advanced;
+
+import io.netty.channel.Channel;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractHandleDistributeSingleClientMessageTypeAdvanced;
+
+/**
+ * 接收服务端发送过来的聊天信息
+ */
+@Slf4j
+@Component
+public class ClientHandleDistributeSingleClientMessageTypeAdvanced extends AbstractHandleDistributeSingleClientMessageTypeAdvanced {
+ /**
+ * 处理当前数据
+ *
+ * @param channel 当前通道
+ * @param nettyProxyMsg 通道数据
+ */
+ @Override
+ protected void doHandler(Channel channel, NettyProxyMsg nettyProxyMsg) {
+ byte[] clientId = nettyProxyMsg.getClientId();
+ byte[] data = nettyProxyMsg.getData();
+ log.info("接收客户端:{},发送过来的聊天信息:{}", new String(clientId), new String(data));
+
+ }
+}
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientDistributeSingleClientRealAutoReadConnectTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientHandleDistributeSingleClientRealAutoReadConnectTypeAdvanced.java
similarity index 74%
rename from wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientDistributeSingleClientRealAutoReadConnectTypeAdvanced.java
rename to wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientHandleDistributeSingleClientRealAutoReadConnectTypeAdvanced.java
index 0e20cc6..cc52b93 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientDistributeSingleClientRealAutoReadConnectTypeAdvanced.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientHandleDistributeSingleClientRealAutoReadConnectTypeAdvanced.java
@@ -1,16 +1,16 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.advanced;
-import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
-import wu.framework.lazy.cloud.heartbeat.common.NettyRealIdContext;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractDistributeSingleClientRealAutoReadConnectTypeAdvanced;
import io.netty.channel.Channel;
import io.netty.channel.ChannelOption;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
+import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
+import wu.framework.lazy.cloud.heartbeat.common.NettyRealIdContext;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractHandleDistributeSingleClientRealAutoReadConnectTypeAdvanced;
@Slf4j
@Component
-public class ClientDistributeSingleClientRealAutoReadConnectTypeAdvanced extends AbstractDistributeSingleClientRealAutoReadConnectTypeAdvanced {
+public class ClientHandleDistributeSingleClientRealAutoReadConnectTypeAdvanced extends AbstractHandleDistributeSingleClientRealAutoReadConnectTypeAdvanced {
/**
* 处理当前数据
*
@@ -22,7 +22,7 @@ public class ClientDistributeSingleClientRealAutoReadConnectTypeAdvanced extends
// 获取访客ID
byte[] visitorId = nettyProxyMsg.getVisitorId();
// 获取访客对应的真实代理通道
- Channel realChannel = NettyRealIdContext.getVisitor(visitorId);
+ Channel realChannel = NettyRealIdContext.getReal(visitorId);
if (realChannel != null) {
realChannel.config().setOption(ChannelOption.AUTO_READ, true);
}
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientDistributeSingleClientRealCloseVisitorTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientHandleDistributeSingleClientRealCloseVisitorTypeAdvanced.java
similarity index 79%
rename from wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientDistributeSingleClientRealCloseVisitorTypeAdvanced.java
rename to wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientHandleDistributeSingleClientRealCloseVisitorTypeAdvanced.java
index 8b52c42..02487eb 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientDistributeSingleClientRealCloseVisitorTypeAdvanced.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientHandleDistributeSingleClientRealCloseVisitorTypeAdvanced.java
@@ -1,16 +1,16 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.advanced;
-import wu.framework.lazy.cloud.heartbeat.common.NettyCommunicationIdContext;
-import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
-import wu.framework.lazy.cloud.heartbeat.common.NettyRealIdContext;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractDistributeSingleClientRealCloseVisitorTypeAdvanced;
import io.netty.channel.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
+import wu.framework.lazy.cloud.heartbeat.common.NettyCommunicationIdContext;
+import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
+import wu.framework.lazy.cloud.heartbeat.common.NettyRealIdContext;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractHandleDistributeSingleClientRealCloseVisitorTypeAdvanced;
@Slf4j
@Component
-public class ClientDistributeSingleClientRealCloseVisitorTypeAdvanced extends AbstractDistributeSingleClientRealCloseVisitorTypeAdvanced {
+public class ClientHandleDistributeSingleClientRealCloseVisitorTypeAdvanced extends AbstractHandleDistributeSingleClientRealCloseVisitorTypeAdvanced {
/**
* 处理当前数据
*
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientDistributeSingleClientRealConnectTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientHandleDistributeSingleClientRealConnectTypeAdvanced.java
similarity index 54%
rename from wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientDistributeSingleClientRealConnectTypeAdvanced.java
rename to wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientHandleDistributeSingleClientRealConnectTypeAdvanced.java
index f2bda18..b8e5cef 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientDistributeSingleClientRealConnectTypeAdvanced.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientHandleDistributeSingleClientRealConnectTypeAdvanced.java
@@ -1,14 +1,14 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.advanced;
+import io.netty.channel.Channel;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
import wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties;
import wu.framework.lazy.cloud.heartbeat.client.netty.socket.NettyClientRealSocket;
import wu.framework.lazy.cloud.heartbeat.common.InternalNetworkPenetrationRealClient;
import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.ChannelTypeAdvanced;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractDistributeSingleClientRealConnectTypeAdvanced;
-import io.netty.channel.Channel;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.HandleChannelTypeAdvanced;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractHandleDistributeSingleClientRealConnectTypeAdvanced;
import java.util.List;
@@ -17,14 +17,14 @@ import java.util.List;
*/
@Slf4j
@Component
-public class ClientDistributeSingleClientRealConnectTypeAdvanced extends AbstractDistributeSingleClientRealConnectTypeAdvanced {
+public class ClientHandleDistributeSingleClientRealConnectTypeAdvanced extends AbstractHandleDistributeSingleClientRealConnectTypeAdvanced {
private final NettyServerProperties nettyServerProperties;// 服务端地址信息
- private final List channelTypeAdvancedList;
+ private final List handleChannelTypeAdvancedList;
- public ClientDistributeSingleClientRealConnectTypeAdvanced(NettyServerProperties nettyServerProperties, List channelTypeAdvancedList) {
+ public ClientHandleDistributeSingleClientRealConnectTypeAdvanced(NettyServerProperties nettyServerProperties, List handleChannelTypeAdvancedList) {
this.nettyServerProperties = nettyServerProperties;
- this.channelTypeAdvancedList = channelTypeAdvancedList;
+ this.handleChannelTypeAdvancedList = handleChannelTypeAdvancedList;
}
/**
@@ -41,16 +41,18 @@ public class ClientDistributeSingleClientRealConnectTypeAdvanced extends Abstrac
byte[] clientTargetIp = msg.getClientTargetIp();
byte[] clientTargetPort = msg.getClientTargetPort();
byte[] visitorIdBytes = msg.getVisitorId();
- InternalNetworkPenetrationRealClient internalNetworkPenetrationRealClient = new InternalNetworkPenetrationRealClient();
- internalNetworkPenetrationRealClient.setClientId(new String(clientIdBytes));
- internalNetworkPenetrationRealClient.setVisitorPort(Integer.valueOf(new String(visitorPort)));
- internalNetworkPenetrationRealClient.setClientTargetIp(new String( clientTargetIp));
- internalNetworkPenetrationRealClient.setClientTargetPort(Integer.valueOf(new String( clientTargetPort)));
- String visitorId=new String(visitorIdBytes);// 访客ID
- internalNetworkPenetrationRealClient.setVisitorId(visitorId);
+ InternalNetworkPenetrationRealClient internalNetworkPenetrationRealClient =
+ InternalNetworkPenetrationRealClient
+ .builder()
+ .clientId(new String(clientIdBytes))
+ .visitorPort(Integer.valueOf(new String(visitorPort)))
+ .clientTargetIp(new String(clientTargetIp))
+ .clientTargetPort(Integer.valueOf(new String(clientTargetPort)))
+ .visitorId(new String(visitorIdBytes))
+ .build();
// 绑定真实服务端口
- NettyClientRealSocket.buildRealServer(internalNetworkPenetrationRealClient,nettyServerProperties,channelTypeAdvancedList );
+ NettyClientRealSocket.buildRealServer(internalNetworkPenetrationRealClient, nettyServerProperties, handleChannelTypeAdvancedList);
}
}
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientReportChannelTransferTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientReportHandleChannelTransferTypeAdvancedHandleDistribute.java
similarity index 81%
rename from wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientReportChannelTransferTypeAdvanced.java
rename to wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientReportHandleChannelTransferTypeAdvancedHandleDistribute.java
index 0a10b88..b9ef9be 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientReportChannelTransferTypeAdvanced.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/ClientReportHandleChannelTransferTypeAdvancedHandleDistribute.java
@@ -1,28 +1,29 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.advanced;
-import wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties;
-import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
-import wu.framework.lazy.cloud.heartbeat.common.NettyRealIdContext;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractDistributeChannelTransferTypeAdvanced;
-import wu.framework.lazy.cloud.heartbeat.common.enums.MessageTypeEnums;
import io.netty.buffer.ByteBuf;
import io.netty.channel.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
+import wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties;
+import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
+import wu.framework.lazy.cloud.heartbeat.common.NettyRealIdContext;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractHandleDistributeChannelTransferTypeAdvanced;
+import wu.framework.lazy.cloud.heartbeat.common.enums.MessageTypeEnums;
/**
* 服务端处理客户端数据传输
+ *
* @see MessageTypeEnums#DISTRIBUTE_CLIENT_TRANSFER
*/
@Slf4j
@Component
-public class ClientReportChannelTransferTypeAdvanced extends AbstractDistributeChannelTransferTypeAdvanced {
+public class ClientReportHandleChannelTransferTypeAdvancedHandleDistribute extends AbstractHandleDistributeChannelTransferTypeAdvanced {
private final NettyServerProperties nettyServerProperties;
- public ClientReportChannelTransferTypeAdvanced(NettyServerProperties nettyServerProperties) {
+ public ClientReportHandleChannelTransferTypeAdvancedHandleDistribute(NettyServerProperties nettyServerProperties) {
this.nettyServerProperties = nettyServerProperties;
}
@@ -41,7 +42,7 @@ public class ClientReportChannelTransferTypeAdvanced extends AbstractDistributeC
byte[] clientTargetPort = nettyProxyMsg.getClientTargetPort();
byte[] visitorId = nettyProxyMsg.getVisitorId();
// 真实服务通道
- Channel realChannel = NettyRealIdContext.getVisitor(new String(visitorId));
+ Channel realChannel = NettyRealIdContext.getReal(new String(visitorId));
if (realChannel == null) {
log.error("无法获取访客:{} 真实服务", new String(visitorId));
return;
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/HandleClientChannelActiveAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/HandleClientChannelActiveAdvanced.java
new file mode 100644
index 0000000..35d2e9f
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/HandleClientChannelActiveAdvanced.java
@@ -0,0 +1,33 @@
+package wu.framework.lazy.cloud.heartbeat.client.netty.advanced;
+
+import io.netty.channel.Channel;
+import wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties;
+import wu.framework.lazy.cloud.heartbeat.common.ChannelContext;
+import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractHandleClientChannelActiveAdvanced;
+import wu.framework.lazy.cloud.heartbeat.common.utils.ChannelAttributeKeyUtils;
+
+/**
+ * 客户端通道 is active
+ */
+public class HandleClientChannelActiveAdvanced extends AbstractHandleClientChannelActiveAdvanced {
+ private final NettyServerProperties nettyServerProperties;
+
+ public HandleClientChannelActiveAdvanced(NettyServerProperties nettyServerProperties) {
+ this.nettyServerProperties = nettyServerProperties;
+ }
+
+ /**
+ * 处理当前数据
+ *
+ * @param channel 当前通道
+ * @param nettyProxyMsg 通道数据
+ */
+ @Override
+ protected void doHandler(Channel channel, NettyProxyMsg nettyProxyMsg) {
+ // 缓存当前通道
+ String clientId = nettyServerProperties.getClientId();
+ ChannelContext.push(channel, clientId);
+ ChannelAttributeKeyUtils.buildClientId(channel, clientId);
+ }
+}
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/DistributeConnectSuccessNotificationTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/HandleDistributeConnectSuccessNotificationTypeAdvancedHandle.java
similarity index 53%
rename from wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/DistributeConnectSuccessNotificationTypeAdvanced.java
rename to wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/HandleDistributeConnectSuccessNotificationTypeAdvancedHandle.java
index 24e5a16..e0cff8f 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/DistributeConnectSuccessNotificationTypeAdvanced.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/HandleDistributeConnectSuccessNotificationTypeAdvancedHandle.java
@@ -1,17 +1,13 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.advanced;
import com.alibaba.fastjson.JSONObject;
-import wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties;
-import wu.framework.lazy.cloud.heartbeat.common.ChannelContext;
-import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractDistributeConnectSuccessNotificationTypeAdvanced;
-import wu.framework.lazy.cloud.heartbeat.common.utils.ChannelAttributeKeyUtils;
-import wu.framework.lazy.cloud.heartbeat.client.application.ClientNettyConfigApplication;
import io.netty.channel.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
+import wu.framework.lazy.cloud.heartbeat.client.application.ClientNettyConfigApplication;
+import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractHandleDistributeConnectSuccessNotificationTypeAdvancedHandle;
-import java.nio.charset.StandardCharsets;
import java.util.List;
/**
@@ -19,14 +15,13 @@ import java.util.List;
*/
@Slf4j
@Component
-public class DistributeConnectSuccessNotificationTypeAdvanced extends AbstractDistributeConnectSuccessNotificationTypeAdvanced {
+public class HandleDistributeConnectSuccessNotificationTypeAdvancedHandle extends AbstractHandleDistributeConnectSuccessNotificationTypeAdvancedHandle {
private final ClientNettyConfigApplication clientNettyConfigApplication;
- private final NettyServerProperties nettyServerProperties;
- public DistributeConnectSuccessNotificationTypeAdvanced(ClientNettyConfigApplication clientNettyConfigApplication, NettyServerProperties nettyServerProperties) {
+
+ public HandleDistributeConnectSuccessNotificationTypeAdvancedHandle(ClientNettyConfigApplication clientNettyConfigApplication) {
this.clientNettyConfigApplication = clientNettyConfigApplication;
- this.nettyServerProperties = nettyServerProperties;
}
/**
@@ -39,12 +34,7 @@ public class DistributeConnectSuccessNotificationTypeAdvanced extends AbstractDi
protected void doHandler(Channel channel, NettyProxyMsg msg) {
log.warn("客户端ID:{},客户端:{}连接成功", new String(msg.getClientId()), new String(msg.getData()));
- // 缓存当前通道
- String clientId = nettyServerProperties.getClientId();
- NettyProxyMsg nettyMsg = new NettyProxyMsg();
- nettyMsg.setClientId(clientId.getBytes(StandardCharsets.UTF_8));
- ChannelContext.push(channel, nettyMsg);
- ChannelAttributeKeyUtils.buildClientId(channel,clientId);
+
// 存储其他客户端状态
List clientIdList = JSONObject.parseArray(new String(msg.getData()), String.class);
for (String tenantId : clientIdList) {
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/DistributeDisconnectTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/HandleDistributeDisconnectTypeAdvancedHandle.java
similarity index 75%
rename from wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/DistributeDisconnectTypeAdvanced.java
rename to wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/HandleDistributeDisconnectTypeAdvancedHandle.java
index 18f6462..0839fea 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/DistributeDisconnectTypeAdvanced.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/HandleDistributeDisconnectTypeAdvancedHandle.java
@@ -1,12 +1,12 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.advanced;
-import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractDistributeDisconnectTypeAdvanced;
-import wu.framework.lazy.cloud.heartbeat.client.application.ClientNettyConfigApplication;
import io.netty.channel.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
+import wu.framework.lazy.cloud.heartbeat.client.application.ClientNettyConfigApplication;
+import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractHandleDistributeDisconnectTypeAdvancedHandle;
/**
@@ -15,12 +15,12 @@ import org.springframework.stereotype.Component;
*/
@Slf4j
@Component
-public class DistributeDisconnectTypeAdvanced extends AbstractDistributeDisconnectTypeAdvanced {
+public class HandleDistributeDisconnectTypeAdvancedHandle extends AbstractHandleDistributeDisconnectTypeAdvancedHandle {
private final ClientNettyConfigApplication clientNettyConfigApplication;
- public DistributeDisconnectTypeAdvanced(ClientNettyConfigApplication clientNettyConfigApplication) {
+ public HandleDistributeDisconnectTypeAdvancedHandle(ClientNettyConfigApplication clientNettyConfigApplication) {
this.clientNettyConfigApplication = clientNettyConfigApplication;
}
@@ -36,7 +36,7 @@ public class DistributeDisconnectTypeAdvanced extends AbstractDistributeDisconne
byte[] data = msg.getData();
byte[] clientId = msg.getClientId();
String tenantId = new String(clientId);
- log.warn("客户端:{}下线",tenantId);
+ log.warn("客户端:{}下线", tenantId);
clientNettyConfigApplication.clientOffLine(tenantId);
}
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/DistributeStagingClosedTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/HandleDistributeStagingClosedTypeAdvanced.java
similarity index 83%
rename from wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/DistributeStagingClosedTypeAdvanced.java
rename to wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/HandleDistributeStagingClosedTypeAdvanced.java
index 1538d7a..9170c21 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/DistributeStagingClosedTypeAdvanced.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/HandleDistributeStagingClosedTypeAdvanced.java
@@ -1,19 +1,17 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.advanced;
-import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractDistributeStagingClosedTypeAdvanced;
import io.netty.channel.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
+import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractHandleDistributeStagingClosedTypeAdvanced;
/**
* 服务端下发暂存关闭消息处理
*/
@Slf4j
@Component
-public class DistributeStagingClosedTypeAdvanced extends AbstractDistributeStagingClosedTypeAdvanced {
-
-
+public class HandleDistributeStagingClosedTypeAdvanced extends AbstractHandleDistributeStagingClosedTypeAdvanced {
/**
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/DistributeStagingOpenedTypeAdvanced.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/HandleDistributeStagingOpenedTypeAdvanced.java
similarity index 80%
rename from wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/DistributeStagingOpenedTypeAdvanced.java
rename to wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/HandleDistributeStagingOpenedTypeAdvanced.java
index 44b19dd..2f8a981 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/DistributeStagingOpenedTypeAdvanced.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/advanced/HandleDistributeStagingOpenedTypeAdvanced.java
@@ -1,22 +1,20 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.advanced;
-import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractDistributeStagingOpenedTypeAdvanced;
-
import io.netty.channel.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
+import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.client.AbstractHandleDistributeStagingOpenedTypeAdvanced;
/**
* 服务端下发暂存开启消息处理
*/
@Slf4j
@Component
-public class DistributeStagingOpenedTypeAdvanced extends AbstractDistributeStagingOpenedTypeAdvanced{
+public class HandleDistributeStagingOpenedTypeAdvanced extends AbstractHandleDistributeStagingOpenedTypeAdvanced {
-
- public DistributeStagingOpenedTypeAdvanced() {
+ public HandleDistributeStagingOpenedTypeAdvanced() {
}
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/AutoConfiguration.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/ClientAutoConfiguration.java
similarity index 70%
rename from wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/AutoConfiguration.java
rename to wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/ClientAutoConfiguration.java
index 9135f5c..2b93a4b 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/AutoConfiguration.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/ClientAutoConfiguration.java
@@ -1,14 +1,13 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.config;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.ChannelTypeAdvanced;
-import wu.framework.lazy.cloud.heartbeat.client.application.ClientNettyConfigApplication;
-import wu.framework.lazy.cloud.heartbeat.client.netty.socket.NettyClientSocket;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
-import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import wu.framework.lazy.cloud.heartbeat.client.application.ClientNettyConfigApplication;
+import wu.framework.lazy.cloud.heartbeat.client.netty.socket.NettyClientSocket;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.HandleChannelTypeAdvanced;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
@@ -23,35 +22,32 @@ import java.util.concurrent.TimeUnit;
*/
@Slf4j
@Configuration
-public class AutoConfiguration implements CommandLineRunner {
+public class ClientAutoConfiguration implements CommandLineRunner {
- private final ServerProperties serverProperties;
private final NettyServerProperties nettyServerProperties;
private final ClientNettyConfigApplication clientNettyConfigApplication;
- private final List channelTypeAdvancedList; // 处理服务端发送过来的数据类型
+ private final List handleChannelTypeAdvancedList; // 处理服务端发送过来的数据类型
ThreadPoolExecutor NETTY_CLIENT_EXECUTOR = new ThreadPoolExecutor(1, 1, 200, TimeUnit.MILLISECONDS,
new ArrayBlockingQueue<>(1));
- public AutoConfiguration(ServerProperties serverProperties,
- NettyServerProperties nettyServerProperties,
- ClientNettyConfigApplication clientNettyConfigApplication,
- List channelTypeAdvancedList) {
- this.serverProperties = serverProperties;
+ public ClientAutoConfiguration(NettyServerProperties nettyServerProperties,
+ ClientNettyConfigApplication clientNettyConfigApplication,
+ List handleChannelTypeAdvancedList) {
this.nettyServerProperties = nettyServerProperties;
this.clientNettyConfigApplication = clientNettyConfigApplication;
- this.channelTypeAdvancedList = channelTypeAdvancedList;
+ this.handleChannelTypeAdvancedList = handleChannelTypeAdvancedList;
}
@Bean(destroyMethod = "shutdown")
- public NettyClientSocket nettyServerSocket() {
+ public NettyClientSocket nettyClientSocket() {
String inetHost = nettyServerProperties.getInetHost();
int inetPort = nettyServerProperties.getInetPort();
String clientId = nettyServerProperties.getClientId();
- return new NettyClientSocket(inetHost, inetPort, clientId, clientNettyConfigApplication, channelTypeAdvancedList);
+ return new NettyClientSocket(inetHost, inetPort, clientId, clientNettyConfigApplication, handleChannelTypeAdvancedList);
}
/**
@@ -65,7 +61,7 @@ public class AutoConfiguration implements CommandLineRunner {
String inetHost = nettyServerProperties.getInetHost();
int inetPort = nettyServerProperties.getInetPort();
String clientId = nettyServerProperties.getClientId();
- NettyClientSocket nettyClientSocket = new NettyClientSocket(inetHost, inetPort, clientId, clientNettyConfigApplication, channelTypeAdvancedList);
+ NettyClientSocket nettyClientSocket = new NettyClientSocket(inetHost, inetPort, clientId, clientNettyConfigApplication, handleChannelTypeAdvancedList);
Thread thread = new Thread(() -> {
try {
nettyClientSocket.newConnect2Server();
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/HeartbeatClientConfiguration.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/HeartbeatClientConfiguration.java
new file mode 100644
index 0000000..46b95da
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/HeartbeatClientConfiguration.java
@@ -0,0 +1,87 @@
+package wu.framework.lazy.cloud.heartbeat.client.netty.config;
+
+
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Role;
+import wu.framework.lazy.cloud.heartbeat.client.application.ClientNettyConfigApplication;
+import wu.framework.lazy.cloud.heartbeat.client.netty.advanced.*;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.HandleChannelTypeAdvanced;
+
+import java.util.List;
+
+@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
+public class HeartbeatClientConfiguration {
+
+ /**
+ * 服务端 处理客户端心跳
+ *
+ * @return ClientHandleChannelHeartbeatTypeAdvanced
+ */
+ @Bean
+ public ClientHandleChannelHeartbeatTypeAdvanced clientChannelHeartbeatTypeAdvanced() {
+ return new ClientHandleChannelHeartbeatTypeAdvanced();
+ }
+
+ /**
+ * 处理 客户端代理的真实端口自动读写
+ *
+ * @return ClientHandleDistributeSingleClientRealAutoReadConnectTypeAdvanced
+ */
+ @Bean
+ public ClientHandleDistributeSingleClientRealAutoReadConnectTypeAdvanced handleDistributeSingleClientRealAutoReadConnectTypeAdvanced() {
+ return new ClientHandleDistributeSingleClientRealAutoReadConnectTypeAdvanced();
+ }
+
+ /**
+ * 处理 接收服务端发送过来的聊天信息
+ *
+ * @return ClientHandleDistributeSingleClientMessageTypeAdvanced
+ */
+ @Bean
+ public ClientHandleDistributeSingleClientMessageTypeAdvanced handleDistributeSingleClientMessageTypeAdvanced() {
+ return new ClientHandleDistributeSingleClientMessageTypeAdvanced();
+ }
+
+ @Bean
+ public ClientHandleDistributeSingleClientRealCloseVisitorTypeAdvanced handleDistributeSingleClientRealCloseVisitorTypeAdvanced() {
+ return new ClientHandleDistributeSingleClientRealCloseVisitorTypeAdvanced();
+ }
+
+ @Bean
+ public ClientReportHandleChannelTransferTypeAdvancedHandleDistribute handleChannelTransferTypeAdvancedHandleDistribute(NettyServerProperties nettyServerProperties) {
+ return new ClientReportHandleChannelTransferTypeAdvancedHandleDistribute(nettyServerProperties);
+ }
+
+ @Bean
+ public HandleDistributeConnectSuccessNotificationTypeAdvancedHandle handleDistributeConnectSuccessNotificationTypeAdvancedHandle(ClientNettyConfigApplication clientNettyConfigApplication) {
+ return new HandleDistributeConnectSuccessNotificationTypeAdvancedHandle(clientNettyConfigApplication);
+ }
+
+ @Bean
+ public HandleClientChannelActiveAdvanced handleClientChannelActiveAdvanced(NettyServerProperties nettyServerProperties) {
+ return new HandleClientChannelActiveAdvanced(nettyServerProperties);
+ }
+
+ @Bean
+ public HandleDistributeDisconnectTypeAdvancedHandle handleDistributeDisconnectTypeAdvancedHandle(ClientNettyConfigApplication clientNettyConfigApplication) {
+ return new HandleDistributeDisconnectTypeAdvancedHandle(clientNettyConfigApplication);
+ }
+
+ @Bean
+ public HandleDistributeStagingClosedTypeAdvanced handleDistributeStagingClosedTypeAdvanced() {
+ return new HandleDistributeStagingClosedTypeAdvanced();
+ }
+
+ @Bean
+ public HandleDistributeStagingOpenedTypeAdvanced handleDistributeStagingOpenedTypeAdvanced() {
+ return new HandleDistributeStagingOpenedTypeAdvanced();
+ }
+
+
+ @Bean
+ public ClientHandleDistributeSingleClientRealConnectTypeAdvanced clientHandleDistributeSingleClientRealConnectTypeAdvanced(NettyServerProperties nettyServerProperties,
+ List handleChannelTypeAdvancedList) {
+ return new ClientHandleDistributeSingleClientRealConnectTypeAdvanced(nettyServerProperties, handleChannelTypeAdvancedList);
+ }
+}
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/NettyServerProperties.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/NettyServerProperties.java
index 2f33541..df75aaa 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/NettyServerProperties.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/NettyServerProperties.java
@@ -11,7 +11,7 @@ import org.springframework.context.annotation.Configuration;
@Configuration
@Data
public class NettyServerProperties {
- public static final String PREFIX = "spring.middleground.netty";
+ public static final String PREFIX = "spring.lazy.netty";
/**
* 服务端地址
*/
@@ -23,7 +23,7 @@ public class NettyServerProperties {
/**
* 服务端path
*/
- private String inetPath = "middleground-on-cloud-heartbeat-server";
+ private String inetPath = "lazy-cloud-heartbeat-server";
/**
* 客户端ID
*/
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/filter/NettyClientFilter.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/filter/NettyClientFilter.java
index 063e073..1a84f60 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/filter/NettyClientFilter.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/filter/NettyClientFilter.java
@@ -1,16 +1,16 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.filter;
-import wu.framework.lazy.cloud.heartbeat.client.netty.socket.NettyClientSocket;
-import wu.framework.lazy.cloud.heartbeat.common.adapter.ChannelTypeAdapter;
-import wu.framework.lazy.cloud.heartbeat.common.decoder.NettyProxyMsgDecoder;
-import wu.framework.lazy.cloud.heartbeat.common.encoder.NettyProxyMsgEncoder;
-import wu.framework.lazy.cloud.heartbeat.client.netty.handler.NettyClientHandler;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.SocketChannel;
import io.netty.handler.codec.string.StringDecoder;
import io.netty.handler.codec.string.StringEncoder;
import io.netty.handler.timeout.IdleStateHandler;
+import wu.framework.lazy.cloud.heartbeat.client.netty.handler.NettyClientHandler;
+import wu.framework.lazy.cloud.heartbeat.client.netty.socket.NettyClientSocket;
+import wu.framework.lazy.cloud.heartbeat.common.adapter.ChannelTypeAdapter;
+import wu.framework.lazy.cloud.heartbeat.common.decoder.NettyProxyMsgDecoder;
+import wu.framework.lazy.cloud.heartbeat.common.encoder.NettyProxyMsgEncoder;
public class NettyClientFilter extends ChannelInitializer {
@@ -40,6 +40,6 @@ public class NettyClientFilter extends ChannelInitializer {
pipeline.addLast(new IdleStateHandler(0, 4, 0));
pipeline.addLast("decoder", new StringDecoder());
pipeline.addLast("encoder", new StringEncoder());
- pipeline.addLast("doHandler", new NettyClientHandler(channelTypeAdapter,nettyClientSocket)); //客户端的逻辑
+ pipeline.addLast("doHandler", new NettyClientHandler(channelTypeAdapter, nettyClientSocket)); //客户端的逻辑
}
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/filter/NettyClientRealFilter.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/filter/NettyClientRealFilter.java
index e961d72..9c36c10 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/filter/NettyClientRealFilter.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/filter/NettyClientRealFilter.java
@@ -1,13 +1,13 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.filter;
-import wu.framework.lazy.cloud.heartbeat.client.netty.handler.NettyClientRealHandler;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.SocketChannel;
+import wu.framework.lazy.cloud.heartbeat.client.netty.handler.NettyClientRealHandler;
-public class NettyClientRealFilter extends ChannelInitializer {
+public class NettyClientRealFilter extends ChannelInitializer {
/**
* This method will be called once the {@link Channel} was registered. After the method returns this instance
* will be removed from the {@link ChannelPipeline} of the {@link Channel}.
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/filter/NettyClientVisitorRealFilter.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/filter/NettyClientVisitorRealFilter.java
index 1f2c96d..adf3773 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/filter/NettyClientVisitorRealFilter.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/filter/NettyClientVisitorRealFilter.java
@@ -1,15 +1,14 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.filter;
-import wu.framework.lazy.cloud.heartbeat.client.netty.handler.NettyClientVisitorRealHandler;
-import wu.framework.lazy.cloud.heartbeat.common.adapter.ChannelTypeAdapter;
-import wu.framework.lazy.cloud.heartbeat.common.decoder.NettyProxyMsgDecoder;
-import wu.framework.lazy.cloud.heartbeat.common.encoder.NettMsgEncoder;
-import wu.framework.lazy.cloud.heartbeat.common.encoder.NettyProxyMsgEncoder;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.SocketChannel;
+import wu.framework.lazy.cloud.heartbeat.client.netty.handler.NettyClientVisitorRealHandler;
+import wu.framework.lazy.cloud.heartbeat.common.adapter.ChannelTypeAdapter;
+import wu.framework.lazy.cloud.heartbeat.common.decoder.NettyProxyMsgDecoder;
+import wu.framework.lazy.cloud.heartbeat.common.encoder.NettyProxyMsgEncoder;
/**
* netty 客户端连接真实服服务端访客拦截器
@@ -34,8 +33,8 @@ public class NettyClientVisitorRealFilter extends ChannelInitializer
buf.readBytes(bytes);
log.debug("接收客户端真实服务数据:{}", new String(bytes));
String visitorId = ChannelAttributeKeyUtils.getVisitorId(ctx.channel());
+ Integer visitorPort = ChannelAttributeKeyUtils.getVisitorPort(ctx.channel());
+ String clientId = ChannelAttributeKeyUtils.getClientId(ctx.channel());
// 访客通信通道 上报服务端代理完成
Channel visitorChannel = NettyCommunicationIdContext.getVisitor(visitorId);
NettyProxyMsg returnMessage = new NettyProxyMsg();
returnMessage.setType(MessageType.REPORT_CLIENT_TRANSFER);
returnMessage.setVisitorId(visitorId);
+ returnMessage.setClientId(clientId);
+ returnMessage.setVisitorPort(visitorPort);
returnMessage.setData(bytes);
visitorChannel.writeAndFlush(returnMessage);
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/handler/NettyClientVisitorRealHandler.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/handler/NettyClientVisitorRealHandler.java
index 4ebc1ca..14c3d0c 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/handler/NettyClientVisitorRealHandler.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/handler/NettyClientVisitorRealHandler.java
@@ -1,16 +1,19 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.handler;
+import io.netty.channel.Channel;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.SimpleChannelInboundHandler;
+import lombok.extern.slf4j.Slf4j;
import wu.framework.lazy.cloud.heartbeat.common.ChannelContext;
import wu.framework.lazy.cloud.heartbeat.common.MessageType;
import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
import wu.framework.lazy.cloud.heartbeat.common.adapter.ChannelTypeAdapter;
import wu.framework.lazy.cloud.heartbeat.common.utils.ChannelAttributeKeyUtils;
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.channel.SimpleChannelInboundHandler;
-import lombok.extern.slf4j.Slf4j;
+/**
+ * 客户端访客通信通道 处理器
+ */
@Slf4j
public class NettyClientVisitorRealHandler extends SimpleChannelInboundHandler {
private final ChannelTypeAdapter channelTypeAdapter;
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/listener/ClientStagingOpenedOrClosedRedisListener.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/listener/ClientStagingOpenedOrClosedRedisListener.java
index 9a24a9d..f758a36 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/listener/ClientStagingOpenedOrClosedRedisListener.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/listener/ClientStagingOpenedOrClosedRedisListener.java
@@ -1,13 +1,12 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.listener;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
import wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties;
import wu.framework.lazy.cloud.heartbeat.client.rpc.StagingNoticeApiRpc;
import wu.framework.lazy.cloud.heartbeat.common.constant.RedisChannelConstant;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
/**
* 客户端暂存开启、关闭通知
*
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/socket/NettyClientRealSocket.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/socket/NettyClientRealSocket.java
index 9506871..2b5bcca 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/socket/NettyClientRealSocket.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/socket/NettyClientRealSocket.java
@@ -1,19 +1,18 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.socket;
-import wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties;
-import wu.framework.lazy.cloud.heartbeat.common.*;
-import wu.framework.lazy.cloud.heartbeat.common.*;
-import wu.framework.lazy.cloud.heartbeat.common.adapter.ChannelTypeAdapter;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.ChannelTypeAdvanced;
-import wu.framework.lazy.cloud.heartbeat.common.utils.ChannelAttributeKeyUtils;
-import wu.framework.lazy.cloud.heartbeat.client.netty.filter.NettyClientRealFilter;
-import wu.framework.lazy.cloud.heartbeat.client.netty.filter.NettyClientVisitorRealFilter;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.*;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioSocketChannel;
import lombok.extern.slf4j.Slf4j;
+import wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties;
+import wu.framework.lazy.cloud.heartbeat.client.netty.filter.NettyClientRealFilter;
+import wu.framework.lazy.cloud.heartbeat.client.netty.filter.NettyClientVisitorRealFilter;
+import wu.framework.lazy.cloud.heartbeat.common.*;
+import wu.framework.lazy.cloud.heartbeat.common.adapter.ChannelTypeAdapter;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.HandleChannelTypeAdvanced;
+import wu.framework.lazy.cloud.heartbeat.common.utils.ChannelAttributeKeyUtils;
import java.util.List;
import java.util.concurrent.TimeUnit;
@@ -33,9 +32,9 @@ public class NettyClientRealSocket {
*/
public static void buildRealServer(InternalNetworkPenetrationRealClient internalNetworkPenetrationRealClient,
NettyServerProperties nettyServerProperties,
- List channelTypeAdvancedList) {
+ List handleChannelTypeAdvancedList) {
- buildNewRealServer(internalNetworkPenetrationRealClient, nettyServerProperties, channelTypeAdvancedList);
+ buildNewRealServer(internalNetworkPenetrationRealClient, nettyServerProperties, handleChannelTypeAdvancedList);
}
@@ -45,10 +44,13 @@ public class NettyClientRealSocket {
*/
private static void buildNewRealServer(InternalNetworkPenetrationRealClient internalNetworkPenetrationRealClient,
NettyServerProperties nettyServerProperties,
- List channelTypeAdvancedList) {
+ List handleChannelTypeAdvancedList) {
try {
+ String clientId = internalNetworkPenetrationRealClient.getClientId();
String clientTargetIp = internalNetworkPenetrationRealClient.getClientTargetIp();
Integer clientTargetPort = internalNetworkPenetrationRealClient.getClientTargetPort();
+ Integer visitorPort = internalNetworkPenetrationRealClient.getVisitorPort();
+ String visitorId = internalNetworkPenetrationRealClient.getVisitorId();
Bootstrap bootstrap = new Bootstrap();
bootstrap.group(eventLoopGroup).channel(NioSocketChannel.class)
.handler(new NettyClientRealFilter());
@@ -57,22 +59,19 @@ public class NettyClientRealSocket {
// 客户端链接真实服务成功 设置自动读写false 等待访客连接成功后设置成true
Channel realChannel = future.channel();
realChannel.config().setOption(ChannelOption.AUTO_READ, false);
- String clientId = internalNetworkPenetrationRealClient.getClientId();// 客户端ID
- String clientTargetIp1 = internalNetworkPenetrationRealClient.getClientTargetIp();
- Integer clientTargetPort1 = internalNetworkPenetrationRealClient.getClientTargetPort();
- Integer visitorPort = internalNetworkPenetrationRealClient.getVisitorPort();
- String visitorId = internalNetworkPenetrationRealClient.getVisitorId();
- log.info("访客通过 客户端:【{}】,绑定本地服务,IP:{},端口:{} 新建通道成功", clientId, clientTargetIp1, clientTargetPort1);
+
+ log.info("访客通过 客户端:【{}】,绑定本地服务,IP:{},端口:{} 新建通道成功", clientId, clientTargetIp, clientTargetPort);
// 客户端真实通道
- NettyRealIdContext.pushVisitor(realChannel, visitorId);
+ NettyRealIdContext.pushReal(realChannel, visitorId);
// 绑定访客ID到当前真实通道属性
ChannelAttributeKeyUtils.buildVisitorId(realChannel, visitorId);
ChannelAttributeKeyUtils.buildClientId(realChannel, clientId);
+ ChannelAttributeKeyUtils.buildVisitorPort(realChannel, visitorPort);
// 通知服务端访客连接成功
// 新建一个通道处理
- newVisitorConnect2Server(internalNetworkPenetrationRealClient, nettyServerProperties, channelTypeAdvancedList);
+ newVisitorConnect2Server(internalNetworkPenetrationRealClient, nettyServerProperties, handleChannelTypeAdvancedList);
// 是否等 服务端相应访客通道已经可以自动读写
// realChannel.config().setOption(ChannelOption.AUTO_READ, true);
@@ -100,6 +99,8 @@ public class NettyClientRealSocket {
// future.channel().attr(Constant.VID).set(internalNetworkPenetrationRealClient);
// Constant.vrc.put(internalNetworkPenetrationRealClient, future.channel());
// ProxySocket.connectProxyServer(internalNetworkPenetrationRealClient);
+ } else {
+ log.error("客户:【{}】,无法连接当前网络内的目标IP:【{}】,目标端口:【{}】", clientId, clientTargetIp, clientTargetPort);
}
});
} catch (Exception e) {
@@ -113,16 +114,16 @@ public class NettyClientRealSocket {
*
* @param internalNetworkPenetrationRealClient 内网穿透信息
* @param nettyServerProperties 服务端配置信息
- * @param channelTypeAdvancedList 处理器适配器
+ * @param handleChannelTypeAdvancedList 处理器适配器
* @throws InterruptedException 异常
*/
protected static void newVisitorConnect2Server(InternalNetworkPenetrationRealClient internalNetworkPenetrationRealClient,
NettyServerProperties nettyServerProperties,
- List channelTypeAdvancedList) throws InterruptedException {
+ List handleChannelTypeAdvancedList) throws InterruptedException {
Bootstrap bootstrap = new Bootstrap();
bootstrap.group(eventLoopGroup)
.channel(NioSocketChannel.class)
- .handler(new NettyClientVisitorRealFilter(new ChannelTypeAdapter(channelTypeAdvancedList)))
+ .handler(new NettyClientVisitorRealFilter(new ChannelTypeAdapter(handleChannelTypeAdvancedList)))
;
String inetHost = nettyServerProperties.getInetHost();
@@ -138,7 +139,7 @@ public class NettyClientRealSocket {
log.info("客户端新建访客通道 连接服务端IP:{},连接服务端端口:{}", inetHost, inetPort);
ChannelFuture future = bootstrap.connect(inetHost, inetPort);
- log.info("使用的租户ID:" + clientId);
+ log.info("使用的客户端ID:" + clientId);
future.addListener((ChannelFutureListener) futureListener -> {
Channel channel = futureListener.channel();
if (futureListener.isSuccess()) {
@@ -153,11 +154,11 @@ public class NettyClientRealSocket {
myMsg.setVisitorId(visitorId);
channel.writeAndFlush(myMsg);
// 绑定客户端真实通信通道
- NettyCommunicationIdContext.pushVisitor(channel,visitorId);
+ NettyCommunicationIdContext.pushVisitor(channel, visitorId);
ChannelAttributeKeyUtils.buildVisitorId(channel, visitorId);
ChannelAttributeKeyUtils.buildClientId(channel, clientId);
// 客户端真实通道自动读写打开
- Channel visitor = NettyRealIdContext.getVisitor(visitorId);
+ Channel visitor = NettyRealIdContext.getReal(visitorId);
visitor.config().setOption(ChannelOption.AUTO_READ, true);
@@ -166,7 +167,7 @@ public class NettyClientRealSocket {
// 离线
channel.eventLoop().schedule(() -> {
try {
- newVisitorConnect2Server(internalNetworkPenetrationRealClient, nettyServerProperties, channelTypeAdvancedList);
+ newVisitorConnect2Server(internalNetworkPenetrationRealClient, nettyServerProperties, handleChannelTypeAdvancedList);
} catch (InterruptedException e) {
e.printStackTrace();
}
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/socket/NettyClientSocket.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/socket/NettyClientSocket.java
index 006bd32..d8297ee 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/socket/NettyClientSocket.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/socket/NettyClientSocket.java
@@ -1,13 +1,6 @@
package wu.framework.lazy.cloud.heartbeat.client.netty.socket;
-import wu.framework.lazy.cloud.heartbeat.common.MessageType;
-import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
-import wu.framework.lazy.cloud.heartbeat.common.adapter.ChannelTypeAdapter;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.ChannelTypeAdvanced;
-import wu.framework.lazy.cloud.heartbeat.common.utils.ChannelAttributeKeyUtils;
-import wu.framework.lazy.cloud.heartbeat.client.application.ClientNettyConfigApplication;
-import wu.framework.lazy.cloud.heartbeat.client.netty.filter.NettyClientFilter;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
@@ -17,6 +10,13 @@ import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioSocketChannel;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
+import wu.framework.lazy.cloud.heartbeat.client.application.ClientNettyConfigApplication;
+import wu.framework.lazy.cloud.heartbeat.client.netty.filter.NettyClientFilter;
+import wu.framework.lazy.cloud.heartbeat.common.MessageType;
+import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
+import wu.framework.lazy.cloud.heartbeat.common.adapter.ChannelTypeAdapter;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.HandleChannelTypeAdvanced;
+import wu.framework.lazy.cloud.heartbeat.common.utils.ChannelAttributeKeyUtils;
import java.util.List;
import java.util.concurrent.TimeUnit;
@@ -26,6 +26,7 @@ import java.util.concurrent.TimeUnit;
*/
@Slf4j
public class NettyClientSocket {
+ private static final EventLoopGroup eventLoopGroup = new NioEventLoopGroup();
/**
* 服务端host
*/
@@ -44,17 +45,14 @@ public class NettyClientSocket {
*/
@Getter
private final ClientNettyConfigApplication clientNettyConfigApplication;
+ private final List handleChannelTypeAdvancedList; // 处理服务端发送过来的数据类型
- private final List channelTypeAdvancedList; // 处理服务端发送过来的数据类型
-
- private static final EventLoopGroup eventLoopGroup = new NioEventLoopGroup();
-
- public NettyClientSocket(String inetHost, int inetPort, String clientId, ClientNettyConfigApplication clientNettyConfigApplication, List channelTypeAdvancedList) {
+ public NettyClientSocket(String inetHost, int inetPort, String clientId, ClientNettyConfigApplication clientNettyConfigApplication, List handleChannelTypeAdvancedList) {
this.inetHost = inetHost;
this.inetPort = inetPort;
this.clientId = clientId;
this.clientNettyConfigApplication = clientNettyConfigApplication;
- this.channelTypeAdvancedList = channelTypeAdvancedList;
+ this.handleChannelTypeAdvancedList = handleChannelTypeAdvancedList;
}
public void newConnect2Server() throws InterruptedException {
@@ -65,14 +63,14 @@ public class NettyClientSocket {
Bootstrap bootstrap = new Bootstrap();
bootstrap.group(eventLoopGroup)
.channel(NioSocketChannel.class)
- .handler(new NettyClientFilter(new ChannelTypeAdapter(channelTypeAdvancedList),this))
+ .handler(new NettyClientFilter(new ChannelTypeAdapter(handleChannelTypeAdvancedList), this))
;
log.info("连接服务端IP:{},连接服务端端口:{}", inetHost, inetPort);
ChannelFuture future = bootstrap.connect(inetHost, inetPort);
Channel channel = future.channel();
- log.info("使用的租户ID:" + clientId);
+ log.info("使用的客户端ID:" + clientId);
future.addListener((ChannelFutureListener) futureListener -> {
if (futureListener.isSuccess()) {
@@ -81,8 +79,8 @@ public class NettyClientSocket {
NettyProxyMsg nettyMsg = new NettyProxyMsg();
nettyMsg.setType(MessageType.REPORT_CLIENT_CONNECT_SUCCESS);
nettyMsg.setClientId(clientId);
- nettyMsg.setData(( clientId ).getBytes());
- ChannelAttributeKeyUtils.buildClientId(channel,clientId);
+ nettyMsg.setData((clientId).getBytes());
+ ChannelAttributeKeyUtils.buildClientId(channel, clientId);
channel.writeAndFlush(nettyMsg);
// 在线
clientNettyConfigApplication.clientOnLine(clientId);
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/rpc/StagingNoticeApiRpc.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/rpc/StagingNoticeApiRpc.java
index 56cb603..55008e0 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/rpc/StagingNoticeApiRpc.java
+++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/rpc/StagingNoticeApiRpc.java
@@ -3,17 +3,16 @@ package wu.framework.lazy.cloud.heartbeat.client.rpc;
import com.wu.framework.database.lazy.web.plus.stereotype.LazyRpc;
import com.wu.framework.response.Result;
import com.wu.framework.response.ResultFactory;
+import io.netty.channel.Channel;
import wu.framework.lazy.cloud.heartbeat.common.ChannelContext;
import wu.framework.lazy.cloud.heartbeat.common.MessageType;
import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
-import io.netty.channel.Channel;
-
import java.nio.charset.StandardCharsets;
import java.util.List;
@LazyRpc
-public class StagingNoticeApiRpc {
+public class StagingNoticeApiRpc {
/**
@@ -31,9 +30,9 @@ public class StagingNoticeApiRpc {
NettyProxyMsg nettyMsg = new NettyProxyMsg();
nettyMsg.setType(MessageType.REPORT_CLIENT_STAGING_OPENED);
- nettyMsg.setData((clientId.toString()
+ nettyMsg.setData((clientId
.getBytes(StandardCharsets.UTF_8)));
- nettyMsg.setClientId((clientId.toString()
+ nettyMsg.setClientId((clientId
.getBytes(StandardCharsets.UTF_8)));
channel.writeAndFlush(nettyMsg);
}
@@ -54,9 +53,9 @@ public class StagingNoticeApiRpc {
Channel channel = clientChannel.getChannel();
NettyProxyMsg nettyMsg = new NettyProxyMsg();
nettyMsg.setType(MessageType.REPORT_CLIENT_STAGING_CLOSED);
- nettyMsg.setData((clientId.toString()
+ nettyMsg.setData((clientId
.getBytes(StandardCharsets.UTF_8)));
- nettyMsg.setClientId((clientId.toString()
+ nettyMsg.setClientId((clientId
.getBytes(StandardCharsets.UTF_8)));
channel.writeAndFlush(nettyMsg);
}
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring.factories b/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring.factories
index 6a9612a..a5e1128 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring.factories
+++ b/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring.factories
@@ -1,3 +1,6 @@
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-wu.framework.lazy.cloud.heartbeat.client.EnableHeartbeatClientAutoConfiguration
+wu.framework.lazy.cloud.heartbeat.client.EnableHeartbeatClientAutoConfiguration,\
+wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties,\
+wu.framework.lazy.cloud.heartbeat.client.netty.config.ClientAutoConfiguration,\
+wu.framework.lazy.cloud.heartbeat.client.netty.config.HeartbeatClientConfiguration
diff --git a/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index 2fa599c..f17862f 100644
--- a/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1 +1,4 @@
wu.framework.lazy.cloud.heartbeat.client.EnableHeartbeatClientAutoConfiguration
+wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties
+wu.framework.lazy.cloud.heartbeat.client.netty.config.ClientAutoConfiguration
+wu.framework.lazy.cloud.heartbeat.client.netty.config.HeartbeatClientConfiguration
diff --git a/wu-lazy-cloud-heartbeat-common/pom.xml b/wu-lazy-cloud-heartbeat-common/pom.xml
index 302a996..7073ba6 100644
--- a/wu-lazy-cloud-heartbeat-common/pom.xml
+++ b/wu-lazy-cloud-heartbeat-common/pom.xml
@@ -1,12 +1,12 @@
-
4.0.0
top.wu2020
wu-lazy-cloud-network
- 1.2.1-JDK17-SNAPSHOT
+ 1.2.2-JDK17-SNAPSHOT
wu-lazy-cloud-heartbeat-common
diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/wu/framework/lazy/cloud/heartbeat/common/ChannelContext.java b/wu-lazy-cloud-heartbeat-common/src/main/java/wu/framework/lazy/cloud/heartbeat/common/ChannelContext.java
index c981be1..69c5f66 100644
--- a/wu-lazy-cloud-heartbeat-common/src/main/java/wu/framework/lazy/cloud/heartbeat/common/ChannelContext.java
+++ b/wu-lazy-cloud-heartbeat-common/src/main/java/wu/framework/lazy/cloud/heartbeat/common/ChannelContext.java
@@ -5,7 +5,6 @@ import io.netty.channel.ChannelId;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
-
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
@@ -17,25 +16,27 @@ import java.util.concurrent.ConcurrentHashMap;
@Slf4j
public class ChannelContext {
- private final static ConcurrentHashMap
+ private final static ConcurrentHashMap
channelIdClientChannelDTOConcurrentHashMap = new ConcurrentHashMap<>();
/**
* 新增通道
*
* @param channel 通道
- * @param nettyMsg 通道中的信息
+ * @param clientId 客户端ID
*/
- public static void push(Channel channel, NettyProxyMsg nettyMsg) {
+ public static void push(Channel channel, String clientId) {
ChannelId channelId = channel.id();
- byte[] clientId = nettyMsg.getClientId();
-
ClientChannelImpl clientChannelImpl = new ClientChannelImpl();
clientChannelImpl.setChannelId(channelId);
clientChannelImpl.setChannel(channel);
- clientChannelImpl.setClientId(clientId);
- channelIdClientChannelDTOConcurrentHashMap.put(channelId, clientChannelImpl);
+ clientChannelImpl.setClientId(clientId.getBytes(StandardCharsets.UTF_8));
+ // 如果客户端已经存在 移除
+ if (channelIdClientChannelDTOConcurrentHashMap.containsKey(clientId)) {
+// clear(clientId);
+ }
+ channelIdClientChannelDTOConcurrentHashMap.put(clientId, clientChannelImpl);
}
@@ -52,7 +53,7 @@ public class ChannelContext {
clientChannelImpl.setChannelId(channelId);
clientChannelImpl.setChannel(channel);
clientChannelImpl.setClientId(clientId);
- channelIdClientChannelDTOConcurrentHashMap.put(channelId, clientChannelImpl);
+ channelIdClientChannelDTOConcurrentHashMap.put(new String(clientId), clientChannelImpl);
}
@@ -65,20 +66,6 @@ public class ChannelContext {
return new ArrayList<>(channelIdClientChannelDTOConcurrentHashMap.values());
}
- /**
- * 根据通道ID获取通道信息
- *
- * @param channelId 通道ID
- * @return 通道信息
- */
- public static ClientChannel get(ChannelId channelId) {
- if (channelIdClientChannelDTOConcurrentHashMap.containsKey(channelId)) {
- return channelIdClientChannelDTOConcurrentHashMap.get(channelId);
- } else {
- log.error("无法通过通道ID[" + channelId + "]获取通道信息");
- return null;
- }
- }
/**
* 根据通道ID获取通道信息
@@ -88,13 +75,9 @@ public class ChannelContext {
*/
public static ClientChannel get(byte[] clientId) {
if (channelIdClientChannelDTOConcurrentHashMap
- .values().stream()
- .anyMatch(clientChannelImpl -> new String(clientChannelImpl.getClientId()).equals(new String(clientId)))) {
+ .containsKey(new String(clientId))) {
return channelIdClientChannelDTOConcurrentHashMap
- .values()
- .stream()
- .filter(clientChannelImpl -> new String(clientChannelImpl.getClientId()).equals(new String(clientId)))
- .findFirst().get();
+ .get(new String(clientId));
} else {
log.error("无法通过客户端ID[" + new String(clientId) + "]获取通道信息");
return null;
@@ -111,17 +94,23 @@ public class ChannelContext {
return get(clientId.getBytes(StandardCharsets.UTF_8));
}
+
/**
- * 通过客户端通道ID移除客户端通道
+ * 关闭通道
*
- * @param channelId 客户端通道ID
+ * @param clientId 客户端ID
*/
- public static void remove(ChannelId channelId) {
- if (channelIdClientChannelDTOConcurrentHashMap.containsKey(channelId)) {
- channelIdClientChannelDTOConcurrentHashMap.remove(channelId);
+ public static void clear(String clientId) {
+ ClientChannel clientChannel = get(clientId);
+ if (clientChannel != null) {
+ remove(clientId);
+ Channel channel = clientChannel.getChannel();
+ if (channel != null && channel.isActive()) {
+ channel.close();
+ }
} else {
// log warm
- log.warn("无法通过客户端通道ID:[{}]移除客户端", channelId);
+ log.warn("无法通过客户ID:[{}]移除客户端", clientId);
}
}
@@ -133,13 +122,28 @@ public class ChannelContext {
public static void remove(byte[] clientId) {
ClientChannel clientChannel = get(clientId);
if (clientChannel != null) {
- channelIdClientChannelDTOConcurrentHashMap.remove(clientChannel.getChannelId());
+ channelIdClientChannelDTOConcurrentHashMap.remove(new String(clientId));
} else {
// log warm
log.warn("无法通过客户ID:[{}]移除客户端", new String(clientId));
}
}
+ /**
+ * 通过客户端ID移除客户端通道
+ *
+ * @param clientId 客户端ID
+ */
+ public static void remove(String clientId) {
+ ClientChannel clientChannel = get(clientId);
+ if (clientChannel != null) {
+ channelIdClientChannelDTOConcurrentHashMap.remove(clientId);
+ } else {
+ // log warm
+ log.warn("无法通过客户ID:[{}]移除客户端", clientId);
+ }
+ }
+
/**
* 客户端通道信息
diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/wu/framework/lazy/cloud/heartbeat/common/InternalNetworkPenetrationRealClient.java b/wu-lazy-cloud-heartbeat-common/src/main/java/wu/framework/lazy/cloud/heartbeat/common/InternalNetworkPenetrationRealClient.java
index 51bbff2..de9a40a 100644
--- a/wu-lazy-cloud-heartbeat-common/src/main/java/wu/framework/lazy/cloud/heartbeat/common/InternalNetworkPenetrationRealClient.java
+++ b/wu-lazy-cloud-heartbeat-common/src/main/java/wu/framework/lazy/cloud/heartbeat/common/InternalNetworkPenetrationRealClient.java
@@ -1,5 +1,6 @@
package wu.framework.lazy.cloud.heartbeat.common;
+import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;
@@ -9,6 +10,7 @@ import lombok.experimental.Accessors;
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
+@Builder
@Data
@Accessors(chain = true)
public class InternalNetworkPenetrationRealClient {
diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/wu/framework/lazy/cloud/heartbeat/common/MessageType.java b/wu-lazy-cloud-heartbeat-common/src/main/java/wu/framework/lazy/cloud/heartbeat/common/MessageType.java
index 357d1f5..650e821 100644
--- a/wu-lazy-cloud-heartbeat-common/src/main/java/wu/framework/lazy/cloud/heartbeat/common/MessageType.java
+++ b/wu-lazy-cloud-heartbeat-common/src/main/java/wu/framework/lazy/cloud/heartbeat/common/MessageType.java
@@ -1,22 +1,21 @@
package wu.framework.lazy.cloud.heartbeat.common;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.AbstractChannelHeartbeatTypeAdvanced;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.client.*;
-import wu.framework.lazy.cloud.heartbeat.common.advanced.server.*;
+import wu.framework.lazy.cloud.heartbeat.common.advanced.AbstractHandleChannelHeartbeatTypeAdvanced;
import wu.framework.lazy.cloud.heartbeat.common.advanced.client.*;
import wu.framework.lazy.cloud.heartbeat.common.advanced.server.*;
import wu.framework.lazy.cloud.heartbeat.common.enums.MessageTypeEnums;
/**
* @see MessageTypeEnums
- * -128~ 127
+ * 数据取值范围 -128~ 127
+ * 当前约束范围 -100~100
*/
public class MessageType {
/**
* 心跳
*
* @see MessageTypeEnums#TYPE_HEARTBEAT
- * @see AbstractChannelHeartbeatTypeAdvanced
+ * @see AbstractHandleChannelHeartbeatTypeAdvanced
*/
public static final byte TYPE_HEARTBEAT = 0X00;
@@ -24,28 +23,28 @@ public class MessageType {
* 客户端上报连接成功
*
* @see MessageTypeEnums#REPORT_CLIENT_CONNECT_SUCCESS
- * @see AbstractReportConnectSuccessTypeAdvanced
+ * @see AbstractHandleClientConnectSuccessTypeAdvanced
*/
public static final byte REPORT_CLIENT_CONNECT_SUCCESS = 0X01;
/**
* 上报 客户端断开连接
*
* @see MessageTypeEnums#REPORT_CLIENT_DISCONNECTION
- * @see AbstractReportDisconnectTypeAdvanced
+ * @see AbstractHandleReportDisconnectTypeAdvanced
*/
public static final byte REPORT_CLIENT_DISCONNECTION = 0X02;
/**
* 客户端上报暂存开启
*
* @see MessageTypeEnums#REPORT_CLIENT_STAGING_OPENED
- * @see AbstractReportStagingOpenedTypeAdvanced
+ * @see AbstractHandleReportStagingOpenedTypeAdvanced
*/
public static final byte REPORT_CLIENT_STAGING_OPENED = 0X03;
/**
* 客户端上报暂存关闭
*
* @see MessageTypeEnums#REPORT_CLIENT_STAGING_CLOSED
- * @see AbstractReportStagingClosedTypeAdvanced
+ * @see AbstractHandleReportStagingClosedTypeAdvanced
*/
public static final byte REPORT_CLIENT_STAGING_CLOSED = 0X04;
@@ -53,7 +52,7 @@ public class MessageType {
* 上报 客户端数据传输(内网穿透数据回传)
*
* @see MessageTypeEnums#REPORT_CLIENT_TRANSFER
- * @see AbstractReportChannelTransferTypeAdvanced
+ * @see AbstractHandleReportHandleChannelTransferTypeAdvanced
*/
public static final byte REPORT_CLIENT_TRANSFER = 0X05;
@@ -62,37 +61,51 @@ public class MessageType {
* 上报 客户端创建需要代理的真实端口成功
*
* @see MessageTypeEnums#REPORT_SINGLE_CLIENT_REAL_CONNECT
- * @see AbstractReportSingleClientRealConnectTypeAdvanced
+ * @see AbstractHandleReportSingleClientRealConnectTypeAdvanced
*/
public static final byte REPORT_SINGLE_CLIENT_REAL_CONNECT = 0X06;
/**
* 上报 客户端关闭一个访客通道
*
* @see MessageTypeEnums#REPORT_SINGLE_CLIENT_CLOSE_VISITOR
- * @see AbstractReportSingleClientCloseVisitorTypeAdvanced
+ * @see AbstractHandleReportSingleClientCloseVisitorTypeAdvanced
*/
public static final byte REPORT_SINGLE_CLIENT_CLOSE_VISITOR = 0X08;
+ /**
+ * 上报 客户端消息到另一个客户端
+ *
+ * @see MessageTypeEnums#REPORT_SINGLE_CLIENT_MESSAGE
+ * @see AbstractHandleReportSingleClientMessage2OtherClientTypeAdvanced
+ */
+ public static final byte REPORT_SINGLE_CLIENT_MESSAGE = 0X09;
+ /**
+ * 服务端通道 is active
+ *
+ * @see MessageTypeEnums#SERVER_CHANNEL_ACTIVE
+ * @see AbstractHandleServerChannelActiveTypeAdvanced
+ */
+ public static final byte SERVER_CHANNEL_ACTIVE = 0X10;
/**
* 下发 客户端接收连接成功通知
*
* @see MessageTypeEnums#DISTRIBUTE_CLIENT_CONNECTION_SUCCESS_NOTIFICATION
- * @see AbstractDistributeConnectSuccessNotificationTypeAdvanced
+ * @see AbstractHandleDistributeConnectSuccessNotificationTypeAdvancedHandle
*/
public static final byte DISTRIBUTE_CLIENT_CONNECTION_SUCCESS_NOTIFICATION = -0X01;
/**
* 下发 客户端断开连接通知
*
* @see MessageTypeEnums#DISTRIBUTE_CLIENT_DISCONNECTION_NOTIFICATION
- * @see AbstractDistributeDisconnectTypeAdvanced
+ * @see AbstractHandleDistributeDisconnectTypeAdvancedHandle
*/
public static final byte DISTRIBUTE_CLIENT_DISCONNECTION_NOTIFICATION = -0X02;
/**
* 下发 客户端暂存开启通知
*
* @see MessageTypeEnums#DISTRIBUTE_CLIENT_STAGING_OPENED_NOTIFICATION
- * @see AbstractDistributeStagingOpenedTypeAdvanced
+ * @see AbstractHandleDistributeStagingOpenedTypeAdvanced
*/
public static final byte DISTRIBUTE_CLIENT_STAGING_OPENED_NOTIFICATION = -0X03;
@@ -100,21 +113,21 @@ public class MessageType {
* 下发 客户端暂存关闭通知
*
* @see MessageTypeEnums#DISTRIBUTE_CLIENT_STAGING_CLOSED_NOTIFICATION
- * @see AbstractDistributeStagingClosedTypeAdvanced
+ * @see AbstractHandleDistributeStagingClosedTypeAdvanced
*/
public static final byte DISTRIBUTE_CLIENT_STAGING_CLOSED_NOTIFICATION = -0X04;
/**
* 下发 客户端数据传输(内网穿透数据发送)
*
* @see MessageTypeEnums#DISTRIBUTE_CLIENT_TRANSFER
- * @see AbstractDistributeChannelTransferTypeAdvanced
+ * @see AbstractHandleDistributeChannelTransferTypeAdvanced
*/
public static final byte DISTRIBUTE_CLIENT_TRANSFER = -0X05;
/**
* 下发 客户端创建需要代理的真实端口
*
* @see MessageTypeEnums#DISTRIBUTE_SINGLE_CLIENT_REAL_CONNECT
- * @see AbstractDistributeSingleClientRealConnectTypeAdvanced
+ * @see AbstractHandleDistributeSingleClientRealConnectTypeAdvanced
*/
public static final byte DISTRIBUTE_SINGLE_CLIENT_REAL_CONNECT = -0X06;
@@ -122,7 +135,7 @@ public class MessageType {
* 下发 客户端代理的真实端口自动读写
*
* @see MessageTypeEnums#DISTRIBUTE_SINGLE_CLIENT_REAL_CONNECT_AUTO_READ
- * @see AbstractDistributeSingleClientRealAutoReadConnectTypeAdvanced
+ * @see AbstractHandleDistributeSingleClientRealAutoReadConnectTypeAdvanced
*/
public static final byte DISTRIBUTE_SINGLE_CLIENT_REAL_CONNECT_AUTO_READ = -0X07;
@@ -130,9 +143,24 @@ public class MessageType {
* 下发 客户端关闭代理服务通道
*
* @see MessageTypeEnums#DISTRIBUTE_SINGLE_CLIENT_REAL_CLOSE_VISITOR
- * @see AbstractDistributeSingleClientRealCloseVisitorTypeAdvanced
+ * @see AbstractHandleDistributeSingleClientRealCloseVisitorTypeAdvanced
*/
public static final byte DISTRIBUTE_SINGLE_CLIENT_REAL_CLOSE_VISITOR = -0X08;
+ /**
+ * 下发 客户端消息
+ *
+ * @see MessageTypeEnums#DISTRIBUTE_SINGLE_CLIENT_MESSAGE
+ * @see AbstractHandleDistributeSingleClientMessageTypeAdvanced
+ */
+ public static final byte DISTRIBUTE_SINGLE_CLIENT_MESSAGE = -0X09;
+
+ /**
+ * 客户端通道 is active
+ *
+ * @see MessageTypeEnums#CLIENT_CHANNEL_ACTIVE
+ * @see AbstractHandleClientChannelActiveAdvanced
+ */
+ public static final byte CLIENT_CHANNEL_ACTIVE = -0X10;
}
diff --git a/wu-lazy-cloud-heartbeat-common/src/main/java/wu/framework/lazy/cloud/heartbeat/common/NettyClientVisitorContext.java b/wu-lazy-cloud-heartbeat-common/src/main/java/wu/framework/lazy/cloud/heartbeat/common/NettyClientVisitorContext.java
new file mode 100644
index 0000000..09eef94
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-common/src/main/java/wu/framework/lazy/cloud/heartbeat/common/NettyClientVisitorContext.java
@@ -0,0 +1,47 @@
+package wu.framework.lazy.cloud.heartbeat.common;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * 访客端口对应访客上下文
+ */
+public class NettyClientVisitorContext {
+
+ protected static final ConcurrentHashMap/*NettyVisitorSocket*/> VISITOR_SOCKET = new ConcurrentHashMap<>();
+
+
+ /**
+ * 添加访客
+ *
+ * @param clientId 客户端ID
+ * @param visitorSocket 客户端访客socket
+ */
+ public static void pushVisitorSocket(String clientId, T visitorSocket) {
+ List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
org.springframework.boot
spring-boot-maven-plugin
diff --git a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/java/wu/framework/lazy/cloud/heartbeat/client/LazyCloudHeartbeatClient.java b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/java/wu/framework/lazy/cloud/heartbeat/client/LazyCloudHeartbeatClientSimple.java
similarity index 71%
rename from wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/java/wu/framework/lazy/cloud/heartbeat/client/LazyCloudHeartbeatClient.java
rename to wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/java/wu/framework/lazy/cloud/heartbeat/client/LazyCloudHeartbeatClientSimple.java
index 0d9368a..9c812d8 100644
--- a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/java/wu/framework/lazy/cloud/heartbeat/client/LazyCloudHeartbeatClient.java
+++ b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/java/wu/framework/lazy/cloud/heartbeat/client/LazyCloudHeartbeatClientSimple.java
@@ -8,8 +8,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
*/
@SpringBootApplication
-public class LazyCloudHeartbeatClient {
+public class LazyCloudHeartbeatClientSimple {
public static void main(String[] args) {
- SpringApplication.run(LazyCloudHeartbeatClient.class,args);
+ SpringApplication.run(LazyCloudHeartbeatClientSimple.class,args);
}
}
diff --git a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/resources/application-dev.yml b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/resources/application-dev.yml
index b78397e..a433864 100644
--- a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/resources/application-dev.yml
+++ b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/resources/application-dev.yml
@@ -1,17 +1,17 @@
spring:
- middleground:
+ lazy:
netty:
-# inet-host: 192.168.17.221
-# inet-port: 4923
-# inet-path: middleground-on-cloud-heartbeat-server
+# inet-host: 127.0.0.1
+# inet-port: 7001
+ inet-path: wu-lazy-cloud-heartbeat-server
inet-host: 124.222.48.62 # 服务端地址
inet-port: 30676 #服务端端口
- inet-path: middleground-on-cloud-heartbeat-server
- client-id: local # 客户端ID
+# inet-path: wu-lazy-cloud-heartbeat-server
+ client-id: wujiawei # 客户端ID
data:
redis:
host: 192.168.17.221
port: 30553
- password: laihui
+ password: wujiawei
database: 2
diff --git a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/resources/bootstrap.yml b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/resources/bootstrap.yml
deleted file mode 100644
index 706ffe0..0000000
--- a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-spring:
- application:
- name: middleground-under-cloud-heartbeat-client
- cloud:
- nacos:
- discovery:
- server-addr: 192.168.17.221:30569
- config:
- server-addr: 192.168.17.221:30569
diff --git a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/.flattened-pom.xml b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/.flattened-pom.xml
deleted file mode 100644
index f1359b8..0000000
--- a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/.flattened-pom.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
- 4.0.0
-
- top.wu2020
- wu-lazy-cloud-network
- 1.2.1-JDK17-SNAPSHOT
-
- top.wu2020
- wu-lazy-cloud-heartbeat-server
- 1.2.1-JDK17-SNAPSHOT
- 云上心跳服务端
-
-
- Apache License, Version 2.0
- http://www.apache.org/licenses/LICENSE-2.0
- repo
-
-
-
- 17
- 17
-
-
-
- top.wu2020
- wu-framework-web
-
-
- top.wu2020
- wu-lazy-cloud-heartbeat-common
- 1.2.1-JDK17-SNAPSHOT
-
-
- mysql
- mysql-connector-java
- 8.0.33
-
-
- top.wu2020
- wu-database-lazy-starter
-
-
- top.wu2020
- wu-database-lazy-plus-starter
-
-
- com.alibaba
- fastjson
- 2.0.33
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
- maven-deploy-plugin
-
- true
-
-
-
-
-
diff --git a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/README.md b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/README.md
index c21cf7a..f8e6f57 100644
--- a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/README.md
+++ b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/README.md
@@ -6,8 +6,10 @@
#docker login --username=1207537021@qq.com registry.cn-hangzhou.aliyuncs.com
-docker build -t registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-server:server-jdk17-master .
-docker push registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-server:server-jdk17-master
+mvn clean install
+
+docker build -t registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-server:1.2.2-JDK17-SNAPSHOT .
+docker push registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-server:1.2.2-JDK17-SNAPSHOT
```
@@ -24,7 +26,7 @@ mvn native:build
```
```RUN
-docker run -d -it -p 18080:18080 --name wu-lazy-cloud-heartbeat-server registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-server:server-jdk17-master
+docker run -d -it -p 18080:18080 --name wu-lazy-cloud-heartbeat-server registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-server:1.2.2-JDK17-SNAPSHOT
http://127.0.0.1:18080/swagger-ui/index.html
diff --git a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/k8s.yaml b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/k8s.yaml
new file mode 100644
index 0000000..104ac44
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/k8s.yaml
@@ -0,0 +1,89 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ annotations: {}
+ labels:
+ k8s.kuboard.cn/layer: gateway
+ k8s.kuboard.cn/name: wu-lazy-cloud-heartbeat-server
+ name: wu-lazy-cloud-heartbeat-server
+ namespace: default
+ resourceVersion: '3503304'
+spec:
+ progressDeadlineSeconds: 600
+ replicas: 1
+ revisionHistoryLimit: 10
+ selector:
+ matchLabels:
+ k8s.kuboard.cn/layer: gateway
+ k8s.kuboard.cn/name: wu-lazy-cloud-heartbeat-server
+ strategy:
+ rollingUpdate:
+ maxSurge: 25%
+ maxUnavailable: 25%
+ type: RollingUpdate
+ template:
+ metadata:
+ annotations:
+ kubectl.kubernetes.io/restartedAt: '2024-01-16T21:34:28+08:00'
+ creationTimestamp: null
+ labels:
+ k8s.kuboard.cn/layer: gateway
+ k8s.kuboard.cn/name: wu-lazy-cloud-heartbeat-server
+ spec:
+ containers:
+ - env:
+ - name: spring.datasource.url
+ value: >-
+ jdbc:mysql://cloud-mysql:3306/wu_lazy_cloud_netty_server?allowMultiQueries=true&useUnicode=true&autoReconnect=true&useAffectedRows=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&databaseTerm=SCHEMA
+ - name: JAVA_OPTS
+ value: '-Xms64m -Xmx128m'
+ image: >-
+ registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-server:1.2.2-JDK17-SNAPSHOT
+ imagePullPolicy: Always
+ name: wu-lazy-cloud-heartbeat-server
+ resources: {}
+ terminationMessagePath: /dev/termination-log
+ terminationMessagePolicy: File
+ dnsPolicy: ClusterFirst
+ restartPolicy: Always
+ schedulerName: default-scheduler
+ securityContext: {}
+ terminationGracePeriodSeconds: 30
+
+---
+apiVersion: v1
+kind: Service
+metadata:
+ annotations: {}
+ labels:
+ k8s.kuboard.cn/layer: gateway
+ k8s.kuboard.cn/name: wu-lazy-cloud-heartbeat-server
+ name: wu-lazy-cloud-heartbeat-server
+ namespace: default
+ resourceVersion: '3500792'
+spec:
+ clusterIP: 10.96.41.191
+ externalTrafficPolicy: Cluster
+ ports:
+ - name: pecjjh
+ nodePort: 30676
+ port: 7001
+ protocol: TCP
+ targetPort: 7001
+ - name: z4bg3n
+ nodePort: 30273
+ port: 30273
+ protocol: TCP
+ targetPort: 30273
+ - name: wfcigf
+ nodePort: 30576
+ port: 6001
+ protocol: TCP
+ targetPort: 6001
+ selector:
+ k8s.kuboard.cn/layer: gateway
+ k8s.kuboard.cn/name: wu-lazy-cloud-heartbeat-server
+ sessionAffinity: None
+ type: NodePort
+
diff --git a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/pom.xml b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/pom.xml
index 1c052e7..3bb7e02 100644
--- a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/pom.xml
+++ b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/pom.xml
@@ -5,7 +5,7 @@
top.wu2020
wu-lazy-cloud-heartbeat-sample
- 1.2.1-JDK17-SNAPSHOT
+ 1.2.2-JDK17-SNAPSHOT
4.0.0
@@ -22,7 +22,6 @@
top.wu2020
wu-lazy-cloud-heartbeat-server
- 1.2.1-JDK17-SNAPSHOT
diff --git a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/src/main/java/wu/framework/lazy/cloud/heartbeat/server/LazyCloudHeartbeatServer.java b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/src/main/java/wu/framework/lazy/cloud/heartbeat/server/LazyCloudHeartbeatServerSimple.java
similarity index 73%
rename from wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/src/main/java/wu/framework/lazy/cloud/heartbeat/server/LazyCloudHeartbeatServer.java
rename to wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/src/main/java/wu/framework/lazy/cloud/heartbeat/server/LazyCloudHeartbeatServerSimple.java
index 623c352..00c0c71 100644
--- a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/src/main/java/wu/framework/lazy/cloud/heartbeat/server/LazyCloudHeartbeatServer.java
+++ b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/src/main/java/wu/framework/lazy/cloud/heartbeat/server/LazyCloudHeartbeatServerSimple.java
@@ -9,8 +9,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
*/
@Slf4j
@SpringBootApplication
-public class LazyCloudHeartbeatServer {
+public class LazyCloudHeartbeatServerSimple {
public static void main(String[] args) {
- SpringApplication.run(LazyCloudHeartbeatServer.class,args);
+ SpringApplication.run(LazyCloudHeartbeatServerSimple.class,args);
}
}
diff --git a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/src/main/resources/application-dev.yml b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/src/main/resources/application-dev.yml
index 016e553..475f70d 100644
--- a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/src/main/resources/application-dev.yml
+++ b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/src/main/resources/application-dev.yml
@@ -1,12 +1,6 @@
spring:
- data:
- redis:
- host: 192.168.17.221
- port: 30553
- password: laihui
- database: 2
datasource:
- url: jdbc:mysql://127.0.0.1:3306/middleground_cloud_netty_server?allowMultiQueries=true&useUnicode=true&autoReconnect=true&useAffectedRows=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&databaseTerm=SCHEMA
+ url: jdbc:mysql://124.222.48.62:30512/wu_lazy_cloud_netty_server?allowMultiQueries=true&useUnicode=true&autoReconnect=true&useAffectedRows=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&databaseTerm=SCHEMA
username: root
password: wujiawei
driver-class-name: com.mysql.cj.jdbc.Driver
diff --git a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/src/main/resources/application-prod.yml b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/src/main/resources/application-prod.yml
index 6628e7b..e9f3704 100644
--- a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/src/main/resources/application-prod.yml
+++ b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-server-sample/src/main/resources/application-prod.yml
@@ -1,8 +1,8 @@
spring:
datasource:
- url: jdbc:mysql://${MAIN_DB_HOST}/middleground_cloud_netty_server?allowMultiQueries=true&useUnicode=true&autoReconnect=true&useAffectedRows=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&databaseTerm=SCHEMA
- username: middleground_cloud_netty_server
- password: laihui
+ url: jdbc:mysql://${MAIN_DB_HOST}/wu_lazy_cloud_netty_server?allowMultiQueries=true&useUnicode=true&autoReconnect=true&useAffectedRows=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&databaseTerm=SCHEMA
+ username: root
+ password: wujiawei
driver-class-name: com.mysql.cj.jdbc.Driver
main:
allow-bean-definition-overriding: true
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/Dockerfile b/wu-lazy-cloud-heartbeat-server/Dockerfile
deleted file mode 100644
index a149bd2..0000000
--- a/wu-lazy-cloud-heartbeat-server/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-FROM registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-framework-parent:jdk-17.0.7-x64
-MAINTAINER wujiawei <1207537021@qq.com>
-
-RUN echo "Asia/Shanghai" > /etc/timezone
-
-
-
-ENV APP_JAR_NAME=$APP_NAME \
- JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom" \
- PARAMS=""
-
-
-COPY target/*.jar /app.jar
-
-
-
-ENTRYPOINT exec java -server $JAVA_OPTS -jar /app.jar $PARAMS
-
-
-
-
-
diff --git a/wu-lazy-cloud-heartbeat-server/README.md b/wu-lazy-cloud-heartbeat-server/README.md
deleted file mode 100644
index c21cf7a..0000000
--- a/wu-lazy-cloud-heartbeat-server/README.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# DOCKER JDK IMAGE
-
-## BUILD IMAGE
-
-```shell
-
-#docker login --username=1207537021@qq.com registry.cn-hangzhou.aliyuncs.com
-
-docker build -t registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-server:server-jdk17-master .
-docker push registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-server:server-jdk17-master
-
-```
-
-```shell
-gu install native-image
-
-gu list
-
-mvn native:build
-```
-
-```shell
- mvn clean native:compile -Pnative
-```
-
-```RUN
-docker run -d -it -p 18080:18080 --name wu-lazy-cloud-heartbeat-server registry.cn-hangzhou.aliyuncs.com/wu-lazy/wu-lazy-cloud-heartbeat-server:server-jdk17-master
-
-http://127.0.0.1:18080/swagger-ui/index.html
-
-
-```
-
diff --git a/wu-lazy-cloud-heartbeat-server/pom.xml b/wu-lazy-cloud-heartbeat-server/pom.xml
index dc4eef8..b69291e 100644
--- a/wu-lazy-cloud-heartbeat-server/pom.xml
+++ b/wu-lazy-cloud-heartbeat-server/pom.xml
@@ -1,11 +1,11 @@
-
top.wu2020
wu-lazy-cloud-network
- 1.2.1-JDK17-SNAPSHOT
+ 1.2.2-JDK17-SNAPSHOT
4.0.0
@@ -25,9 +25,9 @@
- top.wu2020
+ top.wu2020
wu-lazy-cloud-heartbeat-common
- 1.2.1-JDK17-SNAPSHOT
+ 1.2.2-JDK17-SNAPSHOT
@@ -43,6 +43,16 @@
top.wu2020
wu-database-lazy-plus-starter
+
+
+ top.wu2020
+ wu-authorization-server-platform-starter
+
+
+
+ top.wu2020
+ wu-jvm-server-platform-starter
+
com.alibaba
fastjson
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/EnableHeartbeatServerAutoConfiguration.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/EnableHeartbeatServerAutoConfiguration.java
index c2f72b4..01294d8 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/EnableHeartbeatServerAutoConfiguration.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/EnableHeartbeatServerAutoConfiguration.java
@@ -1,7 +1,9 @@
package wu.framework.lazy.cloud.heartbeat.server;
+import com.wu.framework.inner.lazy.stereotype.LazyScan;
import org.springframework.context.annotation.ComponentScan;
+@LazyScan(scanBasePackages = "wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity")
@ComponentScan(basePackages = "wu.framework.lazy.cloud.heartbeat.server")
public class EnableHeartbeatServerAutoConfiguration {
}
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/InternalNetworkPenetrationMappingApplication.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/InternalNetworkPenetrationMappingApplication.java
index a435a7b..511a098 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/InternalNetworkPenetrationMappingApplication.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/InternalNetworkPenetrationMappingApplication.java
@@ -1,19 +1,20 @@
package wu.framework.lazy.cloud.heartbeat.server.application;
+import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
+import com.wu.framework.response.Result;
import wu.framework.lazy.cloud.heartbeat.server.application.command.internal.network.penetration.mapping.*;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.InternalNetworkPenetrationMappingDTO;
import wu.framework.lazy.cloud.heartbeat.server.model.internal.network.penetration.mapping.InternalNetworkPenetrationMapping;
-import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
-import com.wu.framework.response.Result;
import java.util.List;
+
/**
- * describe 内网穿透映射
+ * describe 内网穿透映射
*
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplication
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplication
**/
public interface InternalNetworkPenetrationMappingApplication {
@@ -22,9 +23,8 @@ public interface InternalNetworkPenetrationMappingApplication {
/**
* describe 新增内网穿透映射
*
- * @param internalNetworkPenetrationMappingStoryCommand 新增内网穿透映射
- * @return {@link Result} 内网穿透映射新增后领域对象
-
+ * @param internalNetworkPenetrationMappingStoryCommand 新增内网穿透映射
+ * @return {@link Result} 内网穿透映射新增后领域对象
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
@@ -34,9 +34,8 @@ public interface InternalNetworkPenetrationMappingApplication {
/**
* describe 批量新增内网穿透映射
*
- * @param internalNetworkPenetrationMappingStoryCommandList 批量新增内网穿透映射
- * @return {@link Result>} 内网穿透映射新增后领域对象集合
-
+ * @param internalNetworkPenetrationMappingStoryCommandList 批量新增内网穿透映射
+ * @return {@link Result>} 内网穿透映射新增后领域对象集合
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
@@ -46,9 +45,8 @@ public interface InternalNetworkPenetrationMappingApplication {
/**
* describe 更新内网穿透映射
*
- * @param internalNetworkPenetrationMappingUpdateCommand 更新内网穿透映射
- * @return {@link Result} 内网穿透映射领域对象
-
+ * @param internalNetworkPenetrationMappingUpdateCommand 更新内网穿透映射
+ * @return {@link Result} 内网穿透映射领域对象
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
@@ -58,9 +56,8 @@ public interface InternalNetworkPenetrationMappingApplication {
/**
* describe 查询单个内网穿透映射
*
- * @param internalNetworkPenetrationMappingQueryOneCommand 查询单个内网穿透映射
+ * @param internalNetworkPenetrationMappingQueryOneCommand 查询单个内网穿透映射
* @return {@link Result< InternalNetworkPenetrationMappingDTO >} 内网穿透映射DTO对象
-
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
@@ -70,33 +67,30 @@ public interface InternalNetworkPenetrationMappingApplication {
/**
* describe 查询多个内网穿透映射
*
- * @param internalNetworkPenetrationMappingQueryListCommand 查询多个内网穿透映射
- * @return {@link Result >} 内网穿透映射DTO对象
-
+ * @param internalNetworkPenetrationMappingQueryListCommand 查询多个内网穿透映射
+ * @return {@link Result >} 内网穿透映射DTO对象
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
- Result > findList(InternalNetworkPenetrationMappingQueryListCommand internalNetworkPenetrationMappingQueryListCommand);
+ Result> findList(InternalNetworkPenetrationMappingQueryListCommand internalNetworkPenetrationMappingQueryListCommand);
/**
* describe 分页查询多个内网穿透映射
*
- * @param internalNetworkPenetrationMappingQueryListCommand 分页查询多个内网穿透映射
- * @return {@link Result >} 分页内网穿透映射DTO对象
-
+ * @param internalNetworkPenetrationMappingQueryListCommand 分页查询多个内网穿透映射
+ * @return {@link Result >} 分页内网穿透映射DTO对象
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
- Result > findPage(int size,int current,InternalNetworkPenetrationMappingQueryListCommand internalNetworkPenetrationMappingQueryListCommand);
+ Result> findPage(int size, int current, InternalNetworkPenetrationMappingQueryListCommand internalNetworkPenetrationMappingQueryListCommand);
/**
* describe 删除内网穿透映射
*
- * @param internalNetworkPenetrationMappingRemoveCommand 删除内网穿透映射
- * @return {@link Result} 内网穿透映射
-
+ * @param internalNetworkPenetrationMappingRemoveCommand 删除内网穿透映射
+ * @return {@link Result} 内网穿透映射
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
@@ -105,6 +99,7 @@ public interface InternalNetworkPenetrationMappingApplication {
/**
* 创建客户端的访问者
+ *
* @param clientId 客户端ID
*/
Result createVisitor(String clientId);
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/NettyClientBlacklistApplication.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/NettyClientBlacklistApplication.java
index 630b2f4..72f0a5d 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/NettyClientBlacklistApplication.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/NettyClientBlacklistApplication.java
@@ -1,18 +1,19 @@
package wu.framework.lazy.cloud.heartbeat.server.application;
+import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
+import com.wu.framework.response.Result;
import wu.framework.lazy.cloud.heartbeat.server.application.command.netty.client.blacklist.*;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.NettyClientBlacklistDTO;
import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.blacklist.NettyClientBlacklist;
-import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
-import com.wu.framework.response.Result;
import java.util.List;
+
/**
- * describe 客户端黑名单
+ * describe 客户端黑名单
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplication
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplication
**/
public interface NettyClientBlacklistApplication {
@@ -21,9 +22,8 @@ public interface NettyClientBlacklistApplication {
/**
* describe 新增客户端黑名单
*
- * @param nettyClientBlacklistStoryCommand 新增客户端黑名单
- * @return {@link Result} 客户端黑名单新增后领域对象
-
+ * @param nettyClientBlacklistStoryCommand 新增客户端黑名单
+ * @return {@link Result} 客户端黑名单新增后领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -33,9 +33,8 @@ public interface NettyClientBlacklistApplication {
/**
* describe 批量新增客户端黑名单
*
- * @param nettyClientBlacklistStoryCommandList 批量新增客户端黑名单
- * @return {@link Result>} 客户端黑名单新增后领域对象集合
-
+ * @param nettyClientBlacklistStoryCommandList 批量新增客户端黑名单
+ * @return {@link Result>} 客户端黑名单新增后领域对象集合
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -45,9 +44,8 @@ public interface NettyClientBlacklistApplication {
/**
* describe 更新客户端黑名单
*
- * @param nettyClientBlacklistUpdateCommand 更新客户端黑名单
- * @return {@link Result} 客户端黑名单领域对象
-
+ * @param nettyClientBlacklistUpdateCommand 更新客户端黑名单
+ * @return {@link Result} 客户端黑名单领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -57,9 +55,8 @@ public interface NettyClientBlacklistApplication {
/**
* describe 查询单个客户端黑名单
*
- * @param nettyClientBlacklistQueryOneCommand 查询单个客户端黑名单
+ * @param nettyClientBlacklistQueryOneCommand 查询单个客户端黑名单
* @return {@link Result< NettyClientBlacklistDTO >} 客户端黑名单DTO对象
-
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -69,33 +66,30 @@ public interface NettyClientBlacklistApplication {
/**
* describe 查询多个客户端黑名单
*
- * @param nettyClientBlacklistQueryListCommand 查询多个客户端黑名单
- * @return {@link Result >} 客户端黑名单DTO对象
-
+ * @param nettyClientBlacklistQueryListCommand 查询多个客户端黑名单
+ * @return {@link Result >} 客户端黑名单DTO对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- Result > findList(NettyClientBlacklistQueryListCommand nettyClientBlacklistQueryListCommand);
+ Result> findList(NettyClientBlacklistQueryListCommand nettyClientBlacklistQueryListCommand);
/**
* describe 分页查询多个客户端黑名单
*
- * @param nettyClientBlacklistQueryListCommand 分页查询多个客户端黑名单
- * @return {@link Result >} 分页客户端黑名单DTO对象
-
+ * @param nettyClientBlacklistQueryListCommand 分页查询多个客户端黑名单
+ * @return {@link Result >} 分页客户端黑名单DTO对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- Result > findPage(int size,int current,NettyClientBlacklistQueryListCommand nettyClientBlacklistQueryListCommand);
+ Result> findPage(int size, int current, NettyClientBlacklistQueryListCommand nettyClientBlacklistQueryListCommand);
/**
* describe 删除客户端黑名单
*
- * @param nettyClientBlacklistRemoveCommand 删除客户端黑名单
- * @return {@link Result} 客户端黑名单
-
+ * @param nettyClientBlacklistRemoveCommand 删除客户端黑名单
+ * @return {@link Result} 客户端黑名单
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -107,7 +101,6 @@ public interface NettyClientBlacklistApplication {
*
* @param nettyClientBlacklist 是否存在客户端黑名单
* @return {@link Result} 客户端黑名单是否存在
-
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/NettyClientStateApplication.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/NettyClientStateApplication.java
index d30f26a..0e51c24 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/NettyClientStateApplication.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/NettyClientStateApplication.java
@@ -10,11 +10,11 @@ import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.state.NettyCl
import java.util.List;
/**
- * describe 客户端状态
+ * describe 客户端状态
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplication
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplication
**/
public interface NettyClientStateApplication {
@@ -23,9 +23,8 @@ public interface NettyClientStateApplication {
/**
* describe 新增客户端状态
*
- * @param nettyClientStateStoryCommand 新增客户端状态
+ * @param nettyClientStateStoryCommand 新增客户端状态
* @return {@link Result< NettyClientState >} 客户端状态新增后领域对象
-
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -35,9 +34,8 @@ public interface NettyClientStateApplication {
/**
* describe 批量新增客户端状态
*
- * @param nettyClientStateStoryCommandList 批量新增客户端状态
- * @return {@link Result>} 客户端状态新增后领域对象集合
-
+ * @param nettyClientStateStoryCommandList 批量新增客户端状态
+ * @return {@link Result>} 客户端状态新增后领域对象集合
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -47,9 +45,8 @@ public interface NettyClientStateApplication {
/**
* describe 更新客户端状态
*
- * @param nettyClientStateUpdateCommand 更新客户端状态
- * @return {@link Result} 客户端状态领域对象
-
+ * @param nettyClientStateUpdateCommand 更新客户端状态
+ * @return {@link Result} 客户端状态领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -59,9 +56,8 @@ public interface NettyClientStateApplication {
/**
* describe 查询单个客户端状态
*
- * @param nettyClientStateQueryOneCommand 查询单个客户端状态
+ * @param nettyClientStateQueryOneCommand 查询单个客户端状态
* @return {@link Result< NettyClientStateDTO >} 客户端状态DTO对象
-
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -71,37 +67,41 @@ public interface NettyClientStateApplication {
/**
* describe 查询多个客户端状态
*
- * @param nettyClientStateQueryListCommand 查询多个客户端状态
- * @return {@link Result >} 客户端状态DTO对象
-
+ * @param nettyClientStateQueryListCommand 查询多个客户端状态
+ * @return {@link Result >} 客户端状态DTO对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- Result > findList(NettyClientStateQueryListCommand nettyClientStateQueryListCommand);
+ Result> findList(NettyClientStateQueryListCommand nettyClientStateQueryListCommand);
/**
* describe 分页查询多个客户端状态
*
- * @param nettyClientStateQueryListCommand 分页查询多个客户端状态
- * @return {@link Result >} 分页客户端状态DTO对象
-
+ * @param nettyClientStateQueryListCommand 分页查询多个客户端状态
+ * @return {@link Result >} 分页客户端状态DTO对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- Result > findPage(int size, int current, NettyClientStateQueryListCommand nettyClientStateQueryListCommand);
+ Result> findPage(int size, int current, NettyClientStateQueryListCommand nettyClientStateQueryListCommand);
/**
* describe 删除客户端状态
*
- * @param nettyClientStateRemoveCommand 删除客户端状态
- * @return {@link Result} 客户端状态
-
+ * @param nettyClientStateRemoveCommand 删除客户端状态
+ * @return {@link Result} 客户端状态
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
Result remove(NettyClientStateRemoveCommand nettyClientStateRemoveCommand);
+ /**
+ * 通过客户端心跳通道发送客户端请求
+ *
+ * @param nettyClientMessageCommand 发送请求到客户端
+ * @return {@link Result}
+ */
+ Result sendMessage2HeartbeatClient(NettyClientMessageCommand nettyClientMessageCommand);
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/NettyServerVisitorApplication.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/NettyServerVisitorApplication.java
new file mode 100644
index 0000000..fd085e4
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/NettyServerVisitorApplication.java
@@ -0,0 +1,99 @@
+package wu.framework.lazy.cloud.heartbeat.server.application;
+
+import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
+import com.wu.framework.response.Result;
+import wu.framework.lazy.cloud.heartbeat.server.application.command.netty.server.visitor.*;
+import wu.framework.lazy.cloud.heartbeat.server.application.dto.NettyServerVisitorDTO;
+import wu.framework.lazy.cloud.heartbeat.server.domain.model.netty.server.visitor.NettyServerVisitor;
+
+import java.util.List;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplication
+ **/
+
+public interface NettyServerVisitorApplication {
+
+
+ /**
+ * describe 新增服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorStoryCommand 新增服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口新增后领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ Result story(NettyServerVisitorStoryCommand nettyServerVisitorStoryCommand);
+
+ /**
+ * describe 批量新增服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorStoryCommandList 批量新增服务端提前开放出来的端口
+ * @return {@link Result>} 服务端提前开放出来的端口新增后领域对象集合
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ Result> batchStory(List nettyServerVisitorStoryCommandList);
+
+ /**
+ * describe 更新服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorUpdateCommand 更新服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ Result updateOne(NettyServerVisitorUpdateCommand nettyServerVisitorUpdateCommand);
+
+ /**
+ * describe 查询单个服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorQueryOneCommand 查询单个服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ Result findOne(NettyServerVisitorQueryOneCommand nettyServerVisitorQueryOneCommand);
+
+ /**
+ * describe 查询多个服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorQueryListCommand 查询多个服务端提前开放出来的端口
+ * @return {@link Result >} 服务端提前开放出来的端口DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ Result> findList(NettyServerVisitorQueryListCommand nettyServerVisitorQueryListCommand);
+
+ /**
+ * describe 分页查询多个服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorQueryListCommand 分页查询多个服务端提前开放出来的端口
+ * @return {@link Result >} 分页服务端提前开放出来的端口DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ Result> findPage(int size, int current, NettyServerVisitorQueryListCommand nettyServerVisitorQueryListCommand);
+
+ /**
+ * describe 删除服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorRemoveCommand 删除服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ Result remove(NettyServerVisitorRemoveCommand nettyServerVisitorRemoveCommand);
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/ServerNettyConfigApplication.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/ServerNettyConfigApplication.java
index 4ded380..c7e80a3 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/ServerNettyConfigApplication.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/ServerNettyConfigApplication.java
@@ -8,18 +8,21 @@ public interface ServerNettyConfigApplication {
/**
* 客户端在线
+ *
* @param clientId 客户端ID
*/
void clientOnLine(String clientId);
/**
* 客户端离线
+ *
* @param clientId 客户端ID
*/
void clientOffLine(String clientId);
/**
* 客户端暂存关闭
+ *
* @param clientId 客户端ID
*/
void stagingClosed(String clientId);
@@ -27,6 +30,7 @@ public interface ServerNettyConfigApplication {
/**
* 客户端暂存开启
+ *
* @param clientId 客户端ID
*/
void stagingOpened(String clientId);
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/VisitorPortFlowApplication.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/VisitorPortFlowApplication.java
new file mode 100644
index 0000000..70d9405
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/VisitorPortFlowApplication.java
@@ -0,0 +1,110 @@
+package wu.framework.lazy.cloud.heartbeat.server.application;
+
+import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
+import com.wu.framework.response.Result;
+import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.*;
+import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorFlowDTO;
+import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorPortFlowDTO;
+import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlow;
+
+import java.util.List;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplication
+ **/
+
+public interface VisitorPortFlowApplication {
+
+
+ /**
+ * describe 新增访客端流量
+ *
+ * @param visitorPortFlowStoryCommand 新增访客端流量
+ * @return {@link Result< VisitorPortFlow >} 访客端流量新增后领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ Result story(VisitorPortFlowStoryCommand visitorPortFlowStoryCommand);
+
+ /**
+ * describe 批量新增访客端流量
+ *
+ * @param visitorPortFlowStoryCommandList 批量新增访客端流量
+ * @return {@link Result>} 访客端流量新增后领域对象集合
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ Result> batchStory(List visitorPortFlowStoryCommandList);
+
+ /**
+ * describe 更新访客端流量
+ *
+ * @param visitorPortFlowUpdateCommand 更新访客端流量
+ * @return {@link Result< VisitorPortFlow >} 访客端流量领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ Result updateOne(VisitorPortFlowUpdateCommand visitorPortFlowUpdateCommand);
+
+ /**
+ * describe 查询单个访客端流量
+ *
+ * @param visitorPortFlowQueryOneCommand 查询单个访客端流量
+ * @return {@link Result< VisitorPortFlowDTO >} 访客端流量DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ Result findOne(VisitorPortFlowQueryOneCommand visitorPortFlowQueryOneCommand);
+
+ /**
+ * describe 查询多个访客端流量
+ *
+ * @param visitorPortFlowQueryListCommand 查询多个访客端流量
+ * @return {@link Result >} 访客端流量DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ Result> findList(VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand);
+
+ /**
+ * describe 分页查询多个访客端流量
+ *
+ * @param visitorPortFlowQueryListCommand 分页查询多个访客端流量
+ * @return {@link Result >} 分页访客端流量DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ Result> findPage(int size, int current, VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand);
+
+ /**
+ * describe 删除访客端流量
+ *
+ * @param visitorPortFlowRemoveCommand 删除访客端流量
+ * @return {@link Result< VisitorPortFlow >} 访客端流量
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ Result remove(VisitorPortFlowRemoveCommand visitorPortFlowRemoveCommand);
+
+
+ /**
+ * 根据客户端查询流量
+ *
+ * @param size 分页大小
+ * @param current 分页
+ * @param visitorPortFlowQueryListCommand 查询条件
+ * @return {@link Result>} 分页访客端流量DTO对象
+ */
+ Result> findClientFlowPage(int size, int current, VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand);
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/InternalNetworkPenetrationMappingDTOAssembler.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/InternalNetworkPenetrationMappingDTOAssembler.java
index c100079..716b3c6 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/InternalNetworkPenetrationMappingDTOAssembler.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/InternalNetworkPenetrationMappingDTOAssembler.java
@@ -1,16 +1,17 @@
package wu.framework.lazy.cloud.heartbeat.server.application.assembler;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
import wu.framework.lazy.cloud.heartbeat.server.application.command.internal.network.penetration.mapping.*;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.InternalNetworkPenetrationMappingDTO;
import wu.framework.lazy.cloud.heartbeat.server.model.internal.network.penetration.mapping.InternalNetworkPenetrationMapping;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
+
/**
- * describe 内网穿透映射
+ * describe 内网穿透映射
*
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyAssembler
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyAssembler
**/
@Mapper
public interface InternalNetworkPenetrationMappingDTOAssembler {
@@ -19,71 +20,68 @@ public interface InternalNetworkPenetrationMappingDTOAssembler {
/**
* describe MapStruct 创建的代理对象
*
-
-
-
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
InternalNetworkPenetrationMappingDTOAssembler INSTANCE = Mappers.getMapper(InternalNetworkPenetrationMappingDTOAssembler.class);
+
/**
* describe 应用层存储入参转换成 领域对象
*
- * @param internalNetworkPenetrationMappingStoryCommand 保存内网穿透映射对象
- * @return {@link InternalNetworkPenetrationMapping} 内网穿透映射领域对象
-
+ * @param internalNetworkPenetrationMappingStoryCommand 保存内网穿透映射对象
+ * @return {@link InternalNetworkPenetrationMapping} 内网穿透映射领域对象
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
- InternalNetworkPenetrationMapping toInternalNetworkPenetrationMapping(InternalNetworkPenetrationMappingStoryCommand internalNetworkPenetrationMappingStoryCommand);
+ InternalNetworkPenetrationMapping toInternalNetworkPenetrationMapping(InternalNetworkPenetrationMappingStoryCommand internalNetworkPenetrationMappingStoryCommand);
+
/**
* describe 应用层更新入参转换成 领域对象
*
- * @param internalNetworkPenetrationMappingUpdateCommand 更新内网穿透映射对象
- * @return {@link InternalNetworkPenetrationMapping} 内网穿透映射领域对象
-
+ * @param internalNetworkPenetrationMappingUpdateCommand 更新内网穿透映射对象
+ * @return {@link InternalNetworkPenetrationMapping} 内网穿透映射领域对象
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
- InternalNetworkPenetrationMapping toInternalNetworkPenetrationMapping(InternalNetworkPenetrationMappingUpdateCommand internalNetworkPenetrationMappingUpdateCommand);
+ InternalNetworkPenetrationMapping toInternalNetworkPenetrationMapping(InternalNetworkPenetrationMappingUpdateCommand internalNetworkPenetrationMappingUpdateCommand);
+
/**
* describe 应用层查询入参转换成 领域对象
*
- * @param internalNetworkPenetrationMappingQueryOneCommand 查询单个内网穿透映射对象参数
- * @return {@link InternalNetworkPenetrationMapping} 内网穿透映射领域对象
-
+ * @param internalNetworkPenetrationMappingQueryOneCommand 查询单个内网穿透映射对象参数
+ * @return {@link InternalNetworkPenetrationMapping} 内网穿透映射领域对象
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
- InternalNetworkPenetrationMapping toInternalNetworkPenetrationMapping(InternalNetworkPenetrationMappingQueryOneCommand internalNetworkPenetrationMappingQueryOneCommand);
+ InternalNetworkPenetrationMapping toInternalNetworkPenetrationMapping(InternalNetworkPenetrationMappingQueryOneCommand internalNetworkPenetrationMappingQueryOneCommand);
+
/**
* describe 应用层查询入参转换成 领域对象
*
- * @param internalNetworkPenetrationMappingQueryListCommand 查询集合内网穿透映射对象参数
- * @return {@link InternalNetworkPenetrationMapping} 内网穿透映射领域对象
-
+ * @param internalNetworkPenetrationMappingQueryListCommand 查询集合内网穿透映射对象参数
+ * @return {@link InternalNetworkPenetrationMapping} 内网穿透映射领域对象
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
- InternalNetworkPenetrationMapping toInternalNetworkPenetrationMapping(InternalNetworkPenetrationMappingQueryListCommand internalNetworkPenetrationMappingQueryListCommand);
+ InternalNetworkPenetrationMapping toInternalNetworkPenetrationMapping(InternalNetworkPenetrationMappingQueryListCommand internalNetworkPenetrationMappingQueryListCommand);
+
/**
* describe 应用层删除入参转换成 领域对象
*
- * @param internalNetworkPenetrationMappingRemoveCommand 删除内网穿透映射对象参数
- * @return {@link InternalNetworkPenetrationMapping} 内网穿透映射领域对象
-
+ * @param internalNetworkPenetrationMappingRemoveCommand 删除内网穿透映射对象参数
+ * @return {@link InternalNetworkPenetrationMapping} 内网穿透映射领域对象
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
- InternalNetworkPenetrationMapping toInternalNetworkPenetrationMapping(InternalNetworkPenetrationMappingRemoveCommand internalNetworkPenetrationMappingRemoveCommand);
+ InternalNetworkPenetrationMapping toInternalNetworkPenetrationMapping(InternalNetworkPenetrationMappingRemoveCommand internalNetworkPenetrationMappingRemoveCommand);
+
/**
* describe 持久层领域对象转换成DTO对象
*
- * @param internalNetworkPenetrationMapping 内网穿透映射领域对象
- * @return {@link InternalNetworkPenetrationMappingDTO} 内网穿透映射DTO对象
-
+ * @param internalNetworkPenetrationMapping 内网穿透映射领域对象
+ * @return {@link InternalNetworkPenetrationMappingDTO} 内网穿透映射DTO对象
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
- InternalNetworkPenetrationMappingDTO fromInternalNetworkPenetrationMapping(InternalNetworkPenetrationMapping internalNetworkPenetrationMapping);
+ InternalNetworkPenetrationMappingDTO fromInternalNetworkPenetrationMapping(InternalNetworkPenetrationMapping internalNetworkPenetrationMapping);
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/NettyClientBlacklistDTOAssembler.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/NettyClientBlacklistDTOAssembler.java
index fa23cbd..9553994 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/NettyClientBlacklistDTOAssembler.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/NettyClientBlacklistDTOAssembler.java
@@ -1,16 +1,17 @@
package wu.framework.lazy.cloud.heartbeat.server.application.assembler;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
import wu.framework.lazy.cloud.heartbeat.server.application.command.netty.client.blacklist.*;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.NettyClientBlacklistDTO;
import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.blacklist.NettyClientBlacklist;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
+
/**
- * describe 客户端黑名单
+ * describe 客户端黑名单
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyAssembler
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyAssembler
**/
@Mapper
public interface NettyClientBlacklistDTOAssembler {
@@ -19,71 +20,68 @@ public interface NettyClientBlacklistDTOAssembler {
/**
* describe MapStruct 创建的代理对象
*
-
-
-
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
NettyClientBlacklistDTOAssembler INSTANCE = Mappers.getMapper(NettyClientBlacklistDTOAssembler.class);
+
/**
* describe 应用层存储入参转换成 领域对象
*
- * @param nettyClientBlacklistStoryCommand 保存客户端黑名单对象
- * @return {@link NettyClientBlacklist} 客户端黑名单领域对象
-
+ * @param nettyClientBlacklistStoryCommand 保存客户端黑名单对象
+ * @return {@link NettyClientBlacklist} 客户端黑名单领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- NettyClientBlacklist toNettyClientBlacklist(NettyClientBlacklistStoryCommand nettyClientBlacklistStoryCommand);
+ NettyClientBlacklist toNettyClientBlacklist(NettyClientBlacklistStoryCommand nettyClientBlacklistStoryCommand);
+
/**
* describe 应用层更新入参转换成 领域对象
*
- * @param nettyClientBlacklistUpdateCommand 更新客户端黑名单对象
- * @return {@link NettyClientBlacklist} 客户端黑名单领域对象
-
+ * @param nettyClientBlacklistUpdateCommand 更新客户端黑名单对象
+ * @return {@link NettyClientBlacklist} 客户端黑名单领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- NettyClientBlacklist toNettyClientBlacklist(NettyClientBlacklistUpdateCommand nettyClientBlacklistUpdateCommand);
+ NettyClientBlacklist toNettyClientBlacklist(NettyClientBlacklistUpdateCommand nettyClientBlacklistUpdateCommand);
+
/**
* describe 应用层查询入参转换成 领域对象
*
- * @param nettyClientBlacklistQueryOneCommand 查询单个客户端黑名单对象参数
- * @return {@link NettyClientBlacklist} 客户端黑名单领域对象
-
+ * @param nettyClientBlacklistQueryOneCommand 查询单个客户端黑名单对象参数
+ * @return {@link NettyClientBlacklist} 客户端黑名单领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- NettyClientBlacklist toNettyClientBlacklist(NettyClientBlacklistQueryOneCommand nettyClientBlacklistQueryOneCommand);
+ NettyClientBlacklist toNettyClientBlacklist(NettyClientBlacklistQueryOneCommand nettyClientBlacklistQueryOneCommand);
+
/**
* describe 应用层查询入参转换成 领域对象
*
- * @param nettyClientBlacklistQueryListCommand 查询集合客户端黑名单对象参数
- * @return {@link NettyClientBlacklist} 客户端黑名单领域对象
-
+ * @param nettyClientBlacklistQueryListCommand 查询集合客户端黑名单对象参数
+ * @return {@link NettyClientBlacklist} 客户端黑名单领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- NettyClientBlacklist toNettyClientBlacklist(NettyClientBlacklistQueryListCommand nettyClientBlacklistQueryListCommand);
+ NettyClientBlacklist toNettyClientBlacklist(NettyClientBlacklistQueryListCommand nettyClientBlacklistQueryListCommand);
+
/**
* describe 应用层删除入参转换成 领域对象
*
- * @param nettyClientBlacklistRemoveCommand 删除客户端黑名单对象参数
- * @return {@link NettyClientBlacklist} 客户端黑名单领域对象
-
+ * @param nettyClientBlacklistRemoveCommand 删除客户端黑名单对象参数
+ * @return {@link NettyClientBlacklist} 客户端黑名单领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- NettyClientBlacklist toNettyClientBlacklist(NettyClientBlacklistRemoveCommand nettyClientBlacklistRemoveCommand);
+ NettyClientBlacklist toNettyClientBlacklist(NettyClientBlacklistRemoveCommand nettyClientBlacklistRemoveCommand);
+
/**
* describe 持久层领域对象转换成DTO对象
*
- * @param nettyClientBlacklist 客户端黑名单领域对象
+ * @param nettyClientBlacklist 客户端黑名单领域对象
* @return {@link NettyClientBlacklistDTO} 客户端黑名单DTO对象
-
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- NettyClientBlacklistDTO fromNettyClientBlacklist(NettyClientBlacklist nettyClientBlacklist);
+ NettyClientBlacklistDTO fromNettyClientBlacklist(NettyClientBlacklist nettyClientBlacklist);
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/NettyClientStateDTOAssembler.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/NettyClientStateDTOAssembler.java
index edf2156..74b629d 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/NettyClientStateDTOAssembler.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/NettyClientStateDTOAssembler.java
@@ -1,16 +1,17 @@
package wu.framework.lazy.cloud.heartbeat.server.application.assembler;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
import wu.framework.lazy.cloud.heartbeat.server.application.command.netty.client.state.*;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.NettyClientStateDTO;
import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.state.NettyClientState;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
+
/**
- * describe 客户端状态
+ * describe 客户端状态
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyAssembler
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyAssembler
**/
@Mapper
public interface NettyClientStateDTOAssembler {
@@ -19,71 +20,68 @@ public interface NettyClientStateDTOAssembler {
/**
* describe MapStruct 创建的代理对象
*
-
-
-
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
NettyClientStateDTOAssembler INSTANCE = Mappers.getMapper(NettyClientStateDTOAssembler.class);
+
/**
* describe 应用层存储入参转换成 领域对象
*
- * @param nettyClientStateStoryCommand 保存客户端状态对象
- * @return {@link NettyClientState} 客户端状态领域对象
-
+ * @param nettyClientStateStoryCommand 保存客户端状态对象
+ * @return {@link NettyClientState} 客户端状态领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- NettyClientState toNettyClientState(NettyClientStateStoryCommand nettyClientStateStoryCommand);
+ NettyClientState toNettyClientState(NettyClientStateStoryCommand nettyClientStateStoryCommand);
+
/**
* describe 应用层更新入参转换成 领域对象
*
- * @param nettyClientStateUpdateCommand 更新客户端状态对象
- * @return {@link NettyClientState} 客户端状态领域对象
-
+ * @param nettyClientStateUpdateCommand 更新客户端状态对象
+ * @return {@link NettyClientState} 客户端状态领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- NettyClientState toNettyClientState(NettyClientStateUpdateCommand nettyClientStateUpdateCommand);
+ NettyClientState toNettyClientState(NettyClientStateUpdateCommand nettyClientStateUpdateCommand);
+
/**
* describe 应用层查询入参转换成 领域对象
*
- * @param nettyClientStateQueryOneCommand 查询单个客户端状态对象参数
- * @return {@link NettyClientState} 客户端状态领域对象
-
+ * @param nettyClientStateQueryOneCommand 查询单个客户端状态对象参数
+ * @return {@link NettyClientState} 客户端状态领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- NettyClientState toNettyClientState(NettyClientStateQueryOneCommand nettyClientStateQueryOneCommand);
+ NettyClientState toNettyClientState(NettyClientStateQueryOneCommand nettyClientStateQueryOneCommand);
+
/**
* describe 应用层查询入参转换成 领域对象
*
- * @param nettyClientStateQueryListCommand 查询集合客户端状态对象参数
- * @return {@link NettyClientState} 客户端状态领域对象
-
+ * @param nettyClientStateQueryListCommand 查询集合客户端状态对象参数
+ * @return {@link NettyClientState} 客户端状态领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- NettyClientState toNettyClientState(NettyClientStateQueryListCommand nettyClientStateQueryListCommand);
+ NettyClientState toNettyClientState(NettyClientStateQueryListCommand nettyClientStateQueryListCommand);
+
/**
* describe 应用层删除入参转换成 领域对象
*
- * @param nettyClientStateRemoveCommand 删除客户端状态对象参数
- * @return {@link NettyClientState} 客户端状态领域对象
-
+ * @param nettyClientStateRemoveCommand 删除客户端状态对象参数
+ * @return {@link NettyClientState} 客户端状态领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- NettyClientState toNettyClientState(NettyClientStateRemoveCommand nettyClientStateRemoveCommand);
+ NettyClientState toNettyClientState(NettyClientStateRemoveCommand nettyClientStateRemoveCommand);
+
/**
* describe 持久层领域对象转换成DTO对象
*
- * @param nettyClientState 客户端状态领域对象
+ * @param nettyClientState 客户端状态领域对象
* @return {@link NettyClientStateDTO} 客户端状态DTO对象
-
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- NettyClientStateDTO fromNettyClientState(NettyClientState nettyClientState);
+ NettyClientStateDTO fromNettyClientState(NettyClientState nettyClientState);
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/NettyServerVisitorDTOAssembler.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/NettyServerVisitorDTOAssembler.java
new file mode 100644
index 0000000..338356c
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/NettyServerVisitorDTOAssembler.java
@@ -0,0 +1,87 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.assembler;
+
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+import wu.framework.lazy.cloud.heartbeat.server.application.command.netty.server.visitor.*;
+import wu.framework.lazy.cloud.heartbeat.server.application.dto.NettyServerVisitorDTO;
+import wu.framework.lazy.cloud.heartbeat.server.domain.model.netty.server.visitor.NettyServerVisitor;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyAssembler
+ **/
+@Mapper
+public interface NettyServerVisitorDTOAssembler {
+
+
+ /**
+ * describe MapStruct 创建的代理对象
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+ NettyServerVisitorDTOAssembler INSTANCE = Mappers.getMapper(NettyServerVisitorDTOAssembler.class);
+
+ /**
+ * describe 应用层存储入参转换成 领域对象
+ *
+ * @param nettyServerVisitorStoryCommand 保存服务端提前开放出来的端口对象
+ * @return {@link NettyServerVisitor} 服务端提前开放出来的端口领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+ NettyServerVisitor toNettyServerVisitor(NettyServerVisitorStoryCommand nettyServerVisitorStoryCommand);
+
+ /**
+ * describe 应用层更新入参转换成 领域对象
+ *
+ * @param nettyServerVisitorUpdateCommand 更新服务端提前开放出来的端口对象
+ * @return {@link NettyServerVisitor} 服务端提前开放出来的端口领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+ NettyServerVisitor toNettyServerVisitor(NettyServerVisitorUpdateCommand nettyServerVisitorUpdateCommand);
+
+ /**
+ * describe 应用层查询入参转换成 领域对象
+ *
+ * @param nettyServerVisitorQueryOneCommand 查询单个服务端提前开放出来的端口对象参数
+ * @return {@link NettyServerVisitor} 服务端提前开放出来的端口领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+ NettyServerVisitor toNettyServerVisitor(NettyServerVisitorQueryOneCommand nettyServerVisitorQueryOneCommand);
+
+ /**
+ * describe 应用层查询入参转换成 领域对象
+ *
+ * @param nettyServerVisitorQueryListCommand 查询集合服务端提前开放出来的端口对象参数
+ * @return {@link NettyServerVisitor} 服务端提前开放出来的端口领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+ NettyServerVisitor toNettyServerVisitor(NettyServerVisitorQueryListCommand nettyServerVisitorQueryListCommand);
+
+ /**
+ * describe 应用层删除入参转换成 领域对象
+ *
+ * @param nettyServerVisitorRemoveCommand 删除服务端提前开放出来的端口对象参数
+ * @return {@link NettyServerVisitor} 服务端提前开放出来的端口领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+ NettyServerVisitor toNettyServerVisitor(NettyServerVisitorRemoveCommand nettyServerVisitorRemoveCommand);
+
+ /**
+ * describe 持久层领域对象转换成DTO对象
+ *
+ * @param nettyServerVisitor 服务端提前开放出来的端口领域对象
+ * @return {@link NettyServerVisitorDTO} 服务端提前开放出来的端口DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+ NettyServerVisitorDTO fromNettyServerVisitor(NettyServerVisitor nettyServerVisitor);
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/VisitorPortFlowDTOAssembler.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/VisitorPortFlowDTOAssembler.java
new file mode 100644
index 0000000..76b27c0
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/assembler/VisitorPortFlowDTOAssembler.java
@@ -0,0 +1,87 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.assembler;
+
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.*;
+import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorPortFlowDTO;
+import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlow;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyAssembler
+ **/
+@Mapper
+public interface VisitorPortFlowDTOAssembler {
+
+
+ /**
+ * describe MapStruct 创建的代理对象
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+ VisitorPortFlowDTOAssembler INSTANCE = Mappers.getMapper(VisitorPortFlowDTOAssembler.class);
+
+ /**
+ * describe 应用层存储入参转换成 领域对象
+ *
+ * @param visitorPortFlowStoryCommand 保存访客端流量对象
+ * @return {@link VisitorPortFlow} 访客端流量领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+ VisitorPortFlow toVisitorFlow(VisitorPortFlowStoryCommand visitorPortFlowStoryCommand);
+
+ /**
+ * describe 应用层更新入参转换成 领域对象
+ *
+ * @param visitorPortFlowUpdateCommand 更新访客端流量对象
+ * @return {@link VisitorPortFlow} 访客端流量领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+ VisitorPortFlow toVisitorFlow(VisitorPortFlowUpdateCommand visitorPortFlowUpdateCommand);
+
+ /**
+ * describe 应用层查询入参转换成 领域对象
+ *
+ * @param visitorPortFlowQueryOneCommand 查询单个访客端流量对象参数
+ * @return {@link VisitorPortFlow} 访客端流量领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+ VisitorPortFlow toVisitorFlow(VisitorPortFlowQueryOneCommand visitorPortFlowQueryOneCommand);
+
+ /**
+ * describe 应用层查询入参转换成 领域对象
+ *
+ * @param visitorPortFlowQueryListCommand 查询集合访客端流量对象参数
+ * @return {@link VisitorPortFlow} 访客端流量领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+ VisitorPortFlow toVisitorFlow(VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand);
+
+ /**
+ * describe 应用层删除入参转换成 领域对象
+ *
+ * @param visitorPortFlowRemoveCommand 删除访客端流量对象参数
+ * @return {@link VisitorPortFlow} 访客端流量领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+ VisitorPortFlow toVisitorFlow(VisitorPortFlowRemoveCommand visitorPortFlowRemoveCommand);
+
+ /**
+ * describe 持久层领域对象转换成DTO对象
+ *
+ * @param visitorPortFlow 访客端流量领域对象
+ * @return {@link VisitorPortFlowDTO} 访客端流量DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+ VisitorPortFlowDTO fromVisitorFlow(VisitorPortFlow visitorPortFlow);
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingQueryListCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingQueryListCommand.java
index d195936..8ed6e06 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingQueryListCommand.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingQueryListCommand.java
@@ -5,78 +5,70 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
+
/**
- * describe 内网穿透映射
+ * describe 内网穿透映射
*
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryListCommand
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryListCommand
**/
@Data
@Accessors(chain = true)
-@Schema(title = "internal_network_penetration_mapping_query_List_command",description = "内网穿透映射")
+@Schema(title = "internal_network_penetration_mapping_query_List_command", description = "内网穿透映射")
public class InternalNetworkPenetrationMappingQueryListCommand {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 客户端目标地址
*/
- @Schema(description ="客户端目标地址",name ="clientTargetIp",example = "")
+ @Schema(description = "客户端目标地址", name = "clientTargetIp", example = "")
private String clientTargetIp;
/**
- *
* 客户端目标端口
*/
- @Schema(description ="客户端目标端口",name ="clientTargetPort",example = "")
+ @Schema(description = "客户端目标端口", name = "clientTargetPort", example = "")
private Integer clientTargetPort;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键自增
*/
- @Schema(description ="主键自增",name ="id",example = "")
+ @Schema(description = "主键自增", name = "id", example = "")
private Long id;
/**
- *
* 是否删除 默认否
*/
- @Schema(description ="是否删除 默认否",name ="isDeleted",example = "")
+ @Schema(description = "是否删除 默认否", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 修改时间
*/
- @Schema(description ="修改时间",name ="updateTime",example = "")
+ @Schema(description = "修改时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
/**
- *
* 访问端口
*/
- @Schema(description ="访问端口",name ="visitorPort",example = "")
+ @Schema(description = "访问端口", name = "visitorPort", example = "")
private Integer visitorPort;
/**
- *
* 描述
*/
- @Schema(description ="描述",name ="describe",example = "")
+ @Schema(description = "描述", name = "describe", example = "")
private String describe;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingQueryOneCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingQueryOneCommand.java
index 5aaa582..a46f4c5 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingQueryOneCommand.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingQueryOneCommand.java
@@ -5,78 +5,70 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
+
/**
- * describe 内网穿透映射
+ * describe 内网穿透映射
*
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryOneCommand
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryOneCommand
**/
@Data
@Accessors(chain = true)
-@Schema(title = "internal_network_penetration_mapping_query_one_command",description = "内网穿透映射")
+@Schema(title = "internal_network_penetration_mapping_query_one_command", description = "内网穿透映射")
public class InternalNetworkPenetrationMappingQueryOneCommand {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 客户端目标地址
*/
- @Schema(description ="客户端目标地址",name ="clientTargetIp",example = "")
+ @Schema(description = "客户端目标地址", name = "clientTargetIp", example = "")
private String clientTargetIp;
/**
- *
* 客户端目标端口
*/
- @Schema(description ="客户端目标端口",name ="clientTargetPort",example = "")
+ @Schema(description = "客户端目标端口", name = "clientTargetPort", example = "")
private Integer clientTargetPort;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键自增
*/
- @Schema(description ="主键自增",name ="id",example = "")
+ @Schema(description = "主键自增", name = "id", example = "")
private Long id;
/**
- *
* 是否删除 默认否
*/
- @Schema(description ="是否删除 默认否",name ="isDeleted",example = "")
+ @Schema(description = "是否删除 默认否", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 修改时间
*/
- @Schema(description ="修改时间",name ="updateTime",example = "")
+ @Schema(description = "修改时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
/**
- *
* 访问端口
*/
- @Schema(description ="访问端口",name ="visitorPort",example = "")
+ @Schema(description = "访问端口", name = "visitorPort", example = "")
private Integer visitorPort;
/**
- *
* 描述
*/
- @Schema(description ="描述",name ="describe",example = "")
+ @Schema(description = "描述", name = "describe", example = "")
private String describe;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingRemoveCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingRemoveCommand.java
index 738aec2..0f37cff 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingRemoveCommand.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingRemoveCommand.java
@@ -5,78 +5,70 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
+
/**
- * describe 内网穿透映射
+ * describe 内网穿透映射
*
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyRemoveCommand
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyRemoveCommand
**/
@Data
@Accessors(chain = true)
-@Schema(title = "internal_network_penetration_mapping_remove_command",description = "内网穿透映射")
+@Schema(title = "internal_network_penetration_mapping_remove_command", description = "内网穿透映射")
public class InternalNetworkPenetrationMappingRemoveCommand {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 客户端目标地址
*/
- @Schema(description ="客户端目标地址",name ="clientTargetIp",example = "")
+ @Schema(description = "客户端目标地址", name = "clientTargetIp", example = "")
private String clientTargetIp;
/**
- *
* 客户端目标端口
*/
- @Schema(description ="客户端目标端口",name ="clientTargetPort",example = "")
+ @Schema(description = "客户端目标端口", name = "clientTargetPort", example = "")
private Integer clientTargetPort;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键自增
*/
- @Schema(description ="主键自增",name ="id",example = "")
+ @Schema(description = "主键自增", name = "id", example = "")
private Long id;
/**
- *
* 是否删除 默认否
*/
- @Schema(description ="是否删除 默认否",name ="isDeleted",example = "")
+ @Schema(description = "是否删除 默认否", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 修改时间
*/
- @Schema(description ="修改时间",name ="updateTime",example = "")
+ @Schema(description = "修改时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
/**
- *
* 访问端口
*/
- @Schema(description ="访问端口",name ="visitorPort",example = "")
+ @Schema(description = "访问端口", name = "visitorPort", example = "")
private Integer visitorPort;
/**
- *
* 描述
*/
- @Schema(description ="描述",name ="describe",example = "")
+ @Schema(description = "描述", name = "describe", example = "")
private String describe;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingStoryCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingStoryCommand.java
index d688983..f063eae 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingStoryCommand.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingStoryCommand.java
@@ -5,78 +5,70 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
+
/**
- * describe 内网穿透映射
+ * describe 内网穿透映射
*
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyStoryCommand
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyStoryCommand
**/
@Data
@Accessors(chain = true)
-@Schema(title = "internal_network_penetration_mapping_story_command",description = "内网穿透映射")
+@Schema(title = "internal_network_penetration_mapping_story_command", description = "内网穿透映射")
public class InternalNetworkPenetrationMappingStoryCommand {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 客户端目标地址
*/
- @Schema(description ="客户端目标地址",name ="clientTargetIp",example = "")
+ @Schema(description = "客户端目标地址", name = "clientTargetIp", example = "")
private String clientTargetIp;
/**
- *
* 客户端目标端口
*/
- @Schema(description ="客户端目标端口",name ="clientTargetPort",example = "")
+ @Schema(description = "客户端目标端口", name = "clientTargetPort", example = "")
private Integer clientTargetPort;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键自增
*/
- @Schema(description ="主键自增",name ="id",example = "")
+ @Schema(description = "主键自增", name = "id", example = "")
private Long id;
/**
- *
* 是否删除 默认否
*/
- @Schema(description ="是否删除 默认否",name ="isDeleted",example = "")
+ @Schema(description = "是否删除 默认否", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 修改时间
*/
- @Schema(description ="修改时间",name ="updateTime",example = "")
+ @Schema(description = "修改时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
/**
- *
* 访问端口
*/
- @Schema(description ="访问端口",name ="visitorPort",example = "")
+ @Schema(description = "访问端口", name = "visitorPort", example = "")
private Integer visitorPort;
/**
- *
* 描述
*/
- @Schema(description ="描述",name ="describe",example = "")
+ @Schema(description = "描述", name = "describe", example = "")
private String describe;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingUpdateCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingUpdateCommand.java
index f967c4e..7f2667f 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingUpdateCommand.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/internal/network/penetration/mapping/InternalNetworkPenetrationMappingUpdateCommand.java
@@ -5,78 +5,70 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
+
/**
- * describe 内网穿透映射
+ * describe 内网穿透映射
*
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyUpdateCommand
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyUpdateCommand
**/
@Data
@Accessors(chain = true)
-@Schema(title = "internal_network_penetration_mapping_update_command",description = "内网穿透映射")
+@Schema(title = "internal_network_penetration_mapping_update_command", description = "内网穿透映射")
public class InternalNetworkPenetrationMappingUpdateCommand {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 客户端目标地址
*/
- @Schema(description ="客户端目标地址",name ="clientTargetIp",example = "")
+ @Schema(description = "客户端目标地址", name = "clientTargetIp", example = "")
private String clientTargetIp;
/**
- *
* 客户端目标端口
*/
- @Schema(description ="客户端目标端口",name ="clientTargetPort",example = "")
+ @Schema(description = "客户端目标端口", name = "clientTargetPort", example = "")
private Integer clientTargetPort;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键自增
*/
- @Schema(description ="主键自增",name ="id",example = "")
+ @Schema(description = "主键自增", name = "id", example = "")
private Long id;
/**
- *
* 是否删除 默认否
*/
- @Schema(description ="是否删除 默认否",name ="isDeleted",example = "")
+ @Schema(description = "是否删除 默认否", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 修改时间
*/
- @Schema(description ="修改时间",name ="updateTime",example = "")
+ @Schema(description = "修改时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
/**
- *
* 访问端口
*/
- @Schema(description ="访问端口",name ="visitorPort",example = "")
+ @Schema(description = "访问端口", name = "visitorPort", example = "")
private Integer visitorPort;
/**
- *
* 描述
*/
- @Schema(description ="描述",name ="describe",example = "")
+ @Schema(description = "描述", name = "describe", example = "")
private String describe;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistQueryListCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistQueryListCommand.java
index 26a9dde..a3bc6ae 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistQueryListCommand.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistQueryListCommand.java
@@ -5,52 +5,48 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
+
/**
- * describe 客户端黑名单
+ * describe 客户端黑名单
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryListCommand
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryListCommand
**/
@Data
@Accessors(chain = true)
-@Schema(title = "netty_client_blacklist_query_List_command",description = "客户端黑名单")
+@Schema(title = "netty_client_blacklist_query_List_command", description = "客户端黑名单")
public class NettyClientBlacklistQueryListCommand {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键
*/
- @Schema(description ="主键",name ="id",example = "")
+ @Schema(description = "主键", name = "id", example = "")
private Long id;
/**
- *
* 是否删除
*/
- @Schema(description ="是否删除",name ="isDeleted",example = "")
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 更新时间
*/
- @Schema(description ="更新时间",name ="updateTime",example = "")
+ @Schema(description = "更新时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistQueryOneCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistQueryOneCommand.java
index 089436f..36eb003 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistQueryOneCommand.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistQueryOneCommand.java
@@ -5,52 +5,48 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
+
/**
- * describe 客户端黑名单
+ * describe 客户端黑名单
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryOneCommand
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryOneCommand
**/
@Data
@Accessors(chain = true)
-@Schema(title = "netty_client_blacklist_query_one_command",description = "客户端黑名单")
+@Schema(title = "netty_client_blacklist_query_one_command", description = "客户端黑名单")
public class NettyClientBlacklistQueryOneCommand {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键
*/
- @Schema(description ="主键",name ="id",example = "")
+ @Schema(description = "主键", name = "id", example = "")
private Long id;
/**
- *
* 是否删除
*/
- @Schema(description ="是否删除",name ="isDeleted",example = "")
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 更新时间
*/
- @Schema(description ="更新时间",name ="updateTime",example = "")
+ @Schema(description = "更新时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistRemoveCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistRemoveCommand.java
index c1c8cb5..536ff53 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistRemoveCommand.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistRemoveCommand.java
@@ -5,52 +5,48 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
+
/**
- * describe 客户端黑名单
+ * describe 客户端黑名单
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyRemoveCommand
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyRemoveCommand
**/
@Data
@Accessors(chain = true)
-@Schema(title = "netty_client_blacklist_remove_command",description = "客户端黑名单")
+@Schema(title = "netty_client_blacklist_remove_command", description = "客户端黑名单")
public class NettyClientBlacklistRemoveCommand {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键
*/
- @Schema(description ="主键",name ="id",example = "")
+ @Schema(description = "主键", name = "id", example = "")
private Long id;
/**
- *
* 是否删除
*/
- @Schema(description ="是否删除",name ="isDeleted",example = "")
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 更新时间
*/
- @Schema(description ="更新时间",name ="updateTime",example = "")
+ @Schema(description = "更新时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistStoryCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistStoryCommand.java
index 19b68e8..f207afc 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistStoryCommand.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistStoryCommand.java
@@ -8,53 +8,49 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
+
/**
- * describe 客户端黑名单
+ * describe 客户端黑名单
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyStoryCommand
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyStoryCommand
**/
@Data
@Accessors(chain = true)
-@Schema(title = "netty_client_blacklist_story_command",description = "客户端黑名单")
+@Schema(title = "netty_client_blacklist_story_command", description = "客户端黑名单")
public class NettyClientBlacklistStoryCommand {
/**
- *
* 客户端ID
*/
- @NotNull(groups = ValidType.Create.class,message = "客户端ID不允许为空")
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @NotNull(groups = ValidType.Create.class, message = "客户端ID不允许为空")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键
*/
- @Schema(description ="主键",name ="id",example = "")
+ @Schema(description = "主键", name = "id", example = "")
private Long id;
/**
- *
* 是否删除
*/
- @Schema(description ="是否删除",name ="isDeleted",example = "")
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 更新时间
*/
- @Schema(description ="更新时间",name ="updateTime",example = "")
+ @Schema(description = "更新时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistUpdateCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistUpdateCommand.java
index 14f4e28..d036b5e 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistUpdateCommand.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/blacklist/NettyClientBlacklistUpdateCommand.java
@@ -5,52 +5,48 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
+
/**
- * describe 客户端黑名单
+ * describe 客户端黑名单
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyUpdateCommand
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyUpdateCommand
**/
@Data
@Accessors(chain = true)
-@Schema(title = "netty_client_blacklist_update_command",description = "客户端黑名单")
+@Schema(title = "netty_client_blacklist_update_command", description = "客户端黑名单")
public class NettyClientBlacklistUpdateCommand {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键
*/
- @Schema(description ="主键",name ="id",example = "")
+ @Schema(description = "主键", name = "id", example = "")
private Long id;
/**
- *
* 是否删除
*/
- @Schema(description ="是否删除",name ="isDeleted",example = "")
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 更新时间
*/
- @Schema(description ="更新时间",name ="updateTime",example = "")
+ @Schema(description = "更新时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientMessageCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientMessageCommand.java
new file mode 100644
index 0000000..50b0e3f
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientMessageCommand.java
@@ -0,0 +1,33 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.command.netty.client.state;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * describe 发送请求到客户端
+ *
+ * @author Jia wei Wu
+ * @date 2023/12/27 03:46 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyRemoveCommand
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "netty_client_message_command", description = "客户端状态")
+public class NettyClientMessageCommand {
+
+
+ /**
+ * 客户端ID
+ */
+ @Schema(description = "客户端ID", name = "clientId", example = "")
+ private String clientId;
+
+
+ /**
+ * 发送的消息
+ */
+ @Schema(description = "发送的消息", name = "message", example = "")
+ private String message;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateQueryListCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateQueryListCommand.java
index 3298369..cccd7e7 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateQueryListCommand.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateQueryListCommand.java
@@ -1,71 +1,70 @@
package wu.framework.lazy.cloud.heartbeat.server.application.command.netty.client.state;
-import wu.framework.lazy.cloud.heartbeat.common.enums.NettyClientStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
+import wu.framework.lazy.cloud.heartbeat.common.enums.NettyClientStatus;
import java.time.LocalDateTime;
+
/**
- * describe 客户端状态
+ * describe 客户端状态
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryListCommand
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryListCommand
**/
@Data
@Accessors(chain = true)
-@Schema(title = "netty_client_state_query_List_command",description = "客户端状态")
+@Schema(title = "netty_client_state_query_List_command", description = "客户端状态")
public class NettyClientStateQueryListCommand {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键
*/
- @Schema(description ="主键",name ="id",example = "")
+ @Schema(description = "主键", name = "id", example = "")
private Long id;
/**
- *
* 是否删除
*/
- @Schema(description ="是否删除",name ="isDeleted",example = "")
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 在线状态(true在线,false离线)
*/
- @Schema(description ="在线状态(true在线,false离线)",name ="onLineState",example = "")
+ @Schema(description = "在线状态(true在线,false离线)", name = "onLineState", example = "")
private NettyClientStatus onLineState;
/**
- *
* 暂存状态(开启、关闭)
*/
- @Schema(description ="暂存状态(开启、关闭)",name ="staging",example = "")
+ @Schema(description = "暂存状态(开启、关闭)", name = "staging", example = "")
private String stagingState;
/**
- *
* 修改时间
*/
- @Schema(description ="修改时间",name ="updateTime",example = "")
+ @Schema(description = "修改时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
+ /**
+ * 描述
+ */
+ @Schema(description = "描述", name = "describe", example = "")
+ private String describe;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateQueryOneCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateQueryOneCommand.java
index affaf16..534277c 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateQueryOneCommand.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateQueryOneCommand.java
@@ -1,71 +1,70 @@
package wu.framework.lazy.cloud.heartbeat.server.application.command.netty.client.state;
-import wu.framework.lazy.cloud.heartbeat.common.enums.NettyClientStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
+import wu.framework.lazy.cloud.heartbeat.common.enums.NettyClientStatus;
import java.time.LocalDateTime;
+
/**
- * describe 客户端状态
+ * describe 客户端状态
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryOneCommand
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryOneCommand
**/
@Data
@Accessors(chain = true)
-@Schema(title = "netty_client_state_query_one_command",description = "客户端状态")
+@Schema(title = "netty_client_state_query_one_command", description = "客户端状态")
public class NettyClientStateQueryOneCommand {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键
*/
- @Schema(description ="主键",name ="id",example = "")
+ @Schema(description = "主键", name = "id", example = "")
private Long id;
/**
- *
* 是否删除
*/
- @Schema(description ="是否删除",name ="isDeleted",example = "")
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 在线状态(true在线,false离线)
*/
- @Schema(description ="在线状态(true在线,false离线)",name ="onLineState",example = "")
+ @Schema(description = "在线状态(true在线,false离线)", name = "onLineState", example = "")
private NettyClientStatus onLineState;
/**
- *
* 暂存状态(开启、关闭)
*/
- @Schema(description ="暂存状态(开启、关闭)",name ="staging",example = "")
+ @Schema(description = "暂存状态(开启、关闭)", name = "staging", example = "")
private String stagingState;
/**
- *
* 修改时间
*/
- @Schema(description ="修改时间",name ="updateTime",example = "")
+ @Schema(description = "修改时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
+ /**
+ * 描述
+ */
+ @Schema(description = "描述", name = "describe", example = "")
+ private String describe;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateRemoveCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateRemoveCommand.java
index 2de249c..f30e0d0 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateRemoveCommand.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateRemoveCommand.java
@@ -1,71 +1,65 @@
package wu.framework.lazy.cloud.heartbeat.server.application.command.netty.client.state;
-import wu.framework.lazy.cloud.heartbeat.common.enums.NettyClientStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
+import wu.framework.lazy.cloud.heartbeat.common.enums.NettyClientStatus;
import java.time.LocalDateTime;
+
/**
- * describe 客户端状态
+ * describe 客户端状态
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyRemoveCommand
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyRemoveCommand
**/
@Data
@Accessors(chain = true)
-@Schema(title = "netty_client_state_remove_command",description = "客户端状态")
+@Schema(title = "netty_client_state_remove_command", description = "客户端状态")
public class NettyClientStateRemoveCommand {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键
*/
- @Schema(description ="主键",name ="id",example = "")
+ @Schema(description = "主键", name = "id", example = "")
private Long id;
/**
- *
* 是否删除
*/
- @Schema(description ="是否删除",name ="isDeleted",example = "")
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 在线状态(true在线,false离线)
*/
- @Schema(description ="在线状态(true在线,false离线)",name ="onLineState",example = "")
+ @Schema(description = "在线状态(true在线,false离线)", name = "onLineState", example = "")
private NettyClientStatus onLineState;
/**
- *
* 暂存状态(开启、关闭)
*/
- @Schema(description ="暂存状态(开启、关闭)",name ="staging",example = "")
+ @Schema(description = "暂存状态(开启、关闭)", name = "staging", example = "")
private String stagingState;
/**
- *
* 修改时间
*/
- @Schema(description ="修改时间",name ="updateTime",example = "")
+ @Schema(description = "修改时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateStoryCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateStoryCommand.java
index c00396a..65bc0ca 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateStoryCommand.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateStoryCommand.java
@@ -1,71 +1,70 @@
package wu.framework.lazy.cloud.heartbeat.server.application.command.netty.client.state;
-import wu.framework.lazy.cloud.heartbeat.common.enums.NettyClientStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
+import wu.framework.lazy.cloud.heartbeat.common.enums.NettyClientStatus;
import java.time.LocalDateTime;
+
/**
- * describe 客户端状态
+ * describe 客户端状态
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyStoryCommand
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyStoryCommand
**/
@Data
@Accessors(chain = true)
-@Schema(title = "netty_client_state_story_command",description = "客户端状态")
+@Schema(title = "netty_client_state_story_command", description = "客户端状态")
public class NettyClientStateStoryCommand {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键
*/
- @Schema(description ="主键",name ="id",example = "")
+ @Schema(description = "主键", name = "id", example = "")
private Long id;
/**
- *
* 是否删除
*/
- @Schema(description ="是否删除",name ="isDeleted",example = "")
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 在线状态(true在线,false离线)
*/
- @Schema(description ="在线状态(true在线,false离线)",name ="onLineState",example = "")
+ @Schema(description = "在线状态(true在线,false离线)", name = "onLineState", example = "")
private NettyClientStatus onLineState;
/**
- *
* 暂存状态(开启、关闭)
*/
- @Schema(description ="暂存状态(开启、关闭)",name ="staging",example = "")
+ @Schema(description = "暂存状态(开启、关闭)", name = "staging", example = "")
private String stagingState;
/**
- *
* 修改时间
*/
- @Schema(description ="修改时间",name ="updateTime",example = "")
+ @Schema(description = "修改时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
+ /**
+ * 描述
+ */
+ @Schema(description = "描述", name = "describe", example = "")
+ private String describe;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateUpdateCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateUpdateCommand.java
index 4dff4a7..1284961 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateUpdateCommand.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/client/state/NettyClientStateUpdateCommand.java
@@ -1,71 +1,70 @@
package wu.framework.lazy.cloud.heartbeat.server.application.command.netty.client.state;
-import wu.framework.lazy.cloud.heartbeat.common.enums.NettyClientStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
+import wu.framework.lazy.cloud.heartbeat.common.enums.NettyClientStatus;
import java.time.LocalDateTime;
+
/**
- * describe 客户端状态
+ * describe 客户端状态
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyUpdateCommand
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyUpdateCommand
**/
@Data
@Accessors(chain = true)
-@Schema(title = "netty_client_state_update_command",description = "客户端状态")
+@Schema(title = "netty_client_state_update_command", description = "客户端状态")
public class NettyClientStateUpdateCommand {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键
*/
- @Schema(description ="主键",name ="id",example = "")
+ @Schema(description = "主键", name = "id", example = "")
private Long id;
/**
- *
* 是否删除
*/
- @Schema(description ="是否删除",name ="isDeleted",example = "")
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 在线状态(true在线,false离线)
*/
- @Schema(description ="在线状态(true在线,false离线)",name ="onLineState",example = "")
+ @Schema(description = "在线状态(true在线,false离线)", name = "onLineState", example = "")
private NettyClientStatus onLineState;
/**
- *
* 暂存状态(开启、关闭)
*/
- @Schema(description ="暂存状态(开启、关闭)",name ="staging",example = "")
+ @Schema(description = "暂存状态(开启、关闭)", name = "staging", example = "")
private String stagingState;
/**
- *
* 修改时间
*/
- @Schema(description ="修改时间",name ="updateTime",example = "")
+ @Schema(description = "修改时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
+ /**
+ * 描述
+ */
+ @Schema(description = "描述", name = "describe", example = "")
+ private String describe;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/server/visitor/NettyServerVisitorQueryListCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/server/visitor/NettyServerVisitorQueryListCommand.java
new file mode 100644
index 0000000..54b3039
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/server/visitor/NettyServerVisitorQueryListCommand.java
@@ -0,0 +1,58 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.command.netty.server.visitor;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryListCommand
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "netty_server_visitor_query_List_command", description = "服务端提前开放出来的端口")
+public class NettyServerVisitorQueryListCommand {
+
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ private LocalDateTime createTime;
+
+ /**
+ * 描述
+ */
+ @Schema(description = "描述", name = "describe", example = "")
+ private String describe;
+
+ /**
+ * 用户ID
+ */
+ @Schema(description = "用户ID", name = "id", example = "")
+ private Long id;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ private Boolean isDeleted;
+
+ /**
+ * 更新时间
+ */
+ @Schema(description = "更新时间", name = "updateTime", example = "")
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ private Integer visitorPort;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/server/visitor/NettyServerVisitorQueryOneCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/server/visitor/NettyServerVisitorQueryOneCommand.java
new file mode 100644
index 0000000..deef9f5
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/server/visitor/NettyServerVisitorQueryOneCommand.java
@@ -0,0 +1,58 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.command.netty.server.visitor;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryOneCommand
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "netty_server_visitor_query_one_command", description = "服务端提前开放出来的端口")
+public class NettyServerVisitorQueryOneCommand {
+
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ private LocalDateTime createTime;
+
+ /**
+ * 描述
+ */
+ @Schema(description = "描述", name = "describe", example = "")
+ private String describe;
+
+ /**
+ * 用户ID
+ */
+ @Schema(description = "用户ID", name = "id", example = "")
+ private Long id;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ private Boolean isDeleted;
+
+ /**
+ * 更新时间
+ */
+ @Schema(description = "更新时间", name = "updateTime", example = "")
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ private Integer visitorPort;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/server/visitor/NettyServerVisitorRemoveCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/server/visitor/NettyServerVisitorRemoveCommand.java
new file mode 100644
index 0000000..69faa70
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/server/visitor/NettyServerVisitorRemoveCommand.java
@@ -0,0 +1,58 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.command.netty.server.visitor;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyRemoveCommand
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "netty_server_visitor_remove_command", description = "服务端提前开放出来的端口")
+public class NettyServerVisitorRemoveCommand {
+
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ private LocalDateTime createTime;
+
+ /**
+ * 描述
+ */
+ @Schema(description = "描述", name = "describe", example = "")
+ private String describe;
+
+ /**
+ * 用户ID
+ */
+ @Schema(description = "用户ID", name = "id", example = "")
+ private Long id;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ private Boolean isDeleted;
+
+ /**
+ * 更新时间
+ */
+ @Schema(description = "更新时间", name = "updateTime", example = "")
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ private Integer visitorPort;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/server/visitor/NettyServerVisitorStoryCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/server/visitor/NettyServerVisitorStoryCommand.java
new file mode 100644
index 0000000..d9cab89
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/server/visitor/NettyServerVisitorStoryCommand.java
@@ -0,0 +1,58 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.command.netty.server.visitor;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyStoryCommand
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "netty_server_visitor_story_command", description = "服务端提前开放出来的端口")
+public class NettyServerVisitorStoryCommand {
+
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ private LocalDateTime createTime;
+
+ /**
+ * 描述
+ */
+ @Schema(description = "描述", name = "describe", example = "")
+ private String describe;
+
+ /**
+ * 用户ID
+ */
+ @Schema(description = "用户ID", name = "id", example = "")
+ private Long id;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ private Boolean isDeleted;
+
+ /**
+ * 更新时间
+ */
+ @Schema(description = "更新时间", name = "updateTime", example = "")
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ private Integer visitorPort;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/server/visitor/NettyServerVisitorUpdateCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/server/visitor/NettyServerVisitorUpdateCommand.java
new file mode 100644
index 0000000..fc11e99
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/netty/server/visitor/NettyServerVisitorUpdateCommand.java
@@ -0,0 +1,58 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.command.netty.server.visitor;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyUpdateCommand
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "netty_server_visitor_update_command", description = "服务端提前开放出来的端口")
+public class NettyServerVisitorUpdateCommand {
+
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ private LocalDateTime createTime;
+
+ /**
+ * 描述
+ */
+ @Schema(description = "描述", name = "describe", example = "")
+ private String describe;
+
+ /**
+ * 用户ID
+ */
+ @Schema(description = "用户ID", name = "id", example = "")
+ private Long id;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ private Boolean isDeleted;
+
+ /**
+ * 更新时间
+ */
+ @Schema(description = "更新时间", name = "updateTime", example = "")
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ private Integer visitorPort;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/visitor/flow/VisitorPortFlowQueryListCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/visitor/flow/VisitorPortFlowQueryListCommand.java
new file mode 100644
index 0000000..49ff0dd
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/visitor/flow/VisitorPortFlowQueryListCommand.java
@@ -0,0 +1,70 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryListCommand
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "visitor_port_flow_query_List_command", description = "访客端流量")
+public class VisitorPortFlowQueryListCommand {
+
+
+ /**
+ * 客户端ID
+ */
+ @Schema(description = "客户端ID", name = "clientId", example = "")
+ private String clientId;
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ private LocalDateTime createTime;
+
+ /**
+ * 主键
+ */
+ @Schema(description = "主键", name = "id", example = "")
+ private Long id;
+
+ /**
+ * 当前访客当前进口流量
+ */
+ @Schema(description = "当前访客当前进口流量", name = "inFlow", example = "")
+ private Integer inFlow;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ private Boolean isDeleted;
+
+ /**
+ * 当前访客出口流量
+ */
+ @Schema(description = "当前访客出口流量", name = "outFlow", example = "")
+ private Integer outFlow;
+
+ /**
+ * 修改时间
+ */
+ @Schema(description = "修改时间", name = "updateTime", example = "")
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ private Integer visitorPort;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/visitor/flow/VisitorPortFlowQueryOneCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/visitor/flow/VisitorPortFlowQueryOneCommand.java
new file mode 100644
index 0000000..8651966
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/visitor/flow/VisitorPortFlowQueryOneCommand.java
@@ -0,0 +1,70 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyQueryOneCommand
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "visitor_port_flow_query_one_command", description = "访客端流量")
+public class VisitorPortFlowQueryOneCommand {
+
+
+ /**
+ * 客户端ID
+ */
+ @Schema(description = "客户端ID", name = "clientId", example = "")
+ private String clientId;
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ private LocalDateTime createTime;
+
+ /**
+ * 主键
+ */
+ @Schema(description = "主键", name = "id", example = "")
+ private Long id;
+
+ /**
+ * 当前访客当前进口流量
+ */
+ @Schema(description = "当前访客当前进口流量", name = "inFlow", example = "")
+ private Integer inFlow;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ private Boolean isDeleted;
+
+ /**
+ * 当前访客出口流量
+ */
+ @Schema(description = "当前访客出口流量", name = "outFlow", example = "")
+ private Integer outFlow;
+
+ /**
+ * 修改时间
+ */
+ @Schema(description = "修改时间", name = "updateTime", example = "")
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ private Integer visitorPort;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/visitor/flow/VisitorPortFlowRemoveCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/visitor/flow/VisitorPortFlowRemoveCommand.java
new file mode 100644
index 0000000..975ea95
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/visitor/flow/VisitorPortFlowRemoveCommand.java
@@ -0,0 +1,70 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyRemoveCommand
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "visitor_port_flow_remove_command", description = "访客端流量")
+public class VisitorPortFlowRemoveCommand {
+
+
+ /**
+ * 客户端ID
+ */
+ @Schema(description = "客户端ID", name = "clientId", example = "")
+ private String clientId;
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ private LocalDateTime createTime;
+
+ /**
+ * 主键
+ */
+ @Schema(description = "主键", name = "id", example = "")
+ private Long id;
+
+ /**
+ * 当前访客当前进口流量
+ */
+ @Schema(description = "当前访客当前进口流量", name = "inFlow", example = "")
+ private Integer inFlow;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ private Boolean isDeleted;
+
+ /**
+ * 当前访客出口流量
+ */
+ @Schema(description = "当前访客出口流量", name = "outFlow", example = "")
+ private Integer outFlow;
+
+ /**
+ * 修改时间
+ */
+ @Schema(description = "修改时间", name = "updateTime", example = "")
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ private Integer visitorPort;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/visitor/flow/VisitorPortFlowStoryCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/visitor/flow/VisitorPortFlowStoryCommand.java
new file mode 100644
index 0000000..befd7c8
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/visitor/flow/VisitorPortFlowStoryCommand.java
@@ -0,0 +1,70 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyStoryCommand
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "visitor_port_flow_story_command", description = "访客端流量")
+public class VisitorPortFlowStoryCommand {
+
+
+ /**
+ * 客户端ID
+ */
+ @Schema(description = "客户端ID", name = "clientId", example = "")
+ private String clientId;
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ private LocalDateTime createTime;
+
+ /**
+ * 主键
+ */
+ @Schema(description = "主键", name = "id", example = "")
+ private Long id;
+
+ /**
+ * 当前访客当前进口流量
+ */
+ @Schema(description = "当前访客当前进口流量", name = "inFlow", example = "")
+ private Integer inFlow;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ private Boolean isDeleted;
+
+ /**
+ * 当前访客出口流量
+ */
+ @Schema(description = "当前访客出口流量", name = "outFlow", example = "")
+ private Integer outFlow;
+
+ /**
+ * 修改时间
+ */
+ @Schema(description = "修改时间", name = "updateTime", example = "")
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ private Integer visitorPort;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/visitor/flow/VisitorPortFlowUpdateCommand.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/visitor/flow/VisitorPortFlowUpdateCommand.java
new file mode 100644
index 0000000..6f5adb9
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/command/visitor/flow/VisitorPortFlowUpdateCommand.java
@@ -0,0 +1,70 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyUpdateCommand
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "visitor_port_flow_update_command", description = "访客端流量")
+public class VisitorPortFlowUpdateCommand {
+
+
+ /**
+ * 客户端ID
+ */
+ @Schema(description = "客户端ID", name = "clientId", example = "")
+ private String clientId;
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ private LocalDateTime createTime;
+
+ /**
+ * 主键
+ */
+ @Schema(description = "主键", name = "id", example = "")
+ private Long id;
+
+ /**
+ * 当前访客当前进口流量
+ */
+ @Schema(description = "当前访客当前进口流量", name = "inFlow", example = "")
+ private Integer inFlow;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ private Boolean isDeleted;
+
+ /**
+ * 当前访客出口流量
+ */
+ @Schema(description = "当前访客出口流量", name = "outFlow", example = "")
+ private Integer outFlow;
+
+ /**
+ * 修改时间
+ */
+ @Schema(description = "修改时间", name = "updateTime", example = "")
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ private Integer visitorPort;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/ClientChannelDTO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/ClientChannelDTO.java
index 2bf4b3e..f9dd4ca 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/ClientChannelDTO.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/ClientChannelDTO.java
@@ -5,7 +5,6 @@ import io.netty.channel.ChannelId;
import lombok.Data;
-
/**
* 客户端通道
*/
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/InternalNetworkPenetrationMappingDTO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/InternalNetworkPenetrationMappingDTO.java
index 1497baa..248a88c 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/InternalNetworkPenetrationMappingDTO.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/InternalNetworkPenetrationMappingDTO.java
@@ -1,82 +1,77 @@
package wu.framework.lazy.cloud.heartbeat.server.application.dto;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
+
/**
- * describe 内网穿透映射
+ * describe 内网穿透映射
*
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDTO
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDTO
**/
@Data
@Accessors(chain = true)
-@Schema(title = "internal_network_penetration_mapping_command_dto",description = "内网穿透映射")
+@Schema(title = "internal_network_penetration_mapping_command_dto", description = "内网穿透映射")
public class InternalNetworkPenetrationMappingDTO {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 客户端目标地址
*/
- @Schema(description ="客户端目标地址",name ="clientTargetIp",example = "")
+ @Schema(description = "客户端目标地址", name = "clientTargetIp", example = "")
private String clientTargetIp;
/**
- *
* 客户端目标端口
*/
- @Schema(description ="客户端目标端口",name ="clientTargetPort",example = "")
+ @Schema(description = "客户端目标端口", name = "clientTargetPort", example = "")
private Integer clientTargetPort;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键自增
*/
- @Schema(description ="主键自增",name ="id",example = "")
+ @Schema(description = "主键自增", name = "id", example = "")
private Long id;
/**
- *
* 是否删除 默认否
*/
- @Schema(description ="是否删除 默认否",name ="isDeleted",example = "")
+ @Schema(description = "是否删除 默认否", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 修改时间
*/
- @Schema(description ="修改时间",name ="updateTime",example = "")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @Schema(description = "修改时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
/**
- *
* 访问端口
*/
- @Schema(description ="访问端口",name ="visitorPort",example = "")
+ @Schema(description = "访问端口", name = "visitorPort", example = "")
private Integer visitorPort;
/**
- *
* 描述
*/
- @Schema(description ="描述",name ="describe",example = "")
+ @Schema(description = "描述", name = "describe", example = "")
private String describe;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/NettyClientBlacklistDTO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/NettyClientBlacklistDTO.java
index 3ccfc0e..5a86811 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/NettyClientBlacklistDTO.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/NettyClientBlacklistDTO.java
@@ -5,52 +5,48 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
+
/**
- * describe 客户端黑名单
+ * describe 客户端黑名单
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDTO
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDTO
**/
@Data
@Accessors(chain = true)
-@Schema(title = "netty_client_blacklist_command_dto",description = "客户端黑名单")
+@Schema(title = "netty_client_blacklist_command_dto", description = "客户端黑名单")
public class NettyClientBlacklistDTO {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键
*/
- @Schema(description ="主键",name ="id",example = "")
+ @Schema(description = "主键", name = "id", example = "")
private Long id;
/**
- *
* 是否删除
*/
- @Schema(description ="是否删除",name ="isDeleted",example = "")
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 更新时间
*/
- @Schema(description ="更新时间",name ="updateTime",example = "")
+ @Schema(description = "更新时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/NettyClientStateDTO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/NettyClientStateDTO.java
index 1832491..cf31023 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/NettyClientStateDTO.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/NettyClientStateDTO.java
@@ -1,71 +1,71 @@
package wu.framework.lazy.cloud.heartbeat.server.application.dto;
-import wu.framework.lazy.cloud.heartbeat.common.enums.NettyClientStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
+import wu.framework.lazy.cloud.heartbeat.common.enums.NettyClientStatus;
import java.time.LocalDateTime;
+
/**
- * describe 客户端状态
+ * describe 客户端状态
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDTO
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDTO
**/
@Data
@Accessors(chain = true)
-@Schema(title = "netty_client_state_command_dto",description = "客户端状态")
+@Schema(title = "netty_client_state_command_dto", description = "客户端状态")
public class NettyClientStateDTO {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
private String clientId;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
private LocalDateTime createTime;
/**
- *
* 主键
*/
- @Schema(description ="主键",name ="id",example = "")
+ @Schema(description = "主键", name = "id", example = "")
private Long id;
/**
- *
* 是否删除
*/
- @Schema(description ="是否删除",name ="isDeleted",example = "")
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
private Boolean isDeleted;
/**
- *
* 在线状态(true在线,false离线)
*/
- @Schema(description ="在线状态(true在线,false离线)",name ="onLineState",example = "")
+ @Schema(description = "在线状态(true在线,false离线)", name = "onLineState", example = "")
private NettyClientStatus onLineState;
/**
- *
* 暂存状态(开启、关闭)
*/
- @Schema(description ="暂存状态(开启、关闭)",name ="staging",example = "")
+ @Schema(description = "暂存状态(开启、关闭)", name = "staging", example = "")
private String stagingState;
/**
- *
* 修改时间
*/
- @Schema(description ="修改时间",name ="updateTime",example = "")
+ @Schema(description = "修改时间", name = "updateTime", example = "")
private LocalDateTime updateTime;
+ /**
+ * 描述
+ */
+ @Schema(description = "描述", name = "describe", example = "")
+ private String describe;
+
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/NettyServerVisitorDTO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/NettyServerVisitorDTO.java
new file mode 100644
index 0000000..ecbe305
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/NettyServerVisitorDTO.java
@@ -0,0 +1,58 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDTO
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "netty_server_visitor_command_dto", description = "服务端提前开放出来的端口")
+public class NettyServerVisitorDTO {
+
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ private LocalDateTime createTime;
+
+ /**
+ * 描述
+ */
+ @Schema(description = "描述", name = "describe", example = "")
+ private String describe;
+
+ /**
+ * 用户ID
+ */
+ @Schema(description = "用户ID", name = "id", example = "")
+ private Long id;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ private Boolean isDeleted;
+
+ /**
+ * 更新时间
+ */
+ @Schema(description = "更新时间", name = "updateTime", example = "")
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ private Integer visitorPort;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/VisitorFlowDTO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/VisitorFlowDTO.java
new file mode 100644
index 0000000..84d9551
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/VisitorFlowDTO.java
@@ -0,0 +1,75 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.dto;
+
+import com.wu.framework.inner.layer.util.ByteSizeUtil;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDTO
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "visitor_port_flow_command_dto", description = "访客端流量")
+public class VisitorFlowDTO {
+
+
+ /**
+ * 客户端ID
+ */
+ @Schema(description = "客户端ID", name = "clientId", example = "")
+ private String clientId;
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ private LocalDateTime createTime;
+
+ /**
+ * 主键
+ */
+ @Schema(description = "主键", name = "id", example = "")
+ private Long id;
+
+ /**
+ * 当前访客当前进口流量
+ */
+ @Schema(description = "当前访客当前进口流量", name = "inFlow", example = "")
+ private Integer inFlow;
+
+
+ /**
+ * 当前访客出口流量
+ */
+ @Schema(description = "当前访客出口流量", name = "outFlow", example = "")
+ private Integer outFlow;
+
+ /**
+ * 修改时间
+ */
+ @Schema(description = "修改时间", name = "updateTime", example = "")
+ private LocalDateTime updateTime;
+
+ /**
+ * 当前访客下所有端口的流量
+ */
+ @Schema(description = "当前访客下所有端口的流量")
+ private List visitorPortFlowDTOList;
+
+
+ public String getInFlow() {
+ return ByteSizeUtil.convertSize(inFlow);
+ }
+
+ public String getOutFlow() {
+ return ByteSizeUtil.convertSize(outFlow);
+ }
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/VisitorPortFlowDTO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/VisitorPortFlowDTO.java
new file mode 100644
index 0000000..a74869d
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/dto/VisitorPortFlowDTO.java
@@ -0,0 +1,91 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.dto;
+
+import com.wu.framework.inner.layer.util.ByteSizeUtil;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDTO
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "visitor_port_flow_command_dto", description = "访客端流量")
+public class VisitorPortFlowDTO {
+
+
+ /**
+ * 客户端ID
+ */
+ @Schema(description = "客户端ID", name = "clientId", example = "")
+ private String clientId;
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ private LocalDateTime createTime;
+
+ /**
+ * 主键
+ */
+ @Schema(description = "主键", name = "id", example = "")
+ private Long id;
+
+ /**
+ * 当前访客当前进口流量
+ */
+ @Schema(description = "当前访客当前进口流量", name = "inFlow", example = "")
+ private Integer inFlow;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ private Boolean isDeleted;
+
+ /**
+ * 当前访客出口流量
+ */
+ @Schema(description = "当前访客出口流量", name = "outFlow", example = "")
+ private Integer outFlow;
+
+ /**
+ * 修改时间
+ */
+ @Schema(description = "修改时间", name = "updateTime", example = "")
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ private Integer visitorPort;
+
+ public Integer getInFlowSize() {
+ if (inFlow == null) return 0;
+ return inFlow;
+ }
+
+ public Integer getOutFlowSize() {
+ if (outFlow == null) return 0;
+ return outFlow;
+ }
+
+ public String getInFlow() {
+ if (inFlow == null) return "0b";
+ return ByteSizeUtil.convertSize(inFlow);
+ }
+
+ public String getOutFlow() {
+ if (outFlow == null) return "0b";
+ return ByteSizeUtil.convertSize(outFlow);
+ }
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/InternalNetworkPenetrationMappingApplicationImpl.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/InternalNetworkPenetrationMappingApplicationImpl.java
index cceb9e0..3d3aaec 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/InternalNetworkPenetrationMappingApplicationImpl.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/InternalNetworkPenetrationMappingApplicationImpl.java
@@ -1,19 +1,18 @@
package wu.framework.lazy.cloud.heartbeat.server.application.impl;
-import wu.framework.lazy.cloud.heartbeat.common.InternalNetworkPenetrationRealClient;
-import wu.framework.lazy.cloud.heartbeat.server.application.InternalNetworkPenetrationMappingApplication;
-import wu.framework.lazy.cloud.heartbeat.server.application.assembler.InternalNetworkPenetrationMappingDTOAssembler;
-import wu.framework.lazy.cloud.heartbeat.server.application.command.internal.network.penetration.mapping.*;
-import wu.framework.lazy.cloud.heartbeat.server.application.dto.InternalNetworkPenetrationMappingDTO;
-import wu.framework.lazy.cloud.heartbeat.server.model.internal.network.penetration.mapping.InternalNetworkPenetrationMapping;
-import wu.framework.lazy.cloud.heartbeat.server.model.internal.network.penetration.mapping.InternalNetworkPenetrationMappingRepository;
-
import com.wu.framework.database.lazy.web.plus.stereotype.LazyApplication;
import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
import com.wu.framework.response.Result;
import com.wu.framework.response.ResultFactory;
import jakarta.annotation.Resource;
-import wu.framework.lazy.cloud.heartbeat.server.netty.filter.VisitorFilter;
+import lombok.extern.slf4j.Slf4j;
+import wu.framework.lazy.cloud.heartbeat.common.adapter.ChannelFlowAdapter;
+import wu.framework.lazy.cloud.heartbeat.server.application.InternalNetworkPenetrationMappingApplication;
+import wu.framework.lazy.cloud.heartbeat.server.application.assembler.InternalNetworkPenetrationMappingDTOAssembler;
+import wu.framework.lazy.cloud.heartbeat.server.application.command.internal.network.penetration.mapping.*;
+import wu.framework.lazy.cloud.heartbeat.server.application.dto.InternalNetworkPenetrationMappingDTO;
+import wu.framework.lazy.cloud.heartbeat.server.model.internal.network.penetration.mapping.InternalNetworkPenetrationMapping;
+import wu.framework.lazy.cloud.heartbeat.server.model.internal.network.penetration.mapping.InternalNetworkPenetrationMappingRepository;
import wu.framework.lazy.cloud.heartbeat.server.netty.socket.NettyVisitorSocket;
import java.util.List;
@@ -26,12 +25,16 @@ import java.util.stream.Collectors;
* @date 2023/12/29 05:21 下午
* @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplicationImpl
**/
+@Slf4j
@LazyApplication
public class InternalNetworkPenetrationMappingApplicationImpl implements InternalNetworkPenetrationMappingApplication {
@Resource
InternalNetworkPenetrationMappingRepository internalNetworkPenetrationMappingRepository;
+ @Resource
+ ChannelFlowAdapter channelFlowAdapter;
+
/**
* describe 新增内网穿透映射
@@ -45,6 +48,7 @@ public class InternalNetworkPenetrationMappingApplicationImpl implements Interna
@Override
public Result story(InternalNetworkPenetrationMappingStoryCommand internalNetworkPenetrationMappingStoryCommand) {
InternalNetworkPenetrationMapping internalNetworkPenetrationMapping = InternalNetworkPenetrationMappingDTOAssembler.INSTANCE.toInternalNetworkPenetrationMapping(internalNetworkPenetrationMappingStoryCommand);
+ internalNetworkPenetrationMapping.setIsDeleted(false);
return internalNetworkPenetrationMappingRepository.story(internalNetworkPenetrationMapping);
}
@@ -157,27 +161,29 @@ public class InternalNetworkPenetrationMappingApplicationImpl implements Interna
String clientTargetIp = networkPenetrationMapping.getClientTargetIp();
Integer clientTargetPort = networkPenetrationMapping.getClientTargetPort();
- InternalNetworkPenetrationRealClient internalNetworkPenetrationRealClient = new InternalNetworkPenetrationRealClient();
- internalNetworkPenetrationRealClient.setClientTargetIp(clientTargetIp);
- internalNetworkPenetrationRealClient.setClientTargetPort(clientTargetPort);
- internalNetworkPenetrationRealClient.setClientId(clientId);
- internalNetworkPenetrationRealClient.setVisitorPort(visitorPort);
+// InternalNetworkPenetrationRealClient internalNetworkPenetrationRealClient = new InternalNetworkPenetrationRealClient();
+// internalNetworkPenetrationRealClient.setClientTargetIp(clientTargetIp);
+// internalNetworkPenetrationRealClient.setClientTargetPort(clientTargetPort);
+// internalNetworkPenetrationRealClient.setClientId(clientId);
+// internalNetworkPenetrationRealClient.setVisitorPort(visitorPort);
// 创建服务端代理连接
- VisitorFilter visitorFilter = new VisitorFilter(internalNetworkPenetrationRealClient);
- NettyVisitorSocket nettyVisitorSocket = new NettyVisitorSocket(visitorFilter);
-
- Thread thread = new Thread(() -> {
- try {
- nettyVisitorSocket.startServer(visitorPort);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
-
- });
- // 使用线程池 TODO
- thread.run();
+// VisitorFilter visitorFilter = new VisitorFilter(internalNetworkPenetrationRealClient);
+// NettyVisitorSocket nettyVisitorSocket = new NettyVisitorSocket(visitorFilter);
+ NettyVisitorSocket nettyVisitorSocket = NettyVisitorSocket.NettyVisitorSocketBuilder
+ .builder()
+ .builderClientId(clientId)
+ .builderClientTargetIp(clientTargetIp)
+ .builderClientTargetPort(clientTargetPort)
+ .builderVisitorPort(visitorPort)
+ .builderChannelFlowAdapter(channelFlowAdapter)
+ .build();
+ try {
+ nettyVisitorSocket.startServer();
+ } catch (Exception e) {
+ log.error("客户端:{},网络端口:{},开放失败", clientId, visitorPort);
+ }
// 发送客户端代理连接请求 客户端创建代理连接
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/NettyClientBlacklistApplicationImpl.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/NettyClientBlacklistApplicationImpl.java
index fd80dcc..8f6602d 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/NettyClientBlacklistApplicationImpl.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/NettyClientBlacklistApplicationImpl.java
@@ -1,6 +1,10 @@
package wu.framework.lazy.cloud.heartbeat.server.application.impl;
import com.wu.framework.database.lazy.web.plus.stereotype.LazyApplication;
+import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
+import com.wu.framework.response.Result;
+import io.netty.channel.Channel;
+import jakarta.annotation.Resource;
import wu.framework.lazy.cloud.heartbeat.common.ChannelContext;
import wu.framework.lazy.cloud.heartbeat.common.MessageType;
import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
@@ -10,32 +14,29 @@ import wu.framework.lazy.cloud.heartbeat.server.application.command.netty.client
import wu.framework.lazy.cloud.heartbeat.server.application.dto.NettyClientBlacklistDTO;
import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.blacklist.NettyClientBlacklist;
import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.blacklist.NettyClientBlacklistRepository;
-import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
-import com.wu.framework.response.Result;
-import io.netty.channel.Channel;
-import jakarta.annotation.Resource;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.stream.Collectors;
+
/**
- * describe 客户端黑名单
+ * describe 客户端黑名单
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplicationImpl
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplicationImpl
**/
@LazyApplication
public class NettyClientBlacklistApplicationImpl implements NettyClientBlacklistApplication {
@Resource
NettyClientBlacklistRepository nettyClientBlacklistRepository;
+
/**
* describe 新增客户端黑名单
*
- * @param nettyClientBlacklistStoryCommand 新增客户端黑名单
- * @return {@link Result} 客户端黑名单新增后领域对象
-
+ * @param nettyClientBlacklistStoryCommand 新增客户端黑名单
+ * @return {@link Result} 客户端黑名单新增后领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -48,7 +49,7 @@ public class NettyClientBlacklistApplicationImpl implements NettyClientBlacklist
// 获取客户端channel 发送下下通知
String clientId = nettyClientBlacklist.getClientId();
ChannelContext.ClientChannel clientChannel = ChannelContext.get(clientId.getBytes(StandardCharsets.UTF_8));
- if(null!=clientChannel){
+ if (null != clientChannel) {
// 模拟客户端发送下线通知
Channel channel = clientChannel.getChannel();
NettyProxyMsg nettyMsg = new NettyProxyMsg();
@@ -60,27 +61,27 @@ public class NettyClientBlacklistApplicationImpl implements NettyClientBlacklist
return story;
}
+
/**
* describe 批量新增客户端黑名单
*
- * @param nettyClientBlacklistStoryCommandList 批量新增客户端黑名单
- * @return {@link Result>} 客户端黑名单新增后领域对象集合
-
+ * @param nettyClientBlacklistStoryCommandList 批量新增客户端黑名单
+ * @return {@link Result>} 客户端黑名单新增后领域对象集合
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@Override
public Result> batchStory(List nettyClientBlacklistStoryCommandList) {
- List nettyClientBlacklistList = nettyClientBlacklistStoryCommandList.stream().map( NettyClientBlacklistDTOAssembler.INSTANCE::toNettyClientBlacklist).collect(Collectors.toList());
+ List nettyClientBlacklistList = nettyClientBlacklistStoryCommandList.stream().map(NettyClientBlacklistDTOAssembler.INSTANCE::toNettyClientBlacklist).collect(Collectors.toList());
return nettyClientBlacklistRepository.batchStory(nettyClientBlacklistList);
}
+
/**
* describe 更新客户端黑名单
*
- * @param nettyClientBlacklistUpdateCommand 更新客户端黑名单
- * @return {@link Result} 客户端黑名单领域对象
-
+ * @param nettyClientBlacklistUpdateCommand 更新客户端黑名单
+ * @return {@link Result} 客户端黑名单领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -94,9 +95,8 @@ public class NettyClientBlacklistApplicationImpl implements NettyClientBlacklist
/**
* describe 查询单个客户端黑名单
*
- * @param nettyClientBlacklistQueryOneCommand 查询单个客户端黑名单
- * @return {@link Result} 客户端黑名单DTO对象
-
+ * @param nettyClientBlacklistQueryOneCommand 查询单个客户端黑名单
+ * @return {@link Result} 客户端黑名单DTO对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -110,9 +110,8 @@ public class NettyClientBlacklistApplicationImpl implements NettyClientBlacklist
/**
* describe 查询多个客户端黑名单
*
- * @param nettyClientBlacklistQueryListCommand 查询多个客户端黑名单
- * @return {@link Result>} 客户端黑名单DTO对象
-
+ * @param nettyClientBlacklistQueryListCommand 查询多个客户端黑名单
+ * @return {@link Result>} 客户端黑名单DTO对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -120,39 +119,37 @@ public class NettyClientBlacklistApplicationImpl implements NettyClientBlacklist
@Override
public Result> findList(NettyClientBlacklistQueryListCommand nettyClientBlacklistQueryListCommand) {
NettyClientBlacklist nettyClientBlacklist = NettyClientBlacklistDTOAssembler.INSTANCE.toNettyClientBlacklist(nettyClientBlacklistQueryListCommand);
- return nettyClientBlacklistRepository.findList(nettyClientBlacklist) .convert(nettyClientBlacklists -> nettyClientBlacklists.stream().map(NettyClientBlacklistDTOAssembler.INSTANCE::fromNettyClientBlacklist).collect(Collectors.toList())) ;
+ return nettyClientBlacklistRepository.findList(nettyClientBlacklist).convert(nettyClientBlacklists -> nettyClientBlacklists.stream().map(NettyClientBlacklistDTOAssembler.INSTANCE::fromNettyClientBlacklist).collect(Collectors.toList()));
}
/**
* describe 分页查询多个客户端黑名单
*
- * @param nettyClientBlacklistQueryListCommand 分页查询多个客户端黑名单
- * @return {@link Result>} 分页客户端黑名单DTO对象
-
+ * @param nettyClientBlacklistQueryListCommand 分页查询多个客户端黑名单
+ * @return {@link Result>} 分页客户端黑名单DTO对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@Override
- public Result> findPage(int size,int current,NettyClientBlacklistQueryListCommand nettyClientBlacklistQueryListCommand) {
+ public Result> findPage(int size, int current, NettyClientBlacklistQueryListCommand nettyClientBlacklistQueryListCommand) {
NettyClientBlacklist nettyClientBlacklist = NettyClientBlacklistDTOAssembler.INSTANCE.toNettyClientBlacklist(nettyClientBlacklistQueryListCommand);
- return nettyClientBlacklistRepository.findPage(size,current,nettyClientBlacklist) .convert(page -> page.convert(NettyClientBlacklistDTOAssembler.INSTANCE::fromNettyClientBlacklist)) ;
+ return nettyClientBlacklistRepository.findPage(size, current, nettyClientBlacklist).convert(page -> page.convert(NettyClientBlacklistDTOAssembler.INSTANCE::fromNettyClientBlacklist));
}
/**
* describe 删除客户端黑名单
*
- * @param nettyClientBlacklistRemoveCommand 删除客户端黑名单
- * @return {@link Result} 客户端黑名单
-
+ * @param nettyClientBlacklistRemoveCommand 删除客户端黑名单
+ * @return {@link Result} 客户端黑名单
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@Override
public Result remove(NettyClientBlacklistRemoveCommand nettyClientBlacklistRemoveCommand) {
- NettyClientBlacklist nettyClientBlacklist = NettyClientBlacklistDTOAssembler.INSTANCE.toNettyClientBlacklist(nettyClientBlacklistRemoveCommand);
- return nettyClientBlacklistRepository.remove(nettyClientBlacklist);
+ NettyClientBlacklist nettyClientBlacklist = NettyClientBlacklistDTOAssembler.INSTANCE.toNettyClientBlacklist(nettyClientBlacklistRemoveCommand);
+ return nettyClientBlacklistRepository.remove(nettyClientBlacklist);
}
/**
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/NettyClientStateApplicationImpl.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/NettyClientStateApplicationImpl.java
index 9a9d8e2..607e77a 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/NettyClientStateApplicationImpl.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/NettyClientStateApplicationImpl.java
@@ -1,39 +1,48 @@
package wu.framework.lazy.cloud.heartbeat.server.application.impl;
-
+import com.wu.framework.database.lazy.web.plus.stereotype.LazyApplication;
+import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
+import com.wu.framework.response.Result;
+import com.wu.framework.response.ResultFactory;
+import io.netty.channel.Channel;
+import jakarta.annotation.Resource;
+import org.springframework.util.ObjectUtils;
+import wu.framework.lazy.cloud.heartbeat.common.ChannelContext;
+import wu.framework.lazy.cloud.heartbeat.common.MessageType;
+import wu.framework.lazy.cloud.heartbeat.common.NettyClientVisitorContext;
+import wu.framework.lazy.cloud.heartbeat.common.NettyProxyMsg;
import wu.framework.lazy.cloud.heartbeat.server.application.NettyClientStateApplication;
import wu.framework.lazy.cloud.heartbeat.server.application.assembler.NettyClientStateDTOAssembler;
-import wu.framework.lazy.cloud.heartbeat.server.application.command.netty.client.state.NettyClientStateStoryCommand;
import wu.framework.lazy.cloud.heartbeat.server.application.command.netty.client.state.*;
import wu.framework.lazy.cloud.heartbeat.server.application.dto.NettyClientStateDTO;
import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.state.NettyClientState;
import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.state.NettyClientStateRepository;
-import com.wu.framework.database.lazy.web.plus.stereotype.LazyApplication;
-import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
-import com.wu.framework.response.Result;
-import jakarta.annotation.Resource;
+import wu.framework.lazy.cloud.heartbeat.server.netty.socket.NettyVisitorSocket;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.stream.Collectors;
+
/**
- * describe 客户端状态
+ * describe 客户端状态
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplicationImpl
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplicationImpl
**/
@LazyApplication
public class NettyClientStateApplicationImpl implements NettyClientStateApplication {
@Resource
NettyClientStateRepository nettyClientStateRepository;
+
/**
* describe 新增客户端状态
*
- * @param nettyClientStateStoryCommand 新增客户端状态
- * @return {@link Result} 客户端状态新增后领域对象
-
+ * @param nettyClientStateStoryCommand 新增客户端状态
+ * @return {@link Result} 客户端状态新增后领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -43,27 +52,27 @@ public class NettyClientStateApplicationImpl implements NettyClientStateApplicat
NettyClientState nettyClientState = NettyClientStateDTOAssembler.INSTANCE.toNettyClientState(nettyClientStateStoryCommand);
return nettyClientStateRepository.story(nettyClientState);
}
+
/**
* describe 批量新增客户端状态
*
- * @param nettyClientStateStoryCommandList 批量新增客户端状态
- * @return {@link Result>} 客户端状态新增后领域对象集合
-
+ * @param nettyClientStateStoryCommandList 批量新增客户端状态
+ * @return {@link Result>} 客户端状态新增后领域对象集合
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@Override
public Result> batchStory(List nettyClientStateStoryCommandList) {
- List nettyClientStateList = nettyClientStateStoryCommandList.stream().map( NettyClientStateDTOAssembler.INSTANCE::toNettyClientState).collect(Collectors.toList());
+ List nettyClientStateList = nettyClientStateStoryCommandList.stream().map(NettyClientStateDTOAssembler.INSTANCE::toNettyClientState).collect(Collectors.toList());
return nettyClientStateRepository.batchStory(nettyClientStateList);
}
+
/**
* describe 更新客户端状态
*
- * @param nettyClientStateUpdateCommand 更新客户端状态
- * @return {@link Result} 客户端状态领域对象
-
+ * @param nettyClientStateUpdateCommand 更新客户端状态
+ * @return {@link Result} 客户端状态领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -77,9 +86,8 @@ public class NettyClientStateApplicationImpl implements NettyClientStateApplicat
/**
* describe 查询单个客户端状态
*
- * @param nettyClientStateQueryOneCommand 查询单个客户端状态
- * @return {@link Result} 客户端状态DTO对象
-
+ * @param nettyClientStateQueryOneCommand 查询单个客户端状态
+ * @return {@link Result} 客户端状态DTO对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -93,9 +101,8 @@ public class NettyClientStateApplicationImpl implements NettyClientStateApplicat
/**
* describe 查询多个客户端状态
*
- * @param nettyClientStateQueryListCommand 查询多个客户端状态
- * @return {@link Result>} 客户端状态DTO对象
-
+ * @param nettyClientStateQueryListCommand 查询多个客户端状态
+ * @return {@link Result>} 客户端状态DTO对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@@ -103,39 +110,76 @@ public class NettyClientStateApplicationImpl implements NettyClientStateApplicat
@Override
public Result> findList(NettyClientStateQueryListCommand nettyClientStateQueryListCommand) {
NettyClientState nettyClientState = NettyClientStateDTOAssembler.INSTANCE.toNettyClientState(nettyClientStateQueryListCommand);
- return nettyClientStateRepository.findList(nettyClientState) .convert(nettyClientStates -> nettyClientStates.stream().map(NettyClientStateDTOAssembler.INSTANCE::fromNettyClientState).collect(Collectors.toList())) ;
+ return nettyClientStateRepository.findList(nettyClientState).convert(nettyClientStates -> nettyClientStates.stream().map(NettyClientStateDTOAssembler.INSTANCE::fromNettyClientState).collect(Collectors.toList()));
}
/**
* describe 分页查询多个客户端状态
*
- * @param nettyClientStateQueryListCommand 分页查询多个客户端状态
- * @return {@link Result>} 分页客户端状态DTO对象
-
+ * @param nettyClientStateQueryListCommand 分页查询多个客户端状态
+ * @return {@link Result>} 分页客户端状态DTO对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@Override
- public Result> findPage(int size,int current,NettyClientStateQueryListCommand nettyClientStateQueryListCommand) {
+ public Result> findPage(int size, int current, NettyClientStateQueryListCommand nettyClientStateQueryListCommand) {
NettyClientState nettyClientState = NettyClientStateDTOAssembler.INSTANCE.toNettyClientState(nettyClientStateQueryListCommand);
- return nettyClientStateRepository.findPage(size,current,nettyClientState) .convert(page -> page.convert(NettyClientStateDTOAssembler.INSTANCE::fromNettyClientState)) ;
+ return nettyClientStateRepository.findPage(size, current, nettyClientState).convert(page -> page.convert(NettyClientStateDTOAssembler.INSTANCE::fromNettyClientState));
}
/**
* describe 删除客户端状态
*
- * @param nettyClientStateRemoveCommand 删除客户端状态
- * @return {@link Result} 客户端状态
-
+ * @param nettyClientStateRemoveCommand 删除客户端状态
+ * @return {@link Result} 客户端状态
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@Override
public Result remove(NettyClientStateRemoveCommand nettyClientStateRemoveCommand) {
- NettyClientState nettyClientState = NettyClientStateDTOAssembler.INSTANCE.toNettyClientState(nettyClientStateRemoveCommand);
- return nettyClientStateRepository.remove(nettyClientState);
+ NettyClientState nettyClientState = NettyClientStateDTOAssembler.INSTANCE.toNettyClientState(nettyClientStateRemoveCommand);
+ // 获取当前客户端通道 而后关闭
+ String clientId = nettyClientStateRemoveCommand.getClientId();
+ // 心跳关闭
+ ChannelContext.clear(clientId);
+ // 关闭访客
+ List nettyVisitorSocketList = NettyClientVisitorContext.getVisitorSockets(clientId);
+ if(ObjectUtils.isEmpty(nettyVisitorSocketList)){
+ for (NettyVisitorSocket nettyVisitorSocket : nettyVisitorSocketList) {
+ try {
+ nettyVisitorSocket.close();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+ return nettyClientStateRepository.remove(nettyClientState);
}
+ /**
+ * 通过客户端心跳通道发送客户端请求
+ *
+ * @param nettyClientMessageCommand 发送请求到客户端
+ * @return {@link Result}
+ */
+ @Override
+ public Result sendMessage2HeartbeatClient(NettyClientMessageCommand nettyClientMessageCommand) {
+ // 获取客户端ID
+ String clientId = nettyClientMessageCommand.getClientId();
+ String message = nettyClientMessageCommand.getMessage();
+ ChannelContext.ClientChannel clientChannel = ChannelContext.get(clientId);
+ if (clientChannel == null) {
+ return ResultFactory.errorOf("客户端:" + clientId + "不存在");
+ }
+ // 发送消息到客户端
+ Channel channel = clientChannel.getChannel();
+ NettyProxyMsg nettyProxyMsg = new NettyProxyMsg();
+ nettyProxyMsg.setClientId("服务端");
+ nettyProxyMsg.setData(message.getBytes(StandardCharsets.UTF_8));
+ nettyProxyMsg.setType(MessageType.DISTRIBUTE_SINGLE_CLIENT_MESSAGE);
+ channel.writeAndFlush(nettyProxyMsg);
+ return ResultFactory.successOf();
+ }
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/NettyServerVisitorApplicationImpl.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/NettyServerVisitorApplicationImpl.java
new file mode 100644
index 0000000..37fdf43
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/NettyServerVisitorApplicationImpl.java
@@ -0,0 +1,135 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.impl;
+
+import com.wu.framework.database.lazy.web.plus.stereotype.LazyApplication;
+import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
+import com.wu.framework.response.Result;
+import jakarta.annotation.Resource;
+import wu.framework.lazy.cloud.heartbeat.server.application.NettyServerVisitorApplication;
+import wu.framework.lazy.cloud.heartbeat.server.application.assembler.NettyServerVisitorDTOAssembler;
+import wu.framework.lazy.cloud.heartbeat.server.application.command.netty.server.visitor.*;
+import wu.framework.lazy.cloud.heartbeat.server.application.dto.NettyServerVisitorDTO;
+import wu.framework.lazy.cloud.heartbeat.server.domain.model.netty.server.visitor.NettyServerVisitor;
+import wu.framework.lazy.cloud.heartbeat.server.domain.model.netty.server.visitor.NettyServerVisitorRepository;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplicationImpl
+ **/
+@LazyApplication
+public class NettyServerVisitorApplicationImpl implements NettyServerVisitorApplication {
+
+ @Resource
+ NettyServerVisitorRepository nettyServerVisitorRepository;
+
+ /**
+ * describe 新增服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorStoryCommand 新增服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口新增后领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ @Override
+ public Result story(NettyServerVisitorStoryCommand nettyServerVisitorStoryCommand) {
+ NettyServerVisitor nettyServerVisitor = NettyServerVisitorDTOAssembler.INSTANCE.toNettyServerVisitor(nettyServerVisitorStoryCommand);
+ return nettyServerVisitorRepository.story(nettyServerVisitor);
+ }
+
+ /**
+ * describe 批量新增服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorStoryCommandList 批量新增服务端提前开放出来的端口
+ * @return {@link Result>} 服务端提前开放出来的端口新增后领域对象集合
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ @Override
+ public Result> batchStory(List nettyServerVisitorStoryCommandList) {
+ List nettyServerVisitorList = nettyServerVisitorStoryCommandList.stream().map(NettyServerVisitorDTOAssembler.INSTANCE::toNettyServerVisitor).collect(Collectors.toList());
+ return nettyServerVisitorRepository.batchStory(nettyServerVisitorList);
+ }
+
+ /**
+ * describe 更新服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorUpdateCommand 更新服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ @Override
+ public Result updateOne(NettyServerVisitorUpdateCommand nettyServerVisitorUpdateCommand) {
+ NettyServerVisitor nettyServerVisitor = NettyServerVisitorDTOAssembler.INSTANCE.toNettyServerVisitor(nettyServerVisitorUpdateCommand);
+ return nettyServerVisitorRepository.story(nettyServerVisitor);
+ }
+
+ /**
+ * describe 查询单个服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorQueryOneCommand 查询单个服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ @Override
+ public Result findOne(NettyServerVisitorQueryOneCommand nettyServerVisitorQueryOneCommand) {
+ NettyServerVisitor nettyServerVisitor = NettyServerVisitorDTOAssembler.INSTANCE.toNettyServerVisitor(nettyServerVisitorQueryOneCommand);
+ return nettyServerVisitorRepository.findOne(nettyServerVisitor).convert(NettyServerVisitorDTOAssembler.INSTANCE::fromNettyServerVisitor);
+ }
+
+ /**
+ * describe 查询多个服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorQueryListCommand 查询多个服务端提前开放出来的端口
+ * @return {@link Result>} 服务端提前开放出来的端口DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ @Override
+ public Result> findList(NettyServerVisitorQueryListCommand nettyServerVisitorQueryListCommand) {
+ NettyServerVisitor nettyServerVisitor = NettyServerVisitorDTOAssembler.INSTANCE.toNettyServerVisitor(nettyServerVisitorQueryListCommand);
+ return nettyServerVisitorRepository.findList(nettyServerVisitor).convert(nettyServerVisitors -> nettyServerVisitors.stream().map(NettyServerVisitorDTOAssembler.INSTANCE::fromNettyServerVisitor).collect(Collectors.toList()));
+ }
+
+ /**
+ * describe 分页查询多个服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorQueryListCommand 分页查询多个服务端提前开放出来的端口
+ * @return {@link Result>} 分页服务端提前开放出来的端口DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ @Override
+ public Result> findPage(int size, int current, NettyServerVisitorQueryListCommand nettyServerVisitorQueryListCommand) {
+ NettyServerVisitor nettyServerVisitor = NettyServerVisitorDTOAssembler.INSTANCE.toNettyServerVisitor(nettyServerVisitorQueryListCommand);
+ return nettyServerVisitorRepository.findPage(size, current, nettyServerVisitor).convert(page -> page.convert(NettyServerVisitorDTOAssembler.INSTANCE::fromNettyServerVisitor));
+ }
+
+ /**
+ * describe 删除服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorRemoveCommand 删除服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ @Override
+ public Result remove(NettyServerVisitorRemoveCommand nettyServerVisitorRemoveCommand) {
+ NettyServerVisitor nettyServerVisitor = NettyServerVisitorDTOAssembler.INSTANCE.toNettyServerVisitor(nettyServerVisitorRemoveCommand);
+ return nettyServerVisitorRepository.remove(nettyServerVisitor);
+ }
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/ServerNettyConfigApplicationImpl.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/ServerNettyConfigApplicationImpl.java
index 16e475f..b46f84f 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/ServerNettyConfigApplicationImpl.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/ServerNettyConfigApplicationImpl.java
@@ -2,13 +2,12 @@ package wu.framework.lazy.cloud.heartbeat.server.application.impl;
import com.wu.framework.database.lazy.web.plus.stereotype.LazyApplication;
+import lombok.extern.slf4j.Slf4j;
import wu.framework.lazy.cloud.heartbeat.common.constant.ClientConfigKeyUtils;
import wu.framework.lazy.cloud.heartbeat.common.enums.NettyClientStatus;
-
import wu.framework.lazy.cloud.heartbeat.server.application.ServerNettyConfigApplication;
import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.state.NettyClientState;
import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.state.NettyClientStateRepository;
-import lombok.extern.slf4j.Slf4j;
@Slf4j
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/VisitorPortFlowApplicationImpl.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/VisitorPortFlowApplicationImpl.java
new file mode 100644
index 0000000..fef0c79
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/application/impl/VisitorPortFlowApplicationImpl.java
@@ -0,0 +1,182 @@
+package wu.framework.lazy.cloud.heartbeat.server.application.impl;
+
+import com.wu.framework.database.lazy.web.plus.stereotype.LazyApplication;
+import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
+import com.wu.framework.response.Result;
+import jakarta.annotation.Resource;
+import wu.framework.lazy.cloud.heartbeat.server.application.VisitorPortFlowApplication;
+import wu.framework.lazy.cloud.heartbeat.server.application.assembler.VisitorPortFlowDTOAssembler;
+import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.*;
+import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorFlowDTO;
+import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorPortFlowDTO;
+import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlow;
+import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlowRepository;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyApplicationImpl
+ **/
+@LazyApplication
+public class VisitorPortFlowApplicationImpl implements VisitorPortFlowApplication {
+
+ @Resource
+ VisitorPortFlowRepository visitorPortFlowRepository;
+
+ /**
+ * describe 新增访客端流量
+ *
+ * @param visitorPortFlowStoryCommand 新增访客端流量
+ * @return {@link Result< VisitorPortFlow >} 访客端流量新增后领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ @Override
+ public Result story(VisitorPortFlowStoryCommand visitorPortFlowStoryCommand) {
+ VisitorPortFlow visitorPortFlow = VisitorPortFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorPortFlowStoryCommand);
+ return visitorPortFlowRepository.story(visitorPortFlow);
+ }
+
+ /**
+ * describe 批量新增访客端流量
+ *
+ * @param visitorPortFlowStoryCommandList 批量新增访客端流量
+ * @return {@link Result>} 访客端流量新增后领域对象集合
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ @Override
+ public Result> batchStory(List visitorPortFlowStoryCommandList) {
+ List visitorPortFlowList = visitorPortFlowStoryCommandList.stream().map(VisitorPortFlowDTOAssembler.INSTANCE::toVisitorFlow).collect(Collectors.toList());
+ return visitorPortFlowRepository.batchStory(visitorPortFlowList);
+ }
+
+ /**
+ * describe 更新访客端流量
+ *
+ * @param visitorPortFlowUpdateCommand 更新访客端流量
+ * @return {@link Result< VisitorPortFlow >} 访客端流量领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ @Override
+ public Result updateOne(VisitorPortFlowUpdateCommand visitorPortFlowUpdateCommand) {
+ VisitorPortFlow visitorPortFlow = VisitorPortFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorPortFlowUpdateCommand);
+ return visitorPortFlowRepository.story(visitorPortFlow);
+ }
+
+ /**
+ * describe 查询单个访客端流量
+ *
+ * @param visitorPortFlowQueryOneCommand 查询单个访客端流量
+ * @return {@link Result< VisitorFlowDTO >} 访客端流量DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ @Override
+ public Result findOne(VisitorPortFlowQueryOneCommand visitorPortFlowQueryOneCommand) {
+ VisitorPortFlow visitorPortFlow = VisitorPortFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorPortFlowQueryOneCommand);
+ return visitorPortFlowRepository.findOne(visitorPortFlow).convert(VisitorPortFlowDTOAssembler.INSTANCE::fromVisitorFlow);
+ }
+
+ /**
+ * describe 查询多个访客端流量
+ *
+ * @param visitorFlowQueryListCommand 查询多个访客端流量
+ * @return {@link Result>} 访客端流量DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ @Override
+ public Result> findList(VisitorPortFlowQueryListCommand visitorFlowQueryListCommand) {
+ VisitorPortFlow visitorPortFlow = VisitorPortFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorFlowQueryListCommand);
+ return visitorPortFlowRepository.findList(visitorPortFlow).convert(visitorFlows -> visitorFlows.stream().map(VisitorPortFlowDTOAssembler.INSTANCE::fromVisitorFlow).collect(Collectors.toList()));
+ }
+
+ /**
+ * describe 分页查询多个访客端流量
+ *
+ * @param visitorPortFlowQueryListCommand 分页查询多个访客端流量
+ * @return {@link Result>} 分页访客端流量DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ @Override
+ public Result> findPage(int size, int current, VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand) {
+ VisitorPortFlow visitorPortFlow = VisitorPortFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorPortFlowQueryListCommand);
+ return visitorPortFlowRepository.findPage(size, current, visitorPortFlow).convert(page -> page.convert(VisitorPortFlowDTOAssembler.INSTANCE::fromVisitorFlow));
+ }
+
+ /**
+ * describe 删除访客端流量
+ *
+ * @param visitorPortFlowRemoveCommand 删除访客端流量
+ * @return {@link Result< VisitorPortFlow >} 访客端流量
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ @Override
+ public Result remove(VisitorPortFlowRemoveCommand visitorPortFlowRemoveCommand) {
+ VisitorPortFlow visitorPortFlow = VisitorPortFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorPortFlowRemoveCommand);
+ return visitorPortFlowRepository.remove(visitorPortFlow);
+ }
+
+ /**
+ * 根据客户端查询流量
+ *
+ * @param size 分页大小
+ * @param current 分页
+ * @param visitorPortFlowQueryListCommand 查询条件
+ * @return {@link Result>} 分页访客端流量DTO对象
+ */
+ @Override
+ public Result> findClientFlowPage(int size, int current, VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand) {
+ VisitorPortFlow visitorPortFlow = VisitorPortFlowDTOAssembler.INSTANCE.toVisitorFlow(visitorPortFlowQueryListCommand);
+ return visitorPortFlowRepository.findPageGroupByClientId(size, current, visitorPortFlow).convert(visitorPortFlowLazyPage -> {
+ List clientIdList = visitorPortFlowLazyPage.getRecord().stream().map(VisitorPortFlow::getClientId).toList();
+ List visitorPortFlowList = visitorPortFlowRepository.findListByClientIds(clientIdList);
+
+
+ // 根据客户端进行分组
+
+ List visitorPortFlowDTOList = visitorPortFlowList.stream().map(VisitorPortFlowDTOAssembler.INSTANCE::fromVisitorFlow).toList();
+
+
+ Map> client_port_flow_map = visitorPortFlowDTOList.stream().collect(Collectors.groupingBy(visitorPortFlowDTO -> visitorPortFlowDTO.getClientId()));
+
+ Map client_in_flow = visitorPortFlowDTOList.stream()
+ .collect(
+ Collectors.groupingBy(VisitorPortFlowDTO::getClientId,
+ Collectors.summingInt(VisitorPortFlowDTO::getInFlowSize)));
+
+ Map client_out_flow = visitorPortFlowDTOList.stream()
+ .collect(
+ Collectors.groupingBy(VisitorPortFlowDTO::getClientId,
+ Collectors.summingInt(VisitorPortFlowDTO::getOutFlowSize)));
+
+ return visitorPortFlowLazyPage.convert(visitorPortFlow1 -> {
+ String clientId = visitorPortFlow1.getClientId();
+ VisitorFlowDTO visitorFlowDTO = new VisitorFlowDTO();
+ visitorFlowDTO.setClientId(clientId);
+ visitorFlowDTO.setInFlow(client_in_flow.getOrDefault(clientId, 0));
+ visitorFlowDTO.setOutFlow(client_out_flow.getOrDefault(clientId, 0));
+ visitorFlowDTO.setVisitorPortFlowDTOList(client_port_flow_map.getOrDefault(clientId, new ArrayList<>()));
+ return visitorFlowDTO;
+ });
+ });
+ }
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/config/HeartbeatProperties.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/config/HeartbeatProperties.java
new file mode 100644
index 0000000..b54dedf
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/config/HeartbeatProperties.java
@@ -0,0 +1,23 @@
+package wu.framework.lazy.cloud.heartbeat.server.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 服务端配置信息
+ */
+@Configuration
+@ConfigurationProperties(prefix = HeartbeatProperties.prefix)
+@Data
+public class HeartbeatProperties {
+ public static final String prefix = "spring.lazy.cloud.heartbeat.server";
+ /**
+ * 账号
+ */
+ private String username;
+ /**
+ * 密码
+ */
+ private String password;
+}
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/ChannelController.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/ChannelController.java
index 6812735..2ec0e06 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/ChannelController.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/ChannelController.java
@@ -1,7 +1,6 @@
package wu.framework.lazy.cloud.heartbeat.server.controller;
-
import com.wu.framework.inner.layer.web.EasyController;
import com.wu.framework.response.Result;
import com.wu.framework.response.ResultFactory;
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/InternalNetworkPenetrationMappingProvider.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/InternalNetworkPenetrationMappingProvider.java
index f18e481..1d86d19 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/InternalNetworkPenetrationMappingProvider.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/InternalNetworkPenetrationMappingProvider.java
@@ -1,10 +1,6 @@
package wu.framework.lazy.cloud.heartbeat.server.controller;
-import wu.framework.lazy.cloud.heartbeat.server.application.InternalNetworkPenetrationMappingApplication;
-import wu.framework.lazy.cloud.heartbeat.server.application.command.internal.network.penetration.mapping.*;
-import wu.framework.lazy.cloud.heartbeat.server.application.dto.InternalNetworkPenetrationMappingDTO;
-import wu.framework.lazy.cloud.heartbeat.server.model.internal.network.penetration.mapping.InternalNetworkPenetrationMapping;
import com.wu.framework.inner.layer.web.EasyController;
import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
import com.wu.framework.response.Result;
@@ -13,6 +9,10 @@ import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;
+import wu.framework.lazy.cloud.heartbeat.server.application.InternalNetworkPenetrationMappingApplication;
+import wu.framework.lazy.cloud.heartbeat.server.application.command.internal.network.penetration.mapping.*;
+import wu.framework.lazy.cloud.heartbeat.server.application.dto.InternalNetworkPenetrationMappingDTO;
+import wu.framework.lazy.cloud.heartbeat.server.model.internal.network.penetration.mapping.InternalNetworkPenetrationMapping;
import java.util.List;
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/NettyClientBlacklistProvider.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/NettyClientBlacklistProvider.java
index 0953813..7447819 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/NettyClientBlacklistProvider.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/NettyClientBlacklistProvider.java
@@ -1,10 +1,6 @@
package wu.framework.lazy.cloud.heartbeat.server.controller;
-import wu.framework.lazy.cloud.heartbeat.server.application.NettyClientBlacklistApplication;
-import wu.framework.lazy.cloud.heartbeat.server.application.command.netty.client.blacklist.*;
-import wu.framework.lazy.cloud.heartbeat.server.application.dto.NettyClientBlacklistDTO;
-import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.blacklist.NettyClientBlacklist;
import com.wu.framework.inner.layer.web.EasyController;
import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
import com.wu.framework.response.Result;
@@ -15,6 +11,10 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import wu.framework.lazy.cloud.heartbeat.server.application.NettyClientBlacklistApplication;
+import wu.framework.lazy.cloud.heartbeat.server.application.command.netty.client.blacklist.*;
+import wu.framework.lazy.cloud.heartbeat.server.application.dto.NettyClientBlacklistDTO;
+import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.blacklist.NettyClientBlacklist;
import java.util.List;
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/NettyClientStateProvider.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/NettyClientStateProvider.java
index ff7b01c..acc233d 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/NettyClientStateProvider.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/NettyClientStateProvider.java
@@ -17,15 +17,15 @@ import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.state.NettyCl
import java.util.List;
/**
- * describe 客户端状态
+ * describe 客户端状态
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyController
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyController
**/
@Tag(name = "客户端状态提供者")
@EasyController("/netty/client/state")
-public class NettyClientStateProvider {
+public class NettyClientStateProvider {
@Resource
private NettyClientStateApplication nettyClientStateApplication;
@@ -33,107 +33,121 @@ public class NettyClientStateProvider {
/**
* describe 新增客户端状态
*
- * @param nettyClientStateStoryCommand 新增客户端状态
+ * @param nettyClientStateStoryCommand 新增客户端状态
* @return {@link Result< NettyClientState >} 客户端状态新增后领域对象
-
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@Operation(summary = "新增客户端状态")
@PostMapping("/story")
- public Result story(@RequestBody NettyClientStateStoryCommand nettyClientStateStoryCommand){
+ public Result story(@RequestBody NettyClientStateStoryCommand nettyClientStateStoryCommand) {
return nettyClientStateApplication.story(nettyClientStateStoryCommand);
}
+
/**
* describe 批量新增客户端状态
*
- * @param nettyClientStateStoryCommandList 批量新增客户端状态
+ * @param nettyClientStateStoryCommandList 批量新增客户端状态
* @return {@link Result >} 客户端状态新增后领域对象集合
-
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@Operation(summary = "批量新增客户端状态")
@PostMapping("/batchStory")
- public Result> batchStory(@RequestBody List nettyClientStateStoryCommandList){
+ public Result> batchStory(@RequestBody List nettyClientStateStoryCommandList) {
return nettyClientStateApplication.batchStory(nettyClientStateStoryCommandList);
}
+
/**
* describe 更新客户端状态
*
- * @param nettyClientStateUpdateCommand 更新客户端状态
- * @return {@link Result} 客户端状态领域对象
-
+ * @param nettyClientStateUpdateCommand 更新客户端状态
+ * @return {@link Result} 客户端状态领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@Operation(summary = "更新客户端状态")
@PutMapping("/updateOne")
- public Result updateOne(@RequestBody NettyClientStateUpdateCommand nettyClientStateUpdateCommand){
+ public Result updateOne(@RequestBody NettyClientStateUpdateCommand nettyClientStateUpdateCommand) {
return nettyClientStateApplication.updateOne(nettyClientStateUpdateCommand);
}
+
/**
* describe 查询单个客户端状态
*
- * @param nettyClientStateQueryOneCommand 查询单个客户端状态
+ * @param nettyClientStateQueryOneCommand 查询单个客户端状态
* @return {@link Result< NettyClientStateDTO >} 客户端状态DTO对象
-
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@Operation(summary = "查询单个客户端状态")
@GetMapping("/findOne")
- public Result findOne(@ModelAttribute NettyClientStateQueryOneCommand nettyClientStateQueryOneCommand){
+ public Result findOne(@ModelAttribute NettyClientStateQueryOneCommand nettyClientStateQueryOneCommand) {
return nettyClientStateApplication.findOne(nettyClientStateQueryOneCommand);
}
+
/**
* describe 查询多个客户端状态
*
- * @param nettyClientStateQueryListCommand 查询多个客户端状态
- * @return {@link Result>} 客户端状态DTO对象
-
+ * @param nettyClientStateQueryListCommand 查询多个客户端状态
+ * @return {@link Result>} 客户端状态DTO对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@Operation(summary = "查询多个客户端状态")
@GetMapping("/findList")
- public Result> findList(@ModelAttribute NettyClientStateQueryListCommand nettyClientStateQueryListCommand){
+ public Result> findList(@ModelAttribute NettyClientStateQueryListCommand nettyClientStateQueryListCommand) {
return nettyClientStateApplication.findList(nettyClientStateQueryListCommand);
}
+
/**
* describe 分页查询多个客户端状态
*
- * @param nettyClientStateQueryListCommand 分页查询多个客户端状态
+ * @param nettyClientStateQueryListCommand 分页查询多个客户端状态
* @return {@link Result< LazyPage >} 分页客户端状态DTO对象
-
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@Operation(summary = "分页查询多个客户端状态")
@GetMapping("/findPage")
- public Result> findPage(@Parameter(description ="分页大小") @RequestParam(defaultValue = "10", value = "size") int size,
- @Parameter(description ="当前页数") @RequestParam(defaultValue = "1", value = "current") int current, @ModelAttribute NettyClientStateQueryListCommand nettyClientStateQueryListCommand){
- return nettyClientStateApplication.findPage(size,current,nettyClientStateQueryListCommand);
+ public Result> findPage(@Parameter(description = "分页大小") @RequestParam(defaultValue = "10", value = "size") int size,
+ @Parameter(description = "当前页数") @RequestParam(defaultValue = "1", value = "current") int current, @ModelAttribute NettyClientStateQueryListCommand nettyClientStateQueryListCommand) {
+ return nettyClientStateApplication.findPage(size, current, nettyClientStateQueryListCommand);
}
+
/**
* describe 删除客户端状态
*
- * @param nettyClientStateRemoveCommand 删除客户端状态
- * @return {@link Result} 客户端状态
-
+ * @param nettyClientStateRemoveCommand 删除客户端状态
+ * @return {@link Result} 客户端状态
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
@Operation(summary = "删除客户端状态")
@DeleteMapping("/remove")
- public Result remove(@ModelAttribute NettyClientStateRemoveCommand nettyClientStateRemoveCommand){
+ public Result remove(@ModelAttribute NettyClientStateRemoveCommand nettyClientStateRemoveCommand) {
return nettyClientStateApplication.remove(nettyClientStateRemoveCommand);
}
+
+ /**
+ * describe 通过客户端心跳通道发送客户端请求
+ *
+ * @param nettyClientMessageCommand 发送请求到客户端
+ * @return {@link Result}
+ * @author Jia wei Wu
+ * @date 2023/12/27 03:46 下午
+ **/
+
+ @Operation(summary = "通过客户端心跳通道发送客户端请求")
+ @PostMapping("/sendMessage2HeartbeatClient")
+ public Result sendMessage2HeartbeatClient(@RequestBody NettyClientMessageCommand nettyClientMessageCommand) {
+ return nettyClientStateApplication.sendMessage2HeartbeatClient(nettyClientMessageCommand);
+ }
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/NettyServerVisitorProvider.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/NettyServerVisitorProvider.java
new file mode 100644
index 0000000..a924f6c
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/NettyServerVisitorProvider.java
@@ -0,0 +1,137 @@
+package wu.framework.lazy.cloud.heartbeat.server.controller;
+
+import com.wu.framework.inner.layer.web.EasyController;
+import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
+import com.wu.framework.response.Result;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+import wu.framework.lazy.cloud.heartbeat.server.application.NettyServerVisitorApplication;
+import wu.framework.lazy.cloud.heartbeat.server.application.command.netty.server.visitor.*;
+import wu.framework.lazy.cloud.heartbeat.server.application.dto.NettyServerVisitorDTO;
+import wu.framework.lazy.cloud.heartbeat.server.domain.model.netty.server.visitor.NettyServerVisitor;
+
+import java.util.List;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyController
+ **/
+@Tag(name = "服务端提前开放出来的端口提供者")
+@EasyController("/netty/server/visitor")
+public class NettyServerVisitorProvider {
+
+ @Resource
+ private NettyServerVisitorApplication nettyServerVisitorApplication;
+
+ /**
+ * describe 新增服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorStoryCommand 新增服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口新增后领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ @Operation(summary = "新增服务端提前开放出来的端口")
+ @PostMapping("/story")
+ public Result story(@RequestBody NettyServerVisitorStoryCommand nettyServerVisitorStoryCommand) {
+ return nettyServerVisitorApplication.story(nettyServerVisitorStoryCommand);
+ }
+
+ /**
+ * describe 批量新增服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorStoryCommandList 批量新增服务端提前开放出来的端口
+ * @return {@link Result>} 服务端提前开放出来的端口新增后领域对象集合
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ @Operation(summary = "批量新增服务端提前开放出来的端口")
+ @PostMapping("/batchStory")
+ public Result> batchStory(@RequestBody List nettyServerVisitorStoryCommandList) {
+ return nettyServerVisitorApplication.batchStory(nettyServerVisitorStoryCommandList);
+ }
+
+ /**
+ * describe 更新服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorUpdateCommand 更新服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ @Operation(summary = "更新服务端提前开放出来的端口")
+ @PutMapping("/updateOne")
+ public Result updateOne(@RequestBody NettyServerVisitorUpdateCommand nettyServerVisitorUpdateCommand) {
+ return nettyServerVisitorApplication.updateOne(nettyServerVisitorUpdateCommand);
+ }
+
+ /**
+ * describe 查询单个服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorQueryOneCommand 查询单个服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ @Operation(summary = "查询单个服务端提前开放出来的端口")
+ @GetMapping("/findOne")
+ public Result findOne(@ModelAttribute NettyServerVisitorQueryOneCommand nettyServerVisitorQueryOneCommand) {
+ return nettyServerVisitorApplication.findOne(nettyServerVisitorQueryOneCommand);
+ }
+
+ /**
+ * describe 查询多个服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorQueryListCommand 查询多个服务端提前开放出来的端口
+ * @return {@link Result>} 服务端提前开放出来的端口DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ @Operation(summary = "查询多个服务端提前开放出来的端口")
+ @GetMapping("/findList")
+ public Result> findList(@ModelAttribute NettyServerVisitorQueryListCommand nettyServerVisitorQueryListCommand) {
+ return nettyServerVisitorApplication.findList(nettyServerVisitorQueryListCommand);
+ }
+
+ /**
+ * describe 分页查询多个服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorQueryListCommand 分页查询多个服务端提前开放出来的端口
+ * @return {@link Result>} 分页服务端提前开放出来的端口DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ @Operation(summary = "分页查询多个服务端提前开放出来的端口")
+ @GetMapping("/findPage")
+ public Result> findPage(@Parameter(description = "分页大小") @RequestParam(defaultValue = "10", value = "size") int size,
+ @Parameter(description = "当前页数") @RequestParam(defaultValue = "1", value = "current") int current, @ModelAttribute NettyServerVisitorQueryListCommand nettyServerVisitorQueryListCommand) {
+ return nettyServerVisitorApplication.findPage(size, current, nettyServerVisitorQueryListCommand);
+ }
+
+ /**
+ * describe 删除服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorRemoveCommand 删除服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ @Operation(summary = "删除服务端提前开放出来的端口")
+ @DeleteMapping("/remove")
+ public Result remove(@ModelAttribute NettyServerVisitorRemoveCommand nettyServerVisitorRemoveCommand) {
+ return nettyServerVisitorApplication.remove(nettyServerVisitorRemoveCommand);
+ }
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/VisitorPortFlowProvider.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/VisitorPortFlowProvider.java
new file mode 100644
index 0000000..1dfd235
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/controller/VisitorPortFlowProvider.java
@@ -0,0 +1,153 @@
+package wu.framework.lazy.cloud.heartbeat.server.controller;
+
+import com.wu.framework.inner.layer.web.EasyController;
+import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
+import com.wu.framework.response.Result;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+import wu.framework.lazy.cloud.heartbeat.server.application.VisitorPortFlowApplication;
+import wu.framework.lazy.cloud.heartbeat.server.application.command.visitor.flow.*;
+import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorFlowDTO;
+import wu.framework.lazy.cloud.heartbeat.server.application.dto.VisitorPortFlowDTO;
+import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlow;
+
+import java.util.List;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyController
+ **/
+@Tag(name = "访客端流量提供者")
+@EasyController("/visitor/port/flow")
+public class VisitorPortFlowProvider {
+
+ @Resource
+ private VisitorPortFlowApplication visitorPortFlowApplication;
+
+ /**
+ * describe 新增访客端流量
+ *
+ * @param visitorPortFlowStoryCommand 新增访客端流量
+ * @return {@link Result< VisitorPortFlow >} 访客端流量新增后领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ @Operation(summary = "新增访客端流量")
+ @PostMapping("/story")
+ public Result story(@RequestBody VisitorPortFlowStoryCommand visitorPortFlowStoryCommand) {
+ return visitorPortFlowApplication.story(visitorPortFlowStoryCommand);
+ }
+
+ /**
+ * describe 批量新增访客端流量
+ *
+ * @param visitorPortFlowStoryCommandList 批量新增访客端流量
+ * @return {@link Result>} 访客端流量新增后领域对象集合
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ @Operation(summary = "批量新增访客端流量")
+ @PostMapping("/batchStory")
+ public Result> batchStory(@RequestBody List visitorPortFlowStoryCommandList) {
+ return visitorPortFlowApplication.batchStory(visitorPortFlowStoryCommandList);
+ }
+
+ /**
+ * describe 更新访客端流量
+ *
+ * @param visitorPortFlowUpdateCommand 更新访客端流量
+ * @return {@link Result< VisitorPortFlow >} 访客端流量领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ @Operation(summary = "更新访客端流量")
+ @PutMapping("/updateOne")
+ public Result updateOne(@RequestBody VisitorPortFlowUpdateCommand visitorPortFlowUpdateCommand) {
+ return visitorPortFlowApplication.updateOne(visitorPortFlowUpdateCommand);
+ }
+
+ /**
+ * describe 查询单个访客端流量
+ *
+ * @param visitorPortFlowQueryOneCommand 查询单个访客端流量
+ * @return {@link Result< VisitorPortFlowDTO >} 访客端流量DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ @Operation(summary = "查询单个访客端流量")
+ @GetMapping("/findOne")
+ public Result findOne(@ModelAttribute VisitorPortFlowQueryOneCommand visitorPortFlowQueryOneCommand) {
+ return visitorPortFlowApplication.findOne(visitorPortFlowQueryOneCommand);
+ }
+
+ /**
+ * describe 查询多个访客端流量
+ *
+ * @param visitorPortFlowQueryListCommand 查询多个访客端流量
+ * @return {@link Result>} 访客端流量DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ @Operation(summary = "查询多个访客端流量")
+ @GetMapping("/findList")
+ public Result> findList(@ModelAttribute VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand) {
+ return visitorPortFlowApplication.findList(visitorPortFlowQueryListCommand);
+ }
+
+ /**
+ * describe 分页查询多个访客端流量
+ *
+ * @param visitorPortFlowQueryListCommand 分页查询多个访客端流量
+ * @return {@link Result>} 分页访客端流量DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ @Operation(summary = "分页查询多个访客端流量")
+ @GetMapping("/findPage")
+ public Result> findPage(@Parameter(description = "分页大小") @RequestParam(defaultValue = "10", value = "size") int size,
+ @Parameter(description = "当前页数") @RequestParam(defaultValue = "1", value = "current") int current, @ModelAttribute VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand) {
+ return visitorPortFlowApplication.findPage(size, current, visitorPortFlowQueryListCommand);
+ }
+
+ /**
+ * 根据客户端查询流量
+ *
+ * @param size 分页大小
+ * @param current 分页
+ * @param visitorPortFlowQueryListCommand 查询条件
+ * @return {@link Result>} 分页访客端流量DTO对象
+ */
+ @Operation(summary = "分页查询多个访客端流量")
+ @GetMapping("/findClientFlowPage")
+ public Result> findClientFlowPage(@Parameter(description = "分页大小") @RequestParam(defaultValue = "10", value = "size") int size,
+ @Parameter(description = "当前页数") @RequestParam(defaultValue = "1", value = "current") int current, @ModelAttribute VisitorPortFlowQueryListCommand visitorPortFlowQueryListCommand) {
+ return visitorPortFlowApplication.findClientFlowPage(size, current, visitorPortFlowQueryListCommand);
+ }
+
+ /**
+ * describe 删除访客端流量
+ *
+ * @param visitorPortFlowRemoveCommand 删除访客端流量
+ * @return {@link Result< VisitorPortFlow >} 访客端流量
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ @Operation(summary = "删除访客端流量")
+ @DeleteMapping("/remove")
+ public Result remove(@ModelAttribute VisitorPortFlowRemoveCommand visitorPortFlowRemoveCommand) {
+ return visitorPortFlowApplication.remove(visitorPortFlowRemoveCommand);
+ }
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/domain/model/netty/server/visitor/NettyServerVisitor.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/domain/model/netty/server/visitor/NettyServerVisitor.java
new file mode 100644
index 0000000..595d830
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/domain/model/netty/server/visitor/NettyServerVisitor.java
@@ -0,0 +1,58 @@
+package wu.framework.lazy.cloud.heartbeat.server.domain.model.netty.server.visitor;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDomain
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "netty_server_visitor", description = "服务端提前开放出来的端口")
+public class NettyServerVisitor {
+
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ private LocalDateTime createTime;
+
+ /**
+ * 描述
+ */
+ @Schema(description = "描述", name = "describe", example = "")
+ private String describe;
+
+ /**
+ * 用户ID
+ */
+ @Schema(description = "用户ID", name = "id", example = "")
+ private Long id;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ private Boolean isDeleted;
+
+ /**
+ * 更新时间
+ */
+ @Schema(description = "更新时间", name = "updateTime", example = "")
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ private Integer visitorPort;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/domain/model/netty/server/visitor/NettyServerVisitorRepository.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/domain/model/netty/server/visitor/NettyServerVisitorRepository.java
new file mode 100644
index 0000000..21d502c
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/domain/model/netty/server/visitor/NettyServerVisitorRepository.java
@@ -0,0 +1,98 @@
+package wu.framework.lazy.cloud.heartbeat.server.domain.model.netty.server.visitor;
+
+import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
+import com.wu.framework.response.Result;
+
+import java.util.List;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDomainRepository
+ **/
+
+public interface NettyServerVisitorRepository {
+
+
+ /**
+ * describe 新增服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitor 新增服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口新增后领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ Result story(NettyServerVisitor nettyServerVisitor);
+
+ /**
+ * describe 批量新增服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitorList 批量新增服务端提前开放出来的端口
+ * @return {@link Result>} 服务端提前开放出来的端口新增后领域对象集合
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ Result> batchStory(List nettyServerVisitorList);
+
+ /**
+ * describe 查询单个服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitor 查询单个服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ Result findOne(NettyServerVisitor nettyServerVisitor);
+
+ /**
+ * describe 查询多个服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitor 查询多个服务端提前开放出来的端口
+ * @return {@link Result>} 服务端提前开放出来的端口DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ Result> findList(NettyServerVisitor nettyServerVisitor);
+
+ /**
+ * describe 分页查询多个服务端提前开放出来的端口
+ *
+ * @param size 当前页数
+ * @param current 当前页
+ * @param nettyServerVisitor 分页查询多个服务端提前开放出来的端口
+ * @return {@link Result>} 分页服务端提前开放出来的端口领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ Result> findPage(int size, int current, NettyServerVisitor nettyServerVisitor);
+
+ /**
+ * describe 删除服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitor 删除服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ Result remove(NettyServerVisitor nettyServerVisitor);
+
+ /**
+ * describe 是否存在服务端提前开放出来的端口
+ *
+ * @param nettyServerVisitor 是否存在服务端提前开放出来的端口
+ * @return {@link Result} 服务端提前开放出来的端口是否存在
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+
+ Result exists(NettyServerVisitor nettyServerVisitor);
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/domain/model/visitor/flow/VisitorPortFlow.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/domain/model/visitor/flow/VisitorPortFlow.java
new file mode 100644
index 0000000..34b2e99
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/domain/model/visitor/flow/VisitorPortFlow.java
@@ -0,0 +1,70 @@
+package wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDomain
+ **/
+@Data
+@Accessors(chain = true)
+@Schema(title = "visitor_port_flow", description = "访客端流量")
+public class VisitorPortFlow {
+
+
+ /**
+ * 客户端ID
+ */
+ @Schema(description = "客户端ID", name = "clientId", example = "")
+ private String clientId;
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ private LocalDateTime createTime;
+
+ /**
+ * 主键
+ */
+ @Schema(description = "主键", name = "id", example = "")
+ private Long id;
+
+ /**
+ * 当前访客当前进口流量
+ */
+ @Schema(description = "当前访客当前进口流量", name = "inFlow", example = "")
+ private Integer inFlow;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ private Boolean isDeleted;
+
+ /**
+ * 当前访客出口流量
+ */
+ @Schema(description = "当前访客出口流量", name = "outFlow", example = "")
+ private Integer outFlow;
+
+ /**
+ * 修改时间
+ */
+ @Schema(description = "修改时间", name = "updateTime", example = "")
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ private Integer visitorPort;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/domain/model/visitor/flow/VisitorPortFlowRepository.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/domain/model/visitor/flow/VisitorPortFlowRepository.java
new file mode 100644
index 0000000..9d69e3f
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/domain/model/visitor/flow/VisitorPortFlowRepository.java
@@ -0,0 +1,115 @@
+package wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow;
+
+import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
+import com.wu.framework.response.Result;
+
+import java.util.List;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyDomainRepository
+ **/
+
+public interface VisitorPortFlowRepository {
+
+
+ /**
+ * describe 新增访客端流量
+ *
+ * @param visitorPortFlow 新增访客端流量
+ * @return {@link Result< VisitorPortFlow >} 访客端流量新增后领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ Result story(VisitorPortFlow visitorPortFlow);
+
+ /**
+ * describe 批量新增访客端流量
+ *
+ * @param visitorPortFlowList 批量新增访客端流量
+ * @return {@link Result>} 访客端流量新增后领域对象集合
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ Result> batchStory(List visitorPortFlowList);
+
+ /**
+ * describe 查询单个访客端流量
+ *
+ * @param visitorPortFlow 查询单个访客端流量
+ * @return {@link Result< VisitorPortFlow >} 访客端流量DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ Result findOne(VisitorPortFlow visitorPortFlow);
+
+ /**
+ * describe 查询多个访客端流量
+ *
+ * @param visitorPortFlow 查询多个访客端流量
+ * @return {@link Result>} 访客端流量DTO对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ Result> findList(VisitorPortFlow visitorPortFlow);
+
+ /**
+ * describe 分页查询多个访客端流量
+ *
+ * @param size 当前页数
+ * @param current 当前页
+ * @param visitorPortFlow 分页查询多个访客端流量
+ * @return {@link Result>} 分页访客端流量领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ Result> findPage(int size, int current, VisitorPortFlow visitorPortFlow);
+
+ /**
+ * describe 删除访客端流量
+ *
+ * @param visitorPortFlow 删除访客端流量
+ * @return {@link Result< VisitorPortFlow >} 访客端流量
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ Result remove(VisitorPortFlow visitorPortFlow);
+
+ /**
+ * describe 是否存在访客端流量
+ *
+ * @param visitorPortFlow 是否存在访客端流量
+ * @return {@link Result} 访客端流量是否存在
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+
+ Result exists(VisitorPortFlow visitorPortFlow);
+
+ /**
+ * 根据客户端查询流量
+ *
+ * @param size 分页大小
+ * @param current 分页
+ * @param visitorPortFlow 查询条件
+ * @return {@link Result>} 分页访客端流量DTO对象
+ */
+ Result> findPageGroupByClientId(int size, int current, VisitorPortFlow visitorPortFlow);
+
+ /**
+ * 根据客户端ID查询出 客户端所有的进出口流量
+ *
+ * @param clientIdList 客户端ID
+ * @return 客户端所有的进出口流量
+ */
+ List findListByClientIds(List clientIdList);
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/InternalNetworkPenetrationMappingConverter.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/InternalNetworkPenetrationMappingConverter.java
index 6cd73e5..331047c 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/InternalNetworkPenetrationMappingConverter.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/InternalNetworkPenetrationMappingConverter.java
@@ -1,15 +1,16 @@
package wu.framework.lazy.cloud.heartbeat.server.infrastructure.converter;
-import wu.framework.lazy.cloud.heartbeat.server.model.internal.network.penetration.mapping.InternalNetworkPenetrationMapping;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity.InternalNetworkPenetrationMappingDO;
+import wu.framework.lazy.cloud.heartbeat.server.model.internal.network.penetration.mapping.InternalNetworkPenetrationMapping;
+
/**
- * describe 内网穿透映射
+ * describe 内网穿透映射
*
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureConverter
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureConverter
**/
@Mapper
public interface InternalNetworkPenetrationMappingConverter {
@@ -18,31 +19,28 @@ public interface InternalNetworkPenetrationMappingConverter {
/**
* describe MapStruct 创建的代理对象
*
-
-
-
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
InternalNetworkPenetrationMappingConverter INSTANCE = Mappers.getMapper(InternalNetworkPenetrationMappingConverter.class);
+
/**
* describe 实体对象 转换成领域对象
*
- * @param internalNetworkPenetrationMappingDO 内网穿透映射实体对象
- * @return {@link InternalNetworkPenetrationMapping} 内网穿透映射领域对象
-
+ * @param internalNetworkPenetrationMappingDO 内网穿透映射实体对象
+ * @return {@link InternalNetworkPenetrationMapping} 内网穿透映射领域对象
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
InternalNetworkPenetrationMapping toInternalNetworkPenetrationMapping(InternalNetworkPenetrationMappingDO internalNetworkPenetrationMappingDO);
+
/**
* describe 领域对象 转换成实体对象
*
- * @param internalNetworkPenetrationMapping 内网穿透映射领域对象
- * @return {@link InternalNetworkPenetrationMappingDO} 内网穿透映射实体对象
-
+ * @param internalNetworkPenetrationMapping 内网穿透映射领域对象
+ * @return {@link InternalNetworkPenetrationMappingDO} 内网穿透映射实体对象
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
**/
- InternalNetworkPenetrationMappingDO fromInternalNetworkPenetrationMapping(InternalNetworkPenetrationMapping internalNetworkPenetrationMapping);
+ InternalNetworkPenetrationMappingDO fromInternalNetworkPenetrationMapping(InternalNetworkPenetrationMapping internalNetworkPenetrationMapping);
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/NettyClientBlacklistConverter.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/NettyClientBlacklistConverter.java
index e03fc19..20cc2bc 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/NettyClientBlacklistConverter.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/NettyClientBlacklistConverter.java
@@ -4,14 +4,14 @@ package wu.framework.lazy.cloud.heartbeat.server.infrastructure.converter;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity.NettyClientBlacklistDO;
-import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.blacklist.*;
+import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.blacklist.NettyClientBlacklist;
/**
- * describe 客户端黑名单
+ * describe 客户端黑名单
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureConverter
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureConverter
**/
@Mapper
public interface NettyClientBlacklistConverter {
@@ -20,31 +20,28 @@ public interface NettyClientBlacklistConverter {
/**
* describe MapStruct 创建的代理对象
*
-
-
-
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
NettyClientBlacklistConverter INSTANCE = Mappers.getMapper(NettyClientBlacklistConverter.class);
+
/**
* describe 实体对象 转换成领域对象
*
- * @param nettyClientBlacklistDO 客户端黑名单实体对象
- * @return {@link NettyClientBlacklist} 客户端黑名单领域对象
-
+ * @param nettyClientBlacklistDO 客户端黑名单实体对象
+ * @return {@link NettyClientBlacklist} 客户端黑名单领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
NettyClientBlacklist toNettyClientBlacklist(NettyClientBlacklistDO nettyClientBlacklistDO);
+
/**
* describe 领域对象 转换成实体对象
*
- * @param nettyClientBlacklist 客户端黑名单领域对象
- * @return {@link NettyClientBlacklistDO} 客户端黑名单实体对象
-
+ * @param nettyClientBlacklist 客户端黑名单领域对象
+ * @return {@link NettyClientBlacklistDO} 客户端黑名单实体对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- NettyClientBlacklistDO fromNettyClientBlacklist(NettyClientBlacklist nettyClientBlacklist);
+ NettyClientBlacklistDO fromNettyClientBlacklist(NettyClientBlacklist nettyClientBlacklist);
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/NettyClientStateConverter.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/NettyClientStateConverter.java
index e4d9a09..6ab8735 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/NettyClientStateConverter.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/NettyClientStateConverter.java
@@ -1,15 +1,16 @@
package wu.framework.lazy.cloud.heartbeat.server.infrastructure.converter;
-import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.state.NettyClientState;
-import wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity.NettyClientStateDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
+import wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity.NettyClientStateDO;
+import wu.framework.lazy.cloud.heartbeat.server.model.netty.client.state.NettyClientState;
+
/**
- * describe 客户端状态
+ * describe 客户端状态
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureConverter
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureConverter
**/
@Mapper
public interface NettyClientStateConverter {
@@ -18,31 +19,28 @@ public interface NettyClientStateConverter {
/**
* describe MapStruct 创建的代理对象
*
-
-
-
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
NettyClientStateConverter INSTANCE = Mappers.getMapper(NettyClientStateConverter.class);
+
/**
* describe 实体对象 转换成领域对象
*
- * @param nettyClientStateDO 客户端状态实体对象
- * @return {@link NettyClientState} 客户端状态领域对象
-
+ * @param nettyClientStateDO 客户端状态实体对象
+ * @return {@link NettyClientState} 客户端状态领域对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
NettyClientState toNettyClientState(NettyClientStateDO nettyClientStateDO);
+
/**
* describe 领域对象 转换成实体对象
*
- * @param nettyClientState 客户端状态领域对象
- * @return {@link NettyClientStateDO} 客户端状态实体对象
-
+ * @param nettyClientState 客户端状态领域对象
+ * @return {@link NettyClientStateDO} 客户端状态实体对象
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
**/
- NettyClientStateDO fromNettyClientState(NettyClientState nettyClientState);
+ NettyClientStateDO fromNettyClientState(NettyClientState nettyClientState);
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/NettyServerVisitorConverter.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/NettyServerVisitorConverter.java
new file mode 100644
index 0000000..45ea360
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/NettyServerVisitorConverter.java
@@ -0,0 +1,46 @@
+package wu.framework.lazy.cloud.heartbeat.server.infrastructure.converter;
+
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+import wu.framework.lazy.cloud.heartbeat.server.domain.model.netty.server.visitor.NettyServerVisitor;
+import wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity.NettyServerVisitorDO;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureConverter
+ **/
+@Mapper
+public interface NettyServerVisitorConverter {
+
+
+ /**
+ * describe MapStruct 创建的代理对象
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+ NettyServerVisitorConverter INSTANCE = Mappers.getMapper(NettyServerVisitorConverter.class);
+
+ /**
+ * describe 实体对象 转换成领域对象
+ *
+ * @param nettyServerVisitorDO 服务端提前开放出来的端口实体对象
+ * @return {@link NettyServerVisitor} 服务端提前开放出来的端口领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+ NettyServerVisitor toNettyServerVisitor(NettyServerVisitorDO nettyServerVisitorDO);
+
+ /**
+ * describe 领域对象 转换成实体对象
+ *
+ * @param nettyServerVisitor 服务端提前开放出来的端口领域对象
+ * @return {@link NettyServerVisitorDO} 服务端提前开放出来的端口实体对象
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ **/
+ NettyServerVisitorDO fromNettyServerVisitor(NettyServerVisitor nettyServerVisitor);
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/VisitorPortFlowConverter.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/VisitorPortFlowConverter.java
new file mode 100644
index 0000000..a8484a4
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/converter/VisitorPortFlowConverter.java
@@ -0,0 +1,46 @@
+package wu.framework.lazy.cloud.heartbeat.server.infrastructure.converter;
+
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+import wu.framework.lazy.cloud.heartbeat.server.domain.model.visitor.flow.VisitorPortFlow;
+import wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity.VisitorPortFlowDO;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureConverter
+ **/
+@Mapper
+public interface VisitorPortFlowConverter {
+
+
+ /**
+ * describe MapStruct 创建的代理对象
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+ VisitorPortFlowConverter INSTANCE = Mappers.getMapper(VisitorPortFlowConverter.class);
+
+ /**
+ * describe 实体对象 转换成领域对象
+ *
+ * @param visitorPortFlowDO 访客端流量实体对象
+ * @return {@link VisitorPortFlow} 访客端流量领域对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+ VisitorPortFlow toVisitorFlow(VisitorPortFlowDO visitorPortFlowDO);
+
+ /**
+ * describe 领域对象 转换成实体对象
+ *
+ * @param visitorPortFlow 访客端流量领域对象
+ * @return {@link VisitorPortFlowDO} 访客端流量实体对象
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ **/
+ VisitorPortFlowDO fromVisitorFlow(VisitorPortFlow visitorPortFlow);
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/InternalNetworkPenetrationMappingDO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/InternalNetworkPenetrationMappingDO.java
index d16e4df..f08fb66 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/InternalNetworkPenetrationMappingDO.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/InternalNetworkPenetrationMappingDO.java
@@ -6,88 +6,80 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
+
/**
- * describe 内网穿透映射
+ * describe 内网穿透映射
*
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureEntity
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureEntity
**/
@Data
@Accessors(chain = true)
-@LazyTable(tableName = "internal_network_penetration_mapping",schema = "middleground_cloud_netty_server",comment = "内网穿透映射")
-@Schema(title = "internal_network_penetration_mapping",description = "内网穿透映射")
+@LazyTable(tableName = "internal_network_penetration_mapping", comment = "内网穿透映射")
+@Schema(title = "internal_network_penetration_mapping", description = "内网穿透映射")
public class InternalNetworkPenetrationMappingDO {
/**
- *
* 客户端ID
*/
- @Schema(description ="客户端ID",name ="clientId",example = "")
- @LazyTableField(name="client_id",comment="客户端ID",columnType="varchar(255)")
+ @Schema(description = "客户端ID", name = "clientId", example = "")
+ @LazyTableField(name = "client_id", comment = "客户端ID", columnType = "varchar(255)")
private String clientId;
/**
- *
* 客户端目标地址
*/
- @Schema(description ="客户端目标地址",name ="clientTargetIp",example = "")
- @LazyTableField(name="client_target_ip",comment="客户端目标地址",columnType="varchar(255)",defaultValue = "'0.0.0.0'")
+ @Schema(description = "客户端目标地址", name = "clientTargetIp", example = "")
+ @LazyTableField(name = "client_target_ip", comment = "客户端目标地址", columnType = "varchar(255)", defaultValue = "'0.0.0.0'")
private String clientTargetIp;
/**
- *
* 客户端目标端口
*/
- @Schema(description ="客户端目标端口",name ="clientTargetPort",example = "")
- @LazyTableField(name="client_target_port",comment="客户端目标端口",columnType="int",notNull = true)
+ @Schema(description = "客户端目标端口", name = "clientTargetPort", example = "")
+ @LazyTableField(name = "client_target_port", comment = "客户端目标端口", columnType = "int", notNull = true)
private Integer clientTargetPort;
/**
- *
* 创建时间
*/
- @Schema(description ="创建时间",name ="createTime",example = "")
+ @Schema(description = "创建时间", name = "createTime", example = "")
@LazyTableFieldCreateTime
private LocalDateTime createTime;
/**
- *
* 主键自增
*/
- @Schema(description ="主键自增",name ="id",example = "")
+ @Schema(description = "主键自增", name = "id", example = "")
@LazyTableFieldId
private Long id;
/**
- *
* 是否删除 默认否
*/
- @Schema(description ="是否删除 默认否",name ="isDeleted",example = "")
- @LazyTableField(name="is_deleted",comment="是否删除 默认否",columnType="tinyint",defaultValue = "'0'")
+ @Schema(description = "是否删除 默认否", name = "isDeleted", example = "")
+ @LazyTableField(name = "is_deleted", comment = "是否删除 默认否", columnType = "tinyint", defaultValue = "'0'")
private Boolean isDeleted;
/**
- *
* 修改时间
*/
- @Schema(description ="修改时间",name ="updateTime",example = "")
+ @Schema(description = "修改时间", name = "updateTime", example = "")
@LazyTableFieldUpdateTime
private LocalDateTime updateTime;
/**
- *
* 访问端口
*/
- @Schema(description ="访问端口",name ="visitorPort",example = "")
- @LazyTableFieldUnique(comment = "访问端口",notNull = true)
+ @Schema(description = "访问端口", name = "visitorPort", example = "")
+ @LazyTableFieldUnique(comment = "访问端口", notNull = true)
private Integer visitorPort;
/**
- *
* 描述
*/
- @Schema(description ="描述",name ="describe",example = "")
+ @Schema(description = "描述", name = "describe", example = "")
@LazyTableField(comment = "描述")
private String describe;
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/NettyClientBlacklistDO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/NettyClientBlacklistDO.java
index d5ee90f..1ea4d89 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/NettyClientBlacklistDO.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/NettyClientBlacklistDO.java
@@ -16,7 +16,7 @@ import java.time.LocalDateTime;
**/
@Data
@Accessors(chain = true)
-@LazyTable(tableName = "netty_client_blacklist", schema = "middleground_cloud_netty_server", comment = "客户端黑名单")
+@LazyTable(tableName = "netty_client_blacklist", comment = "客户端黑名单")
@Schema(title = "netty_client_blacklist", description = "客户端黑名单")
public class NettyClientBlacklistDO {
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/NettyClientStateDO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/NettyClientStateDO.java
index 26ae442..98e9b79 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/NettyClientStateDO.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/NettyClientStateDO.java
@@ -1,10 +1,10 @@
package wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity;
-import wu.framework.lazy.cloud.heartbeat.common.enums.NettyClientStatus;
import com.wu.framework.inner.lazy.stereotype.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
+import wu.framework.lazy.cloud.heartbeat.common.enums.NettyClientStatus;
import java.time.LocalDateTime;
@@ -17,7 +17,7 @@ import java.time.LocalDateTime;
**/
@Data
@Accessors(chain = true)
-@LazyTable(tableName = "netty_client_state", schema = "middleground_cloud_netty_server", comment = "客户端状态")
+@LazyTable(tableName = "netty_client_state", comment = "客户端状态")
@Schema(title = "netty_client_state", description = "客户端状态")
public class NettyClientStateDO {
@@ -47,7 +47,7 @@ public class NettyClientStateDO {
* 是否删除
*/
@Schema(description = "是否删除", name = "isDeleted", example = "")
- @LazyTableField(name = "is_deleted", comment = "是否删除",defaultValue = "'0'",columnType = "tinyint")
+ @LazyTableField(name = "is_deleted", comment = "是否删除", defaultValue = "'0'", columnType = "tinyint")
private Boolean isDeleted;
/**
@@ -61,7 +61,7 @@ public class NettyClientStateDO {
* 暂存状态(开启、关闭)
*/
@Schema(description = "暂存状态(开启、关闭)", name = "staging", example = "")
- @LazyTableField(name = "staging", comment = "暂存状态(开启、关闭)", columnType = "varchar(255)")
+ @LazyTableField(name = "staging_state", comment = "暂存状态(开启、关闭)", columnType = "varchar(255)")
private String stagingState;
/**
@@ -71,4 +71,11 @@ public class NettyClientStateDO {
@LazyTableFieldUpdateTime
private LocalDateTime updateTime;
+ /**
+ * 描述
+ */
+ @Schema(description = "描述", name = "describe", example = "")
+ @LazyTableField(comment = "描述")
+ private String describe;
+
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/NettyServerVisitorDO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/NettyServerVisitorDO.java
new file mode 100644
index 0000000..12df722
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/NettyServerVisitorDO.java
@@ -0,0 +1,66 @@
+package wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity;
+
+import com.wu.framework.inner.lazy.stereotype.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureEntity
+ **/
+@Data
+@Accessors(chain = true)
+@LazyTable(tableName = "netty_server_visitor", comment = "服务端提前开放出来的端口")
+@Schema(title = "netty_server_visitor", description = "服务端提前开放出来的端口")
+public class NettyServerVisitorDO {
+
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ @LazyTableField(name = "create_time", comment = "创建时间", defaultValue = "CURRENT_TIMESTAMP", upsertStrategy = LazyFieldStrategy.NEVER, columnType = "datetime", extra = " on update CURRENT_TIMESTAMP")
+ private LocalDateTime createTime;
+
+ /**
+ * 描述
+ */
+ @Schema(description = "描述", name = "describe", example = "")
+ @LazyTableField(name = "describe", comment = "描述", columnType = "varchar(255)")
+ private String describe;
+
+ /**
+ * 用户ID
+ */
+ @Schema(description = "用户ID", name = "id", example = "")
+ @LazyTableFieldId(name = "id", comment = "用户ID")
+ private Long id;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ @LazyTableField(name = "is_deleted", comment = "是否删除", columnType = "tinyint(1)")
+ private Boolean isDeleted;
+
+ /**
+ * 更新时间
+ */
+ @Schema(description = "更新时间", name = "updateTime", example = "")
+ @LazyTableField(name = "update_time", comment = "更新时间", defaultValue = "CURRENT_TIMESTAMP", upsertStrategy = LazyFieldStrategy.NEVER, columnType = "datetime", extra = " on update CURRENT_TIMESTAMP")
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ @LazyTableFieldUnique(name = "visitor_port", comment = "访客端口", columnType = "int")
+ private Integer visitorPort;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/VisitorPortFlowDO.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/VisitorPortFlowDO.java
new file mode 100644
index 0000000..0191228
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/entity/VisitorPortFlowDO.java
@@ -0,0 +1,80 @@
+package wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity;
+
+import com.wu.framework.inner.lazy.stereotype.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureEntity
+ **/
+@Data
+@Accessors(chain = true)
+@LazyTable(tableName = "visitor_port_flow", comment = "访客端流量")
+@Schema(title = "visitor_port_flow", description = "访客端流量")
+public class VisitorPortFlowDO {
+
+
+ /**
+ * 客户端ID
+ */
+ @Schema(description = "客户端ID", name = "clientId", example = "")
+ @LazyTableFieldUnique(name = "client_id", comment = "客户端ID", columnType = "varchar(50)")
+ private String clientId;
+
+ /**
+ * 创建时间
+ */
+ @Schema(description = "创建时间", name = "createTime", example = "")
+ @LazyTableFieldCreateTime
+ private LocalDateTime createTime;
+
+ /**
+ * 主键
+ */
+ @Schema(description = "主键", name = "id", example = "")
+ @LazyTableFieldId(name = "id", comment = "主键")
+ private Long id;
+
+ /**
+ * 当前访客当前进口流量
+ */
+ @Schema(description = "当前访客当前进口流量", name = "inFlow", example = "")
+ @LazyTableField(name = "in_flow", comment = "当前访客当前进口流量", columnType = "int")
+ private Integer inFlow;
+
+ /**
+ * 是否删除
+ */
+ @Schema(description = "是否删除", name = "isDeleted", example = "")
+ @LazyTableField(name = "is_deleted", comment = "是否删除", defaultValue = "'0'", upsertStrategy = LazyFieldStrategy.NEVER, columnType = "tinyint")
+ private Boolean isDeleted;
+
+ /**
+ * 当前访客出口流量
+ */
+ @Schema(description = "当前访客出口流量", name = "outFlow", example = "")
+ @LazyTableField(name = "out_flow", comment = "当前访客出口流量", columnType = "int")
+ private Integer outFlow;
+
+ /**
+ * 修改时间
+ */
+ @Schema(description = "修改时间", name = "updateTime", example = "")
+ @LazyTableFieldUpdateTime
+ private LocalDateTime updateTime;
+
+ /**
+ * 访客端口
+ */
+ @Schema(description = "访客端口", name = "visitorPort", example = "")
+ @LazyTableFieldUnique(name = "visitor_port", comment = "访客端口", columnType = "int")
+ private Integer visitorPort;
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/InternalNetworkPenetrationMappingMapper.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/InternalNetworkPenetrationMappingMapper.java
index 95fdebc..4dcb202 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/InternalNetworkPenetrationMappingMapper.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/InternalNetworkPenetrationMappingMapper.java
@@ -1,15 +1,14 @@
package wu.framework.lazy.cloud.heartbeat.server.infrastructure.mapper;
/**
- * describe 内网穿透映射
+ * describe 内网穿透映射
*
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureMapper
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureMapper
**/
public interface InternalNetworkPenetrationMappingMapper {
-
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/NettyClientBlacklistMapper.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/NettyClientBlacklistMapper.java
index c8749ba..a2cf06c 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/NettyClientBlacklistMapper.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/NettyClientBlacklistMapper.java
@@ -1,15 +1,14 @@
package wu.framework.lazy.cloud.heartbeat.server.infrastructure.mapper;
/**
- * describe 客户端黑名单
+ * describe 客户端黑名单
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureMapper
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureMapper
**/
public interface NettyClientBlacklistMapper {
-
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/NettyClientStateMapper.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/NettyClientStateMapper.java
index af09b4c..df17f6c 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/NettyClientStateMapper.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/NettyClientStateMapper.java
@@ -1,15 +1,14 @@
package wu.framework.lazy.cloud.heartbeat.server.infrastructure.mapper;
/**
- * describe 客户端状态
+ * describe 客户端状态
*
* @author Jia wei Wu
* @date 2023/12/27 03:46 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureMapper
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureMapper
**/
public interface NettyClientStateMapper {
-
}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/NettyServerVisitorMapper.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/NettyServerVisitorMapper.java
new file mode 100644
index 0000000..de96672
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/NettyServerVisitorMapper.java
@@ -0,0 +1,14 @@
+package wu.framework.lazy.cloud.heartbeat.server.infrastructure.mapper;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:21 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureMapper
+ **/
+
+public interface NettyServerVisitorMapper {
+
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/NettyServerVisitorPortMapper.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/NettyServerVisitorPortMapper.java
new file mode 100644
index 0000000..dbf1ffd
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/NettyServerVisitorPortMapper.java
@@ -0,0 +1,14 @@
+package wu.framework.lazy.cloud.heartbeat.server.infrastructure.mapper;
+
+/**
+ * describe 服务端提前开放出来的端口
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/16 02:13 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureMapper
+ **/
+
+public interface NettyServerVisitorPortMapper {
+
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/VisitorPortFlowMapper.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/VisitorPortFlowMapper.java
new file mode 100644
index 0000000..2df06d4
--- /dev/null
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/mapper/VisitorPortFlowMapper.java
@@ -0,0 +1,14 @@
+package wu.framework.lazy.cloud.heartbeat.server.infrastructure.mapper;
+
+/**
+ * describe 访客端流量
+ *
+ * @author Jia wei Wu
+ * @date 2024/01/24 05:19 下午
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureMapper
+ **/
+
+public interface VisitorPortFlowMapper {
+
+
+}
\ No newline at end of file
diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/persistence/InternalNetworkPenetrationMappingRepositoryImpl.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/persistence/InternalNetworkPenetrationMappingRepositoryImpl.java
index dad2a89..4a8eb0c 100644
--- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/persistence/InternalNetworkPenetrationMappingRepositoryImpl.java
+++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/infrastructure/persistence/InternalNetworkPenetrationMappingRepositoryImpl.java
@@ -1,9 +1,5 @@
package wu.framework.lazy.cloud.heartbeat.server.infrastructure.persistence;
-import wu.framework.lazy.cloud.heartbeat.server.infrastructure.converter.InternalNetworkPenetrationMappingConverter;
-import wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity.InternalNetworkPenetrationMappingDO;
-import wu.framework.lazy.cloud.heartbeat.server.model.internal.network.penetration.mapping.InternalNetworkPenetrationMapping;
-import wu.framework.lazy.cloud.heartbeat.server.model.internal.network.penetration.mapping.InternalNetworkPenetrationMappingRepository;
import com.wu.framework.inner.lazy.database.expand.database.persistence.domain.LazyPage;
import com.wu.framework.inner.lazy.database.expand.database.persistence.stream.lambda.LazyLambdaStream;
import com.wu.framework.inner.lazy.database.expand.database.persistence.stream.wrapper.LazyWrappers;
@@ -11,18 +7,23 @@ import com.wu.framework.response.Result;
import com.wu.framework.response.ResultFactory;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Repository;
+import wu.framework.lazy.cloud.heartbeat.server.infrastructure.converter.InternalNetworkPenetrationMappingConverter;
+import wu.framework.lazy.cloud.heartbeat.server.infrastructure.entity.InternalNetworkPenetrationMappingDO;
+import wu.framework.lazy.cloud.heartbeat.server.model.internal.network.penetration.mapping.InternalNetworkPenetrationMapping;
+import wu.framework.lazy.cloud.heartbeat.server.model.internal.network.penetration.mapping.InternalNetworkPenetrationMappingRepository;
import java.util.List;
import java.util.stream.Collectors;
+
/**
- * describe 内网穿透映射
+ * describe 内网穿透映射
*
* @author Jia wei Wu
* @date 2023/12/29 05:21 下午
- * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructurePersistence
+ * @see com.wu.framework.inner.lazy.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructurePersistence
**/
@Repository
-public class InternalNetworkPenetrationMappingRepositoryImpl implements InternalNetworkPenetrationMappingRepository {
+public class InternalNetworkPenetrationMappingRepositoryImpl implements InternalNetworkPenetrationMappingRepository {
@Resource
LazyLambdaStream lazyLambdaStream;
@@ -30,9 +31,8 @@ public class InternalNetworkPenetrationMappingRepositoryImpl implements Intern
/**
* describe 新增内网穿透映射
*
- * @param internalNetworkPenetrationMapping 新增内网穿透映射
- * @return {@link Result