package app import ( "git.echol.cn/loser/lckt/global" "git.echol.cn/loser/lckt/model/app" "git.echol.cn/loser/lckt/model/app/request" r "git.echol.cn/loser/lckt/model/common/response" "git.echol.cn/loser/lckt/utils/user_jwt" "git.echol.cn/loser/lckt/utils/wechat" "github.com/gin-gonic/gin" "go.uber.org/zap" ) type OrderApi struct{} // CreateOrder APP新建订单 func (o *OrderApi) CreateOrder(c *gin.Context) { var p app.Order if err := c.ShouldBind(&p); err != nil { global.GVA_LOG.Error("支付订单参数错误", zap.Error(err)) r.FailWithMessage("支付订单参数错误", c) return } order, err := orderService.Create(&p) if err != nil { global.GVA_LOG.Error("创建订单失败", zap.Error(err)) r.FailWithMessage("创建订单失败", c) return } r.OkWithData(order, c) } func (o *OrderApi) PayOrder(context *gin.Context) { var p request.PayReq if err := context.ShouldBind(&p); err != nil { global.GVA_LOG.Error("支付订单参数错误", zap.Error(err)) r.FailWithMessage("支付订单参数错误", context) return } pay, err := orderService.Pay(p, context) if err != nil { global.GVA_LOG.Error("支付订单失败", zap.Error(err)) r.FailWithMessage("支付订单失败:"+err.Error(), context) return } r.OkWithDetailed(pay, "支付订单成功", context) } // NotifyOrder 微信支付回调通知 func (o *OrderApi) NotifyOrder(context *gin.Context) { err := wechat.NotifyHandle(context) if err != nil { global.GVA_LOG.Error("微信支付回调处理失败", zap.Error(err)) r.FailWithMessage("微信支付回调处理失败:"+err.Error(), context) return } r.OkWithMessage("微信支付回调处理成功", context) } func (o *OrderApi) GetOrderDetail(context *gin.Context) { id := context.Param("id") if id == "" { global.GVA_LOG.Error("获取订单详情参数错误: ID不能为空") r.FailWithMessage("获取订单详情参数错误: ID不能为空", context) return } order, err := orderService.GetOrderDetail(id) if err != nil { global.GVA_LOG.Error("获取订单详情失败", zap.Error(err)) r.FailWithMessage("获取订单详情失败", context) return } r.OkWithData(order, context) } func (o *OrderApi) GetOrderList(context *gin.Context) { var p request.GetOrderList if err := context.ShouldBind(&p); err != nil { global.GVA_LOG.Error("获取订单列表参数错误", zap.Error(err)) r.FailWithMessage("获取订单列表参数错误", context) return } // 获取当前用户ID userId := user_jwt.GetUserID(context) if userId == 0 { global.GVA_LOG.Error("获取用户ID失败") r.FailWithMessage("获取用户ID失败", context) return } // 获取订单列表 orders, total, err := orderService.GetOrderList(p, userId) if err != nil { global.GVA_LOG.Error("获取订单列表失败", zap.Error(err)) r.FailWithMessage("获取订单列表失败:"+err.Error(), context) return } r.OkWithDetailed( r.PageResult{ List: orders, Total: total, Page: p.Page, PageSize: p.PageSize, }, "获取订单列表成功", context) } func (o *OrderApi) BalancePay(context *gin.Context) { var p request.BalancePay if err := context.ShouldBind(&p); err != nil { global.GVA_LOG.Error("余额支付参数错误", zap.Error(err)) r.FailWithMessage("余额支付参数错误", context) return } err := orderService.BalancePay(p) if err != nil { global.GVA_LOG.Error("余额支付失败", zap.Error(err)) r.FailWithMessage("余额支付失败:"+err.Error(), context) return } r.OkWithMessage("余额支付成功", context) }