添加文件: 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