Просмотр исходного кода

feat: 手机是否注册接口

runningwater 1 год назад
Родитель
Сommit
5d650a1c59

+ 38 - 0
app/http/controllers/api/v1/auth/signup_controller.go

@@ -0,0 +1,38 @@
+package auth
+
+import (
+	"fmt"
+
+	"github.com/gin-gonic/gin"
+	v1 "github.com/runningwater/gohub/app/http/controllers/api/v1"
+	"github.com/runningwater/gohub/app/models/user"
+)
+
+// SignupController 处理用户注册相关的逻辑
+type SignupController struct {
+	v1.BaseApiController
+}
+
+func (controller *SignupController) IsPhoneExist(c *gin.Context) {
+
+	// 请求对象
+	type SignupPhoneExistRequest struct {
+		Phone string `json:"phone,omitempty" binding:"required,min=11"`
+	}
+	req := SignupPhoneExistRequest{}
+
+	// 解析 JSON 请求
+	if err := c.ShouldBindJSON(&req); err != nil {
+		c.AbortWithStatusJSON(422, gin.H{
+			"error": "请求参数错误"+ err.Error(),
+		})
+		// 打印错误信息
+		fmt.Println(err.Error())
+		return
+	}
+
+	// 检查数据库并返回响应
+	c.JSON(200, gin.H{
+		"exist": user.IsPhoneExist(req.Phone),
+	})
+}

+ 6 - 0
app/http/controllers/api/v1/base_api_controller.go

@@ -0,0 +1,6 @@
+// Package v1 存放 v1 版本的 API 接口,处理业务逻辑
+package v1
+
+// BaseApiController 基础 API 控制器
+type BaseApiController struct {
+}

+ 3 - 0
bootstrap/database.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"time"
 
+	"github.com/runningwater/gohub/app/models/user"
 	"github.com/runningwater/gohub/pkg/config"
 	"github.com/runningwater/gohub/pkg/database"
 
@@ -46,4 +47,6 @@ func SetupDB() {
 	database.SQLDB.SetMaxIdleConns(config.GetInt("database.mysql.max_idle_connections"))
 	// 设置连接的最大存活时间
 	database.SQLDB.SetConnMaxLifetime(time.Duration(config.GetInt("database.mysql.max_life_seconds"))* time.Second)
+
+	database.DB.AutoMigrate(&user.User{})
 }

+ 9 - 0
gohub.http

@@ -0,0 +1,9 @@
+### POST /signup/phone/exist 注册手机号是否已存在
+POST http://localhost:3000/v1/auth/signup/phone/exist HTTP/1.1
+Content-Type: application/json
+
+{
+  "phone": "15968875425"
+}
+
+### POST /signup/phone/verify

+ 7 - 7
routes/api.go

@@ -2,9 +2,8 @@
 package routes
 
 import (
-	"net/http"
-
 	"github.com/gin-gonic/gin"
+	"github.com/runningwater/gohub/app/http/controllers/api/v1/auth"
 )
 
 // RegisterAPIRoutes 注册路由
@@ -12,10 +11,11 @@ func RegisterAPIRoutes(router *gin.Engine) {
 	// v1 路由组,所有 v1 版本的路由都放在这里
 	v1 := router.Group("/v1")
 	{
-		v1.GET("/", func(c *gin.Context) {
-			c.JSON(http.StatusOK, gin.H{
-				"Hello": "World",
-			})
-		})
+		authGroup := v1.Group("/auth")
+		{
+			suc := new(auth.SignupController)
+			// 注册手机号是否已存在
+			authGroup.POST("/signup/phone/exist", suc.IsPhoneExist)
+		}
 	}
 }