提现权重动态变化

fix/release
mofangmin 1 year ago
parent 54df366cd8
commit d647df7367
  1. 9
      call/pay.go
  2. 2
      modules/pay/base/callback.go
  3. 44
      modules/pay/values/values.go

@ -381,7 +381,7 @@ func WithdrawCallback(order *common.WithdrawOrder) error {
}
}
// util.Go(func() {
// SendRealWithdrawMail(order)
// SendRealWithdrawMail(order)
// })
}
if err != nil {
@ -464,13 +464,6 @@ func ReturnBackWithdraw(or *common.WithdrawOrder, originStatus, status uint8, pa
tx.Rollback()
return err
}
// 失败的时候才发送邮件
// if status == common.StatusROrderFail {
// util.Go(func() {
// SendWithdrawMail(uid, MailWithdrawType3)
// SendRealWithdrawMail(or)
// })
// }
return nil
}

@ -95,6 +95,8 @@ func (b *Base) WithdrawCallback(c *gin.Context) {
}
if !success {
values.WithdrawAmount(values.PayWay(or.PayChannel), false, or.Amount*100)
} else {
values.WithdrawSuccess(values.PayWay(or.PayChannel))
}
}

@ -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)

Loading…
Cancel
Save