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);