diff --git a/admin/admin-biz/pom.xml b/admin/admin-biz/pom.xml
index 474b5e3c05d656c78014b98d648c87cfd8acca99..d8fd4197e695b022cb92bb47d37497e198f3945b 100644
--- a/admin/admin-biz/pom.xml
+++ b/admin/admin-biz/pom.xml
@@ -27,5 +27,14 @@
ddk-common
${project.version}
+
+
+ cn.icanci.loopstack
+ lsi-event
+
+
+ cn.icanci.loopstack
+ lsi-api
+
\ No newline at end of file
diff --git a/admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/config/ConfigurationBeans.java b/admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/config/ConfigurationBeans.java
new file mode 100644
index 0000000000000000000000000000000000000000..f02884b7a0a90897dba91e560637a855a21dcb8b
--- /dev/null
+++ b/admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/config/ConfigurationBeans.java
@@ -0,0 +1,36 @@
+package cn.icanci.loopstack.ddk.admin.biz.config;
+
+import cn.icanci.loopstack.ddk.common.client.Client;
+import cn.icanci.loopstack.ddk.common.client.http.HttpClientImpl;
+import cn.icanci.loopstack.lsi.event.DefaultEventDispatcher;
+import cn.icanci.loopstack.lsi.event.EventDispatcher;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author icanci(1205068)
+ * @version Id: Config, v 0.1 2022/12/24 20:22 icanci Exp $
+ */
+@Configuration
+public class ConfigurationBeans {
+ /**
+ * 事件分发器
+ *
+ * @return 返回事件分发器
+ */
+ @Bean(name = "eventDispatcher")
+ public EventDispatcher eventDispatcher() {
+ return new DefaultEventDispatcher();
+ }
+
+ /**
+ * 事件分发器
+ *
+ * @return 返回事件分发器
+ */
+ @Bean(name = "HttpClient")
+ public Client httpClient() {
+ return HttpClientImpl.getInstance();
+ }
+}
\ No newline at end of file
diff --git a/admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/event/log/LogEvent.java b/admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/event/log/LogEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..7e2e4bc3215b1e58f1b3f4459c8decf132156fd4
--- /dev/null
+++ b/admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/event/log/LogEvent.java
@@ -0,0 +1,16 @@
+package cn.icanci.loopstack.ddk.admin.biz.event.log;
+
+import cn.icanci.loopstack.lsi.event.BaseEvent;
+
+import org.springframework.stereotype.Component;
+
+/**
+ * 日志事件监听
+ *
+ * @author icanci
+ * @since 1.0 Created in 2022/12/24 20:39
+ */
+@Component
+public class LogEvent extends BaseEvent {
+
+}
diff --git a/admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/event/log/LogEventListener.java b/admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/event/log/LogEventListener.java
new file mode 100644
index 0000000000000000000000000000000000000000..9893964be75cefef3e83cbead2415d7f24d69ce5
--- /dev/null
+++ b/admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/event/log/LogEventListener.java
@@ -0,0 +1,20 @@
+package cn.icanci.loopstack.ddk.admin.biz.event.log;
+
+import cn.icanci.loopstack.lsi.event.BaseEventListener;
+
+import org.springframework.stereotype.Service;
+
+/**
+ * 日志事件监听
+ *
+ * @author icanci
+ * @since 1.0 Created in 2022/12/24 20:40
+ */
+@Service
+public class LogEventListener extends BaseEventListener {
+
+ @Override
+ protected void event(LogEvent event) {
+ System.out.println(event);
+ }
+}
diff --git a/admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/event/package-info.java b/admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/event/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..dd26271f682d63b07da106ea38d3fc8da9070e8f
--- /dev/null
+++ b/admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/event/package-info.java
@@ -0,0 +1,5 @@
+/**
+ * @author icanci
+ * @since 1.0 Created in 2022/12/24 20:39
+ */
+package cn.icanci.loopstack.ddk.admin.biz.event;
\ No newline at end of file
diff --git a/admin/admin-dal/config/gen.properties b/admin/admin-dal/config/gen.properties
index d0a5364862e9e830ad4476d73c5bbe5dd00e7c2c..3ed16159950672344092e4a5968afe3529efa242 100644
--- a/admin/admin-dal/config/gen.properties
+++ b/admin/admin-dal/config/gen.properties
@@ -1,12 +1,24 @@
+# \u6570\u636E\u5E93
dataBase=ddk
+# \u6570\u636E\u5E93\u6E20\u9053
driver=com.mysql.cj.jdbc.Driver
+# \u6570\u636E\u5E93\u540D\u5B57
loginName=root
+# \u6570\u636E\u5E93\u5BC6\u7801
password=root
+# \u6570\u636E\u5E93\u8FDE\u63A5
connectUrl=jdbc:mysql://127.0.0.1:3306/ddk?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&useSSL=false
+# \u9700\u8981\u79FB\u9664\u7684\u8868\u524D\u7F00\uFF0C\u591A\u4E2A\u4F7F\u7528;\u5206\u9694
removePreTable=ddk_
+# \u6570\u636E\u6A21\u5757\uFF0C\u591A\u6570\u636E\u6E90\u53EF\u914D\u7F6E\u4E0D\u540C\u7684dbModule\uFF0C\u4F1A\u81EA\u52A8\u5206\u5305
dbModule=
+# \u9700\u8981\u652F\u6301\u9006\u5411\u7684\u6570\u636E\u8868\uFF0C\u5168\u90E8\u5219\u586B\u5199*; \u975E\u5168\u90E8\u5219\u4F7F\u7528;\u53F7\u9694\u79BB\u6BD4\u5982: a;b;c;d;
include=*;
+# \u9700\u8981\u751F\u6210\u7684\u5305\u540D\u5B57
packageName=cn.icanci.loopstack.ddk.admin.dal.mapper
+# \u751F\u6210\u6587\u4EF6\u7684\u4F5C\u8005
authorName=icanci
+# \u63D2\u4EF6\u7684\u5750\u6807\u548C\u6A21\u5757\u5FC5\u987B\u653E\u5728\u4E00\u8D77(\u76F8\u5BF9\u4E8E\u7236pom\u7684\u6587\u4EF6\u5939\u540D\u5B57\u8DEF\u5F84\uFF0C\u975E\u6A21\u5757\u540D\u5B57!)
projectPath=admin/admin-dal
+# \u81EA\u5B9A\u4E49Handle\u5305\u542B\u9879, \u73B0\u6709\u81EA\u5B9A\u4E49\u6A21\u5757\uFF1ADataMdImpl, *\u53F7\u9ED8\u8BA4\u5305\u542B\u6240\u6709\uFF0C\u4EE5;\u53F7\u9694\u79BB\u6BD4\u5982: a;b;c;d;
customHandleInclude=DataMdImpl;
diff --git a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/App.java b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/App.java
index c6bd0fb9613e0490507ddf9b852bf7e0ef1b35e7..d2dbd30a89ee327b69351291fffa5e7cfc5cc30d 100644
--- a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/App.java
+++ b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/App.java
@@ -2,15 +2,13 @@ package cn.icanci.loopstack.ddk.admin.dal.mapper.entity;
import java.io.Serializable;
import java.util.Date;
-import java.util.List;
-import java.math.BigDecimal;
/**
* DdkApp
* ⚠️ 修改之后请勿使用生成器再次生成,否则会覆盖修改
*
* @author icanci
-* @since 1.0 Created in 2022/12/24 18:28
+* @since 1.0 Created in 2022/12/24 18:57
*/
public class App implements Serializable {
diff --git a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/AppConfig.java b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/AppConfig.java
index 824b6f3e5a325e19b9953a98667d85a78ddb0d5d..bdd13ea14fa5a2b583e2019c7ef35123ba4647e9 100644
--- a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/AppConfig.java
+++ b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/AppConfig.java
@@ -10,7 +10,7 @@ import java.math.BigDecimal;
* ⚠️ 修改之后请勿使用生成器再次生成,否则会覆盖修改
*
* @author icanci
-* @since 1.0 Created in 2022/12/24 18:28
+* @since 1.0 Created in 2022/12/24 18:57
*/
public class AppConfig implements Serializable {
diff --git a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/GroupKey.java b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/GroupKey.java
index 0e0ed327b7946026294e30f1db7139593cdf9b16..62d4e08fd0d9563f7be76816528c6531ead417b4 100644
--- a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/GroupKey.java
+++ b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/GroupKey.java
@@ -2,13 +2,15 @@ package cn.icanci.loopstack.ddk.admin.dal.mapper.entity;
import java.io.Serializable;
import java.util.Date;
+import java.util.List;
+import java.math.BigDecimal;
/**
* DdkGroup
* ⚠️ 修改之后请勿使用生成器再次生成,否则会覆盖修改
*
* @author icanci
-* @since 1.0 Created in 2022/12/24 18:28
+* @since 1.0 Created in 2022/12/24 18:57
*/
public class GroupKey implements Serializable {
diff --git a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/NoticeConfig.java b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/NoticeConfig.java
index 575f82404da45aaafb1b99470d88e427811c6b05..3a1c768c78df77e1088d6615325a5067392a3597 100644
--- a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/NoticeConfig.java
+++ b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/NoticeConfig.java
@@ -10,7 +10,7 @@ import java.math.BigDecimal;
* ⚠️ 修改之后请勿使用生成器再次生成,否则会覆盖修改
*
* @author icanci
-* @since 1.0 Created in 2022/12/24 18:28
+* @since 1.0 Created in 2022/12/24 18:57
*/
public class NoticeConfig implements Serializable {
diff --git a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/Register.java b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/Register.java
new file mode 100644
index 0000000000000000000000000000000000000000..2917f90bec00f542c2c6d3dc04036d061682f0c7
--- /dev/null
+++ b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/Register.java
@@ -0,0 +1,174 @@
+package cn.icanci.loopstack.ddk.admin.dal.mapper.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+import java.math.BigDecimal;
+
+/**
+* DdkRegister
+* ⚠️ 修改之后请勿使用生成器再次生成,否则会覆盖修改
+*
+* @author icanci
+* @since 1.0 Created in 2022/12/24 18:57
+*/
+public class Register implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id 主键
+ */
+ private Long id;
+
+ /**
+ * uuid 雪花算法随机UUID
+ */
+ private String uuid;
+
+ /**
+ * desc 功能描述
+ */
+ private String descKey;
+
+ /**
+ * create_time 创建时间
+ */
+ private Date createTime;
+
+ /**
+ * update_time 更新时间
+ */
+ private Date updateTime;
+
+ /**
+ * is_delete 状态 1无效,0有效
+ */
+ private Integer isDelete;
+
+ /**
+ * env 环境
+ */
+ private String env;
+
+ /**
+ * client_address client 服务ip地址
+ */
+ private String clientAddress;
+
+ /**
+ * client_port client 服务端口
+ */
+ private Integer clientPort;
+
+ /**
+ * app_id client 服务服务id
+ */
+ private String appId;
+
+ /**
+ * register_time 服务注册时间
+ */
+ private Date registerTime;
+
+ /**
+ * last_update_time 上次注册更新时间
+ */
+ private Date lastUpdateTime;
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
+
+ public String getUuid() {
+ return this.uuid;
+ }
+
+ public void setDescKey(String descKey) {
+ this.descKey = descKey;
+ }
+
+ public String getDescKey() {
+ return this.descKey;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public Date getCreateTime() {
+ return this.createTime;
+ }
+
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public Date getUpdateTime() {
+ return this.updateTime;
+ }
+
+ public void setIsDelete(Integer isDelete) {
+ this.isDelete = isDelete;
+ }
+
+ public Integer getIsDelete() {
+ return this.isDelete;
+ }
+
+ public void setEnv(String env) {
+ this.env = env;
+ }
+
+ public String getEnv() {
+ return this.env;
+ }
+
+ public void setClientAddress(String clientAddress) {
+ this.clientAddress = clientAddress;
+ }
+
+ public String getClientAddress() {
+ return this.clientAddress;
+ }
+
+ public void setClientPort(Integer clientPort) {
+ this.clientPort = clientPort;
+ }
+
+ public Integer getClientPort() {
+ return this.clientPort;
+ }
+
+ public void setAppId(String appId) {
+ this.appId = appId;
+ }
+
+ public String getAppId() {
+ return this.appId;
+ }
+
+ public void setRegisterTime(Date registerTime) {
+ this.registerTime = registerTime;
+ }
+
+ public Date getRegisterTime() {
+ return this.registerTime;
+ }
+
+ public void setLastUpdateTime(Date lastUpdateTime) {
+ this.lastUpdateTime = lastUpdateTime;
+ }
+
+ public Date getLastUpdateTime() {
+ return this.lastUpdateTime;
+ }
+}
\ No newline at end of file
diff --git a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/Team.java b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/Team.java
index 84aa92e6ac6284936b2d845cbf67089be89818a4..153b2697d76a4a1f24ab9c16c322a81cebf64388 100644
--- a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/Team.java
+++ b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/Team.java
@@ -10,7 +10,7 @@ import java.math.BigDecimal;
* ⚠️ 修改之后请勿使用生成器再次生成,否则会覆盖修改
*
* @author icanci
-* @since 1.0 Created in 2022/12/24 18:28
+* @since 1.0 Created in 2022/12/24 18:57
*/
public class Team implements Serializable {
diff --git a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/AppConfigMapper.java b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/AppConfigMapper.java
index 31736f0a050d8135851253f24bbac0ece7aca905..688bc0c4ab34952398061e6231f358ba7caf72a7 100644
--- a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/AppConfigMapper.java
+++ b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/AppConfigMapper.java
@@ -11,7 +11,7 @@ import java.util.List;
* ⚠️ 修改之后请勿使用生成器再次生成,否则会覆盖修改
*
* @author icanci
-* @since 1.0 Created in 2022/12/24 18:28
+* @since 1.0 Created in 2022/12/24 18:57
*/
@Mapper
public interface AppConfigMapper {
diff --git a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/AppMapper.java b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/AppMapper.java
index 60c6d049a265ad0ca13b16cb5a4ad1cf9d1d7889..78efa761142b12bec8134cea2521898feadb10ef 100644
--- a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/AppMapper.java
+++ b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/AppMapper.java
@@ -11,7 +11,7 @@ import java.util.List;
* ⚠️ 修改之后请勿使用生成器再次生成,否则会覆盖修改
*
* @author icanci
-* @since 1.0 Created in 2022/12/24 18:28
+* @since 1.0 Created in 2022/12/24 18:57
*/
@Mapper
public interface AppMapper {
diff --git a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/GroupKeyMapper.java b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/GroupKeyMapper.java
index 098725aa48e0800ee99af048a5058864e9485748..01b749912b5cfd6847522e6b0001daa02ea2a2fe 100644
--- a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/GroupKeyMapper.java
+++ b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/GroupKeyMapper.java
@@ -11,7 +11,7 @@ import java.util.List;
* ⚠️ 修改之后请勿使用生成器再次生成,否则会覆盖修改
*
* @author icanci
-* @since 1.0 Created in 2022/12/24 18:28
+* @since 1.0 Created in 2022/12/24 18:57
*/
@Mapper
public interface GroupKeyMapper {
diff --git a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/NoticeConfigMapper.java b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/NoticeConfigMapper.java
index 2589b1a9d4e5288a80f6285a3e0299b204ed2cc1..d0aa9c7834e20c5f3851a70fb6318b4285acfdff 100644
--- a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/NoticeConfigMapper.java
+++ b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/NoticeConfigMapper.java
@@ -11,7 +11,7 @@ import java.util.List;
* ⚠️ 修改之后请勿使用生成器再次生成,否则会覆盖修改
*
* @author icanci
-* @since 1.0 Created in 2022/12/24 18:28
+* @since 1.0 Created in 2022/12/24 18:57
*/
@Mapper
public interface NoticeConfigMapper {
diff --git a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/RegisterMapper.java b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/RegisterMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..b55ef027b20f6b63bb54ca62828dd07fda51cee5
--- /dev/null
+++ b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/RegisterMapper.java
@@ -0,0 +1,83 @@
+package cn.icanci.loopstack.ddk.admin.dal.mapper.mapper;
+
+import cn.icanci.loopstack.ddk.admin.dal.mapper.entity.*;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+* DdkRegisterMapper
+* ⚠️ 修改之后请勿使用生成器再次生成,否则会覆盖修改
+*
+* @author icanci
+* @since 1.0 Created in 2022/12/24 18:57
+*/
+@Mapper
+public interface RegisterMapper {
+
+ /**
+ * 新增一条记录
+ *
+ * @param ddkRegister 新增数据
+ **/
+ int insert(Register ddkRegister);
+
+ /**
+ * 新增多条记录
+ *
+ * @param list 新增数据列表
+ **/
+ int batchInsert(List list);
+
+ /**
+ * 更新一条记录
+ *
+ * @param ddkRegister 更新的数据
+ **/
+ int update(Register ddkRegister);
+
+ /**
+ * 根据id删除一条记录
+ *
+ * @param key 主键
+ **/
+ int delete(Object key);
+
+ /**
+ * 批量删除操作
+ *
+ * @param list 删除的数据
+ **/
+ int batchDelete(List