|
|
|
|
@ -159,6 +159,44 @@ func GetPayWayWeight(all []*common.ConfigPayChannels) PayWay { |
|
|
|
|
// return GetPayWayWeight(GetValidPayChannels(amount))
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
func WithdrawFail(w PayWay) { |
|
|
|
|
failWeight := config.GetConfig().Pay.PayFailWeight |
|
|
|
|
if failWeight <= 0 { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
PayWeightLock.Lock() |
|
|
|
|
for _, v := range call.ConfigPayChannels { |
|
|
|
|
if v.ChannelID == int(w) { |
|
|
|
|
v.PayPer -= failWeight |
|
|
|
|
break |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
sort.Slice(call.ConfigPayChannels, func(i, j int) bool { |
|
|
|
|
return call.ConfigPayChannels[i].PayPer > call.ConfigPayChannels[j].PayPer |
|
|
|
|
}) |
|
|
|
|
PayWeightLock.Unlock() |
|
|
|
|
AddWithdrawChannel(int(w), -failWeight) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func WithdrawSuccess(w PayWay) { |
|
|
|
|
successWeight := config.GetConfig().Pay.PaySuccessWeight |
|
|
|
|
if successWeight <= 0 { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
PayWeightLock.Lock() |
|
|
|
|
for _, v := range call.ConfigPayChannels { |
|
|
|
|
if v.ChannelID == int(w) { |
|
|
|
|
v.PayPer += successWeight |
|
|
|
|
break |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
sort.Slice(call.ConfigPayChannels, func(i, j int) bool { |
|
|
|
|
return call.ConfigPayChannels[i].PayPer > call.ConfigPayChannels[j].PayPer |
|
|
|
|
}) |
|
|
|
|
PayWeightLock.Unlock() |
|
|
|
|
AddWithdrawChannel(int(w), successWeight) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func PayFail(w PayWay) { |
|
|
|
|
failWeight := config.GetConfig().Pay.PayFailWeight |
|
|
|
|
if failWeight <= 0 { |
|
|
|
|
@ -404,6 +442,12 @@ func Post(req *http.Request, ret interface{}) int { |
|
|
|
|
return 0 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func AddWithdrawChannel(p int, amount int) { |
|
|
|
|
if err := db.Mysql().C().Model(&common.ConfigWithdrawChannels{}).Where("channel_id = ?", p).Updates(map[string]interface{}{"withdraw_per": gorm.Expr("withdraw_per + ?", amount)}).Error; err != nil { |
|
|
|
|
log.Error("err:%v", err) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func AddPayChannel(p int, amount int) { |
|
|
|
|
if err := db.Mysql().C().Model(&common.ConfigPayChannels{}).Where("channel_id = ?", p).Updates(map[string]interface{}{"pay_per": gorm.Expr("pay_per + ?", amount)}).Error; err != nil { |
|
|
|
|
log.Error("err:%v", err) |
|
|
|
|
|