IP名单查看所有IP时不显示过期IP/节点同步IP名单时将过期Item设置为已删除

This commit is contained in:
GoEdgeLab
2021-11-21 08:43:26 +08:00
parent 51d144cb53
commit 2649ac9dba
2 changed files with 10 additions and 2 deletions

View File

@@ -282,8 +282,6 @@ func (this *IPItemDAO) ListIPItemsAfterVersion(tx *dbs.Tx, version int64, size i
_, err = this.Query(tx). _, err = this.Query(tx).
// 这里不要设置状态参数,因为我们要知道哪些是删除的 // 这里不要设置状态参数,因为我们要知道哪些是删除的
Gt("version", version). Gt("version", version).
Where("(expiredAt=0 OR expiredAt>:expiredAt)").
Param("expiredAt", time.Now().Unix()).
Asc("version"). Asc("version").
Asc("id"). Asc("id").
Limit(size). Limit(size).
@@ -356,6 +354,8 @@ func (this *IPItemDAO) CountAllEnabledIPItems(tx *dbs.Tx, ip string, listId int6
} }
return query. return query.
State(IPItemStateEnabled). State(IPItemStateEnabled).
Where("(expiredAt=0 OR expiredAt>:expiredAt)").
Param("expiredAt", time.Now().Unix()).
Count() Count()
} }
@@ -372,6 +372,8 @@ func (this *IPItemDAO) ListAllEnabledIPItems(tx *dbs.Tx, ip string, listId int64
} }
_, err = query. _, err = query.
State(IPItemStateEnabled). State(IPItemStateEnabled).
Where("(expiredAt=0 OR expiredAt>:expiredAt)").
Param("expiredAt", time.Now().Unix()).
DescPk(). DescPk().
Offset(offset). Offset(offset).
Size(size). Size(size).

View File

@@ -9,6 +9,7 @@ import (
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
"net" "net"
"time"
) )
// IPItemService IP条目相关服务 // IPItemService IP条目相关服务
@@ -328,6 +329,11 @@ func (this *IPItemService) ListIPItemsAfterVersion(ctx context.Context, req *pb.
return nil, err return nil, err
} }
for _, item := range items { for _, item := range items {
// 是否已过期
if item.ExpiredAt > 0 && int64(item.ExpiredAt) <= time.Now().Unix() {
item.State = models.IPItemStateDisabled
}
if len(item.Type) == 0 { if len(item.Type) == 0 {
item.Type = models.IPItemTypeIPv4 item.Type = models.IPItemTypeIPv4
} }