优化表结构,重构模型,重新实现基于白银网关的提取节点流程

This commit is contained in:
2025-11-24 18:44:06 +08:00
parent 9a574f55cb
commit cb2a963a37
142 changed files with 6528 additions and 5808 deletions

View File

@@ -1,11 +1,12 @@
package handlers
import (
"net"
"platform/pkg/env"
"platform/pkg/u"
"platform/web/auth"
"platform/web/core"
g "platform/web/globals"
"platform/web/globals/orm"
m "platform/web/models"
q "platform/web/queries"
"time"
@@ -89,7 +90,7 @@ func CreateWhitelist(c *fiber.Ctx) error {
return err
}
err = secureAddr(req.Host)
ip, err := secureAddr(req.Host)
if err != nil {
return err
}
@@ -97,7 +98,7 @@ func CreateWhitelist(c *fiber.Ctx) error {
// 创建白名单
err = q.Whitelist.Create(&m.Whitelist{
UserID: authCtx.User.ID,
Host: req.Host,
IP: u.Z(ip),
Remark: &req.Remark,
})
return nil
@@ -125,17 +126,21 @@ func UpdateWhitelist(c *fiber.Ctx) error {
return fiber.NewError(fiber.StatusBadRequest, "id is required")
}
ip, err := secureAddr(req.Host)
if err != nil {
return err
}
// 更新白名单
_, err = q.Whitelist.
Where(
q.Whitelist.ID.Eq(req.ID),
q.Whitelist.UserID.Eq(authCtx.User.ID),
).
Updates(&m.Whitelist{
ID: req.ID,
Host: req.Host,
Remark: &req.Remark,
})
UpdateSimple(
q.Whitelist.IP.Value(ip),
q.Whitelist.Remark.Value(req.Remark),
)
if err != nil {
return err
}
@@ -186,13 +191,13 @@ func RemoveWhitelist(c *fiber.Ctx) error {
return nil
}
func secureAddr(str string) error {
var addr = net.ParseIP(str)
if addr == nil {
return fiber.NewError(fiber.StatusBadRequest, "IP 解析失败")
func secureAddr(str string) (*orm.Inet, error) {
ip, err := orm.ParseInet(str)
if err != nil {
return nil, err
}
if env.RunMode == env.RunModeDev || addr.IsGlobalUnicast() {
return nil
if !ip.IsGlobalUnicast() && env.RunMode != env.RunModeDev {
return nil, fiber.NewError(fiber.StatusBadRequest, "IP 地址不可用")
}
return fiber.NewError(fiber.StatusBadRequest, "IP 地址不可用")
return ip, nil
}