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.common.util.UploadToOssUtil;
import com.fdkankan.fusion.entity.CaseOverview;
import com.fdkankan.fusion.entity.CaseTabulation;
import com.fdkankan.fusion.exception.BusinessException;
import com.fdkankan.fusion.mapper.ICaseOverviewMapper;
import com.fdkankan.fusion.service.ICaseOverviewService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.fusion.service.ICaseTabulationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
/**
*
* 服务实现类
*
*
* @author
* @since 2025-05-13
*/
@Service
public class CaseOverviewServiceImpl extends ServiceImpl implements ICaseOverviewService {
@Autowired
ICaseTabulationService caseTabulationService;
@Autowired
UploadToOssUtil uploadToOssUtil;
@Override
public List getByCaseId(Integer caseId) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CaseOverview::getCaseId,caseId);
wrapper.orderByDesc(CaseOverview::getId);
return this.list(wrapper);
}
@Override
public void del(Integer overviewId) {
if(overviewId == null ){
throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
}
CaseOverview caseOverview = this.getById(overviewId);
if(caseOverview == null){
return;
}
this.removeById(overviewId);
this.delFile(caseOverview);
List caseTabulations = caseTabulationService.getByOverId(overviewId);
if(!caseTabulations.isEmpty()){
caseTabulationService.delByIds(caseTabulations.stream().map(CaseTabulation::getId).collect(Collectors.toList()));
}
}
private void delFile(CaseOverview caseOverview) {
List list = this.getByCover(caseOverview.getListCover());
if(list.isEmpty()){
uploadToOssUtil.delete(caseOverview.getListCover());
}
List list2 = this.getByCover(caseOverview.getKankanCover());
if(list2.isEmpty()){
uploadToOssUtil.delete(caseOverview.getKankanCover());
}
}
private List getByCover(String listCover) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.and(e -> e.eq(CaseOverview::getListCover,listCover).or().eq(CaseOverview::getKankanCover,listCover));
return this.list(wrapper);
}
@Override
public void updateTitleById(Integer overviewId, String filesTitle) {
LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(CaseOverview::getId,overviewId);
wrapper.set(CaseOverview::getTitle,filesTitle);
this.update(wrapper);
}
}