Browse Source

Merge remote-tracking branch 'origin/dev_analysis' into dev_analysis

dev
尹作梅 6 years ago
parent
commit
31ce40054b
  1. 20
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java
  2. 10
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
  3. 53
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java

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

@ -285,6 +285,8 @@ public class SysUserController {
/**
* 组装用户部门多层结构
* <p>auth模块调用用户登录时获取用户机构权限返回页面组装下拉菜单所需数据保存在redis</p>
* <p>组装三层街道-社区-网格</p>
*
* @param userId
* @return com.elink.esua.epdc.commons.tools.utils.Result
@ -299,6 +301,8 @@ public class SysUserController {
/**
* 获取用户部门多层结构用户前端显示请求需携带token
* <p>调接口从redis获取{@link SysUserController#packageUserDeptOption(Long)}接口生成的数据</p>
* <p>此接口展示三级机构层级街道-社区-网格不包括区级</p>
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptOption>
* @author work@yujt.net.cn
@ -311,6 +315,8 @@ public class SysUserController {
/**
* 获取用户部门多层结构完整层级结构包括顶级部门用户前端显示请求需携带token
* <p>新闻通知发布选择机构可多选且展示完整层级结构市区-街道-社区-网格</p>
* <P>新闻通知页面主动触发不在用户登录是自动调用</P>
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptOption>
* @author work@yujt.net.cn
@ -322,6 +328,20 @@ public class SysUserController {
return new Result().ok(option);
}
/**
* 用户数据分析pc端页面获取用户街道-社区层级关系前端显示请求需携带token
* <p>网格开通情况与用户排名分析页面用只组装街道-社区两级</p>
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptOption>
* @author work@yujt.net.cn
* @date 2020/2/10 14:45
*/
@GetMapping("deptOptions/getMiddleByLoginUser")
public Result<DeptOption> getMiddleByLoginUser() {
DeptOption option = sysDeptService.getMiddleByLoginUser();
return new Result().ok(option);
}
/**
* 退出登录
*

10
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<SysDeptEntity> {
/**
* 获取用户部门多层结构完整层级结构包括顶级部门用户前端显示请求需携带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();
}

53
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<SysDeptDao, SysDeptEntit
private RedisUtils redisUtils;
private static final Logger logger = LoggerFactory.getLogger(SysDeptServiceImpl.class);
@Override
public List<SysDeptDTO> list(Map<String, Object> params) {
//普通管理员,只能查询所属部门及子部门的数据
@ -356,6 +357,56 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
return (DeptOption) obj;
}
@Override
public DeptOption getMiddleByLoginUser() {
Long userId = SecurityUser.getUserId();
String deptOptionKey = RedisKeys.getAdminUserDeptOptionKey(userId);
Object obj = redisUtils.get(deptOptionKey);
if (null == obj) {
this.packageUserDeptOption(userId);
obj = redisUtils.get(deptOptionKey);
}
DeptOption result = (DeptOption) obj;
List<JSONObject> 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<com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO>
@ -411,7 +462,7 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
packageDeptOptionByUser(userId, false);
}
public void packageAllUserDeptOption(Long userId) {
private void packageAllUserDeptOption(Long userId) {
packageDeptOptionByUser(userId, true);
}

Loading…
Cancel
Save