|
|
@@ -1,9 +1,7 @@
|
|
|
package com.zhongshu.card.server.core.service.devices.permiss;
|
|
|
|
|
|
-import cn.hutool.json.JSONUtil;
|
|
|
import com.github.microservice.core.util.os.SystemUtil;
|
|
|
import com.github.microservice.models.device.DevicePerQuery;
|
|
|
-import com.github.microservice.models.device.UserPerQuery;
|
|
|
import com.github.microservice.models.devicePermiss.DeviceAboutPermiss;
|
|
|
import com.github.microservice.models.devicePermiss.DeviceUsersInfo;
|
|
|
import com.github.microservice.models.devicePermiss.GateWayPermissModel;
|
|
|
@@ -14,10 +12,8 @@ import com.zhongshu.card.client.model.school.CardInfoModel;
|
|
|
import com.zhongshu.card.client.type.DataState;
|
|
|
import com.zhongshu.card.client.type.school.CardState;
|
|
|
import com.zhongshu.card.server.core.dao.devices.DevicePermissDao;
|
|
|
-import com.zhongshu.card.server.core.dao.org.OrganizationDao;
|
|
|
import com.zhongshu.card.server.core.dataConfig.CardSystemDefault;
|
|
|
import com.zhongshu.card.server.core.domain.devices.permiss.DevicePermiss;
|
|
|
-import com.zhongshu.card.server.core.domain.org.Organization;
|
|
|
import com.zhongshu.card.server.core.domain.org.UserAccount;
|
|
|
import com.zhongshu.card.server.core.domain.projectAbout.OrgUserFace;
|
|
|
import com.zhongshu.card.server.core.domain.school.CardInfo;
|
|
|
@@ -49,18 +45,12 @@ import java.util.stream.Collectors;
|
|
|
@Service
|
|
|
public class DevicePermissIotService {
|
|
|
|
|
|
- @Autowired
|
|
|
- private OrganizationDao organizationDao;
|
|
|
-
|
|
|
@Autowired
|
|
|
private OrgUserFaceService orgUserFaceService;
|
|
|
|
|
|
@Autowired
|
|
|
private CardInfoServiceImpl cardInfoService;
|
|
|
|
|
|
- @Autowired
|
|
|
- private DevicePermissService devicePermissService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private DevicePermissDao devicePermissDao;
|
|
|
|
|
|
@@ -72,6 +62,8 @@ public class DevicePermissIotService {
|
|
|
|
|
|
//线程池
|
|
|
private ExecutorService executorService = Executors.newFixedThreadPool(SystemUtil.getCpuCoreCount() * 2);
|
|
|
+ @Autowired
|
|
|
+ private UserCanUseDeviceService userCanUseDeviceService;
|
|
|
|
|
|
@Autowired
|
|
|
private void init(ApplicationContext applicationContext) {
|
|
|
@@ -147,16 +139,10 @@ public class DevicePermissIotService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 查询设备的权限数据
|
|
|
- *
|
|
|
+ * 组装设备 关联的用户下发数据 {deviceId: [userIds]}
|
|
|
* @param query
|
|
|
* @return
|
|
|
*/
|
|
|
- public ResultContent queryDevicePermiss(DevicePerQuery query) {
|
|
|
- GateWayPermissModel permissModel = queryDevicePermissInfo(query);
|
|
|
- return ResultContent.buildSuccess(JSONUtil.toJsonStr(permissModel));
|
|
|
- }
|
|
|
-
|
|
|
public GateWayPermissModel queryDevicePermissInfo(DevicePerQuery query) {
|
|
|
GateWayPermissModel permissModel = getDeviceAboutUsers(query.getDeviceIds());
|
|
|
permissModel.setSuccess();
|
|
|
@@ -164,17 +150,6 @@ public class DevicePermissIotService {
|
|
|
return permissModel;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 查询设备关联的用户信息(增加或修改)
|
|
|
- *
|
|
|
- * @param query
|
|
|
- * @return
|
|
|
- */
|
|
|
- public ResultContent getDeviceAboutUserInfos(DevicePerQuery query) {
|
|
|
- DeviceUsersInfo permissModel = queryDeviceAboutUsers(query);
|
|
|
- return ResultContent.buildSuccess(JSONUtil.toJsonStr(permissModel));
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* @param query
|
|
|
* @return
|
|
|
@@ -186,30 +161,6 @@ public class DevicePermissIotService {
|
|
|
return permissModel;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 查询项目下的用户权限信息 (根据userIds查询)
|
|
|
- *
|
|
|
- * @param query
|
|
|
- * @return
|
|
|
- */
|
|
|
- public ResultContent getDeviceAboutUserInfos(UserPerQuery query) {
|
|
|
- DeviceUsersInfo permissModel = new DeviceUsersInfo();
|
|
|
- String projectOid = "";
|
|
|
- String projectCode = query.getProjectCode();
|
|
|
- if (StringUtils.isNotEmpty(projectCode)) {
|
|
|
- Organization organization = organizationDao.findTopByCode(projectCode);
|
|
|
- if (ObjectUtils.isNotEmpty(organization)) {
|
|
|
- projectOid = organization.getOid();
|
|
|
- }
|
|
|
- }
|
|
|
- if (StringUtils.isNotEmpty(projectOid) && ObjectUtils.isNotEmpty(query.getUserIds())) {
|
|
|
- permissModel.setUsers(getUserPermiss(projectOid, query.getUserIds()));
|
|
|
- }
|
|
|
- permissModel.setSuccess();
|
|
|
- permissModel.setGateWayId(query.getGatewayId());
|
|
|
- return ResultContent.buildSuccess(JSONUtil.toJsonStr(permissModel));
|
|
|
- }
|
|
|
-
|
|
|
public DeviceUsersInfo getDeviceAboutUserInfos(List<String> deviceIds) {
|
|
|
DeviceUsersInfo deviceUsersInfo = new DeviceUsersInfo();
|
|
|
if (ObjectUtils.isNotEmpty(deviceIds)) {
|
|
|
@@ -289,19 +240,13 @@ public class DevicePermissIotService {
|
|
|
public GateWayPermissModel getDeviceAboutUsers(List<String> deviceIds) {
|
|
|
GateWayPermissModel gateWayPermissModel = new GateWayPermissModel();
|
|
|
if (ObjectUtils.isNotEmpty(deviceIds)) {
|
|
|
- List<DevicePermiss> list = devicePermissDao.findByDeviceIdInAndDataState(deviceIds, DataState.Enable);
|
|
|
- if (ObjectUtils.isNotEmpty(list)) {
|
|
|
- List<DeviceAboutPermiss> devices = new ArrayList<DeviceAboutPermiss>();
|
|
|
- // 以设备分组
|
|
|
- Map<String, List<DevicePermiss>> groupedItems = list.stream().collect(Collectors.groupingBy(DevicePermiss::getDeviceId));
|
|
|
- groupedItems.forEach((deviceId, itemsInCategory) -> {
|
|
|
- DeviceAboutPermiss aboutPermiss = new DeviceAboutPermiss();
|
|
|
- aboutPermiss.setDeviceId(deviceId);
|
|
|
- List<String> _userIds = itemsInCategory.stream().map(it -> it.getUserId()).collect(Collectors.toUnmodifiableList());
|
|
|
- aboutPermiss.setUserIds(_userIds.stream().distinct().collect(Collectors.toUnmodifiableList()));
|
|
|
- devices.add(aboutPermiss);
|
|
|
- });
|
|
|
- gateWayPermissModel.setDevices(devices);
|
|
|
+ for (String deviceId : deviceIds) {
|
|
|
+ DeviceAboutPermiss aboutPermiss = new DeviceAboutPermiss();
|
|
|
+ aboutPermiss.setMark(2);
|
|
|
+ aboutPermiss.setDeviceId(deviceId);
|
|
|
+ List<String> _userIds = userCanUseDeviceService.getDeviceUserIds(deviceId);
|
|
|
+ aboutPermiss.setUserIds(_userIds);
|
|
|
+ gateWayPermissModel.addDevice(aboutPermiss);
|
|
|
}
|
|
|
}
|
|
|
return gateWayPermissModel;
|