package com.gkhy.safePlatform.account.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gkhy.safePlatform.account.entity.enterprise.DepartmentInfo; import com.gkhy.safePlatform.account.entity.schedule.*; import com.gkhy.safePlatform.account.entity.user.UserInfo; import com.gkhy.safePlatform.account.entity.user.UserInfoDO; import com.gkhy.safePlatform.account.enums.DepartmentStatusEnum; import com.gkhy.safePlatform.account.enums.UserStatusEnum; import com.gkhy.safePlatform.account.enums.schedule.GroupStatusEnum; import com.gkhy.safePlatform.account.enums.schedule.TimeTypeEnum; import com.gkhy.safePlatform.account.model.bo.GroupInfoBO; import com.gkhy.safePlatform.account.model.bo.GroupInfoPageBO; import com.gkhy.safePlatform.account.model.dto.req.GroupAddDTO; import com.gkhy.safePlatform.account.model.dto.req.GroupModDTO; import com.gkhy.safePlatform.account.model.dto.resp.*; import com.gkhy.safePlatform.account.model.query.GroupMemberPageQuery; import com.gkhy.safePlatform.account.model.query.GroupPageQuery; import com.gkhy.safePlatform.account.model.query.GroupQuery; import com.gkhy.safePlatform.account.model.query.GroupScheduleQuery; import com.gkhy.safePlatform.account.model.query.db.GroupDBQuery; import com.gkhy.safePlatform.account.model.query.db.GroupMemberPageDBQuery; import com.gkhy.safePlatform.account.model.query.db.GroupPageDBQuery; import com.gkhy.safePlatform.account.model.query.db.GroupScheduleDBQuery; import com.gkhy.safePlatform.account.service.GroupService; import com.gkhy.safePlatform.account.service.GroupStrategyTimeTableService; import com.gkhy.safePlatform.account.service.baseService.*; import com.gkhy.safePlatform.account.utils.DateUtil; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.enums.E; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.exception.AusinessException; import com.gkhy.safePlatform.commons.exception.BusinessException; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.utils.StringUtils; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.awt.*; import java.security.acl.Group; import java.time.LocalDate; import java.util.*; import java.util.List; import java.util.stream.Collectors; @Service("groupService") public class GroupServiceImpl implements GroupService { @Autowired private GroupInfoService groupInfoService; @Autowired private GroupMemberInfoService groupMemberInfoService; @Autowired private UserInfoService userInfoService; @Autowired private DepartmentInfoService departmentInfoService; @Autowired private GroupStrategyTimeTableInfoService groupStrategyTimeTableInfoService; @Override @Transactional public void saveGroupInfo(ContextCacheUser currentUser, GroupAddDTO groupAddDTO) { ; if (groupAddDTO.getDepId() == null) { throw new BusinessException(ResultCodes.CLIENT_PARAM_NULL); } if (StringUtils.isBlank(groupAddDTO.getGroupName())) { throw new AusinessException(E.DATA_PARAM_NULL, "班组名称不能为空"); } String name = groupAddDTO.getGroupName().trim(); // 班组成员 List groupMemberIds = groupAddDTO.getGroupMemberIds(); if (groupMemberIds == null || groupMemberIds.size() < 1) { throw new AusinessException(E.DATA_PARAM_NULL, "班组成员不能为空"); } // 部门是否存在 DepartmentInfo department = departmentInfoService.getDepartmentInfoById(groupAddDTO.getDepId()); if (department == null) { throw new BusinessException(ResultCodes.CLIENT_DEP_NOT_EXIST); } assert department.getStatus() != null; if (!department.getStatus().equals(DepartmentStatusEnum.ENABLED.getCode())) { throw new AusinessException(E.DATA_DATABASE_EXIST_BUT_NOT_VALID, "部门不存在"); } // 班组成员成分判断 List userInfoDOList = userInfoService.listUserByUids(groupAddDTO.getGroupMemberIds()); // 校验用户id for (Long uid : groupAddDTO.getGroupMemberIds()) { boolean flag = false; for (UserInfoDO userInfoDO : userInfoDOList) { // todo 可以加入用户类型type判断 if (userInfoDO.getUid().equals(uid)) { flag = true; } } if (!flag) { throw new AusinessException(E.DATA_DATABASE_NO_EXISTENT, "用户成员不存在:" + uid); } } // 判断用户部门是否是当前所选部门 for (UserInfoDO userInfoDO : userInfoDOList) { if (!userInfoDO.getDepId().equals(groupAddDTO.getDepId())) { throw new AusinessException(E.DATA_PARAM_CHECK_INVALID, "所选用户不在当前部门下"); } } // 校验用户所属班组都得在同一个部门下 List groupInfoDOs = groupMemberInfoService.listGroupDOByUids(groupAddDTO.getGroupMemberIds()); for (GroupInfoDO groupInfoDO : groupInfoDOs) { if (!groupInfoDO.getDepId().equals(groupAddDTO.getDepId())) { throw new AusinessException(E.DATA_PARAM_CHECK_INVALID, "数据内部错误,用户所属班组不在部门下"); } } // 1.班组插入 GroupInfo groupInfo = new GroupInfo(); groupInfo.setName(name); groupInfo.setInfo(groupAddDTO.getGroupInfo()); groupInfo.setCreateBy(currentUser.getRealName()); groupInfo.setCreateUid(currentUser.getUid()); groupInfo.setGmtCreate(new Date()); groupInfo.setStatus(GroupStatusEnum.ENABLED.getCode()); groupInfo.setDepId(department.getId()); groupInfoService.save(groupInfo); // 2.班组成员插入 List groupMembers = new ArrayList<>(); GroupMemberInfo groupMemberInfo; for (Long uid : groupMemberIds) { groupMemberInfo = new GroupMemberInfo(); groupMemberInfo.setGroupId(groupInfo.getId()); groupMemberInfo.setUid(uid); groupMembers.add(groupMemberInfo); } groupMemberInfoService.saveGroupMembers(groupMembers); } @Override @Transactional public void modGroupInfo(ContextCacheUser currentUser, GroupModDTO groupModDTO) { if (groupModDTO.getDepId() == null) { throw new BusinessException(ResultCodes.CLIENT_PARAM_NULL); } if (groupModDTO.getGroupId() == null) { throw new BusinessException(ResultCodes.CLIENT_PARAM_NULL); } if (StringUtils.isBlank(groupModDTO.getGroupName())) { throw new AusinessException(E.DATA_PARAM_NULL, "班组名称不能为空"); } String name = groupModDTO.getGroupName().trim(); // 班组成员 List groupMemberIds = groupModDTO.getGroupMemberIds(); if (groupMemberIds == null || groupMemberIds.size() < 1) { throw new AusinessException(E.DATA_PARAM_NULL, "班组成员不能为空"); } // 获取班组 GroupInfoDO groupInfoDO = groupInfoService.getGroupInfoById(groupModDTO.getGroupId()); if (groupInfoDO == null ) { throw new AusinessException(E.DATA_DATABASE_NO_EXISTENT, "班组不存在"); } if (!groupInfoDO.getStatus().equals(GroupStatusEnum.ENABLED.getCode())) { throw new AusinessException(E.DATA_DATABASE_EXIST_BUT_NOT_VALID, "班组不存在"); } // 部门是否存在 DepartmentInfo department = departmentInfoService.getDepartmentInfoById(groupModDTO.getDepId()); if (department == null) { throw new BusinessException(ResultCodes.CLIENT_DEP_NOT_EXIST); } assert department.getStatus() != null; if (!department.getStatus().equals(DepartmentStatusEnum.ENABLED.getCode())) { throw new AusinessException(E.DATA_DATABASE_EXIST_BUT_NOT_VALID, "部门不存在"); } // 1.获取绑定人员 List groupMembersIdsOrigin = groupMemberInfoService.getGroupMembersIdsByGroupId(groupInfoDO.getId()); // original - now List toDelMemberIds = groupMembersIdsOrigin.stream() // 不包含 .filter(id -> !groupModDTO.getGroupMemberIds().contains(id)) // 集合 .collect(Collectors.toList()); // now - original List toAddMemberIds = groupModDTO.getGroupMemberIds().stream() // 不包含 .filter(id -> !groupMembersIdsOrigin.contains(id)) // 集合 .collect(Collectors.toList()); // 2.新增人员成分判断 List toOperateIds = new ArrayList<>(toAddMemberIds.size() + toDelMemberIds.size()); toOperateIds.addAll(toAddMemberIds); toOperateIds.addAll(toDelMemberIds); List userInfoDOs= userInfoService.listUserByUids(toOperateIds); // 3.uid校验 for (Long uid : toOperateIds) { boolean flag = false; for (UserInfoDO userInfoDO : userInfoDOs) { if (userInfoDO.getUid().equals(uid)) { flag = true; } } if (!flag) { throw new AusinessException(E.DATA_DATABASE_NO_EXISTENT, "用户成员不存在:" + uid); } } // 4.用户部门的校验 for (UserInfoDO userInfoDO : userInfoDOs) { if (!userInfoDO.getDepId().equals(groupModDTO.getDepId())) { throw new AusinessException(E.DATA_PARAM_CHECK_INVALID, "所选用户不在当前部门下:" + userInfoDO.getUid()); } } // 校验用户所属班组都得在同一个部门下 List groupInfoDOs = groupMemberInfoService.listGroupDOByUids(groupModDTO.getGroupMemberIds()); for (GroupInfoDO groupInfo : groupInfoDOs) { if (!groupInfo.getDepId().equals(groupModDTO.getDepId())) { throw new AusinessException(E.DATA_PARAM_CHECK_INVALID, "数据内部错误,用户所属班组不在部门下"); } } // 5.更新班组 GroupInfo groupInfo = new GroupInfo(); groupInfo.setId(groupInfoDO.getId()); groupInfo.setName(name); groupInfo.setInfo(groupInfoDO.getInfo()); groupInfo.setGmtModified(new Date()); groupInfo.setEditBy(currentUser.getRealName()); groupInfo.setEditUid(currentUser.getUid()); groupInfo.setDepId(groupModDTO.getDepId()); groupInfoService.updateById(groupInfo); // 6.更新成员 // 6.1新增成员 if (toAddMemberIds.size() > 0) { List groupMembers = new ArrayList<>(); GroupMemberInfo groupMemberInfo; for (Long uid : toAddMemberIds) { groupMemberInfo = new GroupMemberInfo(); groupMemberInfo.setGroupId(groupInfo.getId()); groupMemberInfo.setUid(uid); groupMembers.add(groupMemberInfo); } groupMemberInfoService.saveGroupMembers(groupMembers); } // 6.2 解绑成员 if (toDelMemberIds.size() > 0) { groupMemberInfoService.unbindGroupMembersByUids(groupInfoDO.getId(),toDelMemberIds); } } @Override @Transactional public void delGroupInfo(ContextCacheUser currentUser, Long groupId) { ; if (groupId == null) { throw new BusinessException(ResultCodes.CLIENT_PARAM_NULL); } GroupInfoDO groupInfoDO = groupInfoService.getGroupInfoById(groupId); if (groupInfoDO == null) { throw new AusinessException(E.DATA_DATABASE_NO_EXISTENT, "分组不存在"); } assert groupInfoDO.getStatus() != null; GroupStatusEnum status = GroupStatusEnum.parse(groupInfoDO.getStatus()); if (status != GroupStatusEnum.ENABLED) { throw new AusinessException(E.DATA_DATABASE_EXIST_BUT_NOT_VALID, "分组不存在"); } // 1.组成员关系解绑 groupMemberInfoService.unbindGroupByGroupId(groupInfoDO.getId()); // 2.删除分组 && 部门班组关系解绑(体现在xml中) GroupInfo groupInfo = new GroupInfo(); groupInfo.setId(groupInfoDO.getId()); groupInfo.setStatus(GroupStatusEnum.ABANDONED.getCode()); groupInfo.setGmtModified(new Date()); groupInfo.setEditBy(currentUser.getRealName()); groupInfo.setEditUid(currentUser.getUid()); groupInfoService.deleteGroupInfo(groupInfo); } @Override public List listGroupInfo(ContextCacheUser currentUser, GroupQuery query) { ; GroupDBQuery groupDBQuery = new GroupDBQuery(); groupDBQuery.setDepId(query.getDepId()); groupDBQuery.setGroupName(query.getGroupName()); // 0.返回准备 List result = new ArrayList<>(); // 1.查找分组 List groups = groupInfoService.listGroupInfoBO(groupDBQuery); GroupRespDTO groupRespDTO; GroupStatusEnum statusEnum; boolean containGroupMemberEnable = query.getContainGroupMemberEnable(); for (GroupInfoBO groupInfoBO : groups) { groupRespDTO = new GroupRespDTO(); groupRespDTO.setId(groupInfoBO.getId()); groupRespDTO.setGroupName(groupInfoBO.getName()); groupRespDTO.setGroupInfo(groupInfoBO.getInfo()); groupRespDTO.setStatus(groupInfoBO.getStatus()); groupRespDTO.setGroupStrategyId(groupInfoBO.getGroupStrategyId()); groupRespDTO.setDepId(groupInfoBO.getDepId()); groupRespDTO.setDepartment(groupInfoBO.getDepartment()); statusEnum = GroupStatusEnum.parse(groupInfoBO.getStatus()); if (statusEnum != null) { groupRespDTO.setStatusDesc(statusEnum.getValue()); } // 2.是否包含人员 if (containGroupMemberEnable) { List groupMembersDO = groupMemberInfoService.getGroupMembersByGroupId(groupInfoBO.getId()); GroupMemberRespDTO groupMemberRespDTO; List groupMembersRespDTO = new ArrayList<>(); for (GroupMemberInfoDO groupMemberDO : groupMembersDO) { groupMemberRespDTO = new GroupMemberRespDTO(); groupMemberRespDTO.setUid(groupMemberDO.getUid()); groupMemberRespDTO.setRealName(groupMemberDO.getRealName()); groupMemberRespDTO.setUsername(groupMemberDO.getUsername()); groupMemberRespDTO.setStatus(groupMemberDO.getStatus()); UserStatusEnum userStatusEnum = UserStatusEnum.parse(groupMemberDO.getStatus()); if (userStatusEnum != null) { groupMemberRespDTO.setStatusDesc(userStatusEnum.getValue()); } groupMembersRespDTO.add(groupMemberRespDTO); } groupRespDTO.setGroupMembers(groupMembersRespDTO); } result.add(groupRespDTO); } return result; } @Override public GroupTimeTableRespDTO getTimeTableInfo(ContextCacheUser currentUser, GroupScheduleQuery groupScheduleQuery) { ; if (groupScheduleQuery.getStartTime() == null || groupScheduleQuery.getEndTime() == null) { throw new AusinessException(E.DATA_PARAM_NULL,"时间不能为空"); } if (groupScheduleQuery.getStartTime().after(groupScheduleQuery.getEndTime())) { throw new AusinessException(E.DATA_PARAM_CHECK_INVALID,"时间区间非法"); } if (groupScheduleQuery.getGroupId() == null) { throw new BusinessException(ResultCodes.CLIENT_PARAM_NULL); } GroupInfoDO groupInfo = groupInfoService.getGroupInfoById(groupScheduleQuery.getGroupId()); if (groupInfo == null) { throw new AusinessException(E.DATA_DATABASE_NO_EXISTENT, "班组不存在"); } if (!groupInfo.getStatus().equals(GroupStatusEnum.ENABLED.getCode())) { throw new AusinessException(E.DATA_DATABASE_EXIST_BUT_NOT_VALID, "班组不存在"); } // 查询 GroupScheduleDBQuery groupScheduleDBQuery = new GroupScheduleDBQuery(); groupScheduleDBQuery.setStartTime(groupScheduleQuery.getStartTime()); groupScheduleDBQuery.setEndTime(groupScheduleQuery.getEndTime()); groupScheduleDBQuery.setType(groupScheduleQuery.getType()); groupScheduleDBQuery.setGroupId(groupScheduleQuery.getGroupId()); List groupTableTableInfos = groupStrategyTimeTableInfoService.getGroupTableTableInfo(groupScheduleDBQuery); // 返回结果 GroupTimeTableRespDTO result = new GroupTimeTableRespDTO(); result.setGroupId(groupInfo.getId()); result.setGroupInfo(groupInfo.getInfo()); result.setGroupName(groupInfo.getName()); result.setDays(Collections.emptyList()); // 处理 if (groupTableTableInfos.size() > 0) { // 日期池 Map dayPool = new HashMap<>(); TimeTypeEnum typeEnum; GroupStrategyTimeTableInfoDO timeTableInfoDO; GroupTimeTableDayRespDTO day; GroupTimeTableTimeDetailRespDTO timeDetail; for (int i = 0; i < groupTableTableInfos.size(); i++) { timeTableInfoDO = groupTableTableInfos.get(i); timeDetail = new GroupTimeTableTimeDetailRespDTO(); timeDetail.setStartTime(timeTableInfoDO.getStartTime()); timeDetail.setEndTime(timeTableInfoDO.getEndTime()); timeDetail.setType(timeTableInfoDO.getType()); typeEnum = TimeTypeEnum.parse(timeTableInfoDO.getType()); if (typeEnum != null) { timeDetail.setTypeDesc(typeEnum.getValue()); } if (!dayPool.containsKey(timeTableInfoDO.getSpecificDate())) { day = new GroupTimeTableDayRespDTO(); day.setDay(timeTableInfoDO.getSpecificDate()); day.setTimeDetails(Collections.singletonList(timeDetail)); dayPool.put(timeTableInfoDO.getSpecificDate(), day); }else{ day = dayPool.get(timeTableInfoDO.getSpecificDate()); day.getTimeDetails().add(timeDetail); } } // Map无需变有序 List sortedDays = dayPool.values().stream() .sorted(Comparator.comparing(GroupTimeTableDayRespDTO::getDay)).collect(Collectors.toList()); result.setDays(sortedDays); } return result; } /** * @Description: rpc内部调用 */ @Override public GroupInfoRespDTO getGroupInfoByGroupId(Long groupId) { if (groupId == null) { throw new BusinessException(ResultCodes.SERVER_PARAM_NULL); } GroupInfoRespDTO respDTO = null; GroupInfoDO groupInfoDO = groupInfoService.getGroupInfoById(groupId); if (groupInfoDO != null) { respDTO = new GroupInfoRespDTO(); respDTO.setGroupId(groupInfoDO.getId()); respDTO.setGroupName(groupInfoDO.getName()); respDTO.setGroupInfo(groupInfoDO.getInfo()); respDTO.setGroupStrategyId(groupInfoDO.getGroupStrategyId()); respDTO.setStatus(groupInfoDO.getStatus()); GroupStatusEnum groupStatusEnum = GroupStatusEnum.parse(groupInfoDO.getStatus()); if (groupStatusEnum != null) { respDTO.setStatusDesc(groupStatusEnum.getValue()); } } return respDTO; } @Override public SearchResultVO> listGroupInfoByPage(ContextCacheUser currentUser, PageQuery query) { ; // 查询参数 GroupPageDBQuery dbQuery = new GroupPageDBQuery(); if (query.getSearchParams() != null) { dbQuery.setDepId(query.getSearchParams().getDepId()); dbQuery.setGroupName(query.getSearchParams().getGroupName()); } // 查询分页对象 Page page = new Page<>(query.getPageIndex(), query.getPageSize()); List dbData = groupInfoService.listGroupInfo(page, dbQuery); List resPageData = new ArrayList<>(dbData.size()); if (dbData.size() > 0) { GroupPageRespDTO respDTO; for (GroupInfoPageBO groupInfo : dbData) { respDTO = new GroupPageRespDTO(); respDTO.setGroupId(groupInfo.getId()); respDTO.setGroupName(groupInfo.getName()); respDTO.setGroupInfo(groupInfo.getInfo()); respDTO.setCreateBy(groupInfo.getCreateBy()); respDTO.setGroupStrategyId(groupInfo.getGroupStrategyId()); respDTO.setGmtCreate(groupInfo.getGmtCreate()); respDTO.setCreateBy(groupInfo.getCreateBy()); respDTO.setGmtModified(groupInfo.getGmtModified()); respDTO.setEditBy(groupInfo.getEditBy()); respDTO.setStatus(groupInfo.getStatus()); respDTO.setDepId(groupInfo.getDepId()); respDTO.setDepartment(groupInfo.getDepartment()); GroupStatusEnum groupStatusEnum = GroupStatusEnum.parse(groupInfo.getStatus()); if (groupStatusEnum != null) { respDTO.setStatusDesc(groupStatusEnum.getValue()); } // 成员 List members = Collections.emptyList(); if (query.getSearchParams().isContainGroupMemberEnable()) { List groupMemberDOs = groupMemberInfoService.getGroupMembersByGroupId(groupInfo.getId()); members = new ArrayList<>(groupMemberDOs.size()); GroupMemberRespDTO memberRespDTO; for (GroupMemberInfoDO groupMemberInfoDO : groupMemberDOs) { memberRespDTO = new GroupMemberRespDTO(); memberRespDTO.setUid(groupMemberInfoDO.getUid()); memberRespDTO.setUsername(groupMemberInfoDO.getUsername()); memberRespDTO.setRealName(groupMemberInfoDO.getRealName()); memberRespDTO.setStatus(groupMemberInfoDO.getStatus()); UserStatusEnum userStatusEnum = UserStatusEnum.parse(groupMemberInfoDO.getStatus()); if (userStatusEnum != null) { memberRespDTO.setStatusDesc(userStatusEnum.getValue()); } members.add(memberRespDTO); } } respDTO.setGroupMembers(members); resPageData.add(respDTO); } } return new SearchResultVO<>( true, page.getCurrent(), page.getSize(), page.getPages(), page.getTotal(), resPageData, ResultCodes.OK); } @Override public List listGroupMembersByGroupId(ContextCacheUser currentUser,Long groupId) { ; List result = Collections.emptyList(); List dbMembers = groupMemberInfoService.getGroupMembersByGroupId(groupId); if (dbMembers.size() > 0) { GroupMemberRespDTO member; result = new ArrayList<>(dbMembers.size()); for (GroupMemberInfoDO groupMemberInfoDO : dbMembers) { member = new GroupMemberRespDTO(); member.setUsername(groupMemberInfoDO.getUsername()); member.setRealName(groupMemberInfoDO.getRealName()); member.setUid(groupMemberInfoDO.getUid()); member.setStatus(groupMemberInfoDO.getStatus()); UserStatusEnum userStatusEnum = UserStatusEnum.parse(groupMemberInfoDO.getStatus()); if (userStatusEnum != null) { member.setStatusDesc(userStatusEnum.getValue()); } result.add(member); } } return result; } @Override public ResultVO> listGroupMembersByPage(ContextCacheUser currentUser, PageQuery query) { ; GroupMemberPageDBQuery dbQuery = new GroupMemberPageDBQuery(); if (query.getSearchParams() != null) { dbQuery.setGroupId(query.getSearchParams().getGroupId()); dbQuery.setRealName(query.getSearchParams().getRealName()); } Page page = new Page<>(query.getPageIndex(),query.getPageSize()); List resPageData = Collections.emptyList(); List dbData = groupMemberInfoService.listGroupMemberDO(page, dbQuery); if (dbData.size() > 0) { resPageData = new ArrayList<>(dbData.size()); GroupMemberPageRespDTO respDTO; for (GroupMemberInfoDO groupMemberInfoDO : dbData) { respDTO = new GroupMemberPageRespDTO(); respDTO.setUid(groupMemberInfoDO.getUid()); respDTO.setRealName(groupMemberInfoDO.getRealName()); respDTO.setUsername(groupMemberInfoDO.getUsername()); respDTO.setStatus(groupMemberInfoDO.getStatus()); UserStatusEnum userStatusEnum = UserStatusEnum.parse(groupMemberInfoDO.getStatus()); if (userStatusEnum != null) { respDTO.setStatusDesc(userStatusEnum.getValue()); } resPageData.add(respDTO); } } return new SearchResultVO<>( true, page.getCurrent(), page.getSize(), page.getPages(), page.getTotal(), resPageData,ResultCodes.OK); } @Override public List listGroupInfoByUid(Long uid) { if (uid == null) { throw new BusinessException(ResultCodes.SERVER_PARAM_NULL); } List result = Collections.emptyList(); List groupInfoDOs = groupMemberInfoService.listGroupInfoByUserId(uid); if (groupInfoDOs.size() > 0) { result = new ArrayList<>(groupInfoDOs.size()); GroupInfoRespDTO respDTO ; for (GroupInfoDO groupInfoDO : groupInfoDOs) { respDTO = new GroupInfoRespDTO(); respDTO.setGroupInfo(groupInfoDO.getInfo()); respDTO.setGroupName(groupInfoDO.getName()); respDTO.setGroupId(groupInfoDO.getId()); respDTO.setStatus(groupInfoDO.getStatus()); respDTO.setGroupStrategyId(groupInfoDO.getGroupStrategyId()); GroupStatusEnum groupStatusEnum = GroupStatusEnum.parse(groupInfoDO.getStatus()); if (groupStatusEnum != null) { respDTO.setStatusDesc(groupStatusEnum.getValue()); } result.add(respDTO); } } return result; } @Override public List listGroupInfoByGroupIds(Collection groupIds) { List result = Collections.emptyList(); if (groupIds != null && groupIds.size() != 0) { List groupInfoDOS = groupInfoService.listGroupDOByGroupIds(groupIds); if (groupInfoDOS.size() > 0) { result = new ArrayList<>(groupInfoDOS.size()); GroupInfoRespDTO respDTO; GroupStatusEnum groupStatusEnum; for (GroupInfoDO groupInfoDO : groupInfoDOS) { respDTO = new GroupInfoRespDTO(); respDTO.setGroupId(groupInfoDO.getId()); respDTO.setGroupName(groupInfoDO.getName()); respDTO.setGroupInfo(groupInfoDO.getInfo()); respDTO.setStatus(groupInfoDO.getStatus()); groupStatusEnum = GroupStatusEnum.parse(groupInfoDO.getStatus()); respDTO.setStatusDesc(groupStatusEnum.getValue()); respDTO.setGroupStrategyId(groupInfoDO.getGroupStrategyId()); result.add(respDTO); } } } return result; } }