新增用户相关接口

This commit is contained in:
2023-06-29 16:16:21 +08:00
parent 966057fa5b
commit 98aa3263bb
11 changed files with 475 additions and 114 deletions
+66 -56
View File
@@ -6,6 +6,7 @@ import (
"hospital-admin-api/api/requests"
"hospital-admin-api/api/responses"
"hospital-admin-api/api/responses/userResponse"
"hospital-admin-api/api/service"
"hospital-admin-api/global"
"hospital-admin-api/utils"
"strconv"
@@ -46,60 +47,7 @@ func (r *User) GetUserPage(c *gin.Context) {
}
// 处理返回值
getUserPageResponses := make([]userResponse.GetUserPage, len(adminUser))
if len(adminUser) > 0 {
for i, v := range adminUser {
var Role *userResponse.GetUserPageRole
if v.Role != nil {
Role = &userResponse.GetUserPageRole{
RoleId: strconv.FormatInt(v.Role.RoleId, 10),
RoleName: v.Role.RoleName,
}
}
var Dept *userResponse.GetUserPageDept
if v.Dept != nil {
Dept = &userResponse.GetUserPageDept{
DeptId: strconv.FormatInt(v.Dept.DeptId, 10),
DeptName: v.Dept.DeptName,
}
}
var Post *userResponse.GetUserPagePost
if v.Post != nil {
Post = &userResponse.GetUserPagePost{
PostId: strconv.FormatInt(v.Post.PostId, 10),
PostName: v.Post.PostName,
}
}
// 将原始结构体转换为新结构体
getUserPageResponse := userResponse.GetUserPage{
UserID: strconv.Itoa(int(v.UserID)),
Access: v.Access,
Status: v.Status,
IsDeleted: v.IsDeleted,
IsDisabled: v.IsDisabled,
NickName: v.NickName,
Phone: v.Phone,
Avatar: v.Avatar,
Sex: v.Sex,
Email: v.Email,
RoleID: strconv.Itoa(int(v.RoleID)),
DeptID: strconv.Itoa(int(v.DeptID)),
PostID: strconv.Itoa(int(v.PostID)),
CreatedAt: v.CreatedAt,
UpdatedAt: v.UpdatedAt,
Role: Role,
Dept: Dept,
Post: Post,
}
// 将转换后的结构体添加到新切片中
getUserPageResponses[i] = getUserPageResponse
}
}
getUserPageResponses := userResponse.GetUserPageResponse(adminUser)
result := make(map[string]interface{})
result["page"] = UserRequest.GetUserPage.Page
@@ -112,14 +60,76 @@ func (r *User) GetUserPage(c *gin.Context) {
// AddUser 新增用户
func (r *User) AddUser(c *gin.Context) {
UserRequest := requests.UserRequest{}
if err := c.ShouldBind(&UserRequest.GetUserPage); err != nil {
if err := c.ShouldBind(&UserRequest.AddUser); err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 参数验证
if err := global.Validate.Struct(UserRequest.GetUserPage); err != nil {
if err := global.Validate.Struct(UserRequest.AddUser); err != nil {
responses.FailWithMessage(utils.Translate(err), c)
return
}
// 业务处理
UserService := service.UserService{}
_, err := UserService.AddUser(c, UserRequest.AddUser)
if err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
responses.Ok(c)
}
// GetUser 用户详情
func (r *User) GetUser(c *gin.Context) {
id := c.Param("user_id")
if id == "" {
responses.FailWithMessage("缺少参数", c)
return
}
// 将 id 转换为 int64 类型
userId, err := strconv.ParseInt(id, 10, 64)
if err != nil {
responses.Fail(c)
return
}
// 获取用户详情
AdminUserDao := dao.AdminUserDao{}
adminUser, err := AdminUserDao.GetAdminUserFirstById(userId)
if err != nil || adminUser == nil {
responses.FailWithMessage("用户数据错误", c)
return
}
// 处理返回值
getUserResponses := userResponse.GetUserResponse(adminUser)
responses.OkWithData(getUserResponses, c)
}
// DeleteUser 删除用户-批量
func (r *User) DeleteUser(c *gin.Context) {
userRequest := requests.UserRequest{}
if err := c.ShouldBindJSON(&userRequest.DeleteUser); err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 参数验证
if err := global.Validate.Struct(userRequest.DeleteUser); err != nil {
responses.FailWithMessage(utils.Translate(err), c)
return
}
// 业务处理
userService := service.UserService{}
_, err := userService.DeleteUser(c, userRequest.DeleteUser)
if err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
responses.Ok(c)
}