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.
68 lines
2.0 KiB
68 lines
2.0 KiB
package handler |
|
|
|
import ( |
|
"server/call" |
|
"server/common" |
|
"server/db" |
|
"server/modules/web/app" |
|
"server/modules/web/values" |
|
"time" |
|
|
|
"github.com/gin-gonic/gin" |
|
"github.com/liangdas/mqant/log" |
|
"github.com/olivere/elastic/v7" |
|
) |
|
|
|
func BalanceHistory(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
req := new(values.BalanceHisReq) |
|
if !a.S(req) { |
|
return |
|
} |
|
if req.PageSize > 100 { |
|
log.Error("balance req num:%v", req.PageSize) |
|
req.PageSize = 100 |
|
} |
|
// ret := []common.CurrencyBalance{} |
|
// var count int64 |
|
// var err error |
|
// if req.Start != nil && req.End != nil { |
|
// if *req.Start > *req.End { |
|
// a.Code = values.CodeParam |
|
// return |
|
// } |
|
// count, err = db.Mysql().QueryCurrencyHistory(req.Page, req.Num, &common.CurrencyBalance{Uid: a.UID}, &ret, |
|
// fmt.Sprintf("uid = %v and time > %v and time < %v", a.UID, *req.Start, *req.End), "id desc") |
|
// } else { |
|
// count, err = db.Mysql().QueryCurrencyHistory(req.Page, req.Num, &common.CurrencyBalance{Uid: a.UID}, &ret, |
|
// fmt.Sprintf("uid = %v", a.UID), "id desc") |
|
// } |
|
// if err != nil { |
|
// log.Error("err:%v", err) |
|
// a.Code = values.CodeRetry |
|
// return |
|
// } |
|
start := time.Now().Unix() - 30*24*60*60 // 最大30天 |
|
resp := values.BalanceHisResp{} |
|
q := elastic.NewBoolQuery() |
|
// q.MustNot(elastic.NewMatchQuery("event", common.CurrencyEventGameBetReturn), elastic.NewMatchQuery("event", common.CurrencyEventGameBet), |
|
// elastic.NewMatchQuery("event", common.CurrencyEventGameSettleReturn)) |
|
q.Filter(elastic.NewRangeQuery("uid").Gte(a.UID), elastic.NewRangeQuery("uid").Lt(a.UID+1)) |
|
if req.Type == 1 { |
|
q.Filter(elastic.NewRangeQuery("value").Gt(0)) |
|
} else if req.Type == 2 { |
|
q.Filter(elastic.NewRangeQuery("value").Lt(0)) |
|
} |
|
player, _ := call.GetUserXInfo(a.UID, "birth") |
|
if start < player.Birth { |
|
start = player.Birth |
|
} |
|
q.Filter(elastic.NewRangeQuery("time").Gte(start)) |
|
|
|
// q.Must(elastic.NewMatchQuery("uid", a.UID)) |
|
resp.Count, _ = db.ES().QueryList(common.ESIndexBalance, req.Page, req.PageSize, q, &resp.List, "id", false) |
|
a.Data = resp |
|
}
|
|
|