From d8143b9121bbe941f116230eaa5524ab2cc12a66 Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期四, 10 七月 2025 21:20:21 +0800 Subject: [PATCH] 新增 --- src/main/java/com/linghu/service/impl/SectionalizationServiceImpl.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 52 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/linghu/service/impl/SectionalizationServiceImpl.java b/src/main/java/com/linghu/service/impl/SectionalizationServiceImpl.java index e66d702..ac9035e 100644 --- a/src/main/java/com/linghu/service/impl/SectionalizationServiceImpl.java +++ b/src/main/java/com/linghu/service/impl/SectionalizationServiceImpl.java @@ -1,13 +1,21 @@ package com.linghu.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.linghu.mapper.SectionalizationMapper; import com.linghu.mapper.UserMapper; import com.linghu.model.entity.Sectionalization; import com.linghu.model.entity.User; +import com.linghu.model.vo.SectionalizationUserVO; import com.linghu.service.SectionalizationService; import com.linghu.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @author xy @@ -18,6 +26,50 @@ public class SectionalizationServiceImpl extends ServiceImpl<SectionalizationMapper, Sectionalization> implements SectionalizationService { + @Autowired + private UserMapper userMapper; + @Override + public List<SectionalizationUserVO> SectionalizationUser() { + // 1. 查询所有状态为"正常"的用户 + List<User> userList = userMapper.selectList( + new LambdaQueryWrapper<User>() + .eq(User::getStatus, "正常") + ); + + // 2. 提取所有分组ID并去重 + List<Integer> sectionalizationIdList = userList.stream() + .map(User::getSectionalization_id) + .distinct() + .collect(Collectors.toList()); + + // 3. 查询这些分组的基本信息 + List<Sectionalization> sectionalizationList = this.baseMapper.selectList( + new LambdaQueryWrapper<Sectionalization>() + .in(Sectionalization::getSectionalization_id, sectionalizationIdList) + ); + + // 4. 创建分组ID到分组名称的映射 + Map<Integer, String> sectionalizationNameMap = sectionalizationList.stream() + .collect(Collectors.toMap( + Sectionalization::getSectionalization_id, + Sectionalization::getSectionalization_name + )); + + // 5. 按分组ID对用户进行分组 + Map<Integer, List<User>> usersBySectionalization = userList.stream() + .collect(Collectors.groupingBy(User::getSectionalization_id)); + + // 6. 构建最终返回结果 + return sectionalizationIdList.stream() + .map(id -> { + SectionalizationUserVO vo = new SectionalizationUserVO(); + vo.setSectionalization_id(id); + vo.setSectionalization_name(sectionalizationNameMap.get(id)); + vo.setSectionalization_users(usersBySectionalization.getOrDefault(id, Collections.emptyList())); + return vo; + }) + .collect(Collectors.toList()); + } } -- Gitblit v1.7.1