Browse Source

获取完整部门层级的下拉菜单

dev
yujintao 6 years ago
parent
commit
e46917c800
  1. 24
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java
  2. 8
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
  3. 65
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java
  4. 12
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java
  5. 5
      esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/NewsDTO.java

24
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java

@ -309,9 +309,23 @@ public class SysUserController {
return sysDeptService.getUserDeptOption();
}
/**
* 获取用户部门多层结构完整层级结构包括顶级部门用户前端显示请求需携带token
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptOption>
* @author work@yujt.net.cn
* @date 2020/1/28 10:40
*/
@GetMapping("deptOptions/getAllByLoginUser")
public Result<DeptOption> getAllDeptOptionByLoginUser() {
DeptOption option = sysDeptService.getAllDeptOptionByLoginUser();
return new Result().ok(option);
}
/**
* 退出登录
* @param userId @RequestBody SysUserDTO dto
*
* @param userId @RequestBody SysUserDTO dto
* @return
*/
@GetMapping("updateUserOpenId/{userId}")
@ -325,24 +339,24 @@ public class SysUserController {
/**
* @Description: 根据部门id查询部门下的所有用户手机号
* @Param: [deptId]
* @return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<java.lang.String>>
* @return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < java.lang.String>>
* @Author: zy
* @Date: 2020-01-09
*/
@GetMapping("getUserPhoneByListDeptId")
public Result<List<String>> getUserPhoneByListDeptId(@RequestBody List<Long> deptId){
public Result<List<String>> getUserPhoneByListDeptId(@RequestBody List<Long> deptId) {
return sysUserService.getUserPhoneByListDeptId(deptId);
}
/**
* @Description: 根据议题网格ID查询拥有这个网格数据权限且是网格长的角色再根据角色查出所有用户手机号
* @Param: [deptId]
* @return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<java.lang.String>>
* @return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < java.lang.String>>
* @Author: zy
* @Date: 2020-01-09
*/
@GetMapping("getSysGridLeaderPhone/{deptId}")
public Result<List<String>> getSysGridLeaderPhone(@PathVariable("deptId") Long deptId){
public Result<List<String>> getSysGridLeaderPhone(@PathVariable("deptId") Long deptId) {
return sysUserService.getSysGridLeaderPhone(deptId);
}

8
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java

@ -199,4 +199,12 @@ public interface SysDeptService extends BaseService<SysDeptEntity> {
* @Date 2019/12/19 11:20
**/
PageData<CompleteDeptDTO> listCompleteDeptDTO(Map<String, Object> params);
/**
* 获取用户部门多层结构完整层级结构包括顶级部门用户前端显示请求需携带token
*
* @author work@yujt.net.cn
* @date 2020/1/28 10:40
*/
DeptOption getAllDeptOptionByLoginUser();
}

65
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java

@ -341,6 +341,18 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
return new Result<DeptOption>().ok((DeptOption) obj);
}
@Override
public DeptOption getAllDeptOptionByLoginUser() {
Long userId = SecurityUser.getUserId();
String deptOptionKey = RedisKeys.getAdminUserDeptOptionKey(userId);
Object obj = redisUtils.get(deptOptionKey);
if (null == obj) {
this.packageAllUserDeptOption(userId);
obj = redisUtils.get(deptOptionKey);
}
return (DeptOption) obj;
}
/**
* @param formDTO
* @return java.util.List<com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO>
@ -393,6 +405,23 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
@Override
public void packageUserDeptOption(Long userId) {
packageDeptOptionByUser(userId, false);
}
public void packageAllUserDeptOption(Long userId) {
packageDeptOptionByUser(userId, true);
}
/**
* 组装部门层级结构
*
* @param userId 用户id
* @param packageAllDept 是否组装完整层级结构 则组装后三级
* @return void
* @author work@yujt.net.cn
* @date 2020/1/28 10:49
*/
private void packageDeptOptionByUser(long userId, boolean packageAllDept) {
UserDetail userDetail = userDetailRedis.get(userId);
// 用户拥有的所有部门权限
List<Long> dataScopeDeptList = userDetail.getDeptIdList();
@ -424,6 +453,9 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
}
// 用于存放 每次组装好的 某一级节点。页面只需展示三级,所以没有存放顶级节点(市区)
List<JSONArray> cache = Lists.newArrayList();
if (packageAllDept) {
cache.add(parentNodeArray);
}
Map<String, Object> object;
while (CollUtil.isNotEmpty(dataScopeDeptList) && CollUtil.isNotEmpty(parentDeptIdList)) {
// 通过上级节点组装所有下级节点
@ -439,7 +471,12 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
DeptOption option = new DeptOption();
option.setOptions(cache.get(0));
redisUtils.set(RedisKeys.getAdminUserDeptOptionKey(userId), option);
if (packageAllDept) {
redisUtils.set(RedisKeys.getAllAdminUserDeptOptionKey(userId), option);
} else {
redisUtils.set(RedisKeys.getAdminUserDeptOptionKey(userId), option);
}
}
/**
@ -599,20 +636,20 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
return new Result<DeptOption>().ok((DeptOption) obj);
}
/**
* @param params
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.CompleteDeptDTO>
* @Author yinzuomei
* @Description 查询未建立党员群的网格列表
* @Date 2019/12/19 11:20
**/
@Override
public PageData<CompleteDeptDTO> listCompleteDeptDTO(Map<String, Object> params) {
//查询出已经建立党员群的网格id
Result<List<String>> gridListResult=groupFeignClient.listPartyMemberGridId();
params.put("gridList",gridListResult.getData());
/**
* @param params
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.CompleteDeptDTO>
* @Author yinzuomei
* @Description 查询未建立党员群的网格列表
* @Date 2019/12/19 11:20
**/
@Override
public PageData<CompleteDeptDTO> listCompleteDeptDTO(Map<String, Object> params) {
//查询出已经建立党员群的网格id
Result<List<String>> gridListResult = groupFeignClient.listPartyMemberGridId();
params.put("gridList", gridListResult.getData());
IPage<CompleteDeptDTO> iPage = this.getPage(params);
List<CompleteDeptDTO> userDtoList = this.baseDao.selectListCompleteDeptDTO(params);
return new PageData<>(userDtoList, iPage.getTotal());
}
}
}

12
esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java

@ -139,6 +139,18 @@ public class RedisKeys {
return rootPrefix.concat("options:dept:user:").concat(String.valueOf(userId));
}
/**
* 管理员完整部门层级关系
*
* @param userId 用户id
* @return java.lang.String
* @author work@yujt.net.cn
* @date 2019/11/28 09:56
*/
public static String getAllAdminUserDeptOptionKey(Long userId) {
return rootPrefix.concat("options:dept:user:all:").concat(String.valueOf(userId));
}
/**
* 事件分类
*/

5
esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/NewsDTO.java

@ -175,4 +175,9 @@ public class NewsDTO implements Serializable {
* 所有部门列表
*/
private List<String> allDeptIdsShow;
/**
* 前端选择新闻发布到哪个部门多选
*/
private List<Long[]> deptIdList;
}
Loading…
Cancel
Save