|
@@ -17,16 +17,15 @@ import com.zhongshu.card.server.core.domain.devices.DeviceGroup;
|
|
|
import com.zhongshu.card.server.core.domain.devices.DeviceGroupToDevice;
|
|
import com.zhongshu.card.server.core.domain.devices.DeviceGroupToDevice;
|
|
|
import com.zhongshu.card.server.core.domain.devices.DeviceInfo;
|
|
import com.zhongshu.card.server.core.domain.devices.DeviceInfo;
|
|
|
import com.zhongshu.card.server.core.domain.devices.permiss.DevicePermiss;
|
|
import com.zhongshu.card.server.core.domain.devices.permiss.DevicePermiss;
|
|
|
-import com.zhongshu.card.server.core.domain.devices.permiss.PermissSettingList;
|
|
|
|
|
import com.zhongshu.card.server.core.domain.devices.permiss.PermissTimeSlot;
|
|
import com.zhongshu.card.server.core.domain.devices.permiss.PermissTimeSlot;
|
|
|
-import com.zhongshu.card.server.core.domain.org.*;
|
|
|
|
|
|
|
+import com.zhongshu.card.server.core.domain.org.OrganizationUser;
|
|
|
|
|
+import com.zhongshu.card.server.core.domain.org.UserAccount;
|
|
|
|
|
+import com.zhongshu.card.server.core.domain.org.UserGroupToUser;
|
|
|
import com.zhongshu.card.server.core.service.org.OrganizationUserServiceImpl;
|
|
import com.zhongshu.card.server.core.service.org.OrganizationUserServiceImpl;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.data.domain.Page;
|
|
|
|
|
-import org.springframework.data.domain.PageRequest;
|
|
|
|
|
-import org.springframework.data.domain.Pageable;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.StopWatch;
|
|
import org.springframework.util.StopWatch;
|
|
|
|
|
|
|
@@ -98,6 +97,9 @@ public class DevicePermissVerifyService {
|
|
|
stopWatch.start("查询设备信息");
|
|
stopWatch.start("查询设备信息");
|
|
|
// 验证设备
|
|
// 验证设备
|
|
|
DeviceInfo deviceInfo = deviceInfoDao.findTopByDeviceId(deviceId);
|
|
DeviceInfo deviceInfo = deviceInfoDao.findTopByDeviceId(deviceId);
|
|
|
|
|
+ // 验证手动管理的设备权限
|
|
|
|
|
+ stopWatch.stop();
|
|
|
|
|
+
|
|
|
if (ObjectUtils.isEmpty(deviceInfo)) {
|
|
if (ObjectUtils.isEmpty(deviceInfo)) {
|
|
|
return ResultContent.buildFail("设备不存在");
|
|
return ResultContent.buildFail("设备不存在");
|
|
|
}
|
|
}
|
|
@@ -108,9 +110,6 @@ public class DevicePermissVerifyService {
|
|
|
boolean hasPermission = false;
|
|
boolean hasPermission = false;
|
|
|
String projectOid = deviceInfo.getProjectOid();
|
|
String projectOid = deviceInfo.getProjectOid();
|
|
|
|
|
|
|
|
- // 验证手动管理的设备权限
|
|
|
|
|
- stopWatch.stop();
|
|
|
|
|
-
|
|
|
|
|
stopWatch.start("设备权限");
|
|
stopWatch.start("设备权限");
|
|
|
DevicePermiss devicePermiss = devicePermissDao.findTopByUserIdAndDeviceIdAndProjectOidAndDataState(userId, deviceId, projectOid, DataState.Enable);
|
|
DevicePermiss devicePermiss = devicePermissDao.findTopByUserIdAndDeviceIdAndProjectOidAndDataState(userId, deviceId, projectOid, DataState.Enable);
|
|
|
if (ObjectUtils.isNotEmpty(devicePermiss)) {
|
|
if (ObjectUtils.isNotEmpty(devicePermiss)) {
|
|
@@ -131,8 +130,10 @@ public class DevicePermissVerifyService {
|
|
|
if (ObjectUtils.isNotEmpty(permissTimeSlots) && ObjectUtils.isNotEmpty(organizationUsers)) {
|
|
if (ObjectUtils.isNotEmpty(permissTimeSlots) && ObjectUtils.isNotEmpty(organizationUsers)) {
|
|
|
// 查看权限规则 是否包含该设备
|
|
// 查看权限规则 是否包含该设备
|
|
|
PermissSettingListSearch search = new PermissSettingListSearch();
|
|
PermissSettingListSearch search = new PermissSettingListSearch();
|
|
|
|
|
+
|
|
|
search.setProjectOid(projectOid);
|
|
search.setProjectOid(projectOid);
|
|
|
- search.setTimeSlotIds(permissTimeSlots.stream().map(PermissTimeSlot::getId).collect(Collectors.toList()));
|
|
|
|
|
|
|
+ search.setTimeSlotIds(permissTimeSlots.parallelStream().map(PermissTimeSlot::getId).collect(Collectors.toList()));
|
|
|
|
|
+
|
|
|
if (userAccount.getSex() != null) {
|
|
if (userAccount.getSex() != null) {
|
|
|
search.setSex(userAccount.getSex());
|
|
search.setSex(userAccount.getSex());
|
|
|
}
|
|
}
|
|
@@ -145,23 +146,26 @@ public class DevicePermissVerifyService {
|
|
|
stopWatch.start("机构用户信息处理");
|
|
stopWatch.start("机构用户信息处理");
|
|
|
// 用户所属角色、机构
|
|
// 用户所属角色、机构
|
|
|
organizationUsers.parallelStream().forEach(organizationUser -> {
|
|
organizationUsers.parallelStream().forEach(organizationUser -> {
|
|
|
- dataIds.add(organizationUser.getOrganization().getOid());
|
|
|
|
|
- List<Role> roles = organizationUser.getRoles();
|
|
|
|
|
- if (ObjectUtils.isNotEmpty(roles)) {
|
|
|
|
|
- dataIds.addAll(roles.stream().map(Role::getId).collect(Collectors.toList()));
|
|
|
|
|
|
|
+ dataIds.add(organizationUser.getOid());
|
|
|
|
|
+ if (ObjectUtils.isNotEmpty(organizationUser.getRoleIds())) {
|
|
|
|
|
+ dataIds.addAll(organizationUser.getRoleIds());
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
stopWatch.stop();
|
|
stopWatch.stop();
|
|
|
- stopWatch.start("用户分组处理");
|
|
|
|
|
|
|
+ stopWatch.start("用户分组查询");
|
|
|
// 用户分组
|
|
// 用户分组
|
|
|
List<UserGroupToUser> userGroupToUsers = userGroupToUserDao.findByUserIdAndProjectOid(userId, projectOid);
|
|
List<UserGroupToUser> userGroupToUsers = userGroupToUserDao.findByUserIdAndProjectOid(userId, projectOid);
|
|
|
|
|
+ stopWatch.stop();
|
|
|
|
|
+
|
|
|
|
|
+ stopWatch.start("用户分组处理");
|
|
|
if (ObjectUtils.isNotEmpty(userGroupToUsers)) {
|
|
if (ObjectUtils.isNotEmpty(userGroupToUsers)) {
|
|
|
userGroupToUsers.parallelStream().forEach(userGroupToUser -> {
|
|
userGroupToUsers.parallelStream().forEach(userGroupToUser -> {
|
|
|
- UserGroup userGroup = userGroupToUser.getUserGroup();
|
|
|
|
|
- if (ObjectUtils.isNotEmpty(userGroup) && userGroup.getState() == DataState.Enable) {
|
|
|
|
|
- dataIds.add(userGroup.getId());
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ dataIds.add(userGroupToUser.getUserGroupId());
|
|
|
|
|
+// UserGroup userGroup = userGroupToUser.getUserGroup();
|
|
|
|
|
+// if (ObjectUtils.isNotEmpty(userGroup) && userGroup.getState() == DataState.Enable) {
|
|
|
|
|
+// dataIds.add(userGroup.getId());
|
|
|
|
|
+// }
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
search.setDataIds(dataIds);
|
|
search.setDataIds(dataIds);
|
|
@@ -169,9 +173,9 @@ public class DevicePermissVerifyService {
|
|
|
// 设备属性
|
|
// 设备属性
|
|
|
List<String> deviceIds = new ArrayList<>();
|
|
List<String> deviceIds = new ArrayList<>();
|
|
|
deviceIds.add(deviceId);
|
|
deviceIds.add(deviceId);
|
|
|
- if (ObjectUtils.isNotEmpty(deviceInfo.getArea())) {
|
|
|
|
|
|
|
+ if (StringUtils.isNotEmpty(deviceInfo.getAreaId())) {
|
|
|
// 区域的下级怎么办?
|
|
// 区域的下级怎么办?
|
|
|
- deviceIds.add(deviceInfo.getArea().getId());
|
|
|
|
|
|
|
+ deviceIds.add(deviceInfo.getAreaId());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
stopWatch.stop();
|
|
stopWatch.stop();
|
|
@@ -198,19 +202,22 @@ public class DevicePermissVerifyService {
|
|
|
search.setDeviceIds(deviceIds);
|
|
search.setDeviceIds(deviceIds);
|
|
|
|
|
|
|
|
stopWatch.start("规则数据查询");
|
|
stopWatch.start("规则数据查询");
|
|
|
- Pageable pageable = PageRequest.of(0, 1);
|
|
|
|
|
- Page<PermissSettingList> page = permissSettingListDao.page(pageable, search);
|
|
|
|
|
- if (ObjectUtils.isNotEmpty(page.getContent())) {
|
|
|
|
|
|
|
+ boolean b = permissSettingListDao.isExit(search);
|
|
|
|
|
+ if (b) {
|
|
|
hasPermission = true;
|
|
hasPermission = true;
|
|
|
}
|
|
}
|
|
|
|
|
+// Pageable pageable = PageRequest.of(0, 1);
|
|
|
|
|
+// Page<PermissSettingList> page = permissSettingListDao.page(pageable, search);
|
|
|
|
|
+// if (ObjectUtils.isNotEmpty(page.getContent())) {
|
|
|
|
|
+// hasPermission = true;
|
|
|
|
|
+// }
|
|
|
stopWatch.stop();
|
|
stopWatch.stop();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
if (!hasPermission) {
|
|
if (!hasPermission) {
|
|
|
return ResultContent.buildFail("验证失败");
|
|
return ResultContent.buildFail("验证失败");
|
|
|
}
|
|
}
|
|
|
- log.info("用户设备权限验证:{}", stopWatch.prettyPrint());
|
|
|
|
|
|
|
+ log.info("权限验证:{}", stopWatch.prettyPrint());
|
|
|
return ResultContent.buildSuccess(msg);
|
|
return ResultContent.buildSuccess(msg);
|
|
|
}
|
|
}
|
|
|
|
|
|