diff --git a/internal/repo/activity/vote_repo.go b/internal/repo/activity/vote_repo.go index 120d392b..3c65f4e9 100644 --- a/internal/repo/activity/vote_repo.go +++ b/internal/repo/activity/vote_repo.go @@ -293,8 +293,14 @@ func (vr *VoteRepo) saveActivitiesAvailable(session *xorm.Session, op *schema.Vo continue } if exist { - if _, err = session.Where("id = ?", existsActivity.ID).Cols("`cancelled`"). - Update(&entity.Activity{Cancelled: entity.ActivityAvailable}); err != nil { + bean := &entity.Activity{ + Cancelled: entity.ActivityAvailable, + Rank: activity.Rank, + HasRank: activity.HasRank(), + } + session.Where("id = ?", existsActivity.ID) + if _, err = session.Cols("`cancelled`", "`rank`", "`has_rank`"). + Update(bean); err != nil { return false, err } } else { diff --git a/internal/repo/rank/user_rank_repo.go b/internal/repo/rank/user_rank_repo.go index 257dec8e..5738c06a 100644 --- a/internal/repo/rank/user_rank_repo.go +++ b/internal/repo/rank/user_rank_repo.go @@ -50,11 +50,11 @@ func (ur *UserRankRepo) CheckReachLimit(ctx context.Context, session *xorm.Sessi MoreVal: now.EndOfDay(), }) - earned, err := session.Sum(&entity.Activity{}, "`rank`") + earned, err := session.SumInt(&entity.Activity{}, "`rank`") if err != nil { return false, err } - if int(earned) <= maxDailyRank { + if int(earned) < maxDailyRank { return false, nil } log.Infof("user %s today has rank %d is reach stand %d", userID, earned, maxDailyRank)