From a0ff24adb6cceed12ff700efb099e17b5562cded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Tue, 26 Oct 2021 09:17:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9C=A8IP=E5=90=8D=E5=8D=95?= =?UTF-8?q?=E4=B8=AD=E4=BD=BF=E7=94=A8ipFrom=E5=92=8CipTo=E6=9F=A5?= =?UTF-8?q?=E6=89=BEIP=E7=9A=84API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/ip_item_dao.go | 16 ++++++++++++++-- internal/rpc/services/service_ip_item.go | 4 ++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/internal/db/models/ip_item_dao.go b/internal/db/models/ip_item_dao.go index 093ee902..1a1f6fe1 100644 --- a/internal/db/models/ip_item_dao.go +++ b/internal/db/models/ip_item_dao.go @@ -177,7 +177,7 @@ func (this *IPItemDAO) UpdateIPItem(tx *dbs.Tx, itemId int64, ipFrom string, ipT } // CountIPItemsWithListId 计算IP数量 -func (this *IPItemDAO) CountIPItemsWithListId(tx *dbs.Tx, listId int64, keyword string) (int64, error) { +func (this *IPItemDAO) CountIPItemsWithListId(tx *dbs.Tx, listId int64, ipFrom string, ipTo string, keyword string) (int64, error) { var query = this.Query(tx). State(IPItemStateEnabled). Attr("listId", listId) @@ -185,11 +185,17 @@ func (this *IPItemDAO) CountIPItemsWithListId(tx *dbs.Tx, listId int64, keyword query.Where("(ipFrom LIKE :keyword OR ipTo LIKE :keyword)"). Param("keyword", "%"+keyword+"%") } + if len(ipFrom) > 0 { + query.Attr("ipFrom", ipFrom) + } + if len(ipTo) > 0 { + query.Attr("ipTo", ipTo) + } return query.Count() } // ListIPItemsWithListId 查找IP列表 -func (this *IPItemDAO) ListIPItemsWithListId(tx *dbs.Tx, listId int64, keyword string, offset int64, size int64) (result []*IPItem, err error) { +func (this *IPItemDAO) ListIPItemsWithListId(tx *dbs.Tx, listId int64, keyword string, ipFrom string, ipTo string, offset int64, size int64) (result []*IPItem, err error) { var query = this.Query(tx). State(IPItemStateEnabled). Attr("listId", listId) @@ -197,6 +203,12 @@ func (this *IPItemDAO) ListIPItemsWithListId(tx *dbs.Tx, listId int64, keyword s query.Where("(ipFrom LIKE :keyword OR ipTo LIKE :keyword)"). Param("keyword", "%"+keyword+"%") } + if len(ipFrom) > 0 { + query.Attr("ipFrom", ipFrom) + } + if len(ipTo) > 0 { + query.Attr("ipTo", ipTo) + } _, err = query. DescPk(). Slice(&result). diff --git a/internal/rpc/services/service_ip_item.go b/internal/rpc/services/service_ip_item.go index 7c7af16a..d544e8c6 100644 --- a/internal/rpc/services/service_ip_item.go +++ b/internal/rpc/services/service_ip_item.go @@ -151,7 +151,7 @@ func (this *IPItemService) CountIPItemsWithListId(ctx context.Context, req *pb.C } } - count, err := models.SharedIPItemDAO.CountIPItemsWithListId(tx, req.IpListId, req.Keyword) + count, err := models.SharedIPItemDAO.CountIPItemsWithListId(tx, req.IpListId, req.Keyword, req.IpFrom, req.IpTo) if err != nil { return nil, err } @@ -175,7 +175,7 @@ func (this *IPItemService) ListIPItemsWithListId(ctx context.Context, req *pb.Li } } - items, err := models.SharedIPItemDAO.ListIPItemsWithListId(tx, req.IpListId, req.Keyword, req.Offset, req.Size) + items, err := models.SharedIPItemDAO.ListIPItemsWithListId(tx, req.IpListId, req.Keyword, req.IpFrom, req.IpTo, req.Offset, req.Size) if err != nil { return nil, err }