From d477ba477227730bebb253e25c3a10a5b8251b86 Mon Sep 17 00:00:00 2001 From: Chang lue Tsen Date: Fri, 5 Sep 2025 13:35:55 -0400 Subject: [PATCH] feat(log): add UserSubscribeId to FilterSubscribeLogRequest for enhanced filtering --- apis/admin/log.api | 3 ++- internal/logic/admin/log/filterSubscribeLogLogic.go | 13 ++++++++++--- internal/types/types.go | 3 ++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/apis/admin/log.api b/apis/admin/log.api index 2ecefa9..3b117c8 100644 --- a/apis/admin/log.api +++ b/apis/admin/log.api @@ -45,7 +45,8 @@ type ( } FilterSubscribeLogRequest { FilterLogParams - UserId int64 `form:"user_id,optional"` + UserId int64 `form:"user_id,optional"` + UserSubscribeId int64 `form:"user_subscribe_id,optional"` } FilterSubscribeLogResponse { Total int64 `json:"total"` diff --git a/internal/logic/admin/log/filterSubscribeLogLogic.go b/internal/logic/admin/log/filterSubscribeLogLogic.go index 7e7033c..560b145 100644 --- a/internal/logic/admin/log/filterSubscribeLogLogic.go +++ b/internal/logic/admin/log/filterSubscribeLogLogic.go @@ -2,6 +2,7 @@ package log import ( "context" + "strconv" "github.com/perfect-panel/server/internal/model/log" "github.com/perfect-panel/server/internal/svc" @@ -17,7 +18,7 @@ type FilterSubscribeLogLogic struct { svcCtx *svc.ServiceContext } -// Filter subscribe log +// NewFilterSubscribeLogLogic Filter subscribe log func NewFilterSubscribeLogLogic(ctx context.Context, svcCtx *svc.ServiceContext) *FilterSubscribeLogLogic { return &FilterSubscribeLogLogic{ Logger: logger.WithContext(ctx), @@ -27,13 +28,19 @@ func NewFilterSubscribeLogLogic(ctx context.Context, svcCtx *svc.ServiceContext) } func (l *FilterSubscribeLogLogic) FilterSubscribeLog(req *types.FilterSubscribeLogRequest) (resp *types.FilterSubscribeLogResponse, err error) { - data, total, err := l.svcCtx.LogModel.FilterSystemLog(l.ctx, &log.FilterParams{ + params := &log.FilterParams{ Page: req.Page, Size: req.Size, Type: log.TypeSubscribe.Uint8(), Data: req.Date, ObjectID: req.UserId, - }) + } + + if req.UserSubscribeId != 0 { + params.Search = `"user_subscribe_id":` + strconv.FormatInt(req.UserSubscribeId, 10) + } + + data, total, err := l.svcCtx.LogModel.FilterSystemLog(l.ctx, params) if err != nil { l.Errorf("[FilterSubscribeLog] failed to filter system log: %v", err.Error()) return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "failed to filter system log") diff --git a/internal/types/types.go b/internal/types/types.go index 33c611a..d47d3ec 100644 --- a/internal/types/types.go +++ b/internal/types/types.go @@ -657,7 +657,8 @@ type FilterServerTrafficLogResponse struct { type FilterSubscribeLogRequest struct { FilterLogParams - UserId int64 `form:"user_id,optional"` + UserId int64 `form:"user_id,optional"` + UserSubscribeId int64 `form:"user_subscribe_id,optional"` } type FilterSubscribeLogResponse struct {