From 0de6fa5ce8603b90318f07fbef1e2b51df6f2aa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Sun, 30 Jan 2022 11:24:31 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=88=A0=E9=99=A4N=E5=A4=A9?= =?UTF-8?q?=E4=B9=8B=E5=89=8D=E8=BF=87=E6=9C=9F=E7=9A=84IP=E6=9D=A1?= =?UTF-8?q?=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/ip_item_dao.go | 10 ++++++++ internal/db/models/ip_item_dao_test.go | 33 ++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/internal/db/models/ip_item_dao.go b/internal/db/models/ip_item_dao.go index 188be230..858bd8a9 100644 --- a/internal/db/models/ip_item_dao.go +++ b/internal/db/models/ip_item_dao.go @@ -291,6 +291,16 @@ 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) { + // 删除很早之前过期的 + _, err = this.Query(tx). + Where("(expiredAt>0 AND expiredAt<=:timestamp)"). + State(IPItemStateDisabled). + Param("timestamp", time.Now().Unix()-7*86400). // N 天之前过期的 + Delete() + if err != nil { + return nil, err + } + // 将过期的设置为已删除,这样是为了在 expiredAt