You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
207 lines
4.5 KiB
207 lines
4.5 KiB
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)) |
|
}
|
|
|