1.修改订购成功回调通知的逻辑;

This commit is contained in:
chenlin 2024-10-22 11:01:16 +08:00
parent d372c69e32
commit aa4a350da7

View File

@ -1,12 +1,14 @@
package migumanage package migumanage
import ( import (
"errors"
"fmt" "fmt"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/go-admin-team/go-admin-core/logger" "github.com/go-admin-team/go-admin-core/logger"
"go-admin/app/admin/models" "go-admin/app/admin/models"
"go-admin/tools" "go-admin/tools"
"go-admin/tools/app" "go-admin/tools/app"
"gorm.io/gorm"
"net/http" "net/http"
"time" "time"
) )
@ -56,26 +58,28 @@ func (e MiGuDeployService) SubscribeNotice(c *gin.Context) {
return return
} }
// 查询订单表是否有记录
var orderInfo models.MgOrder var orderInfo models.MgOrder
err = e.Orm.Table("mg_order").Where("external_order_id = ?", orderId).First(&orderInfo).Error for i := 0; i < 3; i++ {
if err != nil && err.Error() != "record not found" { // 查询订单表是否有记录
logger.Errorf("SubscribeNotice query mg_order err:", err.Error()) err = e.Orm.Table("mg_order").Where("external_order_id = ?", orderId).First(&orderInfo).Error
app.MiGuNoticeOK(c, "failed") if err != nil && err.Error() != "record not found" {
return logger.Errorf("SubscribeNotice query mg_order err:", err.Error())
}
if err.Error() == "record not found" { // 订单表没有记录
if extData == "" { // 没有返回平台订单号
logger.Error("extData is null")
app.MiGuNoticeOK(c, "failed") app.MiGuNoticeOK(c, "failed")
return return
} }
if errors.Is(err, gorm.ErrRecordNotFound) { // 没有查询到记录循环查询3次
time.Sleep(800 * time.Millisecond)
} else if err == nil { // 查询到记录,则跳出循环
break
}
}
if errors.Is(err, gorm.ErrRecordNotFound) { // 订单表没有记录
// 查询交易流水表 // 查询交易流水表
var logInfo models.MgTransactionLog var logInfo models.MgTransactionLog
err = e.Orm.Table("mg_transaction_log"). err = e.Orm.Table("mg_transaction_log").
Where("out_trade_no = ? and verification_code <> ''", extData).First(&logInfo).Error Where("link_id = ?", orderId).First(&logInfo).Error
if err != nil { if err != nil {
logger.Errorf("SubscribeNotice query mg_transaction_log err:", err.Error()) logger.Errorf("SubscribeNotice query mg_transaction_log err:", err.Error())
app.MiGuNoticeOK(c, "failed") app.MiGuNoticeOK(c, "failed")