Commit ca3143a58fd4d2a9304d95823c6813471eccbb94

Authored by xp.Huang
2 parents 9515ee09 9ca3a509

Merge branch '2-27' into 'master_dev'

feat:1.单独新增GBT视频时校验是否存在2.视频通道分页接口增加状态筛选条件

See merge request yunteng/thingskit!351
@@ -16,6 +16,7 @@ import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; @@ -16,6 +16,7 @@ import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
16 import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; 16 import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO;
17 import org.thingsboard.server.common.data.yunteng.dto.sip.VideoChanelDTO; 17 import org.thingsboard.server.common.data.yunteng.dto.sip.VideoChanelDTO;
18 import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum; 18 import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum;
  19 +import org.thingsboard.server.common.data.yunteng.enums.StatusEnum;
19 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; 20 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
20 import org.thingsboard.server.controller.BaseController; 21 import org.thingsboard.server.controller.BaseController;
21 import org.thingsboard.server.dao.yunteng.mapper.DeviceMapper; 22 import org.thingsboard.server.dao.yunteng.mapper.DeviceMapper;
@@ -49,6 +50,8 @@ public class TkVideoChannelController extends BaseController { @@ -49,6 +50,8 @@ public class TkVideoChannelController extends BaseController {
49 @RequestParam(value = "tbDeviceId") String tbDeviceId, 50 @RequestParam(value = "tbDeviceId") String tbDeviceId,
50 @ApiParam(value = "视频通道名称") 51 @ApiParam(value = "视频通道名称")
51 @RequestParam(value = "name", required = false) String name, 52 @RequestParam(value = "name", required = false) String name,
  53 + @ApiParam(value = "设备状态")
  54 + @RequestParam(value = "status", required = false) StatusEnum status,
52 @ApiParam(value = "国标编号") 55 @ApiParam(value = "国标编号")
53 @RequestParam(value = "cameraCode", required = false) String cameraCode) throws ThingsboardException { 56 @RequestParam(value = "cameraCode", required = false) String cameraCode) throws ThingsboardException {
54 HashMap<String, Object> queryMap = new HashMap<>(); 57 HashMap<String, Object> queryMap = new HashMap<>();
@@ -58,6 +61,9 @@ public class TkVideoChannelController extends BaseController { @@ -58,6 +61,9 @@ public class TkVideoChannelController extends BaseController {
58 if(StringUtils.isNotEmpty(cameraCode)){ 61 if(StringUtils.isNotEmpty(cameraCode)){
59 queryMap.put("cameraCode",cameraCode); 62 queryMap.put("cameraCode",cameraCode);
60 } 63 }
  64 + if(status!=null){
  65 + queryMap.put("status",status);
  66 + }
61 String tenantId = getCurrentUser().getCurrentTenantId(); 67 String tenantId = getCurrentUser().getCurrentTenantId();
62 if(StringUtils.isEmpty(tbDeviceId)){ 68 if(StringUtils.isEmpty(tbDeviceId)){
63 throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); 69 throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage());
@@ -288,6 +288,7 @@ public interface FastIotConstants { @@ -288,6 +288,7 @@ public interface FastIotConstants {
288 class MagicNumber { 288 class MagicNumber {
289 public static final int ZERO = 0; 289 public static final int ZERO = 0;
290 public static final int ONE = 1; 290 public static final int ONE = 1;
  291 + public static final int TWO = 2;
291 public static final int TEN = 10; 292 public static final int TEN = 10;
292 } 293 }
293 294
@@ -135,6 +135,7 @@ public enum ErrorMessage { @@ -135,6 +135,7 @@ public enum ErrorMessage {
135 OUTER_NET_ERROR(400110,"外网ip+端口不能重复,请重新输入"), 135 OUTER_NET_ERROR(400110,"外网ip+端口不能重复,请重新输入"),
136 136
137 DEVICE_NOT_ONLINE(400111,"设备不在线,无法执行相关操作!"), 137 DEVICE_NOT_ONLINE(400111,"设备不在线,无法执行相关操作!"),
  138 + GBT_VIDEO_REPETITION(400112,"该设备通道号视频已存在!"),
138 HAVE_NO_PERMISSION(500002,"没有修改权限"), 139 HAVE_NO_PERMISSION(500002,"没有修改权限"),
139 NOT_ALLOED_ISOLATED_IN_MONOLITH(500003,"【monolith】模式下,不能选择【isolated】类型的租户配置"); 140 NOT_ALLOED_ISOLATED_IN_MONOLITH(500003,"【monolith】模式下,不能选择【isolated】类型的租户配置");
140 141
@@ -70,6 +70,17 @@ public class TkVideoServiceImpl extends AbstractBaseService<TkVideoMapper, TkVid @@ -70,6 +70,17 @@ public class TkVideoServiceImpl extends AbstractBaseService<TkVideoMapper, TkVid
70 @Override 70 @Override
71 @Transactional(rollbackFor = Exception.class) 71 @Transactional(rollbackFor = Exception.class)
72 public TkVideoDTO saveOrUpdate(TkVideoDTO videoDTO) { 72 public TkVideoDTO saveOrUpdate(TkVideoDTO videoDTO) {
  73 + if(videoDTO.getAccessMode()==FastIotConstants.MagicNumber.TWO){
  74 + TkVideoEntity oldVideo = baseMapper.selectOne(new QueryWrapper<TkVideoEntity>().lambda()
  75 + .eq(TkVideoEntity::getSn, videoDTO.getSn())
  76 + .eq(TkVideoEntity::getTenantId,videoDTO.getTenantId())
  77 + .like(TkVideoEntity::getParams, videoDTO.getParams()));
  78 + if(null!=oldVideo
  79 + &&((StringUtils.isNotBlank(videoDTO.getId())&&!oldVideo.getId().equals(videoDTO.getId()))
  80 + ||(StringUtils.isEmpty(videoDTO.getId())))){
  81 + throw new TkDataValidationException(ErrorMessage.GBT_VIDEO_REPETITION.getMessage());
  82 + }
  83 + }
73 if (StringUtils.isNotEmpty(videoDTO.getId())) { 84 if (StringUtils.isNotEmpty(videoDTO.getId())) {
74 TkVideoEntity oldVideo = baseMapper.selectOne(new QueryWrapper<TkVideoEntity>().lambda() 85 TkVideoEntity oldVideo = baseMapper.selectOne(new QueryWrapper<TkVideoEntity>().lambda()
75 .eq(TkVideoEntity::getTenantId, videoDTO.getTenantId()) 86 .eq(TkVideoEntity::getTenantId, videoDTO.getTenantId())
@@ -242,6 +253,7 @@ public class TkVideoServiceImpl extends AbstractBaseService<TkVideoMapper, TkVid @@ -242,6 +253,7 @@ public class TkVideoServiceImpl extends AbstractBaseService<TkVideoMapper, TkVid
242 videoDto.setTenantId(dto.getTenantId()); 253 videoDto.setTenantId(dto.getTenantId());
243 TkVideoEntity oldVideo = baseMapper.selectOne(new QueryWrapper<TkVideoEntity>().lambda() 254 TkVideoEntity oldVideo = baseMapper.selectOne(new QueryWrapper<TkVideoEntity>().lambda()
244 .eq(TkVideoEntity::getSn, channelNo) 255 .eq(TkVideoEntity::getSn, channelNo)
  256 + .eq(TkVideoEntity::getTenantId,dto.getTenantId())
245 .like(TkVideoEntity::getParams, deviceId)); 257 .like(TkVideoEntity::getParams, deviceId));
246 if(oldVideo!=null){ 258 if(oldVideo!=null){
247 videoDto.setId(oldVideo.getId()); 259 videoDto.setId(oldVideo.getId());
@@ -13,6 +13,7 @@ import org.thingsboard.server.common.data.StringUtils; @@ -13,6 +13,7 @@ import org.thingsboard.server.common.data.StringUtils;
13 import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; 13 import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException;
14 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; 14 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
15 import org.thingsboard.server.common.data.yunteng.dto.sip.VideoChanelDTO; 15 import org.thingsboard.server.common.data.yunteng.dto.sip.VideoChanelDTO;
  16 +import org.thingsboard.server.common.data.yunteng.enums.StatusEnum;
16 import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; 17 import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils;
17 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; 18 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
18 import org.thingsboard.server.dao.yunteng.entities.TkVideoChannelEntity; 19 import org.thingsboard.server.dao.yunteng.entities.TkVideoChannelEntity;
@@ -30,12 +31,14 @@ public class TkVideoChannelServiceImpl @@ -30,12 +31,14 @@ public class TkVideoChannelServiceImpl
30 String name = (String) queryMap.get("name"); 31 String name = (String) queryMap.get("name");
31 String cameraCode = (String) queryMap.get("cameraCode"); 32 String cameraCode = (String) queryMap.get("cameraCode");
32 String tbDeviceId = (String) queryMap.get("tbDeviceId"); 33 String tbDeviceId = (String) queryMap.get("tbDeviceId");
  34 + StatusEnum status= (StatusEnum) queryMap.get("status");
33 IPage<TkVideoChannelEntity> iPage = 35 IPage<TkVideoChannelEntity> iPage =
34 baseMapper.selectPage( 36 baseMapper.selectPage(
35 getPage(queryMap, "create_time", false), 37 getPage(queryMap, "create_time", false),
36 new LambdaQueryWrapper<TkVideoChannelEntity>() 38 new LambdaQueryWrapper<TkVideoChannelEntity>()
37 .eq(TkVideoChannelEntity::getTenantId, tenantId) 39 .eq(TkVideoChannelEntity::getTenantId, tenantId)
38 .eq(TkVideoChannelEntity::getDeviceId, tbDeviceId) 40 .eq(TkVideoChannelEntity::getDeviceId, tbDeviceId)
  41 + .eq(status!=null,TkVideoChannelEntity::getStatus, status)
39 .like(StringUtils.isNotEmpty(name), TkVideoChannelEntity::getName, name) 42 .like(StringUtils.isNotEmpty(name), TkVideoChannelEntity::getName, name)
40 .like( 43 .like(
41 StringUtils.isNotEmpty(cameraCode), 44 StringUtils.isNotEmpty(cameraCode),