package com.fdkankan.site.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.fdkankan.site.common.util.JwtUtil; import com.fdkankan.site.entity.ProjectNum; import com.fdkankan.site.entity.ProjectTeam; import com.fdkankan.site.mapper.IProjectNumMapper; import com.fdkankan.site.request.AppGetSceneInfoParam; import com.fdkankan.site.service.IProjectLogService; import com.fdkankan.site.service.IProjectNumService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.site.service.IProjectTeamService; import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; /** *

* 服务实现类 *

* * @author * @since 2022-10-10 */ @Service public class ProjectNumServiceImpl extends ServiceImpl implements IProjectNumService { @Autowired IProjectTeamService projectTeamService; @Autowired IProjectLogService projectLogService; @Override public List getListByProjectIds(Set projectIds) { if(projectIds == null || projectIds.size() <=0){ return new ArrayList<>(); } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.in(ProjectNum::getProjectId,projectIds); return this.list(wrapper); } @Override public HashMap> getTypeMap(List projectNums) { HashMap> typeMap = new HashMap<>(); for (ProjectNum projectNum : projectNums) { List numList ; if(typeMap.get(projectNum.getType()) == null){ numList = new ArrayList<>(); }else { numList = typeMap.get(projectNum.getType()); } numList.add(projectNum.getNum()); typeMap.put(projectNum.getType(),numList); } return typeMap; } @Override public void delByNumList(Integer projectId, List delNumList) { if(delNumList.size() >0){ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ProjectNum::getProjectId,projectId); wrapper.in(ProjectNum::getNum,delNumList); this.remove(wrapper); } } @Override public void addByNumList(Integer projectId, HashMap numType, List addNumList) { List list = new ArrayList<>(); for (String num : addNumList) { ProjectNum projectNum = new ProjectNum(); projectNum.setProjectId(projectId.toString()); projectNum.setNum(num); projectNum.setType(numType.get(num)); list.add(projectNum); } if(list.size() >0){ this.saveBatch(list); } } @Override public List getByNumList(List numList) { if(numList.size() >0 ){ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.in(ProjectNum::getNum,numList); return this.list(wrapper); } return new ArrayList<>(); } @Override public void updateProjectScene(AppGetSceneInfoParam param) { if(param.getNumList().size() >0 ){ LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.in(ProjectNum::getNum,param.getNumList()); if(param.getEditableFlag()!= null){ wrapper.set(ProjectNum::getEditableFlag,param.getEditableFlag()); } if(StringUtils.isNotBlank(param.getParentScene())){ wrapper.set(ProjectNum::getParentScene,param.getParentScene()); } this.update(wrapper); } } @Override public Set getNumList() { List list = this.list(); return list.stream().map(ProjectNum::getNum).collect(Collectors.toSet()); } @Override public void delByProjectId(Integer projectId,String token) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ProjectNum::getProjectId,projectId); List list = this.list(wrapper); if(list.size() <=0){ return; } List numList = list.stream().map(ProjectNum::getNum).collect(Collectors.toList()); this.remove(wrapper); projectLogService.addLog(projectId,"プロジェクト削除->シーン削除:",token,numList); } @Override public List getByNum(String num) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ProjectNum::getNum,num); return this.list(wrapper); } @Override public ProjectNum getByNumAndProjectId(String num, Integer projectId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ProjectNum::getNum,num); wrapper.eq(ProjectNum::getProjectId,projectId); return this.getOne(wrapper); } }