添加文件: xy_sh/internal/service/service.go
This commit is contained in:
parent
53868e0eeb
commit
3cfaaa3ef9
|
|
@ -0,0 +1,145 @@
|
|||
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")
|
||||
}
|
||||
Loading…
Reference in New Issue