Jelajahi Sumber

新增版本管控接口

fangzhen 2 bulan lalu
induk
melakukan
f76b60e49b

+ 33 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/VersionController.java

@@ -0,0 +1,33 @@
+package com.ruoyi.generator.controller;
+
+import com.ruoyi.common.annotation.Anonymous;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.generator.domain.Community.Version;
+import com.ruoyi.generator.service.IVersionService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/api/version")
+public class VersionController {
+
+    @Resource
+    private IVersionService versionService;
+
+    @GetMapping("/check")
+    @ApiOperation("获取最新版本信息")
+    @Anonymous
+    public AjaxResult checkVersion(Integer versionSort) {
+        // 查询数据库或配置中的最新版本信息
+        Version latestVersion = versionService.getLatestVersion();
+        boolean hasUpdate = latestVersion.getVersionSort() > versionSort;
+        return AjaxResult.success()
+                .put("hasUpdate", hasUpdate)
+                .put("downloadUrl", latestVersion.getDownloadUrl())
+                .put("releaseNotes", latestVersion.getDescription());
+    }
+}

+ 61 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/Version.java

@@ -0,0 +1,61 @@
+package com.ruoyi.generator.domain.Community;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@TableName("version")
+public class Version {
+    @NotNull(message = "[版本id]不能为空")
+    @ApiModelProperty("版本id")
+    @TableId(value = "id", type = IdType.AUTO)
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 版本排序
+     */
+    @ApiModelProperty("版本排序")
+    private Integer versionSort;
+
+    /**
+     * 版本号
+     */
+    @ApiModelProperty("版本号")
+    private String versionCode;
+
+    /**
+     * 下载地址
+     */
+    @ApiModelProperty("下载地址")
+    private String downloadUrl;
+
+    /**
+     * 描述
+     */
+    @ApiModelProperty("描述")
+    private String description;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    /**
+     * 创建人
+     */
+    @ApiModelProperty("创建人")
+    private Long createBy;
+}

+ 9 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/community/VersionMapper.java

@@ -0,0 +1,9 @@
+package com.ruoyi.generator.mapper.community;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.generator.domain.Community.Version;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface VersionMapper extends BaseMapper<Version> {
+}

+ 8 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/service/IVersionService.java

@@ -0,0 +1,8 @@
+package com.ruoyi.generator.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.generator.domain.Community.Version;
+
+public interface IVersionService extends IService<Version> {
+    Version getLatestVersion();
+}

+ 25 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/service/VersionServiceImpl.java

@@ -0,0 +1,25 @@
+package com.ruoyi.generator.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.generator.domain.Community.Version;
+import com.ruoyi.generator.mapper.community.VersionMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service
+public class VersionServiceImpl extends ServiceImpl<VersionMapper, Version> implements IVersionService {
+
+    @Resource
+    private VersionMapper versionMapper;
+
+    @Override
+    public Version getLatestVersion() {
+        Version version = versionMapper.selectOne(new QueryWrapper<Version>()
+                .eq("status", false)
+                .orderByDesc("version_sort")
+                .last("limit 1"));
+        return version;
+    }
+}

+ 142 - 0
ruoyi-generator/src/main/java/generator/domain/Version.java

@@ -0,0 +1,142 @@
+package generator.domain;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import javax.validation.constraints.NotNull;
+
+import java.io.Serializable;
+
+import java.util.Date;
+import io.swagger.annotations.ApiModelProperty;
+import org.hibernate.validator.constraints.Length;
+
+/**
+* 版本
+* @TableName version
+*/
+public class Version implements Serializable {
+
+    /**
+    * 唯一id
+    */
+    @NotNull(message="[唯一id]不能为空")
+    @ApiModelProperty("唯一id")
+    private Long id;
+    /**
+    * 版本号
+    */
+    @Size(max= 255,message="编码长度不能超过255")
+    @ApiModelProperty("版本号")
+    @Length(max= 255,message="编码长度不能超过255")
+    private String versionCode;
+    /**
+    * 下载地址
+    */
+    @Size(max= -1,message="编码长度不能超过-1")
+    @ApiModelProperty("下载地址")
+    @Length(max= -1,message="编码长度不能超过-1")
+    private String downloadUrl;
+    /**
+    * 描述
+    */
+    @Size(max= -1,message="编码长度不能超过-1")
+    @ApiModelProperty("描述")
+    @Length(max= -1,message="编码长度不能超过-1")
+    private String description;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    private Long createBy;
+
+    /**
+    * 唯一id
+    */
+    private void setId(Long id){
+    this.id = id;
+    }
+
+    /**
+    * 版本号
+    */
+    private void setVersionCode(String versionCode){
+    this.versionCode = versionCode;
+    }
+
+    /**
+    * 下载地址
+    */
+    private void setDownloadUrl(String downloadUrl){
+    this.downloadUrl = downloadUrl;
+    }
+
+    /**
+    * 描述
+    */
+    private void setDescription(String description){
+    this.description = description;
+    }
+
+    /**
+    * 创建时间
+    */
+    private void setCreateTime(Date createTime){
+    this.createTime = createTime;
+    }
+
+    /**
+    * 创建人
+    */
+    private void setCreateBy(Long createBy){
+    this.createBy = createBy;
+    }
+
+
+    /**
+    * 唯一id
+    */
+    private Long getId(){
+    return this.id;
+    }
+
+    /**
+    * 版本号
+    */
+    private String getVersionCode(){
+    return this.versionCode;
+    }
+
+    /**
+    * 下载地址
+    */
+    private String getDownloadUrl(){
+    return this.downloadUrl;
+    }
+
+    /**
+    * 描述
+    */
+    private String getDescription(){
+    return this.description;
+    }
+
+    /**
+    * 创建时间
+    */
+    private Date getCreateTime(){
+    return this.createTime;
+    }
+
+    /**
+    * 创建人
+    */
+    private Long getCreateBy(){
+    return this.createBy;
+    }
+
+}