添加文件: xy_sh/internal/service/service.go
This commit is contained in:
parent
4dc65eab11
commit
0aba5c1b59
|
|
@ -0,0 +1,70 @@
|
|||
package service
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
|
||||
"xy_sh/internal/biz"
|
||||
"xy_sh/internal/entities"
|
||||
)
|
||||
|
||||
// Service HTTP服务层
|
||||
type Service struct {
|
||||
biz *biz.Biz
|
||||
}
|
||||
|
||||
// NewService 创建服务实例
|
||||
func NewService(biz *biz.Biz) *Service {
|
||||
return &Service{biz: biz}
|
||||
}
|
||||
|
||||
// HandleOrderCreate 卡券/直充权益下单接口
|
||||
func (s *Service) HandleOrderCreate(c *fiber.Ctx) error {
|
||||
// 解析请求体
|
||||
var req entities.EncryptedRequest
|
||||
if err := c.BodyParser(&req); err != nil {
|
||||
log.Printf("[服务] 请求体解析失败: %v", err)
|
||||
return c.Status(fiber.StatusBadRequest).JSON(entities.ApiResponse{
|
||||
Code: -1,
|
||||
Msg: "请求体解析失败",
|
||||
})
|
||||
}
|
||||
|
||||
// 解密业务参数
|
||||
var bizReq entities.OrderCreateRequest
|
||||
if err := s.biz.DecryptRequest(req.EncryptedData, &bizReq); err != nil {
|
||||
log.Printf("[服务] 解密业务参数失败: %v", err)
|
||||
return c.JSON(entities.ApiResponse{
|
||||
Code: -1,
|
||||
Msg: "解密业务参数失败: " + err.Error(),
|
||||
})
|
||||
}
|
||||
|
||||
// 调用业务逻辑
|
||||
bizResp, err := s.biz.CreateOrder(&bizReq)
|
||||
if err != nil {
|
||||
log.Printf("[服务] 下单失败: %v", err)
|
||||
return c.JSON(entities.ApiResponse{
|
||||
Code: -1,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
}
|
||||
|
||||
// 加密响应业务数据
|
||||
encryptedData, err := s.biz.EncryptResponse(bizResp)
|
||||
if err != nil {
|
||||
log.Printf("[服务] 加密响应数据失败: %v", err)
|
||||
return c.JSON(entities.ApiResponse{
|
||||
Code: -1,
|
||||
Msg: "加密响应数据失败",
|
||||
})
|
||||
}
|
||||
|
||||
log.Printf("[服务] 下单成功: orderNo=%s", bizResp.OrderNo)
|
||||
return c.JSON(entities.ApiResponse{
|
||||
Code: 0,
|
||||
Msg: "请求成功",
|
||||
Data: encryptedData,
|
||||
})
|
||||
}
|
||||
Loading…
Reference in New Issue