DictServiceImpl.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package com.fdkankan.sale.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.fdkankan.sale.entity.Dict;
  4. import com.fdkankan.sale.mapper.IDictMapper;
  5. import com.fdkankan.sale.service.IDictService;
  6. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  7. import org.springframework.stereotype.Service;
  8. import java.util.List;
  9. import java.util.stream.Collectors;
  10. /**
  11. * <p>
  12. * 服务实现类
  13. * </p>
  14. *
  15. * @author
  16. * @since 2025-01-16
  17. */
  18. @Service
  19. public class DictServiceImpl extends ServiceImpl<IDictMapper, Dict> implements IDictService {
  20. @Override
  21. public Object getListByKey(String dictKey) {
  22. LambdaQueryWrapper<Dict> wrapper = new LambdaQueryWrapper<>();
  23. wrapper.eq(Dict::getDictKey,dictKey);
  24. return this.list(wrapper);
  25. }
  26. @Override
  27. public Object getTreeByKey(String dictKey) {
  28. LambdaQueryWrapper<Dict> wrapper = new LambdaQueryWrapper<>();
  29. wrapper.eq(Dict::getDictKey,dictKey);
  30. List<Dict> list = this.list(wrapper);
  31. if(list.isEmpty()){
  32. return list;
  33. }
  34. List<Dict> parent = list.stream().filter(e -> e.getParentId() == null).collect(Collectors.toList());
  35. if(list.size() == parent.size()){
  36. return list;
  37. }
  38. return getVoList(parent,list);
  39. }
  40. private List<Dict> getVoList (List<Dict> oneList,List<Dict> allList){
  41. for (Dict dict : oneList) {
  42. List<Dict> twoList = allList.stream().filter(e -> e.getParentId() !=null && e.getParentId().equals(dict.getId())).collect(Collectors.toList());
  43. if(!twoList.isEmpty()){
  44. dict.setChildren(getVoList(twoList,allList));
  45. }
  46. }
  47. return oneList;
  48. }
  49. }