| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- package com.ruoyi.system.service.impl;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import com.ruoyi.system.mapper.SysAreaMapper;
- import com.ruoyi.system.domain.SysArea;
- import com.ruoyi.system.service.ISysAreaService;
- /**
- * 区域-省市区县Service业务层处理
- *
- * @author ruoyi
- * @date 2025-09-29
- */
- @Service
- public class SysAreaServiceImpl implements ISysAreaService
- {
- @Autowired
- private SysAreaMapper sysAreaMapper;
- /**
- * 查询区域-省市区县
- *
- * @param areaId 区域-省市区县主键
- * @return 区域-省市区县
- */
- @Override
- public SysArea selectSysAreaByAreaId(Long areaId)
- {
- return sysAreaMapper.selectSysAreaByAreaId(areaId);
- }
- /**
- * 查询区域-省市区县列表
- *
- * @param sysArea 区域-省市区县
- * @return 区域-省市区县
- */
- @Override
- public List<SysArea> selectSysAreaList(SysArea sysArea)
- {
- return sysAreaMapper.selectSysAreaList(sysArea);
- }
- @Override
- public List<SysArea> selectSysAreaListByIds(List<Long> ids)
- {
- return sysAreaMapper.selectSysAreaListByIds(ids);
- }
- @Override
- public List<SysArea> listTree(SysArea criteria) {
- List<SysArea> list = selectSysAreaList(criteria);
- Map<Long, SysArea> cache = list.stream().collect(Collectors.toMap(SysArea::getAreaId, v -> v));
- List<SysArea> res = new ArrayList<>(6);
- for (SysArea row : list) {
- Long parentId = row.getParentId();
- if (null == parentId || parentId == 0l || !cache.containsKey(parentId)) {
- res.add(row);
- } else {
- cache.get(parentId).addChildren(row);
- }
- }
- return res;
- // Map<Long, SysArea> cache = new HashMap<>();
- // List<SysArea> res = new ArrayList<>();
- // // 先将所有节点放入缓存
- // for (SysArea area : list) {
- // cache.put(area.getAreaId(), area);
- // // 初始化children列表
- // if (area.getChildren() == null) {
- // area.setChildren(new ArrayList<>());
- // }
- // }
- //
- // // 建立父子关系
- // for (SysArea area : list) {
- // Long parentId = area.getParentId();
- // if (parentId != null && parentId != 0L && cache.containsKey(parentId)) {
- // SysArea parent = cache.get(parentId);
- // if (parent.getChildren() == null) {
- // parent.setChildren(new ArrayList<>());
- // }
- // parent.getChildren().add(area);
- // }
- // }
- //
- // // 只返回根节点
- // for (SysArea area : list) {
- // Long parentId = area.getParentId();
- // if (parentId == null || parentId == 0L || !cache.containsKey(parentId)) {
- // res.add(area);
- // }
- // }
- // return res;
- }
- /**
- * 新增区域-省市区县
- *
- * @param sysArea 区域-省市区县
- * @return 结果
- */
- @Override
- public int insertSysArea(SysArea sysArea)
- {
- return sysAreaMapper.insertSysArea(sysArea);
- }
- /**
- * 修改区域-省市区县
- *
- * @param sysArea 区域-省市区县
- * @return 结果
- */
- @Override
- public int updateSysArea(SysArea sysArea)
- {
- return sysAreaMapper.updateSysArea(sysArea);
- }
- /**
- * 批量删除区域-省市区县
- *
- * @param areaIds 需要删除的区域-省市区县主键
- * @return 结果
- */
- @Override
- public int deleteSysAreaByAreaIds(Long[] areaIds)
- {
- return sysAreaMapper.deleteSysAreaByAreaIds(areaIds);
- }
- /**
- * 删除区域-省市区县信息
- *
- * @param areaId 区域-省市区县主键
- * @return 结果
- */
- @Override
- public int deleteSysAreaByAreaId(Long areaId)
- {
- return sysAreaMapper.deleteSysAreaByAreaId(areaId);
- }
- }
|