From 9cc17ff8df13fa2048faacc2564e852c92fbd2b5 Mon Sep 17 00:00:00 2001 From: mofangmin Date: Tue, 20 Aug 2024 20:10:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- call/pay.go | 3 ++- common/activity.go | 1 + modules/web/handler/activity.go | 13 ++++++++----- modules/web/values/activity.go | 2 ++ 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/call/pay.go b/call/pay.go index 8c5d969..ac0c4f6 100644 --- a/call/pay.go +++ b/call/pay.go @@ -531,8 +531,9 @@ func PayActivity(r *common.RechargeOrder, notCharge bool, user *common.PlayerDBI func ActivityFirstRechargeBack(r *common.RechargeOrder) { if IsActivityValid(common.ActivityIDFirstRechargeBack) { + conf := GetConfigActivityFirstRechargeBack() rechargeBackData := GetUserFirstRechargeBackData(r.UID) - if rechargeBackData.RechargeTime == 0 { + if rechargeBackData.RechargeTime == 0 && r.Amount >= conf.MinRecharge { db.Mysql().Create(&common.ActivityFirstRechargeBackData{UID: r.UID, RechargeTime: time.Now().Unix(), Amount: r.Amount}) } } diff --git a/common/activity.go b/common/activity.go index e0e0c0b..9254991 100644 --- a/common/activity.go +++ b/common/activity.go @@ -210,6 +210,7 @@ type ActivityFirstRechargeBackData struct { RechargeTime int64 `gorm:"column:recharge_time;type:bigint(20);default:0;comment:首次充值时间"` Amount int64 `gorm:"column:amount;type:bigint(20);default:0;comment:总充值金额"` Lost int64 `gorm:"column:lost;type:bigint(20);default:0;comment:活动时间内总损失"` + RewardTime int64 `gorm:"column:reward_time;type:bigint(20);default:0;comment:领取时间"` } func (c *ActivityFirstRechargeBackData) TableName() string { diff --git a/modules/web/handler/activity.go b/modules/web/handler/activity.go index 413d0ec..c045b7d 100644 --- a/modules/web/handler/activity.go +++ b/modules/web/handler/activity.go @@ -663,6 +663,7 @@ func ActivityFirstRechargeBackInfo(c *gin.Context) { defer func() { a.Response() }() + a.GetUID() if !a.CheckActivityExpire(common.ActivityIDFirstRechargeBack) { return } @@ -671,21 +672,23 @@ func ActivityFirstRechargeBackInfo(c *gin.Context) { a.Data = resp data := call.GetUserFirstRechargeBackData(a.UID) log.Debug("ActivityFirstRechargeBackInfo:%+v", data) - if data.RechargeTime == 0 { - resp.CanRecharge = true - } resp.ProductList = call.GetConfigPayProductByActivityID(common.ActivityIDFirstRechargeBack) resp.Recharge = data.Amount resp.BackPer = conf.MaxBack - if data.Amount < conf.MinRecharge { + if data.RechargeTime == 0 { + resp.CanRecharge = true return } + if data.RewardTime > 0 { + resp.Draw = true + } val := data.Amount - call.GetUserCurrencyTotal(a.UID, common.CurrencyINR) if val < 0 { val = 0 } val = val * conf.MaxBack / 100 resp.Back = val + resp.PayAmount = rand.Int63n(1000000) + 10000 resp.DrawTime = data.RechargeTime + common.ActivityFirstRechargeBackTime } @@ -708,7 +711,7 @@ func ActivityFirstRechargeBackDraw(c *gin.Context) { a.Code = values.CodeRetry return } - rows, err := db.Mysql().UpdateRes(&common.ActivityFirstRechargeBackData{UID: a.UID}, map[string]interface{}{"lost": 0}) + rows, err := db.Mysql().UpdateRes(&common.ActivityFirstRechargeBackData{UID: a.UID}, map[string]interface{}{"lost": 0, "reward_time": time.Now().Unix()}) if err != nil || rows == 0 { a.Code = values.CodeRetry return diff --git a/modules/web/values/activity.go b/modules/web/values/activity.go index 671e94d..02021a4 100644 --- a/modules/web/values/activity.go +++ b/modules/web/values/activity.go @@ -48,7 +48,9 @@ type ActivityFirstRechargeBackInfoResp struct { Back int64 BackPer int64 CanRecharge bool + PayAmount int64 // 支付金额 DrawTime int64 // 领取时间 + Draw bool // 是否领取 ProductList []*common.ConfigPayProduct }