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 ShareCardBillSendCard(c *gin.Context) { req := struct { UserShareCardBillId uint32 `json:"user_share_card_bill_id"` ExpressCompany string `json:"express_company"` // 物流公司 ExpressNo string `json:"express_no"` // 物流单号 }{} 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 } begin := model.DB.Begin() _, err := model.NewUserShareCardBillQuerySet(begin).IDEq(req.UserShareCardBillId).GetUpdater(). SetExpressCompany(req.ExpressCompany).SetExpressNo(req.ExpressNo).SetState(model.ShareCardBillStateSentCard).UpdateNum() if err != nil { begin.Rollback() logger.Error("update user share card bill err:", err) RespJson(c, status.InternalServerError, nil) return } _, err = model.NewShareCardBillGameQuerySet(begin).UserShareCardBillIdEq(req.UserShareCardBillId).GetUpdater(). SetState(model.ShareCardStateSentCard).UpdateNum() if err != nil { begin.Rollback() logger.Error("update user share card bill err:", err) RespJson(c, status.InternalServerError, nil) return } err = begin.Commit().Error if err != nil { begin.Rollback() logger.Error("commit err:", err) RespJson(c, status.InternalServerError, nil) return } RespOK(c, nil) return } func UserShareCardBillList(c *gin.Context) { req := struct { State string `json:"state"` 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, req.State) 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 } func UserShareCardBillInfo(c *gin.Context) { req := struct { UserShareCardBillId uint32 `json:"user_share_card_bill_id"` }{} 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 } cardBill, err := model.GetUserShareCardBill(uc.Uid, req.UserShareCardBillId) if err != nil { logger.Error("share card bill game err:", err) RespJson(c, status.InternalServerError, nil) return } RespOK(c, cardBill) return } func UserShareCardBillCancel(c *gin.Context) { req := struct { UserShareCardBillId uint32 `json:"user_share_card_bill_id"` }{} if c.ShouldBindJSON(&req) != nil { logger.Error("parameter err") RespJson(c, status.BadRequest, nil) return } begin := model.DB.Begin() _, err := model.NewUserShareCardBillQuerySet(begin).IDEq(req.UserShareCardBillId).GetUpdater(). SetState(model.ShareCardBillStateCancel).UpdateNum() if err != nil { begin.Rollback() logger.Error("update user share card bill err:", err) RespJson(c, status.InternalServerError, nil) return } _, err = model.NewShareCardBillGameQuerySet(begin).UserShareCardBillIdEq(req.UserShareCardBillId).GetUpdater(). SetState(model.ShareCardStateCancel).UpdateNum() if err != nil { begin.Rollback() logger.Error("update user share card bill err:", err) RespJson(c, status.InternalServerError, nil) return } err = begin.Commit().Error if err != nil { begin.Rollback() logger.Error("commit err:", err) RespJson(c, status.InternalServerError, nil) return } RespOK(c, nil) return } func UserShareCardMyCard(c *gin.Context) { req := struct { State string `json:"state"` 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.GetUserShareCardMyCardList(uc.Uid, req.Page, req.PageSize, req.State) if err != nil { logger.Error("share card bill game create err:", err) RespJson(c, status.InternalServerError, nil) return } dateVm, err := model.GetUserShareCardDateVm(uc.Uid) if err != nil { logger.Error("get user share card date vm err:", err) RespJson(c, status.InternalServerError, nil) return } ret := map[string]interface{}{ "yesterday_vm": dateVm.Vm, "total_vm": dateVm.TotalVm, "list": list, "cur_page": req.Page, "total_page": totalPage, } RespOK(c, ret) return } func UserShareCardVmRecord(c *gin.Context) { req := struct { GameCardGoodsId uint32 `json:"game_card_goods_id"` 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.GetUserShareCardVmList(uc.Uid, req.Page, req.PageSize, req.GameCardGoodsId) 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 } func ShareCardRetrieveCreate(c *gin.Context) { req := model.ShareCardRetrieveCreateReq{} 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 } err := req.RetrieveCreate() if err != nil { logger.Error("share card retrieve create err:", err) RespJson(c, status.InternalServerError, nil) return } //ret := map[string]interface{}{ // "list": list, // "cur_page": req.Page, // "total_page": totalPage, //} RespOK(c, nil) return }