fix:
This commit is contained in:
parent
ff5bcb1c8c
commit
688a2173dc
|
@ -4151,6 +4151,12 @@ func (qs GameCardQuerySet) OrderAscByStockCount() GameCardQuerySet {
|
|||
return qs.w(qs.db.Order("stock_count ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByStockState is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs GameCardQuerySet) OrderAscByStockState() GameCardQuerySet {
|
||||
return qs.w(qs.db.Order("stock_state ASC"))
|
||||
}
|
||||
|
||||
// OrderAscByTotalCount is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs GameCardQuerySet) OrderAscByTotalCount() GameCardQuerySet {
|
||||
|
@ -4351,6 +4357,12 @@ func (qs GameCardQuerySet) OrderDescByStockCount() GameCardQuerySet {
|
|||
return qs.w(qs.db.Order("stock_count DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByStockState is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs GameCardQuerySet) OrderDescByStockState() GameCardQuerySet {
|
||||
return qs.w(qs.db.Order("stock_state DESC"))
|
||||
}
|
||||
|
||||
// OrderDescByTotalCount is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs GameCardQuerySet) OrderDescByTotalCount() GameCardQuerySet {
|
||||
|
@ -4705,6 +4717,62 @@ func (qs GameCardQuerySet) StockCountNotIn(stockCount ...uint32) GameCardQuerySe
|
|||
return qs.w(qs.db.Where("stock_count NOT IN (?)", stockCount))
|
||||
}
|
||||
|
||||
// StockStateEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs GameCardQuerySet) StockStateEq(stockState uint32) GameCardQuerySet {
|
||||
return qs.w(qs.db.Where("stock_state = ?", stockState))
|
||||
}
|
||||
|
||||
// StockStateGt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs GameCardQuerySet) StockStateGt(stockState uint32) GameCardQuerySet {
|
||||
return qs.w(qs.db.Where("stock_state > ?", stockState))
|
||||
}
|
||||
|
||||
// StockStateGte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs GameCardQuerySet) StockStateGte(stockState uint32) GameCardQuerySet {
|
||||
return qs.w(qs.db.Where("stock_state >= ?", stockState))
|
||||
}
|
||||
|
||||
// StockStateIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs GameCardQuerySet) StockStateIn(stockState ...uint32) GameCardQuerySet {
|
||||
if len(stockState) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one stockState in StockStateIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("stock_state IN (?)", stockState))
|
||||
}
|
||||
|
||||
// StockStateLt is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs GameCardQuerySet) StockStateLt(stockState uint32) GameCardQuerySet {
|
||||
return qs.w(qs.db.Where("stock_state < ?", stockState))
|
||||
}
|
||||
|
||||
// StockStateLte is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs GameCardQuerySet) StockStateLte(stockState uint32) GameCardQuerySet {
|
||||
return qs.w(qs.db.Where("stock_state <= ?", stockState))
|
||||
}
|
||||
|
||||
// StockStateNe is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs GameCardQuerySet) StockStateNe(stockState uint32) GameCardQuerySet {
|
||||
return qs.w(qs.db.Where("stock_state != ?", stockState))
|
||||
}
|
||||
|
||||
// StockStateNotIn is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs GameCardQuerySet) StockStateNotIn(stockState ...uint32) GameCardQuerySet {
|
||||
if len(stockState) == 0 {
|
||||
qs.db.AddError(errors.New("must at least pass one stockState in StockStateNotIn"))
|
||||
return qs.w(qs.db)
|
||||
}
|
||||
return qs.w(qs.db.Where("stock_state NOT IN (?)", stockState))
|
||||
}
|
||||
|
||||
// TotalCountEq is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (qs GameCardQuerySet) TotalCountEq(totalCount uint32) GameCardQuerySet {
|
||||
|
@ -5000,6 +5068,13 @@ func (u GameCardUpdater) SetStockCount(stockCount uint32) GameCardUpdater {
|
|||
return u
|
||||
}
|
||||
|
||||
// SetStockState is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u GameCardUpdater) SetStockState(stockState uint32) GameCardUpdater {
|
||||
u.fields[string(GameCardDBSchema.StockState)] = stockState
|
||||
return u
|
||||
}
|
||||
|
||||
// SetTotalCount is an autogenerated method
|
||||
// nolint: dupl
|
||||
func (u GameCardUpdater) SetTotalCount(totalCount uint32) GameCardUpdater {
|
||||
|
@ -5060,6 +5135,7 @@ var GameCardDBSchema = struct {
|
|||
NewProducts GameCardDBSchemaField
|
||||
Status GameCardDBSchemaField
|
||||
StockCount GameCardDBSchemaField
|
||||
StockState GameCardDBSchemaField
|
||||
TotalCount GameCardDBSchemaField
|
||||
GameTypeId GameCardDBSchemaField
|
||||
GoodsGalleryUrl GameCardDBSchemaField
|
||||
|
@ -5086,6 +5162,7 @@ var GameCardDBSchema = struct {
|
|||
NewProducts: GameCardDBSchemaField("new_products"),
|
||||
Status: GameCardDBSchemaField("status"),
|
||||
StockCount: GameCardDBSchemaField("stock_count"),
|
||||
StockState: GameCardDBSchemaField("stock_state"),
|
||||
TotalCount: GameCardDBSchemaField("total_count"),
|
||||
GameTypeId: GameCardDBSchemaField("game_type_id"),
|
||||
GoodsGalleryUrl: GameCardDBSchemaField("goods_gallery_url"),
|
||||
|
@ -5116,6 +5193,7 @@ func (o *GameCard) Update(db *gorm.DB, fields ...GameCardDBSchemaField) error {
|
|||
"new_products": o.NewProducts,
|
||||
"status": o.Status,
|
||||
"stock_count": o.StockCount,
|
||||
"stock_state": o.StockState,
|
||||
"total_count": o.TotalCount,
|
||||
"game_type_id": o.GameTypeId,
|
||||
"goods_gallery_url": o.GoodsGalleryUrl,
|
||||
|
|
|
@ -21,6 +21,7 @@ type GameCard struct {
|
|||
NewProducts uint8 `json:"new_products"` // 新品: 1-新品 2-非新品
|
||||
Status uint8 `json:"status"` // 状态: 1-上架 2-下架
|
||||
StockCount uint32 `json:"stock_count"` // 库存
|
||||
StockState uint32 `json:"stock_state"` // 1-库存 2-门店库存 3-无库存
|
||||
TotalCount uint32 `json:"total_count"` // 总量
|
||||
GameTypeId uint32 `json:"game_type_id"` // 游戏类型
|
||||
GoodsGalleryUrl string `json:"goods_gallery_url" gorm:"type:text;comment:'轮播图'"` // 轮播图
|
||||
|
@ -81,6 +82,8 @@ func (m *User) IsMember() bool {
|
|||
return false
|
||||
}
|
||||
|
||||
//var GameCardListUpdateTime = time.Time{}
|
||||
|
||||
func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId, uid uint32) ([]GameCard, uint32, error) {
|
||||
var (
|
||||
cards []GameCard = make([]GameCard, 0)
|
||||
|
@ -103,7 +106,8 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
|
|||
switch sortType {
|
||||
case 1:
|
||||
// 排序类型 1-默认
|
||||
//qs = qs.OrderDescByCreatedAt()
|
||||
qs = qs.OrderDescByCreatedAt()
|
||||
//qs = qs.OrderAscByStockState()
|
||||
case 2:
|
||||
// 排序类型 2-新品
|
||||
qs = qs.NewProductsEq(1)
|
||||
|
@ -132,65 +136,141 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
|
|||
return cards, 0, err
|
||||
}
|
||||
}
|
||||
if storeId != 0 {
|
||||
var cardStocks []GameCardGoodsStock
|
||||
err := NewGameCardGoodsStockQuerySet(DB).StoreIdEq(uint64(storeId)).RentStockGt(0).All(&cardStocks)
|
||||
if err != nil {
|
||||
logger.Error("GetGameIdByType err:", err)
|
||||
return cards, 0, err
|
||||
}
|
||||
if len(cardStocks) <= 0 {
|
||||
return cards, 0, nil
|
||||
}
|
||||
gameIds := make([]uint32, 0)
|
||||
for i, _ := range cardStocks {
|
||||
gameIds = append(gameIds, uint32(cardStocks[i].GameCardId))
|
||||
}
|
||||
if len(gameIds) <= 0 {
|
||||
return cards, 0, nil
|
||||
}
|
||||
|
||||
qs = qs.IDIn(gameIds...)
|
||||
if sortType == 1 {
|
||||
|
||||
}
|
||||
hideGamePrice := uint32(30000)
|
||||
var user *User
|
||||
if uid != 0 {
|
||||
user = GetUserByUid(uid)
|
||||
if user.MemberExpire.After(time.Now()) &&
|
||||
user.MemberExpire.AddDate(0, 0, -14).Before(time.Now()) {
|
||||
qs = qs.RealPriceLte(30000)
|
||||
qs = qs.RealPriceLte(hideGamePrice)
|
||||
}
|
||||
}
|
||||
gameIds := make([]uint32, 0)
|
||||
gameIdMap := make(map[uint32]uint32)
|
||||
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)
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
err = NewGameCardGoodsStockQuerySet(DB).StoreIdNe(uint64(storeId)).RentStockGt(0).OrderDescByRentStock().All(&cardStocks)
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
err = NewGameCardGoodsStockQuerySet(DB).StoreIdNe(uint64(storeId)).RentStockEq(0).All(&cardStocks)
|
||||
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
|
||||
}
|
||||
}
|
||||
qs = qs.IDIn(gameIds...)
|
||||
}
|
||||
|
||||
if count == 0 {
|
||||
count, err = qs.Count()
|
||||
}
|
||||
|
||||
err = qs.OrderDescByCreatedAt().Offset(page * pageSize).Limit(pageSize).All(&cards)
|
||||
totalPage = uint32(count/pageSize + 1)
|
||||
//err = qs.OrderDescByCreatedAt().Offset(page * pageSize).Limit(pageSize).All(&cards)
|
||||
if storeId == 0 {
|
||||
err = qs.Offset(page * pageSize).Limit(pageSize).All(&cards)
|
||||
if err != nil && err != RecordNotFound {
|
||||
logger.Error("err:", err)
|
||||
return cards, 0, err
|
||||
}
|
||||
totalPage = uint32(count/pageSize + 1)
|
||||
|
||||
cardIds := make([]uint64, 0)
|
||||
} else {
|
||||
err = qs.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 {
|
||||
cardIds = append(cardIds, uint64(cards[i].ID))
|
||||
cardMap[cards[i].ID] = cards[i]
|
||||
}
|
||||
for i, _ := range gameIds {
|
||||
v, ok1 := cardMap[gameIds[i]]
|
||||
v2, _ := gameIdMap[gameIds[i]]
|
||||
v.StockState = v2
|
||||
if ok1 {
|
||||
list = append(list, v)
|
||||
}
|
||||
}
|
||||
if uint32(page) < totalPage && totalPage != 1 {
|
||||
cards = list[page*pageSize : (page+1)*pageSize]
|
||||
} else {
|
||||
cards = list[page*pageSize:]
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
//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
|
||||
}
|
||||
//stock, ok := cardStockMap[uint64(cards[i].ID)]
|
||||
//if ok {
|
||||
// cards[i].StockCount = stock
|
||||
//}
|
||||
if user != nil && user.IsMember() {
|
||||
cards[i].RealPrice = 0
|
||||
}
|
||||
|
|
|
@ -105,16 +105,19 @@ func InitTestDB() {
|
|||
//&CooperativeDeductSettle{},
|
||||
//&XcxRole{},
|
||||
|
||||
&Goods{},
|
||||
&GoodsCat{},
|
||||
&GoodsAttribute{},
|
||||
&GoodsAttributeCombo{},
|
||||
&Spec{},
|
||||
&SpecValue{},
|
||||
&GoodsOrder{},
|
||||
&OperationLog{},
|
||||
&DeliverTask{},
|
||||
&DeliverTaskSub{},
|
||||
// 商城
|
||||
//&Goods{},
|
||||
//&GoodsCat{},
|
||||
//&GoodsAttribute{},
|
||||
//&GoodsAttributeCombo{},
|
||||
//&Spec{},
|
||||
//&SpecValue{},
|
||||
//&GoodsOrder{},
|
||||
//&OperationLog{},
|
||||
//&DeliverTask{},
|
||||
//&DeliverTaskSub{},
|
||||
|
||||
&GameCard{},
|
||||
)
|
||||
|
||||
fmt.Println("DB init success")
|
||||
|
@ -197,16 +200,17 @@ func InitDBProd() {
|
|||
//&CooperativeDeductSettle{},
|
||||
//&XcxRole{},
|
||||
|
||||
&Goods{},
|
||||
&GoodsCat{},
|
||||
&GoodsAttribute{},
|
||||
&GoodsAttributeCombo{},
|
||||
&Spec{},
|
||||
&SpecValue{},
|
||||
&GoodsOrder{},
|
||||
&OperationLog{},
|
||||
&DeliverTask{},
|
||||
&DeliverTaskSub{},
|
||||
// 商城
|
||||
//&Goods{},
|
||||
//&GoodsCat{},
|
||||
//&GoodsAttribute{},
|
||||
//&GoodsAttributeCombo{},
|
||||
//&Spec{},
|
||||
//&SpecValue{},
|
||||
//&GoodsOrder{},
|
||||
//&OperationLog{},
|
||||
//&DeliverTask{},
|
||||
//&DeliverTaskSub{},
|
||||
)
|
||||
|
||||
if err := DBProd.DB().Ping(); err != nil {
|
||||
|
|
Loading…
Reference in New Issue
Block a user