2023-07-04 16:53:23 +08:00

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)
}