package controller import ( "case-open-api/api/dao" "case-open-api/api/dto" "case-open-api/api/requests" "case-open-api/api/responses" "case-open-api/global" "case-open-api/utils" "github.com/gin-gonic/gin" "time" ) type Project struct { } // GetProjectPage 获取列表-分页 func (b *Project) GetProjectPage(c *gin.Context) { ProjectRequest := requests.ProjectRequest{} req := ProjectRequest.GetProjectPage 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.Page == 0 { req.Page = 1 } if req.PageSize == 0 { req.PageSize = 20 } platformId := c.GetInt64("platformId") // 平台id if platformId == 0 { responses.FailWithMessage("非法请求", c) return } req.PlatformId = platformId // 获取数据 ProjectDao := dao.ProjectDao{} projects, total, err := ProjectDao.GetProjectPageSearch(req, req.Page, req.PageSize) if err != nil { responses.FailWithMessage("获取数据失败", c) return } // 处理返回值 g := dto.GetProjectListDto(projects) projectPlatformDao := dao.ProjectPlatformDao{} caseDao := dao.CaseDao{} for _, projectDto := range g { // 获取项目关联平台 maps := make(map[string]interface{}) maps["project_id"] = projectDto.ProjectId maps["platform_id"] = platformId projectPlatform, _ := projectPlatformDao.GetProjectPlatform(maps) if projectPlatform != nil { // 加载是否存在福利 projectDto.LoadIsWelfare(projectPlatform) } // 获取最近7天的病例 now := time.Now() t := now.AddDate(0, 0, -7) maps = make(map[string]interface{}) maps["project_id"] = projectDto.ProjectId result, _ := caseDao.GetCaseFormPastDay(maps, t) if result != nil { // 加载最近更新情况 projectDto.LoadIsRecentlyUpdate(result) } } result := make(map[string]interface{}) result["page"] = req.Page result["page_size"] = req.PageSize result["total"] = total result["data"] = g responses.OkWithData(result, c) }