package service import ( "encoding/json" "github.com/gofiber/fiber/v2" "xy_sh/internal/biz" "xy_sh/internal/config" "xy_sh/internal/entities" ) // Service 服务层 type Service struct { biz *biz.Biz cfg *config.Config } // NewService 创建服务实例 func NewService(cfg *config.Config) *Service { return &Service{ biz: biz.NewBiz(cfg), cfg: cfg, } } // Order 卡券/直充权益下单接口 func (s *Service) Order(c *fiber.Ctx) error { decrypted := c.Locals("decryptedBody").([]byte) var req entities.OrderRequest if err := json.Unmarshal(decrypted, &req); err != nil { return c.JSON(entities.ApiResponse{ Code: -1, Msg: "业务参数解析失败: " + err.Error(), }) } resp, err := s.biz.ProcessOrder(&req) if err != nil { return c.JSON(entities.ApiResponse{ Code: -1, Msg: err.Error(), }) } encryptedData, err := s.biz.EncryptResponse(resp) if err != nil { return c.JSON(entities.ApiResponse{ Code: -1, Msg: "响应加密失败: " + err.Error(), }) } return c.JSON(entities.ApiResponse{ Code: 0, Msg: "请求成功", Data: encryptedData, }) } // Query 卡券/直充/微信立减金订单查询接口 func (s *Service) Query(c *fiber.Ctx) error { decrypted := c.Locals("decryptedBody").([]byte) var req entities.QueryRequest if err := json.Unmarshal(decrypted, &req); err != nil { return c.JSON(entities.ApiResponse{ Code: -1, Msg: "业务参数解析失败: " + err.Error(), }) } resp, err := s.biz.ProcessQuery(&req) if err != nil { return c.JSON(entities.ApiResponse{ Code: -1, Msg: err.Error(), }) } encryptedData, err := s.biz.EncryptResponse(resp) if err != nil { return c.JSON(entities.ApiResponse{ Code: -1, Msg: "响应加密失败: " + err.Error(), }) } return c.JSON(entities.ApiResponse{ Code: 0, Msg: "请求成功", Data: encryptedData, }) } // WechatRecharge 微信立减金订单充值接口 func (s *Service) WechatRecharge(c *fiber.Ctx) error { decrypted := c.Locals("decryptedBody").([]byte) var req entities.WechatRechargeRequest if err := json.Unmarshal(decrypted, &req); err != nil { return c.JSON(entities.ApiResponse{ Code: -1, Msg: "业务参数解析失败: " + err.Error(), }) } resp, err := s.biz.ProcessWechatRecharge(&req) if err != nil { return c.JSON(entities.ApiResponse{ Code: -1, Msg: err.Error(), }) } encryptedData, err := s.biz.EncryptResponse(resp) if err != nil { return c.JSON(entities.ApiResponse{ Code: -1, Msg: "响应加密失败: " + err.Error(), }) } return c.JSON(entities.ApiResponse{ Code: 0, Msg: "请求成功", Data: encryptedData, }) } // Callback 卡券/直充/微信立减金充值结果通知接口 func (s *Service) Callback(c *fiber.Ctx) error { decrypted := c.Locals("decryptedBody").([]byte) var req entities.CallbackRequest if err := json.Unmarshal(decrypted, &req); err != nil { return c.Status(fiber.StatusBadRequest).SendString("参数解析失败") } if err := s.biz.ProcessCallback(&req); err != nil { return c.Status(fiber.StatusInternalServerError).SendString(err.Error()) } return c.SendString("ok") }