diff --git a/api/dao/Project.go b/api/dao/Project.go index da87b24..16d4564 100644 --- a/api/dao/Project.go +++ b/api/dao/Project.go @@ -152,7 +152,17 @@ func (r *ProjectDao) GetResProjectListSearch(req requests.GetResProjectList) (m // 状态固定为1 query = query.Where("project_status = ?", 1) - query = query.Preload("Case") + // 使用 Preload 关联 Case 表 + query = query.Preload("Case", func(db *gorm.DB) *gorm.DB { + // 添加 case_status 过滤条件,排除掉 case_status 为 2 的记录 + return db.Where("case_status != ?", 2) + }) + + caseSubQuery := global.Db.Model(&model.Case{}). + Where("case.project_id = project.project_id"). + Where("case.case_status = ?", 1) + + query = query.Where("EXISTS (?)", caseSubQuery) if req.PlatformId != 0 { subQuery := global.Db.Model(&model.ProjectPlatform{}).