package controller import ( "github.com/gin-gonic/gin" "hospital-admin-api/api/dao" "hospital-admin-api/api/requests" "hospital-admin-api/api/responses" "hospital-admin-api/api/responses/deptResponse" "hospital-admin-api/api/service" "hospital-admin-api/global" "hospital-admin-api/utils" "strconv" ) type Dept struct{} // GetDeptList 获取部门列表 func (r *Dept) GetDeptList(c *gin.Context) { deptRequest := service.DeptService{} deptList, err := deptRequest.GetDeptList() if err != nil { responses.FailWithMessage(err.Error(), c) return } if deptList == nil { responses.Ok(c) return } responses.OkWithData(deptList, c) return } // AddDept 新增部门 func (r *Dept) AddDept(c *gin.Context) { deptRequest := requests.DeptRequest{} if err := c.ShouldBind(&deptRequest.AddDept); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(deptRequest.AddDept); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } // 获取角色身份 roleService := service.RoleService{} isAdmin, err := roleService.GetRoleIden(c) if err != nil { responses.FailWithMessage(err.Error(), c) return } if !isAdmin { responses.FailWithMessage("非管理员,无法添加部门", c) return } // 业务处理 deptService := service.DeptService{} _, err = deptService.AddDept(deptRequest.AddDept) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.Ok(c) } // GetDept 部门详情 func (r *Dept) GetDept(c *gin.Context) { id := c.Param("dept_id") if id == "" { responses.FailWithMessage("缺少参数", c) return } // 将 id 转换为 int64 类型 deptId, err := strconv.ParseInt(id, 10, 64) if err != nil { responses.Fail(c) return } // 获取部门详情 adminDeptDao := dao.AdminDeptDao{} adminDept, err := adminDeptDao.GetAdminDeptById(deptId) if err != nil || adminDept == nil { responses.FailWithMessage("部门数据错误", c) return } // 处理返回值 getDeptResponses := deptResponse.GetDeptResponse(adminDept) responses.OkWithData(getDeptResponses, c) } // DeleteDept 删除部门-批量 func (r *Dept) DeleteDept(c *gin.Context) { deptRequest := requests.DeptRequest{} if err := c.ShouldBindJSON(&deptRequest.DeleteDept); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(deptRequest.DeleteDept); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } // 获取角色身份 roleService := service.RoleService{} isAdmin, err := roleService.GetRoleIden(c) if err != nil { responses.FailWithMessage(err.Error(), c) return } if !isAdmin { responses.FailWithMessage("非管理员,无法添加部门", c) return } // 业务处理 apiService := service.DeptService{} _, err = apiService.DeleteDept(deptRequest.DeleteDept) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.Ok(c) } // PutDept 修改部门 func (r *Dept) PutDept(c *gin.Context) { deptRequest := requests.DeptRequest{} if err := c.ShouldBind(&deptRequest.PutDept); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(deptRequest.PutDept); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } id := c.Param("dept_id") if id == "" { responses.FailWithMessage("缺少参数", c) return } // 将 id 转换为 int64 类型 deptId, err := strconv.ParseInt(id, 10, 64) if err != nil { responses.Fail(c) return } // 获取角色身份 roleService := service.RoleService{} isAdmin, err := roleService.GetRoleIden(c) if err != nil { responses.FailWithMessage(err.Error(), c) return } if !isAdmin { responses.FailWithMessage("非管理员,无法添加部门", c) return } // 业务处理 deptService := service.DeptService{} _, err = deptService.PutDept(deptId, deptRequest.PutDept) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.Ok(c) }