1、优化自动退保证金逻辑,如果部分退款成功也需要添加记录;

This commit is contained in:
chenlin 2025-05-14 16:14:43 +08:00
parent 52d1a32215
commit 50cf0585b0

View File

@ -605,6 +605,7 @@ func NotarizeUserDepositRefundByID(depositRefundRecordId uint32) error {
//if userInfo.Deposit == 80 {
nTempDeposit := userInfo.Deposit // 用户押金
fmt.Println("******userInfo.Deposit is:******", nTempDeposit)
var results []*pay.WxTransferResp
if userInfo.Deposit == 60000 {
for i := 0; i < 2; i++ {
transfer, err = pay.Transfer(userInfo.Deposit/2, userInfo.WxOpenID, fmt.Sprintf("押金退款(共2次到账)%d/2", i+1))
@ -624,11 +625,29 @@ func NotarizeUserDepositRefundByID(depositRefundRecordId uint32) error {
if err != nil {
logger.Error("pay.Transfer 600 update deposit err:", logger.Field("err", err))
}
if len(results) != 0 {
lastTransfer := results[len(results)-1]
fundRecord := &models.FundRecord{
Uid: depositRefund.Uid,
FundType: models.FundTypeDepositRefund,
Amount: int64(userInfo.Deposit-nTempDeposit) * (-1),
OutTradeNo: lastTransfer.PartnerTradeNo,
PaymentNo: lastTransfer.PaymentNo,
Status: 2,
Remark: "退还押金",
}
err = orm.Eloquent.Create(fundRecord).Error
if err != nil {
logger.Error("create fund record err:", logger.Field("err", err))
}
}
}
return errors.New("押金退款失败,请检查余额")
}
nTempDeposit -= 300
nTempDeposit -= 30000
results = append(results, transfer)
}
} else if userInfo.Deposit == 150000 {
for i := 0; i < 5; i++ {
@ -649,11 +668,29 @@ func NotarizeUserDepositRefundByID(depositRefundRecordId uint32) error {
if err != nil {
logger.Error("pay.Transfer 1500 update deposit err:", logger.Field("err", err))
}
if len(results) != 0 {
lastTransfer := results[len(results)-1]
fundRecord := &models.FundRecord{
Uid: depositRefund.Uid,
FundType: models.FundTypeDepositRefund,
Amount: int64(userInfo.Deposit-nTempDeposit) * (-1),
OutTradeNo: lastTransfer.PartnerTradeNo,
PaymentNo: lastTransfer.PaymentNo,
Status: 2,
Remark: "退还押金",
}
err = orm.Eloquent.Create(fundRecord).Error
if err != nil {
logger.Error("create fund record err:", logger.Field("err", err))
}
}
}
return errors.New("押金退款失败,请检查余额")
}
nTempDeposit -= 300
nTempDeposit -= 30000
results = append(results, transfer)
}
} else if userInfo.Deposit == 120000 {
for i := 0; i < 4; i++ {
@ -674,11 +711,29 @@ func NotarizeUserDepositRefundByID(depositRefundRecordId uint32) error {
if err != nil {
logger.Error("pay.Transfer 1200 update deposit err:", logger.Field("err", err))
}
if len(results) != 0 {
lastTransfer := results[len(results)-1]
fundRecord := &models.FundRecord{
Uid: depositRefund.Uid,
FundType: models.FundTypeDepositRefund,
Amount: int64(userInfo.Deposit-nTempDeposit) * (-1),
OutTradeNo: lastTransfer.PartnerTradeNo,
PaymentNo: lastTransfer.PaymentNo,
Status: 2,
Remark: "退还押金",
}
err = orm.Eloquent.Create(fundRecord).Error
if err != nil {
logger.Error("create fund record err:", logger.Field("err", err))
}
}
}
return errors.New("押金退款失败,请检查余额")
}
nTempDeposit -= 300
nTempDeposit -= 30000
results = append(results, transfer)
}
} else if userInfo.Deposit == 90000 {
for i := 0; i < 3; i++ {
@ -699,11 +754,29 @@ func NotarizeUserDepositRefundByID(depositRefundRecordId uint32) error {
if err != nil {
logger.Error("pay.Transfer 900 update deposit err:", logger.Field("err", err))
}
if len(results) != 0 {
lastTransfer := results[len(results)-1]
fundRecord := &models.FundRecord{
Uid: depositRefund.Uid,
FundType: models.FundTypeDepositRefund,
Amount: int64(userInfo.Deposit-nTempDeposit) * (-1),
OutTradeNo: lastTransfer.PartnerTradeNo,
PaymentNo: lastTransfer.PaymentNo,
Status: 2,
Remark: "退还押金",
}
err = orm.Eloquent.Create(fundRecord).Error
if err != nil {
logger.Error("create fund record err:", logger.Field("err", err))
}
}
}
return errors.New("押金退款失败,请检查余额")
}
nTempDeposit -= 300
nTempDeposit -= 30000
results = append(results, transfer)
}
} else if userInfo.Deposit == 30000 {
transfer, err = pay.Transfer(userInfo.Deposit, userInfo.WxOpenID, "押金退款")