From 0edc88308432e400a5ed954305a236c15960bf73 Mon Sep 17 00:00:00 2001 From: luorijun Date: Thu, 23 Apr 2026 13:47:22 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=AE=E6=94=B9=E5=A5=97?= =?UTF-8?q?=E9=A4=90=20ip=20=E6=A3=80=E6=9F=A5=E5=8A=9F=E8=83=BD=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/handlers/resource.go | 24 ++++++++++++++++++++++++ web/routes.go | 1 + web/services/resource.go | 3 ++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/web/handlers/resource.go b/web/handlers/resource.go index d96dc72..1153cb8 100644 --- a/web/handlers/resource.go +++ b/web/handlers/resource.go @@ -611,6 +611,30 @@ func UpdateResourceByAdmin(c *fiber.Ctx) error { return c.JSON(nil) } +func UpdateResourceCheckIP(c *fiber.Ctx) error { + _, err := auth.GetAuthCtx(c).PermitUser() + if err != nil { + return err + } + + var req struct { + core.IdReq + CheckIP bool `json:"checkip"` + } + if err := c.BodyParser(&req); err != nil { + return err + } + + if err := s.Resource.Update(&s.UpdateResourceData{ + IdReq: req.IdReq, + CheckIP: &req.CheckIP, + }); err != nil { + return err + } + + return c.JSON(nil) +} + // StatisticResourceFree 统计每日可用 func StatisticResourceFree(c *fiber.Ctx) error { // 检查权限 diff --git a/web/routes.go b/web/routes.go index 7e29c80..1adf7c7 100644 --- a/web/routes.go +++ b/web/routes.go @@ -66,6 +66,7 @@ func userRouter(api fiber.Router) { resource.Post("/list/short", handlers.PageResourceShort) resource.Post("/list/long", handlers.PageResourceLong) resource.Post("/create", handlers.CreateResource) + resource.Post("/update/checkip", handlers.UpdateResourceCheckIP) resource.Post("/statistics/free", handlers.StatisticResourceFree) resource.Post("/statistics/usage", handlers.StatisticResourceUsage) diff --git a/web/services/resource.go b/web/services/resource.go index 6a9d9b3..570320b 100644 --- a/web/services/resource.go +++ b/web/services/resource.go @@ -63,9 +63,10 @@ func (s *resourceService) Create(q *q.Query, uid int32, now time.Time, data *Cre var resource = m.Resource{ UserID: uid, ResourceNo: u.P(ID.GenReadable("res")), - Active: true, Type: data.Type, Code: data.Type.Code(), + Active: true, + CheckIP: true, } switch data.Type {