🎨 完善订单和微信支付功能
This commit is contained in:
@@ -1,3 +1,131 @@
|
||||
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)
|
||||
}
|
||||
|
Reference in New Issue
Block a user