123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- 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)
- }
|