fix: some api bug
This commit is contained in:
@@ -4,7 +4,6 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"juwan-backend/app/player/rpc/internal/models/players"
|
||||
|
||||
"juwan-backend/app/player/rpc/internal/svc"
|
||||
"juwan-backend/app/player/rpc/pb"
|
||||
|
||||
@@ -27,16 +26,17 @@ func NewSearchPlayersLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Sea
|
||||
}
|
||||
|
||||
func (l *SearchPlayersLogic) SearchPlayers(in *pb.SearchPlayersReq) (*pb.SearchPlayersResp, error) {
|
||||
gender := 0
|
||||
if in.Gender > 0 {
|
||||
gender = 1
|
||||
}
|
||||
searcher := l.svcCtx.PlayerModelRO.Players.Query()
|
||||
if in.Gender >= 0 {
|
||||
|
||||
if in.Gender != nil && *in.Gender != 0 {
|
||||
// 1 man 2 woman
|
||||
gender := true
|
||||
if *in.Gender == 2 {
|
||||
gender = false
|
||||
}
|
||||
searcher.Where(players.GenderEQ(gender))
|
||||
}
|
||||
|
||||
all, err := searcher.Limit(int(in.Limit)).Offset(int(in.Page * in.Limit)).All(l.ctx)
|
||||
all, err := searcher.Limit(int(*in.Limit)).Offset(int(*in.Page * *in.Limit)).All(l.ctx)
|
||||
if err != nil {
|
||||
logx.Errorf("SearchPlayers err: %v", err)
|
||||
return nil, errors.New("search players")
|
||||
|
||||
@@ -36,7 +36,7 @@ var (
|
||||
{Name: "id", Type: field.TypeInt64, Increment: true},
|
||||
{Name: "user_id", Type: field.TypeInt64, Unique: true},
|
||||
{Name: "status", Type: field.TypeString, Size: 20, Default: "offline"},
|
||||
{Name: "gender", Type: field.TypeInt, Unique: true},
|
||||
{Name: "gender", Type: field.TypeBool, Default: true},
|
||||
{Name: "rating", Type: field.TypeOther, Nullable: true, SchemaType: map[string]string{"postgres": "decimal(3,2)"}},
|
||||
{Name: "total_orders", Type: field.TypeInt, Nullable: true, Default: 0},
|
||||
{Name: "completed_orders", Type: field.TypeInt, Nullable: true, Default: 0},
|
||||
|
||||
@@ -1131,8 +1131,7 @@ type PlayersMutation struct {
|
||||
user_id *int64
|
||||
adduser_id *int64
|
||||
status *string
|
||||
gender *int
|
||||
addgender *int
|
||||
gender *bool
|
||||
rating *decimal.Decimal
|
||||
total_orders *int
|
||||
addtotal_orders *int
|
||||
@@ -1348,13 +1347,12 @@ func (m *PlayersMutation) ResetStatus() {
|
||||
}
|
||||
|
||||
// SetGender sets the "gender" field.
|
||||
func (m *PlayersMutation) SetGender(i int) {
|
||||
m.gender = &i
|
||||
m.addgender = nil
|
||||
func (m *PlayersMutation) SetGender(b bool) {
|
||||
m.gender = &b
|
||||
}
|
||||
|
||||
// Gender returns the value of the "gender" field in the mutation.
|
||||
func (m *PlayersMutation) Gender() (r int, exists bool) {
|
||||
func (m *PlayersMutation) Gender() (r bool, exists bool) {
|
||||
v := m.gender
|
||||
if v == nil {
|
||||
return
|
||||
@@ -1365,7 +1363,7 @@ func (m *PlayersMutation) Gender() (r int, exists bool) {
|
||||
// OldGender returns the old "gender" field's value of the Players entity.
|
||||
// If the Players object wasn't provided to the builder, the object is fetched from the database.
|
||||
// An error is returned if the mutation operation is not UpdateOne, or the database query fails.
|
||||
func (m *PlayersMutation) OldGender(ctx context.Context) (v int, err error) {
|
||||
func (m *PlayersMutation) OldGender(ctx context.Context) (v bool, err error) {
|
||||
if !m.op.Is(OpUpdateOne) {
|
||||
return v, errors.New("OldGender is only allowed on UpdateOne operations")
|
||||
}
|
||||
@@ -1379,28 +1377,9 @@ func (m *PlayersMutation) OldGender(ctx context.Context) (v int, err error) {
|
||||
return oldValue.Gender, nil
|
||||
}
|
||||
|
||||
// AddGender adds i to the "gender" field.
|
||||
func (m *PlayersMutation) AddGender(i int) {
|
||||
if m.addgender != nil {
|
||||
*m.addgender += i
|
||||
} else {
|
||||
m.addgender = &i
|
||||
}
|
||||
}
|
||||
|
||||
// AddedGender returns the value that was added to the "gender" field in this mutation.
|
||||
func (m *PlayersMutation) AddedGender() (r int, exists bool) {
|
||||
v := m.addgender
|
||||
if v == nil {
|
||||
return
|
||||
}
|
||||
return *v, true
|
||||
}
|
||||
|
||||
// ResetGender resets all changes to the "gender" field.
|
||||
func (m *PlayersMutation) ResetGender() {
|
||||
m.gender = nil
|
||||
m.addgender = nil
|
||||
}
|
||||
|
||||
// SetRating sets the "rating" field.
|
||||
@@ -2001,7 +1980,7 @@ func (m *PlayersMutation) SetField(name string, value ent.Value) error {
|
||||
m.SetStatus(v)
|
||||
return nil
|
||||
case players.FieldGender:
|
||||
v, ok := value.(int)
|
||||
v, ok := value.(bool)
|
||||
if !ok {
|
||||
return fmt.Errorf("unexpected type %T for field %s", value, name)
|
||||
}
|
||||
@@ -2074,9 +2053,6 @@ func (m *PlayersMutation) AddedFields() []string {
|
||||
if m.adduser_id != nil {
|
||||
fields = append(fields, players.FieldUserID)
|
||||
}
|
||||
if m.addgender != nil {
|
||||
fields = append(fields, players.FieldGender)
|
||||
}
|
||||
if m.addtotal_orders != nil {
|
||||
fields = append(fields, players.FieldTotalOrders)
|
||||
}
|
||||
@@ -2096,8 +2072,6 @@ func (m *PlayersMutation) AddedField(name string) (ent.Value, bool) {
|
||||
switch name {
|
||||
case players.FieldUserID:
|
||||
return m.AddedUserID()
|
||||
case players.FieldGender:
|
||||
return m.AddedGender()
|
||||
case players.FieldTotalOrders:
|
||||
return m.AddedTotalOrders()
|
||||
case players.FieldCompletedOrders:
|
||||
@@ -2120,13 +2094,6 @@ func (m *PlayersMutation) AddField(name string, value ent.Value) error {
|
||||
}
|
||||
m.AddUserID(v)
|
||||
return nil
|
||||
case players.FieldGender:
|
||||
v, ok := value.(int)
|
||||
if !ok {
|
||||
return fmt.Errorf("unexpected type %T for field %s", value, name)
|
||||
}
|
||||
m.AddGender(v)
|
||||
return nil
|
||||
case players.FieldTotalOrders:
|
||||
v, ok := value.(int)
|
||||
if !ok {
|
||||
|
||||
@@ -25,7 +25,7 @@ type Players struct {
|
||||
// Status holds the value of the "status" field.
|
||||
Status string `json:"status,omitempty"`
|
||||
// Gender holds the value of the "gender" field.
|
||||
Gender int `json:"gender,omitempty"`
|
||||
Gender bool `json:"gender,omitempty"`
|
||||
// Rating holds the value of the "rating" field.
|
||||
Rating decimal.Decimal `json:"rating,omitempty"`
|
||||
// TotalOrders holds the value of the "total_orders" field.
|
||||
@@ -56,7 +56,9 @@ func (*Players) scanValues(columns []string) ([]any, error) {
|
||||
values[i] = new(decimal.Decimal)
|
||||
case players.FieldGames:
|
||||
values[i] = new(pq.Int64Array)
|
||||
case players.FieldID, players.FieldUserID, players.FieldGender, players.FieldTotalOrders, players.FieldCompletedOrders, players.FieldShopID:
|
||||
case players.FieldGender:
|
||||
values[i] = new(sql.NullBool)
|
||||
case players.FieldID, players.FieldUserID, players.FieldTotalOrders, players.FieldCompletedOrders, players.FieldShopID:
|
||||
values[i] = new(sql.NullInt64)
|
||||
case players.FieldStatus:
|
||||
values[i] = new(sql.NullString)
|
||||
@@ -96,10 +98,10 @@ func (_m *Players) assignValues(columns []string, values []any) error {
|
||||
_m.Status = value.String
|
||||
}
|
||||
case players.FieldGender:
|
||||
if value, ok := values[i].(*sql.NullInt64); !ok {
|
||||
if value, ok := values[i].(*sql.NullBool); !ok {
|
||||
return fmt.Errorf("unexpected type %T for field gender", values[i])
|
||||
} else if value.Valid {
|
||||
_m.Gender = int(value.Int64)
|
||||
_m.Gender = value.Bool
|
||||
}
|
||||
case players.FieldRating:
|
||||
if value, ok := values[i].(*decimal.Decimal); !ok {
|
||||
|
||||
@@ -72,6 +72,8 @@ var (
|
||||
DefaultStatus string
|
||||
// StatusValidator is a validator for the "status" field. It is called by the builders before save.
|
||||
StatusValidator func(string) error
|
||||
// DefaultGender holds the default value on creation for the "gender" field.
|
||||
DefaultGender bool
|
||||
// DefaultRating holds the default value on creation for the "rating" field.
|
||||
DefaultRating decimal.Decimal
|
||||
// DefaultTotalOrders holds the default value on creation for the "total_orders" field.
|
||||
|
||||
@@ -67,7 +67,7 @@ func Status(v string) predicate.Players {
|
||||
}
|
||||
|
||||
// Gender applies equality check predicate on the "gender" field. It's identical to GenderEQ.
|
||||
func Gender(v int) predicate.Players {
|
||||
func Gender(v bool) predicate.Players {
|
||||
return predicate.Players(sql.FieldEQ(FieldGender, v))
|
||||
}
|
||||
|
||||
@@ -212,45 +212,15 @@ func StatusContainsFold(v string) predicate.Players {
|
||||
}
|
||||
|
||||
// GenderEQ applies the EQ predicate on the "gender" field.
|
||||
func GenderEQ(v int) predicate.Players {
|
||||
func GenderEQ(v bool) predicate.Players {
|
||||
return predicate.Players(sql.FieldEQ(FieldGender, v))
|
||||
}
|
||||
|
||||
// GenderNEQ applies the NEQ predicate on the "gender" field.
|
||||
func GenderNEQ(v int) predicate.Players {
|
||||
func GenderNEQ(v bool) predicate.Players {
|
||||
return predicate.Players(sql.FieldNEQ(FieldGender, v))
|
||||
}
|
||||
|
||||
// GenderIn applies the In predicate on the "gender" field.
|
||||
func GenderIn(vs ...int) predicate.Players {
|
||||
return predicate.Players(sql.FieldIn(FieldGender, vs...))
|
||||
}
|
||||
|
||||
// GenderNotIn applies the NotIn predicate on the "gender" field.
|
||||
func GenderNotIn(vs ...int) predicate.Players {
|
||||
return predicate.Players(sql.FieldNotIn(FieldGender, vs...))
|
||||
}
|
||||
|
||||
// GenderGT applies the GT predicate on the "gender" field.
|
||||
func GenderGT(v int) predicate.Players {
|
||||
return predicate.Players(sql.FieldGT(FieldGender, v))
|
||||
}
|
||||
|
||||
// GenderGTE applies the GTE predicate on the "gender" field.
|
||||
func GenderGTE(v int) predicate.Players {
|
||||
return predicate.Players(sql.FieldGTE(FieldGender, v))
|
||||
}
|
||||
|
||||
// GenderLT applies the LT predicate on the "gender" field.
|
||||
func GenderLT(v int) predicate.Players {
|
||||
return predicate.Players(sql.FieldLT(FieldGender, v))
|
||||
}
|
||||
|
||||
// GenderLTE applies the LTE predicate on the "gender" field.
|
||||
func GenderLTE(v int) predicate.Players {
|
||||
return predicate.Players(sql.FieldLTE(FieldGender, v))
|
||||
}
|
||||
|
||||
// RatingEQ applies the EQ predicate on the "rating" field.
|
||||
func RatingEQ(v decimal.Decimal) predicate.Players {
|
||||
return predicate.Players(sql.FieldEQ(FieldRating, v))
|
||||
|
||||
@@ -43,11 +43,19 @@ func (_c *PlayersCreate) SetNillableStatus(v *string) *PlayersCreate {
|
||||
}
|
||||
|
||||
// SetGender sets the "gender" field.
|
||||
func (_c *PlayersCreate) SetGender(v int) *PlayersCreate {
|
||||
func (_c *PlayersCreate) SetGender(v bool) *PlayersCreate {
|
||||
_c.mutation.SetGender(v)
|
||||
return _c
|
||||
}
|
||||
|
||||
// SetNillableGender sets the "gender" field if the given value is not nil.
|
||||
func (_c *PlayersCreate) SetNillableGender(v *bool) *PlayersCreate {
|
||||
if v != nil {
|
||||
_c.SetGender(*v)
|
||||
}
|
||||
return _c
|
||||
}
|
||||
|
||||
// SetRating sets the "rating" field.
|
||||
func (_c *PlayersCreate) SetRating(v decimal.Decimal) *PlayersCreate {
|
||||
_c.mutation.SetRating(v)
|
||||
@@ -189,6 +197,10 @@ func (_c *PlayersCreate) defaults() {
|
||||
v := players.DefaultStatus
|
||||
_c.mutation.SetStatus(v)
|
||||
}
|
||||
if _, ok := _c.mutation.Gender(); !ok {
|
||||
v := players.DefaultGender
|
||||
_c.mutation.SetGender(v)
|
||||
}
|
||||
if _, ok := _c.mutation.Rating(); !ok {
|
||||
v := players.DefaultRating
|
||||
_c.mutation.SetRating(v)
|
||||
@@ -282,7 +294,7 @@ func (_c *PlayersCreate) createSpec() (*Players, *sqlgraph.CreateSpec) {
|
||||
_node.Status = value
|
||||
}
|
||||
if value, ok := _c.mutation.Gender(); ok {
|
||||
_spec.SetField(players.FieldGender, field.TypeInt, value)
|
||||
_spec.SetField(players.FieldGender, field.TypeBool, value)
|
||||
_node.Gender = value
|
||||
}
|
||||
if value, ok := _c.mutation.Rating(); ok {
|
||||
|
||||
@@ -67,26 +67,19 @@ func (_u *PlayersUpdate) SetNillableStatus(v *string) *PlayersUpdate {
|
||||
}
|
||||
|
||||
// SetGender sets the "gender" field.
|
||||
func (_u *PlayersUpdate) SetGender(v int) *PlayersUpdate {
|
||||
_u.mutation.ResetGender()
|
||||
func (_u *PlayersUpdate) SetGender(v bool) *PlayersUpdate {
|
||||
_u.mutation.SetGender(v)
|
||||
return _u
|
||||
}
|
||||
|
||||
// SetNillableGender sets the "gender" field if the given value is not nil.
|
||||
func (_u *PlayersUpdate) SetNillableGender(v *int) *PlayersUpdate {
|
||||
func (_u *PlayersUpdate) SetNillableGender(v *bool) *PlayersUpdate {
|
||||
if v != nil {
|
||||
_u.SetGender(*v)
|
||||
}
|
||||
return _u
|
||||
}
|
||||
|
||||
// AddGender adds value to the "gender" field.
|
||||
func (_u *PlayersUpdate) AddGender(v int) *PlayersUpdate {
|
||||
_u.mutation.AddGender(v)
|
||||
return _u
|
||||
}
|
||||
|
||||
// SetRating sets the "rating" field.
|
||||
func (_u *PlayersUpdate) SetRating(v decimal.Decimal) *PlayersUpdate {
|
||||
_u.mutation.SetRating(v)
|
||||
@@ -297,10 +290,7 @@ func (_u *PlayersUpdate) sqlSave(ctx context.Context) (_node int, err error) {
|
||||
_spec.SetField(players.FieldStatus, field.TypeString, value)
|
||||
}
|
||||
if value, ok := _u.mutation.Gender(); ok {
|
||||
_spec.SetField(players.FieldGender, field.TypeInt, value)
|
||||
}
|
||||
if value, ok := _u.mutation.AddedGender(); ok {
|
||||
_spec.AddField(players.FieldGender, field.TypeInt, value)
|
||||
_spec.SetField(players.FieldGender, field.TypeBool, value)
|
||||
}
|
||||
if value, ok := _u.mutation.Rating(); ok {
|
||||
_spec.SetField(players.FieldRating, field.TypeOther, value)
|
||||
@@ -411,26 +401,19 @@ func (_u *PlayersUpdateOne) SetNillableStatus(v *string) *PlayersUpdateOne {
|
||||
}
|
||||
|
||||
// SetGender sets the "gender" field.
|
||||
func (_u *PlayersUpdateOne) SetGender(v int) *PlayersUpdateOne {
|
||||
_u.mutation.ResetGender()
|
||||
func (_u *PlayersUpdateOne) SetGender(v bool) *PlayersUpdateOne {
|
||||
_u.mutation.SetGender(v)
|
||||
return _u
|
||||
}
|
||||
|
||||
// SetNillableGender sets the "gender" field if the given value is not nil.
|
||||
func (_u *PlayersUpdateOne) SetNillableGender(v *int) *PlayersUpdateOne {
|
||||
func (_u *PlayersUpdateOne) SetNillableGender(v *bool) *PlayersUpdateOne {
|
||||
if v != nil {
|
||||
_u.SetGender(*v)
|
||||
}
|
||||
return _u
|
||||
}
|
||||
|
||||
// AddGender adds value to the "gender" field.
|
||||
func (_u *PlayersUpdateOne) AddGender(v int) *PlayersUpdateOne {
|
||||
_u.mutation.AddGender(v)
|
||||
return _u
|
||||
}
|
||||
|
||||
// SetRating sets the "rating" field.
|
||||
func (_u *PlayersUpdateOne) SetRating(v decimal.Decimal) *PlayersUpdateOne {
|
||||
_u.mutation.SetRating(v)
|
||||
@@ -671,10 +654,7 @@ func (_u *PlayersUpdateOne) sqlSave(ctx context.Context) (_node *Players, err er
|
||||
_spec.SetField(players.FieldStatus, field.TypeString, value)
|
||||
}
|
||||
if value, ok := _u.mutation.Gender(); ok {
|
||||
_spec.SetField(players.FieldGender, field.TypeInt, value)
|
||||
}
|
||||
if value, ok := _u.mutation.AddedGender(); ok {
|
||||
_spec.AddField(players.FieldGender, field.TypeInt, value)
|
||||
_spec.SetField(players.FieldGender, field.TypeBool, value)
|
||||
}
|
||||
if value, ok := _u.mutation.Rating(); ok {
|
||||
_spec.SetField(players.FieldRating, field.TypeOther, value)
|
||||
|
||||
@@ -60,6 +60,10 @@ func init() {
|
||||
players.DefaultStatus = playersDescStatus.Default.(string)
|
||||
// players.StatusValidator is a validator for the "status" field. It is called by the builders before save.
|
||||
players.StatusValidator = playersDescStatus.Validators[0].(func(string) error)
|
||||
// playersDescGender is the schema descriptor for gender field.
|
||||
playersDescGender := playersFields[3].Descriptor()
|
||||
// players.DefaultGender holds the default value on creation for the gender field.
|
||||
players.DefaultGender = playersDescGender.Default.(bool)
|
||||
// playersDescRating is the schema descriptor for rating field.
|
||||
playersDescRating := playersFields[4].Descriptor()
|
||||
// players.DefaultRating holds the default value on creation for the rating field.
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package schema
|
||||
|
||||
import (
|
||||
"juwan-backend/pkg/types"
|
||||
"time"
|
||||
|
||||
"entgo.io/ent"
|
||||
@@ -23,7 +24,7 @@ func (Players) Fields() []ent.Field {
|
||||
field.Int64("id").Immutable().Unique(),
|
||||
field.Int64("user_id").Unique(),
|
||||
field.String("status").MaxLen(20).Default("offline"),
|
||||
field.Int("gender").Unique(),
|
||||
field.Bool("gender").Default(true),
|
||||
field.Other("rating", decimal.Decimal{}).
|
||||
Optional().
|
||||
Default(playerDefaultRating).
|
||||
@@ -33,7 +34,9 @@ func (Players) Fields() []ent.Field {
|
||||
field.Int("total_orders").Optional().Default(0),
|
||||
field.Int("completed_orders").Optional().Default(0),
|
||||
field.Int64("shop_id").Optional().Nillable(),
|
||||
field.Strings("tags").Optional().Default([]string{}),
|
||||
field.Other("tags", types.TextArray{}).SchemaType(map[string]string{
|
||||
dialect.Postgres: "text[]",
|
||||
}).Optional(),
|
||||
field.Other("games", pq.Int64Array{}).
|
||||
Optional().
|
||||
Default(pq.Int64Array{}).
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package schema
|
||||
|
||||
import (
|
||||
"juwan-backend/pkg/types"
|
||||
"time"
|
||||
|
||||
"entgo.io/ent"
|
||||
@@ -47,7 +48,9 @@ func (PlayerServices) Fields() []ent.Field {
|
||||
}),
|
||||
field.String("unit").MaxLen(20),
|
||||
field.String("rank_range").MaxLen(100).Optional().Nillable(),
|
||||
field.Strings("availability").Optional().Default([]string{}),
|
||||
field.Other("availability", types.TextArray{}).SchemaType(map[string]string{
|
||||
dialect.Postgres: "text[]",
|
||||
}).Optional().Nillable(),
|
||||
field.Other("rating", decimal.Decimal{}).
|
||||
Default(decFive).
|
||||
SchemaType(map[string]string{
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package svc
|
||||
|
||||
import (
|
||||
stdsql "database/sql"
|
||||
"juwan-backend/app/player/rpc/internal/config"
|
||||
"juwan-backend/app/player/rpc/internal/models"
|
||||
"juwan-backend/app/snowflake/rpc/snowflake"
|
||||
@@ -10,6 +11,7 @@ import (
|
||||
"time"
|
||||
|
||||
"ariga.io/entcache"
|
||||
"entgo.io/ent/dialect"
|
||||
"entgo.io/ent/dialect/sql"
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
|
||||
@@ -24,14 +26,16 @@ type ServiceContext struct {
|
||||
}
|
||||
|
||||
func NewServiceContext(c config.Config) *ServiceContext {
|
||||
RWConn, err := sql.Open("pgx", c.DB.Master)
|
||||
rawRW, err := stdsql.Open("pgx", c.DB.Master)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
ROConn, err := sql.Open("pgx", c.DB.Slaves)
|
||||
rawRO, err := stdsql.Open("pgx", c.DB.Slaves)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
RWConn := sql.OpenDB(dialect.Postgres, rawRW)
|
||||
ROConn := sql.OpenDB(dialect.Postgres, rawRO)
|
||||
|
||||
redisCluster, err := redisx.ConnectMasterSlaveCluster(c.CacheConf, 5*time.Second)
|
||||
if redisCluster == nil || err != nil {
|
||||
|
||||
Reference in New Issue
Block a user