From faaf296cbb86bcb2fb5e3de2541852d91e35e3c5 Mon Sep 17 00:00:00 2001 From: JYW <2013732181@qq.com> Date: 星期二, 30 四月 2024 14:45:09 +0800 Subject: [PATCH] 2024-04-30 将遗漏的两个接口加入,完善角色管理中接口权限 --- cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java | 74 ++++++++++++++++++++++++------------- 1 files changed, 48 insertions(+), 26 deletions(-) diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java index 62c43c3..fa99cdf 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java @@ -2,13 +2,22 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yuanchu.mom.common.PrintChina; import com.yuanchu.mom.dto.DepartmentDto; +import com.yuanchu.mom.dto.UserDto; +import com.yuanchu.mom.dto.UserPageDto; import com.yuanchu.mom.pojo.Department; import com.yuanchu.mom.mapper.DepartmentMapper; +import com.yuanchu.mom.pojo.Device; +import com.yuanchu.mom.pojo.User; import com.yuanchu.mom.service.DepartmentService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yuanchu.mom.utils.QueryWrappers; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import lombok.var; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -16,10 +25,8 @@ import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Wrapper; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * <p> @@ -32,6 +39,7 @@ @Service @AllArgsConstructor @Transactional(rollbackFor = Exception.class) +@Slf4j public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Department> implements DepartmentService { DepartmentMapper departmentMapper; @@ -47,26 +55,24 @@ //鑾峰彇閮ㄩ棬鏍� @Override public List<DepartmentDto> selectDepartment() { - List<Department> departments = departmentMapper.selectDepartment(); - // 鍋囪 resultSet 鏄粠鏁版嵁搴撴煡璇㈣繑鍥炵殑缁撴灉闆� - List<DepartmentDto> departmentDtos = new ArrayList<>(); - Map<Integer, DepartmentDto> departmentMap = new HashMap<>(); + List<DepartmentDto> departments = departmentMapper.selectDepartment(); + //鑾峰彇鐖惰妭鐐� + List<DepartmentDto> collect = departments.stream().filter(m -> m.getFatherId() == null).peek( + (m) -> m.setChildren(getChildren(m, departments)) + ).collect(Collectors.toList()); + return collect; + } - for (Department department : departments) { - DepartmentDto departmentDto = new DepartmentDto(department.getId(), department.getName(), department.getFatherId(), new ArrayList<DepartmentDto>()); - departmentMap.put(department.getId(), departmentDto); - if (department.getFatherId() == null) { - // 鏍归儴闂� - departmentDtos.add(departmentDto); - } else { - // 灏嗗綋鍓嶉儴闂ㄦ坊鍔犲埌鐖堕儴闂ㄧ殑 children 鍒楄〃涓� - DepartmentDto parent = departmentMap.get(department.getFatherId()); - if (parent != null) { - parent.getChildren().add(departmentDto); - } - } - } - return departmentDtos; + /** + * 閫掑綊鏌ヨ瀛愯妭鐐� + * @param root 鏍硅妭鐐� + * @param all 鎵�鏈夎妭鐐� + * @return 鏍硅妭鐐逛俊鎭� + */ + private List<DepartmentDto> getChildren(DepartmentDto root, List<DepartmentDto> all) { + return all.stream().filter(m -> Objects.equals(m.getFatherId(), root.getId())).peek( + (m) -> m.setChildren(getChildren(m, all)) + ).collect(Collectors.toList()); } //鍒犻櫎閮ㄩ棬 @@ -77,16 +83,32 @@ return removeBatchByIds(department); } + //鏍规嵁閫夋嫨鐨勬爲灞曠ず鐩稿叧鐨勪汉鍛� + @Override + public Map<String, Object> showUserById(Page page, UserDto user) { + //鏍规嵁閮ㄩ棬id,鏌ヨ浠栫殑鎵�鏈夊瓙绫籭d + List<Integer> list = departmentMapper.selectSonById(Integer.parseInt(user.getDepartId())); + List<String> ids = list.stream() + .map(Object::toString) + //.collect(Collectors.joining(",")); + .collect(Collectors.toList()); + log.info(ids+"\n"); + Map<String, Object> map = new HashMap<>(); + map.put("head", PrintChina.printChina(UserDto.class)); + map.put("body", departmentMapper.showUserById(page, ids, QueryWrappers.queryWrappers(user))); + return map; + } + //鍒ゆ柇鏄惁鏈夊瓙绫�,鐩村埌娌℃湁涓烘 - public List<Department> getDepartment(Integer id){ + public List<Department> getDepartment(Integer id) { List<Department> list = new ArrayList<>(); Department depart = baseMapper.selectById(id); list.add(depart); List<Department> departments = baseMapper.selectList(Wrappers.<Department>lambdaQuery().eq(Department::getFatherId, id)); - if (ObjectUtils.isNotEmpty(departments)){ + if (ObjectUtils.isNotEmpty(departments)) { list.addAll(departments); - for (Department department : departments){ + for (Department department : departments) { list.addAll(getDepartment(department.getId())); } } -- Gitblit v1.9.3