package guser import ( "fmt" "server/common" "server/db" "server/modules/backend/models" utils "server/modules/backend/util" "server/modules/backend/values" "server/modules/customer/app" "github.com/gin-gonic/gin" "github.com/liangdas/mqant/log" ) func GetGameUserWithdrawHistory(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() req := new(values.GetGameUserWithdrawHistoryReq) if !a.S(req) { return } resp := values.GetGameUserWithdrawHistoryResp{} var ret []common.WithdrawOrder if req.UID > 0 { count, err := db.Mysql().QueryPlayerRWHistory(&req.UID, nil, req.Page-1, req.Num, []int{int(common.CurrencyEventWithDraw)}, req.Start, req.End, &common.WithdrawOrder{}, &ret) 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.OneWithdrawList{UID: v.UID, Time: v.CreateTime, PayAccount: v.PayAccount, Amount: v.Amount, Status: int(v.Status), OrderID: v.APIPayID, MyOrderID: v.OrderID, FailReason: v.FailReason, OrderCreateAt: v.CreateTime, AuditTime: 0, CallbackTime: v.CallbackTime, Channel: v.PayChannel}) } resp.WithdrawCount = db.Mysql().Count(&common.WithdrawOrder{}, fmt.Sprintf("uid = %v and event = %v", req.UID, common.CurrencyEventWithDraw)) re := &common.RechargeInfo{UID: req.UID} err = db.Mysql().Get(re) if err != nil { log.Error(err.Error()) } resp.WithdrawTotal = re.TotalWithdraw successCount := db.Mysql().Count(&common.WithdrawOrder{}, fmt.Sprintf("uid = %v and event = %v and status = %v", req.UID, common.CurrencyEventWithDraw, common.StatusROrderFinish)) resp.WithdrawSuccessPer = utils.GetPer(successCount, resp.WithdrawCount) resp.WithdrawCash = db.Mysql().Sum(&common.WithdrawOrder{}, fmt.Sprintf("uid = %v and event = %v and status = %v", req.UID, common.CurrencyEventWithDraw, common.StatusROrderFinish), "withdraw_cash") resp.WithdrawTax = resp.WithdrawCash - resp.WithdrawTotal*100 resp.RechargeTotal = models.GetRechargeTotalByUid(&req.UID) resp.WithDrawPer = utils.GetPer(resp.WithdrawTotal, resp.RechargeTotal) } else if req.Data != "" { resp.Count, _ = db.Mysql().QueryList(req.Page-1, req.Num, fmt.Sprintf(`event = %v and (apipayid = "%v" or orderid = '%v')`, common.CurrencyEventWithDraw, req.Data, req.Data), "created_at desc", &common.WithdrawOrder{}, &ret) for _, v := range ret { resp.List = append(resp.List, values.OneWithdrawList{UID: v.UID, Time: v.CreateTime, PayAccount: v.PayAccount, Amount: v.Amount, Status: int(v.Status), OrderID: v.APIPayID, MyOrderID: v.OrderID, FailReason: v.FailReason, OrderCreateAt: v.CreateTime, AuditTime: 0, CallbackTime: v.CallbackTime, Channel: v.PayChannel}) } } else { a.Code = values.CodeParam a.Msg = "查询条件有误" return } a.Data = resp }