mh_server/controller/user_share_card.go

109 lines
2.6 KiB
Go
Raw Normal View History

2022-03-26 03:25:15 +00:00
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
}