12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package com.genersoft.iot.vmp.utils;
- import com.genersoft.iot.vmp.gb28181.DeviceShare;
- import com.genersoft.iot.vmp.gb28181.bean.Device;
- import com.genersoft.iot.vmp.service.IAccountService;
- import com.genersoft.iot.vmp.service.IAdminService;
- import com.genersoft.iot.vmp.service.IDeviceService;
- import com.genersoft.iot.vmp.storager.dao.dto.AdminAccount;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- @Component
- public class DeviceHelper {
- private final static Logger logger = LoggerFactory.getLogger(DeviceHelper.class);
- @Autowired
- private IAdminService adminService;
- @Autowired
- private IAccountService accountService;
- @Autowired
- private IDeviceService deviceService;
- @Autowired
- private DeviceShare deviceShare;
- /**
- * 获取设备
- *
- * @param deviceId
- * @param shareCode
- * @return
- */
- public Device getDevice(String deviceId, String shareCode) {
- Device device = null;
- String userId = AuthorUtil.getUserId();
- String adminId = AuthorUtil.getAdminId();
- if (adminId != null) {
- logger.info("get admin:{} device:{}", adminId, deviceId);
- AdminAccount adminAccount = adminService.getUserById(adminId);
- boolean isPrimaryAdmin = adminAccount.isPrimaryAdminFlag();
- if (isPrimaryAdmin) {
- logger.info("get isPrimaryAdmin device:{}", deviceId);
- device = deviceService.getDevice(deviceId);
- } else {
- // 普通管理员用户目前基本使用 国标id 进行设备操作
- device = adminService.getAdminDeviceBySipId(adminId, deviceId);
- }
- } else if (userId != null) {
- device = accountService.getAccountDevice(userId, deviceId);
- } else if (shareCode != null) {
- // 判断是否为分享码访问
- device = deviceService.getDevice(deviceId);
- if (!deviceShare.shareCheck(device, shareCode, false)) {
- // 判断设备分享是否过期,如果过期则自动进行关闭分享
- if (deviceShare.checkShareCodeIsExpires(device, device.getShareCode()) == 0) {
- // 设备还在分享中, 延长分享时间
- deviceShare.updateTime(device);
- } else {
- deviceShare.closeShare(device);
- }
- }
- }
- return device;
- }
- }
|