package com.fdkankan.fusion.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fdkankan.fusion.common.PageInfo;
import com.fdkankan.fusion.entity.CaseOverview;
import com.fdkankan.fusion.entity.CaseTabulation;
import com.fdkankan.fusion.entity.CommonUpload;
import com.fdkankan.fusion.mapper.ICaseOverviewMapper;
import com.fdkankan.fusion.request.CaseOverviewParam;
import com.fdkankan.fusion.service.ICaseOverviewService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.fusion.service.ICaseTabulationService;
import com.fdkankan.fusion.service.ICommonUploadService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
/**
*
* 服务实现类
*
*
* @author
* @since 2025-05-13
*/
@Service
@Slf4j
public class CaseOverviewServiceImpl extends ServiceImpl implements ICaseOverviewService {
@Autowired
ICaseTabulationService caseTabulationService;
@Autowired
ICommonUploadService commonUploadService;
@Override
public Object pageList(CaseOverviewParam param) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
if(StringUtils.isNotBlank(param.getTitle())){
wrapper.like(CaseOverview::getTitle,param.getTitle());
}
wrapper.orderByDesc(CaseOverview::getId);
Page page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
List collect = page.getRecords().stream().map(CaseOverview::getListCover).filter(StringUtils::isNotBlank).collect(Collectors.toList());
HashMap map = commonUploadService.getByUrls(collect);
for (CaseOverview record : page.getRecords()) {
CommonUpload commonUpload = map.get(record.getListCover());
if(commonUpload != null){
record.setFileDir(commonUpload.getUnzipPath());
}
}
return PageInfo.PageInfo(page);
}
@Override
public List getByCaseId(String caseId) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CaseOverview::getCaseId,caseId);
wrapper.orderByDesc(CaseOverview::getId);
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);
}
@Override
public void updateListCoverById(Integer overviewId, String listCover) {
LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(CaseOverview::getId,overviewId);
wrapper.set(CaseOverview::getListCover,listCover);
this.update(wrapper);
}
@Override
public CaseOverview getByNumAndSubGroup(String num, Integer subGroup) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CaseOverview::getNum,num);
wrapper.eq(CaseOverview::getSubGroup,subGroup);
List list = this.list(wrapper);
if(list ==null || list.isEmpty()){
return null;
}
return list.get(0);
}
}