package com.fdkankan.manage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fdkankan.manage.common.EvidenceEnum;
import com.fdkankan.manage.entity.DictEvidence;
import com.fdkankan.manage.mapper.IDictEvidenceMapper;
import com.fdkankan.manage.service.IDictEvidenceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.manage.vo.response.DictEvidenceVoList;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
*
* 服务实现类
*
*
* @author
* @since 2025-12-22
*/
@Service
public class DictEvidenceServiceImpl extends ServiceImpl implements IDictEvidenceService {
@Override
public HashMap> getMapByResourceId(List resourceIds) {
HashMap> map = new HashMap<>();
HashMap> childrenMap = new HashMap<>();
if(resourceIds == null || resourceIds.isEmpty()){
return map;
}
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.in(DictEvidence::getResourceId,resourceIds);
List list = this.list(wrapper);
for (DictEvidence dictEvidence : list) {
if(dictEvidence.getUseType().equals("children")){
childrenMap.computeIfAbsent(dictEvidence.getEvidenceType(), k -> new ArrayList<>());
childrenMap.get(dictEvidence.getEvidenceType()).add(dictEvidence);
continue;
}
map.computeIfAbsent(dictEvidence.getResourceId() + dictEvidence.getUseType(), k -> new ArrayList<>());
map.get(dictEvidence.getResourceId() + dictEvidence.getUseType()).add(dictEvidence);
}
for (DictEvidence dictEvidence : list) {
EvidenceEnum evidenceEnum = EvidenceEnum.getEvidenceEnum(dictEvidence.getResourceId());
if(evidenceEnum.getType() == 10){
dictEvidence.setSpeciesChildren(new DictEvidenceVoList(evidenceEnum.toString(),evidenceEnum.getSpeciesName(),childrenMap.get(dictEvidence.getSpeciesKey())));
dictEvidence.setStandardChildren(new DictEvidenceVoList(evidenceEnum.toString(),evidenceEnum.getStandardName(),childrenMap.get(dictEvidence.getStandardKey())));
}
}
return map;
}
}