|
@@ -4,6 +4,7 @@ import (
|
|
|
"errors"
|
|
|
logger "eta/eta_mini_ht_api/common/component/log"
|
|
|
"eta/eta_mini_ht_api/models"
|
|
|
+ "fmt"
|
|
|
"github.com/go-sql-driver/mysql"
|
|
|
"gorm.io/gorm"
|
|
|
"time"
|
|
@@ -141,3 +142,29 @@ func GetOrderByUser(templateUserId int, orderNo string) (order ProductOrder, err
|
|
|
err = db.Model(&ProductOrder{}).Select(detailColumn).Where("template_user_id= ? and order_id=? and is_deleted=0 ", templateUserId, orderNo).First(&order).Error
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func CloseProductOrder(templateUserId int, productOrderNo string) (err error) {
|
|
|
+ db := models.Main()
|
|
|
+ var dbOrder ProductOrder
|
|
|
+ err = db.Model(&ProductOrder{}).Select("*").Where("template_user_id= ? and order_id=? and is_deleted=0 ", templateUserId, productOrderNo).First(&dbOrder).Error
|
|
|
+ if err != nil {
|
|
|
+ if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
|
+ logger.Warn("当前用户[template_user_id:%d]不存在订单编号为%s的订单", templateUserId, productOrderNo)
|
|
|
+ err = errors.New(fmt.Sprintf("当前用户[template_user_id:%d]不存在订单编号为%s的订单", templateUserId, productOrderNo))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ logger.Error("获取订单信息失败:%v", err)
|
|
|
+ }
|
|
|
+ if dbOrder.Status == OrderStatusPaid {
|
|
|
+ logger.Error("订单已支付,无法关闭订单[order_id:%s]", productOrderNo)
|
|
|
+ err = errors.New("订单已支付,无法关闭订单")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if dbOrder.Status == OrderStatusRefund {
|
|
|
+ logger.Error("订单已售后,无法关闭订单[order_id:%s]", productOrderNo)
|
|
|
+ err = errors.New("订单已售后,无法关闭订单")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = db.Model(&ProductOrder{}).Where("template_user_id= ? and order_id=? and is_deleted=0 ", templateUserId, productOrderNo).Update("status", OrderStatusClosed).Error
|
|
|
+ return
|
|
|
+}
|