From b19821bf83be80e54e461b4f05dd44b10c0411bd Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Tue, 7 Jul 2026 23:47:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=BF=AB=E7=85=A7=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7=E5=8F=96=E5=85=A8=E8=A1=A8=E6=9C=80=E5=A4=A7+1?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E5=8F=91=E5=B8=83=E5=90=8E=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=9B=9E=E9=80=80=E5=88=B01=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E7=9A=84=E5=94=AF=E4=B8=80=E9=94=AE=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bug: selectLatestDraft 只查 status='draft',发布后 draft→published 查不到,下一版又从 1 开始 fix: selectMaxVersion 查全表 MAX(version),保证单调递增 --- .../src/main/java/com/par/core/mapper/SiteSnapshotMapper.java | 4 ++++ .../com/par/core/service/impl/SiteSnapshotServiceImpl.java | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/par-core/src/main/java/com/par/core/mapper/SiteSnapshotMapper.java b/par-core/src/main/java/com/par/core/mapper/SiteSnapshotMapper.java index 2a9706c..57b4f34 100644 --- a/par-core/src/main/java/com/par/core/mapper/SiteSnapshotMapper.java +++ b/par-core/src/main/java/com/par/core/mapper/SiteSnapshotMapper.java @@ -27,4 +27,8 @@ public interface SiteSnapshotMapper extends BaseMapper { /** 删除站点指定状态的快照 */ @org.apache.ibatis.annotations.Delete("DELETE FROM site_snapshots WHERE site_id = #{siteId} AND status = #{status}") int deleteBySiteIdAndStatus(@Param("siteId") String siteId, @Param("status") String status); + + /** 取站点快照的最大版本号 */ + @Select("SELECT COALESCE(MAX(version), 0) FROM site_snapshots WHERE site_id = #{siteId}") + int selectMaxVersion(@Param("siteId") String siteId); } diff --git a/par-core/src/main/java/com/par/core/service/impl/SiteSnapshotServiceImpl.java b/par-core/src/main/java/com/par/core/service/impl/SiteSnapshotServiceImpl.java index 2d737a3..845850e 100644 --- a/par-core/src/main/java/com/par/core/service/impl/SiteSnapshotServiceImpl.java +++ b/par-core/src/main/java/com/par/core/service/impl/SiteSnapshotServiceImpl.java @@ -136,7 +136,7 @@ public class SiteSnapshotServiceImpl implements SiteSnapshotService { return null; } - int newVersion = (latestDraft != null) ? latestDraft.getVersion() + 1 : 1; + int newVersion = snapshotMapper.selectMaxVersion(siteId) + 1; SiteSnapshot snapshot = new SiteSnapshot(); snapshot.setSiteId(siteId); @@ -179,7 +179,7 @@ public class SiteSnapshotServiceImpl implements SiteSnapshotService { return latestDraft; } - int newVersion = (latestDraft != null) ? latestDraft.getVersion() + 1 : 1; + int newVersion = snapshotMapper.selectMaxVersion(siteId) + 1; SiteSnapshot snapshot = new SiteSnapshot(); snapshot.setSiteId(siteId);