From c61fb947e79c3ae8ecb4b5963df79d3d96b0a502 Mon Sep 17 00:00:00 2001 From: des <18638715007@163.com> Date: Thu, 15 Jan 2026 18:57:32 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=A4=84=E7=90=86=E4=B8=AD?= =?UTF-8?q?=E9=97=B4=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- srv/internal/middle/error_handle.go | 7 +++++++ srv/internal/user/controller.go | 15 +++++++++++++-- srv/internal/user/controller_test.go | 22 +++++++++++++++++++++- srv/internal/user/entity.go | 14 ++++++++++++++ 4 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 srv/internal/middle/error_handle.go create mode 100644 srv/internal/user/entity.go diff --git a/srv/internal/middle/error_handle.go b/srv/internal/middle/error_handle.go new file mode 100644 index 0000000..9ca689c --- /dev/null +++ b/srv/internal/middle/error_handle.go @@ -0,0 +1,7 @@ +package middle + +import "github.com/gin-gonic/gin" + +func SetContextError(ctx *gin.Context) { + +} diff --git a/srv/internal/user/controller.go b/srv/internal/user/controller.go index d596695..236a1b2 100644 --- a/srv/internal/user/controller.go +++ b/srv/internal/user/controller.go @@ -1,6 +1,8 @@ package user import ( + "context" + "errors" "fmt" "net/http" @@ -16,8 +18,8 @@ type Controller struct { } type PostLoginParam struct { - account string `binding:"required"` - password string `binding:"required"` + Account string `json:"account" binding:"required"` + Password string `json:"password" binding:"required"` } func (c *Controller) PostLogin(ctx *gin.Context) { @@ -26,6 +28,15 @@ func (c *Controller) PostLogin(ctx *gin.Context) { fmt.Println("参数解析失败,请确认参数是否为 JSON") fmt.Println(err) } + user, err := gorm.G[User](c.client).Where("account = ?", param.Account).First(context.Background()) + if errors.Is(err, gorm.ErrRecordNotFound) { + fmt.Println("没有找到用户") + } else { + fmt.Println("查询错误") + panic(err) + } + fmt.Println("接受参数") + fmt.Println(user) ctx.JSON(http.StatusOK, gin.H{ "message": "success", }) diff --git a/srv/internal/user/controller_test.go b/srv/internal/user/controller_test.go index eb5e7fa..d2cd33b 100644 --- a/srv/internal/user/controller_test.go +++ b/srv/internal/user/controller_test.go @@ -1,6 +1,10 @@ package user_test import ( + "Crimson-Gatekeeper/internal/common" + "Crimson-Gatekeeper/internal/user" + "bytes" + "encoding/json" "fmt" "net/http" "net/http/httptest" @@ -10,11 +14,27 @@ import ( ) func TestLogin(t *testing.T) { + client, close := common.GetDataBaseClient() + defer close() + gin.SetMode(gin.TestMode) app := gin.Default() + user.New(client).RegisterRoute(app) w := httptest.NewRecorder() - req, _ := http.NewRequest("POST", "/api/v1/user/login", nil) + param := gin.H{ + "account": "admin", + "password": "123445", + } + data, ero := json.Marshal(param) + if ero != nil { + fmt.Println("序列化失败") + panic(ero) + } + fmt.Println("参数") + fmt.Println(string(data)) + req, _ := http.NewRequest("POST", "/api/v1/user/login", bytes.NewReader(data)) app.ServeHTTP(w, req) + fmt.Println("测试结果") fmt.Println(w) } diff --git a/srv/internal/user/entity.go b/srv/internal/user/entity.go new file mode 100644 index 0000000..d1949c6 --- /dev/null +++ b/srv/internal/user/entity.go @@ -0,0 +1,14 @@ +package user + +import ( + "time" +) + +type User struct { + Id int64 + CreateTime time.Time + LastUpdateTime time.Time + Name string + Account string + Passwd string +}