接入无感发货流程
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"affiliate_dash/internal/pkg/response"
|
||||
"affiliate_dash/internal/service"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// DeliveryHandler 提供用户侧公开发货页面使用的接口。
|
||||
type DeliveryHandler struct {
|
||||
deliverySvc *service.DeliveryService
|
||||
}
|
||||
|
||||
func NewDeliveryHandler(deliverySvc *service.DeliveryService) *DeliveryHandler {
|
||||
return &DeliveryHandler{deliverySvc: deliverySvc}
|
||||
}
|
||||
|
||||
func (h *DeliveryHandler) GetOrder(c *gin.Context) {
|
||||
order, err := h.deliverySvc.GetOrder(c.Param("order_no"))
|
||||
if err != nil {
|
||||
writeDeliveryError(c, err)
|
||||
return
|
||||
}
|
||||
response.OK(c, order)
|
||||
}
|
||||
|
||||
type deliveryBindReq struct {
|
||||
GameAccount string `json:"game_account" binding:"required"`
|
||||
}
|
||||
|
||||
func (h *DeliveryHandler) Bind(c *gin.Context) {
|
||||
var req deliveryBindReq
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
response.BadRequest(c, "请输入玩家编号")
|
||||
return
|
||||
}
|
||||
result, err := h.deliverySvc.Bind(c.Param("order_no"), req.GameAccount)
|
||||
if err != nil {
|
||||
writeDeliveryError(c, err)
|
||||
return
|
||||
}
|
||||
response.OK(c, result)
|
||||
}
|
||||
|
||||
type deliverySubmitReq struct {
|
||||
GameAccount string `json:"game_account" binding:"required"`
|
||||
BindUUID string `json:"bind_uuid" binding:"required"`
|
||||
}
|
||||
|
||||
func (h *DeliveryHandler) Submit(c *gin.Context) {
|
||||
var req deliverySubmitReq
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
response.BadRequest(c, "玩家编号和绑定凭证不能为空")
|
||||
return
|
||||
}
|
||||
result, err := h.deliverySvc.Submit(c.Param("order_no"), req.GameAccount, req.BindUUID)
|
||||
if err != nil {
|
||||
writeDeliveryError(c, err)
|
||||
return
|
||||
}
|
||||
response.OK(c, result)
|
||||
}
|
||||
|
||||
func writeDeliveryError(c *gin.Context, err error) {
|
||||
msg := strings.TrimSpace(err.Error())
|
||||
if msg == "订单不存在" {
|
||||
response.NotFound(c, msg)
|
||||
return
|
||||
}
|
||||
response.BadRequest(c, msg)
|
||||
}
|
||||
Reference in New Issue
Block a user