package controller import ( "errors" "github.com/codinl/go-logger" "github.com/gin-gonic/gin" "mh-server/lib/auth" "mh-server/lib/status" "mh-server/model" ) func UserShareCardBillCreate(c *gin.Context) { req := struct { GameCardList []model.CardInfo `json:"game_card_list"` StoreId uint32 `json:"store_id"` SendCardType uint32 `json:"send_card_type"` // 1-送卡 2-邮寄 }{} if c.ShouldBindJSON(&req) != nil { logger.Error("parameter err") RespJson(c, status.BadRequest, nil) return } uc := auth.GetCurrentUser(c) if uc == nil { RespJson(c, status.Unauthorized, nil) return } if len(req.GameCardList) == 0 || req.StoreId == 0 || req.SendCardType == 0 { logger.Error(errors.New("req err")) RespJson(c, status.Unauthorized, nil) return } billSn := model.GetShareCardBillSn() begin := model.DB.Begin() shareCardBill := &model.UserShareCardBill{ Uid: uc.Uid, BillSn: billSn, State: model.ShareCardBillStateInCheck, SendCardType: req.SendCardType, StoreId: req.StoreId, } err := begin.Create(shareCardBill).Error if err != nil { begin.Rollback() logger.Error("user share card bill create err:", err) RespJson(c, status.InternalServerError, nil) return } for _, info := range req.GameCardList { var cardBill = model.ShareCardBillGame{ UserShareCardBillId: shareCardBill.ID, Uid: uc.Uid, GameCardId: info.GameCardId, BillSn: billSn, Count: info.Count, State: model.ShareCardStateInCheck, } err := begin.Create(&cardBill).Error if err != nil { begin.Rollback() logger.Error("share card bill game create err:", err) RespJson(c, status.InternalServerError, nil) return } } err = begin.Commit().Error if err != nil { begin.Rollback() logger.Error("share card bill game create err:", err) RespJson(c, status.InternalServerError, nil) return } RespOK(c, nil) return } func UserShareCardBillList(c *gin.Context) { req := struct { Page int `json:"cur_page"` PageSize int `json:"page_size"` }{} if c.ShouldBindJSON(&req) != nil { logger.Error("parameter err") RespJson(c, status.BadRequest, nil) return } uc := auth.GetCurrentUser(c) if uc == nil { RespJson(c, status.Unauthorized, nil) return } list, totalPage, err := model.GetUserShareCardBillList(uc.Uid, req.Page, req.PageSize) if err != nil { logger.Error("share card bill game create err:", err) RespJson(c, status.InternalServerError, nil) return } ret := map[string]interface{}{ "list": list, "cur_page": req.Page, "total_page": totalPage, } RespOK(c, ret) return }