package com.fdkankan.sale.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fdkankan.sale.entity.Dict;
import com.fdkankan.sale.mapper.IDictMapper;
import com.fdkankan.sale.service.IDictService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
*
* 服务实现类
*
*
* @author
* @since 2025-01-16
*/
@Service
public class DictServiceImpl extends ServiceImpl implements IDictService {
@Override
public Object getListByKey(String dictKey) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Dict::getDictKey,dictKey);
return this.list(wrapper);
}
@Override
public Object getTreeByKey(String dictKey) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Dict::getDictKey,dictKey);
List list = this.list(wrapper);
if(list.isEmpty()){
return list;
}
List parent = list.stream().filter(e -> e.getParentId() == null).collect(Collectors.toList());
if(list.size() == parent.size()){
return list;
}
return getVoList(parent,list);
}
private List getVoList (List oneList,List allList){
for (Dict dict : oneList) {
List twoList = allList.stream().filter(e -> e.getParentId() !=null && e.getParentId().equals(dict.getId())).collect(Collectors.toList());
if(!twoList.isEmpty()){
dict.setChildren(getVoList(twoList,allList));
}
}
return oneList;
}
}