implements Serializable {
* 上级菜单名称
*/
private String parentName;
+ /**
+ * 绑定菜单id
+ */
+ private Long bindingId;
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptGridDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptGridDTO.java
new file mode 100644
index 000000000..f443a4b38
--- /dev/null
+++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptGridDTO.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2018 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.elink.esua.epdc.dto;
+
+import com.elink.esua.epdc.commons.tools.utils.TreeNode;
+import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
+import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
+import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Null;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 部门管理
+ *
+ * @author Mark sunlightcs@gmail.com
+ * @since 1.0.0
+ */
+@Data
+public class DeptGridDTO implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 部门id
+ */
+ private Long id;
+ /**
+ * 上级部门id
+ */
+ private Long pid;
+ /**
+ * 部门名称
+ */
+ private String name;
+
+
+ /**
+ * 上级部门名称
+ */
+ private String parentName;
+ /**
+ * 部门总名称
+ */
+ private String deptName;
+
+
+}
diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysAnalysisMenuDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysAnalysisMenuDTO.java
index c06629052..ca85e22e3 100644
--- a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysAnalysisMenuDTO.java
+++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysAnalysisMenuDTO.java
@@ -137,5 +137,10 @@ public class SysAnalysisMenuDTO implements Serializable {
*/
private String modelname;
+ /**
+ * 绑定菜单id
+ */
+ private Long bindingId;
+
}
\ No newline at end of file
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/Dockerfile b/esua-epdc/epdc-admin/epdc-admin-server/Dockerfile
index fc459b9c2..f9ca92438 100755
--- a/esua-epdc/epdc-admin/epdc-admin-server/Dockerfile
+++ b/esua-epdc/epdc-admin/epdc-admin-server/Dockerfile
@@ -1,5 +1,5 @@
# 基础镜像
-FROM openjdk:8u242-jdk-buster
+FROM openjdk:8
# 作者
MAINTAINER rongchao@elink-cn.com
# 对应pom.xml文件中的dockerfile-maven-plugin插件JAR_FILE的值
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/pom.xml b/esua-epdc/epdc-admin/epdc-admin-server/pom.xml
index ae13678b2..6d7bae3c1 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/pom.xml
+++ b/esua-epdc/epdc-admin/epdc-admin-server/pom.xml
@@ -148,7 +148,7 @@
false
47.104.224.45:8848
- 6a3577b4-7b79-43f6-aebb-9c3f31263f6a
+ a746dde3-7a13-4521-b986-7369b0b7c269
http://localhost:9411
@@ -158,8 +158,8 @@
wx29b074840ef4bfd9
4adb1afccc69f205cdf5b521d74e2aca
- wx9b6102a8ee5add65
- 394f47d4e08fc0fd629231d3f68a34dc
+ wxfa4afaa2b5f9c876
+ 7db9f049c78c9a6cafa673deebe8330d
47.104.85.99:9876;114.215.125.123:9876
organizationGroup
@@ -191,8 +191,8 @@
wx9f20a46906ab2c3e
dc13065f79429979d9f687d249eb5c4e
- wx9b6102a8ee5add65
- 394f47d4e08fc0fd629231d3f68a34dc
+ wxfa4afaa2b5f9c876
+ 7db9f049c78c9a6cafa673deebe8330d
47.104.85.99:9876;114.215.125.123:9876
organizationGroup
@@ -230,8 +230,8 @@
wx9f20a46906ab2c3e
dc13065f79429979d9f687d249eb5c4e
- wx9b6102a8ee5add65
- 394f47d4e08fc0fd629231d3f68a34dc
+ wxfa4afaa2b5f9c876
+ 7db9f049c78c9a6cafa673deebe8330d
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 aa5e46fbe..2de072642 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
@@ -231,6 +231,12 @@ public class SysUserController {
return new Result>().ok(data);
}
+ @GetMapping("getWorkRecordRoleUser/{menuCode}")
+ public Result> getWorkRecordRoleUser(@PathVariable("menuCode") String menuCode) {
+ List data = sysRoleUserService.getWorkRecordRoleUser(menuCode);
+
+ return new Result>().ok(data);
+ }
/**
* 根据用户名更新用户微信openId
@@ -327,6 +333,25 @@ public class SysUserController {
DeptOption deptOption = sysDeptService.getUserDeptOption();
return new Result().ok(deptOption);
}
+ /**
+ * 获取用户部门多层结构,用户前端显示,请求需携带token
+ * 调接口,从redis获取{@link SysUserController#packageUserDeptOption(Long)}接口生成的数据。
+ * 此接口展示三级机构层级(街道-社区-网格),不包括区级
+ *
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/11/27 14:31
+ */
+ @GetMapping("deptOptions/getDeptAuthByUser")
+ public Result getDeptAuthByUser() {
+ DeptOption deptOption = sysDeptService.getDeptAuthByUser();
+ return new Result().ok(deptOption);
+ }
+ @GetMapping("deptOptions/getGridAuthByUser")
+ public Result> getGridAuthByUser() {
+ List deptOption = sysDeptService.getGridAuthByUser();
+ return new Result().ok(deptOption);
+ }
/**
* 获取用户部门多层结构(完整层级结构,包括顶级部门),用户前端显示,请求需携带token
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java
index 5c63ece38..a1d9e8bab 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java
@@ -10,10 +10,7 @@ package com.elink.esua.epdc.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.commons.tools.utils.Result;
-import com.elink.esua.epdc.dto.CompleteDeptDTO;
-import com.elink.esua.epdc.dto.DeptTreeDTO;
-import com.elink.esua.epdc.dto.SysDeptDTO;
-import com.elink.esua.epdc.dto.SysSimpleDeptDTO;
+import com.elink.esua.epdc.dto.*;
import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO;
import com.elink.esua.epdc.dto.epdc.form.UserSysDeptInfoFormDTO;
import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO;
@@ -130,6 +127,9 @@ public interface SysDeptDao extends BaseDao {
*/
List selectChildrenDeptNode(@Param("dataScopeDeptList") List dataScopeDeptList, @Param("parentDeptIdList") List parentDeptIdList);
+ List selectChildrenDeptAuth(@Param("dataScopeDeptList") List dataScopeDeptList);
+ List getGridAuthByUser(@Param("deptList") List deptList);
+
/**
* @param formDTO
* @return java.util.List
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysRoleUserDao.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysRoleUserDao.java
index 87a648e78..32f149d03 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysRoleUserDao.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysRoleUserDao.java
@@ -43,4 +43,6 @@ public interface SysRoleUserDao extends BaseDao {
* @return
*/
List getRoleIdList(Long userId);
+
+ List getWorkRecordRoleUser(String menuCode);
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysAnalysisMenuEntity.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysAnalysisMenuEntity.java
index ac45ced4b..8668e0926 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysAnalysisMenuEntity.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysAnalysisMenuEntity.java
@@ -117,4 +117,5 @@ public class SysAnalysisMenuEntity extends BaseEntity {
*/
private String numFlag;
+
}
\ No newline at end of file
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 c3059bd02..12ed3179a 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
@@ -163,6 +163,10 @@ public interface SysDeptService extends BaseService {
*/
DeptOption getUserDeptOption();
+ DeptOption getDeptAuthByUser();
+
+ List getGridAuthByUser();
+
/**
* @param formDTO
* @return java.util.List
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysRoleUserService.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysRoleUserService.java
index 05b6d0efc..50ebae918 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysRoleUserService.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysRoleUserService.java
@@ -46,4 +46,10 @@ public interface SysRoleUserService extends BaseService {
* @param userId 用户ID
*/
List getRoleIdList(Long userId);
+
+ /**
+ * 用户ID列表
+ * @param menuCode 用户ID
+ */
+ List getWorkRecordRoleUser(String menuCode);
}
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 1960db6b5..cdf9227d7 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
@@ -350,8 +350,41 @@ public class SysDeptServiceImpl extends BaseServiceImpl getGridAuthByUser() {
+ // 用户拥有的所有部门权限
+ List deptList = SecurityUser.getUser().getDeptIdList();
+ List list;
+ if (deptList != null && deptList.size() > 0) {
+ list = baseDao.getGridAuthByUser(deptList);
+ } else {
+ return null;
+ }
+ return list;
+ }
+ /**
+ * 根据userId,从redis取出用户部门层级关系(街道-社区-网格)
+ *
+ * @param userId
+ * @return com.elink.esua.epdc.dto.DeptOption
+ * @author work@yujt.net.cn
+ * @date 2020/2/11 11:18
+ */
+ private DeptOption getDeptAuthByUser(Long userId) {
+ String deptOptionKey = RedisKeys.getAdminUserDeptAuthOptionKey(userId);
+ Object obj = redisUtils.get(deptOptionKey);
+ if (null == obj) {
+ this.packageDeptAuthByUser(userId);
+ obj = redisUtils.get(deptOptionKey);
+ }
+ return (DeptOption) obj;
+ }
/**
* 根据userId,从redis取出用户部门层级关系(街道-社区-网格)
*
@@ -507,6 +540,10 @@ public class SysDeptServiceImpl extends BaseServiceImpl dataScopeDeptList = userDetail.getDeptIdList();
+ if (CollUtil.isEmpty(dataScopeDeptList)) {
+ return;
+ }
+ // 某个部门id 声明变量,方便操作数据
+ Long deptId;
+
+ // 所有父级节点 此处为第一次获取,为顶级节点,相当于市区
+ JSONArray parentNodeArray = new JSONArray();
+ // 用于存放 每次组装好的 某一级节点。页面只需展示三级,所以没有存放顶级节点(市区)
+ List cache = Lists.newArrayList();
+ Map object;
+ while (CollUtil.isNotEmpty(dataScopeDeptList)) {
+ // 通过上级节点组装所有下级节点
+ object = this.packageChildrenNodeAuth(parentNodeArray, dataScopeDeptList);
+
+ dataScopeDeptList = (List) object.get("scope");
+
+ parentNodeArray = (JSONArray) object.get("node");
+ cache.add(parentNodeArray);
+ }
+
+ DeptOption option = new DeptOption();
+ option.setOptions(cache.get(0));
+ redisUtils.set(RedisKeys.getAdminUserDeptAuthOptionKey(userId), option);
+ }
/**
* 组装下级结构节点
@@ -643,7 +717,79 @@ public class SysDeptServiceImpl extends BaseServiceImpl
+ * @author work@yujt.net.cn
+ * @date 2019/11/29 10:27
+ */
+ private Map packageChildrenNodeAuth(JSONArray allParentNode, List dataScopeDeptList) {
+
+ List childDepts = baseDao.selectChildrenDeptAuth(dataScopeDeptList);
+
+ List parentDeptIdList = Lists.newArrayList();
+
+ // 用于存储所有子节点
+ JSONArray allChildrenNode = new JSONArray();
+ // 某个父节点下所有的子节点
+ JSONArray childrenNodeList;
+ // 单个 子节点
+ JSONObject nodeChild;
+
+ // 单个 父节点
+ JSONObject nodeParent;
+ Long deptId;
+
+ for (int i = 0; i < allParentNode.size(); i++) {
+
+ nodeParent = allParentNode.getJSONObject(i);
+ // 用于存储 一个父节点的所有下级节点
+ childrenNodeList = new JSONArray();
+
+ for (int j = 0; j < childDepts.size(); j++) {
+ deptId = childDepts.get(j).getId();
+ if (nodeParent.get("value").equals(String.valueOf(childDepts.get(j).getPid()))) {
+ nodeChild = new JSONObject();
+ nodeChild.put("label", childDepts.get(j).getName());
+ nodeChild.put("value", String.valueOf(deptId));
+ childrenNodeList.add(nodeChild);
+
+ allChildrenNode.add(nodeChild);
+ parentDeptIdList.add(deptId);
+ }
+ }
+ if (childrenNodeList.size() > 0) {
+ nodeParent.put("children", childrenNodeList);
+ }
+ }
+ if(allParentNode.size() == 0){
+ for (int index = 0; index < childDepts.size(); index++) {
+ JSONObject node = new JSONObject();
+ node.put("label", childDepts.get(index).getName());
+ node.put("value", String.valueOf(childDepts.get(index).getId()));
+ allParentNode.add(node);
+ parentDeptIdList.add(childDepts.get(index).getId());
+ allChildrenNode.add(node);
+ }
+ }
+
+ List newDataScopeList = Lists.newArrayList();
+ for (int i = 0; i < dataScopeDeptList.size(); i++) {
+ deptId = dataScopeDeptList.get(i);
+ if (!parentDeptIdList.contains(deptId)) {
+ newDataScopeList.add(deptId);
+ }
+ }
+ dataScopeDeptList = newDataScopeList;
+ Map result = Maps.newHashMap();
+ result.put("node", allChildrenNode);
+ result.put("scope", dataScopeDeptList);
+ return result;
+ }
@Override
public void packgeAllDeptOption() {
List deptList = baseDao.selectListDeptTree();
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysRoleDataScopeServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysRoleDataScopeServiceImpl.java
index 4c7bb2903..09c2d6312 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysRoleDataScopeServiceImpl.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysRoleDataScopeServiceImpl.java
@@ -10,10 +10,12 @@ package com.elink.esua.epdc.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
+import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
import com.elink.esua.epdc.dao.SysRoleDataScopeDao;
import com.elink.esua.epdc.dto.DataScopeDeptList;
import com.elink.esua.epdc.entity.SysRoleDataScopeEntity;
import com.elink.esua.epdc.service.SysRoleDataScopeService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -28,6 +30,8 @@ import java.util.List;
@Service
public class SysRoleDataScopeServiceImpl extends BaseServiceImpl
implements SysRoleDataScopeService {
+ @Autowired
+ private RedisUtils redisUtils;
@Override
public List getDeptIdList(Long roleId) {
@@ -64,6 +68,7 @@ public class SysRoleDataScopeServiceImpl extends BaseServiceImpl getWorkRecordRoleUser(String menuCode) {
+
+ return baseDao.getWorkRecordRoleUser(menuCode);
+ }
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/application.yml b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/application.yml
index ce4d434b1..91563710a 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/application.yml
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/application.yml
@@ -23,6 +23,7 @@ spring:
server-addr: @nacos.server-addr@
register-enabled: @nacos.register-enabled@
ip: @nacos.ip@
+ namespace: @nacos.namespace@
alibaba:
seata:
tx-service-group: epdc-admin-server-fescar-service-group
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml
index 5dfda6dbb..4a7b850d5 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml
@@ -156,6 +156,32 @@
GROUP BY tem2.ID
ORDER BY tem2.create_date ASC
+
+