团队app配置增加绑定工作流
This commit is contained in:
parent
a0b189854d
commit
b6b23bfd34
@ -4,6 +4,7 @@ import com.qqchen.deploy.backend.deploy.entity.Team;
|
||||
import com.qqchen.deploy.backend.framework.repository.IBaseRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Repository
|
||||
@ -18,5 +19,10 @@ public interface ITeamRepository extends IBaseRepository<Team, Long> {
|
||||
* 检查团队编码是否存在
|
||||
*/
|
||||
boolean existsByTeamCodeAndDeletedFalse(String teamCode);
|
||||
|
||||
/**
|
||||
* 查询用户作为负责人的团队(忽略已删除)
|
||||
*/
|
||||
List<Team> findByOwnerIdAndDeletedFalse(Long ownerId);
|
||||
}
|
||||
|
||||
|
||||
@ -77,16 +77,23 @@ public class DeployServiceImpl implements IDeployService {
|
||||
User user = userRepository.findById(currentUserId)
|
||||
.orElseThrow(() -> new RuntimeException("用户不存在"));
|
||||
|
||||
// 2. 查询用户所属的团队
|
||||
// 2. 查询用户作为成员的团队
|
||||
List<TeamMember> teamMembers = teamMemberRepository.findByUserIdAndDeletedFalse(currentUserId);
|
||||
if (teamMembers.isEmpty()) {
|
||||
log.info("用户 {} 未加入任何团队", user.getUsername());
|
||||
|
||||
// 3. 查询用户作为负责人的团队
|
||||
List<Team> ownedTeams = teamRepository.findByOwnerIdAndDeletedFalse(currentUserId);
|
||||
|
||||
// 4. 合并团队ID(去重)
|
||||
Set<Long> teamIdSet = new HashSet<>();
|
||||
teamIdSet.addAll(teamMembers.stream().map(TeamMember::getTeamId).collect(toList()));
|
||||
teamIdSet.addAll(ownedTeams.stream().map(Team::getId).collect(toList()));
|
||||
|
||||
if (teamIdSet.isEmpty()) {
|
||||
log.info("用户 {} 未加入任何团队且不是任何团队的负责人", user.getUsername());
|
||||
return buildEmptyResult(user);
|
||||
}
|
||||
|
||||
List<Long> teamIds = teamMembers.stream()
|
||||
.map(TeamMember::getTeamId)
|
||||
.collect(toList());
|
||||
|
||||
List<Long> teamIds = new ArrayList<>(teamIdSet);
|
||||
|
||||
// 3. 批量查询团队信息
|
||||
Map<Long, Team> teamMap = teamRepository.findAllById(teamIds)
|
||||
@ -178,6 +185,7 @@ public class DeployServiceImpl implements IDeployService {
|
||||
List<TeamDeployableDTO> teamDTOs = teamIds.stream()
|
||||
.map(teamId -> buildTeamDTO(
|
||||
teamId,
|
||||
currentUserId,
|
||||
teamMap,
|
||||
teamMemberMap,
|
||||
configMap,
|
||||
@ -219,6 +227,7 @@ public class DeployServiceImpl implements IDeployService {
|
||||
*/
|
||||
private TeamDeployableDTO buildTeamDTO(
|
||||
Long teamId,
|
||||
Long currentUserId,
|
||||
Map<Long, Team> teamMap,
|
||||
Map<Long, TeamMember> teamMemberMap,
|
||||
Map<Long, TeamConfig> configMap,
|
||||
@ -242,7 +251,15 @@ public class DeployServiceImpl implements IDeployService {
|
||||
teamDTO.setTeamCode(team.getTeamCode());
|
||||
teamDTO.setTeamName(team.getTeamName());
|
||||
teamDTO.setDescription(team.getDescription());
|
||||
teamDTO.setTeamRole(member != null ? member.getRoleInTeam() : null);
|
||||
|
||||
// 设置团队角色:如果是成员则使用成员角色,如果是负责人但不在成员表中则设置为 "OWNER"
|
||||
if (member != null) {
|
||||
teamDTO.setTeamRole(member.getRoleInTeam());
|
||||
} else if (team.getOwnerId() != null && team.getOwnerId().equals(currentUserId)) {
|
||||
teamDTO.setTeamRole("OWNER");
|
||||
} else {
|
||||
teamDTO.setTeamRole(null);
|
||||
}
|
||||
|
||||
// 组装环境数据
|
||||
if (config != null && config.getAllowedEnvironmentIds() != null && !config.getAllowedEnvironmentIds().isEmpty()) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user