From 2aaf4cf618caa307cabc1bdc33893c510a13bc56 Mon Sep 17 00:00:00 2001 From: Chang lue Tsen Date: Mon, 28 Apr 2025 18:59:06 +0900 Subject: [PATCH] fix(subscribe): improve query logic and handle status filtering --- internal/logic/public/user/queryUserSubscribeLogic.go | 2 +- internal/model/user/subscribe.go | 5 ++++- queue/logic/order/activateOrderLogic.go | 7 +++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/internal/logic/public/user/queryUserSubscribeLogic.go b/internal/logic/public/user/queryUserSubscribeLogic.go index 18aa543..1fa95c7 100644 --- a/internal/logic/public/user/queryUserSubscribeLogic.go +++ b/internal/logic/public/user/queryUserSubscribeLogic.go @@ -36,7 +36,7 @@ func (l *QueryUserSubscribeLogic) QueryUserSubscribe() (resp *types.QueryUserSub logger.Error("current user is not found in context") return nil, errors.Wrapf(xerr.NewErrCode(xerr.InvalidAccess), "Invalid Access") } - data, err := l.svcCtx.UserModel.QueryUserSubscribe(l.ctx, u.Id, 1, 0) + data, err := l.svcCtx.UserModel.QueryUserSubscribe(l.ctx, u.Id, 0, 1, 2, 3) if err != nil { l.Errorw("[QueryUserSubscribeLogic] Query User Subscribe Error:", logger.Field("err", err.Error())) return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "Query User Subscribe Error") diff --git a/internal/model/user/subscribe.go b/internal/model/user/subscribe.go index 0c8d5ba..1a3792b 100644 --- a/internal/model/user/subscribe.go +++ b/internal/model/user/subscribe.go @@ -76,7 +76,10 @@ func (m *defaultUserModel) QueryUserSubscribe(ctx context.Context, userId int64, // 获取当前时间向前推 7 天 sevenDaysAgo := time.Now().Add(-7 * 24 * time.Hour) // 基础条件查询 - conn = conn.Model(&Subscribe{}).Where("`user_id` = ? and `status` IN ?", userId, status) + conn = conn.Model(&Subscribe{}).Where("`user_id` = ?", userId) + if len(status) > 0 { + conn = conn.Where("`status` IN ?", status) + } return conn.Where("`expire_time` > ? OR `finished_at` >= ?", now, sevenDaysAgo). Preload("Subscribe"). Find(&list).Error diff --git a/queue/logic/order/activateOrderLogic.go b/queue/logic/order/activateOrderLogic.go index 924ea16..8ca9308 100644 --- a/queue/logic/order/activateOrderLogic.go +++ b/queue/logic/order/activateOrderLogic.go @@ -369,15 +369,14 @@ func (l *ActivateOrderLogic) Renewal(ctx context.Context, orderInfo *order.Order userSub.Status = 1 } - //fix bug:FinishedAt causes the update subscription to fail - if now.AddDate(-30, 0, 0).After(*userSub.FinishedAt) { - userSub.FinishedAt = &now - } // Check whether traffic reset on renewal is enabled if !*sub.RenewalReset { userSub.Download = 0 userSub.Upload = 0 } + if userSub.FinishedAt != nil { + userSub.FinishedAt = nil + } userSub.ExpireTime = tool.AddTime(sub.UnitTime, orderInfo.Quantity, userSub.ExpireTime) // update user subscribe