Selaa lähdekoodia

添加sn号更改接口

李进 2 vuotta sitten
vanhempi
commit
204d3ec72d

+ 39 - 24
device-api-service/src/main/java/com/xy/service/DeviceRegisterServiceImpl.java

@@ -97,34 +97,48 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
                 .setBindState(true)
                 .setBindTime(deviceRegister.getCreateTime())
         );
-        //新增设备-注册登记
-        save(deviceRegister);
-        //新增设备信息
-        deviceInfoMapper.insert(new DeviceInfo()
+        DeviceInfo deviceInfo = new DeviceInfo()
                 .setDeviceId(deviceRegister.getDeviceId())
                 .setDeviceType(deviceRegister.getDeviceType())
                 .setMercDeviceCode(deviceRegister.getAssetNo())
-                .setCreateTime(deviceRegister.getCreateTime())
-        );
-        //新增设备-系统信息
-        deviceSysinfoMapper.insert(new DeviceSysinfo()
+                .setCreateTime(deviceRegister.getCreateTime());
+        DeviceSysinfo deviceSysinfo = new DeviceSysinfo()
                 .setDeviceId(deviceRegister.getDeviceId())
                 .setDeviceSn(deviceRegister.getDeviceSn())
-                .setCreateTime(deviceRegister.getCreateTime())
-        );
-        //新增设备-状态
-        deviceStatusMapper.insert(new DeviceStatus().setDeviceId(deviceRegister.getDeviceId()));
-        //新增mqtt认证信息
-        String deviceId = deviceRegister.getDeviceId().toString();
-        MqttUserDto.Save mqttUserInfo = new MqttUserDto.Save();
-        mqttUserInfo.setUsername(deviceId);
-        mqttUserInfo.setPasswordHash(deviceId);
-        mqttUserInfo.setCreated(LocalDateTime.now());
-        mqttUserInfo.setTopic(CommConsts.DEVICE_MQTT_TOPIC_SUFFIX);
-        mqttUserInfo.setSn(deviceRegister.getDeviceSn());
-        mqttUserInfo.setDeviceId(deviceRegister.getDeviceId());
-        mqttUserInfo.setIpAddress(mqttConfig.getUrl());
-        mqttUserService.save(mqttUserInfo);
+                .setCreateTime(deviceRegister.getCreateTime());
+        DeviceStatus deviceStatus = new DeviceStatus().setDeviceId(deviceRegister.getDeviceId());
+        DeviceRegister deviceRegisterById = getById(deviceRegister.getDeviceId());
+        //新增
+        if (deviceRegisterById == null) {
+            //设备-注册登记
+            save(deviceRegister);
+            //设备信息
+            deviceInfoMapper.insert(deviceInfo);
+            //设备-系统信息
+            deviceSysinfoMapper.insert(deviceSysinfo);
+            //设备-状态
+            deviceStatusMapper.insert(deviceStatus);
+            //mqtt认证信息
+            String deviceId = deviceRegister.getDeviceId().toString();
+            MqttUserDto.Save mqttUserInfo = new MqttUserDto.Save();
+            mqttUserInfo.setUsername(deviceId);
+            mqttUserInfo.setPasswordHash(deviceId);
+            mqttUserInfo.setCreated(LocalDateTime.now());
+            mqttUserInfo.setTopic(CommConsts.DEVICE_MQTT_TOPIC_SUFFIX);
+            mqttUserInfo.setSn(deviceRegister.getDeviceSn());
+            mqttUserInfo.setDeviceId(deviceRegister.getDeviceId());
+            mqttUserInfo.setIpAddress(mqttConfig.getUrl());
+            mqttUserService.save(mqttUserInfo);
+        } else {
+            updateById(deviceRegister);
+            deviceInfoMapper.updateById(deviceInfo);
+            deviceSysinfoMapper.updateById(deviceSysinfo);
+            deviceStatusMapper.updateById(deviceStatus);
+            mqttUserService.update(new LambdaUpdateWrapper<MqttUser>()
+                    .set(MqttUser::getSn, deviceRegister.getDeviceSn())
+                    .eq(MqttUser::getDeviceId, deviceRegister.getDeviceId())
+            );
+        }
         return R.ok();
     }
 
@@ -137,7 +151,8 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
                 .le(DeviceRegister::getCreateTime, page.getEndCreateTime())
                 .likeRight(DeviceRegister::getDeviceSn)
                 .build()
-                .and(page.getIsBind() != null && !page.getIsBind(), deviceRegisterLambdaQueryWrapper -> deviceRegisterLambdaQueryWrapper
+                .isNotNull(page.getIsBind(), DeviceRegister::getDeviceSn)
+                .and(!page.getIsBind(), deviceRegisterLambdaQueryWrapper -> deviceRegisterLambdaQueryWrapper
                         .isNull(DeviceRegister::getDeviceSn)
                         .or()
                         .eq(DeviceRegister::getDeviceSn, "")

+ 1 - 0
device-api/src/main/java/com/xy/dto/DeviceRegisterDto.java

@@ -64,6 +64,7 @@ public class DeviceRegisterDto {
         @ApiModelProperty(value = "创建时间-始")
         private LocalDate endCreateTime;
 
+        @NotNull(message = "isBind不能为空")
         @ApiModelProperty("是否已绑定")
         private Boolean isBind;