添加用户提现操作
This commit is contained in:
66
business/q_bida/withdrawal_record_utils.go
Normal file
66
business/q_bida/withdrawal_record_utils.go
Normal file
@@ -0,0 +1,66 @@
|
||||
package q_bida
|
||||
|
||||
import (
|
||||
"git.rosy.net.cn/baseapi/platformapi/alipayapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
)
|
||||
|
||||
// SendPayInfo2Ali 发起支付
|
||||
func SendPayInfo2Ali(payOrder *model.WithdrawalRecord, param *model.AddWithdrawalRecordReq) error {
|
||||
if payOrder.WithdrawalMoney <= alipayapi.MinWithdrawalMoney {
|
||||
aliResult, err := api.AliPayAPI.Withdrawal4AliPay(&alipayapi.WithdrawalParam{
|
||||
OutBizNo: payOrder.OrderID,
|
||||
TransAmount: utils.Int2Float64(payOrder.PayMoney),
|
||||
OrderTitle: "京西生活提现成功",
|
||||
PayeeInfo: &alipayapi.PayeeInfoParam{
|
||||
Identity: param.AlipayAccount,
|
||||
Name: param.AlipayName,
|
||||
},
|
||||
Remark: payOrder.Remark,
|
||||
})
|
||||
|
||||
if err != nil || aliResult.Status != "SUCCESS" {
|
||||
payOrder.OrderStatus = model.WithdrawalRecordPayFail // 支付失败
|
||||
} else {
|
||||
payOrder.OrderStatus = model.WithdrawalRecordPaySuccess // 支付成功
|
||||
payOrder.AlipayOrderId = aliResult.OrderId
|
||||
payOrder.PayTime = utils.Str2Time(aliResult.TransDate)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// UpdateUserMoney 修改数据库
|
||||
func UpdateUserMoney(payOrder *model.WithdrawalRecord, userBill *model.UserBill) error {
|
||||
// 如果支付成功
|
||||
db := dao.GetDB()
|
||||
tx, _ := dao.Begin(db)
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
panic(r)
|
||||
}
|
||||
dao.Commit(db, tx)
|
||||
}()
|
||||
|
||||
switch payOrder.OrderStatus {
|
||||
case model.WithdrawalRecordPaySuccess:
|
||||
userBill.AccountBalance = userBill.AccountBalance - payOrder.WithdrawalMoney
|
||||
if _, err := dao.UpdateEntityTx(tx, &userBill, "AccountBalance"); err != nil {
|
||||
dao.Rollback(db, tx)
|
||||
return err
|
||||
}
|
||||
if err := dao.CreateEntityTx(tx, payOrder); err != nil {
|
||||
dao.Rollback(db, tx)
|
||||
return err
|
||||
}
|
||||
case model.WithdrawalWaitRecord, model.WithdrawalRecordFail, model.WithdrawalRecordPayFail:
|
||||
if err := dao.CreateEntityTx(tx, payOrder); err != nil {
|
||||
dao.Rollback(db, tx)
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user