package guser
import (
"fmt"
"server/common"
"server/db"
utils "server/modules/backend/util"
"server/modules/backend/values"
"server/modules/customer/app"
"github.com/gin-gonic/gin"
"github.com/liangdas/mqant/log"
)
func GetGameUserRechargeHistory ( c * gin . Context ) {
a := app . NewApp ( c )
defer func ( ) {
a . Response ( )
} ( )
req := new ( values . GetGameUserRechargeHistoryReq )
if ! a . S ( req ) {
return
}
resp := values . GetGameUserRechargeHistoryResp { }
var ret [ ] common . RechargeOrder
if req . UID > 0 {
count , err := db . Mysql ( ) . QueryPlayerRWHistory ( & req . UID , nil , req . Page - 1 , req . Num , [ ] int { int ( common . CurrencyEventReCharge ) , int ( common . CurrencyEventActivityWeekCard ) ,
common . CurrencyEventGMRecharge } , req . Start , req . End , & common . RechargeOrder { } , & ret , req . Status )
if err != nil {
log . Error ( "err:%v" , err )
a . Code = values . CodeRetry
return
}
resp . Count = count
for _ , v := range ret {
resp . List = append ( resp . List , values . OneRechargeList { UID : v . UID , Time : v . CreateTime , CallbackTime : v . CallbackTime , CurrencyType : v . CurrencyType ,
Amount : v . Amount , Status : int ( v . Status ) , MyOrderID : v . OrderID , OrderID : v . APIPayID , PayChannel : v . PayChannel , PaySource : v . PaySource } )
}
resp . RechargeCount = db . Mysql ( ) . Count ( & common . RechargeOrder { } , fmt . Sprintf ( "uid = %v and (event = %v or event = %v or event = %v)" , req . UID , common . CurrencyEventReCharge , common . CurrencyEventGMRecharge , common . CurrencyEventActivityWeekCard ) )
re := & common . RechargeInfo { UID : req . UID }
err = db . Mysql ( ) . Get ( re )
if err != nil {
log . Error ( err . Error ( ) )
}
resp . RechargeTotal = re . TotalRecharge
successCount := db . Mysql ( ) . Count ( & common . RechargeOrder { } , fmt . Sprintf ( "uid = %v and (event = %v or event = %v or event = %v) and status = %v" , req . UID , common . CurrencyEventReCharge , common . CurrencyEventGMRecharge , common . CurrencyEventActivityWeekCard , common . StatusROrderPay ) )
resp . RechargeSuccessPer = utils . GetPer ( successCount , resp . RechargeCount )
} else if req . OrderID != "" {
resp . Count , _ = db . Mysql ( ) . QueryList ( req . Page - 1 , req . Num , fmt . Sprintf ( ` event = %v or event = %v and (apipayid = "%v" or orderid = "%v") ` , common . CurrencyEventReCharge , common . CurrencyEventActivityWeekCard , req . OrderID , req . OrderID ) , "create_time desc" , & common . RechargeOrder { } , & ret )
// log.Debug("ret:%v", ret)
for _ , v := range ret {
resp . List = append ( resp . List , values . OneRechargeList { UID : v . UID , Time : v . CreateTime , CallbackTime : v . CallbackTime , CurrencyType : v . CurrencyType ,
MyOrderID : v . OrderID , OrderID : v . APIPayID , Amount : v . Amount , Status : int ( v . Status ) , PayChannel : v . PayChannel , PaySource : v . PaySource } )
}
} else {
a . Code = values . CodeParam
a . Msg = "查询条件有误"
return
}
a . Data = resp
}