From 2ddc0eeaa8e09b72eee0ccf58b44b136fbcf2b08 Mon Sep 17 00:00:00 2001 From: icanci Date: Mon, 26 Dec 2022 11:46:00 +0800 Subject: [PATCH] ddk --- admin/admin-biz/pom.xml | 9 + .../admin/biz/config/ConfigurationBeans.java | 36 ++ .../ddk/admin/biz/event/log/LogEvent.java | 16 + .../admin/biz/event/log/LogEventListener.java | 20 ++ .../ddk/admin/biz/event/package-info.java | 5 + admin/admin-dal/config/gen.properties | 12 + .../ddk/admin/dal/mapper/entity/App.java | 4 +- .../admin/dal/mapper/entity/AppConfig.java | 2 +- .../ddk/admin/dal/mapper/entity/GroupKey.java | 4 +- .../admin/dal/mapper/entity/NoticeConfig.java | 2 +- .../ddk/admin/dal/mapper/entity/Register.java | 174 ++++++++++ .../ddk/admin/dal/mapper/entity/Team.java | 2 +- .../dal/mapper/mapper/AppConfigMapper.java | 2 +- .../admin/dal/mapper/mapper/AppMapper.java | 2 +- .../dal/mapper/mapper/GroupKeyMapper.java | 2 +- .../dal/mapper/mapper/NoticeConfigMapper.java | 2 +- .../dal/mapper/mapper/RegisterMapper.java | 83 +++++ .../admin/dal/mapper/mapper/TeamMapper.java | 2 +- .../src/main/resources/DataSource.md | 16 + .../mybatis/mapper/RegisterMapper.xml | 315 ++++++++++++++++++ .../ddk/common/enums/BooleanEnum.java | 38 +++ pom.xml | 14 +- spi/pom.xml | 26 -- .../spi/event/AbstractEventDispatcher.java | 77 ----- .../loopstack/ddk/spi/event/BaseEvent.java | 18 - .../ddk/spi/event/BaseEventListener.java | 47 --- .../ddk/spi/event/DefaultEventDispatcher.java | 137 -------- .../ddk/spi/event/EventDispatcher.java | 24 -- .../loopstack/ddk/spi/event/EventHandler.java | 25 -- .../ddk/spi/event/ListenerComparator.java | 14 - .../loopstack/ddk/spi/package-info.java | 5 - 31 files changed, 749 insertions(+), 386 deletions(-) create mode 100644 admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/config/ConfigurationBeans.java create mode 100644 admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/event/log/LogEvent.java create mode 100644 admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/event/log/LogEventListener.java create mode 100644 admin/admin-biz/src/main/java/cn/icanci/loopstack/ddk/admin/biz/event/package-info.java create mode 100644 admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/entity/Register.java create mode 100644 admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/RegisterMapper.java create mode 100644 admin/admin-dal/src/main/resources/mybatis/mapper/RegisterMapper.xml create mode 100644 common/src/main/java/cn/icanci/loopstack/ddk/common/enums/BooleanEnum.java delete mode 100644 spi/pom.xml delete mode 100644 spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/AbstractEventDispatcher.java delete mode 100644 spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/BaseEvent.java delete mode 100644 spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/BaseEventListener.java delete mode 100644 spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/DefaultEventDispatcher.java delete mode 100644 spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/EventDispatcher.java delete mode 100644 spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/EventHandler.java delete mode 100644 spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/ListenerComparator.java delete mode 100644 spi/src/main/java/cn/icanci/loopstack/ddk/spi/package-info.java diff --git a/admin/admin-biz/pom.xml b/admin/admin-biz/pom.xml index 474b5e3..d8fd419 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 0000000..f02884b --- /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 0000000..7e2e4bc --- /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 0000000..9893964 --- /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 0000000..dd26271 --- /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 d0a5364..3ed1615 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 c6bd0fb..d2dbd30 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 824b6f3..bdd13ea 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 0e0ed32..62d4e08 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 575f824..3a1c768 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 0000000..2917f90 --- /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 84aa92e..153b269 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 31736f0..688bc0c 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 60c6d04..78efa76 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 098725a..01b7499 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 2589b1a..d0aa9c7 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 0000000..b55ef02 --- /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 list); + + /** + * 根据主键查询 + * + * @param key 主键 + **/ + Register selectByKey(Object key); + + /** + * 根据条件查询 + * + * @param ddkRegister 查询条件 + **/ + List selectList (Register ddkRegister); + + /** + * 分页条件查询 + * + * @param ddkRegister 查询条件 + * @param page 页 + * @param pageSize 每页大小 + **/ + List selectPage (@Param("ddkRegister") Register ddkRegister, @Param("page") Integer page, @Param("pageSize") Integer pageSize); + + /** + * 总量查询 + * + * @param ddkRegister 查询条件 + **/ + int total(Register ddkRegister); +} diff --git a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/TeamMapper.java b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/TeamMapper.java index a87e912..c6ec477 100644 --- a/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/TeamMapper.java +++ b/admin/admin-dal/src/main/java/cn/icanci/loopstack/ddk/admin/dal/mapper/mapper/TeamMapper.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 TeamMapper { diff --git a/admin/admin-dal/src/main/resources/DataSource.md b/admin/admin-dal/src/main/resources/DataSource.md index d942197..e16ab34 100644 --- a/admin/admin-dal/src/main/resources/DataSource.md +++ b/admin/admin-dal/src/main/resources/DataSource.md @@ -62,6 +62,22 @@ | noticeValue | notice_value | String | varchar | 200 | NO | 测试配置值,因为可能通过配置值进行特殊处理 | | appUuid | app_uuid | String | varchar | 40 | NO | 项目关联uuid,多个则会有多条记录 | +## ddk_register表结构说明 +| 代码字段名 | 字段名 | 数据类型(代码) | 数据类型 | 长度 | NullAble | 注释 | +| :--------- | ------ | ---------------- | -------- | ---- | -------------- | ---- | +| id | id | Long | bigint | 19 | NO | 主键 | +| uuid | uuid | String | varchar | 40 | NO | 雪花算法随机UUID | +| descKey | desc | String | varchar | 80 | NO | 功能描述 | +| createTime | create_time | Date | datetime | | NO | 创建时间 | +| updateTime | update_time | Date | datetime | | NO | 更新时间 | +| isDelete | is_delete | Integer | int | 10 | NO | 状态 1无效,0有效 | +| env | env | String | varchar | 16 | NO | 环境 | +| clientAddress | client_address | String | varchar | 40 | NO | client 服务ip地址 | +| clientPort | client_port | Integer | int | 10 | NO | client 服务端口 | +| appId | app_id | String | varchar | 40 | NO | client 服务服务id | +| registerTime | register_time | Date | datetime | | NO | 服务注册时间 | +| lastUpdateTime | last_update_time | Date | datetime | | NO | 上次注册更新时间 | + ## ddk_team表结构说明 | 代码字段名 | 字段名 | 数据类型(代码) | 数据类型 | 长度 | NullAble | 注释 | | :--------- | ------ | ---------------- | -------- | ---- | -------------- | ---- | diff --git a/admin/admin-dal/src/main/resources/mybatis/mapper/RegisterMapper.xml b/admin/admin-dal/src/main/resources/mybatis/mapper/RegisterMapper.xml new file mode 100644 index 0000000..800d609 --- /dev/null +++ b/admin/admin-dal/src/main/resources/mybatis/mapper/RegisterMapper.xml @@ -0,0 +1,315 @@ + + + + + + + + + + + + + + + + + + + + + + `id`, + `uuid`, + `desc`, + `create_time`, + `update_time`, + `is_delete`, + `env`, + `client_address`, + `client_port`, + `app_id`, + `register_time`, + `last_update_time` + + + + + INSERT INTO ddk_register + + + `id`, + + + `uuid`, + + + `desc`, + + + `create_time`, + + + `update_time`, + + + `is_delete`, + + + `env`, + + + `client_address`, + + + `client_port`, + + + `app_id`, + + + `register_time`, + + + `last_update_time` + + + + + #{id}, + + + #{uuid}, + + + #{descKey}, + + + #{createTime}, + + + #{updateTime}, + + + #{isDelete}, + + + #{env}, + + + #{clientAddress}, + + + #{clientPort}, + + + #{appId}, + + + #{registerTime}, + + + #{lastUpdateTime} + + + + + + + INSERT INTO ddk_register ( + + ) VALUES + + ( + #{curr.id}, + #{curr.uuid}, + #{curr.descKey}, + #{curr.createTime}, + #{curr.updateTime}, + #{curr.isDelete}, + #{curr.env}, + #{curr.clientAddress}, + #{curr.clientPort}, + #{curr.appId}, + #{curr.registerTime}, + #{curr.lastUpdateTime} + ) + + + + + + UPDATE ddk_register + + `uuid` = #{uuid}, + `desc` = #{descKey}, + `create_time` = #{createTime}, + `update_time` = #{updateTime}, + `is_delete` = #{isDelete}, + `env` = #{env}, + `client_address` = #{clientAddress}, + `client_port` = #{clientPort}, + `app_id` = #{appId}, + `register_time` = #{registerTime}, + `last_update_time` = #{lastUpdateTime} + + WHERE `id` = #{id} + + + + + DELETE FROM ddk_register + WHERE `id` = #{key} + + + + + DELETE FROM ddk_register WHERE id IN + + #{item} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/java/cn/icanci/loopstack/ddk/common/enums/BooleanEnum.java b/common/src/main/java/cn/icanci/loopstack/ddk/common/enums/BooleanEnum.java new file mode 100644 index 0000000..abb1ad9 --- /dev/null +++ b/common/src/main/java/cn/icanci/loopstack/ddk/common/enums/BooleanEnum.java @@ -0,0 +1,38 @@ +package cn.icanci.loopstack.ddk.common.enums; + +/** + * @author icanci + * @since 1.0 Created in 2022/12/24 19:51 + */ +public enum BooleanEnum { + /** + * Y + */ + YES(1, "YES"), + /** + * N + */ + NO(0, "NO"); + + BooleanEnum(int code, String desc) { + this.code = code; + this.desc = desc; + } + + /** + * code + */ + private final int code; + /** + * desc + */ + private final String desc; + + public int getCode() { + return code; + } + + public String getDesc() { + return desc; + } +} diff --git a/pom.xml b/pom.xml index dbf1af2..8e02426 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,6 @@ admin client common - spi DDK @@ -59,6 +58,8 @@ 5.4.2 4.1.63.Final + + 0.0.0.1-SNAPSHOT @@ -180,6 +181,17 @@ netty-all ${netty-all.version} + + + cn.icanci.loopstack + lsi-event + ${lsi.version} + + + cn.icanci.loopstack + lsi-api + ${lsi.version} + diff --git a/spi/pom.xml b/spi/pom.xml deleted file mode 100644 index 27e8e0d..0000000 --- a/spi/pom.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - ddk-parent - cn.icanci.loopstack.ddk - 1.0-SNAPSHOT - - 4.0.0 - - ddk-spi - - - 8 - 8 - - - - - - org.springframework.boot - spring-boot-starter-web - - - \ No newline at end of file diff --git a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/AbstractEventDispatcher.java b/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/AbstractEventDispatcher.java deleted file mode 100644 index 1268a70..0000000 --- a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/AbstractEventDispatcher.java +++ /dev/null @@ -1,77 +0,0 @@ -package cn.icanci.loopstack.ddk.spi.event; - -import java.util.*; -import java.util.concurrent.*; - -import org.springframework.beans.BeansException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; - -/** - * 事件分发抽象处理器 - * - * @author icanci - * @since 1.0 Created in 2022/11/11 18:01 - */ -public abstract class AbstractEventDispatcher implements EventDispatcher, ApplicationContextAware { - /** - * Spring 容器 - */ - protected ApplicationContext applicationContext; - /** - * 事件监听器列表 - */ - protected Map, List> eventListMap = new ConcurrentHashMap<>(); - /** - * 监听器 - */ - protected List listeners = new LinkedList(); - /** - * 注册事件类型 - */ - protected Set> eventClasses = new HashSet<>(); - /** - * 排序器 - */ - protected static final ListenerComparator LISTENER_COMPARATOR = new ListenerComparator(); - /** - * 线程池核心大小 - */ - private static final int CORE_SIZE = Runtime.getRuntime().availableProcessors(); - /** - * 线程池 - */ - protected static final ThreadPoolExecutor EVENT_POOL = new ThreadPoolExecutor(CORE_SIZE, // - CORE_SIZE << 1, // - 60L, // - TimeUnit.SECONDS, // - new LinkedBlockingQueue<>(2000), // - runnable -> new Thread(runnable, "AbstractEventDispatcher Pool-" + runnable.hashCode()), // - (r, executor) -> { - throw new RuntimeException("AbstractEventDispatcher Pool is EXHAUSTED!"); - }); - - private final Object lock = new Object(); - - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - this.applicationContext = applicationContext; - synchronized (lock) { - register(); - } - } - - /** - * 注册事件和监听器 - */ - protected abstract void register(); - - /** - * 获取事件执行线程池 - * - * @return 事件执行线程池 - */ - protected Executor getTaskPool() { - return EVENT_POOL; - } -} diff --git a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/BaseEvent.java b/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/BaseEvent.java deleted file mode 100644 index 44d4e7e..0000000 --- a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/BaseEvent.java +++ /dev/null @@ -1,18 +0,0 @@ -package cn.icanci.loopstack.ddk.spi.event; - -import java.util.EventObject; - -/** - * @author icanci - * @since 1.0 Created in 2022/11/11 18:01 - */ -public class BaseEvent extends EventObject { - - public BaseEvent(Object source) { - super(source); - } - - public BaseEvent() { - super("BaseEvent"); - } -} diff --git a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/BaseEventListener.java b/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/BaseEventListener.java deleted file mode 100644 index 4994d8d..0000000 --- a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/BaseEventListener.java +++ /dev/null @@ -1,47 +0,0 @@ -package cn.icanci.loopstack.ddk.spi.event; - -import java.util.EventListener; - -/** - * @author icanci - * @since 1.0 Created in 2022/11/11 18:01 - */ -public abstract class BaseEventListener implements EventListener { - - /** - * 接受Event方法 - * - * @param event 事件 - */ - protected abstract void event(T event); - - /** - * 处理 Event - * - * @param event 事件 - */ - public final void onEvent(T event) { - if (isSupport(event)) { - event(event); - } - } - - /** - * 是否支持 - * - * @param event event - * @return 返回是否支持 - */ - protected boolean isSupport(T event) { - return true; - } - - /** - * 监听器执行的顺序 数值越小,优先级越高 - * - * @return 返回顺序 - */ - protected int order() { - return 0; - } -} diff --git a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/DefaultEventDispatcher.java b/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/DefaultEventDispatcher.java deleted file mode 100644 index 8eac3f0..0000000 --- a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/DefaultEventDispatcher.java +++ /dev/null @@ -1,137 +0,0 @@ -package cn.icanci.loopstack.ddk.spi.event; - -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.concurrent.Executor; -import java.util.function.Consumer; - -/** - * 事件分发器默认实现 - * - * @author icanci - * @since 1.0 Created in 2022/11/11 18:01 - */ -public class DefaultEventDispatcher extends AbstractEventDispatcher { - - /** - * 注册事件和监听器 - */ - @Override - @SuppressWarnings("all") - protected void register() { - Map eventMap = applicationContext.getBeansOfType(BaseEvent.class); - for (BaseEvent bean : eventMap.values()) { - eventClasses.add(bean.getClass()); - } - - Map listenerMap = applicationContext.getBeansOfType(BaseEventListener.class); - for (BaseEventListener bean : listenerMap.values()) { - listeners.add(bean); - } - postEventListenerMapper(); - } - - /** - * 映射mapper - */ - private void postEventListenerMapper() { - if (listeners.isEmpty() || eventClasses.isEmpty()) { - return; - } - - for (Class eventClass : eventClasses) { - for (BaseEventListener listener : listeners) { - if (!isSupport(eventClass, listener)) { - continue; - } - List baseEventListeners = eventListMap.get(eventClass); - if (baseEventListeners == null || baseEventListeners.isEmpty()) { - baseEventListeners = new ArrayList<>(); - } - baseEventListeners.add(listener); - eventListMap.put(eventClass, baseEventListeners); - } - } - - // 清空 help gc - listeners = null; - eventClasses = null; - - // 排序 - Collection> listCollection = eventListMap.values(); - for (List baseEventListeners : listCollection) { - baseEventListeners.sort(LISTENER_COMPARATOR); - } - } - - /** - * 是否支持加入到listener - * - * @param eventClass eventClass - * @param listener listener - * @return 是否支持加入到listener - */ - private boolean isSupport(Class eventClass, BaseEventListener listener) { - Type type = listener.getClass().getGenericSuperclass(); - ParameterizedType parameterizedType = (ParameterizedType) type; - Type[] actualTypeArguments = parameterizedType.getActualTypeArguments(); - Type actualTypeArgument = actualTypeArguments[0]; - return eventClass == actualTypeArgument; - } - - /** - * 移除监听器 - * - * @param baseEvent baseEvent 事件 - * @param baseEventListener baseEventListener 监听器 - */ - public void remove(BaseEvent baseEvent, BaseEventListener baseEventListener) { - List listeners = eventListMap.get(baseEvent.getClass()); - if (listeners == null || listeners.isEmpty()) { - return; - } - listeners.remove(baseEventListener); - } - - /** - * 分发事件 - * - * @param baseEvent baseEvent - */ - @Override - public void fire(BaseEvent baseEvent) { - fire(baseEvent, true); - } - - /** - * 分发事件 - * - * @param baseEvent baseEvent - * @param sync 是否同步发送 - */ - @Override - public void fire(final BaseEvent baseEvent, boolean sync) { - final List listeners = eventListMap.get(baseEvent.getClass()); - if (listeners == null || listeners.isEmpty()) { - return; - } - - Consumer> consumer = sync ? baseEventListeners -> { - for (final BaseEventListener listener : baseEventListeners) { - listener.onEvent(baseEvent); - } - } : baseEventListeners -> { - Executor taskExecutor = getTaskPool(); - for (final BaseEventListener listener : baseEventListeners) { - taskExecutor.execute(new EventHandler(baseEvent, listener)); - } - }; - - consumer.accept(listeners); - } - -} diff --git a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/EventDispatcher.java b/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/EventDispatcher.java deleted file mode 100644 index 9bc1c7b..0000000 --- a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/EventDispatcher.java +++ /dev/null @@ -1,24 +0,0 @@ -package cn.icanci.loopstack.ddk.spi.event; - -/** - * 事件分发器抽象 - * - * @author icanci - * @since 1.0 Created in 2022/11/11 18:01 - */ -public interface EventDispatcher { - /** - * 分发事件 同步发送 - * - * @param event event - */ - void fire(final BaseEvent event); - - /** - * 分发事件 - * - * @param event event - * @param sync 是否同步发送 - */ - void fire(final BaseEvent event, boolean sync); -} diff --git a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/EventHandler.java b/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/EventHandler.java deleted file mode 100644 index 90526b6..0000000 --- a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/EventHandler.java +++ /dev/null @@ -1,25 +0,0 @@ -package cn.icanci.loopstack.ddk.spi.event; - -/** - * 事件执行 - * - * @author icanci - * @since 1.0 Created in 2022/11/11 18:01 - */ -public class EventHandler implements Runnable { - /** 事件 */ - private final BaseEvent event; - - /** 事件监听器 */ - private final BaseEventListener listener; - - public EventHandler(BaseEvent event, BaseEventListener listener) { - this.event = event; - this.listener = listener; - } - - @Override - public void run() { - listener.onEvent(event); - } -} diff --git a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/ListenerComparator.java b/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/ListenerComparator.java deleted file mode 100644 index 44f5b19..0000000 --- a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/event/ListenerComparator.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.icanci.loopstack.ddk.spi.event; - -import java.util.Comparator; - -/** - * @author icanci - * @since 1.0 Created in 2022/11/11 18:01 - */ -public class ListenerComparator implements Comparator { - @Override - public int compare(BaseEventListener o1, BaseEventListener o2) { - return o1.order() - o2.order(); - } -} diff --git a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/package-info.java b/spi/src/main/java/cn/icanci/loopstack/ddk/spi/package-info.java deleted file mode 100644 index c21d497..0000000 --- a/spi/src/main/java/cn/icanci/loopstack/ddk/spi/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * @author icanci - * @since 1.0 Created in 2022/12/11 12:48 - */ -package cn.icanci.loopstack.ddk.spi; \ No newline at end of file -- Gitee