添加文件: xy_sh/internal/service/service.go

This commit is contained in:
renzhiyuan 2026-07-24 11:54:44 +08:00
parent 53868e0eeb
commit 3cfaaa3ef9
1 changed files with 145 additions and 0 deletions

View File

@ -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")
}