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,53 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"activity.go",
"column.go",
"exchange.go",
"http.go",
"income.go",
"join.go",
"local.go",
"newbie.go",
"notice.go",
"special_award.go",
"web.go",
"withdraw.go",
],
importpath = "go-common/app/interface/main/growup/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/main/growup/conf:go_default_library",
"//app/interface/main/growup/model:go_default_library",
"//app/interface/main/growup/service:go_default_library",
"//app/interface/main/growup/service/newbie: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/auth:go_default_library",
"//library/net/http/blademaster/render:go_default_library",
"//library/net/metadata: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,49 @@
package http
import (
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func showActivity(c *bm.Context) {
v := new(struct {
ActivityID int64 `form:"activity_id" validate:"required"`
})
if err := c.Bind(v); err != nil {
return
}
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
data, err := svc.ShowActivity(c, mid, v.ActivityID)
if err != nil {
log.Error("svc.ShowActivity error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func signUpActivity(c *bm.Context) {
var err error
v := new(struct {
ActivityID int64 `form:"activity_id" validate:"required"`
})
if err = c.Bind(v); err != nil {
return
}
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
if err = svc.SignUpActivity(c, mid, v.ActivityID); err != nil {
log.Error("svc.SignUpActivity error(%v)", err)
}
c.JSON(nil, err)
}

View File

@@ -0,0 +1,29 @@
package http
import (
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func joinColumn(c *bm.Context) {
v := new(struct {
AccountType int `form:"account_type"`
SignType int `form:"sign_type"`
})
if err := c.Bind(v); err != nil {
return
}
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
err := svc.JoinColumn(c, mid, v.AccountType, v.SignType)
if err != nil {
log.Error("svc.JoinColumn mid(%d) accountType(%d) signType(%d) error(%v)", mid, v.AccountType, v.SignType, err)
}
c.JSON(nil, err)
}

View File

@@ -0,0 +1,93 @@
package http
import (
"net/http"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/render"
)
func goodsState(c *bm.Context) {
data, err := svc.GoodsState(c)
if err != nil {
log.Error("growup svc.GoodsState error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func goodsShow(c *bm.Context) {
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
data, err := svc.GoodsShow(c, mid)
if err != nil {
log.Error("growup svc.GoodsShow error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func goodsRecord(c *bm.Context) {
v := new(struct {
Page int `form:"page" default:"1" validate:"min=1"`
Size int `form:"size" default:"20" validate:"min=1"`
})
if err := c.Bind(v); err != nil {
return
}
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
data, total, err := svc.GoodsRecord(c, mid, v.Page, v.Size)
if err != nil {
log.Error("growup svc.GoodsRecord error(%v)", err)
c.JSON(nil, err)
return
}
c.Render(http.StatusOK, render.MapJSON(map[string]interface{}{
"code": 0,
"message": "0",
"data": data,
"paging": map[string]int{
"page_size": v.Size,
"total": total,
},
}))
}
func goodsBuy(c *bm.Context) {
var err error
v := new(struct {
ProductID string `form:"product_id" validate:"required"`
GoodsType int `form:"goods_type" validate:"required"`
Price int64 `form:"price" validate:"required"`
})
if err = c.Bind(v); err != nil {
return
}
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
if err = svc.GoodsBuy(c, mid, v.ProductID, v.GoodsType, v.Price); err != nil {
c.Render(http.StatusOK, render.MapJSON(map[string]interface{}{
"code": 500,
"message": err.Error(),
}))
} else {
c.JSON(nil, nil)
}
}

View File

@@ -0,0 +1,116 @@
package http
import (
newbieService "go-common/app/interface/main/growup/service/newbie"
"net/http"
"go-common/app/interface/main/growup/conf"
"go-common/app/interface/main/growup/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/auth"
)
var (
svc *service.Service
authSvr *auth.Auth
newbieSvr *newbieService.Service
)
// Init http server
func Init(c *conf.Config) {
initService(c)
engine := bm.DefaultServer(c.BM)
setupInnerEngine(engine)
if err := engine.Start(); err != nil {
log.Error("engine.Start error(%v)", err)
panic(err)
}
}
func initService(c *conf.Config) {
svc = service.New(c)
authSvr = auth.New(nil)
newbieSvr = newbieService.New(c)
}
func setupInnerEngine(e *bm.Engine) {
e.Ping(ping)
allowance := e.Group("/allowance/api/x/internal/growup")
allowanceUp := allowance.Group("/up")
{
// allowanceUp.GET("/status", getUpStatus)
allowanceUp.POST("/add", join)
allowanceUp.POST("/quit", quit)
allowanceUp.GET("/withdraw", getWithdraw)
allowanceUp.POST("/withdraw/success", withdrawSuccess)
}
studio := e.Group("/studio/growup/web", authSvr.User)
studioUp := studio.Group("/up")
{
studioUp.GET("/income/stat", upIncomeStat)
studioUp.GET("/summary", upSummary)
studioUp.GET("/archive/summary", archiveSummary)
studioUp.GET("/charge", upCharge)
studioUp.GET("/archive/income", archiveIncome)
studioUp.GET("/archive/detail", archiveDetail)
studioUp.GET("/archive/breach", archiveBreach)
studioUp.GET("/withdraw/detail", withdrawDetail)
studioUp.POST("/quit", quit1)
studioUp.GET("/status", getUpStatus)
studioUp.POST("/av/join", joinAv)
studioUp.POST("/bgm/join", joinBgm)
studioUp.POST("/column/join", joinColumn)
studioUp.GET("/bill", upBill)
studioUp.GET("/year", upYear)
// 新手信
studioUp.GET("/newbie/letter", upNewbieLetter)
exchange := studioUp.Group("/exchange")
{
exchange.GET("/state", goodsState)
exchange.GET("/show", goodsShow)
exchange.GET("/record", goodsRecord)
exchange.POST("/buy", goodsBuy)
}
}
studioActivity := studio.Group("/activity")
{
studioActivity.GET("/show", showActivity)
studioActivity.POST("/sign_up", signUpActivity)
}
specialAward := e.Group("/studio/growup/web/special/award", authSvr.Guest)
{
specialAward.GET("/info", sepcialAwardInfo)
specialAward.GET("/detail", specialAwardDetail)
specialAward.GET("/list", listSpecialAward)
specialAward.GET("/winner", specialAwardWinners)
}
specialAwardUser := e.Group("/studio/growup/web/special/award", authSvr.User)
{
specialAwardUser.GET("/record", specialAwardRecord)
specialAwardUser.GET("/record/poster", specialAwardPoster)
specialAwardUser.GET("/up/status", specialAwardUpStatus)
specialAwardUser.POST("/join", joinSpecialAward)
}
studio.GET("/notice/latest", latestNotice)
studio.GET("/notices", notices)
studio.GET("/banner", banner)
}
func ping(c *bm.Context) {
var err error
if err = svc.Ping(c); err != nil {
log.Error("service ping error(%v)", err)
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}

View File

@@ -0,0 +1,141 @@
package http
import (
"time"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func archiveIncome(c *bm.Context) {
v := new(struct {
Type int `form:"type"`
Page int `form:"page" default:"1" validate:"min=1"`
Size int `form:"size" default:"20" validate:"min=1"`
All int `form:"all" default:"0"`
})
if err := c.Bind(v); err != nil {
return
}
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
data, err := svc.ArchiveIncome(c, mid, v.Type, v.Page, v.Size, v.All)
if err != nil {
log.Error("growup svc.ArchiveIncome error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func upSummary(c *bm.Context) {
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
data, err := svc.UpSummary(c, mid)
if err != nil {
log.Error("growup svc.UpSummary error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func archiveSummary(c *bm.Context) {
v := new(struct {
Type int `form:"type"`
})
if err := c.Bind(v); err != nil {
return
}
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
data, err := svc.ArchiveSummary(c, v.Type, mid)
if err != nil {
log.Error("growup svc.ArchiveSummary error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func archiveDetail(c *bm.Context) {
v := new(struct {
Type int `form:"type"`
ArchiveID int64 `form:"archive_id" validate:"required"`
})
if err := c.Bind(v); err != nil {
return
}
data, err := svc.ArchiveDetail(c, v.Type, v.ArchiveID)
if err != nil {
log.Error("growup svc.ArchiveDetail error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func archiveBreach(c *bm.Context) {
v := new(struct {
Type int `form:"type"`
Page int `form:"page" default:"1" validate:"min=1"`
Size int `form:"size" default:"20" validate:"min=1"`
All int `form:"all" default:"0"`
})
if err := c.Bind(v); err != nil {
return
}
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
data, err := svc.ArchiveBreach(c, mid, v.Type, v.Page, v.Size, v.All)
if err != nil {
log.Error("growup svc.ArchiveBreach error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func upIncomeStat(c *bm.Context) {
v := new(struct {
Type int `form:"type"`
})
if err := c.Bind(v); err != nil {
return
}
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
data, err := svc.UpIncomeStat(c, v.Type, mid, time.Now())
if err != nil {
log.Error("growup svc.UpIncomeStat error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}

View File

@@ -0,0 +1,49 @@
package http
import (
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func joinAv(c *bm.Context) {
v := new(struct {
AccountType int `form:"account_type"`
SignType int `form:"sign_type"`
})
var err error
if err = c.Bind(v); err != nil {
return
}
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
if err = svc.JoinAv(c, v.AccountType, mid, v.SignType); err != nil {
log.Error("svc.Join accountType(%d) mid(%d) signType(%d) error(%v)", v.AccountType, mid, v.SignType, err)
}
c.JSON(nil, err)
}
func joinBgm(c *bm.Context) {
v := new(struct {
AccountType int `form:"account_type"`
SignType int `form:"sign_type"`
})
var err error
if err = c.Bind(v); err != nil {
return
}
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
if err = svc.JoinBgm(c, mid, v.AccountType, v.SignType); err != nil {
log.Error("svc.JoinBgm accountType(%d) mid(%d) signType(%d) error(%v)", v.AccountType, mid, v.SignType, err)
}
c.JSON(nil, err)
}

View File

@@ -0,0 +1 @@
package http

View File

@@ -0,0 +1,29 @@
package http
import (
"go-common/app/interface/main/growup/model"
"go-common/library/ecode"
"go-common/library/net/http/blademaster"
)
func upNewbieLetter(c *blademaster.Context) {
iMid, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
req := new(model.NewbieLetterReq)
if err := c.Bind(req); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
req.Mid = iMid.(int64)
res, err := newbieSvr.Letter(c, req)
if err != nil {
c.JSON(nil, err)
return
}
c.JSON(res, nil)
}

View File

@@ -0,0 +1,53 @@
package http
import (
"net/http"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/render"
)
func notices(c *bm.Context) {
v := new(struct {
Type int `form:"type"`
Platform int `form:"platform"`
From int `form:"from" default:"0" validate:"min=0"`
Limit int `form:"limit" default:"20" validate:"min=1"`
})
if err := c.Bind(v); err != nil {
return
}
data, total, err := svc.GetNotices(c, v.Type, v.Platform, v.From, v.Limit)
if err != nil {
log.Error("growup svc.GetNotices error(%v)", err)
c.JSON(nil, err)
return
}
c.Render(http.StatusOK, render.MapJSON(map[string]interface{}{
"code": 0,
"message": "0",
"data": data,
"paging": map[string]int64{
"page_size": int64(v.Limit),
"total": total,
},
}))
}
func latestNotice(c *bm.Context) {
v := new(struct {
Platform int `form:"platform" validate:"required"`
})
if err := c.Bind(v); err != nil {
return
}
notice, err := svc.LatestNotice(c, v.Platform)
if err != nil {
log.Error("svc.LatestNotice error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(notice, nil)
}

View File

@@ -0,0 +1,149 @@
package http
import (
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func sepcialAwardInfo(c *bm.Context) {
var mid int64
midI, ok := c.Get("mid")
if ok {
mid, _ = midI.(int64)
}
data, err := svc.SpecialAwardInfo(c, mid)
if err != nil {
log.Error("svc.SpecialAwardInfo error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func specialAwardDetail(c *bm.Context) {
v := new(struct {
AwardID int64 `form:"award_id" validate:"required"`
})
if err := c.Bind(v); err != nil {
return
}
data, err := svc.AwardDetail(c, v.AwardID)
if err != nil {
log.Error("svc.AwardDetail error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func listSpecialAward(c *bm.Context) {
data, err := svc.AwardList(c)
if err != nil {
log.Error("svc.AwardDetail error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func specialAwardRecord(c *bm.Context) {
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
data, err := svc.GetWinningRecord(c, mid)
if err != nil {
log.Error("svc.AwardDetail error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func specialAwardPoster(c *bm.Context) {
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
v := new(struct {
AwardID int64 `form:"award_id" validate:"required"`
PrizeID int64 `form:"prize_id" validate:"required"`
})
if err := c.Bind(v); err != nil {
return
}
data, err := svc.GetWinningPoster(c, mid, v.AwardID, v.PrizeID)
if err != nil {
log.Error("svc.AwardDetail error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func joinSpecialAward(c *bm.Context) {
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
v := new(struct {
AwardID int64 `form:"award_id" validate:"required"`
})
if err := c.Bind(v); err != nil {
return
}
err := svc.JoinAward(c, mid, v.AwardID)
if err != nil {
log.Error("svc.AwardDetail error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(nil, err)
}
func specialAwardWinners(c *bm.Context) {
v := new(struct {
AwardID int64 `form:"award_id" validate:"required"`
})
if err := c.Bind(v); err != nil {
return
}
data, err := svc.Winners(c, v.AwardID)
if err != nil {
log.Error("svc.AwardDetail error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func specialAwardUpStatus(c *bm.Context) {
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
v := new(struct {
AwardID int64 `form:"award_id" validate:"required"`
})
if err := c.Bind(v); err != nil {
return
}
data, err := svc.GetAwardUpStatus(c, v.AwardID, mid)
if err != nil {
log.Error("svc.GetAwardUpStatus error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}

View File

@@ -0,0 +1,187 @@
package http
import (
"strconv"
"time"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/metadata"
)
//func getUpStatus(c *bm.Context) {
// params := c.Request.Form
// midStr := params.Get("mid")
// mid, err := strconv.ParseInt(midStr, 10, 64)
// if err != nil {
// log.Error("strconv.ParseInt mid(%s) error(%v)", midStr, err)
// c.JSON(nil, ecode.RequestErr)
// return
// }
// if mid <= 0 {
// log.Error("http.getUpStatus mid(%d) <= 0", mid)
// c.JSON(nil, ecode.RequestErr)
// return
// }
//
// data, err := svc.GetUpStatus(c, mid)
// if err != nil {
// log.Error("svc.GetUpStatus mid(%v), error(%v)", err)
// c.JSON(nil, err)
// return
// }
// c.JSON(data, nil)
//}
func getUpStatus(c *bm.Context) {
ip := metadata.String(c, metadata.RemoteIP)
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
data, err := svc.GetUpStatus(c, mid, ip)
if err != nil {
log.Error("svc.GetUpStatus mid(%v), error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func join(c *bm.Context) {
params := c.Request.Form
midStr := params.Get("mid")
mid, err := strconv.ParseInt(midStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt mid(%s) error(%v)", midStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
if mid <= 0 {
log.Error("http.getUpStatus mid(%d) <= 0", mid)
c.JSON(nil, ecode.RequestErr)
return
}
accountType, err := strconv.Atoi(params.Get("account_type"))
if err != nil {
log.Error("strconv.Atoi account_type(%s) error(%v)", accountType, err)
c.JSON(nil, ecode.RequestErr)
return
}
signType, err := strconv.Atoi(params.Get("sign_type"))
if err != nil {
log.Error("strconv.Atoi sign_type(%s) error(%v)", signType, err)
c.JSON(nil, ecode.RequestErr)
return
}
err = svc.JoinAv(c, accountType, mid, signType)
if err != nil {
log.Error("svc.AddUp accountType(%d) mid(%d) signType(%d) error(%v)", accountType, mid, signType, err)
}
c.JSON(nil, err)
}
func upCharge(c *bm.Context) {
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
data, err := svc.GetUpCharge(c, mid, time.Now())
if err != nil {
log.Error("growup svc.GetUpCharge error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func quit(c *bm.Context) {
params := c.Request.Form
midStr := params.Get("mid")
mid, err := strconv.ParseInt(midStr, 10, 64)
if err != nil {
log.Error("strconv.ParseInt mid(%s) error(%v)", midStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
if mid <= 0 {
log.Error("svc.quit mid(%d) <= 0", mid)
c.JSON(nil, ecode.RequestErr)
return
}
reason := params.Get("reason")
err = svc.Quit(c, mid, reason)
if err != nil {
log.Error("svc.Quit mid(%d) error(%v)", mid, err)
}
c.JSON(nil, err)
}
func quit1(c *bm.Context) {
v := new(struct {
Reason string `form:"reason"`
})
if err := c.Bind(v); err != nil {
return
}
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
err := svc.Quit(c, mid, v.Reason)
if err != nil {
log.Error("svc.Quit mid(%d) error(%v)", mid, err)
}
c.JSON(nil, err)
}
func banner(c *bm.Context) {
data, err := svc.GetBanner(c)
if err != nil {
log.Error("svc.Banner error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func upBill(c *bm.Context) {
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
data, err := svc.UpBill(c, mid)
if err != nil {
log.Error("svc.UpBill mid(%d) error(%v)", mid, err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}
func upYear(c *bm.Context) {
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
data, err := svc.UpYear(c, mid)
if err != nil {
log.Error("svc.UpYear mid(%d) error(%v)", mid, err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}

View File

@@ -0,0 +1,90 @@
package http
import (
"sync"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
var (
mapLock sync.Mutex
// Lock withdraw lock
Lock map[int64]*sync.Mutex
)
func getWithdraw(c *bm.Context) {
v := new(struct {
DateVersion string `form:"dateVersion" validate:"required"`
Page int `form:"pageNo" default:"1" validate:"min=1"`
Size int `form:"size" default:"15" validate:"min=1"`
})
if err := c.Bind(v); err != nil {
return
}
from := (v.Page - 1) * v.Size
count, data, err := svc.GetWithdraw(c, v.DateVersion, from, v.Size)
if err != nil {
log.Error("growup svc.upWithdraw error(%v)", err)
c.JSON(nil, err)
return
}
Lock = make(map[int64]*sync.Mutex)
c.JSON(map[string]interface{}{
"page": v.Page,
"total_count": count,
"data": data,
}, nil)
}
func withdrawSuccess(c *bm.Context) {
v := new(struct {
OrderNo int64 `form:"order_no" validate:"required"`
TradeStatus int `form:"trade_status" validate:"required"`
})
if err := c.Bind(v); err != nil {
return
}
lock := getLock(v.OrderNo)
lock.Lock()
defer lock.Unlock()
err := svc.WithdrawSuccess(c, v.OrderNo, v.TradeStatus)
if err != nil {
log.Error("growup svc.WithdrawSuccess error(%v)", err)
}
c.JSON(nil, err)
}
func getLock(orderNo int64) *sync.Mutex {
mapLock.Lock()
defer mapLock.Unlock()
if Lock == nil {
Lock = make(map[int64]*sync.Mutex)
}
if _, ok := Lock[orderNo]; !ok {
Lock[orderNo] = new(sync.Mutex)
}
return Lock[orderNo]
}
func withdrawDetail(c *bm.Context) {
midI, ok := c.Get("mid")
if !ok {
c.JSON(nil, ecode.NoLogin)
return
}
mid, _ := midI.(int64)
data, err := svc.WithdrawDetail(c, mid)
if err != nil {
log.Error("growup svc.WithdrawDetail error(%v)", err)
c.JSON(nil, err)
return
}
c.JSON(data, nil)
}