fix(subscribe): improve query logic and handle status filtering
This commit is contained in:
parent
105ee9cc46
commit
2aaf4cf618
@ -36,7 +36,7 @@ func (l *QueryUserSubscribeLogic) QueryUserSubscribe() (resp *types.QueryUserSub
|
|||||||
logger.Error("current user is not found in context")
|
logger.Error("current user is not found in context")
|
||||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.InvalidAccess), "Invalid Access")
|
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 {
|
if err != nil {
|
||||||
l.Errorw("[QueryUserSubscribeLogic] Query User Subscribe Error:", logger.Field("err", err.Error()))
|
l.Errorw("[QueryUserSubscribeLogic] Query User Subscribe Error:", logger.Field("err", err.Error()))
|
||||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "Query User Subscribe Error")
|
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "Query User Subscribe Error")
|
||||||
|
|||||||
@ -76,7 +76,10 @@ func (m *defaultUserModel) QueryUserSubscribe(ctx context.Context, userId int64,
|
|||||||
// 获取当前时间向前推 7 天
|
// 获取当前时间向前推 7 天
|
||||||
sevenDaysAgo := time.Now().Add(-7 * 24 * time.Hour)
|
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).
|
return conn.Where("`expire_time` > ? OR `finished_at` >= ?", now, sevenDaysAgo).
|
||||||
Preload("Subscribe").
|
Preload("Subscribe").
|
||||||
Find(&list).Error
|
Find(&list).Error
|
||||||
|
|||||||
@ -369,15 +369,14 @@ func (l *ActivateOrderLogic) Renewal(ctx context.Context, orderInfo *order.Order
|
|||||||
userSub.Status = 1
|
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
|
// Check whether traffic reset on renewal is enabled
|
||||||
if !*sub.RenewalReset {
|
if !*sub.RenewalReset {
|
||||||
userSub.Download = 0
|
userSub.Download = 0
|
||||||
userSub.Upload = 0
|
userSub.Upload = 0
|
||||||
}
|
}
|
||||||
|
if userSub.FinishedAt != nil {
|
||||||
|
userSub.FinishedAt = nil
|
||||||
|
}
|
||||||
|
|
||||||
userSub.ExpireTime = tool.AddTime(sub.UnitTime, orderInfo.Quantity, userSub.ExpireTime)
|
userSub.ExpireTime = tool.AddTime(sub.UnitTime, orderInfo.Quantity, userSub.ExpireTime)
|
||||||
// update user subscribe
|
// update user subscribe
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user