gunshi-project-ss/src/main/java/com/gunshi/project/hsz/service/SysDictBService.java

61 lines
1.7 KiB
Java

package com.gunshi.project.hsz.service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gunshi.project.hsz.mapper.SysDictBMapper;
import com.gunshi.project.hsz.model.SysDictB;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 描述: 系统字典表
* author: xusan
* date: 2024-07-08 17:30:38
*/
@Service
@Slf4j
@Transactional(rollbackFor = Exception.class)
public class SysDictBService extends ServiceImpl<SysDictBMapper, SysDictB>
{
public List<SysDictB> tree() {
List<SysDictB> list = list();
if (CollectionUtils.isEmpty(list)){
return list;
}
Map<Long, List<SysDictB>> listMap = list.stream().collect(Collectors.groupingBy(SysDictB::getPid));
list.forEach(o -> o.setChildren(listMap.get(o.getId())));
List<SysDictB> parentList = list.stream().filter(o -> 0L == o.getPid()).collect(Collectors.toList());
return sorted(parentList);
}
private List<SysDictB> sorted( List<SysDictB> tree) {
List<SysDictB> sorteds = null;
if (CollectionUtils.isNotEmpty(tree)){
sorteds = tree.stream().sorted(Comparator.comparing(SysDictB::getSortOn)
).collect(Collectors.toList());
sorteds.forEach(o->{
o.setChildren(sorted(o.getChildren()));
});
}
return sorteds;
}
public List<SysDictB> listByCd(String dictCd) {
return this.baseMapper.listByCd(dictCd);
}
}