Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"http.go",
"income.go",
"trade.go",
],
importpath = "go-common/app/interface/main/ugcpay/server/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/main/ugcpay/api/http:go_default_library",
"//app/interface/main/ugcpay/conf:go_default_library",
"//app/interface/main/ugcpay/model:go_default_library",
"//app/interface/main/ugcpay/service:go_default_library",
"//library/ecode:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/middleware/antispam:go_default_library",
"//library/net/http/blademaster/middleware/auth:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,54 @@
package http
import (
"go-common/app/interface/main/ugcpay/conf"
"go-common/app/interface/main/ugcpay/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/antispam"
"go-common/library/net/http/blademaster/middleware/auth"
)
var (
srv *service.Service
authM *auth.Auth
antispamM *antispam.Antispam
)
// Init init
func Init(c *conf.Config, s *service.Service) {
srv = s
authM = auth.New(c.Auth)
antispamM = antispam.New(c.Antispam)
engine := bm.DefaultServer(c.BM)
route(engine)
if err := engine.Start(); err != nil {
log.Error("bm Start error(%+v)", err)
panic(err)
}
}
func route(e *bm.Engine) {
e.Ping(ping)
web := e.Group("/x/ugcpay", authM.UserWeb)
{
web.GET("/trade", tradeQuery)
web.POST("/trade/confirm", antispamM.Handler(), tradeConfirm)
web.POST("/trade/create", antispamM.Handler(), tradeCreate)
web.POST("/trade/cancel", tradeCancel)
web.GET("/income/asset/overview", antispamM.Handler(), incomeAssetOverview)
web.GET("/income/asset/monthly", antispamM.Handler(), incomeAssetMonthly)
}
app := e.Group("/x/ugcpay/v1", authM.UserMobile)
{
app.GET("/trade", tradeQuery)
app.POST("/trade/confirm", antispamM.Handler(), tradeConfirm)
app.POST("/trade/create", antispamM.Handler(), tradeCreate)
app.POST("/trade/cancel", tradeCancel)
app.GET("/income/asset/overview", antispamM.Handler(), incomeAssetOverview)
app.GET("/income/asset/monthly", antispamM.Handler(), incomeAssetMonthly)
}
}
func ping(c *bm.Context) {
}

View File

@@ -0,0 +1,84 @@
package http
import (
"strconv"
api "go-common/app/interface/main/ugcpay/api/http"
"go-common/app/interface/main/ugcpay/model"
"go-common/library/ecode"
bm "go-common/library/net/http/blademaster"
)
func incomeAssetOverview(ctx *bm.Context) {
var (
err error
resp *api.RespIncomeAssetOverview
inc *model.IncomeAssetOverview
mid, _ = ctx.Get("mid")
)
if inc, err = srv.IncomeAssetOverview(ctx, mid.(int64)); err != nil {
ctx.JSON(nil, err)
return
}
resp = &api.RespIncomeAssetOverview{
Total: inc.Total,
TotalBuyTimes: inc.TotalBuyTimes,
MonthNew: inc.MonthNew,
DayNew: inc.DayNew,
}
ctx.JSON(resp, err)
}
func incomeAssetMonthly(ctx *bm.Context) {
var (
err error
arg = &api.ArgIncomeAssetList{}
resp = &api.RespIncomeAssetList{List: make([]*api.RespIncomeAsset, 0)}
inc *model.IncomeAssetMonthly
page *model.Page
ver int64
mid, _ = ctx.Get("mid")
)
if err = ctx.Bind(arg); err != nil {
return
}
if arg.PS == 0 {
arg.PS = 20
}
if arg.PN == 0 {
arg.PN = 1
}
if arg.Ver != "" {
if ver, err = strconv.ParseInt(arg.Ver, 10, 64); err != nil {
ctx.JSON(nil, ecode.RequestErr)
return
}
} else {
// ver=0 代表总计
ver = 0
}
if inc, page, err = srv.IncomeAssetList(ctx, mid.(int64), ver, arg.PS, arg.PN); err != nil {
ctx.JSON(nil, err)
return
}
resp.Page = api.RespPage{
Num: page.Num,
Size: page.Size,
Total: page.Total,
}
for _, i := range inc.List {
resp.List = append(resp.List, &api.RespIncomeAsset{
OID: i.OID,
OType: i.OType,
Title: i.Title,
Currency: i.Currency,
Price: i.Price,
TotalBuyTimes: i.TotalBuyTimes,
NewBuyTimes: i.NewBuyTimes,
TotalErrTimes: i.TotalErrTimes,
NewErrTimes: i.NewErrTimes,
})
}
ctx.JSON(resp, err)
}

View File

@@ -0,0 +1,96 @@
package http
import (
api "go-common/app/interface/main/ugcpay/api/http"
"go-common/app/interface/main/ugcpay/model"
bm "go-common/library/net/http/blademaster"
)
func tradeCreate(ctx *bm.Context) {
var (
err error
arg = &api.ArgTradeCreate{}
resp = &api.RespTradeCreate{}
mid, _ = ctx.Get("mid")
platform = ctx.Request.FormValue("platform")
)
if err = ctx.Bind(arg); err != nil {
return
}
if resp.OrderID, resp.PayData, err = srv.TradeCreate(ctx, mid.(int64), platform, arg.OID, arg.OType, arg.Currency); err != nil {
ctx.JSON(nil, err)
return
}
ctx.JSON(resp, err)
}
func tradeQuery(ctx *bm.Context) {
var (
err error
arg = &api.ArgTradeOrder{}
resp *api.RespTradeOrder
order *model.TradeOrder
)
if err = ctx.Bind(arg); err != nil {
return
}
if order, err = srv.TradeQuery(ctx, arg.OrderID); err != nil {
ctx.JSON(nil, err)
return
}
resp = &api.RespTradeOrder{
OrderID: order.OrderID,
MID: order.MID,
Biz: order.Biz,
Platform: order.Platform,
OID: order.OID,
OType: order.OType,
Fee: order.Fee,
Currency: order.Currency,
PayID: order.PayID,
State: order.State,
Reason: order.Reason,
}
ctx.JSON(resp, err)
}
func tradeConfirm(ctx *bm.Context) {
var (
err error
arg = &api.ArgTradeOrder{}
resp *api.RespTradeOrder
order *model.TradeOrder
)
if err = ctx.Bind(arg); err != nil {
return
}
if order, err = srv.TradeConfirm(ctx, arg.OrderID); err != nil {
ctx.JSON(nil, err)
return
}
resp = &api.RespTradeOrder{
OrderID: order.OrderID,
MID: order.MID,
Biz: order.Biz,
Platform: order.Platform,
OID: order.OID,
OType: order.OType,
Fee: order.Fee,
Currency: order.Currency,
PayID: order.PayID,
State: order.State,
Reason: order.Reason,
}
ctx.JSON(resp, err)
}
func tradeCancel(ctx *bm.Context) {
var (
err error
arg = &api.ArgTradeOrder{}
)
if err = ctx.Bind(arg); err != nil {
return
}
ctx.JSON(nil, srv.TradeCancel(ctx, arg.OrderID))
}