From 8665daa7aa863f96d0d8f27c167edae1efc38022 Mon Sep 17 00:00:00 2001
From: zjk <852185829@qq.com>
Date: 星期五, 31 七月 2026 14:46:19 +0800
Subject: [PATCH] Merge branch 'master' into dev

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVersionUpdateServiceImpl.java |   29 +++++++++++++++++++++++++----
 1 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVersionUpdateServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVersionUpdateServiceImpl.java
index 0f1fb7e..d31000a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVersionUpdateServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysVersionUpdateServiceImpl.java
@@ -16,6 +16,7 @@
 import org.springframework.util.CollectionUtils;
 
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 版本更新服务实现
@@ -34,6 +35,12 @@
         SysVersionUpdatePageRequest query = request == null ? new SysVersionUpdatePageRequest() : request;
         PageInfo<SysVersionUpdateVO> pageInfo = new PageInfo<SysVersionUpdateVO>(query.getPageNum(), query.getPageSize());
         List<SysVersionUpdateVO> list = versionUpdateMapper.pageList(query, pageInfo);
+        SysVersionUpdateVO latest = versionUpdateMapper.selectLatest();
+        Long latestUpdateId = latest == null ? null : latest.getUpdateId();
+        for (SysVersionUpdateVO versionUpdate : list)
+        {
+            versionUpdate.setLatest(Objects.equals(versionUpdate.getUpdateId(), latestUpdateId));
+        }
         pageInfo.setRecords(list);
         return pageInfo;
     }
@@ -41,7 +48,12 @@
     @Override
     public SysVersionUpdateVO latest()
     {
-        return versionUpdateMapper.selectLatest();
+        SysVersionUpdateVO latest = versionUpdateMapper.selectLatest();
+        if (latest != null)
+        {
+            latest.setLatest(Boolean.TRUE);
+        }
+        return latest;
     }
 
     @Override
@@ -56,6 +68,8 @@
         {
             throw new ServiceException("版本更新记录不存在");
         }
+        SysVersionUpdateVO latest = versionUpdateMapper.selectLatest();
+        detail.setLatest(latest != null && Objects.equals(detail.getUpdateId(), latest.getUpdateId()));
         return detail;
     }
 
@@ -71,11 +85,13 @@
         {
             throw new ServiceException("版本号不能为空");
         }
-        String updateContent = StringUtils.trim(request.getUpdateContent());
-        if (StringUtils.isEmpty(updateContent))
+        String versionNumber = versionNo.replaceFirst("^[vV]", "");
+        if (!versionNumber.matches("\\d+(\\.\\d+)*"))
         {
-            throw new ServiceException("更新内容不能为空");
+            throw new ServiceException("版本号格式不正确,请输入数字或使用小数点分隔");
         }
+        versionNo = versionNumber;
+        String updateContent = StringUtils.trim(request.getUpdateContent());
         String packageUrl = StringUtils.trim(request.getPackageUrl());
         if (StringUtils.isEmpty(packageUrl))
         {
@@ -99,6 +115,11 @@
         {
             throw new ServiceException("更新主键集合不能为空");
         }
+        SysVersionUpdateVO latest = versionUpdateMapper.selectLatest();
+        if (latest != null && request.getUpdateIds().contains(latest.getUpdateId()))
+        {
+            throw new ServiceException("最新版本不能删除");
+        }
         return versionUpdateMapper.deleteByIds(request.getUpdateIds());
     }
 }

--
Gitblit v1.7.1