From 81c9babb40e035316e5437bd5aa4c1ea555a75d9 Mon Sep 17 00:00:00 2001 From: yhl452493373 Date: Thu, 10 Feb 2022 11:23:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=89=8B=E5=8A=A8=E9=87=8A?= =?UTF-8?q?=E6=94=BE=E6=8C=87=E5=AE=9A=E5=BA=8F=E5=8F=B7=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../seq/dao/SequencesUnusedDao.java | 5 +++++ .../seq/dao/impl/SequencesDaoImpl.java | 1 + .../seq/dao/impl/SequencesUnlockDaoImpl.java | 1 + .../seq/dao/impl/SequencesUnusedDaoImpl.java | 9 ++++++++ .../yanghuanglin/seq/generator/Generator.java | 7 +++++++ .../generator/impl/SequencesGenerator.java | 21 +++++++++++++------ .../com/yanghuanglin/seq/po/Sequences.java | 6 ++++++ 8 files changed, 45 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 9aeb6c8..2d70714 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.yanghuanglin seq - 1.0.0 + 1.1.0 seq seq diff --git a/src/main/java/com/yanghuanglin/seq/dao/SequencesUnusedDao.java b/src/main/java/com/yanghuanglin/seq/dao/SequencesUnusedDao.java index 915e89f..84c5c8c 100644 --- a/src/main/java/com/yanghuanglin/seq/dao/SequencesUnusedDao.java +++ b/src/main/java/com/yanghuanglin/seq/dao/SequencesUnusedDao.java @@ -25,6 +25,11 @@ public interface SequencesUnusedDao { */ boolean delete(SequencesUnused sequencesUnused); + /** + * 保存空闲序号 + */ + boolean save(SequencesUnused sequencesUnused); + /** * 批量保存空闲序号 */ diff --git a/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesDaoImpl.java b/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesDaoImpl.java index 5e8270b..25a1890 100644 --- a/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesDaoImpl.java +++ b/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesDaoImpl.java @@ -11,6 +11,7 @@ import org.springframework.jdbc.core.JdbcTemplate; * @author yanghuanglin * @since 2022/1/28 */ +@SuppressWarnings("SqlResolve") public class SequencesDaoImpl implements SequencesDao { private final JdbcTemplate jdbcTemplate; private final TableConfig tableConfig; diff --git a/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesUnlockDaoImpl.java b/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesUnlockDaoImpl.java index 2ce0035..ec50a3a 100644 --- a/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesUnlockDaoImpl.java +++ b/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesUnlockDaoImpl.java @@ -13,6 +13,7 @@ import java.util.List; * @author yanghuanglin * @since 2022/1/28 */ +@SuppressWarnings("SqlResolve") public class SequencesUnlockDaoImpl implements SequencesUnlockDao { private final JdbcTemplate jdbcTemplate; private final TableConfig tableConfig; diff --git a/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesUnusedDaoImpl.java b/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesUnusedDaoImpl.java index 235c268..786558f 100644 --- a/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesUnusedDaoImpl.java +++ b/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesUnusedDaoImpl.java @@ -16,6 +16,7 @@ import java.util.List; * @author yanghuanglin * @since 2022/1/28 */ +@SuppressWarnings("SqlResolve") public class SequencesUnusedDaoImpl implements SequencesUnusedDao { private final JdbcTemplate jdbcTemplate; private final TableConfig tableConfig; @@ -55,6 +56,14 @@ public class SequencesUnusedDaoImpl implements SequencesUnusedDao { return result != 0; } + @Override + public boolean save(SequencesUnused sequencesUnused) { + String sql = "insert into `%s_ununsed`(`%s`,`%s`,`%s`) values(?,?,?)"; + sql = String.format(sql, tableConfig.getTable(), tableConfig.getKeyColumn(), tableConfig.getTypeColumn(), tableConfig.getSeqColumn()); + int result = this.jdbcTemplate.update(sql, sequencesUnused.getKey(), sequencesUnused.getType(), sequencesUnused.getSeq()); + return result != 0; + } + @Override public boolean saveBatch(List sequencesUnusedList) { String sql = "insert into `%s_ununsed`(`%s`,`%s`,`%s`) values(?,?,?)"; diff --git a/src/main/java/com/yanghuanglin/seq/generator/Generator.java b/src/main/java/com/yanghuanglin/seq/generator/Generator.java index ea5823b..1a767c7 100644 --- a/src/main/java/com/yanghuanglin/seq/generator/Generator.java +++ b/src/main/java/com/yanghuanglin/seq/generator/Generator.java @@ -111,4 +111,11 @@ public interface Generator { * @param end 结束时间 */ void release(Date begin, Date end); + + /** + * 释放指定序号。一般用于业务对象删除后,对应序号需要回收使用时。 + * + * @param sequences 需要释放的序号。一般是一个通过{@link Sequences#setKey(String)}、{@link Sequences#setType(String)}、{@link Sequences#setSeq(Long)}三方法一起手动构建或通过{@link Sequences#Sequences(String, String, Long)}构造方法构建的实例对象 + */ + void release(Sequences sequences); } diff --git a/src/main/java/com/yanghuanglin/seq/generator/impl/SequencesGenerator.java b/src/main/java/com/yanghuanglin/seq/generator/impl/SequencesGenerator.java index bfb969b..650afde 100644 --- a/src/main/java/com/yanghuanglin/seq/generator/impl/SequencesGenerator.java +++ b/src/main/java/com/yanghuanglin/seq/generator/impl/SequencesGenerator.java @@ -2,22 +2,25 @@ package com.yanghuanglin.seq.generator.impl; import com.yanghuanglin.seq.config.GeneratorConfig; import com.yanghuanglin.seq.dao.SequencesDao; -import com.yanghuanglin.seq.dao.SequencesUnusedDao; import com.yanghuanglin.seq.dao.SequencesUnlockDao; +import com.yanghuanglin.seq.dao.SequencesUnusedDao; import com.yanghuanglin.seq.dao.impl.SequencesDaoImpl; -import com.yanghuanglin.seq.dao.impl.SequencesUnusedDaoImpl; import com.yanghuanglin.seq.dao.impl.SequencesUnlockDaoImpl; -import com.yanghuanglin.seq.po.Sequences; -import com.yanghuanglin.seq.po.SequencesUnused; -import com.yanghuanglin.seq.po.SequencesUnlock; +import com.yanghuanglin.seq.dao.impl.SequencesUnusedDaoImpl; import com.yanghuanglin.seq.generator.Generator; +import com.yanghuanglin.seq.po.Sequences; +import com.yanghuanglin.seq.po.SequencesUnlock; +import com.yanghuanglin.seq.po.SequencesUnused; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.support.JdbcTransactionManager; import org.springframework.transaction.support.TransactionTemplate; import javax.sql.DataSource; -import java.util.*; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; public class SequencesGenerator implements Generator { private final TransactionTemplate transactionTemplate; @@ -185,4 +188,10 @@ public class SequencesGenerator implements Generator { //删除指定时间段内使用中表的数据 sequencesUnlockDao.deleteByDate(begin, end); } + + @Override + public void release(Sequences sequences) { + sequencesUnlockDao.delete(new SequencesUnlock(sequences)); + sequencesUnusedDao.save(new SequencesUnused(sequences)); + } } diff --git a/src/main/java/com/yanghuanglin/seq/po/Sequences.java b/src/main/java/com/yanghuanglin/seq/po/Sequences.java index 0485301..1d55358 100644 --- a/src/main/java/com/yanghuanglin/seq/po/Sequences.java +++ b/src/main/java/com/yanghuanglin/seq/po/Sequences.java @@ -35,6 +35,12 @@ public class Sequences { this.type = type; } + public Sequences(String key, String type, Long seq) { + this.key = key; + this.type = type; + this.seq = seq; + } + public Sequences(SequencesUnused sequencesUnused) { this.key = sequencesUnused.getKey(); this.type = sequencesUnused.getType();