package com.cloudroam.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.injector.methods.SelectCount;
import com.cloudroam.common.enumeration.DeletedEnum;
import com.cloudroam.dto.projectDaily.CreateWithTaskDTO;
import com.cloudroam.model.ProjectTaskDeveloperDO;
import com.cloudroam.mapper.ProjectTaskDeveloperMapper;
import com.cloudroam.service.ProjectTaskDeveloperService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.List;
/**
*
* 服务实现类
*
*
* @author generator@TaoJie
* @since 2025-01-03
*/
@Service
public class ProjectTaskDeveloperServiceImpl extends ServiceImpl implements ProjectTaskDeveloperService {
/**
* 查看是否已经存在当前开发
* @param createBatchTaskDTO
* @return
*/
@Override
public boolean existsProjectTaskDeveloperByTaskId(CreateWithTaskDTO createBatchTaskDTO) {
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
queryWrapper
.eq(ProjectTaskDeveloperDO::getIsDeleted, DeletedEnum.DELETED_NO.getCode())
.eq(!StringUtils.isEmpty(createBatchTaskDTO.getTaskId()),ProjectTaskDeveloperDO::getTaskId,createBatchTaskDTO.getTaskId())
.eq(!StringUtils.isEmpty(createBatchTaskDTO.getUserId()),ProjectTaskDeveloperDO::getDeveloperId,createBatchTaskDTO.getUserId())
;
return baseMapper.selectCount(queryWrapper)>0;
}
@Override
public List getProjectTaskDeveloperByTaskId(String taskId) {
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
queryWrapper
.eq(ProjectTaskDeveloperDO::getIsDeleted, DeletedEnum.DELETED_NO.getCode())
.eq(!StringUtils.isEmpty(taskId),ProjectTaskDeveloperDO::getTaskId,taskId)
;
return baseMapper.selectList(queryWrapper);
}
@Override
public ProjectTaskDeveloperDO getProjectTaskDeveloperByTaskIdDeveloperId(String taskId, String userId) {
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProjectTaskDeveloperDO::getIsDeleted, DeletedEnum.DELETED_NO.getCode())
.eq(ProjectTaskDeveloperDO::getTaskId,taskId)
.eq(ProjectTaskDeveloperDO::getDeveloperId,userId);
List projectTaskDeveloperDOList = baseMapper.selectList(queryWrapper);
if(!CollectionUtils.isEmpty(projectTaskDeveloperDOList)){
return projectTaskDeveloperDOList.get(0);
}
return null;
}
@Transactional
@Override
public boolean deleteProjectTaskDeveloperByTaskIdDeveloperId(String taskId, String createUserId) {
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProjectTaskDeveloperDO::getIsDeleted, DeletedEnum.DELETED_NO.getCode())
.eq(ProjectTaskDeveloperDO::getTaskId,taskId)
.eq(ProjectTaskDeveloperDO::getDeveloperId,createUserId);
List projectTaskDeveloperDOList = baseMapper.selectList(queryWrapper);
if(!CollectionUtils.isEmpty(projectTaskDeveloperDOList)){
projectTaskDeveloperDOList.forEach(projectTaskDeveloperDO -> {
removeById(projectTaskDeveloperDO.getId());
});
}
return true;
}
}