package v1 import ( "git.lzcwy.cn/zhengchiliu/zt-closet-manage-backend/internal/dto" "git.lzcwy.cn/zhengchiliu/zt-closet-manage-backend/internal/middleware" "git.lzcwy.cn/zhengchiliu/zt-closet-manage-backend/internal/service" "git.lzcwy.cn/zhengchiliu/zt-closet-manage-backend/pkg/app" "git.lzcwy.cn/zhengchiliu/zt-closet-manage-backend/pkg/errcode" "github.com/gin-gonic/gin" ) // OrderHandler 订单与退款管理接口。 type OrderHandler struct { svc *service.OrderService } // NewOrderHandler 创建订单 handler。 func NewOrderHandler() *OrderHandler { return &OrderHandler{svc: service.NewOrderService()} } // List 订单列表。 func (h *OrderHandler) List(c *gin.Context) { response := app.NewResponse(c) var request dto.OrderListRequest if err := c.ShouldBindQuery(&request); err != nil { response.ToErrorResponse(errcode.InvalidParams.WithDetails(err.Error())) return } out, e := h.svc.List(c.Request.Context(), &request) if e != nil { response.ToErrorResponse(e) return } response.ToResponse(out) } // Get 订单详情。 func (h *OrderHandler) Get(c *gin.Context) { response := app.NewResponse(c) out, e := h.svc.Get(c.Request.Context(), c.Param("orderNo")) if e != nil { response.ToErrorResponse(e) return } response.ToResponse(out) } // RefundList 退款单列表。 func (h *OrderHandler) RefundList(c *gin.Context) { response := app.NewResponse(c) var request dto.RefundListRequest if err := c.ShouldBindQuery(&request); err != nil { response.ToErrorResponse(errcode.InvalidParams.WithDetails(err.Error())) return } out, e := h.svc.RefundList(c.Request.Context(), &request) if e != nil { response.ToErrorResponse(e) return } response.ToResponse(out) } // RefundApprove 退款审核通过。 func (h *OrderHandler) RefundApprove(c *gin.Context) { response := app.NewResponse(c) var request dto.RefundAuditRequest if err := c.ShouldBindJSON(&request); err != nil { response.ToErrorResponse(errcode.InvalidParams.WithDetails(err.Error())) return } adminID, _ := middleware.GetAdminID(c.Request.Context()) if e := h.svc.RefundApprove(c.Request.Context(), adminID, c.Param("refundNo"), &request); e != nil { response.ToErrorResponse(e) return } response.ToResponse(nil) } // RefundReject 退款审核驳回。 func (h *OrderHandler) RefundReject(c *gin.Context) { response := app.NewResponse(c) var request dto.RefundAuditRequest if err := c.ShouldBindJSON(&request); err != nil { response.ToErrorResponse(errcode.InvalidParams.WithDetails(err.Error())) return } adminID, _ := middleware.GetAdminID(c.Request.Context()) if e := h.svc.RefundReject(c.Request.Context(), adminID, c.Param("refundNo"), &request); e != nil { response.ToErrorResponse(e) return } response.ToResponse(nil) }