From acf111c53912a96da9d142225a08ac20c6f1f454 Mon Sep 17 00:00:00 2001 From: zhaoxiaohao <913652501@qq.com> Date: Tue, 14 Apr 2020 18:10:29 +0800 Subject: [PATCH] 添加 组织结构的功能 --- kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java | 98 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 97 insertions(+), 1 deletions(-) diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java index 9df73fd..9174b7a 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java +++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java @@ -1,5 +1,6 @@ package com.kidgrow.usercenter.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.model.ResultBody; @@ -7,12 +8,19 @@ import com.kidgrow.common.service.impl.SuperServiceImpl; import com.kidgrow.usercenter.mapper.SysOrganizationMapper; import com.kidgrow.usercenter.service.ISysOrganizationService; +import com.kidgrow.usercenter.vo.SysOrganizationVo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.cglib.beans.BeanCopier; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> @@ -47,14 +55,102 @@ return baseMapper.findByObject(sysOrganization); } + /** + * 根据用户 获取组织 + * @param userId + * @return + */ @Override public List<SysOrganization> findListByUserId(Long userId) { return baseMapper.findListByUserId(userId); } + /** + * 根据map 查询, 将参数中的 access_token 去掉 + * @param params + * @return + */ @Override public ResultBody getListByMap(Map<String, Object> params) { + //将access_token 参数去掉 + params.remove("access_token"); List<SysOrganization> sysOrganizations = baseMapper.selectByMap(params); - return ResultBody.ok().data(sysOrganizations); + List<SysOrganizationVo> sysOrganizationVos=new ArrayList<>(); + sysOrganizations.forEach(e ->{ + if(e.getOrgParentId()!=null){ + SysOrganizationVo sysOrganizationVo=new SysOrganizationVo(); + BeanCopier beanCopier = BeanCopier.create(SysOrganization.class, SysOrganizationVo.class, false); + beanCopier.copy(e,sysOrganizationVo,null); + SysOrganization sysOrganization = baseMapper.selectById(e.getOrgParentId()); + if(sysOrganization!=null){ + sysOrganizationVo.setOrgParentName(sysOrganization.getOrgName()); + } + sysOrganizationVos.add(sysOrganizationVo); + } + }); + return ResultBody.ok().data(sysOrganizationVos); + } + + /** + * 更新状态 + * @param params + * @return + */ + @Override + public ResultBody updateEnabled(Map<String, Object> params) { + Long id = MapUtils.getLong(params, "id"); + if(id==null){ + return ResultBody.failed("请选取一条数据"); + } + SysOrganization sysOrganization = baseMapper.selectById(id); + if (sysOrganization != null) { + sysOrganization.setEnabled(MapUtils.getBoolean(params,"enabled")); + int i = baseMapper.updateById(sysOrganization); + if(i>0){ + return ResultBody.ok(); + }else { + return ResultBody.failed("更新失败"); + } + }else { + return ResultBody.failed("更新失败"); + } + } + + /** + * 获取树状图 + * @param params + * @return + */ + @Override + public ResultBody getTree(Map<String, Object> params) { + List<SysOrganization> sysOrganizations = baseMapper.selectByMap(params); + List<Map<String, Object>> treeData = getTreeData(Long.valueOf("-1"), sysOrganizations); + return ResultBody.ok().data(treeData); + } + + /** + * 将数据 封装成 tree (递归方式) + * @param MyId + * @param sysOrganizations + * @return + */ + public List<Map<String,Object>> getTreeData(Long MyId,List<SysOrganization> sysOrganizations){ + List<Map<String,Object>> listMap=new ArrayList<>(); + Map<Long, SysOrganization> collect = sysOrganizations.stream().collect(Collectors.toMap(SysOrganization::getId, SysOrganization -> SysOrganization)); + List<Long> idList = sysOrganizations.stream().filter(e -> e.getOrgParentId()==MyId).map(e -> e.getId()).collect(Collectors.toList()); + for (Long id:idList + ) { + Map<String,Object> map=new HashMap<>(); + map.put("id",id); + map.put("name",collect.get(id).getOrgName()); + map.put("level",collect.get(id).getOrgLevel()); + List<Long> childs = sysOrganizations.stream().filter(e -> e.getOrgParentId() == id).map(e -> e.getId()).collect(Collectors.toList()); + if(childs.size()>0){ + List<Map<String, Object>> treeData = getTreeData(id, sysOrganizations); + map.put("children",treeData); + } + listMap.add(map); + } + return listMap; } } -- Gitblit v1.8.0