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