From 9a9318973f94968deee709c3244229d66b89d545 Mon Sep 17 00:00:00 2001 From: wangyu <727842003@qq.com> Date: Wed, 9 Mar 2022 19:52:59 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=A2=9E=E5=8A=A0=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backup/config/VersionConfig.java | 13 ++++++ .../backup/config/VersionProperties.java | 29 ++++++++++++ .../backup/controller/VersionController.java | 15 +++++++ .../framework/backup/domain/Version.java | 26 +++++++++++ .../backup/service/VersionService.java | 44 +++++++++++++++++++ 5 files changed, 127 insertions(+) create mode 100644 flyfish-backup/src/main/java/com/flyfish/framework/backup/config/VersionConfig.java create mode 100644 flyfish-backup/src/main/java/com/flyfish/framework/backup/config/VersionProperties.java create mode 100644 flyfish-backup/src/main/java/com/flyfish/framework/backup/controller/VersionController.java create mode 100644 flyfish-backup/src/main/java/com/flyfish/framework/backup/domain/Version.java create mode 100644 flyfish-backup/src/main/java/com/flyfish/framework/backup/service/VersionService.java diff --git a/flyfish-backup/src/main/java/com/flyfish/framework/backup/config/VersionConfig.java b/flyfish-backup/src/main/java/com/flyfish/framework/backup/config/VersionConfig.java new file mode 100644 index 0000000..6b05d3c --- /dev/null +++ b/flyfish-backup/src/main/java/com/flyfish/framework/backup/config/VersionConfig.java @@ -0,0 +1,13 @@ +package com.flyfish.framework.backup.config; + +import org.springframework.boot.context.properties.EnableConfigurationProperties; + +/** + * 版本配置 + * + * @author wangyu + */ +@EnableConfigurationProperties(VersionProperties.class) +//@Configuration +public class VersionConfig { +} diff --git a/flyfish-backup/src/main/java/com/flyfish/framework/backup/config/VersionProperties.java b/flyfish-backup/src/main/java/com/flyfish/framework/backup/config/VersionProperties.java new file mode 100644 index 0000000..9eff5f4 --- /dev/null +++ b/flyfish-backup/src/main/java/com/flyfish/framework/backup/config/VersionProperties.java @@ -0,0 +1,29 @@ +package com.flyfish.framework.backup.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * 备份配置 + * + * @author wangyu + */ +@ConfigurationProperties(prefix = "flyfish.version") +@Data +public class VersionProperties { + + /** + * 服务器地址 + */ + private String server = "http://version.flyfish.group"; + + /** + * 版本配置地址 + */ + private String versionUri = "/doc-system/version.json"; + + /** + * 当前系统版本 + */ + private String version = "v1.0"; +} diff --git a/flyfish-backup/src/main/java/com/flyfish/framework/backup/controller/VersionController.java b/flyfish-backup/src/main/java/com/flyfish/framework/backup/controller/VersionController.java new file mode 100644 index 0000000..1391abb --- /dev/null +++ b/flyfish-backup/src/main/java/com/flyfish/framework/backup/controller/VersionController.java @@ -0,0 +1,15 @@ +package com.flyfish.framework.backup.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 版本控制服务 + * @author wangyu + */ +@RestController +@RequestMapping("versions") +public class VersionController { + + +} diff --git a/flyfish-backup/src/main/java/com/flyfish/framework/backup/domain/Version.java b/flyfish-backup/src/main/java/com/flyfish/framework/backup/domain/Version.java new file mode 100644 index 0000000..ff5f71a --- /dev/null +++ b/flyfish-backup/src/main/java/com/flyfish/framework/backup/domain/Version.java @@ -0,0 +1,26 @@ +package com.flyfish.framework.backup.domain; + +import com.flyfish.framework.annotations.Property; +import lombok.Data; + +import java.util.Date; + +/** + * 版本号实体 + * @author wangyu + */ +@Data +public class Version { + + @Property("版本号") + private String version; + + @Property("下载地址") + private String payload; + + @Property("安装脚本") + private String script; + + @Property("创建时间") + private Date time; +} diff --git a/flyfish-backup/src/main/java/com/flyfish/framework/backup/service/VersionService.java b/flyfish-backup/src/main/java/com/flyfish/framework/backup/service/VersionService.java new file mode 100644 index 0000000..408bdf0 --- /dev/null +++ b/flyfish-backup/src/main/java/com/flyfish/framework/backup/service/VersionService.java @@ -0,0 +1,44 @@ +package com.flyfish.framework.backup.service; + +import com.flyfish.framework.backup.config.VersionProperties; +import com.flyfish.framework.backup.domain.Version; +import org.springframework.stereotype.Service; +import org.springframework.web.reactive.function.client.WebClient; +import reactor.core.publisher.Mono; + +/** + * 版本服务 + * + * @author wangyu + */ +@Service +public class VersionService { + + private final VersionProperties versionProperties; + + private final WebClient webClient; + + public VersionService(VersionProperties versionProperties) { + this.versionProperties = versionProperties; + this.webClient = WebClient.create(versionProperties.getServer()); + } + + /** + * 拉取最新版本 + * + * @return 结果 + */ + public Mono fetch() { + return webClient.get().uri(versionProperties.getVersionUri()) + .exchangeToMono(clientResponse -> clientResponse.bodyToMono(Version.class)); + } + + /** + * 检查新版 + * + * @return 结果 + */ + public Mono checkUpdate() { + return fetch().map(version -> !version.getVersion().equals(versionProperties.getVersion())); + } +}