This commit is contained in:
2025-11-10 20:11:14 +08:00
parent 86c7a0e0d5
commit 70bf6fe20f
12 changed files with 325 additions and 67 deletions
+24
View File
@@ -6,6 +6,7 @@ import (
"os"
"github.com/gin-gonic/gin"
"github.com/mitchellh/mapstructure"
)
var ErrorCode map[string]interface{}
@@ -27,6 +28,29 @@ func init() {
func ApiRoot(r *gin.RouterGroup) {
r.Use(func(ctx *gin.Context) {
//转换传进来的数据
var jsonData map[string]interface{}
if err := ctx.ShouldBindJSON(&jsonData); err == nil {
//分离数据
if jsonData["cookie"] != "" && jsonData["cookie"] != nil {
ctx.Set("cookie_value", jsonData["cookie"])
}
if jsonData["data"] != nil {
//fmt.Println(jsonData["data"])
var data_t map[string]interface{}
if err = mapstructure.Decode(jsonData["data"], &data_t); err == nil {
ctx.Set("data", &data_t)
}
}
}
})
ApiUser(r.Group("/users"))
r.GET("/", func(ctx *gin.Context) {
ReturnJson(ctx, "apiOK", nil)
})
+117
View File
@@ -0,0 +1,117 @@
package routers
import (
"fmt"
"ops/models"
"time"
"github.com/gin-gonic/gin"
"github.com/mitchellh/mapstructure"
)
func ApiInit() {
//用户模块初始化init
fmt.Println("users init")
//创建admin用户
var user models.TabUser_
user.Name = "admin"
if models.DB.Where(&user).First(&user).Error == nil {
} else {
fmt.Println("用户不存在")
user.Pass = models.HashUserPass("adminpassword")
models.DB.Create(&user) // 传入指针
}
//创建admin group
var usergroup models.TabUserGroups_
usergroup.Name = "admins"
if models.DB.Where(&usergroup).First(&usergroup).Error == nil {
} else {
fmt.Println("用户组不存在")
models.DB.Create(&usergroup) // 传入指针
}
//创建用户与用户组绑定
var usergroupbind models.TabUserGroupBinds_
usergroupbind.UserID = user.ID
usergroupbind.GroupID = usergroup.ID
if models.DB.Where(&usergroupbind).First(&usergroupbind).Error == nil {
} else {
models.DB.Create(&usergroupbind) // 传入指针
}
}
type From_user_add struct {
Useremail string `json:"useremail"`
Username string `json:"username"`
Userpass string `json:"userpass"`
}
func ApiUser(r *gin.RouterGroup) {
r.GET("/test", func(ctx *gin.Context) {
ReturnJson(ctx, "apiOK", nil)
})
r.POST("/test", func(ctx *gin.Context) {
ReturnJson(ctx, "apiOK", nil)
})
r.POST("/register", func(ctx *gin.Context) {
//转换传进来的数据
var jsonData From_user_add
data, isHaveData := ctx.Get("data")
if isHaveData {
if err := mapstructure.Decode(data, &jsonData); err == nil {
//转换字段
newUser := models.TabUser_{
Name: jsonData.Username,
Email: jsonData.Useremail,
Pass: jsonData.Userpass, // 实际应替换为哈希值
Date: time.Now(),
// Date 字段无需赋值,数据库会自动填充默认值
}
if newUser.Name != "" && newUser.Pass != "" && newUser.Email != "" {
//对用户的密码进行哈希替换
newUser.Pass = models.HashUserPass(newUser.Pass)
//用户名是唯一的,先读取是否有这个用户名
var user models.TabUser_
user.Name = newUser.Name
if models.DB.Where(&user).First(&user).Error == nil {
//fmt.Println("找到用户:", user.ID)
ReturnJson(ctx, "userNameDup", nil)
} else {
//fmt.Println("用户不存在")
models.DB.Create(&newUser) // 传入指针
//创建info
var user_info models.TabUserInfo_
user_info.AvatarPath = models.ConfigsUser.AvatarPath
user_info.UserID = newUser.ID
models.DB.Create(&user_info) // 传入指针
ReturnJson(ctx, "apiOK", nil)
}
} else {
ReturnJson(ctx, "jsonErr", nil)
}
} else {
ReturnJson(ctx, "jsonErr", nil)
}
} else {
ReturnJson(ctx, "postErr", nil)
}
})
}
+2
View File
@@ -19,4 +19,6 @@ func ReturnJson(ctx *gin.Context, errMsg string, data map[string]interface{}) {
ctx.JSON(200, &returnData)
ctx.Abort()
}
-7
View File
@@ -1,7 +0,0 @@
package routers
import "github.com/gin-gonic/gin"
func Root(r *gin.RouterGroup) {
}