diff --git a/internal/logic/common/familyEntitlement.go b/internal/logic/common/familyEntitlement.go index f6f15bc..db6cb95 100644 --- a/internal/logic/common/familyEntitlement.go +++ b/internal/logic/common/familyEntitlement.go @@ -34,18 +34,20 @@ func ResolveEntitlementUser(ctx context.Context, db *gorm.DB, currentUserID int6 } var relation familyEntitlementRelation - err := db.WithContext(ctx). + query := db.WithContext(ctx). Table("user_family_member"). Select("user_family_member.role, user_family.status AS family_status, user_family.owner_user_id"). Joins("JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL"). Where("user_family_member.user_id = ? AND user_family_member.deleted_at IS NULL AND user_family_member.status = ?", currentUserID, modelUser.FamilyMemberActive). - First(&relation).Error - if err != nil { - if errors.Is(err, gorm.ErrRecordNotFound) { - return entitlement, nil - } + Order("user_family_member.role"). + Limit(1). + Find(&relation) + if query.Error != nil { return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "query family entitlement relation failed") } + if query.RowsAffected == 0 { + return entitlement, nil + } return buildEntitlementContext(currentUserID, &relation), nil }