diff --git a/web/core/error.go b/web/core/error.go index 5297405..c88ed97 100644 --- a/web/core/error.go +++ b/web/core/error.go @@ -1,6 +1,7 @@ package core import ( + "fmt" "log/slog" "platform/pkg/env" "runtime" @@ -17,7 +18,8 @@ type Err struct { func (e *Err) Error() string { if e.err != nil { - return e.msg + ": " + e.err.Error() + slog.Debug(fmt.Sprintf("%s: %s", e.msg, e.err.Error())) + return e.msg } return e.msg } diff --git a/web/handlers/channel.go b/web/handlers/channel.go index b24c642..011f561 100644 --- a/web/handlers/channel.go +++ b/web/handlers/channel.go @@ -5,6 +5,7 @@ import ( "platform/pkg/u" "platform/web/auth" "platform/web/core" + g "platform/web/globals" m "platform/web/models" q "platform/web/queries" s "platform/web/services" @@ -122,13 +123,13 @@ func CreateChannel(c *fiber.Ctx) error { // 解析参数 req := new(CreateChannelReq) - if err := c.BodyParser(req); err != nil { - return err + if err := g.Validator.Validate(c, req); err != nil { + return core.NewBizErr("解析参数失败", err) } ip, err := netip.ParseAddr(c.Get(core.HeaderUserIP)) if err != nil { - return core.NewBizErr("解析请求头客户端 IP 地址失败", err) + return core.NewBizErr("获取客户端地址失败", err) } // 创建通道 diff --git a/web/services/channel_baiyin.go b/web/services/channel_baiyin.go index 775b2dc..1583a61 100644 --- a/web/services/channel_baiyin.go +++ b/web/services/channel_baiyin.go @@ -47,12 +47,12 @@ func (s *channelBaiyinService) CreateChannels(source netip.Addr, userId int32, r pass := false for i, item := range whitelists { whitelistIPs[i] = item.IP.String() - if item.IP.Compare(source) != 0 { + if item.IP.Addr == source { pass = true } } if !pass { - return nil, core.NewBizErr("IP 地址不在白名单内") + return nil, core.NewBizErr(fmt.Sprintf("IP 地址 %s 不在白名单内", source.String())) } // 获取用户套餐并检查