package controller import ( "errors" "github.com/codinl/go-logger" "github.com/gin-gonic/gin" "mh-server/lib/auth" "mh-server/lib/status" "mh-server/lib/utils" "mh-server/lib/wxpay" "mh-server/model" "qiniupkg.com/x/log.v7" ) func HistoryBrowsingList(c *gin.Context) { req := struct { Page int `json:"page"` PageSize int `json:"page_size"` }{ Page: 1, PageSize: 10, } 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 } gameCardList, totalPage, err := model.GetHistoryBrowsingList(uc.Uid, req.Page, req.PageSize) if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } ret := map[string]interface{}{ "game_card_list": gameCardList, "cur_page": req.Page, "total_page": totalPage, } RespOK(c, ret) return } func HistoryBrowsingDel(c *gin.Context) { req := struct { GameCardIds []uint64 `json:"game_card_id" binding:"required"` }{} if c.ShouldBindJSON(&req) != nil { RespJson(c, status.BadRequest, nil) return } uc := auth.GetCurrentUser(c) if uc == nil { RespJson(c, status.Unauthorized, nil) return } if len(req.GameCardIds) > 0 { err := model.NewHistoryBrowsingQuerySet(model.DB.Unscoped()).UidEq(uint64(uc.Uid)).GameCardIdIn(req.GameCardIds...).Delete() if err != nil { log.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } } RespOK(c, nil) return } func CollectionList(c *gin.Context) { req := struct { Page int `json:"page"` PageSize int `json:"page_size"` }{ Page: 1, PageSize: 10, } 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 } gameCardList, totalPage, err := model.GetGameCardCollectionList(uc.Uid, req.Page, req.PageSize) if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } ret := map[string]interface{}{ "game_card_list": gameCardList, "cur_page": req.Page, "total_page": totalPage, } RespOK(c, ret) return } func CollectionAdd(c *gin.Context) { req := struct { GameCardId uint64 `json:"game_card_id" binding:"required"` }{} if c.ShouldBindJSON(&req) != nil { RespJson(c, status.BadRequest, nil) return } uc := auth.GetCurrentUser(c) if uc == nil { RespJson(c, status.Unauthorized, nil) return } collection := model.Collection{ Uid: uint64(uc.Uid), GameCardId: req.GameCardId, } err := collection.Create(model.DB) if err != nil { log.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } RespOK(c, nil) return } func CollectionCancel(c *gin.Context) { req := struct { GameCardIds []uint64 `json:"game_card_id" binding:"required"` }{} if c.ShouldBindJSON(&req) != nil { logger.Error("para err") RespJson(c, status.BadRequest, nil) return } uc := auth.GetCurrentUser(c) if uc == nil { RespJson(c, status.Unauthorized, nil) return } if len(req.GameCardIds) > 0 { err := model.NewCollectionQuerySet(model.DB.Unscoped()).UidEq(uint64(uc.Uid)).GameCardIdIn(req.GameCardIds...).Delete() if err != nil { log.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } } RespOK(c, nil) return } func UserInfoUpdate(c *gin.Context) { req := struct { WxName string `json:"wx_name"` // 昵称 WxAvatar string `json:"wx_avatar"` // 头像 Tel string `json:"tel"` // 电话 }{} 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 } user := &model.User{ Uid: uc.Uid, WxName: req.WxName, WxAvatar: req.WxAvatar, Tel: req.Tel, } err := model.UserUpdate(user) if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } RespOK(c, nil) return } const ( MemberFee = 300 * 100 // 会员费 DepositFee = 300 * 100 // 押金费 ) func OpenMember(c *gin.Context) { //req := struct { // GameCardId uint64 `json:"game_card_id" binding:"required"` //}{} //if c.ShouldBindJSON(&req) != nil { // RespJson(c, status.BadRequest, nil) // return //} uc := auth.GetCurrentUser(c) if uc == nil { RespJson(c, status.Unauthorized, nil) return } user := model.GetUserByUid(uc.Uid) //uid := fmt.Sprintf("%d", uc.Uid) //totalFee := MemberFee + DepositFee //uid := "623892011" //user := model.GetUserByUid(62389201) totalFee := uint32(1) //webPay, err := wxpay.WebPay(uid, totalFee, user.WxOpenID, "N", wxpay.WxPayMember) //if err != nil { // logger.Error(errors.New("WebPay err")) // RespJson(c, status.InternalServerError, nil) // return //} orderSn := utils.GetSerialNo32HEXString() err := model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn}.Insert() if err != nil { logger.Error(errors.New("WebPay err")) RespJson(c, status.InternalServerError, nil) return } webPay, err := wxpay.WebPay(orderSn, totalFee, user.WxOpenID, "N", wxpay.WxPayMember) if err != nil { logger.Error(errors.New("WebPay err")) RespJson(c, status.InternalServerError, nil) return } RespOK(c, webPay) } func CommonProblemList(c *gin.Context) { common := &model.CommonProblem{} list, err := common.List() if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } RespOK(c, list) return }