From eb9ee6614bf0854fc879700ca9386acf0cafcf6e Mon Sep 17 00:00:00 2001 From: li Date: Fri, 22 Apr 2022 10:45:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E9=97=A8=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/game_card.go | 7 ++- controller/order.go | 8 ++- model/autogenerated_game_card.go | 78 ++++++++++++++++++++++++ model/game_card.go | 9 ++- model/model_test.go | 100 +++++++++++++++---------------- model/order.go | 4 ++ router/router_app.go | 3 +- 7 files changed, 152 insertions(+), 57 deletions(-) diff --git a/controller/game_card.go b/controller/game_card.go index 8354a58..f75b0cf 100644 --- a/controller/game_card.go +++ b/controller/game_card.go @@ -36,9 +36,14 @@ func GameCardList(c *gin.Context) { RespJson(c, status.BadRequest, nil) return } + uc := auth.GetCurrentUser(c) + if uc == nil { + RespJson(c, status.Unauthorized, nil) + return + } fmt.Println("游戏类型:GameTypeIds:", req.GameTypeIds) - cardList, totalPage, err := model.GetGameCardList(req.SortType, req.Page, req.PageSize, req.GameTypeIds, req.StoreId) + cardList, totalPage, err := model.GetGameCardList(req.SortType, req.Page, req.PageSize, req.GameTypeIds, req.StoreId, uc.Uid) if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) diff --git a/controller/order.go b/controller/order.go index 273adeb..93676e1 100644 --- a/controller/order.go +++ b/controller/order.go @@ -240,17 +240,17 @@ func RentCardOrderCreate(c *gin.Context) { for _, v := range req.GameCardList { cardCount += v.Count } - fmt.Println("cardCount:", cardCount) + //fmt.Println("cardCount:", cardCount) rentCard := model.GetUserRentCard(uc.Uid) if rentCard == nil { //logger.Error(errors.New("GetUserByUid err")) //RespJson(c, status.InternalServerError, nil) //return - fmt.Println("CardMax", memberConfig.CardMax) + //fmt.Println("CardMax", memberConfig.CardMax) rentCard = &model.UserRentCard{LevelRentCount: memberConfig.CardMax, CanRentCount: memberConfig.CardMax} } - fmt.Println("rentCard", rentCard.CanRentCount) + //fmt.Println("rentCard", rentCard.CanRentCount) if cardCount > rentCard.CanRentCount { logger.Error("GetMemberConfig err:", err) RespJson(c, status.OrderOutRentCount, nil) @@ -335,7 +335,9 @@ func RentCardOrderCreate(c *gin.Context) { RespJson(c, status.OrderStockOut, nil) return } + go func() { + }() fmt.Println("PayPrice:", order.PayPrice) if req.Price == 0 { tx := model.TransactionBegin() diff --git a/model/autogenerated_game_card.go b/model/autogenerated_game_card.go index 8333c4f..62c77e6 100644 --- a/model/autogenerated_game_card.go +++ b/model/autogenerated_game_card.go @@ -3603,6 +3603,12 @@ func (qs GameCardQuerySet) OrderAscByPrice() GameCardQuerySet { return qs.w(qs.db.Order("price ASC")) } +// OrderAscByRealPrice is an autogenerated method +// nolint: dupl +func (qs GameCardQuerySet) OrderAscByRealPrice() GameCardQuerySet { + return qs.w(qs.db.Order("real_price ASC")) +} + // OrderAscByStatus is an autogenerated method // nolint: dupl func (qs GameCardQuerySet) OrderAscByStatus() GameCardQuerySet { @@ -3785,6 +3791,12 @@ func (qs GameCardQuerySet) OrderDescByPrice() GameCardQuerySet { return qs.w(qs.db.Order("price DESC")) } +// OrderDescByRealPrice is an autogenerated method +// nolint: dupl +func (qs GameCardQuerySet) OrderDescByRealPrice() GameCardQuerySet { + return qs.w(qs.db.Order("real_price DESC")) +} + // OrderDescByStatus is an autogenerated method // nolint: dupl func (qs GameCardQuerySet) OrderDescByStatus() GameCardQuerySet { @@ -3983,6 +3995,62 @@ func (qs GameCardQuerySet) PriceNotIn(price ...uint32) GameCardQuerySet { return qs.w(qs.db.Where("price NOT IN (?)", price)) } +// RealPriceEq is an autogenerated method +// nolint: dupl +func (qs GameCardQuerySet) RealPriceEq(realPrice uint32) GameCardQuerySet { + return qs.w(qs.db.Where("real_price = ?", realPrice)) +} + +// RealPriceGt is an autogenerated method +// nolint: dupl +func (qs GameCardQuerySet) RealPriceGt(realPrice uint32) GameCardQuerySet { + return qs.w(qs.db.Where("real_price > ?", realPrice)) +} + +// RealPriceGte is an autogenerated method +// nolint: dupl +func (qs GameCardQuerySet) RealPriceGte(realPrice uint32) GameCardQuerySet { + return qs.w(qs.db.Where("real_price >= ?", realPrice)) +} + +// RealPriceIn is an autogenerated method +// nolint: dupl +func (qs GameCardQuerySet) RealPriceIn(realPrice ...uint32) GameCardQuerySet { + if len(realPrice) == 0 { + qs.db.AddError(errors.New("must at least pass one realPrice in RealPriceIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("real_price IN (?)", realPrice)) +} + +// RealPriceLt is an autogenerated method +// nolint: dupl +func (qs GameCardQuerySet) RealPriceLt(realPrice uint32) GameCardQuerySet { + return qs.w(qs.db.Where("real_price < ?", realPrice)) +} + +// RealPriceLte is an autogenerated method +// nolint: dupl +func (qs GameCardQuerySet) RealPriceLte(realPrice uint32) GameCardQuerySet { + return qs.w(qs.db.Where("real_price <= ?", realPrice)) +} + +// RealPriceNe is an autogenerated method +// nolint: dupl +func (qs GameCardQuerySet) RealPriceNe(realPrice uint32) GameCardQuerySet { + return qs.w(qs.db.Where("real_price != ?", realPrice)) +} + +// RealPriceNotIn is an autogenerated method +// nolint: dupl +func (qs GameCardQuerySet) RealPriceNotIn(realPrice ...uint32) GameCardQuerySet { + if len(realPrice) == 0 { + qs.db.AddError(errors.New("must at least pass one realPrice in RealPriceNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("real_price NOT IN (?)", realPrice)) +} + // StatusEq is an autogenerated method // nolint: dupl func (qs GameCardQuerySet) StatusEq(status uint8) GameCardQuerySet { @@ -4355,6 +4423,13 @@ func (u GameCardUpdater) SetPrice(price uint32) GameCardUpdater { return u } +// SetRealPrice is an autogenerated method +// nolint: dupl +func (u GameCardUpdater) SetRealPrice(realPrice uint32) GameCardUpdater { + u.fields[string(GameCardDBSchema.RealPrice)] = realPrice + return u +} + // SetStatus is an autogenerated method // nolint: dupl func (u GameCardUpdater) SetStatus(status uint8) GameCardUpdater { @@ -4439,6 +4514,7 @@ var GameCardDBSchema = struct { Likes GameCardDBSchemaField DetailInfo GameCardDBSchemaField DetailImg GameCardDBSchemaField + RealPrice GameCardDBSchemaField }{ ID: GameCardDBSchemaField("id"), @@ -4462,6 +4538,7 @@ var GameCardDBSchema = struct { Likes: GameCardDBSchemaField("likes"), DetailInfo: GameCardDBSchemaField("detail_info"), DetailImg: GameCardDBSchemaField("detail_img"), + RealPrice: GameCardDBSchemaField("real_price"), } // Update updates GameCard fields by primary key @@ -4489,6 +4566,7 @@ func (o *GameCard) Update(db *gorm.DB, fields ...GameCardDBSchemaField) error { "likes": o.Likes, "detail_info": o.DetailInfo, "detail_img": o.DetailImg, + "real_price": o.RealPrice, } u := map[string]interface{}{} for _, f := range fields { diff --git a/model/game_card.go b/model/game_card.go index 9929ee3..06bf27d 100644 --- a/model/game_card.go +++ b/model/game_card.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/codinl/go-logger" "strings" + "time" ) //go:generate goqueryset -in game_card.go @@ -29,6 +30,7 @@ type GameCard struct { DetailInfo string `json:"detail_info" gorm:"type:text;comment:'详情描述'"` // 详情描述 DetailImg string `json:"detail_img"` // 详情图片 EstimateVm uint32 `json:"estimate_vm" gorm:"-"` // 预计积分 + RealPrice uint32 `json:"real_price"` // 真实价格 } func (*GameCard) TableName() string { @@ -68,7 +70,7 @@ type CardInfo struct { Count uint32 `json:"count"` } -func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId uint32) ([]GameCard, uint32, error) { +func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId, uid uint32) ([]GameCard, uint32, error) { var ( cards []GameCard = make([]GameCard, 0) totalPage uint32 @@ -85,6 +87,7 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId // logger.Error("NewGameCardQuerySet err:", err) // return cards, 0, err //} + user := GetUserByUid(uid) qs := NewGameCardQuerySet(DB) switch sortType { @@ -139,7 +142,9 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId qs = qs.IDIn(gameIds...) } - + if user.MemberExpire.After(time.Now().AddDate(0, 0, -14)) { + qs = qs.RealPriceLte(30000) + } if count == 0 { count, err = qs.Count() } diff --git a/model/model_test.go b/model/model_test.go index 26c65ea..d0c3fa3 100644 --- a/model/model_test.go +++ b/model/model_test.go @@ -69,56 +69,57 @@ func InitTestDB() { db.SingularTable(true) db.AutoMigrate( - &User{}, - //&LotteryInviteTargetUser{}, - &GameCard{}, - &Collection{}, - &Config{}, - &HistoryBrowsing{}, - &ShoppingCart{}, - &UserAddress{}, - &SearchHistory{}, - &Order{}, - &HotSearch{}, - &HomeCarousel{}, - &GameCardType{}, - &Store{}, - &GameType{}, - &UserOpenMemberRecord{}, - &CommonProblem{}, - &ExpressCompany{}, - &GameCardGoodsStock{}, - &GameCardGoods{}, - &UserInvite{}, - &ArticleTitlePanel{}, - &RedeemCode{}, - &UserRedeemCode{}, - &DepositRefundRecord{}, - &GroupSendMessageTemplate{}, - - &Goods{}, - &GoodsOrder{}, - &UserVm{}, - &UserVmRecord{}, - - &OrderCard{}, - &UserRentCard{}, - &UserConsumeRecord{}, - &UserMemberExpireDelay{}, - - &UserShareCardBill{}, - &ShareCardBillGame{}, - &UserShareCard{}, - &ShareCardVmRecord{}, - &UserShareCardVm{}, - &ShareCardDateVm{}, - &ShareCardVmRecord{}, - &ShareCardRetrieve{}, - &ShareCardRetrieveCard{}, - &GameCardLabel{}, - &CardIssueFeedback{}, - + //&User{}, + ////&LotteryInviteTargetUser{}, + //&GameCard{}, + //&Collection{}, + //&Config{}, + //&HistoryBrowsing{}, + //&ShoppingCart{}, + //&UserAddress{}, + //&SearchHistory{}, + //&Order{}, + //&HotSearch{}, + //&HomeCarousel{}, + //&GameCardType{}, + //&Store{}, + //&GameType{}, + //&UserOpenMemberRecord{}, + //&CommonProblem{}, + //&ExpressCompany{}, + //&GameCardGoodsStock{}, + //&GameCardGoods{}, + //&UserInvite{}, + //&ArticleTitlePanel{}, + //&RedeemCode{}, + //&UserRedeemCode{}, + //&DepositRefundRecord{}, + //&GroupSendMessageTemplate{}, + // + //&Goods{}, + //&GoodsOrder{}, + //&UserVm{}, + //&UserVmRecord{}, + // + //&OrderCard{}, + //&UserRentCard{}, + //&UserConsumeRecord{}, + //&UserMemberExpireDelay{}, + // + //&UserShareCardBill{}, + //&ShareCardBillGame{}, + //&UserShareCard{}, + //&ShareCardVmRecord{}, + //&UserShareCardVm{}, + //&ShareCardDateVm{}, + //&ShareCardVmRecord{}, + //&ShareCardRetrieve{}, + //&ShareCardRetrieveCard{}, + //&GameCardLabel{}, + //&CardIssueFeedback{}, //&GameShareCardVm{}, + + &GameCard{}, ) fmt.Println("DB init success") @@ -158,7 +159,6 @@ func InitDBProd() { &UserRedeemCode{}, &GameCardGoods{}, - &UserShareCardBill{}, &ShareCardBillGame{}, &UserShareCard{}, diff --git a/model/order.go b/model/order.go index 74951ba..ea90f69 100644 --- a/model/order.go +++ b/model/order.go @@ -828,3 +828,7 @@ func (m *Order) CreatOrderCard(cards []CardInfo, storeId uint32, gdb *gorm.DB) e } return nil } + +func QueryRecordExist(sql string) { + DB.Where("").Count("") +} diff --git a/router/router_app.go b/router/router_app.go index bacbb88..215bf79 100644 --- a/router/router_app.go +++ b/router/router_app.go @@ -49,13 +49,14 @@ func ConfigAppRouter(r gin.IRouter) { gameCard := api.Group("game_card") { - gameCard.POST("list", controller.GameCardList) // 游戏卡列表 + gameCard.POST("banner", controller.HomeCarouselList) // 轮播图 gameCard.POST("game_type", controller.GameCardTypes) // 游戏标签 gameCard.POST("type/list", controller.GameCardTypeList) // 游戏类型列表 gameCard.Use(auth.UserAccessAuth) gameCard.POST("info", controller.GameCardInfo) // 游戏卡详情 + gameCard.POST("list", controller.GameCardList) // 游戏卡列表 } search := gameCard.Group("search")