Ver código fonte

修改sn号重复注册问题

李进 2 anos atrás
pai
commit
45beb9e081

+ 35 - 0
device-api-service/src/main/java/com/xy/service/DeviceRegisterServiceImpl.java

@@ -2,6 +2,7 @@ package com.xy.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xy.annotation.Lock;
@@ -57,6 +58,8 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
 
     private MqttConfig mqttConfig;
 
+    private DeviceSysinfoServiceImpl deviceSysinfoService;
+
     @PostMapping("save")
     @ApiOperation("添加")
     @Transactional(rollbackFor = Exception.class)
@@ -184,4 +187,36 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
         List<DeviceRegister> list = list(lambdaQueryWrapper);
         return R.ok(copy(DeviceRegisterDto.Vo.class, list));
     }
+
+    @ApiOperation("修改")
+    @PostMapping("update")
+    @Transactional(rollbackFor = Exception.class)
+    public R update(@RequestBody @Validated DeviceRegisterDto.Update update) {
+        //校验
+        String deviceSn = update.getDeviceSn();
+        Long deviceId = update.getDeviceId();
+        if (Emptys.check(deviceSn)) {
+            DeviceRegister deviceRegister = getById(deviceId);
+            if (!deviceSn.equals(deviceRegister.getDeviceSn())) {
+                long count = count(new LambdaQueryWrapper<DeviceRegister>().eq(DeviceRegister::getDeviceSn, deviceSn));
+                if (count > 0) {
+                    return R.fail("sn号已被绑定");
+                }
+            }
+        }
+        //修改注册登记
+        DeviceRegister deviceRegister = copy(DeviceRegister.class, update);
+        updateById(deviceRegister);
+        //修改其他表
+        if (Emptys.check(deviceSn)) {
+            //修改系统信息
+            deviceSysinfoService.updateById(new DeviceSysinfo().setDeviceId(deviceId).setDeviceSn(deviceSn));
+            //修改mqtt认证
+            LambdaUpdateWrapper<MqttUser> mqttUserLambdaUpdateWrapper = new LambdaUpdateWrapper<MqttUser>()
+                    .set(MqttUser::getSn, deviceSn)
+                    .eq(MqttUser::getDeviceId, deviceId);
+            mqttUserService.update(mqttUserLambdaUpdateWrapper);
+        }
+        return R.ok();
+    }
 }

+ 0 - 8
device-api-service/src/main/java/com/xy/service/MqttUserServiceImpl.java

@@ -73,12 +73,4 @@ public class MqttUserServiceImpl extends ServiceImpl<MqttUserMapper, MqttUser> i
         save(saveInfo);
         return R.ok();
     }
-
-    @PostMapping("update")
-    @ApiOperation("修改")
-    public R update(@RequestBody @Validated MqttUserDto.Update update) {
-        MqttUser updateInfo = copy(MqttUser.class, update);
-        updateById(updateInfo);
-        return R.ok();
-    }
 }

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

@@ -37,6 +37,15 @@ public class DeviceRegisterDto {
         private String assetNo;
     }
 
+    @Data
+    @Accessors(chain = true)
+    public static class Update extends Vo {
+
+        @NotNull(message = "deviceId不能为空")
+        @ApiModelProperty("设备ID")
+        private Long deviceId;
+    }
+
     @Data
     @Accessors(chain = true)
     public static class Page extends Vo {

+ 0 - 6
device-api/src/main/java/com/xy/dto/MqttUserDto.java

@@ -39,12 +39,6 @@ public class MqttUserDto {
 
     }
 
-    @Data
-    @Accessors(chain = true)
-    public static class Update extends Vo {
-
-    }
-
     @Data
     @Accessors(chain = true)
     public static class Vo {