package controller import ( "github.com/gin-gonic/gin" "hepa-calc-api/api/dao" "hepa-calc-api/api/dto" "hepa-calc-api/api/requests" "hepa-calc-api/api/responses" "hepa-calc-api/global" "hepa-calc-api/utils" "strconv" ) type Basic struct{} // GetBaseClassList 获取分类列表 func (r *Basic) GetBaseClassList(c *gin.Context) { basicRequest := requests.BasicRequest{} req := basicRequest.GetBaseClassList 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 } // 获取分类数据 baseClassDao := dao.BaseClassDao{} baseClass, err := baseClassDao.GetBaseClassListSearch(req) if err != nil { responses.FailWithMessage(err.Error(), c) return } // 处理返回值 g := dto.GetBaseClassListDto(baseClass) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.OkWithData(g, c) } // GetBaseClassRecommendList 获取分类列表-推荐搜索 func (r *Basic) GetBaseClassRecommendList(c *gin.Context) { // 获取分类数据 baseClassDao := dao.BaseClassDao{} maps := make(map[string]interface{}) maps["class_status"] = 1 maps["is_recommend_search"] = 1 baseClass, err := baseClassDao.GetBaseClassOrderLimitList(maps, "sort desc", 100) if err != nil { responses.FailWithMessage(err.Error(), c) return } // 处理返回值 g := dto.GetBaseClassListDto(baseClass) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.OkWithData(g, c) } // GetBaseClass 获取分类详情 func (r *Basic) GetBaseClass(c *gin.Context) { id := c.Param("class_id") if id == "" { responses.FailWithMessage("缺少参数", c) return } // 将 id 转换为 int64 类型 classId, err := strconv.ParseInt(id, 10, 64) if err != nil { responses.Fail(c) return } // 获取数据 baseClassDao := dao.BaseClassDao{} baseClass, err := baseClassDao.GetBaseClassById(classId) if err != nil { responses.FailWithMessage("分类不存在", c) return } if baseClass.ClassStatus != 1 { responses.FailWithMessage("分类不存在", c) return } // 处理返回值 g := dto.GetBaseClassDto(baseClass) responses.OkWithData(g, c) } // GetAreaList 获取地区列表 func (r *Basic) 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 = "" } // 获取分类数据 baseAreaDao := dao.BaseAreaDao{} baseAreas, err := baseAreaDao.GetAreaList(req) if err != nil { responses.FailWithMessage(err.Error(), c) return } // 处理返回值 g := dto.GetBaseAreaListDto(baseAreas) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.OkWithData(g, c) } // GetChronicDiseaseList 获取慢性疾病列表 func (r *Basic) GetChronicDiseaseList(c *gin.Context) { // 获取分类数据 baseChronicDiseaseDao := dao.BaseChronicDiseaseDao{} maps := make(map[string]interface{}) baseChronicDiseases, err := baseChronicDiseaseDao.GetBaseChronicDiseaseList(maps) if err != nil { responses.FailWithMessage(err.Error(), c) return } // 处理返回值 g := dto.GetChronicDiseaseListDto(baseChronicDiseases) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.OkWithData(g, c) } // GetDiseaseList 获取疾病分类列表 func (r *Basic) GetDiseaseList(c *gin.Context) { // 获取分类数据 baseDiseaseClassDao := dao.BaseDiseaseClassDao{} maps := make(map[string]interface{}) baseDiseaseClass, err := baseDiseaseClassDao.GetBaseDiseaseClassOrderList(maps, "sort desc", 20) if err != nil { responses.FailWithMessage(err.Error(), c) return } // 处理返回值 g := dto.GetDiseaseListDto(baseDiseaseClass) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.OkWithData(g, c) } // GetNationList 获取民族列表 func (r *Basic) GetNationList(c *gin.Context) { // 获取分类数据 baseNationDao := dao.BaseNationDao{} maps := make(map[string]interface{}) baseNations, err := baseNationDao.GetBaseNationList(maps) if err != nil { responses.FailWithMessage(err.Error(), c) return } // 处理返回值 g := dto.GetBaseNationListDto(baseNations) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.OkWithData(g, c) }