This is an automated email from the ASF dual-hosted git repository. linkinstar pushed a commit to branch feat/1.6.0/user in repository https://gitbox.apache.org/repos/asf/answer.git
The following commit(s) were added to refs/heads/feat/1.6.0/user by this push: new b78be61e refactor(user): simplify suspended until logic b78be61e is described below commit b78be61ee84463afa6e8bfb79fbe17926ec15f8c Author: LinkinStars <linkins...@foxmail.com> AuthorDate: Thu Jun 26 16:42:24 2025 +0800 refactor(user): simplify suspended until logic --- internal/schema/user_schema.go | 14 ++++++-------- internal/service/user_admin/user_backyard.go | 2 +- internal/service/user_common/user.go | 2 +- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/internal/schema/user_schema.go b/internal/schema/user_schema.go index a320ca9b..7ba8817a 100644 --- a/internal/schema/user_schema.go +++ b/internal/schema/user_schema.go @@ -109,7 +109,7 @@ func (r *UserLoginResp) ConvertFromUserEntity(userInfo *entity.User) { r.LastLoginDate = userInfo.LastLoginDate.Unix() r.Status = constant.ConvertUserStatus(userInfo.Status, userInfo.MailStatus) r.HavePassword = len(userInfo.Pass) > 0 - if !userInfo.SuspendedUntil.IsZero() && userInfo.SuspendedUntil != entity.PermanentSuspensionTime { + if !userInfo.SuspendedUntil.IsZero() { r.SuspendedUntil = userInfo.SuspendedUntil.Unix() } } @@ -127,7 +127,7 @@ func (r *GetCurrentLoginUserInfoResp) ConvertFromUserEntity(userInfo *entity.Use if len(r.ColorScheme) == 0 { r.ColorScheme = constant.ColorSchemeDefault } - if !userInfo.SuspendedUntil.IsZero() && userInfo.SuspendedUntil != entity.PermanentSuspensionTime { + if !userInfo.SuspendedUntil.IsZero() { r.SuspendedUntil = userInfo.SuspendedUntil.Unix() } } @@ -176,7 +176,7 @@ func (r *GetOtherUserInfoByUsernameResp) ConvertFromUserEntity(userInfo *entity. r.CreatedAt = userInfo.CreatedAt.Unix() r.LastLoginDate = userInfo.LastLoginDate.Unix() r.Status = constant.ConvertUserStatus(userInfo.Status, userInfo.MailStatus) - if !userInfo.SuspendedUntil.IsZero() && userInfo.SuspendedUntil != entity.PermanentSuspensionTime { + if !userInfo.SuspendedUntil.IsZero() { r.SuspendedUntil = userInfo.SuspendedUntil.Unix() } r.StatusMsg = "" @@ -187,9 +187,6 @@ func (r *GetOtherUserInfoByUsernameResp) ConvertFromUserEntityWithLang(ctx conte r.CreatedAt = userInfo.CreatedAt.Unix() r.LastLoginDate = userInfo.LastLoginDate.Unix() r.Status = constant.ConvertUserStatus(userInfo.Status, userInfo.MailStatus) - if !userInfo.SuspendedUntil.IsZero() && userInfo.SuspendedUntil != entity.PermanentSuspensionTime { - r.SuspendedUntil = userInfo.SuspendedUntil.Unix() - } lang := handler.GetLangByCtx(ctx) if userInfo.MailStatus == entity.EmailStatusToBeVerified { @@ -197,10 +194,11 @@ func (r *GetOtherUserInfoByUsernameResp) ConvertFromUserEntityWithLang(ctx conte } switch userInfo.Status { case entity.UserStatusSuspended: - if userInfo.SuspendedUntil.IsZero() || userInfo.SuspendedUntil == entity.PermanentSuspensionTime { + if userInfo.SuspendedUntil.IsZero() || userInfo.SuspendedUntil.Year() >= 2099 { r.StatusMsg = translator.Tr(lang, reason.UserStatusSuspendedForever) } else { - trans := translator.GlobalTrans.Tr(lang, "ui.dates.long_date_with_year") + r.SuspendedUntil = userInfo.SuspendedUntil.Unix() + trans := translator.GlobalTrans.Tr(lang, "ui.dates.long_date_with_time") suspendedUntilFormatted := day.Format(userInfo.SuspendedUntil.Unix(), trans, "UTC") r.StatusMsg = translator.TrWithData(lang, reason.UserStatusSuspendedUntil, map[string]interface{}{ "SuspendedUntil": suspendedUntilFormatted, diff --git a/internal/service/user_admin/user_backyard.go b/internal/service/user_admin/user_backyard.go index 9992f8f8..0f6ec81e 100644 --- a/internal/service/user_admin/user_backyard.go +++ b/internal/service/user_admin/user_backyard.go @@ -527,7 +527,7 @@ func (us *UserAdminService) GetUserPage(ctx context.Context, req *schema.GetUser } else if u.Status == entity.UserStatusSuspended { t.Status = constant.UserSuspended t.SuspendedAt = u.SuspendedAt.Unix() - if !u.SuspendedUntil.IsZero() && u.SuspendedUntil != entity.PermanentSuspensionTime { + if !u.SuspendedUntil.IsZero() { t.SuspendedUntil = u.SuspendedUntil.Unix() } } else if u.MailStatus == entity.EmailStatusToBeVerified { diff --git a/internal/service/user_common/user.go b/internal/service/user_common/user.go index 166bf955..124972a1 100644 --- a/internal/service/user_common/user.go +++ b/internal/service/user_common/user.go @@ -180,7 +180,7 @@ func (us *UserCommon) FormatUserBasicInfo(ctx context.Context, userInfo *entity. userBasicInfo.Location = userInfo.Location userBasicInfo.Language = userInfo.Language userBasicInfo.Status = constant.ConvertUserStatus(userInfo.Status, userInfo.MailStatus) - if !userInfo.SuspendedUntil.IsZero() && userInfo.SuspendedUntil != entity.PermanentSuspensionTime { + if !userInfo.SuspendedUntil.IsZero() { userBasicInfo.SuspendedUntil = userInfo.SuspendedUntil.Unix() } if userBasicInfo.Status == constant.UserDeleted {