318 lines
8.0 KiB
Go
318 lines
8.0 KiB
Go
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
|
|
}
|