package rechargectrl import ( "sync" "91porn-server/app/proto" "91porn-server/app/service/rechargeser" "91porn-server/common" "91porn-server/common/daichong" "91porn-server/common/stderr" "91porn-server/models/commod" "91porn-server/models/v/rchgamtmod" "91porn-server/models/v/rchgordmod" "github.com/gin-gonic/gin" ) // NewRecharge doc // @Summary 充值接口 充值完成后会产生一条充值流水 // @Description 充值接口 充值完成后会产生一条充值流水 // @Tags 钱包 // @Accept json // @Produce json // @Param request formData rechargeser.RechargeRequest true "request" // @Success 200 {string} json "{"msg": "操作成功"}" // @Failure 400 {string} json "{"msg": "操作失败"}" // @Router /api/app/mine/topay [post] func NewRecharge(c *gin.Context) { var ( err error in = new(rechargeser.RechargeRequest) payUrl, mode string ) in.UID, err = common.GetUID(c) if err != nil { common.ServeJSON(c, stderr.ErrNoToken, err) return } in.IP = common.GetIP(c) if err = c.ShouldBindJSON(&in); err != nil { common.ServeJSON(c, stderr.ErrParamError, err) return } ua, _ := common.GetUA(c) // 客户端下单不参与活动抵扣券(deduct=nil),couponId/deductAmount 仅活动服 HMAC 入口可注入 if payUrl, mode, err = rechargeser.Recharge(c, in, ua, nil); err != nil { common.ServeJSON(c, stderr.RechargeFaile, err.Error()) return } common.ServeJSON(c, stderr.Success, gin.H{ "payUrl": payUrl, "mode": mode, }) } // GetRecHistory doc // @Summary 获取充值记录 // @Description 根据条件查询充值记录 // @Tags 钱包 // @Accept mpfd,json // @Produce json,html // @Param pageNumber formData int true "页码" // @Param pageSize formData int true "条数" // @Success 200 {string} json "{"msg": "操作成功"}" // @Failure 400 {string} json "{"msg": "操作失败"}" // @Router /mine/rchg/order [get] func GetRecHistory(ctx *gin.Context) { uid, err := common.GetUID(ctx) if err != nil { common.ServeJSON(ctx, stderr.ErrNoToken, err) return } var arg struct { commod.Page } if err = ctx.ShouldBind(&arg); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, err) return } total, data, hasNext, err := rchgordmod.FindMyOrders(uid, arg.PageSize, arg.PageNumber) if err != nil { common.ServeJSON(ctx, stderr.ErrNetWorkBusy, err.Error()) return } common.ServeJSON(ctx, stderr.Success, gin.H{ "total": total, "orders": data, "list": data, "hasNext": hasNext, }) } // GetRechargeType doc // @Summary 获取充值类型 // @Description 获取充值类型 // @Tags 钱包 // @Accept mpfd,json // @Produce json,html // @Param typeID query string false "结束时间" // @Success 200 {string} json "{"msg": "操作成功"}" // @Failure 400 {string} json "{"msg": "操作失败"}" // @Router /mine/rechargeTypeList [get] func GetRechargeType(ctx *gin.Context) { ua, _ := common.GetUA(ctx) var ( goldRes []*rchgamtmod.GoldRes dai daichong.ChatResp goldResErrpr error ) wg := sync.WaitGroup{} wg.Add(1) common.Go(func() { defer wg.Done() goldRes, goldResErrpr = rechargeser.GetPayChannel_new(ctx, ua.SysType, 0) }) wg.Wait() if goldResErrpr != nil { common.ServeJSON(ctx, stderr.PayBusy, goldResErrpr.Error()) return } common.ServeJSON(ctx, stderr.Success, gin.H{ "list": goldRes, "daichong": dai.Data, }) } // CurrencyList doc // @Summary 获取充值金额列表 // @Description 获取充值金额列表 // @Tags 钱包 // @Accept mpfd,json // @Produce json,html // @Param request query rechargeser.CurrencyListRequest true "类型1-金币 2-游戏币 3-果币" // @Success 200 {object} proto.CurryenyResp "{"msg": "操作成功"}" // @Failure 400 {string} json "{"msg": "操作失败"}" // @Router /api/app/mine/currencys [get] func CurrencyList(c *gin.Context) { uid, err := common.GetUID(c) if err != nil { common.ServeJSON(c, stderr.ErrParamError, nil) return } ua, err := common.GetUA(c) if err != nil { common.ServeJSON(c, stderr.ErrParamError, nil) return } var ( args rechargeser.CurrencyListRequest wg sync.WaitGroup dcChat daichong.ChatResp code stderr.Code data []*proto.CurrencyListResponse ) if err := c.ShouldBindQuery(&args); err != nil { common.ServeJSON(c, stderr.ErrParamError, nil) return } wg.Add(2) common.Go(func() { defer wg.Done() data, code = rechargeser.New_CurrencyList(c, uid, ua.SysType, commod.CurrencyType(args.Type)) }) common.Go(func() { defer wg.Done() //var productType int //if commod.CurrencyType(args.Type) == commod.GameCoin { // productType = 1 //} //dcChat, _ = daichongser.NewTakeChat(c, uid, productType) dcChat = daichong.ChatResp{} }) wg.Wait() if code != stderr.Success { common.ServeJSON(c, code, nil) return } common.ServeJSON(c, stderr.Success, proto.CurryenyResp{ Chat: dcChat.Data, List: data, }) } // GetUserTransactions doc // @Summary 获取充值记录 // @Description 根据条件查询充值记录 // @Tags 钱包 // @Accept mpfd,json // @Produce json,html // @Param pageNumber formData int true "页码" // @Param pageSize formData int true "条数" // @Success 200 {string} json "{"msg": "操作成功"}" // @Failure 400 {string} json "{"msg": "操作失败"}" // @Router /app/mine/transaction [get] func GetUserTransactions(c *gin.Context) { uid, err := common.GetUID(c) if err != nil { common.ServeJSON(c, stderr.ErrParamError, nil) return } var arg commod.Page if err = c.ShouldBind(&arg); err != nil { common.ServeJSON(c, stderr.ErrParamError, err) return } total, data, hasNext, err := rechargeser.GetUserTransactionDetails(uid, arg.PageNumber, arg.PageSize) if err != nil { common.ServeJSON(c, stderr.ErrNetWorkBusy, err.Error()) return } common.ServeJSON(c, stderr.Success, gin.H{ "total": total, "list": data, "hasNext": hasNext, }) }