Files
ai_dianshang/server/internal/handler/order_payment_status.go
2025-11-28 15:18:10 +08:00

52 lines
1.1 KiB
Go

package handler
import (
"github.com/gin-gonic/gin"
"dianshang/pkg/response"
)
// GetPaymentStatus 获取订单支付状态
func (h *OrderHandler) GetPaymentStatus(c *gin.Context) {
userID, exists := c.Get("user_id")
if !exists {
response.Unauthorized(c)
return
}
// 从URL路径参数获取订单号
orderNo := c.Param("id")
if orderNo == "" {
response.BadRequest(c, "订单号不能为空")
return
}
// 获取订单详情
order, err := h.orderService.GetOrderByOrderNo(orderNo)
if err != nil {
response.ErrorWithMessage(c, response.ERROR, "订单不存在")
return
}
// 验证订单归属
if order.UserID != userID.(uint) {
response.ErrorWithMessage(c, response.ERROR, "无权限操作此订单")
return
}
// 返回支付状态
status := "unpaid"
if order.Status == 2 || order.Status == 3 || order.Status == 4 || order.Status == 5 || order.Status == 6 {
status = "paid"
} else if order.Status == 7 {
status = "canceled"
} else if order.Status == 9 {
status = "refunded"
}
response.Success(c, gin.H{
"status": status,
"order_no": order.OrderNo,
"order_status": order.Status,
})
}