From d45dc35ea6cd5dc45405af57b0a4153fd3300ea3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Mon, 6 Dec 2021 11:21:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=88=A0=E9=99=A4=E8=BF=87?= =?UTF-8?q?=E6=9C=9F=E7=9A=84IP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/ip_item_dao.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/internal/db/models/ip_item_dao.go b/internal/db/models/ip_item_dao.go index 91496407..0d9803ae 100644 --- a/internal/db/models/ip_item_dao.go +++ b/internal/db/models/ip_item_dao.go @@ -279,6 +279,34 @@ func (this *IPItemDAO) ListIPItemsWithListId(tx *dbs.Tx, listId int64, keyword s // ListIPItemsAfterVersion 根据版本号查找IP列表 func (this *IPItemDAO) ListIPItemsAfterVersion(tx *dbs.Tx, version int64, size int64) (result []*IPItem, err error) { + // 将过期的设置为已删除,这样是为了在 expiredAt0 AND expiredAt<=:timestamp)"). + Param("timestamp", time.Now().Unix()). + State(IPItemStateEnabled). + Limit(100). + FindOnes() + if err != nil { + return nil, err + } + for _, one := range ones { + var expiredId = one.GetInt64("id") + newVersion, err := SharedIPListDAO.IncreaseVersion(tx) + if err != nil { + return nil, err + } + _, err = this.Query(tx). + Pk(expiredId). + Set("state", IPItemStateDisabled). + Set("version", newVersion). + Update() + + if err != nil { + return nil, err + } + } + _, err = this.Query(tx). // 这里不要设置状态参数,因为我们要知道哪些是删除的 Gt("version", version).