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 }