123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- package com.huimv.center.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.huimv.center.mapper.BizBaseAreaMapper;
- import com.huimv.center.pojo.BizBaseArea;
- import com.huimv.center.service.BizBaseAreaService;
- import com.huimv.center.utils.IDUtil;
- import com.huimv.center.vo.BaseAreaVo;
- import com.huimv.eartag2.common.utils.Result;
- import com.huimv.eartag2.common.utils.ResultCode;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.stereotype.Service;
- import org.springframework.util.CollectionUtils;
- import javax.annotation.Resource;
- import java.util.*;
- import java.util.stream.Collectors;
- @Service
- public class BizBaseAreaServiceImpl implements BizBaseAreaService {
- @Resource
- private BizBaseAreaMapper bizBaseAreaMapper;
- @Resource
- private com.huimv.center.utils.ResultUtil ResultUtil;
- @Resource
- private IDUtil idUtil;
- @Override
- public Result add(String name, String code, String parentCode) {
- BizBaseArea bizBaseArea = new BizBaseArea();
- bizBaseArea.setAreaName(name);
- bizBaseArea.setAreaCode(code);
- bizBaseArea.setParentCode(parentCode);
- return ResultUtil.result( bizBaseAreaMapper.insert(bizBaseArea));
- }
- @Override
- public Result remove(String id) {
- return ResultUtil.result(bizBaseAreaMapper.deleteBatchIds(idUtil.convert(id)));
- }
- @Override
- public Result update(Integer id, String name, String code, String parentCode) {
- BizBaseArea bizBaseArea = bizBaseAreaMapper.selectById(id);
- bizBaseArea.setParentCode(parentCode);
- bizBaseArea.setAreaCode(code);
- bizBaseArea.setAreaName(name);
- return ResultUtil.result(bizBaseAreaMapper.updateById(bizBaseArea));
- }
- @Override
- public Result treeList() {
- QueryWrapper<BizBaseArea> bizBaseAreaQueryWrapper = new QueryWrapper<>();
- //查出原始数据
- List<BizBaseArea> bizBaseAreas = bizBaseAreaMapper.selectList(bizBaseAreaQueryWrapper);
- return new Result(ResultCode.SUCCESS,parseBizBaseArea(bizBaseAreas));
- }
- @Override
- public BizBaseArea queryAreaCodeByAreaName(String areaName) {
- return null;
- }
- /**
- * 查询结果 转换成树形结构
- * @param bizBaseAreas
- * @return
- */
- private List<BaseAreaVo> parseBizBaseArea(List<BizBaseArea> bizBaseAreas){
- System.out.println("----------------"+bizBaseAreas);
- //构建需要展示的树形节点结构
- Map<String, BaseAreaVo> cityNodeMap = bizBaseAreas.stream().map(biZBaseAreasDo -> {
- BaseAreaVo baseAreaVo = new BaseAreaVo();
- baseAreaVo.setChildBaseAreaVo(new ArrayList<>());
- baseAreaVo.setCode(biZBaseAreasDo.getAreaCode());
- baseAreaVo.setName(biZBaseAreasDo.getAreaName());
- baseAreaVo.setParentCode(biZBaseAreasDo.getParentCode());
- return baseAreaVo;
- }).collect(Collectors.toMap(BaseAreaVo::getCode, b -> b,(k1,k2)->k1));
- System.out.println("----------------"+cityNodeMap);
- //创建数组存父亲节点
- ArrayList<BaseAreaVo> roots = new ArrayList<>();
- //构建树形
- cityNodeMap.values().forEach(city->{
- String parentCode = city.getParentCode();
- if (cityNodeMap.get(parentCode) == null){
- //父节点为空,说明当前节点就已经是父节点了 将该节点存起来
- roots.add(city);
- }else {
- //父节点 不为空,说明有父节点,拿到该节点的父节点的孩子节点(就是我自己),将该节点存起来
- cityNodeMap.get(parentCode).getChildBaseAreaVo().add(city);
- }
- });
- System.out.println(roots);
- return roots;
- }
- }
|