diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java index a28759aa4..95c5fcc74 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java @@ -11,6 +11,7 @@ import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.framework.config.properties.AppProperties; import com.ruoyi.framework.config.properties.OSSProperties; import com.ruoyi.framework.ocr.BusinessLicense; import com.ruoyi.framework.ocr.IdCard; @@ -52,9 +53,11 @@ public class CommonController { @Value("${oss.fileExpireTime:3600}") private Long fileExpireTime;//指定过期时间,单位为秒。 - @Value("${oss.callbackUrl:http://121.40.117.244:9310/rest/v1/oss-callback/upload}") + @Value("${oss.callbackUrl}") private String callbackUrl;//上传回调URL @Autowired + private AppProperties appProperties; + @Autowired private OSSClientWrapper ossClient; @Autowired private OSSProperties ossProperties; @@ -65,6 +68,12 @@ public class CommonController { @Autowired private ISysHtmlService htmlService; + @ApiOperation("APP版本") + @GetMapping("/app-version") + public R getAppVersion() { + return R.ok(BeanUtil.toBean(appProperties, AppVersionVO.class)); + } + @ApiOperation("获取OSS临时访问凭证") @GetMapping("/oss/getCredentials") public R getCredentials() { @@ -226,8 +235,8 @@ public class CommonController { @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") @ApiOperation("保存html(需登录管理员用户)") @PostMapping("/html/save") - public R saveHtmlContent(@Validated @RequestBody HtmlVO vo){ - htmlService.saveHtml(vo.getTitle(),vo.getContent()); + public R saveHtmlContent(@Validated @RequestBody HtmlVO vo) { + htmlService.saveHtml(vo.getTitle(), vo.getContent()); return R.ok(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/vo/AppVersionVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/vo/AppVersionVO.java new file mode 100644 index 000000000..041655e8c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/vo/AppVersionVO.java @@ -0,0 +1,24 @@ +package com.ruoyi.web.controller.common.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liangyq + * @date 2025-11-03 + */ +@Data +public class AppVersionVO { + + @ApiModelProperty("APP最新版本号") + private String version; + + @ApiModelProperty("安卓APK下载地址(IOS直接跳转商店更新)") + private String downloadUrl; + + @ApiModelProperty("更新说明") + private String updateNotes; + + @ApiModelProperty("是否强制更新") + private Boolean forcedUpdate; +} diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index 117d799f9..61e6fc7ea 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -24,6 +24,7 @@ oss: expiredDuration: 3600 tempDir: /temp/ stsCacheDuration: 1800 + callbackUrl: https://api.cdbuju.cn/rest/v1/oss-callback/upload img-search: endPoint: imagesearch.cn-hangzhou.aliyuncs.com accessKeyId: LTAI5tBFXhTu7Di1ZumRPYZs diff --git a/ruoyi-admin/src/main/resources/application-local.yml b/ruoyi-admin/src/main/resources/application-local.yml index 188f0e0c7..f7cc42a1a 100644 --- a/ruoyi-admin/src/main/resources/application-local.yml +++ b/ruoyi-admin/src/main/resources/application-local.yml @@ -24,6 +24,7 @@ oss: expiredDuration: 3600 tempDir: E:/temp/ stsCacheDuration: 1800 + callbackUrl: https://api.cdbuju.cn/rest/v1/oss-callback/upload img-search: endPoint: imagesearch.cn-hangzhou.aliyuncs.com accessKeyId: LTAI5tBFXhTu7Di1ZumRPYZs diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml index e305dcc29..2060c3b00 100644 --- a/ruoyi-admin/src/main/resources/application-prod.yml +++ b/ruoyi-admin/src/main/resources/application-prod.yml @@ -24,6 +24,7 @@ oss: expiredDuration: 3600 tempDir: /temp/ stsCacheDuration: 1800 + callbackUrl: https://api.cdbuju.cn/rest/v1/oss-callback/upload img-search: endPoint: imagesearch-vpc.cn-hangzhou.aliyuncs.com accessKeyId: LTAI5t9e53VpzuR22AFtppMR diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 2e8af2ea8..78564763b 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -3,3 +3,8 @@ spring: active: local # active: prod # active: @spring.profiles.active@ +app: + version: 1.0.0 + download-url: https://cdbuju.oss-cn-hangzhou.aliyuncs.com/apk/cdbuju-1.0.0.apk + update-notes: 正式上线 + forced-update: false diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/AppProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/AppProperties.java new file mode 100644 index 000000000..6892d471e --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/AppProperties.java @@ -0,0 +1,23 @@ +package com.ruoyi.framework.config.properties; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +/** + * @author liangyq + * @date 2025-03-24 + */ +@Data +@Component +@ConfigurationProperties(prefix = "app") +public class AppProperties { + + private String version; + + private String downloadUrl; + + private String updateNotes; + + private Boolean forcedUpdate; +}