diff --git a/db/ent/migrate/schema.go b/db/ent/migrate/schema.go index 09950da..5b7f42a 100644 --- a/db/ent/migrate/schema.go +++ b/db/ent/migrate/schema.go @@ -36,6 +36,13 @@ var ( OnDelete: schema.NoAction, }, }, + Indexes: []*schema.Index{ + { + Name: "texture_user_profile_texture", + Unique: false, + Columns: []*schema.Column{TexturesColumns[5]}, + }, + }, } // UsersColumns holds the columns for the "users" table. UsersColumns = []*schema.Column{ diff --git a/db/ent/schema/texture.go b/db/ent/schema/texture.go index 7736166..ba76efe 100644 --- a/db/ent/schema/texture.go +++ b/db/ent/schema/texture.go @@ -5,6 +5,7 @@ import ( "entgo.io/ent/dialect" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" + "entgo.io/ent/schema/index" ) // Texture holds the schema definition for the Texture entity. @@ -38,5 +39,7 @@ func (Texture) Edges() []ent.Edge { } func (Texture) Indexes() []ent.Index { - return nil + return []ent.Index{ + index.Edges("user"), + } } diff --git a/service/yggdrasil/texture.go b/service/yggdrasil/texture.go index 6b591e2..9caf612 100644 --- a/service/yggdrasil/texture.go +++ b/service/yggdrasil/texture.go @@ -11,6 +11,7 @@ import ( "github.com/samber/lo" "github.com/xmdhs/authlib-skin/db/ent" "github.com/xmdhs/authlib-skin/db/ent/texture" + "github.com/xmdhs/authlib-skin/db/ent/user" "github.com/xmdhs/authlib-skin/db/ent/userprofile" "github.com/xmdhs/authlib-skin/model/yggdrasil" utilsService "github.com/xmdhs/authlib-skin/service/utils" @@ -31,7 +32,7 @@ func (y *Yggdrasil) PutTexture(ctx context.Context, token string, texturebyte [] return fmt.Errorf("PutTexture: %w", ErrUUIDNotEq) } - up, err := y.client.UserProfile.Query().Where(userprofile.UUIDEQ(uuid)).WithUser().First(ctx) + up, err := y.client.UserProfile.Query().Where(userprofile.HasUserWith(user.ID(t.UID))).WithUser().First(ctx) err = utils.WithTx(ctx, y.client, func(tx *ent.Tx) error { // 查找此用户该类型下是否已经存在皮肤