From 484bc09560a950bc610e9724f123781138e198fc Mon Sep 17 00:00:00 2001 From: renzhiyuan <465386466@qq.com> Date: Mon, 27 Jul 2026 10:11:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=87=E4=BB=B6:=20xy=5Fsh?= =?UTF-8?q?/internal/service/service.go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xy_sh/internal/service/service.go | 145 ++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 xy_sh/internal/service/service.go diff --git a/xy_sh/internal/service/service.go b/xy_sh/internal/service/service.go new file mode 100644 index 0000000..2025a6e --- /dev/null +++ b/xy_sh/internal/service/service.go @@ -0,0 +1,145 @@ +package service + +import ( + "encoding/json" + + "xy_sh/internal/biz" + "xy_sh/internal/entities" + + "github.com/gofiber/fiber/v2" +) + +func CreateOrderHandler(c *fiber.Ctx) error { + decryptedData := c.Locals("decryptedData").([]byte) + + var req entities.OrderRequest + if err := json.Unmarshal(decryptedData, &req); err != nil { + return c.Status(fiber.StatusBadRequest).JSON(entities.CommonResponse{ + Code: entities.CodeFailed, + Msg: "业务参数解析失败: " + err.Error(), + Data: nil, + }) + } + + if req.ActCode == "" || req.GoodsCode == "" || req.ActOrderNum == "" { + return c.Status(fiber.StatusBadRequest).JSON(entities.CommonResponse{ + Code: entities.CodeFailed, + Msg: "缺少必填参数: actCode, goodsCode, actOrderNum", + Data: nil, + }) + } + + result, err := biz.CreateOrder(&req) + if err != nil { + return c.Status(fiber.StatusOK).JSON(entities.CommonResponse{ + Code: entities.CodeFailed, + Msg: err.Error(), + Data: nil, + }) + } + + return c.Status(fiber.StatusOK).JSON(entities.CommonResponse{ + Code: entities.CodeSuccess, + Msg: "请求成功", + Data: result, + }) +} + +func QueryOrderHandler(c *fiber.Ctx) error { + decryptedData := c.Locals("decryptedData").([]byte) + + var req entities.QueryOrderRequest + if err := json.Unmarshal(decryptedData, &req); err != nil { + return c.Status(fiber.StatusBadRequest).JSON(entities.CommonResponse{ + Code: entities.CodeFailed, + Msg: "业务参数解析失败: " + err.Error(), + Data: nil, + }) + } + + if req.ActCode == "" || req.OrderNo == "" { + return c.Status(fiber.StatusBadRequest).JSON(entities.CommonResponse{ + Code: entities.CodeFailed, + Msg: "缺少必填参数: actCode, orderNo", + Data: nil, + }) + } + + result, err := biz.QueryOrder(&req) + if err != nil { + return c.Status(fiber.StatusOK).JSON(entities.CommonResponse{ + Code: entities.CodeFailed, + Msg: err.Error(), + Data: nil, + }) + } + + return c.Status(fiber.StatusOK).JSON(entities.CommonResponse{ + Code: entities.CodeSuccess, + Msg: "请求成功", + Data: result, + }) +} + +func WxRechargeHandler(c *fiber.Ctx) error { + decryptedData := c.Locals("decryptedData").([]byte) + + var req entities.WxRechargeRequest + if err := json.Unmarshal(decryptedData, &req); err != nil { + return c.Status(fiber.StatusBadRequest).JSON(entities.CommonResponse{ + Code: entities.CodeFailed, + Msg: "业务参数解析失败: " + err.Error(), + Data: nil, + }) + } + + if req.ActCode == "" || req.OrderNo == "" || req.GoodsCode == "" || req.ActOrderNum == "" || + req.AppId == "" || req.OpenId == "" { + return c.Status(fiber.StatusBadRequest).JSON(entities.CommonResponse{ + Code: entities.CodeFailed, + Msg: "缺少必填参数: actCode, orderNo, goodsCode, actOrderNum, appId, openId", + Data: nil, + }) + } + + result, err := biz.WxRecharge(&req) + if err != nil { + return c.Status(fiber.StatusOK).JSON(entities.CommonResponse{ + Code: entities.CodeFailed, + Msg: err.Error(), + Data: nil, + }) + } + + return c.Status(fiber.StatusOK).JSON(entities.CommonResponse{ + Code: entities.CodeSuccess, + Msg: "请求成功", + Data: result, + }) +} + +func CallbackHandler(c *fiber.Ctx) error { + decryptedData := c.Locals("decryptedData").([]byte) + + var req entities.CallbackRequest + if err := json.Unmarshal(decryptedData, &req); err != nil { + return c.Status(fiber.StatusBadRequest).SendString("参数解析失败") + } + + if req.OrderNo == "" || req.ActOrderNum == "" { + return c.Status(fiber.StatusBadRequest).SendString("缺少必填参数") + } + + if err := biz.HandleCallback(&req); err != nil { + return c.Status(fiber.StatusInternalServerError).SendString("处理失败") + } + + return c.Status(fiber.StatusOK).SendString("ok") +} + +func HealthHandler(c *fiber.Ctx) error { + return c.Status(fiber.StatusOK).JSON(fiber.Map{ + "status": "ok", + "message": "服务运行正常", + }) +} \ No newline at end of file