From e84df331a8ee600d369eeac4172b750db563926d Mon Sep 17 00:00:00 2001
From: houruijun <411269194@kidgrow.com>
Date: Sun, 09 Aug 2020 15:16:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java |   86 ++++++++++++++++++++++++++++--------------
 1 files changed, 57 insertions(+), 29 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 f217783..49f6395 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
@@ -9,22 +9,18 @@
 import com.kidgrow.redis.util.RedisConstant;
 import com.kidgrow.redis.util.RedisUtils;
 import com.kidgrow.usercenter.mapper.SysOrganizationMapper;
+import com.kidgrow.usercenter.mapper.SysUserOrgMapper;
 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.*;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -40,6 +36,8 @@
 public class SysOrganizationServiceImpl extends SuperServiceImpl<SysOrganizationMapper, SysOrganization> implements ISysOrganizationService {
     @Autowired
     RedisUtils redisUtils;
+    @Autowired
+    SysUserOrgMapper sysUserOrgMapper;
 
     /**
      * 列表
@@ -140,8 +138,21 @@
     @Override
     public ResultBody getTree(Map<String, Object> params) {
         List<SysOrganization> sysOrganizations = baseMapper.selectByMap(params);
+        //查询 ,父类为-1的;即顶级父类
+//        params.put("org_parent_id",Long.valueOf("-1"));
+//        List<SysOrganization> sysOrgs=baseMapper.selectByMap(params);
+//        if (sysOrgs.isEmpty()) {
+//            return ResultBody.ok().data(null);
+//        }
         List<Map<String, Object>> treeData = getTreeData(Long.valueOf("-1"), sysOrganizations);
         return ResultBody.ok().data(treeData);
+    }
+
+    @Override
+    public int deleteByUserId(Long userId) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("user_id", userId);
+        return sysUserOrgMapper.deleteByMap(params);
     }
 
     /**
@@ -154,14 +165,17 @@
     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());
+        List<Long> idList = sysOrganizations.stream().filter(e -> MyId.equals(e.getOrgParentId())).map(e -> e.getId()).collect(Collectors.toList());
         for (Long id : idList
         ) {
             Map<String, Object> map = new HashMap<>();
-            map.put("id", ""+id);
+            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());
+            map.put("parentId", collect.get(id).getOrgParentId());
+            List<Long> childs = sysOrganizations.stream().filter(e ->
+                    id.equals(e.getOrgParentId())
+            ).map(e -> e.getId()).collect(Collectors.toList());
             if (childs.size() > 0) {
                 List<Map<String, Object>> treeData = getTreeData(id, sysOrganizations);
                 map.put("children", treeData);
@@ -178,7 +192,7 @@
      * @return
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public boolean saveOrUpdateSer(SysOrganization sysOrganization) {
         //获取code
 
@@ -190,7 +204,7 @@
         } else {
             //更新
             SysOrganization sysOrg = baseMapper.selectById(sysOrganization.getId());
-            if(sysOrg.getOrgParentId()!=sysOrganization.getOrgParentId()){
+            if (sysOrg.getOrgParentId() != sysOrganization.getOrgParentId()) {
                 String code = this.getCode(sysOrganization);
                 sysOrganization.setOrgCode(code);
             }
@@ -204,40 +218,54 @@
 
     /**
      * 获取自己组织的code
+     *
      * @param sysOrganization
      * @return
      */
-    public String getCode(SysOrganization sysOrganization){
+    public String getCode(SysOrganization sysOrganization) {
         //获取父级
         Long orgParentId = sysOrganization.getOrgParentId();
         if (orgParentId == null) {
             return null;
         }
         SysOrganization sysOrg = baseMapper.selectById(orgParentId);
-        if(sysOrg!=null){
+        if (sysOrg != null) {
             String orgCode = sysOrg.getOrgCode();
             //查询
-            QueryWrapper queryWrapper=new QueryWrapper();
-            queryWrapper.eq("org_parent_id",sysOrg.getId());
-            queryWrapper.orderByAsc("id");
+            QueryWrapper queryWrapper = new QueryWrapper();
+            queryWrapper.eq("org_parent_id", sysOrg.getId());
+            queryWrapper.orderByDesc("org_code");
+            queryWrapper.last("limit 1");
             List<SysOrganization> list = baseMapper.selectList(queryWrapper);
-            if (list.size()>0) {
+            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 {
+                if (sysOrganizationLast.getOrgLevel() >= 2) {
+                    String orgCodeLast = sysOrganizationLast.getOrgCode();
+                    //取前部分
+                    String orgCodeLastQianZhui = orgCodeLast.substring(0, orgCodeLast.length() - 3);
+                    //取后部分
+                    Integer codenum = Integer.valueOf(orgCodeLast.substring(orgCodeLast.length() - 3));
+                    String str = "00";
+                    str += (codenum + 1);
+                    String substring = str.substring(str.length() - 3);
+                    return orgCodeLastQianZhui + substring;
+                } else {
+                    String orgCodeLast = sysOrganizationLast.getOrgCode();
+                    //取前部分
+                    String orgCodeLastQianZhui = orgCodeLast.substring(0, orgCodeLast.length() - 7);
+                    //取后部分
+                    Integer codenum = Integer.valueOf(orgCodeLast.substring(orgCodeLast.length() - 7));
+                    String str = "0000000";
+                    str += (codenum + 1);
+                    String substring = str.substring(str.length() - 7);
+                    return orgCodeLastQianZhui + substring;
+                }
+            } else {
                 String fucode = sysOrg.getOrgCode();
-                String str="0001";
-                return fucode+str;
+                String str = "01";
+                return fucode + str;
             }
-
         }
         return null;
     }
-
 }

--
Gitblit v1.8.0