ソースを参照

设备系统信息完成

李进 2 年 前
コミット
5cdbdab701

+ 20 - 11
device-api-service/src/main/java/com/xy/entity/MqttAcl.java

@@ -5,36 +5,45 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+
 /**
- * mqtt授权表
+ * <p>
+ * 
+ * </p>
+ *
+ * @author lijin
+ * @since 2023-01-10
  */
 @Data
-@ApiModel("mqtt授权")
+@EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-public class MqttAcl {
+@ApiModel(value="MqttAcl对象", description="")
+public class MqttAcl implements Serializable {
+
+    private static final long serialVersionUID = 1L;
 
-    @TableId(type = IdType.AUTO)
-    @ApiModelProperty("唯一标识")
+    @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
-    @ApiModelProperty("ip地址")
+    @ApiModelProperty(value = "连接地址")
     private String ipaddress;
 
-    @ApiModelProperty("账号")
+    @ApiModelProperty(value = "连接名")
     private String username;
 
-    @ApiModelProperty("客户端id")
+    @ApiModelProperty(value = "客户端ID(设备ID)")
     private String clientid;
 
-    @ApiModelProperty("动作")
     private String action;
 
-    @ApiModelProperty("权限")
     private String permission;
 
-    @ApiModelProperty("topic")
+    @ApiModelProperty(value = "队列(设备ID)")
     private String topic;
 
+
 }

+ 9 - 0
device-api-service/src/main/java/com/xy/mapper/MqttAclMapper.java

@@ -3,5 +3,14 @@ package com.xy.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xy.entity.MqttAcl;
 
+/**
+ * <p>
+ * Mapper 接口
+ * </p>
+ *
+ * @author lijin
+ * @since 2023-01-10
+ */
 public interface MqttAclMapper extends BaseMapper<MqttAcl> {
+
 }

+ 4 - 10
device-api-service/src/main/java/com/xy/service/DeviceRegisterServiceImpl.java

@@ -4,12 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xy.config.XyMqttConfig;
 import com.xy.dto.DeviceQualityDto;
 import com.xy.dto.DeviceRegisterDto;
+import com.xy.dto.MqttAclDto;
 import com.xy.entity.*;
 import com.xy.mapper.*;
-import com.xy.service.DeviceRegisterService;
 import com.xy.utils.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -48,10 +47,10 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
 
     private MqttAclMapper mqttAclMapper;
 
-    private XyMqttConfig xyMqttConfig;
-
     private DeviceQualityServiceImpl deviceQualityService;
 
+    private MqttAclServiceImpl mqttAclService;
+
     @PostMapping("save")
     @ApiOperation("添加")
     @Transactional(rollbackFor = Exception.class)
@@ -99,12 +98,7 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
         deviceQualityService.save(new DeviceQualityDto.Save().setDeviceId(deviceRegister.getDeviceId()));
         //新增mqtt信息
         String deviceId = deviceRegister.getDeviceId().toString();
-        mqttAclMapper.insert(new MqttAcl()
-                .setIpaddress(xyMqttConfig.getUrl())
-                .setUsername(deviceId)
-                .setClientid(deviceId)
-                .setTopic(deviceId + "-CMD")
-        );
+        mqttAclService.save(new MqttAclDto.Save().setClientid(deviceId).setUsername(deviceId));
         return R.ok();
     }
 

+ 3 - 2
device-api-service/src/main/java/com/xy/service/DeviceStatusServiceImpl.java

@@ -13,6 +13,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
 
@@ -32,7 +33,7 @@ public class DeviceStatusServiceImpl extends ServiceImpl<DeviceStatusMapper, Dev
 
     @PostMapping("up")
     @ApiOperation("上报信息")
-    public R up(DeviceStatusDto.Up up) {
+    public R up(@RequestBody DeviceStatusDto.Up up) {
         DeviceStatus deviceStatusInfo = getById(up.getDeviceId());
         if (deviceStatusInfo == null) {
             return R.ok();
@@ -44,7 +45,7 @@ public class DeviceStatusServiceImpl extends ServiceImpl<DeviceStatusMapper, Dev
 
     @PostMapping("obj")
     @ApiOperation("对象查询")
-    public R<DeviceStatusDto.Vo> obj(DeviceStatusDto.Vo vo) {
+    public R<DeviceStatusDto.Vo> obj(@RequestBody DeviceStatusDto.Vo vo) {
         LambdaQueryWrapper<DeviceStatus> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(vo, DeviceStatus.class).build();
         List<DeviceStatus> list = list(lambdaQueryWrapper);
         if (!Emptys.check(list)) {

+ 15 - 3
device-api-service/src/main/java/com/xy/service/DeviceSysinfoServiceImpl.java

@@ -13,6 +13,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
 
@@ -31,8 +32,8 @@ import static com.xy.utils.Beans.copy;
 public class DeviceSysinfoServiceImpl extends ServiceImpl<DeviceSysinfoMapper, DeviceSysinfo> implements DeviceSysinfoService {
 
     @PostMapping("get")
-    @ApiOperation("查询对象")
-    public R<DeviceSysinfoDto.Vo> get(DeviceSysinfoDto.Vo vo) {
+    @ApiOperation("对象查询")
+    public R<DeviceSysinfoDto.Vo> get(@RequestBody DeviceSysinfoDto.Vo vo) {
         LambdaQueryWrapper<DeviceSysinfo> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(vo, DeviceSysinfo.class).build();
         List<DeviceSysinfo> list = list(lambdaQueryWrapper);
         if (!Emptys.check(list)) {
@@ -41,9 +42,20 @@ public class DeviceSysinfoServiceImpl extends ServiceImpl<DeviceSysinfoMapper, D
         return R.ok(copy(DeviceSysinfoDto.Vo.class, list.get(0)));
     }
 
+    @PostMapping("get")
+    @ApiOperation("集合查询")
+    public R<List<DeviceSysinfoDto.Vo>> list(@RequestBody DeviceSysinfoDto.SelectList selectList) {
+        LambdaQueryWrapper<DeviceSysinfo> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(selectList, DeviceSysinfo.class)
+                .in(DeviceSysinfo::getDeviceId, selectList.getDeviceIds())
+                .in(DeviceSysinfo::getDeviceSn, selectList.getDeviceSns())
+                .build();
+        List<DeviceSysinfo> list = list(lambdaQueryWrapper);
+        return R.ok(copy(DeviceSysinfoDto.Vo.class, list));
+    }
+
     @PostMapping("up")
     @ApiOperation("上报信息")
-    public R up(DeviceSysinfoDto.Up up) {
+    public R up(@RequestBody DeviceSysinfoDto.Up up) {
         DeviceSysinfo deviceSysinfo = getById(up.getDeviceId());
         if (deviceSysinfo == null) {
             return R.ok();

+ 49 - 10
device-api-service/src/main/java/com/xy/service/MqttAclServiceImpl.java

@@ -1,28 +1,67 @@
 package com.xy.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xy.config.XyMqttConfig;
 import com.xy.dto.MqttAclDto;
 import com.xy.entity.MqttAcl;
 import com.xy.mapper.MqttAclMapper;
-import com.xy.service.MqttAclService;
-import com.xy.utils.Beans;
 import com.xy.utils.MybatisPlusQuery;
+import com.xy.utils.PageBean;
 import com.xy.utils.R;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import static com.xy.utils.Beans.copy;
+import static com.xy.utils.PlusBeans.toIPage;
+import static com.xy.utils.PlusBeans.toPageBean;
+
 
 /**
- * mqtt授权 接口实现
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author lijin
+ * @since 2023-01-10
  */
 @Service
-@Api(tags = "mqtt授权")
+@AllArgsConstructor
+@Api(tags = "")
 public class MqttAclServiceImpl extends ServiceImpl<MqttAclMapper, MqttAcl> implements MqttAclService {
 
-    @Override
-    @ApiOperation("获取mqtt信息")
-    public R<MqttAclDto.Vo> get(MqttAclDto.Vo vo) {
-        MqttAcl mqttAclInfo = getOne(new MybatisPlusQuery().eqWrapper(vo, MqttAcl.class).build());
-        return R.ok(Beans.copy(MqttAclDto.Vo.class, mqttAclInfo));
+    private XyMqttConfig xyMqttConfig;
+
+    @PostMapping("page")
+    @ApiOperation("分页查询")
+    private R<PageBean<MqttAclDto.Vo>> page(@RequestBody MqttAclDto.Page page) {
+        PageBean pageBean = page.getPage();
+        LambdaQueryWrapper<MqttAcl> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, MqttAcl.class).build();
+        IPage<MqttAcl> iPage = page(toIPage(pageBean), lambdaQueryWrapper);
+        return R.ok(toPageBean(MqttAclDto.Vo.class, iPage));
+    }
+
+    @PostMapping("save")
+    @ApiOperation("添加")
+    public R save(@RequestBody @Validated MqttAclDto.Save save) {
+        MqttAcl saveInfo = copy(MqttAcl.class, save)
+                .setIpaddress(xyMqttConfig.getUrl())
+                .setTopic(save.getClientid() + "-CMD");
+        save(saveInfo);
+        return R.ok();
+    }
+
+    @PostMapping("update")
+    @ApiOperation("修改")
+    public R update(@RequestBody @Validated MqttAclDto.Update update) {
+        MqttAcl updateInfo = copy(MqttAcl.class, update);
+        updateById(updateInfo);
+        return R.ok();
     }
-}
+}

+ 12 - 0
device-api/src/main/java/com/xy/dto/DeviceSysinfoDto.java

@@ -8,6 +8,7 @@ import lombok.experimental.Accessors;
 
 import javax.validation.constraints.NotNull;
 import java.time.LocalDateTime;
+import java.util.List;
 
 @Data
 @ApiModel("设备-系统信息")
@@ -23,6 +24,17 @@ public class DeviceSysinfoDto {
         private Long deviceId;
     }
 
+    @Data
+    @Accessors(chain = true)
+    public static class SelectList extends Vo {
+
+        @ApiModelProperty("设备ID集合")
+        private List<Long> deviceIds;
+
+        @ApiModelProperty("设备SN号集合")
+        private List<String> deviceSns;
+    }
+
     @Data
     @Accessors(chain = true)
     public static class Vo {

+ 51 - 9
device-api/src/main/java/com/xy/dto/MqttAclDto.java

@@ -1,36 +1,78 @@
 package com.xy.dto;
 
+import com.xy.utils.PageBean;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
-@Data
-@Accessors(chain = true)
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author lijin
+ * @since 2023-01-10
+ */
 public class MqttAclDto {
 
+    @Data
+    @Accessors(chain = true)
+    public static class Page extends Vo {
+
+        @ApiModelProperty(value = "分页对象", required = true)
+        private PageBean page;
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Save extends Vo {
+
+        @NotBlank(message = "username不能为空")
+        @ApiModelProperty(value = "连接名")
+        private String username;
+
+        @NotBlank(message = "clientid不能为空")
+        @ApiModelProperty(value = "客户端ID(设备ID)")
+        private String clientid;
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Update extends Vo {
+
+        @NotNull(message = "id不能为空")
+        @ApiModelProperty(value = "唯一标识")
+        private Integer id;
+    }
+
     @Data
     @Accessors(chain = true)
     public static class Vo {
-        @ApiModelProperty("唯一标识")
+
+        @ApiModelProperty(value = "唯一标识")
         private Integer id;
 
-        @ApiModelProperty("ip地址")
+        @ApiModelProperty(value = "连接地址")
         private String ipaddress;
 
-        @ApiModelProperty("账号")
+        @ApiModelProperty(value = "连接名")
         private String username;
 
-        @ApiModelProperty("客户端id")
+        @ApiModelProperty(value = "客户端ID(设备ID)")
         private String clientid;
 
-        @ApiModelProperty("动作")
         private String action;
 
-        @ApiModelProperty("权限")
         private String permission;
 
-        @ApiModelProperty("topic")
+        @ApiModelProperty(value = "队列(设备ID)")
         private String topic;
+
+
     }
 
 }

+ 7 - 8
device-api/src/main/java/com/xy/service/MqttAclService.java

@@ -1,17 +1,16 @@
 package com.xy.service;
 
 import com.xy.annotate.RestMappingController;
-import com.xy.dto.MqttAclDto;
-import com.xy.utils.R;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
 
 /**
- * mqtt授权 接口路由
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author lijin
+ * @since 2023-01-10
  */
-@RestMappingController("mqtt-acl")
+@RestMappingController("/mqtt-acl")
 public interface MqttAclService {
 
-    @PostMapping("get")
-    R<MqttAclDto.Vo> get(@RequestBody MqttAclDto.Vo vo);
 }