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, }) }