From ffed1465d3e41a7157804bb33935359185a9d0f2 Mon Sep 17 00:00:00 2001 From: chenlin Date: Fri, 3 Jan 2025 16:40:54 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=96=B0=E5=A2=9E"=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E5=88=86=E7=B1=BB"=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=EF=BC=9B=202.=E5=B0=8F=E7=A8=8B=E5=BA=8F=E5=95=86=E5=9F=8E?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=94=AF=E4=BB=98=E6=94=B9=E6=88=90=E9=97=A8?= =?UTF-8?q?=E5=BA=97=E5=8F=B7=E6=94=B9=E4=B8=BA"200001"=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/game_card.go | 59 +- controller/mall.go | 2 +- go.mod | 54 +- lib/wxpay/wx_pay.go | 112 +++ model/autogenerated_home_category.go | 855 ++++++++++++++++++++++ model/autogenerated_home_category_game.go | 777 ++++++++++++++++++++ model/game_card.go | 308 ++++++++ model/home_category.go | 15 + model/home_category_game.go | 14 + router/router_app.go | 8 +- 10 files changed, 2196 insertions(+), 8 deletions(-) create mode 100644 model/autogenerated_home_category.go create mode 100644 model/autogenerated_home_category_game.go create mode 100644 model/home_category.go create mode 100644 model/home_category_game.go diff --git a/controller/game_card.go b/controller/game_card.go index 2b15410..3d47bcc 100644 --- a/controller/game_card.go +++ b/controller/game_card.go @@ -29,11 +29,68 @@ import ( wechatpayutils "github.com/wechatpay-apiv3/wechatpay-go/utils" ) +// HomeCategoryList 首页分类列表 +// @Summary 首页分类列表 +// @Tags 首页分类, V1.4.5 +// @Produce json +// @Accept json +// @Success 200 {object} model.HomeCategoryListResp +// @Router /api/v1/game_card/home/list [get] +func HomeCategoryList(c *gin.Context) { + categoryList, err := model.GetHomeGameCardList() + if err != nil { + logger.Error("err:", err) + RespJson(c, status.InternalServerError, nil) + return + } + + RespOK(c, categoryList) +} + +func NewGameCardList(c *gin.Context) { + req := struct { + Page int `json:"cur_page"` + PageSize int `json:"page_size"` + SortType int `json:"sort_type"` // 首页排序类型(对应首页分类ID) + GameTypeIds []uint64 `json:"game_type_id"` // 游戏类型id + StoreId uint32 `json:"store_id"` + }{ + Page: 1, + PageSize: 10, + } + + if c.ShouldBindJSON(&req) != nil { + logger.Error("para err") + RespJson(c, status.BadRequest, nil) + return + } + uc := auth.GetCurrentUser(c) + if uc == nil { + uc = &auth.UserClaims{Uid: 0} + } + fmt.Println("游戏类型:GameTypeIds:", req.GameTypeIds) + + cardList, totalPage, err := model.NewGetGameCardList(req.SortType, req.Page, req.PageSize, + req.GameTypeIds, req.StoreId, uc.Uid) + if err != nil { + logger.Error("err:", err) + RespJson(c, status.InternalServerError, nil) + return + } + + ret := map[string]interface{}{ + "card_list": cardList, + "cur_page": req.Page, + "total_page": totalPage, + } + RespOK(c, ret) +} + func GameCardList(c *gin.Context) { req := struct { Page int `json:"cur_page"` PageSize int `json:"page_size"` - SortType int `json:"sort_type"` // 排序类型 1-默认 2-新品 3-销量 4-价格 大到小 5-价格 小到大 + SortType int `json:"sort_type"` // 排序类型 1-默认 2-新品 3-热门(销量) 4-价格 大到小 5-价格 小到大 GameTypeIds []uint64 `json:"game_type_id"` // 游戏类型id StoreId uint32 `json:"store_id"` }{ diff --git a/controller/mall.go b/controller/mall.go index f20bc1b..bb40a29 100644 --- a/controller/mall.go +++ b/controller/mall.go @@ -450,7 +450,7 @@ func MallOrderCreate(c *gin.Context) { return } - webPay, err := wxpay.HmJsPayUnifiedOrder(order.SerialNo, order.Rm, user.WxOpenID, configInfo.NotifyUrl) + webPay, err := wxpay.HmJsPayUnifiedOrderForBuyGoods(order.SerialNo, order.Rm, user.WxOpenID, configInfo.NotifyUrl) if err != nil { logger.Error(errors.New("WebPay err")) RespJson(c, status.InternalServerError, nil) diff --git a/go.mod b/go.mod index ffa063f..be86901 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module mh-server -go 1.16 +go 1.19 require ( github.com/aliyun/aliyun-sts-go-sdk v0.0.0-20171106034748-98d3903a2309 @@ -10,20 +10,66 @@ require ( github.com/gin-gonic/gin v1.7.1 github.com/holdno/snowFlakeByGo v0.0.0-20180510033652-d23f8a8cadd7 github.com/jinzhu/gorm v1.9.16 - github.com/jinzhu/now v1.1.4 // indirect github.com/medivhzhan/weapp v1.5.1 github.com/pkg/errors v0.9.1 github.com/qiniu/api.v7 v7.2.5+incompatible - github.com/qiniu/x v7.0.8+incompatible // indirect github.com/rs/zerolog v1.23.0 - github.com/satori/go.uuid v1.2.0 // indirect github.com/spf13/cobra v1.1.3 github.com/spf13/viper v1.7.1 github.com/swaggo/swag v1.16.3 github.com/wechatpay-apiv3/wechatpay-go v0.2.6 github.com/xuri/excelize/v2 v2.6.0 golang.org/x/sync v0.6.0 +) + +require ( + github.com/KyleBanks/depth v1.2.1 // indirect + github.com/PuerkitoBio/purell v1.1.1 // indirect + github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect + github.com/gin-contrib/sse v0.1.0 // indirect + github.com/go-openapi/jsonpointer v0.19.5 // indirect + github.com/go-openapi/jsonreference v0.19.6 // indirect + github.com/go-openapi/spec v0.20.4 // indirect + github.com/go-openapi/swag v0.19.15 // indirect + github.com/go-playground/locales v0.13.0 // indirect + github.com/go-playground/universal-translator v0.17.0 // indirect + github.com/go-playground/validator/v10 v10.4.1 // indirect + github.com/go-sql-driver/mysql v1.5.0 // indirect + github.com/golang/protobuf v1.3.3 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/jinzhu/inflection v1.0.0 // indirect + github.com/jinzhu/now v1.1.4 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/json-iterator/go v1.1.9 // indirect + github.com/leodido/go-urn v1.2.0 // indirect + github.com/magiconair/properties v1.8.1 // indirect + github.com/mailru/easyjson v0.7.6 // indirect + github.com/mattn/go-isatty v0.0.12 // indirect + github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.1 // indirect + github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect + github.com/pelletier/go-toml v1.2.0 // indirect + github.com/qiniu/x v7.0.8+incompatible // indirect + github.com/richardlehane/mscfb v1.0.4 // indirect + github.com/richardlehane/msoleps v1.0.1 // indirect + github.com/satori/go.uuid v1.2.0 // indirect + github.com/spf13/afero v1.1.2 // indirect + github.com/spf13/cast v1.3.0 // indirect + github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/subosito/gotenv v1.2.0 // indirect + github.com/ugorji/go/codec v1.1.7 // indirect + github.com/xuri/efp v0.0.0-20220407160117-ad0f7a785be8 // indirect + github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 // indirect + golang.org/x/crypto v0.21.0 // indirect + golang.org/x/net v0.22.0 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.19.0 // indirect gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b // indirect + gopkg.in/ini.v1 v1.51.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect qiniupkg.com/x v7.0.8+incompatible // indirect ) diff --git a/lib/wxpay/wx_pay.go b/lib/wxpay/wx_pay.go index 0ed6350..703295d 100644 --- a/lib/wxpay/wx_pay.go +++ b/lib/wxpay/wx_pay.go @@ -1468,6 +1468,118 @@ func HmJsPayUnifiedOrder(orderId string, totalFee uint32, openId, notifyUrl stri return &hmPayData, nil } +// HmJsPayUnifiedOrderForBuyGoods hm 微信支付(商城支付) +func HmJsPayUnifiedOrderForBuyGoods(orderId string, totalFee uint32, openId, notifyUrl string) (*HmPayUnifiedOrderPayData, error) { + now := time.Now().Local() + strTime := fmt.Sprintf("%04d%02d%02d%02d%02d%02d", now.Year(), now.Month(), now.Day(), now.Hour(), + now.Minute(), now.Second()) + expireTime := now.Add(time.Hour * 3) + strExpireTime := fmt.Sprintf("%04d%02d%02d%02d%02d%02d", expireTime.Year(), expireTime.Month(), + expireTime.Day(), expireTime.Hour(), expireTime.Minute(), expireTime.Second()) + nonce := utils.GenRandStr(NonceStringLength) + + if notifyUrl == "" { + logger.Error("NotifyUrl is null") + return nil, errors.New("NotifyUrl is null") + } + + //logger.Info("MchId:", config.AppConfig.WxMchID) + //logger.Info("AppId:", config.AppConfig.WxAppId) + //logger.Info("MchSecret:", config.AppConfig.WxMchSecret) + + unifiedOrderReq := HmJsPayUnifiedOrderReq{} + publicPara := HmPayPublicPara{ + AppId: HmPayMerchantId, + //SubAppId: HmWxSubMerchantId, + Method: "trade.create", + //Charset: "UTF-8", + SignType: "RSA", + Sign: "", + Timestamp: now.Format(TimeFormat), + Nonce: nonce, + //Nonce: fmt.Sprintf("%d", time.Now().UnixNano()), + //Version: "1.0.0", + //Format: "JSON", + } + + biz := HmPayBizContent{ + Body: "服务费", + MerAppId: WxAppId, + MerBuyerId: openId, + CreateIp: clientIp, + CreateTime: strTime, + ExpireTime: strExpireTime, + //LimitPay: "NO_CREDIT", + NotifyUrl: notifyUrl, + OutOrderNo: orderId, + PayType: "JSAPI", + PayWay: "WECHAT", + StoreId: "200001", + TotalAmount: float64(totalFee) / 100, + } + unifiedOrderReq.HmPayPublicPara = publicPara + + bizString, err := json.Marshal(&biz) + if err != nil { + logger.Error("marshal biz err:", err) + return nil, err + } + unifiedOrderReq.HmPayPublicPara.BizContent = string(bizString) + m, err := struct2Map(unifiedOrderReq) + if err != nil { + logger.Error(err) + return nil, err + } + + //mJson, _ := json.MarshalIndent(&m, "", " ") + //fmt.Println("mJson:", string(mJson)) + + sign, err := GenHmPaySign(m) + if err != nil { + logger.Error(err) + return nil, err + } + unifiedOrderReq.Sign = sign + + //unifiedOrderReqJson, _ := json.Marshal(&unifiedOrderReq) + //fmt.Println("unifiedOrderReqJson:", string(unifiedOrderReqJson)) + + unifiedOrderResp, err := HmPayUnifiedOrder(unifiedOrderReq) + if err != nil { + logger.Errorf("WxUnifiedOrder unified order error %#v", err) + return nil, err + } + + signContent, err := ToSignContent(unifiedOrderResp) + if err != nil { + logger.Error("ToSignContent err:", err) + return nil, err + } + err = HmVerifySha1Rsa(signContent, unifiedOrderResp.Sign) + if err != nil { + logger.Error("HmVerifySha1Rsa err:", err) + return nil, err + } + //fmt.Println("unifiedOrderResp:", unifiedOrderResp.Data) + var hmPayDetail HmPayUnifiedOrderDetail + err = json.Unmarshal([]byte(unifiedOrderResp.Data), &hmPayDetail) + if err != nil { + logger.Errorf("hm pay unified order pay data unmarshal error %#v", err) + return nil, err + } + //fmt.Println("hmPayDetail:", hmPayDetail) + + var hmPayData HmPayUnifiedOrderPayData + err = json.Unmarshal([]byte(hmPayDetail.PayData), &hmPayData) + if err != nil { + logger.Errorf("hm pay unified order pay data unmarshal error %#v", err) + return nil, err + } + + //fmt.Println("hmPayData:", hmPayData) + return &hmPayData, nil +} + func ToSignContent(s interface{}) (string, error) { m, err := struct2Map(s) if err != nil { diff --git a/model/autogenerated_home_category.go b/model/autogenerated_home_category.go new file mode 100644 index 0000000..3d2cfcd --- /dev/null +++ b/model/autogenerated_home_category.go @@ -0,0 +1,855 @@ +// Code generated by go-queryset. DO NOT EDIT. +package model + +import ( + "errors" + "fmt" + "strings" + "time" + + "github.com/jinzhu/gorm" +) + +// ===== BEGIN of all query sets + +// ===== BEGIN of query set HomeCategoryQuerySet + +// HomeCategoryQuerySet is an queryset type for HomeCategory +type HomeCategoryQuerySet struct { + db *gorm.DB +} + +// NewHomeCategoryQuerySet constructs new HomeCategoryQuerySet +func NewHomeCategoryQuerySet(db *gorm.DB) HomeCategoryQuerySet { + return HomeCategoryQuerySet{ + db: db.Model(&HomeCategory{}), + } +} + +func (qs HomeCategoryQuerySet) w(db *gorm.DB) HomeCategoryQuerySet { + return NewHomeCategoryQuerySet(db) +} + +func (qs HomeCategoryQuerySet) Select(fields ...HomeCategoryDBSchemaField) HomeCategoryQuerySet { + names := []string{} + for _, f := range fields { + names = append(names, f.String()) + } + + return qs.w(qs.db.Select(strings.Join(names, ","))) +} + +// Create is an autogenerated method +// nolint: dupl +func (o *HomeCategory) Create(db *gorm.DB) error { + return db.Create(o).Error +} + +// Delete is an autogenerated method +// nolint: dupl +func (o *HomeCategory) Delete(db *gorm.DB) error { + return db.Delete(o).Error +} + +// All is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) All(ret *[]HomeCategory) error { + return qs.db.Find(ret).Error +} + +// AllFlagEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) AllFlagEq(allFlag uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("all_flag = ?", allFlag)) +} + +// AllFlagGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) AllFlagGt(allFlag uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("all_flag > ?", allFlag)) +} + +// AllFlagGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) AllFlagGte(allFlag uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("all_flag >= ?", allFlag)) +} + +// AllFlagIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) AllFlagIn(allFlag ...uint32) HomeCategoryQuerySet { + if len(allFlag) == 0 { + qs.db.AddError(errors.New("must at least pass one allFlag in AllFlagIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("all_flag IN (?)", allFlag)) +} + +// AllFlagLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) AllFlagLt(allFlag uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("all_flag < ?", allFlag)) +} + +// AllFlagLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) AllFlagLte(allFlag uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("all_flag <= ?", allFlag)) +} + +// AllFlagNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) AllFlagNe(allFlag uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("all_flag != ?", allFlag)) +} + +// AllFlagNotIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) AllFlagNotIn(allFlag ...uint32) HomeCategoryQuerySet { + if len(allFlag) == 0 { + qs.db.AddError(errors.New("must at least pass one allFlag in AllFlagNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("all_flag NOT IN (?)", allFlag)) +} + +// Count is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) Count() (int, error) { + var count int + err := qs.db.Count(&count).Error + return count, err +} + +// CreatedAtEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) CreatedAtEq(createdAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("created_at = ?", createdAt)) +} + +// CreatedAtGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) CreatedAtGt(createdAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("created_at > ?", createdAt)) +} + +// CreatedAtGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) CreatedAtGte(createdAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("created_at >= ?", createdAt)) +} + +// CreatedAtLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) CreatedAtLt(createdAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("created_at < ?", createdAt)) +} + +// CreatedAtLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) CreatedAtLte(createdAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("created_at <= ?", createdAt)) +} + +// CreatedAtNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) CreatedAtNe(createdAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("created_at != ?", createdAt)) +} + +// Delete is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) Delete() error { + return qs.db.Delete(HomeCategory{}).Error +} + +// DeleteNum is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) DeleteNum() (int64, error) { + db := qs.db.Delete(HomeCategory{}) + return db.RowsAffected, db.Error +} + +// DeleteNumUnscoped is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) DeleteNumUnscoped() (int64, error) { + db := qs.db.Unscoped().Delete(HomeCategory{}) + return db.RowsAffected, db.Error +} + +// DeletedAtEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) DeletedAtEq(deletedAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("deleted_at = ?", deletedAt)) +} + +// DeletedAtGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) DeletedAtGt(deletedAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("deleted_at > ?", deletedAt)) +} + +// DeletedAtGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) DeletedAtGte(deletedAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("deleted_at >= ?", deletedAt)) +} + +// DeletedAtIsNotNull is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) DeletedAtIsNotNull() HomeCategoryQuerySet { + return qs.w(qs.db.Where("deleted_at IS NOT NULL")) +} + +// DeletedAtIsNull is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) DeletedAtIsNull() HomeCategoryQuerySet { + return qs.w(qs.db.Where("deleted_at IS NULL")) +} + +// DeletedAtLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) DeletedAtLt(deletedAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("deleted_at < ?", deletedAt)) +} + +// DeletedAtLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) DeletedAtLte(deletedAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("deleted_at <= ?", deletedAt)) +} + +// DeletedAtNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) DeletedAtNe(deletedAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("deleted_at != ?", deletedAt)) +} + +// GetDB is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) GetDB() *gorm.DB { + return qs.db +} + +// GetUpdater is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) GetUpdater() HomeCategoryUpdater { + return NewHomeCategoryUpdater(qs.db) +} + +// IDEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) IDEq(ID uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("id = ?", ID)) +} + +// IDGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) IDGt(ID uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("id > ?", ID)) +} + +// IDGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) IDGte(ID uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("id >= ?", ID)) +} + +// IDIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) IDIn(ID ...uint32) HomeCategoryQuerySet { + if len(ID) == 0 { + qs.db.AddError(errors.New("must at least pass one ID in IDIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("id IN (?)", ID)) +} + +// IDLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) IDLt(ID uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("id < ?", ID)) +} + +// IDLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) IDLte(ID uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("id <= ?", ID)) +} + +// IDNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) IDNe(ID uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("id != ?", ID)) +} + +// IDNotIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) IDNotIn(ID ...uint32) HomeCategoryQuerySet { + if len(ID) == 0 { + qs.db.AddError(errors.New("must at least pass one ID in IDNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("id NOT IN (?)", ID)) +} + +// Limit is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) Limit(limit int) HomeCategoryQuerySet { + return qs.w(qs.db.Limit(limit)) +} + +// NameEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) NameEq(name string) HomeCategoryQuerySet { + return qs.w(qs.db.Where("name = ?", name)) +} + +// NameGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) NameGt(name string) HomeCategoryQuerySet { + return qs.w(qs.db.Where("name > ?", name)) +} + +// NameGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) NameGte(name string) HomeCategoryQuerySet { + return qs.w(qs.db.Where("name >= ?", name)) +} + +// NameIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) NameIn(name ...string) HomeCategoryQuerySet { + if len(name) == 0 { + qs.db.AddError(errors.New("must at least pass one name in NameIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("name IN (?)", name)) +} + +// NameLike is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) NameLike(name string) HomeCategoryQuerySet { + return qs.w(qs.db.Where("name LIKE ?", name)) +} + +// NameLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) NameLt(name string) HomeCategoryQuerySet { + return qs.w(qs.db.Where("name < ?", name)) +} + +// NameLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) NameLte(name string) HomeCategoryQuerySet { + return qs.w(qs.db.Where("name <= ?", name)) +} + +// NameNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) NameNe(name string) HomeCategoryQuerySet { + return qs.w(qs.db.Where("name != ?", name)) +} + +// NameNotIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) NameNotIn(name ...string) HomeCategoryQuerySet { + if len(name) == 0 { + qs.db.AddError(errors.New("must at least pass one name in NameNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("name NOT IN (?)", name)) +} + +// NameNotlike is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) NameNotlike(name string) HomeCategoryQuerySet { + return qs.w(qs.db.Where("name NOT LIKE ?", name)) +} + +// Offset is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) Offset(offset int) HomeCategoryQuerySet { + return qs.w(qs.db.Offset(offset)) +} + +// One is used to retrieve one result. It returns gorm.ErrRecordNotFound +// if nothing was fetched +func (qs HomeCategoryQuerySet) One(ret *HomeCategory) error { + return qs.db.First(ret).Error +} + +// OrderAscByAllFlag is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderAscByAllFlag() HomeCategoryQuerySet { + return qs.w(qs.db.Order("all_flag ASC")) +} + +// OrderAscByCreatedAt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderAscByCreatedAt() HomeCategoryQuerySet { + return qs.w(qs.db.Order("created_at ASC")) +} + +// OrderAscByDeletedAt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderAscByDeletedAt() HomeCategoryQuerySet { + return qs.w(qs.db.Order("deleted_at ASC")) +} + +// OrderAscByID is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderAscByID() HomeCategoryQuerySet { + return qs.w(qs.db.Order("id ASC")) +} + +// OrderAscByName is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderAscByName() HomeCategoryQuerySet { + return qs.w(qs.db.Order("name ASC")) +} + +// OrderAscByOrderFlag is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderAscByOrderFlag() HomeCategoryQuerySet { + return qs.w(qs.db.Order("order_flag ASC")) +} + +// OrderAscBySortOrder is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderAscBySortOrder() HomeCategoryQuerySet { + return qs.w(qs.db.Order("sort_order ASC")) +} + +// OrderAscByState is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderAscByState() HomeCategoryQuerySet { + return qs.w(qs.db.Order("state ASC")) +} + +// OrderAscByUpdatedAt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderAscByUpdatedAt() HomeCategoryQuerySet { + return qs.w(qs.db.Order("updated_at ASC")) +} + +// OrderDescByAllFlag is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderDescByAllFlag() HomeCategoryQuerySet { + return qs.w(qs.db.Order("all_flag DESC")) +} + +// OrderDescByCreatedAt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderDescByCreatedAt() HomeCategoryQuerySet { + return qs.w(qs.db.Order("created_at DESC")) +} + +// OrderDescByDeletedAt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderDescByDeletedAt() HomeCategoryQuerySet { + return qs.w(qs.db.Order("deleted_at DESC")) +} + +// OrderDescByID is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderDescByID() HomeCategoryQuerySet { + return qs.w(qs.db.Order("id DESC")) +} + +// OrderDescByName is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderDescByName() HomeCategoryQuerySet { + return qs.w(qs.db.Order("name DESC")) +} + +// OrderDescByOrderFlag is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderDescByOrderFlag() HomeCategoryQuerySet { + return qs.w(qs.db.Order("order_flag DESC")) +} + +// OrderDescBySortOrder is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderDescBySortOrder() HomeCategoryQuerySet { + return qs.w(qs.db.Order("sort_order DESC")) +} + +// OrderDescByState is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderDescByState() HomeCategoryQuerySet { + return qs.w(qs.db.Order("state DESC")) +} + +// OrderDescByUpdatedAt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderDescByUpdatedAt() HomeCategoryQuerySet { + return qs.w(qs.db.Order("updated_at DESC")) +} + +// OrderFlagEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderFlagEq(orderFlag uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("order_flag = ?", orderFlag)) +} + +// OrderFlagGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderFlagGt(orderFlag uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("order_flag > ?", orderFlag)) +} + +// OrderFlagGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderFlagGte(orderFlag uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("order_flag >= ?", orderFlag)) +} + +// OrderFlagIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderFlagIn(orderFlag ...uint32) HomeCategoryQuerySet { + if len(orderFlag) == 0 { + qs.db.AddError(errors.New("must at least pass one orderFlag in OrderFlagIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("order_flag IN (?)", orderFlag)) +} + +// OrderFlagLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderFlagLt(orderFlag uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("order_flag < ?", orderFlag)) +} + +// OrderFlagLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderFlagLte(orderFlag uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("order_flag <= ?", orderFlag)) +} + +// OrderFlagNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderFlagNe(orderFlag uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("order_flag != ?", orderFlag)) +} + +// OrderFlagNotIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) OrderFlagNotIn(orderFlag ...uint32) HomeCategoryQuerySet { + if len(orderFlag) == 0 { + qs.db.AddError(errors.New("must at least pass one orderFlag in OrderFlagNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("order_flag NOT IN (?)", orderFlag)) +} + +// SortOrderEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) SortOrderEq(sortOrder uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("sort_order = ?", sortOrder)) +} + +// SortOrderGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) SortOrderGt(sortOrder uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("sort_order > ?", sortOrder)) +} + +// SortOrderGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) SortOrderGte(sortOrder uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("sort_order >= ?", sortOrder)) +} + +// SortOrderIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) SortOrderIn(sortOrder ...uint32) HomeCategoryQuerySet { + if len(sortOrder) == 0 { + qs.db.AddError(errors.New("must at least pass one sortOrder in SortOrderIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("sort_order IN (?)", sortOrder)) +} + +// SortOrderLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) SortOrderLt(sortOrder uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("sort_order < ?", sortOrder)) +} + +// SortOrderLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) SortOrderLte(sortOrder uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("sort_order <= ?", sortOrder)) +} + +// SortOrderNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) SortOrderNe(sortOrder uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("sort_order != ?", sortOrder)) +} + +// SortOrderNotIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) SortOrderNotIn(sortOrder ...uint32) HomeCategoryQuerySet { + if len(sortOrder) == 0 { + qs.db.AddError(errors.New("must at least pass one sortOrder in SortOrderNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("sort_order NOT IN (?)", sortOrder)) +} + +// StateEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) StateEq(state uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("state = ?", state)) +} + +// StateGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) StateGt(state uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("state > ?", state)) +} + +// StateGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) StateGte(state uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("state >= ?", state)) +} + +// StateIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) StateIn(state ...uint32) HomeCategoryQuerySet { + if len(state) == 0 { + qs.db.AddError(errors.New("must at least pass one state in StateIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("state IN (?)", state)) +} + +// StateLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) StateLt(state uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("state < ?", state)) +} + +// StateLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) StateLte(state uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("state <= ?", state)) +} + +// StateNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) StateNe(state uint32) HomeCategoryQuerySet { + return qs.w(qs.db.Where("state != ?", state)) +} + +// StateNotIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) StateNotIn(state ...uint32) HomeCategoryQuerySet { + if len(state) == 0 { + qs.db.AddError(errors.New("must at least pass one state in StateNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("state NOT IN (?)", state)) +} + +// UpdatedAtEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) UpdatedAtEq(updatedAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("updated_at = ?", updatedAt)) +} + +// UpdatedAtGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) UpdatedAtGt(updatedAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("updated_at > ?", updatedAt)) +} + +// UpdatedAtGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) UpdatedAtGte(updatedAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("updated_at >= ?", updatedAt)) +} + +// UpdatedAtLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) UpdatedAtLt(updatedAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("updated_at < ?", updatedAt)) +} + +// UpdatedAtLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) UpdatedAtLte(updatedAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("updated_at <= ?", updatedAt)) +} + +// UpdatedAtNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryQuerySet) UpdatedAtNe(updatedAt time.Time) HomeCategoryQuerySet { + return qs.w(qs.db.Where("updated_at != ?", updatedAt)) +} + +// SetAllFlag is an autogenerated method +// nolint: dupl +func (u HomeCategoryUpdater) SetAllFlag(allFlag uint32) HomeCategoryUpdater { + u.fields[string(HomeCategoryDBSchema.AllFlag)] = allFlag + return u +} + +// SetCreatedAt is an autogenerated method +// nolint: dupl +func (u HomeCategoryUpdater) SetCreatedAt(createdAt time.Time) HomeCategoryUpdater { + u.fields[string(HomeCategoryDBSchema.CreatedAt)] = createdAt + return u +} + +// SetDeletedAt is an autogenerated method +// nolint: dupl +func (u HomeCategoryUpdater) SetDeletedAt(deletedAt *time.Time) HomeCategoryUpdater { + u.fields[string(HomeCategoryDBSchema.DeletedAt)] = deletedAt + return u +} + +// SetID is an autogenerated method +// nolint: dupl +func (u HomeCategoryUpdater) SetID(ID uint32) HomeCategoryUpdater { + u.fields[string(HomeCategoryDBSchema.ID)] = ID + return u +} + +// SetName is an autogenerated method +// nolint: dupl +func (u HomeCategoryUpdater) SetName(name string) HomeCategoryUpdater { + u.fields[string(HomeCategoryDBSchema.Name)] = name + return u +} + +// SetOrderFlag is an autogenerated method +// nolint: dupl +func (u HomeCategoryUpdater) SetOrderFlag(orderFlag uint32) HomeCategoryUpdater { + u.fields[string(HomeCategoryDBSchema.OrderFlag)] = orderFlag + return u +} + +// SetSortOrder is an autogenerated method +// nolint: dupl +func (u HomeCategoryUpdater) SetSortOrder(sortOrder uint32) HomeCategoryUpdater { + u.fields[string(HomeCategoryDBSchema.SortOrder)] = sortOrder + return u +} + +// SetState is an autogenerated method +// nolint: dupl +func (u HomeCategoryUpdater) SetState(state uint32) HomeCategoryUpdater { + u.fields[string(HomeCategoryDBSchema.State)] = state + return u +} + +// SetUpdatedAt is an autogenerated method +// nolint: dupl +func (u HomeCategoryUpdater) SetUpdatedAt(updatedAt time.Time) HomeCategoryUpdater { + u.fields[string(HomeCategoryDBSchema.UpdatedAt)] = updatedAt + return u +} + +// Update is an autogenerated method +// nolint: dupl +func (u HomeCategoryUpdater) Update() error { + return u.db.Updates(u.fields).Error +} + +// UpdateNum is an autogenerated method +// nolint: dupl +func (u HomeCategoryUpdater) UpdateNum() (int64, error) { + db := u.db.Updates(u.fields) + return db.RowsAffected, db.Error +} + +// ===== END of query set HomeCategoryQuerySet + +// ===== BEGIN of HomeCategory modifiers + +// HomeCategoryDBSchemaField describes database schema field. It requires for method 'Update' +type HomeCategoryDBSchemaField string + +// String method returns string representation of field. +// nolint: dupl +func (f HomeCategoryDBSchemaField) String() string { + return string(f) +} + +// HomeCategoryDBSchema stores db field names of HomeCategory +var HomeCategoryDBSchema = struct { + ID HomeCategoryDBSchemaField + CreatedAt HomeCategoryDBSchemaField + UpdatedAt HomeCategoryDBSchemaField + DeletedAt HomeCategoryDBSchemaField + Name HomeCategoryDBSchemaField + SortOrder HomeCategoryDBSchemaField + State HomeCategoryDBSchemaField + AllFlag HomeCategoryDBSchemaField + OrderFlag HomeCategoryDBSchemaField +}{ + + ID: HomeCategoryDBSchemaField("id"), + CreatedAt: HomeCategoryDBSchemaField("created_at"), + UpdatedAt: HomeCategoryDBSchemaField("updated_at"), + DeletedAt: HomeCategoryDBSchemaField("deleted_at"), + Name: HomeCategoryDBSchemaField("name"), + SortOrder: HomeCategoryDBSchemaField("sort_order"), + State: HomeCategoryDBSchemaField("state"), + AllFlag: HomeCategoryDBSchemaField("all_flag"), + OrderFlag: HomeCategoryDBSchemaField("order_flag"), +} + +// Update updates HomeCategory fields by primary key +// nolint: dupl +func (o *HomeCategory) Update(db *gorm.DB, fields ...HomeCategoryDBSchemaField) error { + dbNameToFieldName := map[string]interface{}{ + "id": o.ID, + "created_at": o.CreatedAt, + "updated_at": o.UpdatedAt, + "deleted_at": o.DeletedAt, + "name": o.Name, + "sort_order": o.SortOrder, + "state": o.State, + "all_flag": o.AllFlag, + "order_flag": o.OrderFlag, + } + u := map[string]interface{}{} + for _, f := range fields { + fs := f.String() + u[fs] = dbNameToFieldName[fs] + } + if err := db.Model(o).Updates(u).Error; err != nil { + if err == gorm.ErrRecordNotFound { + return err + } + + return fmt.Errorf("can't update HomeCategory %v fields %v: %s", + o, fields, err) + } + + return nil +} + +// HomeCategoryUpdater is an HomeCategory updates manager +type HomeCategoryUpdater struct { + fields map[string]interface{} + db *gorm.DB +} + +// NewHomeCategoryUpdater creates new HomeCategory updater +// nolint: dupl +func NewHomeCategoryUpdater(db *gorm.DB) HomeCategoryUpdater { + return HomeCategoryUpdater{ + fields: map[string]interface{}{}, + db: db.Model(&HomeCategory{}), + } +} + +// ===== END of HomeCategory modifiers + +// ===== END of all query sets diff --git a/model/autogenerated_home_category_game.go b/model/autogenerated_home_category_game.go new file mode 100644 index 0000000..461e5c8 --- /dev/null +++ b/model/autogenerated_home_category_game.go @@ -0,0 +1,777 @@ +// Code generated by go-queryset. DO NOT EDIT. +package model + +import ( + "errors" + "fmt" + "strings" + "time" + + "github.com/jinzhu/gorm" +) + +// ===== BEGIN of all query sets + +// ===== BEGIN of query set HomeCategoryGameQuerySet + +// HomeCategoryGameQuerySet is an queryset type for HomeCategoryGame +type HomeCategoryGameQuerySet struct { + db *gorm.DB +} + +// NewHomeCategoryGameQuerySet constructs new HomeCategoryGameQuerySet +func NewHomeCategoryGameQuerySet(db *gorm.DB) HomeCategoryGameQuerySet { + return HomeCategoryGameQuerySet{ + db: db.Model(&HomeCategoryGame{}), + } +} + +func (qs HomeCategoryGameQuerySet) w(db *gorm.DB) HomeCategoryGameQuerySet { + return NewHomeCategoryGameQuerySet(db) +} + +func (qs HomeCategoryGameQuerySet) Select(fields ...HomeCategoryGameDBSchemaField) HomeCategoryGameQuerySet { + names := []string{} + for _, f := range fields { + names = append(names, f.String()) + } + + return qs.w(qs.db.Select(strings.Join(names, ","))) +} + +// Create is an autogenerated method +// nolint: dupl +func (o *HomeCategoryGame) Create(db *gorm.DB) error { + return db.Create(o).Error +} + +// Delete is an autogenerated method +// nolint: dupl +func (o *HomeCategoryGame) Delete(db *gorm.DB) error { + return db.Delete(o).Error +} + +// All is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) All(ret *[]HomeCategoryGame) error { + return qs.db.Find(ret).Error +} + +// Count is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) Count() (int, error) { + var count int + err := qs.db.Count(&count).Error + return count, err +} + +// CreatedAtEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) CreatedAtEq(createdAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("created_at = ?", createdAt)) +} + +// CreatedAtGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) CreatedAtGt(createdAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("created_at > ?", createdAt)) +} + +// CreatedAtGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) CreatedAtGte(createdAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("created_at >= ?", createdAt)) +} + +// CreatedAtLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) CreatedAtLt(createdAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("created_at < ?", createdAt)) +} + +// CreatedAtLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) CreatedAtLte(createdAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("created_at <= ?", createdAt)) +} + +// CreatedAtNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) CreatedAtNe(createdAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("created_at != ?", createdAt)) +} + +// Delete is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) Delete() error { + return qs.db.Delete(HomeCategoryGame{}).Error +} + +// DeleteNum is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) DeleteNum() (int64, error) { + db := qs.db.Delete(HomeCategoryGame{}) + return db.RowsAffected, db.Error +} + +// DeleteNumUnscoped is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) DeleteNumUnscoped() (int64, error) { + db := qs.db.Unscoped().Delete(HomeCategoryGame{}) + return db.RowsAffected, db.Error +} + +// DeletedAtEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) DeletedAtEq(deletedAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("deleted_at = ?", deletedAt)) +} + +// DeletedAtGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) DeletedAtGt(deletedAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("deleted_at > ?", deletedAt)) +} + +// DeletedAtGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) DeletedAtGte(deletedAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("deleted_at >= ?", deletedAt)) +} + +// DeletedAtIsNotNull is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) DeletedAtIsNotNull() HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("deleted_at IS NOT NULL")) +} + +// DeletedAtIsNull is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) DeletedAtIsNull() HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("deleted_at IS NULL")) +} + +// DeletedAtLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) DeletedAtLt(deletedAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("deleted_at < ?", deletedAt)) +} + +// DeletedAtLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) DeletedAtLte(deletedAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("deleted_at <= ?", deletedAt)) +} + +// DeletedAtNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) DeletedAtNe(deletedAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("deleted_at != ?", deletedAt)) +} + +// GameIDEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameIDEq(gameID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("game_id = ?", gameID)) +} + +// GameIDGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameIDGt(gameID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("game_id > ?", gameID)) +} + +// GameIDGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameIDGte(gameID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("game_id >= ?", gameID)) +} + +// GameIDIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameIDIn(gameID ...uint32) HomeCategoryGameQuerySet { + if len(gameID) == 0 { + qs.db.AddError(errors.New("must at least pass one gameID in GameIDIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("game_id IN (?)", gameID)) +} + +// GameIDLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameIDLt(gameID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("game_id < ?", gameID)) +} + +// GameIDLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameIDLte(gameID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("game_id <= ?", gameID)) +} + +// GameIDNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameIDNe(gameID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("game_id != ?", gameID)) +} + +// GameIDNotIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameIDNotIn(gameID ...uint32) HomeCategoryGameQuerySet { + if len(gameID) == 0 { + qs.db.AddError(errors.New("must at least pass one gameID in GameIDNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("game_id NOT IN (?)", gameID)) +} + +// GameNameEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameNameEq(gameName string) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("game_name = ?", gameName)) +} + +// GameNameGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameNameGt(gameName string) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("game_name > ?", gameName)) +} + +// GameNameGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameNameGte(gameName string) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("game_name >= ?", gameName)) +} + +// GameNameIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameNameIn(gameName ...string) HomeCategoryGameQuerySet { + if len(gameName) == 0 { + qs.db.AddError(errors.New("must at least pass one gameName in GameNameIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("game_name IN (?)", gameName)) +} + +// GameNameLike is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameNameLike(gameName string) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("game_name LIKE ?", gameName)) +} + +// GameNameLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameNameLt(gameName string) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("game_name < ?", gameName)) +} + +// GameNameLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameNameLte(gameName string) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("game_name <= ?", gameName)) +} + +// GameNameNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameNameNe(gameName string) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("game_name != ?", gameName)) +} + +// GameNameNotIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameNameNotIn(gameName ...string) HomeCategoryGameQuerySet { + if len(gameName) == 0 { + qs.db.AddError(errors.New("must at least pass one gameName in GameNameNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("game_name NOT IN (?)", gameName)) +} + +// GameNameNotlike is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GameNameNotlike(gameName string) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("game_name NOT LIKE ?", gameName)) +} + +// GetDB is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GetDB() *gorm.DB { + return qs.db +} + +// GetUpdater is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) GetUpdater() HomeCategoryGameUpdater { + return NewHomeCategoryGameUpdater(qs.db) +} + +// HomeCategoryIDEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) HomeCategoryIDEq(homeCategoryID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("home_category_id = ?", homeCategoryID)) +} + +// HomeCategoryIDGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) HomeCategoryIDGt(homeCategoryID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("home_category_id > ?", homeCategoryID)) +} + +// HomeCategoryIDGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) HomeCategoryIDGte(homeCategoryID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("home_category_id >= ?", homeCategoryID)) +} + +// HomeCategoryIDIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) HomeCategoryIDIn(homeCategoryID ...uint32) HomeCategoryGameQuerySet { + if len(homeCategoryID) == 0 { + qs.db.AddError(errors.New("must at least pass one homeCategoryID in HomeCategoryIDIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("home_category_id IN (?)", homeCategoryID)) +} + +// HomeCategoryIDLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) HomeCategoryIDLt(homeCategoryID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("home_category_id < ?", homeCategoryID)) +} + +// HomeCategoryIDLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) HomeCategoryIDLte(homeCategoryID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("home_category_id <= ?", homeCategoryID)) +} + +// HomeCategoryIDNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) HomeCategoryIDNe(homeCategoryID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("home_category_id != ?", homeCategoryID)) +} + +// HomeCategoryIDNotIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) HomeCategoryIDNotIn(homeCategoryID ...uint32) HomeCategoryGameQuerySet { + if len(homeCategoryID) == 0 { + qs.db.AddError(errors.New("must at least pass one homeCategoryID in HomeCategoryIDNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("home_category_id NOT IN (?)", homeCategoryID)) +} + +// IDEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) IDEq(ID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("id = ?", ID)) +} + +// IDGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) IDGt(ID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("id > ?", ID)) +} + +// IDGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) IDGte(ID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("id >= ?", ID)) +} + +// IDIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) IDIn(ID ...uint32) HomeCategoryGameQuerySet { + if len(ID) == 0 { + qs.db.AddError(errors.New("must at least pass one ID in IDIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("id IN (?)", ID)) +} + +// IDLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) IDLt(ID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("id < ?", ID)) +} + +// IDLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) IDLte(ID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("id <= ?", ID)) +} + +// IDNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) IDNe(ID uint32) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("id != ?", ID)) +} + +// IDNotIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) IDNotIn(ID ...uint32) HomeCategoryGameQuerySet { + if len(ID) == 0 { + qs.db.AddError(errors.New("must at least pass one ID in IDNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("id NOT IN (?)", ID)) +} + +// Limit is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) Limit(limit int) HomeCategoryGameQuerySet { + return qs.w(qs.db.Limit(limit)) +} + +// Offset is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) Offset(offset int) HomeCategoryGameQuerySet { + return qs.w(qs.db.Offset(offset)) +} + +// One is used to retrieve one result. It returns gorm.ErrRecordNotFound +// if nothing was fetched +func (qs HomeCategoryGameQuerySet) One(ret *HomeCategoryGame) error { + return qs.db.First(ret).Error +} + +// OrderAscByCreatedAt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderAscByCreatedAt() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("created_at ASC")) +} + +// OrderAscByDeletedAt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderAscByDeletedAt() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("deleted_at ASC")) +} + +// OrderAscByGameID is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderAscByGameID() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("game_id ASC")) +} + +// OrderAscByGameName is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderAscByGameName() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("game_name ASC")) +} + +// OrderAscByHomeCategoryID is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderAscByHomeCategoryID() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("home_category_id ASC")) +} + +// OrderAscByID is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderAscByID() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("id ASC")) +} + +// OrderAscBySortOrder is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderAscBySortOrder() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("sort_order ASC")) +} + +// OrderAscByUpdatedAt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderAscByUpdatedAt() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("updated_at ASC")) +} + +// OrderDescByCreatedAt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderDescByCreatedAt() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("created_at DESC")) +} + +// OrderDescByDeletedAt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderDescByDeletedAt() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("deleted_at DESC")) +} + +// OrderDescByGameID is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderDescByGameID() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("game_id DESC")) +} + +// OrderDescByGameName is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderDescByGameName() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("game_name DESC")) +} + +// OrderDescByHomeCategoryID is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderDescByHomeCategoryID() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("home_category_id DESC")) +} + +// OrderDescByID is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderDescByID() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("id DESC")) +} + +// OrderDescBySortOrder is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderDescBySortOrder() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("sort_order DESC")) +} + +// OrderDescByUpdatedAt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) OrderDescByUpdatedAt() HomeCategoryGameQuerySet { + return qs.w(qs.db.Order("updated_at DESC")) +} + +// SortOrderEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) SortOrderEq(sortOrder int) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("sort_order = ?", sortOrder)) +} + +// SortOrderGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) SortOrderGt(sortOrder int) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("sort_order > ?", sortOrder)) +} + +// SortOrderGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) SortOrderGte(sortOrder int) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("sort_order >= ?", sortOrder)) +} + +// SortOrderIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) SortOrderIn(sortOrder ...int) HomeCategoryGameQuerySet { + if len(sortOrder) == 0 { + qs.db.AddError(errors.New("must at least pass one sortOrder in SortOrderIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("sort_order IN (?)", sortOrder)) +} + +// SortOrderLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) SortOrderLt(sortOrder int) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("sort_order < ?", sortOrder)) +} + +// SortOrderLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) SortOrderLte(sortOrder int) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("sort_order <= ?", sortOrder)) +} + +// SortOrderNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) SortOrderNe(sortOrder int) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("sort_order != ?", sortOrder)) +} + +// SortOrderNotIn is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) SortOrderNotIn(sortOrder ...int) HomeCategoryGameQuerySet { + if len(sortOrder) == 0 { + qs.db.AddError(errors.New("must at least pass one sortOrder in SortOrderNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("sort_order NOT IN (?)", sortOrder)) +} + +// UpdatedAtEq is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) UpdatedAtEq(updatedAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("updated_at = ?", updatedAt)) +} + +// UpdatedAtGt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) UpdatedAtGt(updatedAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("updated_at > ?", updatedAt)) +} + +// UpdatedAtGte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) UpdatedAtGte(updatedAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("updated_at >= ?", updatedAt)) +} + +// UpdatedAtLt is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) UpdatedAtLt(updatedAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("updated_at < ?", updatedAt)) +} + +// UpdatedAtLte is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) UpdatedAtLte(updatedAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("updated_at <= ?", updatedAt)) +} + +// UpdatedAtNe is an autogenerated method +// nolint: dupl +func (qs HomeCategoryGameQuerySet) UpdatedAtNe(updatedAt time.Time) HomeCategoryGameQuerySet { + return qs.w(qs.db.Where("updated_at != ?", updatedAt)) +} + +// SetCreatedAt is an autogenerated method +// nolint: dupl +func (u HomeCategoryGameUpdater) SetCreatedAt(createdAt time.Time) HomeCategoryGameUpdater { + u.fields[string(HomeCategoryGameDBSchema.CreatedAt)] = createdAt + return u +} + +// SetDeletedAt is an autogenerated method +// nolint: dupl +func (u HomeCategoryGameUpdater) SetDeletedAt(deletedAt *time.Time) HomeCategoryGameUpdater { + u.fields[string(HomeCategoryGameDBSchema.DeletedAt)] = deletedAt + return u +} + +// SetGameID is an autogenerated method +// nolint: dupl +func (u HomeCategoryGameUpdater) SetGameID(gameID uint32) HomeCategoryGameUpdater { + u.fields[string(HomeCategoryGameDBSchema.GameID)] = gameID + return u +} + +// SetGameName is an autogenerated method +// nolint: dupl +func (u HomeCategoryGameUpdater) SetGameName(gameName string) HomeCategoryGameUpdater { + u.fields[string(HomeCategoryGameDBSchema.GameName)] = gameName + return u +} + +// SetHomeCategoryID is an autogenerated method +// nolint: dupl +func (u HomeCategoryGameUpdater) SetHomeCategoryID(homeCategoryID uint32) HomeCategoryGameUpdater { + u.fields[string(HomeCategoryGameDBSchema.HomeCategoryID)] = homeCategoryID + return u +} + +// SetID is an autogenerated method +// nolint: dupl +func (u HomeCategoryGameUpdater) SetID(ID uint32) HomeCategoryGameUpdater { + u.fields[string(HomeCategoryGameDBSchema.ID)] = ID + return u +} + +// SetSortOrder is an autogenerated method +// nolint: dupl +func (u HomeCategoryGameUpdater) SetSortOrder(sortOrder int) HomeCategoryGameUpdater { + u.fields[string(HomeCategoryGameDBSchema.SortOrder)] = sortOrder + return u +} + +// SetUpdatedAt is an autogenerated method +// nolint: dupl +func (u HomeCategoryGameUpdater) SetUpdatedAt(updatedAt time.Time) HomeCategoryGameUpdater { + u.fields[string(HomeCategoryGameDBSchema.UpdatedAt)] = updatedAt + return u +} + +// Update is an autogenerated method +// nolint: dupl +func (u HomeCategoryGameUpdater) Update() error { + return u.db.Updates(u.fields).Error +} + +// UpdateNum is an autogenerated method +// nolint: dupl +func (u HomeCategoryGameUpdater) UpdateNum() (int64, error) { + db := u.db.Updates(u.fields) + return db.RowsAffected, db.Error +} + +// ===== END of query set HomeCategoryGameQuerySet + +// ===== BEGIN of HomeCategoryGame modifiers + +// HomeCategoryGameDBSchemaField describes database schema field. It requires for method 'Update' +type HomeCategoryGameDBSchemaField string + +// String method returns string representation of field. +// nolint: dupl +func (f HomeCategoryGameDBSchemaField) String() string { + return string(f) +} + +// HomeCategoryGameDBSchema stores db field names of HomeCategoryGame +var HomeCategoryGameDBSchema = struct { + ID HomeCategoryGameDBSchemaField + CreatedAt HomeCategoryGameDBSchemaField + UpdatedAt HomeCategoryGameDBSchemaField + DeletedAt HomeCategoryGameDBSchemaField + HomeCategoryID HomeCategoryGameDBSchemaField + GameID HomeCategoryGameDBSchemaField + GameName HomeCategoryGameDBSchemaField + SortOrder HomeCategoryGameDBSchemaField +}{ + + ID: HomeCategoryGameDBSchemaField("id"), + CreatedAt: HomeCategoryGameDBSchemaField("created_at"), + UpdatedAt: HomeCategoryGameDBSchemaField("updated_at"), + DeletedAt: HomeCategoryGameDBSchemaField("deleted_at"), + HomeCategoryID: HomeCategoryGameDBSchemaField("home_category_id"), + GameID: HomeCategoryGameDBSchemaField("game_id"), + GameName: HomeCategoryGameDBSchemaField("game_name"), + SortOrder: HomeCategoryGameDBSchemaField("sort_order"), +} + +// Update updates HomeCategoryGame fields by primary key +// nolint: dupl +func (o *HomeCategoryGame) Update(db *gorm.DB, fields ...HomeCategoryGameDBSchemaField) error { + dbNameToFieldName := map[string]interface{}{ + "id": o.ID, + "created_at": o.CreatedAt, + "updated_at": o.UpdatedAt, + "deleted_at": o.DeletedAt, + "home_category_id": o.HomeCategoryID, + "game_id": o.GameID, + "game_name": o.GameName, + "sort_order": o.SortOrder, + } + u := map[string]interface{}{} + for _, f := range fields { + fs := f.String() + u[fs] = dbNameToFieldName[fs] + } + if err := db.Model(o).Updates(u).Error; err != nil { + if err == gorm.ErrRecordNotFound { + return err + } + + return fmt.Errorf("can't update HomeCategoryGame %v fields %v: %s", + o, fields, err) + } + + return nil +} + +// HomeCategoryGameUpdater is an HomeCategoryGame updates manager +type HomeCategoryGameUpdater struct { + fields map[string]interface{} + db *gorm.DB +} + +// NewHomeCategoryGameUpdater creates new HomeCategoryGame updater +// nolint: dupl +func NewHomeCategoryGameUpdater(db *gorm.DB) HomeCategoryGameUpdater { + return HomeCategoryGameUpdater{ + fields: map[string]interface{}{}, + db: db.Model(&HomeCategoryGame{}), + } +} + +// ===== END of HomeCategoryGame modifiers + +// ===== END of all query sets diff --git a/model/game_card.go b/model/game_card.go index 31da551..c26e89a 100644 --- a/model/game_card.go +++ b/model/game_card.go @@ -1904,3 +1904,311 @@ func InviteMemberReportListSetUser(list []InviteMemberReport) []InviteMemberRepo } return list } + +type HomeCategoryListResp struct { + List []HomeCategory `json:"list"` + Total int `json:"total"` // 总条数 +} + +func GetHomeGameCardList() (*HomeCategoryListResp, error) { + resp := &HomeCategoryListResp{} + + var orders []HomeCategory + err := NewHomeCategoryQuerySet(DB).StateEq(1).OrderAscBySortOrder().All(&orders) + if err != nil && err != RecordNotFound { + logger.Error("home_category list err:", err) + return nil, err + } + + resp.List = orders + resp.Total = len(orders) + + return resp, nil +} + +func NewGetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId, uid uint32) ([]GameCard, uint32, error) { + var ( + cards = make([]GameCard, 0) + totalPage uint32 + count int + err error + ) + page = page - 1 + if page < 0 { + page = 0 + } + if pageSize == 0 { + pageSize = 10 + } + + // 通过sortType查询首页分类信息 + var homeCategoryInfo HomeCategory + err = NewHomeCategoryQuerySet(DB).IDEq(uint32(sortType)).One(&homeCategoryInfo) + if err != nil && err != RecordNotFound { + return nil, 0, err + } + if err == RecordNotFound { + return nil, 0, errors.New("分类ID有误") + } + + qs := NewGameCardQuerySet(DB).IDNe(914).StatusEq(1) + // 判断是否是全部,或者热门分类 + if homeCategoryInfo.AllFlag == 1 { // 全部分类、热门分类 + if homeCategoryInfo.OrderFlag == 1 { // 热门分类 + qs = qs.OrderDescByOrderCount() + } else { // 全部分类 + qs = qs.OrderAscByID() + } + } else { // 新品、经典等类型 + var homeCategoryGameList []HomeCategoryGame + err = NewHomeCategoryGameQuerySet(DB).HomeCategoryIDEq(homeCategoryInfo.ID).All(&homeCategoryGameList) + if err != nil { + return nil, 0, err + } + + if len(homeCategoryGameList) == 0 { + return cards, 0, nil + } + + var gameIdList []uint32 + for _, item := range homeCategoryGameList { + gameIdList = append(gameIdList, item.GameID) + } + + qs = qs.IDIn(gameIdList...) + } + + if len(gameTypeIds) > 0 { + gameIdByType, err := GetGameIdByType(gameTypeIds) + if err != nil { + logger.Error("GetGameIdByType err:", err) + return cards, 0, err + } + if len(gameIdByType) != 0 { + //qs = qs.GameTypeIdIn(gameIdByType...) + qs = qs.IDIn(gameIdByType...) + } else { + return cards, 0, err + } + } + + hideGamePrice := uint32(30000) + var user *User + if uid != 0 { + user = GetUserByUid(uid) + if user == nil { + logger.Error("get user err:", err) + return cards, 0, err + } + if user.MemberExpire.After(time.Now()) && + user.MemberExpire.AddDate(0, 0, -14).Before(time.Now()) { + qs = qs.RealPriceLte(hideGamePrice) + } + } + gameIds := make([]uint32, 0) + gameIdMap := make(map[uint32]uint32) + + effectiveStoreList := GetAllEffectiveStoreMap() + if len(effectiveStoreList) == 0 { + logger.Error("effectiveStoreList is null") + return nil, 0, errors.New("无有效门店") + } + effectiveStoreListStr := fmt.Sprintf("(%s)", strings.Trim(strings.Join(strings.Fields(fmt.Sprint(effectiveStoreList)), ","), "[]")) + + if sortType == 1 { + if storeId != 0 { + //gameIds := make([]uint32, 0) + ////gameIdMap := make(map[uint32]int) + //var cardStocks []GameCardGoodsStock + //err := NewGameCardGoodsStockQuerySet(DB).StoreIdEq(uint64(storeId)).RentStockGt(0).OrderDescByRentStock().All(&cardStocks) + //if err != nil { + // logger.Error("GetGameIdByType err:", err) + // return cards, 0, err + //} + //for i, _ := range cardStocks { + // gameIds = append(gameIds, uint32(cardStocks[i].GameCardId)) + //} + //if len(gameIds) <= 0 { + // return cards, 0, nil + //} + //qs = qs.IDIn(gameIds...) + + var cardStocks []GameCardGoodsStock + //err := NewGameCardGoodsStockQuerySet(DB).StoreIdEq(uint64(storeId)).RentStockGt(0). + // OrderDescByRentStock().All(&cardStocks) + //DB.Table("game_card_goods_stock").Joins("") + cardStockSql1 := fmt.Sprintf("SELECT a.* FROM game_card_goods_stock a LEFT JOIN game_card b ON a.game_card_id=b.id WHERE a.store_id=%d AND a.store_id IN %s AND a.rent_stock>0 ORDER BY b.id ASC;", storeId, effectiveStoreListStr) + err = DB.Raw(cardStockSql1).Scan(&cardStocks).Error + if err != nil { + logger.Error("GetGameIdByType err:", err) + return cards, 0, err + } + for i, _ := range cardStocks { + _, ok := gameIdMap[uint32(cardStocks[i].GameCardId)] + if !ok { + gameIds = append(gameIds, uint32(cardStocks[i].GameCardId)) + gameIdMap[uint32(cardStocks[i].GameCardId)] = 1 + } + } + + cardStocks = []GameCardGoodsStock{} + //err = NewGameCardGoodsStockQuerySet(DB).StoreIdNe(uint64(storeId)).RentStockGt(0). + // OrderDescByRentStock().All(&cardStocks) + cardStockSql2 := fmt.Sprintf("SELECT a.* FROM game_card_goods_stock a LEFT JOIN game_card b ON a.game_card_id=b.id WHERE a.store_id!=%d AND a.store_id IN %s AND a.rent_stock>0 ORDER BY b.id ASC;", storeId, effectiveStoreListStr) + err = DB.Raw(cardStockSql2).Scan(&cardStocks).Error + if err != nil { + logger.Error("GetGameIdByType err:", err) + return cards, 0, err + } + for i, _ := range cardStocks { + _, ok := gameIdMap[uint32(cardStocks[i].GameCardId)] + if !ok { + gameIds = append(gameIds, uint32(cardStocks[i].GameCardId)) + gameIdMap[uint32(cardStocks[i].GameCardId)] = 2 + } + } + + cardStocks = []GameCardGoodsStock{} + //err = NewGameCardGoodsStockQuerySet(DB).RentStockEq(0).All(&cardStocks) + cardStockSql3 := fmt.Sprintf("SELECT a.* FROM game_card_goods_stock a LEFT JOIN game_card b ON a.game_card_id=b.id WHERE a.rent_stock=0 AND a.store_id IN %s ORDER BY b.id ASC;", effectiveStoreListStr) + err = DB.Raw(cardStockSql3).Scan(&cardStocks).Error + if err != nil { + logger.Error("GetGameIdByType err:", err) + return cards, 0, err + } + for i, _ := range cardStocks { + _, ok := gameIdMap[uint32(cardStocks[i].GameCardId)] + if !ok { + gameIds = append(gameIds, uint32(cardStocks[i].GameCardId)) + gameIdMap[uint32(cardStocks[i].GameCardId)] = 3 + } + } + + // 有可能添加了游戏但没添加库存,添加这段代码后不会展示 + //if len(gameIds) > 0 { + // qs = qs.IDIn(gameIds...) + //} + } else { + var cardStocks []GameCardGoodsStock + //err := NewGameCardGoodsStockQuerySet(DB).RentStockGt(0). + // OrderDescByRentStock().All(&cardStocks) + cardStockSql1 := fmt.Sprintf("SELECT a.* FROM game_card_goods_stock a LEFT JOIN game_card b ON a.game_card_id=b.id WHERE a.rent_stock>0 AND a.store_id IN %s ORDER BY b.id ASC;", effectiveStoreListStr) + err = DB.Raw(cardStockSql1).Scan(&cardStocks).Error + if err != nil { + logger.Error("GetGameIdByType err:", err) + return cards, 0, err + } + for i, _ := range cardStocks { + _, ok := gameIdMap[uint32(cardStocks[i].GameCardId)] + if !ok { + gameIds = append(gameIds, uint32(cardStocks[i].GameCardId)) + gameIdMap[uint32(cardStocks[i].GameCardId)] = 1 + } + } + + cardStocks = []GameCardGoodsStock{} + //err = NewGameCardGoodsStockQuerySet(DB).RentStockEq(0).All(&cardStocks) + cardStockSql2 := fmt.Sprintf("SELECT a.* FROM game_card_goods_stock a LEFT JOIN game_card b ON a.game_card_id=b.id WHERE a.rent_stock=0 AND a.store_id IN %s ORDER BY b.id ASC;", effectiveStoreListStr) + err = DB.Raw(cardStockSql2).Scan(&cardStocks).Error + if err != nil { + logger.Error("GetGameIdByType err:", err) + return cards, 0, err + } + for i, _ := range cardStocks { + _, ok := gameIdMap[uint32(cardStocks[i].GameCardId)] + if !ok { + gameIds = append(gameIds, uint32(cardStocks[i].GameCardId)) + gameIdMap[uint32(cardStocks[i].GameCardId)] = 3 + } + } + //if len(gameIds) > 0 { + // qs = qs.IDIn(gameIds...) + //} + } + } + + count, err = qs.Count() + if err != nil { + logger.Error("count err:", err) + } + totalPage = uint32(count/pageSize + 1) + if count%pageSize == 0 { + totalPage = uint32(count / pageSize) + } + //err = qs.OrderDescByCreatedAt().Offset(page * pageSize).Limit(pageSize).All(&cards) + if sortType != 1 { + err = qs.Offset(page * pageSize).Limit(pageSize).All(&cards) + if err != nil && err != RecordNotFound { + logger.Error("err:", err) + return cards, 0, err + } + + GameCardListSetStockState(cards, storeId, effectiveStoreList) + } else { + err = qs.OrderDescByID().All(&cards) + //err = qs.OrderAscByID().All(&cards) + if err != nil && err != RecordNotFound { + logger.Error("list err:", err) + return cards, 0, err + } + //fmt.Println("page:", page, totalPage) + list := make([]GameCard, 0, len(cards)) + cardMap := make(map[uint32]GameCard, 0) + for i, _ := range cards { + cardMap[cards[i].ID] = cards[i] + + // 如果游戏列表有记录,但游戏库存列表无记录;则也添加到gameIds,库存记录为3无库存 + _, ok := gameIdMap[cards[i].ID] + if !ok { + gameIds = append(gameIds, uint32(cards[i].ID)) + gameIdMap[cards[i].ID] = 3 + } + } + for i, _ := range gameIds { + v, ok1 := cardMap[gameIds[i]] + v2, _ := gameIdMap[gameIds[i]] + v.StockState = v2 + if ok1 { + list = append(list, v) + } + } + count = len(list) + totalPage = uint32(count/pageSize + 1) + if count%pageSize == 0 { + totalPage = uint32(count / pageSize) + } + + if uint32(page) < totalPage-1 && totalPage != 1 { + cards = list[page*pageSize : (page+1)*pageSize] + } else { + cards = list[page*pageSize:] + } + } + + //cardIds := make([]uint64, 0) + //for i, _ := range cards { + // cardIds = append(cardIds, uint64(cards[i].ID)) + //} + + //var cardStocks []GameCardGoodsStock + //err = NewGameCardGoodsStockQuerySet(DB).GameCardIdIn(cardIds...).All(&cardStocks) + //if err != nil { + // logger.Error("err:", err) + // return cards, totalPage, nil + //} + //cardStockMap := make(map[uint64]uint32, 0) + //for i, _ := range cardStocks { + // cardStockMap[cardStocks[i].GameCardId] += cardStocks[i].RentStock + //} + + for i, _ := range cards { + //stock, ok := cardStockMap[uint64(cards[i].ID)] + //if ok { + // cards[i].StockCount = stock + //} + if user != nil && user.IsMember() { + cards[i].RealPrice = 0 + } + } + return cards, totalPage, nil +} diff --git a/model/home_category.go b/model/home_category.go new file mode 100644 index 0000000..7a9ba44 --- /dev/null +++ b/model/home_category.go @@ -0,0 +1,15 @@ +package model + +//go:generate goqueryset -in home_category.go + +// HomeCategory 首页分类表 +// gen:qs +type HomeCategory struct { + Model + + Name string `json:"name" gorm:"index"` // 分类名称 + SortOrder uint32 `json:"sort_order" gorm:"index"` // 排序序号 + State uint32 `json:"state" gorm:"index"` // 状态:1-启用;2-隐藏 + AllFlag uint32 `json:"all_flag"` // 是否包含所有游戏:0-不包含;1-包含 + OrderFlag uint32 `json:"order_flag"` // 是否根据销量排序:0-不选择;1-根据租赁数量排序 +} diff --git a/model/home_category_game.go b/model/home_category_game.go new file mode 100644 index 0000000..bf06fd6 --- /dev/null +++ b/model/home_category_game.go @@ -0,0 +1,14 @@ +package model + +//go:generate goqueryset -in home_category_game.go + +// HomeCategoryGame 分类与游戏关联表结构体 +// gen:qs +type HomeCategoryGame struct { + Model + + HomeCategoryID uint32 `json:"home_category_id" gorm:"index"` // 首页分类ID,外键关联 HomeCategory + GameID uint32 `json:"game_id" gorm:"index"` // 游戏ID,外键关联 GameCard + GameName string `json:"game_name"` // 游戏名称 + SortOrder int `json:"sort_order" gorm:"index"` // 归属游戏中排序序号 +} diff --git a/router/router_app.go b/router/router_app.go index 6be0e02..8da4a9b 100644 --- a/router/router_app.go +++ b/router/router_app.go @@ -59,9 +59,13 @@ func ConfigAppRouter(r gin.IRouter) { gameCard.POST("type/list", controller.GameCardTypeList) // 游戏类型列表 //gameCard.Use(auth.UserAccessAuth) - gameCard.POST("info", controller.GameCardInfo) // 游戏卡详情 - gameCard.POST("list", controller.GameCardList) // 游戏卡列表 + gameCard.POST("info", controller.GameCardInfo) // 游戏卡详情 + //gameCard.POST("list", controller.GameCardList) // 游戏卡列表 gameCard.POST("banner", controller.HomeCarouselList) // 轮播图 + + // add 2025-1-1 + gameCard.GET("home/list", controller.HomeCategoryList) // 首页分类列表 + gameCard.POST("list", controller.NewGameCardList) // 游戏卡列表 } search := gameCard.Group("search")