diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java
index 066944f63..8db11a678 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java
@@ -285,6 +285,8 @@ public class SysUserController {
/**
* 组装用户部门多层结构
+ *
auth模块调用,用户登录时,获取用户机构权限,返回页面组装下拉菜单所需数据,保存在redis
+ * 组装三层,街道-社区-网格
*
* @param userId
* @return com.elink.esua.epdc.commons.tools.utils.Result
@@ -299,6 +301,8 @@ public class SysUserController {
/**
* 获取用户部门多层结构,用户前端显示,请求需携带token
+ * 调接口,从redis获取{@link SysUserController#packageUserDeptOption(Long)}接口生成的数据。
+ * 此接口展示三级机构层级(街道-社区-网格),不包括区级
*
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
@@ -311,6 +315,8 @@ public class SysUserController {
/**
* 获取用户部门多层结构(完整层级结构,包括顶级部门),用户前端显示,请求需携带token
+ * 新闻、通知发布,选择机构可多选,且展示完整层级结构,市区-街道-社区-网格
+ * 新闻、通知页面主动触发,不在用户登录是自动调用
*
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author work@yujt.net.cn
@@ -322,6 +328,20 @@ public class SysUserController {
return new Result().ok(option);
}
+ /**
+ * 用户数据分析,pc端页面,获取用户街道-社区层级关系,前端显示,请求需携带token
+ * 网格开通情况与用户排名分析页面用,只组装街道-社区两级
+ *
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2020/2/10 14:45
+ */
+ @GetMapping("deptOptions/getMiddleByLoginUser")
+ public Result getMiddleByLoginUser() {
+ DeptOption option = sysDeptService.getMiddleByLoginUser();
+ return new Result().ok(option);
+ }
+
/**
* 退出登录
*
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
index 0d79a3d9c..385ff1c55 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
@@ -212,8 +212,18 @@ public interface SysDeptService extends BaseService {
/**
* 获取用户部门多层结构(完整层级结构,包括顶级部门),用户前端显示,请求需携带token
*
+ * @return com.elink.esua.epdc.dto.DeptOption
* @author work@yujt.net.cn
* @date 2020/1/28 10:40
*/
DeptOption getAllDeptOptionByLoginUser();
+
+ /**
+ * 获取用户部门层级结构(街道-社区),用户前端显示,请求需携带token
+ *
+ * @return com.elink.esua.epdc.dto.DeptOption
+ * @author work@yujt.net.cn
+ * @date 2020/2/10 13:38
+ */
+ DeptOption getMiddleByLoginUser();
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java
index de54a8349..80f42e52a 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java
@@ -76,6 +76,7 @@ public class SysDeptServiceImpl extends BaseServiceImpl list(Map params) {
//普通管理员,只能查询所属部门及子部门的数据
@@ -356,6 +357,56 @@ public class SysDeptServiceImpl extends BaseServiceImpl options = result.getOptions();
+ if (options.isEmpty()) {
+ return result;
+ }
+ // 代表存在子级机构的json key
+ String childJsonOptionKey = "children";
+ // 一个街道机构
+ JSONObject streetOption;
+ // 一个街道下所有社区机构
+ JSONArray communityOptionArray;
+ // 一个社区机构
+ JSONObject communityOption;
+ // 循环所有街道
+ for (int i = options.size() - NumConstant.ONE; i >= NumConstant.ZERO; i--) {
+ // 取出一个街道
+ streetOption = options.get(i);
+ // 街道有children,代表有下级社区(没有children的,其实是区直)
+ if (null != streetOption.get(childJsonOptionKey)) {
+ // 获取该街道的所有社区
+ communityOptionArray = streetOption.getJSONArray(childJsonOptionKey);
+ if (!communityOptionArray.isEmpty()) {
+ // 社区不为空,循环所有社区
+ for (int j = 0; j < communityOptionArray.size(); j++) {
+ // 取出一个社区
+ communityOption = communityOptionArray.getJSONObject(j);
+ // 社区有children,代表有下级网格,
+ if (null != communityOption.get(childJsonOptionKey)) {
+ // 移除网格
+ communityOption.remove(childJsonOptionKey);
+ }
+ }
+ }
+ } else {
+ // 移除区直机构
+ options.remove(i);
+ }
+ }
+ return result;
+ }
+
/**
* @param formDTO
* @return java.util.List
@@ -411,7 +462,7 @@ public class SysDeptServiceImpl extends BaseServiceImpl