package com.fdkankan.fusion.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fdkankan.fusion.entity.CaseFiles;
import com.fdkankan.fusion.entity.CaseOverview;
import com.fdkankan.fusion.entity.CaseTabulation;
import com.fdkankan.fusion.mapper.ICaseTabulationMapper;
import com.fdkankan.fusion.service.ICaseFilesService;
import com.fdkankan.fusion.service.ICaseOverviewService;
import com.fdkankan.fusion.service.ICaseTabulationService;
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.List;
/**
*
* 服务实现类
*
*
* @author
* @since 2025-05-13
*/
@Service
public class CaseTabulationServiceImpl extends ServiceImpl implements ICaseTabulationService {
@Autowired
ICaseFilesService caseFilesService;
@Autowired
ICaseOverviewService caseOverviewService;
@Override
public List getByCaseId(String caseId) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CaseTabulation::getCaseId,caseId);
wrapper.isNull(CaseTabulation::getOverviewId);
wrapper.orderByDesc(CaseTabulation::getId);
return this.list(wrapper);
}
@Override
public List getByOverviewId(String overviewId) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CaseTabulation::getOverviewId,overviewId);
wrapper.orderByDesc(CaseTabulation::getId);
return this.list(wrapper);
}
@Override
public void addOrUpdate(CaseTabulation caseTabulation) {
this.saveOrUpdate(caseTabulation);
if(StringUtils.isNotBlank(caseTabulation.getListCover()) || caseTabulation.getOverviewId() != null){
CaseFiles caseFiles = new CaseFiles();
if(caseTabulation.getId()!=null){
CaseTabulation db = this.getById(caseTabulation.getId());
if(caseTabulation.getOverviewId() == null){
caseTabulation.setOverviewId(db.getOverviewId());
}
CaseFiles dbCaseFile = caseFilesService.getByTabulation(caseTabulation.getId());
if(dbCaseFile != null){
caseFiles.setFilesId(dbCaseFile.getFilesId());
}
}
if(caseTabulation.getOverviewId()!=null){
CaseFiles dbCaseFile = caseFilesService.getByOverviewId(caseTabulation.getOverviewId());
if(dbCaseFile != null){
caseFiles.setFilesId(dbCaseFile.getFilesId());
}
}
caseFiles.setCaseId(caseTabulation.getCaseId());
caseFiles.setFilesUrl(caseTabulation.getListCover());
if(StringUtils.isBlank(caseTabulation.getListCover())){
CaseOverview caseOverview = caseOverviewService.getById(caseTabulation.getOverviewId());
caseFiles.setFilesUrl(caseOverview.getListCover());
}
if(caseTabulation.getOverviewId() != null){ //平面图
caseFiles.setFilesTypeId(41);
caseFiles.setFilesTitle("平面图");
caseFiles.setOverviewId(caseTabulation.getOverviewId() );
caseFiles.setTabulationId(caseTabulation.getId() );
}else {
caseFiles.setFilesTypeId(42);
caseFiles.setFilesTitle("方位图");
caseFiles.setTabulationId(caseTabulation.getId() );
}
caseFilesService.saveOrUpdate(caseFiles);
}
}
}