187 lines
4.0 KiB
Go
187 lines
4.0 KiB
Go
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)
|
|
}
|