From 9917e46c29172ced30a6227ee9f75d460e072dcc Mon Sep 17 00:00:00 2001 From: MichaelWin Date: Fri, 5 Dec 2025 17:53:44 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91APP?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0=E6=A0=A1=E9=AA=8C=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/appVersion/CheckVersionRequest.java | 19 +++++++++ .../com/corewing/app/entity/AppVersion.java | 38 ++++++++++++++++++ .../corewing/app/mapper/AppVersionMapper.java | 9 +++++ .../app/modules/app/AppVersionController.java | 40 +++++++++++++++++++ .../app/service/AppVersionService.java | 13 ++++++ .../service/impl/AppVersionServiceImpl.java | 32 +++++++++++++++ 6 files changed, 151 insertions(+) create mode 100644 src/main/java/com/corewing/app/dto/biz/appVersion/CheckVersionRequest.java create mode 100644 src/main/java/com/corewing/app/entity/AppVersion.java create mode 100644 src/main/java/com/corewing/app/mapper/AppVersionMapper.java create mode 100644 src/main/java/com/corewing/app/modules/app/AppVersionController.java create mode 100644 src/main/java/com/corewing/app/service/AppVersionService.java create mode 100644 src/main/java/com/corewing/app/service/impl/AppVersionServiceImpl.java diff --git a/src/main/java/com/corewing/app/dto/biz/appVersion/CheckVersionRequest.java b/src/main/java/com/corewing/app/dto/biz/appVersion/CheckVersionRequest.java new file mode 100644 index 0000000..b01901c --- /dev/null +++ b/src/main/java/com/corewing/app/dto/biz/appVersion/CheckVersionRequest.java @@ -0,0 +1,19 @@ +package com.corewing.app.dto.biz.appVersion; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +public class CheckVersionRequest { + + @NotBlank(message = "版本不能为空") + private String localVersion; + + @NotBlank(message = "构建版本不能为空") + private int localBuildNumber; + + @NotBlank(message = "类型不能为空") + private String type; + +} diff --git a/src/main/java/com/corewing/app/entity/AppVersion.java b/src/main/java/com/corewing/app/entity/AppVersion.java new file mode 100644 index 0000000..2f11906 --- /dev/null +++ b/src/main/java/com/corewing/app/entity/AppVersion.java @@ -0,0 +1,38 @@ +package com.corewing.app.entity; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * app版本控制 + */ +@Data +@TableName("app_version") +public class AppVersion { + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private String version; + + private int versionNumber; + + private int buildNumber; + + private String updateContent; + + private String downloadUrl; + + private String type; + + private Integer status; + + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + +} diff --git a/src/main/java/com/corewing/app/mapper/AppVersionMapper.java b/src/main/java/com/corewing/app/mapper/AppVersionMapper.java new file mode 100644 index 0000000..f75417d --- /dev/null +++ b/src/main/java/com/corewing/app/mapper/AppVersionMapper.java @@ -0,0 +1,9 @@ +package com.corewing.app.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.corewing.app.entity.AppVersion; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AppVersionMapper extends BaseMapper { +} diff --git a/src/main/java/com/corewing/app/modules/app/AppVersionController.java b/src/main/java/com/corewing/app/modules/app/AppVersionController.java new file mode 100644 index 0000000..dad45cf --- /dev/null +++ b/src/main/java/com/corewing/app/modules/app/AppVersionController.java @@ -0,0 +1,40 @@ +package com.corewing.app.modules.app; + +import com.corewing.app.common.Result; +import com.corewing.app.dto.biz.appVersion.CheckVersionRequest; +import com.corewing.app.entity.AppVersion; +import com.corewing.app.service.AppVersionService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; + +/** + * app升级校验接口 + */ +@RestController +@RequestMapping("/app_version") +public class AppVersionController { + + @Resource + private AppVersionService appVersionService; + + /** + * 校验是否存在新版本 + * @param checkVersionRequest + * @return + */ + @GetMapping("/checkUpdate") + public Result checkUpdate(CheckVersionRequest checkVersionRequest) { + AppVersion version = appVersionService.getNewAppVersion(checkVersionRequest); + if(version == null) { + return Result.error("暂无新版本"); + } + return Result.success(version); + + } + +} diff --git a/src/main/java/com/corewing/app/service/AppVersionService.java b/src/main/java/com/corewing/app/service/AppVersionService.java new file mode 100644 index 0000000..35297cc --- /dev/null +++ b/src/main/java/com/corewing/app/service/AppVersionService.java @@ -0,0 +1,13 @@ +package com.corewing.app.service; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.service.IService; +import com.corewing.app.dto.biz.appVersion.CheckVersionRequest; +import com.corewing.app.entity.AppVersion; + +import javax.validation.Valid; + +public interface AppVersionService extends IService { + + AppVersion getNewAppVersion(@Valid CheckVersionRequest checkVersionRequest); +} diff --git a/src/main/java/com/corewing/app/service/impl/AppVersionServiceImpl.java b/src/main/java/com/corewing/app/service/impl/AppVersionServiceImpl.java new file mode 100644 index 0000000..30787fc --- /dev/null +++ b/src/main/java/com/corewing/app/service/impl/AppVersionServiceImpl.java @@ -0,0 +1,32 @@ +package com.corewing.app.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.corewing.app.dto.biz.appVersion.CheckVersionRequest; +import com.corewing.app.entity.AppVersion; +import com.corewing.app.mapper.AppVersionMapper; +import com.corewing.app.service.AppVersionService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class AppVersionServiceImpl extends ServiceImpl implements AppVersionService { + + @Override + public AppVersion getNewAppVersion(CheckVersionRequest checkVersionRequest) { + int checkVersionNumber = Integer.parseInt(checkVersionRequest.getLocalVersion().replace(".", "")); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.gt(AppVersion::getVersionNumber, checkVersionNumber) + .or().gt(AppVersion::getBuildNumber, checkVersionRequest.getLocalBuildNumber()); + wrapper.eq(AppVersion::getType, checkVersionRequest.getType()); + wrapper.eq(AppVersion::getStatus, 1); + wrapper.orderByDesc(AppVersion::getVersionNumber, AppVersion::getBuildNumber); + wrapper.last("limit 1"); + List list = list(wrapper); + if (list == null || list.isEmpty()) { + return null; + } + return list.get(0); + } +}