207 lines
4.6 KiB
Go
207 lines
4.6 KiB
Go
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)
|
|
}
|