用户管理-初版
This commit is contained in:
parent
429223b1fb
commit
2a78628aaf
File diff suppressed because one or more lines are too long
@ -1,18 +1,40 @@
|
||||
package proto
|
||||
|
||||
import "github.com/NothAmor/SourceTrace/models"
|
||||
|
||||
type PageArgs struct {
|
||||
Page int `json:"page"`
|
||||
}
|
||||
|
||||
type UserArgs struct {
|
||||
ID int `json:"id" gorm:"primaryKey"`
|
||||
Username string `json:"username" gorm:"username"`
|
||||
Password string `json:"password"`
|
||||
Name string `json:"name"`
|
||||
Gender string `json:"gender"`
|
||||
Avatar string `json:"avatar" gorm:"default:https://git.nothamor.com:3000/avatars/5ac7c55998b93af2cb5c74e669959fc5?size=870"`
|
||||
Address string `json:"address"`
|
||||
Role int `json:"role" gorm:"default:1"`
|
||||
Email string `json:"email"`
|
||||
Phone string `json:"phone"`
|
||||
Username *string `json:"username" gorm:"username"`
|
||||
Password *string `json:"password"`
|
||||
Name *string `json:"name"`
|
||||
Gender *string `json:"gender"`
|
||||
Avatar *string `json:"avatar" gorm:"default:https://git.nothamor.com:3000/avatars/5ac7c55998b93af2cb5c74e669959fc5?size=870"`
|
||||
Address *string `json:"address"`
|
||||
Role *int `json:"role" gorm:"default:1"`
|
||||
Email *string `json:"email"`
|
||||
Phone *string `json:"phone"`
|
||||
}
|
||||
|
||||
func ParseUserArgToUser(userArgs UserArgs) models.Users {
|
||||
return models.Users{
|
||||
ID: userArgs.ID,
|
||||
Username: *userArgs.Username,
|
||||
Password: *userArgs.Password,
|
||||
Name: *userArgs.Name,
|
||||
Gender: *userArgs.Gender,
|
||||
Avatar: *userArgs.Avatar,
|
||||
Address: *userArgs.Address,
|
||||
Role: *userArgs.Role,
|
||||
Email: *userArgs.Email,
|
||||
Phone: *userArgs.Phone,
|
||||
}
|
||||
}
|
||||
|
||||
type UsersResp struct {
|
||||
Common
|
||||
Data []models.Users `json:"data"`
|
||||
}
|
||||
|
@ -289,8 +289,7 @@ func (t *Arith) AddUser(ctx context.Context, userArgs proto.UserArgs, result *pr
|
||||
func (t *Arith) DeleteUser(ctx context.Context, userID int, result *proto.Common) (err error) {
|
||||
//删除用户
|
||||
var user models.Users
|
||||
user.ID = userID
|
||||
err = common.DB.First(&user).Error
|
||||
err = common.DB.First(&user, userID).Error
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
result.Msg = "删除失败,删除用户不存在"
|
||||
return nil
|
||||
@ -303,3 +302,74 @@ func (t *Arith) DeleteUser(ctx context.Context, userID int, result *proto.Common
|
||||
result.Msg = "删除成功"
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t *Arith) UpdateUser(ctx context.Context, args proto.UserArgs, result *proto.Common) (err error) {
|
||||
//修改用户
|
||||
var users []models.Users
|
||||
err = common.DB.Where("id=?", args.ID).Find(&users).Error
|
||||
if err != nil {
|
||||
result.Msg = err.Error()
|
||||
result.Code = 100
|
||||
return nil
|
||||
}
|
||||
if len(users) == 0 {
|
||||
result.Msg = "修改失败,用户不存在"
|
||||
result.Code = 100
|
||||
return nil
|
||||
}
|
||||
|
||||
newUser := proto.ParseUserArgToUser(args)
|
||||
err = common.DB.Updates(&newUser).Error
|
||||
if err != nil {
|
||||
// 更新过程中发生错误
|
||||
result.Msg = "修改失败"
|
||||
result.Code = 100
|
||||
return err
|
||||
}
|
||||
|
||||
result.Msg = "修改成功"
|
||||
result.Code = 200
|
||||
return nil
|
||||
}
|
||||
func (t *Arith) ListUsers2(ctx context.Context, args proto.UserArgs, resp *proto.UsersResp) (err error) {
|
||||
query := common.DB
|
||||
if args.ID != 0 {
|
||||
query = query.Where("id=?", args.ID)
|
||||
}
|
||||
//密码保留
|
||||
if args.Username != nil && *args.Username != "" {
|
||||
query = query.Where("username = ?", args.Username)
|
||||
}
|
||||
if args.Name != nil && *args.Name != "" {
|
||||
query = query.Where("name like ?", "%"+*args.Name+"%")
|
||||
}
|
||||
if args.Gender != nil && *args.Gender != "" {
|
||||
query = query.Where("gender = ?", args.Gender)
|
||||
}
|
||||
if args.Avatar != nil && *args.Avatar != "" {
|
||||
query = query.Where("avatar = ?", args.Avatar)
|
||||
}
|
||||
if args.Address != nil && *args.Address != "" {
|
||||
query = query.Where("address = ?", args.Address)
|
||||
}
|
||||
if args.Role != nil && *args.Role >= 0 {
|
||||
query = query.Where("role = ?", args.Role)
|
||||
}
|
||||
if args.Email != nil && *args.Email != "" {
|
||||
query = query.Where("email = ?", args.Email)
|
||||
}
|
||||
if args.Phone != nil && *args.Phone != "" {
|
||||
query = query.Where("phone = ?", args.Phone)
|
||||
}
|
||||
var users []models.Users
|
||||
if err = query.Find(&users).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
resp.Common.Code = 200
|
||||
resp.Common.Msg = "查询成功"
|
||||
resp.Data = users
|
||||
for _, user := range resp.Data {
|
||||
println(user.Username, user.Address)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ func AddUser(c *gin.Context) {
|
||||
//1.获取参数
|
||||
var userArgs proto.UserArgs
|
||||
c.ShouldBindJSON(&userArgs)
|
||||
if userArgs.Username == "" || userArgs.Password == "" {
|
||||
if userArgs.Username == nil || userArgs.Password == nil {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": 200,
|
||||
"msg": "用户名&&密码不能为空",
|
||||
@ -76,11 +76,41 @@ func DeleteUser(c *gin.Context) {
|
||||
}
|
||||
|
||||
// // 修改用户
|
||||
// func UpdateUser(c *gin.Context) {
|
||||
// // 实现修改用户功能的代码
|
||||
// }
|
||||
func UpdateUser(c *gin.Context) {
|
||||
// 实现修改用户功能的代码
|
||||
var newUser proto.UserArgs
|
||||
err := c.ShouldBindJSON(&newUser)
|
||||
if err != nil {
|
||||
log.Printf("should bind json failed. err:[%+v]\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
// // 查询用户
|
||||
// func GetUser(c *gin.Context) {
|
||||
// // 实现查询用户功能的代码
|
||||
// }
|
||||
var result proto.Common
|
||||
err = common.RPC.Call(context.Background(), "UpdateUser", newUser, &result)
|
||||
if err != nil {
|
||||
log.Printf("failed to call: %v", err)
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, result)
|
||||
}
|
||||
|
||||
// 查询用户
|
||||
func ListUsers2(c *gin.Context) {
|
||||
// 实现查询用户功能的代码
|
||||
var userArgs proto.UserArgs
|
||||
err := c.ShouldBindJSON(&userArgs)
|
||||
if err != nil {
|
||||
log.Printf("should bind json failed. err:[%+v]\n", err)
|
||||
return
|
||||
}
|
||||
var resp proto.UsersResp
|
||||
err = common.RPC.Call(context.Background(), "ListUsers2", userArgs, &resp)
|
||||
if err != nil {
|
||||
log.Printf("failed to call:%v", err)
|
||||
return
|
||||
}
|
||||
for _, user := range resp.Data {
|
||||
println(user.Username, user.Address)
|
||||
}
|
||||
c.JSON(http.StatusOK, resp)
|
||||
}
|
||||
|
@ -1,18 +1,40 @@
|
||||
package proto
|
||||
|
||||
import "github.com/NothAmor/SourceTraceFront/models"
|
||||
|
||||
type PageArgs struct {
|
||||
Page int `json:"page"`
|
||||
}
|
||||
|
||||
type UserArgs struct {
|
||||
ID int `json:"id" gorm:"primaryKey"`
|
||||
Username string `json:"username" gorm:"username"`
|
||||
Password string `json:"password"`
|
||||
Name string `json:"name"`
|
||||
Gender string `json:"gender"`
|
||||
Avatar string `json:"avatar" gorm:"default:https://git.nothamor.com:3000/avatars/5ac7c55998b93af2cb5c74e669959fc5?size=870"`
|
||||
Address string `json:"address"`
|
||||
Role int `json:"role" gorm:"default:1"`
|
||||
Email string `json:"email"`
|
||||
Phone string `json:"phone"`
|
||||
Username *string `json:"username" gorm:"username"`
|
||||
Password *string `json:"password"`
|
||||
Name *string `json:"name"`
|
||||
Gender *string `json:"gender"`
|
||||
Avatar *string `json:"avatar" gorm:"default:https://git.nothamor.com:3000/avatars/5ac7c55998b93af2cb5c74e669959fc5?size=870"`
|
||||
Address *string `json:"address"`
|
||||
Role *int `json:"role" gorm:"default:1"`
|
||||
Email *string `json:"email"`
|
||||
Phone *string `json:"phone"`
|
||||
}
|
||||
|
||||
func ParseUserArgToUser(userArgs UserArgs) models.Users {
|
||||
return models.Users{
|
||||
ID: userArgs.ID,
|
||||
Username: *userArgs.Username,
|
||||
Password: *userArgs.Password,
|
||||
Name: *userArgs.Name,
|
||||
Gender: *userArgs.Gender,
|
||||
Avatar: *userArgs.Avatar,
|
||||
Address: *userArgs.Address,
|
||||
Role: *userArgs.Role,
|
||||
Email: *userArgs.Email,
|
||||
Phone: *userArgs.Phone,
|
||||
}
|
||||
}
|
||||
|
||||
type UsersResp struct {
|
||||
Common
|
||||
Data []models.Users `json:"data"`
|
||||
}
|
||||
|
@ -16,9 +16,11 @@ func InitRouter() {
|
||||
common.Core.POST("/register", controllers.Register)
|
||||
|
||||
userGroup := common.Core.Group("/user")
|
||||
userGroup.GET("/user/listUsers", controllers.ListUsers)
|
||||
userGroup.POST("/user/addUser", controllers.AddUser)
|
||||
userGroup.DELETE("/user/deleteUser/:id", controllers.DeleteUser)
|
||||
userGroup.GET("/listUsers", controllers.ListUsers)
|
||||
userGroup.POST("/addUser", controllers.AddUser)
|
||||
userGroup.DELETE("/deleteUser/:id", controllers.DeleteUser)
|
||||
userGroup.POST("/updateUser", controllers.UpdateUser)
|
||||
userGroup.POST("/listUsers2", controllers.ListUsers2)
|
||||
|
||||
common.Core.GET("/submitUrl", controllers.SubmitUrls)
|
||||
common.Core.POST("/submitUrl", controllers.SubmitUrl)
|
||||
|
Loading…
x
Reference in New Issue
Block a user