package com.newfiber.termite.service.impl; import com.newfiber.common.core.exception.ServiceException; import com.newfiber.common.core.web.domain.BaseEntity; import com.newfiber.common.core.web.service.BaseServiceImpl; import com.newfiber.common.redis.service.RedisService; import com.newfiber.termite.domain.ProjectInfo; import com.newfiber.termite.domain.request.ProjectInfoQueryRequest; import com.newfiber.termite.domain.request.ProjectInfoSaveRequest; import com.newfiber.termite.domain.request.ProjectInfoUpdateRequest; import com.newfiber.termite.mapper.ProjectInfoMapper; import com.newfiber.termite.service.IProjectInfoService; import java.util.ArrayList; import java.util.HashSet; import java.util.Set; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; import java.util.Optional; @Service public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, ProjectInfo> implements IProjectInfoService { @Resource private ProjectInfoMapper projectInfoMapper; @Override public long insert(ProjectInfoSaveRequest request) { ProjectInfo ProjectInfo = new ProjectInfo(); BeanUtils.copyProperties(request, ProjectInfo); save(ProjectInfo); return Optional.of(ProjectInfo).map(BaseEntity::getId).orElse(0L); } @Override public boolean update(ProjectInfoUpdateRequest request) { ProjectInfo ProjectInfo = new ProjectInfo(); BeanUtils.copyProperties(request, ProjectInfo); return updateById(ProjectInfo); } @Override @Transactional(rollbackFor = Exception.class) public boolean delete(String ids) { return deleteLogic(ids); } @Override public ProjectInfo selectDetail(Long id) { ProjectInfo ProjectInfo = projectInfoMapper.selectById(id); if(null == ProjectInfo){ throw new ServiceException(String.format("%s ID=%s 的记录不存在", this.getClass().getSimpleName(), id)); } return ProjectInfo; } @Override public ProjectInfo selectDetail(String projectCode) { ProjectInfoQueryRequest request = new ProjectInfoQueryRequest(); request.setProjectCode(projectCode); List<ProjectInfo> projectInfoList = selectList(request); if(CollectionUtils.isNotEmpty(projectInfoList)){ return projectInfoList.get(0); } return null; } @Override public List<ProjectInfo> selectPage(ProjectInfoQueryRequest request) { return projectInfoMapper.selectByCondition(request); } @Override public List<ProjectInfo> selectList(ProjectInfoQueryRequest request) { return projectInfoMapper.selectByCondition(request); } @Override public List<ProjectInfo> getUploadApi(String sn){ return projectInfoMapper.selectUploadApiBySn(sn); } @Override public Set<String> getUserProjectCodeList(Long userId) { List<ProjectInfo> projectInfoList = list(); Set<String> projectCodeList = new HashSet<>(); for(ProjectInfo projectInfo : projectInfoList){ for(String projectUserId : projectInfo.getProjectUsers().split(",")){ if(userId.toString().equals(projectUserId)){ projectCodeList.add(projectInfo.getProjectCode()); } } } return projectCodeList; } }