package controller import ( "case-api/api/dao" "case-api/api/dto" "case-api/api/requests" "case-api/api/responses" "case-api/api/service" "case-api/global" "case-api/utils" "github.com/gin-gonic/gin" "strconv" "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) caseDao := dao.CaseDao{} projectService := service.ProjectService{} for _, projectDto := range g { // 获取最近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 { if result.CaseStatus == 1 { // 加载最近更新情况 projectDto.LoadIsRecentlyUpdate(result) } } projectId, err := strconv.ParseInt(projectDto.ProjectId, 10, 64) if err != nil { responses.Fail(c) return } // 获取项目福利存在情况 isHaveWelfare := projectService.GetProjectIsHaveWelfare(projectId, platformId) // 加载是否开启福利 if isHaveWelfare { projectDto.IsWelfare = 1 } } result := make(map[string]interface{}) result["page"] = req.Page result["page_size"] = req.PageSize result["total"] = total result["data"] = g responses.OkWithData(result, c) }