diff --git a/internal/pkg/util/json.go b/internal/pkg/util/json.go index 2d68184..d668e64 100644 --- a/internal/pkg/util/json.go +++ b/internal/pkg/util/json.go @@ -28,6 +28,10 @@ func (ft *FlexibleType) UnmarshalJSON(data []byte) error { } func (ft FlexibleType) Int() int { + if ft == "" { + return 0 + } + i, _ := strconv.Atoi(string(ft)) return i } diff --git a/internal/server/router/router.go b/internal/server/router/router.go index e334a36..2e5fda2 100644 --- a/internal/server/router/router.go +++ b/internal/server/router/router.go @@ -158,6 +158,12 @@ func registerCommon(c *fiber.Ctx, err error) error { } var data interface{} json.Unmarshal(c.Response().Body(), &data) + + // 检查是否需要跳过响应包装 + if c.Locals("skip_response_wrap") == true { + return c.JSON(data) + } + return c.JSON(fiber.Map{ "data": data, "message": errors.Success.Error(), diff --git a/internal/services/callback.go b/internal/services/callback.go index 1626beb..8a577d8 100644 --- a/internal/services/callback.go +++ b/internal/services/callback.go @@ -606,6 +606,8 @@ func (s *CallbackService) CallbackDingtalkCard(c *fiber.Ctx) error { } } + // 跳过响应包装 + c.Locals("skip_response_wrap", true) return c.JSON(resp) }