From 13883507228e344c870ab26da2c6b744d495b2a9 Mon Sep 17 00:00:00 2001
From: 克 刘 <4345453@qq.com>
Date: Tue, 31 Mar 2020 18:19:34 +0800
Subject: [PATCH] 扩展当前登录用户组织机构信息 1、组织机构ID、名称 2、部门ID、名称

---
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserOrgMapper.xml                                    |   67 ++++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml                                             |    2 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserOrgController.java      |   97 ++++++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysOrganizationController.java |   97 ++++++
 pom.xml                                                                                                                                      |    7 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java         |    9 
 kidgrow-springcloud/kidgrow-springcloud-eureka/src/main/resources/application.yml                                                            |    6 
 kidgrow-config/src/main/resources/bootstrap.properties                                                                                       |    2 
 kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysOrganization.java                               |   62 ++++
 kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java                                 |   12 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysUserOrgMapper.java                 |   34 ++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysOrganizationMapper.xml                               |   90 ++++++
 kidgrow-springcloud/kidgrow-springcloud-zuul/pom.xml                                                                                         |    5 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysOrganizationService.java         |   42 +++
 kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysUserOrg.java                                    |   50 +++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserOrgService.java              |   33 ++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserOrgServiceImpl.java      |   48 +++
 kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java                          |   20 +
 kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysUser.java                                       |    2 
 kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/LoginAppUser.java                                  |    5 
 kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml                                                              |    2 
 kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/auth/Oauth2AuthSuccessHandler.java                               |   17 +
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysOrganizationMapper.java            |   42 +++
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js                                                                   |    4 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java |   53 +++
 25 files changed, 798 insertions(+), 10 deletions(-)

diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysOrganizationMapper.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysOrganizationMapper.java
new file mode 100644
index 0000000..592d47a
--- /dev/null
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysOrganizationMapper.java
@@ -0,0 +1,42 @@
+package com.kidgrow.usercenter.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kidgrow.common.model.SysOrganization;
+import com.kidgrow.db.mapper.SuperMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ * @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
+ */
+public interface SysOrganizationMapper extends SuperMapper<SysOrganization> {
+    /**
+     * 分页查询组织架构表列表
+     * @param page
+     * @param params
+     * @return
+     */
+    List<SysOrganization> findList(Page<SysOrganization> page, @Param("p") Map<String, Object> params);
+
+    /**
+     * 根据SysOrganization对象当做查询条件进行查询
+     * @param
+     * @return SysOrganization对象
+     */
+    SysOrganization findByObject(SysOrganization sysOrganization);
+
+
+    /**
+     * 根据用户ID获取用户组织机构列表
+     * @param userId
+     * @return
+     */
+    List<SysOrganization> findListByUserId(Long userId);
+}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysUserOrgMapper.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysUserOrgMapper.java
new file mode 100644
index 0000000..19515a1
--- /dev/null
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysUserOrgMapper.java
@@ -0,0 +1,34 @@
+package com.kidgrow.usercenter.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kidgrow.common.model.SysUserOrg;
+import com.kidgrow.db.mapper.SuperMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ * @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
+ */
+public interface SysUserOrgMapper extends SuperMapper<SysUserOrg> {
+    /**
+     * 分页查询用户和组织关系表列表
+     * @param page
+     * @param params
+     * @return
+     */
+    List<SysUserOrg> findList(Page<SysUserOrg> page, @Param("p") Map<String, Object> params);
+
+    /**
+     * 根据SysUserOrg对象当做查询条件进行查询
+     * @param
+     * @return SysUserOrg对象
+     */
+    SysUserOrg findByObject(SysUserOrg sysUserOrg);
+}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysOrganizationService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysOrganizationService.java
new file mode 100644
index 0000000..e44a071
--- /dev/null
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysOrganizationService.java
@@ -0,0 +1,42 @@
+package com.kidgrow.usercenter.service;
+
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.SysOrganization;
+import com.kidgrow.common.service.ISuperService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ * @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
+ */
+public interface ISysOrganizationService extends ISuperService<SysOrganization> {
+    /**
+     * 列表
+     * @param params
+     * @return
+     */
+    PageResult<SysOrganization> findList(Map<String, Object> params);
+
+
+    /**
+    * 根据SysOrganization对象当做查询条件进行查询
+    * @param sysOrganization
+    * @return SysOrganization对象
+    */
+    SysOrganization findByObject(SysOrganization sysOrganization);
+
+
+    /**
+     * 通过用户ID获取用户所属组织机构列表
+     * @param userId
+     * @return
+     */
+    List<SysOrganization> findListByUserId(Long userId);
+}
+
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserOrgService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserOrgService.java
new file mode 100644
index 0000000..ddcbd1c
--- /dev/null
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserOrgService.java
@@ -0,0 +1,33 @@
+package com.kidgrow.usercenter.service;
+
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.SysUserOrg;
+import com.kidgrow.common.service.ISuperService;
+
+import java.util.Map;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ * @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
+ */
+public interface ISysUserOrgService extends ISuperService<SysUserOrg> {
+    /**
+     * 列表
+     * @param params
+     * @return
+     */
+    PageResult<SysUserOrg> findList(Map<String, Object> params);
+
+
+    /**
+    * 根据SysUserOrg对象当做查询条件进行查询
+    * @param sysUserOrg
+    * @return SysUserOrg对象
+    */
+    SysUserOrg findByObject(SysUserOrg sysUserOrg);
+}
+
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
new file mode 100644
index 0000000..3fab158
--- /dev/null
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java
@@ -0,0 +1,53 @@
+package com.kidgrow.usercenter.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.SysOrganization;
+import com.kidgrow.common.service.impl.SuperServiceImpl;
+import com.kidgrow.usercenter.mapper.SysOrganizationMapper;
+import com.kidgrow.usercenter.service.ISysOrganizationService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ * @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 {
+    /**
+     * 列表
+     * @param params
+     * @return
+     */
+    @Override
+    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);
+        return PageResult.<SysOrganization>builder().data(list).code(0).count(page.getTotal()).build();
+    }
+
+    /**
+   * 根据SysOrganization对象当做查询条件进行查询
+   * @param sysOrganization
+   * @return SysOrganization
+   */
+    @Override
+    public SysOrganization findByObject(SysOrganization sysOrganization){
+        return baseMapper.findByObject(sysOrganization);
+    }
+
+    @Override
+    public List<SysOrganization> findListByUserId(Long userId) {
+        return baseMapper.findListByUserId(userId);
+    }
+}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserOrgServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserOrgServiceImpl.java
new file mode 100644
index 0000000..2091cc4
--- /dev/null
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserOrgServiceImpl.java
@@ -0,0 +1,48 @@
+package com.kidgrow.usercenter.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.SysUserOrg;
+import com.kidgrow.common.service.impl.SuperServiceImpl;
+import com.kidgrow.usercenter.mapper.SysUserOrgMapper;
+import com.kidgrow.usercenter.service.ISysUserOrgService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ * @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 SysUserOrgServiceImpl extends SuperServiceImpl<SysUserOrgMapper, SysUserOrg> implements ISysUserOrgService {
+    /**
+     * 列表
+     * @param params
+     * @return
+     */
+    @Override
+    public PageResult<SysUserOrg> findList(Map<String, Object> params){
+        Page<SysUserOrg> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
+        List<SysUserOrg> list  =  baseMapper.findList(page, params);
+        return PageResult.<SysUserOrg>builder().data(list).code(0).count(page.getTotal()).build();
+    }
+
+    /**
+   * 根据SysUserOrg对象当做查询条件进行查询
+   * @param sysUserOrg
+   * @return SysUserOrg
+   */
+    @Override
+    public SysUserOrg findByObject(SysUserOrg sysUserOrg){
+        return baseMapper.findByObject(sysUserOrg);
+    }
+}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
index 9df44c3..d6614aa 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
@@ -12,6 +12,7 @@
 import com.kidgrow.usercenter.mapper.SysUserMapper;
 import com.kidgrow.usercenter.model.SysRoleUser;
 import com.kidgrow.usercenter.model.SysUserExcel;
+import com.kidgrow.usercenter.service.ISysOrganizationService;
 import com.kidgrow.usercenter.service.ISysRoleUserService;
 import com.kidgrow.usercenter.service.ISysUserService;
 import lombok.extern.slf4j.Slf4j;
@@ -51,6 +52,9 @@
     @Resource
     private SysRoleMenuMapper roleMenuMapper;
 
+    @Autowired
+    private ISysOrganizationService organizationService;
+
 
 
     @Autowired
@@ -79,7 +83,10 @@
         if (sysUser != null) {
             LoginAppUser loginAppUser = new LoginAppUser();
             BeanUtils.copyProperties(sysUser, loginAppUser);
-
+            //获取用户所属组织机构列表
+            List<SysOrganization> sysOrganizations = organizationService.findListByUserId(sysUser.getId());
+            //设置组织机构集合
+            loginAppUser.setOrganizations(sysOrganizations);
             List<SysRole> sysRoles = roleUserService.findRolesByUserId(sysUser.getId());
             // 设置角色
             loginAppUser.setRoles(sysRoles);
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysOrganizationMapper.xml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysOrganizationMapper.xml
new file mode 100644
index 0000000..993f92c
--- /dev/null
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysOrganizationMapper.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--组织架构表-->
+<mapper namespace="com.kidgrow.usercenter.mapper.SysOrganizationMapper">
+    <!--定义查询列-->
+    <sql id="Column_List">
+	   *
+	</sql>
+
+    <!--sql查询片段-->
+    <sql id="where">
+        <where>
+            <!--查询条件自行添加-->
+            is_del=0
+            <if test="id != null and id !=''">
+                and id = #{id}
+            </if>
+            <if test="orgLevel != null and orgLevel !=''">
+                and org_level = #{orgLevel}
+            </if>
+            <if test="orgAttr != null and orgAttr !=''">
+                and org_attr = #{orgAttr}
+            </if>
+            <if test="orgParentId != null and orgParentId !=''">
+                and org_parent_id = #{orgParentId}
+            </if>
+            <if test="orgName != null and orgName !=''">
+                and org_name = #{orgName}
+            </if>
+            <if test="orgOrder != null and orgOrder !=''">
+                and org_order = #{orgOrder}
+            </if>
+            <if test="isDel != null and isDel !=''">
+                and is_del = #{isDel}
+            </if>
+            <if test="enabled != null and enabled !=''">
+                and enabled = #{enabled}
+            </if>
+            <if test="createUserId != null and createUserId !=''">
+                and create_user_id = #{createUserId}
+            </if>
+            <if test="createUserName != null and createUserName !=''">
+                and create_user_name = #{createUserName}
+            </if>
+            <if test="updateUserId != null and updateUserId !=''">
+                and update_user_id = #{updateUserId}
+            </if>
+            <if test="updateUserName != null and updateUserName !=''">
+                and update_user_name = #{updateUserName}
+            </if>
+            <if test="createTime != null and createTime !=''">
+                and create_time = #{createTime}
+            </if>
+            <if test="updateTime != null and updateTime !=''">
+                and update_time = #{updateTime}
+            </if>
+        </where>
+    </sql>
+
+    <!--定义根据-SysOrganization当作查询条件返回对象-->
+    <select id="findByObject" resultType="com.kidgrow.common.model.SysOrganization">
+        select
+        <include refid="Column_List"/>
+        from sys_organization
+        <include refid="where"/>
+    </select>
+
+    <!--定义根据-SysOrganization当作查询条件返回对象集合-->
+    <select id="findList" resultType="com.kidgrow.common.model.SysOrganization">
+        select
+        <include refid="Column_List"/>
+        from sys_organization
+        <include refid="where"/>
+        order by id desc
+    </select>
+
+    <!--根据用户ID查询用户所属组织机构列表-->
+    <select id="findListByUserId" resultType="com.kidgrow.common.model.SysOrganization">
+    SELECT
+        org.id,
+        org.org_parent_id,
+        org.org_name ,
+        org.org_attr,
+        org.org_level
+    FROM sys_user_org uo
+    LEFT JOIN sys_organization org ON uo.org_id = org.id
+    AND (uo.enabled = TRUE AND uo.is_del = FALSE) AND (org.is_del = FALSE AND org.enabled = TRUE)
+    where uo.user_id=#{userId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserOrgMapper.xml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserOrgMapper.xml
new file mode 100644
index 0000000..4c3650d
--- /dev/null
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserOrgMapper.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--用户和组织关系表-->
+<mapper namespace="com.kidgrow.usercenter.mapper.SysUserOrgMapper">
+    <!--定义查询列-->
+    <sql id="Column_List">
+	   *
+	</sql>
+
+    <!--sql查询片段-->
+    <sql id="where">
+        <where>
+            <!--查询条件自行添加-->
+            is_del=0
+            <if test="id != null and id !=''">
+                and id = #{id}
+            </if>
+            <if test="userId != null and userId !=''">
+                and user_id = #{userId}
+            </if>
+            <if test="orgId != null and orgId !=''">
+                and org_id = #{orgId}
+            </if>
+            <if test="enabled != null and enabled !=''">
+                and enabled = #{enabled}
+            </if>
+            <if test="isDel != null and isDel !=''">
+                and is_del = #{isDel}
+            </if>
+            <if test="createUserId != null and createUserId !=''">
+                and create_user_id = #{createUserId}
+            </if>
+            <if test="createUserName != null and createUserName !=''">
+                and create_user_name = #{createUserName}
+            </if>
+            <if test="updateUserId != null and updateUserId !=''">
+                and update_user_id = #{updateUserId}
+            </if>
+            <if test="updateUserName != null and updateUserName !=''">
+                and update_user_name = #{updateUserName}
+            </if>
+            <if test="createTime != null and createTime !=''">
+                and create_time = #{createTime}
+            </if>
+            <if test="updateTime != null and updateTime !=''">
+                and update_time = #{updateTime}
+            </if>
+        </where>
+    </sql>
+
+    <!--定义根据-SysUserOrg当作查询条件返回对象-->
+    <select id="findByObject"  resultType="com.kidgrow.common.model.SysUserOrg">
+        select
+        <include refid="Column_List"/>
+        from sys_user_org
+        <include refid="where"/>
+    </select>
+
+    <!--定义根据-SysUserOrg当作查询条件返回对象集合-->
+    <select id="findList" resultType="com.kidgrow.common.model.SysUserOrg">
+        select
+        <include refid="Column_List"/>
+        from sys_user_org
+        <include refid="where"/>
+        order by id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysOrganizationController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysOrganizationController.java
new file mode 100644
index 0000000..a63e640
--- /dev/null
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysOrganizationController.java
@@ -0,0 +1,97 @@
+package com.kidgrow.usercenter.controller;
+
+import com.kidgrow.common.controller.BaseController;
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.model.SysOrganization;
+import com.kidgrow.usercenter.service.ISysOrganizationService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.Map;
+
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ * @Description: 组织架构表
+ * @Project: 用户中心
+ * @CreateDate: Created in 2020-03-31 11:01:35 <br>
+ * @Author: <a href="4345453@kidgrow.com">liuke</a>
+ * @version: 1.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/sysorganization")
+@Api(tags = "组织架构表")
+public class SysOrganizationController  extends BaseController{
+    @Autowired
+    private ISysOrganizationService sysOrganizationService;
+
+    /**
+     * 列表
+     */
+    @ApiOperation(value = "查询列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "page", value = "分页起始位置", required = true, dataType = "Integer"),
+            @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer")
+    })
+    @GetMapping
+    public PageResult list(@RequestParam Map<String, Object> params) {
+        if(params.size()==0){
+            params.put("page",1);
+            params.put("limit",10);
+        }
+        return sysOrganizationService.findList(params);
+    }
+
+    /**
+     * 查询
+     */
+    @ApiOperation(value = "查询")
+    @GetMapping("/{id}")
+    public ResultBody findById(@PathVariable Long id) {
+        SysOrganization model = sysOrganizationService.getById(id);
+        return ResultBody.ok().data(model).msg("查询成功");
+    }
+
+    /**
+     * 根据SysOrganization当做查询条件进行查询
+     */
+    @ApiOperation(value = "根据SysOrganization当做查询条件进行查询")
+    @PostMapping("/query")
+    public ResultBody findByObject(@RequestBody SysOrganization sysOrganization) {
+        SysOrganization model = sysOrganizationService.findByObject(sysOrganization);
+        return ResultBody.ok().data(model).msg("查询成功");
+    }
+
+    /**
+     * 新增or更新
+     */
+    @ApiOperation(value = "保存")
+    @PostMapping
+    public ResultBody save(@Valid @RequestBody SysOrganization sysOrganization, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return ResultBody.failed().msg(bindingResult.getFieldError().getDefaultMessage());
+        } else {
+            sysOrganizationService.saveOrUpdate(sysOrganization);
+            return ResultBody.ok().data(sysOrganization).msg("保存成功");
+        }
+    }
+
+    /**
+     * 删除
+     */
+    @ApiOperation(value = "删除")
+    @DeleteMapping("/{id}")
+    public ResultBody delete(@PathVariable Long id) {
+        sysOrganizationService.removeById(id);
+        return ResultBody.ok().msg("删除成功");
+    }
+}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserOrgController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserOrgController.java
new file mode 100644
index 0000000..fb9520f
--- /dev/null
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserOrgController.java
@@ -0,0 +1,97 @@
+package com.kidgrow.usercenter.controller;
+
+import com.kidgrow.common.controller.BaseController;
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.model.SysUserOrg;
+import com.kidgrow.usercenter.service.ISysUserOrgService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.Map;
+
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ * @Description: 用户和组织关系表
+ * @Project: 用户中心
+ * @CreateDate: Created in 2020-03-31 11:01:35 <br>
+ * @Author: <a href="4345453@kidgrow.com">liuke</a>
+ * @version: 1.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/sysuserorg")
+@Api(tags = "用户和组织关系表")
+public class SysUserOrgController  extends BaseController{
+    @Autowired
+    private ISysUserOrgService sysUserOrgService;
+
+    /**
+     * 列表
+     */
+    @ApiOperation(value = "查询列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "page", value = "分页起始位置", required = true, dataType = "Integer"),
+            @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer")
+    })
+    @GetMapping
+    public PageResult list(@RequestParam Map<String, Object> params) {
+        if(params.size()==0){
+            params.put("page",1);
+            params.put("limit",10);
+        }
+        return sysUserOrgService.findList(params);
+    }
+
+    /**
+     * 查询
+     */
+    @ApiOperation(value = "查询")
+    @GetMapping("/{id}")
+    public ResultBody findById(@PathVariable Long id) {
+        SysUserOrg model = sysUserOrgService.getById(id);
+        return ResultBody.ok().data(model).msg("查询成功");
+    }
+
+    /**
+     * 根据SysUserOrg当做查询条件进行查询
+     */
+    @ApiOperation(value = "根据SysUserOrg当做查询条件进行查询")
+    @PostMapping("/query")
+    public ResultBody findByObject(@RequestBody SysUserOrg sysUserOrg) {
+        SysUserOrg model = sysUserOrgService.findByObject(sysUserOrg);
+        return ResultBody.ok().data(model).msg("查询成功");
+    }
+
+    /**
+     * 新增or更新
+     */
+    @ApiOperation(value = "保存")
+    @PostMapping
+    public ResultBody save(@Valid @RequestBody SysUserOrg sysUserOrg, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return ResultBody.failed().msg(bindingResult.getFieldError().getDefaultMessage());
+        } else {
+            sysUserOrgService.saveOrUpdate(sysUserOrg);
+            return ResultBody.ok().data(sysUserOrg).msg("保存成功");
+        }
+    }
+
+    /**
+     * 删除
+     */
+    @ApiOperation(value = "删除")
+    @DeleteMapping("/{id}")
+    public ResultBody delete(@PathVariable Long id) {
+        sysUserOrgService.removeById(id);
+        return ResultBody.ok().msg("删除成功");
+    }
+}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml
index e5ac20f..2837660 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml
@@ -63,6 +63,8 @@
       - sys_role
       - sys_menu
       - sys_user_logs
+      - sys_organization
+      - sys_user_org
     ignoreSqls:
       - com.kidgrow.usercenter.mapper.SysRoleMapper.findAll
 
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java
index e233512..18e47d2 100644
--- a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java
@@ -25,6 +25,26 @@
     String USER_ID_HEADER = "x-userid-header";
 
     /**
+     * 用户所属组织ID
+     */
+    String USER_ORG_ID_HEADER="x-user-org-id-header";
+
+    /**
+     * 用户所属组织名称
+     */
+    String USER_ORG_NAME_HEADER="x-user-org-name-header";
+
+    /**
+     * 用户所属部门ID
+     */
+    String USER_DEP_ID_HEADER="x-user-dep-id-header";
+
+    /**
+     * 用户所属部门名称
+     */
+    String USER_DEP_NAME_HEADER="x-user-dep-name-header";
+
+    /**
      * 角色信息头
      */
     String ROLE_HEADER = "x-role-header";
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/LoginAppUser.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/LoginAppUser.java
index a08aa89..8326d16 100644
--- a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/LoginAppUser.java
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/LoginAppUser.java
@@ -64,5 +64,10 @@
     public String getUserId() {
         return getOpenId();
     }
+
+//    @Override
+//    public List<SysOrganization> getOrganizations() {
+//        return getOrganizations();
+//    }
 }
 
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysOrganization.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysOrganization.java
new file mode 100644
index 0000000..7c300f1
--- /dev/null
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysOrganization.java
@@ -0,0 +1,62 @@
+package com.kidgrow.common.model;
+
+import com.kidgrow.common.model.SuperModel;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.*;
+import java.util.Date;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ * @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
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@NoArgsConstructor
+@AllArgsConstructor
+@TableName("sys_organization")
+public class SysOrganization extends SuperModel {
+    private static final long serialVersionUID=1L;
+
+            /**
+    * 节点级别取值 0-9
+    */
+        @NotBlank(message = "节点级别取值 0-9不能为空")
+        private Integer orgLevel;
+            /**
+    * 节点属性(集团/公司/部门等,取值0,1,2,3,4)
+    */
+        private Integer orgAttr;
+            /**
+    * 上级组织ID
+    */
+        private Long orgParentId;
+            /**
+    * 组织名称
+    */
+        @NotBlank(message = "组织名称不能为空")
+        private String orgName;
+            /**
+    * 排序
+    */
+        private Integer orgOrder;
+            /**
+    * 是否删除,1删除,0未删除
+    */
+        private Boolean isDel;
+            /**
+    * 状态,1启用,0停用
+    */
+        private Boolean enabled;
+                            }
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysUser.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysUser.java
index f10954c..a546068 100644
--- a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysUser.java
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysUser.java
@@ -43,4 +43,6 @@
     private String oldPassword;
     @TableField(exist = false)
     private String newPassword;
+    @TableField(exist = false)
+    private List<SysOrganization> organizations;
 }
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysUserOrg.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysUserOrg.java
new file mode 100644
index 0000000..ecff84f
--- /dev/null
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysUserOrg.java
@@ -0,0 +1,50 @@
+package com.kidgrow.common.model;
+
+import com.kidgrow.common.model.SuperModel;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.*;
+import java.util.Date;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ * @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
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@NoArgsConstructor
+@AllArgsConstructor
+@TableName("sys_user_org")
+public class SysUserOrg extends SuperModel {
+    private static final long serialVersionUID=1L;
+
+            /**
+    * 用户id
+    */
+        @NotBlank(message = "用户id不能为空")
+        private Long userId;
+            /**
+    * 组织ID
+    */
+        @NotBlank(message = "组织ID不能为空")
+        private Long orgId;
+            /**
+    * 状态,1启用,0停用 
+    */
+        private Boolean enabled;
+            /**
+    * 是否删除,1删除,0未删除
+    */
+        private Boolean isDel;
+                            }
diff --git a/kidgrow-config/src/main/resources/bootstrap.properties b/kidgrow-config/src/main/resources/bootstrap.properties
index 971d7b5..9eed521 100644
--- a/kidgrow-config/src/main/resources/bootstrap.properties
+++ b/kidgrow-config/src/main/resources/bootstrap.properties
@@ -1,6 +1,6 @@
 ########################## bootstrap\u7EA7\u522B\u901A\u7528\u914D\u7F6E ##########################
 # \u9ED8\u8BA4\u5F00\u53D1\u73AF\u5883
-spring.profiles.active=fat
+spring.profiles.active=dev
 
 ##### spring-boot-actuator\u914D\u7F6E
 management.endpoints.web.exposure.include=*
diff --git a/kidgrow-springcloud/kidgrow-springcloud-eureka/src/main/resources/application.yml b/kidgrow-springcloud/kidgrow-springcloud-eureka/src/main/resources/application.yml
index 1e490c2..e77679f 100644
--- a/kidgrow-springcloud/kidgrow-springcloud-eureka/src/main/resources/application.yml
+++ b/kidgrow-springcloud/kidgrow-springcloud-eureka/src/main/resources/application.yml
@@ -14,7 +14,8 @@
 eureka:
   instance:
     ###注册中心ip地址
-    hostname: 172.17.97.143
+#    hostname: 172.17.97.143
+    hostname: 127.0.0.1
     lease-renewal-interval-in-seconds: 30
     lease-expiration-duration-in-seconds: 30
     instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}
@@ -24,7 +25,8 @@
       ##注册地址
       #defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@${eureka.instance.hostname}:9002/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@${eureka.instance.hostname}:9003/eureka/
       #defaultZone: http://${eureka.instance.hostname}:9002/eureka/,http://${eureka.instance.hostname}:9003/eureka/
-      defaultZone: http://172.17.97.143:9001/eureka/,http://192.168.1.202:9001/eureka/
+#      defaultZone: http://172.17.97.143:9001/eureka/,http://192.168.2.240:9001/eureka/
+      defaultZone: http://127.0.0.1:9001/eureka/
     ####因为自己是注册中心,是否需要将自己注册给自己的注册中心(集群的时候是需要是为true)
     register-with-eureka: false
     ###因为自己是注册中心, 不需要去检索服务信息
diff --git a/kidgrow-springcloud/kidgrow-springcloud-zuul/pom.xml b/kidgrow-springcloud/kidgrow-springcloud-zuul/pom.xml
index 6fe01d8..6092725 100644
--- a/kidgrow-springcloud/kidgrow-springcloud-zuul/pom.xml
+++ b/kidgrow-springcloud/kidgrow-springcloud-zuul/pom.xml
@@ -56,6 +56,11 @@
             <artifactId>spring-boot-configuration-processor</artifactId>
             <optional>true</optional>
         </dependency>
+        <!--网关限流模块-->
+        <dependency>
+            <groupId>com.marcosbarbero.cloud</groupId>
+            <artifactId>spring-cloud-zuul-ratelimit</artifactId>
+        </dependency>
         <!--web 模块-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
diff --git a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/auth/Oauth2AuthSuccessHandler.java b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/auth/Oauth2AuthSuccessHandler.java
index 8bb30f4..a7a8bd7 100644
--- a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/auth/Oauth2AuthSuccessHandler.java
+++ b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/auth/Oauth2AuthSuccessHandler.java
@@ -2,6 +2,7 @@
 
 import cn.hutool.core.collection.CollectionUtil;
 import com.kidgrow.common.constant.SecurityConstants;
+import com.kidgrow.common.model.SysOrganization;
 import com.kidgrow.common.model.SysUser;
 import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.security.core.Authentication;
@@ -12,6 +13,8 @@
 import org.springframework.util.MultiValueMap;
 import org.springframework.web.server.ServerWebExchange;
 import reactor.core.publisher.Mono;
+
+import java.util.List;
 
 /**
  * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -26,19 +29,29 @@
     public Mono<Void> onAuthenticationSuccess(WebFilterExchange webFilterExchange, Authentication authentication) {
         MultiValueMap<String, String> headerValues = new LinkedMultiValueMap(4);
         Object principal = authentication.getPrincipal();
+        String tenantId="";
         //客户端模式只返回一个clientId
         if (principal instanceof SysUser) {
             SysUser user = (SysUser)authentication.getPrincipal();
             headerValues.add(SecurityConstants.USER_ID_HEADER, String.valueOf(user.getId()));
             headerValues.add(SecurityConstants.USER_HEADER, user.getUsername());
+
+            List<SysOrganization> organizations = (List<SysOrganization>)user.getOrganizations();
+            //如果有组织架构
+            if(organizations.size()==2){
+                headerValues.add(SecurityConstants.USER_ORG_ID_HEADER,String.valueOf(organizations.get(0).getId()));
+                headerValues.add(SecurityConstants.USER_ORG_NAME_HEADER,organizations.get(0).getOrgName());
+                headerValues.add(SecurityConstants.USER_DEP_ID_HEADER,String.valueOf(organizations.get(1).getId()));
+                headerValues.add(SecurityConstants.USER_DEP_NAME_HEADER,organizations.get(1).getOrgName());
+                tenantId=String.valueOf(organizations.get(0).getId());
+            }
         }
         OAuth2Authentication oauth2Authentication = (OAuth2Authentication)authentication;
         String clientId = oauth2Authentication.getOAuth2Request().getClientId();
-        String tenantId="";
         //保存租户id,租户id根据业务尽进行替换
         switch (clientId){
             case "hospital":
-                tenantId="1";
+                tenantId=tenantId;
                 break;
             case "webApp":
                 tenantId="webApp";
diff --git a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java
index 4563b65..dade34c 100644
--- a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java
+++ b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java
@@ -3,6 +3,7 @@
 import cn.hutool.core.collection.CollectionUtil;
 import com.kidgrow.common.constant.CommonConstant;
 import com.kidgrow.common.constant.SecurityConstants;
+import com.kidgrow.common.model.SysOrganization;
 import com.kidgrow.common.model.SysUser;
 import com.kidgrow.common.utils.AddrUtil;
 import com.netflix.zuul.ZuulFilter;
@@ -17,6 +18,7 @@
 import org.springframework.stereotype.Component;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 
 import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.FORM_BODY_WRAPPER_FILTER_ORDER;
 
@@ -60,7 +62,15 @@
                 SysUser user = (SysUser)authentication.getPrincipal();
                 ctx.addZuulRequestHeader(SecurityConstants.USER_ID_HEADER, String.valueOf(user.getId()));
                 ctx.addZuulRequestHeader(SecurityConstants.USER_HEADER, user.getUsername());
-                tenantId=String.valueOf(user.getId());
+                List<SysOrganization> organizations = (List<SysOrganization>)user.getOrganizations();
+                //如果有组织架构
+                if(organizations.size()==2){
+                    ctx.addZuulRequestHeader(SecurityConstants.USER_ORG_ID_HEADER,String.valueOf(organizations.get(0).getId()));
+                    ctx.addZuulRequestHeader(SecurityConstants.USER_ORG_NAME_HEADER,organizations.get(0).getOrgName());
+                    ctx.addZuulRequestHeader(SecurityConstants.USER_DEP_ID_HEADER,String.valueOf(organizations.get(1).getId()));
+                    ctx.addZuulRequestHeader(SecurityConstants.USER_DEP_NAME_HEADER,organizations.get(1).getOrgName());
+                    tenantId=String.valueOf(organizations.get(0).getId());
+                }
 //                log.error("用户ID写入Header成功,用户ID为:"+String.valueOf(user.getId()));
             }
 
diff --git a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml
index dc61444..e8aea62 100644
--- a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml
+++ b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml
@@ -6,7 +6,7 @@
     uri-encoding: UTF-8
     max-threads: 1000
     min-spare-threads: 30
-  port: 8887
+  port: 8888
 
 
 eureka:
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js
index f28f115..953b73e 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js
@@ -1,4 +1,4 @@
-var my_api_server_url = 'http://zuul.kidgrow.com/';
+// var my_api_server_url = 'http://zuul.kidgrow.com/';
 // var my_api_server_url = 'http://192.168.2.240:8888/';
-// var my_api_server_url = 'http://127.0.0.1:8888/';
+var my_api_server_url = 'http://127.0.0.1:8888/';
 
diff --git a/pom.xml b/pom.xml
index 1c6858c..c38616f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -85,6 +85,7 @@
         <javax.activatio.version>1.1.1</javax.activatio.version>
         <jaxb-runtime.version>2.3.0</jaxb-runtime.version>
         <jaxb-impl.version>2.3.0</jaxb-impl.version>
+        <zuul-ratelimit.version>2.0.4.RELEASE</zuul-ratelimit.version>
         <sonar.exclusions>kidgrow-jobs/**/* kidgrow-web/**/*</sonar.exclusions>
         <docker.baseImage>openjdk:8-jre-alpine</docker.baseImage>
         <docker.volumes>/tmp</docker.volumes>
@@ -350,6 +351,12 @@
                 <artifactId>mybatis-plus</artifactId>
                 <version>${mybatis-plus-boot-starter.version}</version>
             </dependency>
+            <!--网关限流插件-->
+            <dependency>
+                <groupId>com.marcosbarbero.cloud</groupId>
+                <artifactId>spring-cloud-zuul-ratelimit</artifactId>
+                <version>${zuul-ratelimit.version}</version>
+            </dependency>
             <dependency>
                 <groupId>p6spy</groupId>
                 <artifactId>p6spy</artifactId>

--
Gitblit v1.8.0