package controller import ( "github.com/codinl/go-logger" "github.com/gin-gonic/gin" "mh-server/lib/auth" "mh-server/lib/status" "mh-server/model" ) func StoreList(c *gin.Context) { req := struct { //GameCardId uint64 `json:"game_card_id"` UseType uint32 `json:"use_type"` GameCardList []model.CardInfo `json:"game_card_list"` }{} if err := c.ShouldBindJSON(&req); err != nil { logger.Error(err) RespJson(c, status.BadRequest, nil) return } stores, err := model.GetStoreList(req.GameCardList) if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } RespOK(c, stores) return } func DisplayStoreList(c *gin.Context) { req := struct { DisplayType uint32 `json:"display_type"` // 0-所有 1-共享卡 }{} if err := c.ShouldBindJSON(&req); err != nil { logger.Error(err) RespJson(c, status.BadRequest, nil) return } stores, err := model.GetDisplayStoreList(req.DisplayType) if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } RespOK(c, stores) } func StoreInfo(c *gin.Context) { req := struct { StoreId uint32 `json:"store_id"` }{} if err := c.ShouldBindJSON(&req); err != nil { logger.Error(err) RespJson(c, status.BadRequest, nil) return } store := model.Store{} store.ID = req.StoreId err := store.Info() if err != nil { logger.Error("err:", err) return } RespOK(c, store) return } func ShoppingCartAdd(c *gin.Context) { req := &struct { GameCardId uint32 `json:"game_card_id"` AddType uint32 `json:"add_type"` // 1-加 2-减 }{} if err := c.ShouldBindJSON(&req); err != nil { logger.Error(err) RespJson(c, status.BadRequest, nil) return } //fmt.Println("GameCardId:",req.GameCardId) //fmt.Println("AddType:",req.AddType) if req.GameCardId == 0 { logger.Error("GameCardId is 0") RespJson(c, status.BadRequest, nil) return } uc := auth.GetCurrentUser(c) if uc == nil { RespJson(c, status.Unauthorized, nil) return } var shoppingCart model.ShoppingCart err := model.NewShoppingCartQuerySet(model.DB).UidEq(uint64(uc.Uid)).GameCardIdEq(uint64(req.GameCardId)).One(&shoppingCart) if err != nil && err != model.RecordNotFound { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } if err == model.RecordNotFound { shoppingCart = model.ShoppingCart{ Uid: uint64(uc.Uid), GameCardId: uint64(req.GameCardId), Count: 1, } err := model.DB.Create(&shoppingCart).Error if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } RespOK(c, shoppingCart) return } if req.AddType == 1 { shoppingCart.Count += 1 } else if req.AddType == 2 { shoppingCart.Count -= 1 } if shoppingCart.Count < 0 { shoppingCart.Count = 0 } _, err = model.NewShoppingCartQuerySet(model.DB).IDEq(shoppingCart.ID).GetUpdater().SetCount(shoppingCart.Count).UpdateNum() if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } RespOK(c, shoppingCart) return } func ShoppingCartList(c *gin.Context) { req := &model.ShoppingCartListReq{} if err := c.ShouldBindJSON(&req); err != nil { logger.Error(err) RespJson(c, status.BadRequest, nil) return } uc := auth.GetCurrentUser(c) if uc == nil { RespJson(c, status.Unauthorized, nil) return } req.Uid = uc.Uid list, err := req.List() if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } RespOK(c, list) return } func ShoppingCartDel(c *gin.Context) { req := &struct { ShoppingCartIds []uint32 `json:"shopping_cart_ids"` }{} if err := c.ShouldBindJSON(&req); err != nil { logger.Error(err) RespJson(c, status.BadRequest, nil) return } uc := auth.GetCurrentUser(c) if uc == nil { RespJson(c, status.Unauthorized, nil) return } err := model.NewShoppingCartQuerySet(model.DB).UidEq(uint64(uc.Uid)).IDIn(req.ShoppingCartIds...).Delete() if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } RespOK(c, nil) return }