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, }) }