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{} _, areaId, err := areaService.AddArea(req) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.OkWithData(areaId, 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) }