🐛 Fix activating badges

This commit is contained in:
LittleSheep 2025-03-02 21:04:24 +08:00
parent bc31a94c98
commit 53d856c7a7
4 changed files with 7 additions and 6 deletions

View File

@ -3,6 +3,7 @@ package grpc
import ( import (
"context" "context"
"fmt" "fmt"
"git.solsynth.dev/hypernet/nexus/pkg/proto" "git.solsynth.dev/hypernet/nexus/pkg/proto"
"git.solsynth.dev/hypernet/passport/pkg/authkit/models" "git.solsynth.dev/hypernet/passport/pkg/authkit/models"
localCache "git.solsynth.dev/hypernet/passport/pkg/internal/cache" localCache "git.solsynth.dev/hypernet/passport/pkg/internal/cache"
@ -46,7 +47,7 @@ func (v *App) GetUser(ctx context.Context, request *proto.GetUserRequest) (*prot
if err := tx. if err := tx.
Preload("Profile"). Preload("Profile").
Preload("Badges", func(db *gorm.DB) *gorm.DB { Preload("Badges", func(db *gorm.DB) *gorm.DB {
return db.Order("badges.type DESC") return db.Order("badges.is_active DESC, badges.type DESC")
}). }).
First(&account).Error; err != nil { First(&account).Error; err != nil {
return nil, status.Errorf(codes.NotFound, fmt.Sprintf("requested user with id %d was not found", request.GetUserId())) return nil, status.Errorf(codes.NotFound, fmt.Sprintf("requested user with id %d was not found", request.GetUserId()))

View File

@ -18,11 +18,11 @@ func ActiveBadge(badge models.Badge) error {
accountId := badge.AccountID accountId := badge.AccountID
tx := database.C.Begin() tx := database.C.Begin()
if err := tx.Model(&badge).Where("account_id = ?", accountId).Update("is_active", false).Error; err != nil { if err := tx.Model(&models.Badge{}).Where("account_id = ?", accountId).Update("is_active", false).Error; err != nil {
tx.Rollback() tx.Rollback()
return err return err
} }
if err := tx.Model(&badge).Where("id = ?", badge.ID).Update("is_active", true).Error; err != nil { if err := tx.Model(&models.Badge{}).Where("id = ?", badge.ID).Update("is_active", true).Error; err != nil {
tx.Rollback() tx.Rollback()
return err return err
} }

View File

@ -50,7 +50,7 @@ func getUserInBatch(c *fiber.Ctx) error {
if err := tx. if err := tx.
Preload("Profile"). Preload("Profile").
Preload("Badges", func(db *gorm.DB) *gorm.DB { Preload("Badges", func(db *gorm.DB) *gorm.DB {
return db.Order("badges.type DESC") return db.Order("badges.is_active DESC, badges.type DESC")
}). }).
Find(&accounts).Error; err != nil { Find(&accounts).Error; err != nil {
return fiber.NewError(fiber.StatusBadRequest, err.Error()) return fiber.NewError(fiber.StatusBadRequest, err.Error())
@ -148,7 +148,7 @@ func updateUserinfo(c *fiber.Ctx) error {
return fiber.NewError(fiber.StatusInternalServerError, err.Error()) return fiber.NewError(fiber.StatusInternalServerError, err.Error())
} }
var links = make(map[string]any) links := make(map[string]any)
for k, v := range data.Links { for k, v := range data.Links {
links[k] = v links[k] = v
} }

View File

@ -44,7 +44,7 @@ func getOtherUserinfo(c *fiber.Ctx) error {
if err := tx. if err := tx.
Preload("Profile"). Preload("Profile").
Preload("Badges", func(db *gorm.DB) *gorm.DB { Preload("Badges", func(db *gorm.DB) *gorm.DB {
return db.Order("badges.type DESC") return db.Order("badges.is_active DESC, badges.type DESC")
}). }).
First(&account).Error; err != nil { First(&account).Error; err != nil {
return fiber.NewError(fiber.StatusBadRequest, err.Error()) return fiber.NewError(fiber.StatusBadRequest, err.Error())