diff --git a/server/devops/application/project_app.go b/server/devops/application/project_app.go index eef0a076..3922c5f4 100644 --- a/server/devops/application/project_app.go +++ b/server/devops/application/project_app.go @@ -41,12 +41,18 @@ type projectAppImpl struct { projectRepo repository.Project projectEnvRepo repository.ProjectEnv projectMemberRepo repository.ProjectMemeber + machineRepo repository.Machine + redisRepo repository.Redis + dbRepo repository.Db } var ProjectApp Project = &projectAppImpl{ projectRepo: persistence.ProjectRepo, projectEnvRepo: persistence.ProjectEnvRepo, projectMemberRepo: persistence.ProjectMemberRepo, + machineRepo: persistence.MachineDao, + redisRepo: persistence.RedisDao, + dbRepo: persistence.DbDao, } // 分页获取项目信息列表 @@ -73,6 +79,9 @@ func (p *projectAppImpl) SaveProject(project *entity.Project) { } func (p *projectAppImpl) DelProject(id uint64) { + biz.IsTrue(p.machineRepo.Count(&entity.Machine{ProjectId: id}) == 0, "请先删除该项目关联的机器信息") + biz.IsTrue(p.redisRepo.Count(&entity.Redis{ProjectId: id}) == 0, "请先删除该项目关联的redis信息") + biz.IsTrue(p.dbRepo.Count(&entity.Db{ProjectId: id}) == 0, "请先删除该项目关联的数据库信息") p.projectRepo.Delete(id) p.projectEnvRepo.DeleteEnvs(id) p.projectMemberRepo.DeleteMems(id) diff --git a/server/devops/infrastructure/persistence/db_repo.go b/server/devops/infrastructure/persistence/db_repo.go index 9fef18b2..f88bcdea 100644 --- a/server/devops/infrastructure/persistence/db_repo.go +++ b/server/devops/infrastructure/persistence/db_repo.go @@ -22,9 +22,15 @@ func (d *dbRepo) GetDbList(condition *entity.Db, pageParam *model.PageParam, toE if condition.ProjectId != 0 { sql = fmt.Sprintf("%s AND d.project_id = %d", sql, condition.ProjectId) } + if condition.EnvId != 0 { + sql = fmt.Sprintf("%s AND d.env_id = %d", sql, condition.EnvId) + } if condition.Host != "" { sql = sql + " AND d.host LIKE '%" + condition.Host + "%'" } + if condition.Database != "" { + sql = sql + " AND d.database LIKE '%" + condition.Database + "%'" + } sql = sql + " ORDER BY d.create_time DESC" return model.GetPageBySql(sql, pageParam, toEntity) } diff --git a/server/devops/infrastructure/persistence/redis_repo.go b/server/devops/infrastructure/persistence/redis_repo.go index f8e7842b..ee719119 100644 --- a/server/devops/infrastructure/persistence/redis_repo.go +++ b/server/devops/infrastructure/persistence/redis_repo.go @@ -22,6 +22,9 @@ func (r *redisRepo) GetRedisList(condition *entity.Redis, pageParam *model.PageP if condition.ProjectId != 0 { sql = fmt.Sprintf("%s AND d.project_id = %d", sql, condition.ProjectId) } + if condition.EnvId != 0 { + sql = fmt.Sprintf("%s AND d.env_id = %d", sql, condition.EnvId) + } if condition.Host != "" { sql = sql + " AND d.host LIKE '%" + condition.Host + "%'" }