@ -635,45 +635,52 @@ func ActivityFirstRechargeBackInfo(c *gin.Context) {
conf := call . GetConfigActivityFirstRechargeBack ( )
a . Data = resp
data := call . GetUserFirstRechargeBackData ( a . UID )
resp . NeedRechargeAmount = conf . MinRecharge / common . DecimalDigits
resp . ProductList = call . GetConfigPayProductByActivityID ( common . ActivityIDFirstRechargeBack )
resp . Recharge = data . Amount
resp . PayAmount = data . Amount
rechargeInfo := call . GetRechargeInfo ( a . UID )
resp . MinRechargeAmount = conf . MinRecharge
resp . TotalRechargeAmount = rechargeInfo . TotalRecharge
resp . BackPer = conf . MaxBack
resp . ChannelList = call . GetConfigPayChannelsByID ( common . CurrencyINR )
resp . RechargeAmount = data . Amount
p , _ := call . GetUserXInfo ( a . UID , "birth" )
resp . DrawTime = p . Birth + conf . CD
rechargeInfo := call . GetRechargeInfo ( a . UID )
if data . RechargeTime == 0 {
resp . CanRecharge = true
now := time . Now ( )
if v := p . Birth + conf . CD - now . Unix ( ) ; v > 0 {
resp . Countdown = v
}
if resp . MinRechargeAmount > resp . TotalRechargeAmount { // 未解锁给默认值
resp . BackAmount = 6528600 + call . GetFirstRechargeBackSumAmount ( )
}
if data . RechargeTime == 0 { // 无充值
return
}
if data . RewardTime > 0 { // 已领取
resp . Draw = 2
return
}
if data . Reward == 0 {
if data . Reward == 0 { // 计算奖励
val := data . Amount - call . GetUserCurrencyTotal ( a . UID , common . CurrencyINR ) - rechargeInfo . WithdrawingCash
if val < 0 {
val = 0
}
val = val * conf . MaxBack / 100
now := time . Now ( ) . Unix ( )
if now >= p . Birth + conf . CD && data . Reward == 0 && data . RechargeTime == 0 {
resp . BackAmount = val
if resp . Countdown == 0 { // 活动结束更新奖励
update := map [ string ] interface { } {
"reward" : val ,
}
if val == 0 {
data . RechargeTime = now
update [ "reward_time" ] = now
update [ "reward_time" ] = now . Unix ( )
}
db . Mysql ( ) . Update ( & common . ActivityFirstRechargeBackData { UID : a . UID } , update )
}
data . Reward = val
} else {
resp . BackAmount = data . Reward
}
if data . RewardTime > 0 {
resp . Draw = true
if resp . Countdown == 0 && resp . BackAmount > 0 {
resp . Draw = 1
}
resp . Back = data . Reward
if ! resp . Draw {
if resp . Draw == 1 {
//call.PushRed(a.UID, pb.RedPointModule_RedPointFirstRecharge, 1)
}
return
}
func ActivityFirstRechargeBackDraw ( c * gin . Context ) {
@ -684,12 +691,20 @@ func ActivityFirstRechargeBackDraw(c *gin.Context) {
if ! a . CheckActivityExpire ( common . ActivityIDFirstRechargeBack ) {
return
}
if ! db . Redis ( ) . Lock ( common . GetRedisKeyFirstRechargeBack ( a . UID ) ) {
a . Code = values . CodeRetry
return
}
defer func ( ) {
db . Redis ( ) . UnLock ( common . GetRedisKeyFirstRechargeBack ( a . UID ) )
} ( )
resp := new ( values . ActivityFirstRechargeBackDrawResp )
a . Data = resp
conf := call . GetConfigActivityFirstRechargeBack ( )
data := call . GetUserFirstRechargeBackData ( a . UID )
p , _ := call . GetUserXInfo ( a . UID , "birth" )
if time . Now ( ) . Unix ( ) - p . Birth < conf . CD {
now := time . Now ( )
if now . Unix ( ) - p . Birth < conf . CD {
log . Error ( "not ActivityFirstRechargeBackDraw time:%+v" , data )
a . Code = values . CodeRetry
a . Msg = "Unarrived time"
@ -700,12 +715,20 @@ func ActivityFirstRechargeBackDraw(c *gin.Context) {
a . Msg = "Award claimed"
return
}
rows , err := db . Mysql ( ) . UpdateRes ( & common . ActivityFirstRechargeBackData { UID : a . UID } , map [ string ] interface { } { "reward_time" : time . Now ( ) . Unix ( ) } )
rechargeInfo := call . GetRechargeInfo ( a . UID )
val := data . Amount - call . GetUserCurrencyTotal ( a . UID , common . CurrencyINR ) - rechargeInfo . WithdrawingCash
if val < 0 {
val = 0
}
val = val * conf . MaxBack / 100
rows , err := db . Mysql ( ) . UpdateRes ( & common . ActivityFirstRechargeBackData { UID : a . UID } , map [ string ] interface { } {
"reward_time" : now . Unix ( ) ,
"reward" : val ,
} )
if err != nil || rows == 0 {
a . Code = values . CodeRetry
return
}
val := data . Reward
_ , err = call . UpdateCurrencyPro ( & common . UpdateCurrency {
CurrencyBalance : & common . CurrencyBalance {
UID : a . UID ,
@ -713,6 +736,7 @@ func ActivityFirstRechargeBackDraw(c *gin.Context) {
Type : common . CurrencyINR ,
Value : val ,
Event : common . CurrencyEventActivityFirstRechargeBack ,
NeedBet : call . GetConfigCurrencyResourceNeedBet ( common . CurrencyResourceBonus , val ) ,
} ,
} )
if err != nil {