go-common/app/service/live/wallet/http/wallet.go
2019-04-22 18:49:16 +08:00

208 lines
4.5 KiB
Go

package http
import (
"strconv"
"go-common/app/service/live/wallet/model"
"go-common/library/ecode"
bm "go-common/library/net/http/blademaster"
)
func getBasicParam(c *bm.Context) *model.BasicParam {
bp := new(model.BasicParam)
var err error
bp.TransactionId = c.Request.Form.Get("transaction_id")
bp.BizCode = c.Request.Form.Get("biz_code")
bp.Area, err = strconv.ParseInt(c.Request.Form.Get("area_id"), 10, 64)
if err != nil {
bp.Area = 0
}
bp.Source = c.Request.Form.Get("source")
bp.BizSource = c.Request.Form.Get("biz_source")
bp.MetaData = c.Request.Form.Get("metadata")
bp.Reason, err = strconv.ParseInt(c.Request.Form.Get("biz_reason"), 10, 64)
if err != nil {
bp.Reason = 0
}
bp.Version, err = strconv.ParseInt(c.Request.Form.Get("version"), 10, 64)
if err != nil {
bp.Version = 0
}
return bp
}
func getWithMetal(c *bm.Context) (withMetal int, err error) {
withMetalStr := c.Request.Form.Get("with_metal")
if withMetalStr == "" {
withMetal = 0
return
}
// check params
withMetal, err = strconv.Atoi(withMetalStr)
if err != nil || (withMetal != 0 && withMetal != 1) {
err = ecode.RequestErr
return
}
return
}
func get(c *bm.Context) {
uidStr := c.Request.Form.Get("uid")
// check params
uid, err := strconv.ParseInt(uidStr, 10, 64)
if err != nil || uid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
withMetal, err := getWithMetal(c)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
bp := getBasicParam(c)
platform := c.Request.Header.Get("platform")
c.JSON(walletSvr.Get(c, bp, uid, platform, withMetal))
}
func delCache(c *bm.Context) {
uidStr := c.Request.Form.Get("uid")
// check params
uid, err := strconv.ParseInt(uidStr, 10, 64)
if err != nil || uid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
bp := getBasicParam(c)
c.JSON(walletSvr.DelCache(c, bp, uid))
}
func getAll(c *bm.Context) {
uidStr := c.Request.Form.Get("uid")
// check params
uid, err := strconv.ParseInt(uidStr, 10, 64)
if err != nil || uid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
withMetal, err := getWithMetal(c)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
bp := getBasicParam(c)
platform := c.Request.Header.Get("platform")
c.JSON(walletSvr.GetAll(c, bp, uid, platform, withMetal))
}
func getTid(c *bm.Context) {
typeStr := c.Request.Form.Get("type")
// check params
serviceType64, err := strconv.ParseInt(typeStr, 10, 64)
serviceType := int32(serviceType64)
if err != nil || serviceType < 0 {
c.JSON(nil, ecode.RequestErr)
return
}
params := c.Request.Form.Get("params")
if params == "" {
c.JSON(nil, ecode.RequestErr)
return
}
bp := getBasicParam(c)
c.JSON(walletSvr.GetTid(c, bp, 0, serviceType, params))
}
func recharge(c *bm.Context) {
bp := getBasicParam(c)
platform := c.Request.Header.Get("platform")
arg := &model.RechargeOrPayForm{}
if err := c.Bind(arg); err != nil {
return
}
c.JSON(walletSvr.Recharge(c, bp, arg.Uid, platform, arg))
}
func modify(c *bm.Context) {
bp := getBasicParam(c)
platform := c.Request.Header.Get("platform")
arg := &model.RechargeOrPayForm{}
if err := c.Bind(arg); err != nil {
return
}
c.JSON(walletSvr.Modify(c, bp, arg.Uid, platform, arg))
}
func pay(c *bm.Context) {
bp := getBasicParam(c)
platform := c.Request.Header.Get("platform")
arg := &model.RechargeOrPayForm{}
if err := c.Bind(arg); err != nil {
return
}
var reason interface{}
reasonFromHttp := c.Request.Form.Get("reason")
if reasonFromHttp == "" {
reason = nil
} else {
reason = reasonFromHttp
}
c.JSON(walletSvr.Pay(c, bp, arg.Uid, platform, arg, reason))
}
func exchange(c *bm.Context) {
bp := getBasicParam(c)
platform := c.Request.Header.Get("platform")
arg := &model.ExchangeForm{}
if err := c.Bind(arg); err != nil {
return
}
c.JSON(walletSvr.Exchange(c, bp, arg.Uid, platform, arg))
}
func query(c *bm.Context) {
bp := getBasicParam(c)
platform := c.Request.Header.Get("platform")
if platform == "" {
platform = "pc"
}
tid := c.Request.Form.Get("transaction_id")
if tid == "" {
c.JSON(nil, ecode.RequestErr)
return
}
uidStr := c.Request.Form.Get("uid")
uid, err := strconv.ParseInt(uidStr, 10, 64)
if err != nil || uid <= 0 {
uid = 0
return
}
c.JSON(walletSvr.Query(c, bp, uid, platform, tid))
}
func recordCoinStream(c *bm.Context) {
bp := getBasicParam(c)
platform := c.Request.Header.Get("platform")
arg := &model.RecordCoinStreamForm{}
if err := c.Bind(arg); err != nil {
return
}
c.JSON(walletSvr.RecordCoinStream(c, bp, arg.Uid, platform, arg))
}