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