添加用户搜索功能,根据id搜索,根据关键字搜索
This commit is contained in:
parent
db90205818
commit
e624700924
16
dao/user.go
16
dao/user.go
|
|
@ -3,6 +3,7 @@ package dao
|
|||
import (
|
||||
"fmt"
|
||||
"gorm.io/gorm"
|
||||
"videoplayer/proto"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
|
|
@ -27,10 +28,10 @@ func DeleteUserByID(id int) int {
|
|||
return id
|
||||
}
|
||||
|
||||
func FindUserByID(id int) User {
|
||||
var user User
|
||||
DB.Debug().First(&user, id)
|
||||
return user
|
||||
func FindUserByID(id int) []proto.SearchUser {
|
||||
var users []proto.SearchUser
|
||||
DB.Debug().Where("id = ?", id).First(&users)
|
||||
return users
|
||||
}
|
||||
|
||||
func FindUserByName(name string) User {
|
||||
|
|
@ -40,6 +41,13 @@ func FindUserByName(name string) User {
|
|||
return user
|
||||
}
|
||||
|
||||
// 根据name模糊查询,邮箱也是,不查询密码
|
||||
func FindUserByNameLike(name string) []proto.SearchUser {
|
||||
var users []proto.SearchUser
|
||||
DB.Debug().Where("name LIKE ? OR email LIKE ?", "%"+name+"%", "%"+name+"%").Find(&users)
|
||||
return users
|
||||
}
|
||||
|
||||
func FindUserByEmail(email string) User {
|
||||
var user User
|
||||
DB.Debug().Where("email = ?", email).First(&user)
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ func SetUpUserGroup(router *gin.Engine) {
|
|||
userGroup.POST("/gqr", GetQRStatus)
|
||||
userGroup.POST("/sqr", SetQRStatus)
|
||||
userGroup.POST("/confirm", ConfirmQRLogin)
|
||||
userGroup.POST("/search", SearchHandler)
|
||||
}
|
||||
|
||||
type RLReq struct {
|
||||
|
|
@ -40,6 +41,11 @@ type QRReq struct {
|
|||
IP string `json:"ip" form:"ip"`
|
||||
}
|
||||
|
||||
type SearchReq struct {
|
||||
Keyword string `json:"keyword" form:"keyword"`
|
||||
ID int `json:"id" form:"id"`
|
||||
}
|
||||
|
||||
func GetScanUUID(c *gin.Context) {
|
||||
var ReqData QRReq
|
||||
if err := c.ShouldBind(&ReqData); err != nil {
|
||||
|
|
@ -173,6 +179,23 @@ func GetQRStatus(c *gin.Context) {
|
|||
}
|
||||
}
|
||||
|
||||
func SearchHandler(c *gin.Context) {
|
||||
var req_data SearchReq
|
||||
if err := c.ShouldBind(&req_data); err == nil {
|
||||
if req_data.ID != -1 {
|
||||
user := service.GetUserByID(req_data.ID)
|
||||
c.JSON(200, gin.H{"code": proto.SuccessCode, "message": "success", "data": user})
|
||||
} else if req_data.Keyword != "" {
|
||||
users := service.GetUserByNameLike(req_data.Keyword)
|
||||
c.JSON(200, gin.H{"code": proto.SuccessCode, "message": "success", "data": users})
|
||||
} else {
|
||||
c.JSON(200, gin.H{"code": proto.ParameterError, "message": "error", "data": "无ID 与 关键字"})
|
||||
}
|
||||
} else {
|
||||
c.JSON(200, gin.H{"error": err.Error(), "code": proto.ParameterError, "message": "error"})
|
||||
}
|
||||
}
|
||||
|
||||
func loginHandler(c *gin.Context) {
|
||||
var req_data RLReq
|
||||
tokenString := ""
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package proto
|
||||
|
||||
import "gorm.io/gorm"
|
||||
|
||||
const (
|
||||
MYSQL_USER = "video_t2"
|
||||
MYSQL_DB = "video_t2"
|
||||
|
|
@ -14,3 +16,11 @@ const (
|
|||
|
||||
TOKEN_SECRET = "mfjurnc_32ndj9dfhj"
|
||||
)
|
||||
|
||||
type SearchUser struct {
|
||||
gorm.Model
|
||||
Name string `gorm:"column:name"`
|
||||
Age int `gorm:"column:age"`
|
||||
Email string `gorm:"column:email"`
|
||||
Gender string `gorm:"column:gender"`
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package service
|
|||
import (
|
||||
"regexp"
|
||||
"videoplayer/dao"
|
||||
"videoplayer/proto"
|
||||
)
|
||||
|
||||
func CreateUser(name string, password, email string) uint {
|
||||
|
|
@ -32,3 +33,11 @@ func ContainsUser(name, email string) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func GetUserByID(id int) []proto.SearchUser {
|
||||
return dao.FindUserByID(id)
|
||||
}
|
||||
|
||||
func GetUserByNameLike(name string) []proto.SearchUser {
|
||||
return dao.FindUserByNameLike(name)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue