新增了医院管理

This commit is contained in:
2024-06-03 11:47:52 +08:00
parent 62473de7fc
commit f6d6417acf
13 changed files with 752 additions and 288 deletions
+112
View File
@@ -0,0 +1,112 @@
package controller
import (
"github.com/gin-gonic/gin"
"hospital-admin-api/api/dao"
"hospital-admin-api/api/dto"
"hospital-admin-api/api/requests"
"hospital-admin-api/api/responses"
"hospital-admin-api/api/service"
"hospital-admin-api/global"
"hospital-admin-api/utils"
"strconv"
)
type Area struct{}
// GetAreaList 获取地区列表
func (b *Area) GetAreaList(c *gin.Context) {
areaRequest := requests.AreaRequest{}
req := areaRequest.GetAreaList
if err := c.ShouldBind(&req); err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 参数验证
if err := global.Validate.Struct(req); err != nil {
responses.FailWithMessage(utils.Translate(err), c)
return
}
// 处理参数
if req.ParentId == "" && req.AreaId == "" && req.AreaName == "" {
req.ParentId = "1"
req.AreaType = 2
}
areaDao := dao.AreaDao{}
area, err := areaDao.GetAreaListByStruct(req)
if err != nil {
responses.Ok(c)
return
}
// 处理返回值
r := dto.GetAreaListDto(area)
responses.OkWithData(r, c)
}
// AddArea 新增地区
func (r *Area) AddArea(c *gin.Context) {
areaRequest := requests.AreaRequest{}
req := areaRequest.AddArea
if err := c.ShouldBindJSON(&req); err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 参数验证
if err := global.Validate.Struct(req); err != nil {
responses.FailWithMessage(utils.Translate(err), c)
return
}
// 业务处理
areaService := service.AreaService{}
_, err := areaService.AddArea(req)
if err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
responses.Ok(c)
}
// PutArea 修改地区
func (r *Area) PutArea(c *gin.Context) {
areaRequest := requests.AreaRequest{}
req := areaRequest.PutArea
if err := c.ShouldBindJSON(&req); err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 参数验证
if err := global.Validate.Struct(req); err != nil {
responses.FailWithMessage(utils.Translate(err), c)
return
}
id := c.Param("area_id")
if id == "" {
responses.FailWithMessage("缺少参数", c)
return
}
// 将 id 转换为 int64 类型
areaId, err := strconv.Atoi(id)
if err != nil {
responses.Fail(c)
return
}
// 业务处理
areaService := service.AreaService{}
_, err = areaService.PutArea(areaId, req)
if err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
responses.Ok(c)
}
-112
View File
@@ -1,117 +1,5 @@
package controller
import (
"github.com/gin-gonic/gin"
"hospital-admin-api/api/dao"
"hospital-admin-api/api/dto"
"hospital-admin-api/api/requests"
"hospital-admin-api/api/responses"
"hospital-admin-api/api/service"
"hospital-admin-api/global"
"hospital-admin-api/utils"
"strconv"
)
type Basic struct {
Area // 省市区
}
// Area 省市区
type Area struct{}
// GetAreaList 获取地区列表
func (b *Area) GetAreaList(c *gin.Context) {
basicRequest := requests.BasicRequest{}
req := basicRequest.GetAreaList
if err := c.ShouldBind(&req); err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 参数验证
if err := global.Validate.Struct(req); err != nil {
responses.FailWithMessage(utils.Translate(err), c)
return
}
// 处理参数
if req.ParentId == "" && req.AreaId == "" && req.AreaName == "" {
req.ParentId = "1"
req.AreaType = 2
}
areaDao := dao.AreaDao{}
area, err := areaDao.GetAreaListByStruct(req)
if err != nil {
responses.Ok(c)
return
}
// 处理返回值
r := dto.GetAreaListDto(area)
responses.OkWithData(r, c)
}
// AddArea 新增地区
func (r *Area) AddArea(c *gin.Context) {
basicRequest := requests.BasicRequest{}
req := basicRequest.AddArea
if err := c.ShouldBindJSON(&req); err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 参数验证
if err := global.Validate.Struct(req); err != nil {
responses.FailWithMessage(utils.Translate(err), c)
return
}
// 业务处理
basicService := service.BasicService{}
_, err := basicService.AddArea(req)
if err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
responses.Ok(c)
}
// PutArea 修改地区
func (r *Area) PutArea(c *gin.Context) {
basicRequest := requests.BasicRequest{}
req := basicRequest.PutArea
if err := c.ShouldBindJSON(&req); err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 参数验证
if err := global.Validate.Struct(req); err != nil {
responses.FailWithMessage(utils.Translate(err), c)
return
}
id := c.Param("area_id")
if id == "" {
responses.FailWithMessage("缺少参数", c)
return
}
// 将 id 转换为 int64 类型
areaId, err := strconv.Atoi(id)
if err != nil {
responses.Fail(c)
return
}
// 业务处理
basicService := service.BasicService{}
_, err = basicService.PutArea(areaId, req)
if err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
responses.Ok(c)
}
+140 -6
View File
@@ -7,28 +7,31 @@ import (
"hospital-admin-api/api/dto"
"hospital-admin-api/api/requests"
"hospital-admin-api/api/responses"
"hospital-admin-api/api/service"
"hospital-admin-api/global"
"hospital-admin-api/utils"
"strconv"
)
type Hospital struct{}
// GetHospitalLimit 获取医院列表-限制条数
func (b *Hospital) GetHospitalLimit(c *gin.Context) {
// GetHospitalList 获取医院列表
func (b *Hospital) GetHospitalList(c *gin.Context) {
hospitalRequest := requests.HospitalRequest{}
if err := c.ShouldBind(&hospitalRequest.GetHospitalLimit); err != nil {
req := hospitalRequest.GetHospitalList
if err := c.ShouldBind(&req); err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 参数验证
if err := global.Validate.Struct(hospitalRequest.GetHospitalLimit); err != nil {
if err := global.Validate.Struct(req); err != nil {
responses.FailWithMessage(utils.Translate(err), c)
return
}
hospitalDao := dao.Hospital{}
hospitals, err := hospitalDao.GetHospitalLimitByMaps(hospitalRequest.GetHospitalLimit)
hospitalDao := dao.HospitalDao{}
hospitals, err := hospitalDao.GetHospitalLimitByMaps(req)
if err != nil {
responses.Ok(c)
return
@@ -38,3 +41,134 @@ func (b *Hospital) GetHospitalLimit(c *gin.Context) {
getHospitalLimitResponse := dto.GetHospitalListDto(hospitals)
responses.OkWithData(getHospitalLimitResponse, c)
}
// GetHospitalPage 获取医院列表-分页
func (r *Hospital) GetHospitalPage(c *gin.Context) {
hospitalRequest := requests.HospitalRequest{}
req := hospitalRequest.GetHospitalPage
if err := c.ShouldBindJSON(&req); err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 参数验证
if err := global.Validate.Struct(req); err != nil {
responses.FailWithMessage(utils.Translate(err), c)
return
}
if req.Page == 0 {
req.Page = 1
}
if req.PageSize == 0 {
req.PageSize = 20
}
hospitalDao := dao.HospitalDao{}
hospital, total, err := hospitalDao.GetHospitalPageSearch(req, req.Page, req.PageSize)
if err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 处理返回值
GetHospitalPageResponses := dto.GetHospitalListDto(hospital)
result := make(map[string]interface{})
result["page"] = req.Page
result["page_size"] = req.PageSize
result["total"] = total
result["data"] = GetHospitalPageResponses
responses.OkWithData(result, c)
}
// AddHospital 新增医院
func (r *Hospital) AddHospital(c *gin.Context) {
hospitalRequest := requests.HospitalRequest{}
req := hospitalRequest.AddHospital
if err := c.ShouldBindJSON(&req); err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 参数验证
if err := global.Validate.Struct(req); err != nil {
responses.FailWithMessage(utils.Translate(err), c)
return
}
// 业务处理
hospitalService := service.HospitalService{}
_, err := hospitalService.AddHospital(req)
if err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
responses.Ok(c)
}
// PutHospital 修改医院
func (r *Hospital) PutHospital(c *gin.Context) {
hospitalRequest := requests.HospitalRequest{}
req := hospitalRequest.PutHospital
if err := c.ShouldBindJSON(&req); err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
// 参数验证
if err := global.Validate.Struct(req); err != nil {
responses.FailWithMessage(utils.Translate(err), c)
return
}
id := c.Param("hospital_id")
if id == "" {
responses.FailWithMessage("缺少参数", c)
return
}
// 将 id 转换为 int64 类型
hospitalId, err := strconv.ParseInt(id, 10, 64)
if err != nil {
responses.Fail(c)
return
}
// 业务处理
hospitalService := service.HospitalService{}
_, err = hospitalService.PutHospital(hospitalId, req)
if err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
responses.Ok(c)
}
// GetHospital 医院详情
func (r *Hospital) GetHospital(c *gin.Context) {
id := c.Param("hospital_id")
if id == "" {
responses.FailWithMessage("缺少参数", c)
return
}
// 将 id 转换为 int64 类型
hospitalId, err := strconv.ParseInt(id, 10, 64)
if err != nil {
responses.Fail(c)
return
}
// 业务处理
hospitalService := service.HospitalService{}
getHospitalResponses, err := hospitalService.GetHospital(hospitalId)
if err != nil {
responses.FailWithMessage(err.Error(), c)
return
}
responses.OkWithData(getHospitalResponses, c)
}