package com.fdkankan.fusion.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.fdkankan.fusion.common.ResultCode; import com.fdkankan.fusion.entity.*; import com.fdkankan.fusion.exception.BusinessException; import com.fdkankan.fusion.mapper.IFusionMeterMapper; import com.fdkankan.fusion.service.ICaseFusionService; import com.fdkankan.fusion.service.ICaseService; import com.fdkankan.fusion.service.IFusionMeterService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** *

* 服务实现类 *

* * @author * @since 2022-08-11 */ @Service public class FusionMeterServiceImpl extends ServiceImpl implements IFusionMeterService { @Autowired ICaseFusionService caseFusionService; @Override public List getListByFusionId(Integer fusionId, String meterTitle) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(FusionMeter::getFusionId,fusionId); wrapper.eq(FusionMeter::getBindHide,0); if(StringUtils.isNotBlank(meterTitle)){ wrapper.like(FusionMeter::getMeterTitle,meterTitle); } return this.list(wrapper); } @Override public FusionMeter add(FusionMeter fusionMeter) { if(fusionMeter.getFusionId() == null || fusionMeter.getLength() == null || fusionMeter.getMeterType() == null || StringUtils.isEmpty(fusionMeter.getPosition())){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } String meterTitle = "总长度"; if(fusionMeter.getMeterType() == 2){ meterTitle = "总面积"; } fusionMeter.setMeterTitle(meterTitle); this.save(fusionMeter); return fusionMeter; } @Override public void deleteByFusionNumIds(List fusionNunIds) { for (Integer fusionNunId : fusionNunIds) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.like(FusionMeter::getPosition,"\"fusionNumId\":\""+fusionNunId+"\""); this.remove(wrapper); } } @Override public void deleteByFusionId(Integer fusionId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(FusionMeter::getFusionId,fusionId); this.remove(wrapper); } @Override public void deleteByCaseId(Integer caseId) { LambdaQueryWrapper fnwr = new LambdaQueryWrapper<>(); fnwr.eq(CaseFusion::getCaseId,caseId); List list = caseFusionService.list(fnwr); if(list.size() >0){ List fusionIds = list.parallelStream().map(CaseFusion::getFusionId).collect(Collectors.toList()); if(fusionIds.size() >0){ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.in(FusionMeter::getFusionId,fusionIds); this.remove(wrapper); } } } @Override public void hideOrShow( List fusionNumIds, Integer hide) { for (Integer fusionNunId : fusionNumIds) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.like(FusionMeter::getPosition,"\"fusionNumId\":\""+fusionNunId+"\""); wrapper.set(FusionMeter::getBindHide,hide); this.update(wrapper); } } }