初始化项目
This commit is contained in:
381
controller/order.go
Normal file
381
controller/order.go
Normal file
@@ -0,0 +1,381 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/gogf/gf/v2/net/ghttp"
|
||||
"order/model/dto"
|
||||
"order/service"
|
||||
)
|
||||
|
||||
// Order 订单控制器
|
||||
|
||||
type Order struct{}
|
||||
|
||||
var OrderController = &Order{}
|
||||
|
||||
// Create 创建订单
|
||||
func (c *Order) Create(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
|
||||
var req dto.CreateOrderReq
|
||||
if err := r.Parse(&req); err != nil {
|
||||
g.Log().Error(ctx, "解析请求参数失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 400,
|
||||
"message": "参数错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 获取订单服务实例
|
||||
orderService := service.GetOrderService()
|
||||
if orderService == nil {
|
||||
g.Log().Error(ctx, "订单服务未初始化")
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": "服务内部错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 创建订单
|
||||
resp, err := orderService.CreateOrder(ctx, &req)
|
||||
if err != nil {
|
||||
g.Log().Error(ctx, "创建订单失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": err.Error(),
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(g.Map{
|
||||
"code": 200,
|
||||
"message": "success",
|
||||
"data": resp,
|
||||
})
|
||||
}
|
||||
|
||||
// Pay 支付订单
|
||||
func (c *Order) Pay(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
|
||||
var req dto.PayOrderReq
|
||||
if err := r.Parse(&req); err != nil {
|
||||
g.Log().Error(ctx, "解析请求参数失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 400,
|
||||
"message": "参数错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 获取支付服务实例
|
||||
paymentService := service.GetPaymentService()
|
||||
if paymentService == nil {
|
||||
g.Log().Error(ctx, "支付服务未初始化")
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": "服务内部错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 支付订单
|
||||
resp, err := paymentService.PayOrder(ctx, &req)
|
||||
if err != nil {
|
||||
g.Log().Error(ctx, "支付订单失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": err.Error(),
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(g.Map{
|
||||
"code": 200,
|
||||
"message": "success",
|
||||
"data": resp,
|
||||
})
|
||||
}
|
||||
|
||||
// Query 查询订单详情
|
||||
func (c *Order) Query(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
|
||||
var req dto.QueryOrderReq
|
||||
if err := r.Parse(&req); err != nil {
|
||||
g.Log().Error(ctx, "解析请求参数失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 400,
|
||||
"message": "参数错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 获取订单服务实例
|
||||
orderService := service.GetOrderService()
|
||||
if orderService == nil {
|
||||
g.Log().Error(ctx, "订单服务未初始化")
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": "服务内部错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 查询订单
|
||||
resp, err := orderService.QueryOrder(ctx, &req)
|
||||
if err != nil {
|
||||
g.Log().Error(ctx, "查询订单失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": err.Error(),
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(g.Map{
|
||||
"code": 200,
|
||||
"message": "success",
|
||||
"data": resp,
|
||||
})
|
||||
}
|
||||
|
||||
// Cancel 取消订单
|
||||
func (c *Order) Cancel(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
|
||||
var req dto.CancelOrderReq
|
||||
if err := r.Parse(&req); err != nil {
|
||||
g.Log().Error(ctx, "解析请求参数失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 400,
|
||||
"message": "参数错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 获取订单服务实例
|
||||
orderService := service.GetOrderService()
|
||||
if orderService == nil {
|
||||
g.Log().Error(ctx, "订单服务未初始化")
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": "服务内部错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 取消订单
|
||||
resp, err := orderService.CancelOrder(ctx, &req)
|
||||
if err != nil {
|
||||
g.Log().Error(ctx, "取消订单失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": err.Error(),
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(g.Map{
|
||||
"code": 200,
|
||||
"message": "success",
|
||||
"data": resp,
|
||||
})
|
||||
}
|
||||
|
||||
// Refund 退款
|
||||
func (c *Order) Refund(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
|
||||
var req dto.RefundOrderReq
|
||||
if err := r.Parse(&req); err != nil {
|
||||
g.Log().Error(ctx, "解析请求参数失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 400,
|
||||
"message": "参数错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 获取支付服务实例
|
||||
paymentService := service.GetPaymentService()
|
||||
if paymentService == nil {
|
||||
g.Log().Error(ctx, "支付服务未初始化")
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": "服务内部错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 退款
|
||||
resp, err := paymentService.RefundOrder(ctx, &req)
|
||||
if err != nil {
|
||||
g.Log().Error(ctx, "退款失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": err.Error(),
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(g.Map{
|
||||
"code": 200,
|
||||
"message": "success",
|
||||
"data": resp,
|
||||
})
|
||||
}
|
||||
|
||||
// List 查询订单列表
|
||||
func (c *Order) List(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
|
||||
var req dto.ListOrdersReq
|
||||
if err := r.Parse(&req); err != nil {
|
||||
g.Log().Error(ctx, "解析请求参数失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 400,
|
||||
"message": "参数错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 获取订单服务实例
|
||||
orderService := service.GetOrderService()
|
||||
if orderService == nil {
|
||||
g.Log().Error(ctx, "订单服务未初始化")
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": "服务内部错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 查询订单列表
|
||||
resp, err := orderService.ListOrders(ctx, &req)
|
||||
if err != nil {
|
||||
g.Log().Error(ctx, "查询订单列表失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": err.Error(),
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(g.Map{
|
||||
"code": 200,
|
||||
"message": "success",
|
||||
"data": resp,
|
||||
})
|
||||
}
|
||||
|
||||
// PaymentNotify 支付回调
|
||||
func (c *Order) PaymentNotify(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
|
||||
var req service.PaymentNotifyReq
|
||||
if err := r.Parse(&req); err != nil {
|
||||
g.Log().Error(ctx, "解析支付回调参数失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 400,
|
||||
"message": "参数错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 获取支付服务实例
|
||||
paymentService := service.GetPaymentService()
|
||||
if paymentService == nil {
|
||||
g.Log().Error(ctx, "支付服务未初始化")
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": "服务内部错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 处理支付回调
|
||||
if err := paymentService.HandlePaymentNotify(ctx, &req); err != nil {
|
||||
g.Log().Error(ctx, "处理支付回调失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": err.Error(),
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(g.Map{
|
||||
"code": 200,
|
||||
"message": "success",
|
||||
"data": nil,
|
||||
})
|
||||
}
|
||||
|
||||
// RefundNotify 退款回调
|
||||
func (c *Order) RefundNotify(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
|
||||
var req service.RefundNotifyReq
|
||||
if err := r.Parse(&req); err != nil {
|
||||
g.Log().Error(ctx, "解析退款回调参数失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 400,
|
||||
"message": "参数错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 获取支付服务实例
|
||||
paymentService := service.GetPaymentService()
|
||||
if paymentService == nil {
|
||||
g.Log().Error(ctx, "支付服务未初始化")
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": "服务内部错误",
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 处理退款回调
|
||||
if err := paymentService.HandleRefundNotify(ctx, &req); err != nil {
|
||||
g.Log().Error(ctx, "处理退款回调失败:", err)
|
||||
r.Response.WriteJsonExit(g.Map{
|
||||
"code": 500,
|
||||
"message": err.Error(),
|
||||
"data": nil,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(g.Map{
|
||||
"code": 200,
|
||||
"message": "success",
|
||||
"data": nil,
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user