mh_server/controller/user.go

263 lines
5.6 KiB
Go
Raw Normal View History

2021-06-30 02:12:05 +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/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
}