From a4113e4e3223a55d2f1b73306319457b36f1ce26 Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <913652501@qq.com>
Date: Tue, 28 Apr 2020 10:17:58 +0800
Subject: [PATCH] 修改 获取部门的bug
---
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java | 205 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 197 insertions(+), 8 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 3fab158..09a1b2d 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,53 +1,242 @@
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.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;
/**
* 石家庄喜高科技有限责任公司 版权所有 © 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);
+ 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());
+ map.put("parentId", collect.get(id).getOrgParentId());
+ 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) {
+ //获取code
+
+ if (sysOrganization.getId() == null) {
+ //保存
+ String code = this.getCode(sysOrganization);
+ sysOrganization.setOrgCode(code);
+ baseMapper.insert(sysOrganization);
+ } else {
+ //更新
+ SysOrganization sysOrg = baseMapper.selectById(sysOrganization.getId());
+ if(sysOrg.getOrgParentId()!=sysOrganization.getOrgParentId()){
+ String code = this.getCode(sysOrganization);
+ sysOrganization.setOrgCode(code);
+ }
+ int i = baseMapper.updateById(sysOrganization);
+ }
+ redisUtils.hdel(RedisConstant.ORGANIZATION, sysOrganization.getId().toString());
+ redisUtils.hset(RedisConstant.ORGANIZATION, sysOrganization.getId().toString(), sysOrganization);
+ return true;
+ }
+
+
+ /**
+ * 获取自己组织的code
+ * @param sysOrganization
+ * @return
+ */
+ public String getCode(SysOrganization sysOrganization){
+ //获取父级
+ Long orgParentId = sysOrganization.getOrgParentId();
+ if (orgParentId == null) {
+ return null;
+ }
+ SysOrganization sysOrg = baseMapper.selectById(orgParentId);
+ if(sysOrg!=null){
+ String orgCode = sysOrg.getOrgCode();
+ //查询
+ QueryWrapper queryWrapper=new QueryWrapper();
+ queryWrapper.eq("org_parent_id",sysOrg.getId());
+ queryWrapper.orderByAsc("id");
+ List<SysOrganization> list = baseMapper.selectList(queryWrapper);
+ if (list.size()>0) {
+ SysOrganization sysOrganizationLast = list.get(list.size() - 1);
+ String orgCodeLast = sysOrganizationLast.getOrgCode();
+ String orgCodeLastQianZhui=orgCodeLast.substring(0,orgCodeLast.length() - 4);
+ Integer codenum = Integer.valueOf(orgCodeLast.substring(orgCodeLast.length() - 4));
+ String str="0000";
+ str+=(codenum+1);
+ String substring = str.substring(str.length() - 4);
+ return orgCodeLastQianZhui+substring;
+ }else {
+ String fucode = sysOrg.getOrgCode();
+ String str="0001";
+ return fucode+str;
+ }
+
+ }
+ return null;
+ }
+
}
--
Gitblit v1.8.0