package user import ( "duoduo/models/mysql" "duoduo/models/user" "duoduo/tools/app" "github.com/gin-gonic/gin" ) //更新状态发放提现 func TransUpdate(c *gin.Context) { var inData user.TransUpdateInput var trans mysql.TransRecords err := c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } trans.TransStatus = inData.TransStatus trans.PidStatus = inData.PidStatus trans.PayName = inData.PayName trans.UserId = inData.UserId trans.Pay = inData.Pay _, err = trans.Update(inData.Id) if err != nil { app.Error(c, 400, err, err.Error()) return } //已体现总金额 = 提现记录求和 trans.Pid = inData.Pid trans.OpenID = inData.OpenId transAmount, err := trans.GetTransStatus() if err != nil { app.Error(c, 400, err, err.Error()) return } //更新钱包 审核成功更新 已体现金额 审核失败 更新可提现金额 if inData.TransStatus == 3 { //已体现 var wallet mysql.Wallet wallet.WithdrawalAmount = transAmount.Amount wallet.OpenID = inData.OpenId wallet.Pid = inData.Pid wallet.UpdateWithdrawal() } else if inData.TransStatus == 2 { //提现失败 //重新计算可提现金额 var orderAmount mysql.Order var wallet mysql.Wallet var trans2 mysql.TransRecords orderAmount.OpenId = inData.OpenId orderWallet, _ := orderAmount.GetAvailableAmount() //总金额减去提现金额 trans2.OpenID = inData.OpenId trans2.Pid = inData.Pid trans.PidStatus = inData.PidStatus //拼多多 订单 transInfo, err := trans.GetTrans() if err != nil && err.Error() != "record not found" { app.Error(c, 400, err, err.Error()) return } //更新钱包 钱包总和为 123级总和减去提现总额 wallet.AvailableAmount = orderWallet.Amount.Add(orderWallet.Amount1.Add(orderWallet.Amount2)).Sub(transInfo.Amount) wallet.OpenID = inData.OpenId wallet.Pid = inData.Pid wallet.UpdateAvailable() } app.OK(c, nil, app.Success) }