|
|
@ -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); |
|
|
|
} |
|
|
|
|
|
|
|