From 9ab21680926a8e9938fe6195513bc166ad87044f Mon Sep 17 00:00:00 2001 From: zhaoxiaohao <913652501@qq.com> Date: Thu, 23 Apr 2020 15:48:53 +0800 Subject: [PATCH] Merge branch 'dev' of http://192.168.2.240:7070/r/kidgrow-microservices-platform into dev --- kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java | 152 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 143 insertions(+), 9 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..d815af8 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,60 +1,194 @@ 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; import com.kidgrow.common.model.SysOrganization; import com.kidgrow.common.service.impl.SuperServiceImpl; +import com.kidgrow.redis.util.RedisConstant; +import com.kidgrow.redis.util.RedisUtils; 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.beans.factory.annotation.Autowired; +import org.springframework.cglib.beans.BeanCopier; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +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> + * + * @version 1.0 * @Description: 组织架构表<br> * @Project: 用户中心<br> * @CreateDate: Created in 2020-03-31 11:01:35 <br> * @Author: <a href="4345453@kidgrow.com">liuke</a> - * @version 1.0 */ @Slf4j @Service public class SysOrganizationServiceImpl extends SuperServiceImpl<SysOrganizationMapper, SysOrganization> implements ISysOrganizationService { + @Autowired + RedisUtils redisUtils; + /** * 列表 + * * @param params * @return */ @Override - public PageResult<SysOrganization> findList(Map<String, Object> params){ + public PageResult<SysOrganization> findList(Map<String, Object> params) { Page<SysOrganization> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); - List<SysOrganization> list = baseMapper.findList(page, params); + List<SysOrganization> list = baseMapper.findList(page, params); return PageResult.<SysOrganization>builder().data(list).code(0).count(page.getTotal()).build(); } /** - * 根据SysOrganization对象当做查询条件进行查询 - * @param sysOrganization - * @return SysOrganization - */ + * 根据SysOrganization对象当做查询条件进行查询 + * + * @param sysOrganization + * @return SysOrganization + */ @Override - public SysOrganization findByObject(SysOrganization sysOrganization){ + public SysOrganization findByObject(SysOrganization sysOrganization) { 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); + redisUtils.hdel(RedisConstant.ORGANIZATION, sysOrganization.getId().toString()); + redisUtils.hset(RedisConstant.ORGANIZATION, sysOrganization.getId().toString(), 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; + } + + /** + * 保存或者更新 + * + * @param sysOrganization + * @return + */ + @Override + @Transactional + public boolean saveOrUpdateSer(SysOrganization sysOrganization) { + if (sysOrganization.getId() == null) { + //保存 + baseMapper.insert(sysOrganization); + } else { + //更新 + int i = baseMapper.updateById(sysOrganization); + } + redisUtils.hdel(RedisConstant.ORGANIZATION, sysOrganization.getId().toString()); + redisUtils.hset(RedisConstant.ORGANIZATION, sysOrganization.getId().toString(), sysOrganization); + return true; } } -- Gitblit v1.8.0