新增查询全部用户api
This commit is contained in:
19
api/user.go
19
api/user.go
@@ -203,6 +203,25 @@ func GetInfoByUserId(c *gin.Context) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetAllUserInfo 获取所有用户信息
|
||||||
|
func GetAllUserInfo(c *gin.Context) {
|
||||||
|
var info PublicAllInfoResponse
|
||||||
|
var alla []PublicAllInfoResponse
|
||||||
|
Link()
|
||||||
|
DB := db.DBsnctf
|
||||||
|
rows, err := DB.Debug().Select([]string{"id", "username", "affiliation", "country", "website", "hidden"}).Table("user").Rows()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(400, gin.H{"code": 400, "msg": "Get info error!"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
for rows.Next() {
|
||||||
|
rows.Scan(&info.Id, &info.Username, &info.Affiliation, &info.Country, &info.Website, &info.Hidden)
|
||||||
|
alla = append(alla, info)
|
||||||
|
}
|
||||||
|
c.JSON(200, gin.H{"code": 200, "data": alla})
|
||||||
|
}
|
||||||
|
|
||||||
// checkUsername 验证用户名是否符合中文数字字母下划线横杠,长度1到10位,返回true或false
|
// checkUsername 验证用户名是否符合中文数字字母下划线横杠,长度1到10位,返回true或false
|
||||||
func checkUsername(username string) bool {
|
func checkUsername(username string) bool {
|
||||||
if !(utf8.RuneCountInString(username) > 0) || !(utf8.RuneCountInString(username) < 11) {
|
if !(utf8.RuneCountInString(username) > 0) || !(utf8.RuneCountInString(username) < 11) {
|
||||||
|
@@ -6,7 +6,6 @@ import (
|
|||||||
"main.go/api/admin"
|
"main.go/api/admin"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
func Initrouter() {
|
func Initrouter() {
|
||||||
router := gin.Default()
|
router := gin.Default()
|
||||||
api_v1 := router.Group("/api/v1")
|
api_v1 := router.Group("/api/v1")
|
||||||
@@ -55,6 +54,9 @@ func Initrouter(){
|
|||||||
personal.GET("/solves/self", api.GetSelfSolves)
|
personal.GET("/solves/self", api.GetSelfSolves)
|
||||||
// 获取当前用户分数、排名
|
// 获取当前用户分数、排名
|
||||||
personal.GET("/score/self", api.GetSelfScoreAndRank)
|
personal.GET("/score/self", api.GetSelfScoreAndRank)
|
||||||
|
// 获取所有用户信息
|
||||||
|
personal.GET("/users", api.GetAllUserInfo)
|
||||||
|
|
||||||
// 校内排行api,暂时留空
|
// 校内排行api,暂时留空
|
||||||
}
|
}
|
||||||
// 管理员api,需要用户登陆且Role=1才能访问
|
// 管理员api,需要用户登陆且Role=1才能访问
|
||||||
@@ -65,8 +67,5 @@ func Initrouter(){
|
|||||||
manager.POST("/challenge", admin.NewChallenge)
|
manager.POST("/challenge", admin.NewChallenge)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
router.Run(":9000")
|
router.Run(":9000")
|
||||||
}
|
}
|
@@ -96,6 +96,17 @@ type PublicInfoResponse struct {
|
|||||||
TeamID int `json:"team_id"`
|
TeamID int `json:"team_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PublicAllInfoResponse 定义返回所有用户公开信息结构体 暂时不显示队伍名称
|
||||||
|
type PublicAllInfoResponse struct {
|
||||||
|
Id string `json:"id"`
|
||||||
|
Username string `json:"username"`
|
||||||
|
Affiliation string `json:"affiliation"`
|
||||||
|
Country string `json:"country"`
|
||||||
|
Website string `json:"website"`
|
||||||
|
TeamID string `json:"team_id"`
|
||||||
|
Hidden string `json:"hidden"`
|
||||||
|
}
|
||||||
|
|
||||||
// ChallengeResponse 定义获取题目的一个响应。
|
// ChallengeResponse 定义获取题目的一个响应。
|
||||||
type ChallengeResponse struct {
|
type ChallengeResponse struct {
|
||||||
ID int `json:"id"`
|
ID int `json:"id"`
|
||||||
|
Reference in New Issue
Block a user