瀏覽代碼

修改sn号重复注册问题

李进 2 年之前
父節點
當前提交
ae2980fcb8

+ 9 - 15
device-api-service/src/main/java/com/xy/entity/MqttAcl.java → device-api-service/src/main/java/com/xy/entity/MqttUser.java

@@ -2,48 +2,42 @@ package com.xy.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
-import java.io.Serializable;
-
 /**
  * <p>
  * 
  * </p>
  *
  * @author lijin
- * @since 2023-01-10
+ * @since 2023-02-17
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@ApiModel(value="MqttAcl对象", description="")
-public class MqttAcl implements Serializable {
+@ApiModel(value="MqttUser对象", description="")
+public class MqttUser implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
-    @ApiModelProperty(value = "连接地址")
-    private String ipaddress;
-
-    @ApiModelProperty(value = "连接名")
     private String username;
 
-    @ApiModelProperty(value = "客户端ID(设备ID)")
-    private String clientid;
+    private String passwordHash;
 
-    private String action;
+    private String salt;
 
-    private String permission;
+    private Boolean isSuperuser;
 
-    @ApiModelProperty(value = "队列(设备ID)")
-    private String topic;
+    private LocalDateTime created;
 
 
 }

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

@@ -1,16 +0,0 @@
-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> {
-
-}

+ 16 - 0
device-api-service/src/main/java/com/xy/mapper/MqttUserMapper.java

@@ -0,0 +1,16 @@
+package com.xy.mapper;
+
+import com.xy.entity.MqttUser;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author lijin
+ * @since 2023-02-17
+ */
+public interface MqttUserMapper extends BaseMapper<MqttUser> {
+
+}

+ 15 - 0
device-api-service/src/main/java/com/xy/mapper/mapper/MqttUserMapper.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xy.mapper.MqttUserMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.xy.entity.MqttUser">
+        <id column="id" property="id" />
+        <result column="username" property="username" />
+        <result column="password_hash" property="passwordHash" />
+        <result column="salt" property="salt" />
+        <result column="is_superuser" property="isSuperuser" />
+        <result column="created" property="created" />
+    </resultMap>
+
+</mapper>

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

@@ -10,7 +10,7 @@ import com.xy.collections.list.JList;
 import com.xy.collections.map.JMap;
 import com.xy.dto.DeviceQualityDto;
 import com.xy.dto.DeviceRegisterDto;
-import com.xy.dto.MqttAclDto;
+import com.xy.dto.MqttUserDto;
 import com.xy.entity.*;
 import com.xy.mapper.*;
 import com.xy.utils.*;
@@ -51,7 +51,7 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
 
     private DeviceQualityServiceImpl deviceQualityService;
 
-    private MqttAclServiceImpl mqttAclService;
+    private MqttUserServiceImpl mqttUserService;
 
     @PostMapping("save")
     @ApiOperation("添加")
@@ -105,9 +105,13 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
         );
         //新增设备-状态
         deviceStatusMapper.insert(new DeviceStatus().setDeviceId(deviceRegister.getDeviceId()));
-        //新增mqtt信息
+        //新增mqtt认证信息
         String deviceId = deviceRegister.getDeviceId().toString();
-        mqttAclService.save(new MqttAclDto.Save().setClientid(deviceId).setUsername(deviceId));
+        MqttUserDto.Save mqttUserInfo = new MqttUserDto.Save();
+        mqttUserInfo.setUsername(deviceId);
+        mqttUserInfo.setPasswordHash(deviceId);
+        mqttUserInfo.setCreated(LocalDateTime.now());
+        mqttUserService.save(mqttUserInfo);
         return R.ok();
     }
 

+ 0 - 78
device-api-service/src/main/java/com/xy/service/MqttAclServiceImpl.java

@@ -1,78 +0,0 @@
-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.utils.MybatisPlusQuery;
-import com.xy.utils.PageBean;
-import com.xy.utils.R;
-import com.xy.utils.consts.CommConsts;
-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 java.time.LocalDateTime;
-
-import static com.xy.utils.Beans.copy;
-import static com.xy.utils.PlusBeans.toIPage;
-import static com.xy.utils.PlusBeans.toPageBean;
-
-
-/**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author lijin
- * @since 2023-01-10
- */
-@Service
-@AllArgsConstructor
-@Api(tags = "mqtt授权")
-public class MqttAclServiceImpl extends ServiceImpl<MqttAclMapper, MqttAcl> implements MqttAclService {
-
-    private XyMqttConfig xyMqttConfig;
-
-    @PostMapping("page")
-    @ApiOperation("分页查询")
-    public 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("get")
-    @ApiOperation("查询对象")
-    public R<MqttAclDto.Vo> get(@RequestBody MqttAclDto.Vo vo) {
-        MqttAcl mqttAclInfo = getOne(new MybatisPlusQuery().eqWrapper(vo, MqttAcl.class).build());
-        MqttAclDto.Vo v = copy(MqttAclDto.Vo.class, mqttAclInfo).setServerDateTime(LocalDateTime.now());
-        return R.ok(v);
-    }
-
-    @PostMapping("save")
-    @ApiOperation("添加")
-    public R save(@RequestBody @Validated MqttAclDto.Save save) {
-        MqttAcl saveInfo = copy(MqttAcl.class, save)
-                .setIpaddress(xyMqttConfig.getUrl())
-                .setTopic(save.getClientid() + CommConsts.DEVICE_MQTT_TOPIC_SUFFIX);
-        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();
-    }
-}

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

@@ -0,0 +1,85 @@
+package com.xy.service;
+
+import com.xy.entity.MqttUser;
+import com.xy.mapper.MqttUserMapper;
+import com.xy.service.MqttUserService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+
+import java.util.List;
+import com.xy.utils.R;
+import com.xy.utils.PageBean;
+import com.xy.dto.MqttUserDto;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.PostMapping;
+import io.swagger.annotations.ApiOperation;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.xy.utils.MybatisPlusQuery;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.validation.annotation.Validated;
+import com.xy.utils.Emptys;
+
+import static com.xy.utils.Beans.copy;
+import static com.xy.utils.PlusBeans.toIPage;
+import static com.xy.utils.PlusBeans.toPageBean;
+
+
+/**
+* <p>
+*  服务实现类
+* </p>
+*
+* @author lijin
+* @since 2023-02-17
+*/
+@Service
+@AllArgsConstructor
+@Api(tags = "")
+public class MqttUserServiceImpl extends ServiceImpl<MqttUserMapper, MqttUser> implements MqttUserService {
+
+    @PostMapping("obj")
+    @ApiOperation("对象查询")
+    public R<MqttUserDto.Vo> obj(@RequestBody MqttUserDto.Vo vo) {
+        MqttUserDto.SelectList selectList = copy(MqttUserDto.SelectList.class, vo);
+        List<MqttUserDto.Vo> list = list(selectList).getData();
+        if(Emptys.check(list)) {
+            return R.ok(list.get(0));
+        }
+        return R.ok();
+    }
+
+    @PostMapping("list")
+    @ApiOperation("集合查询")
+    public R<List<MqttUserDto.Vo>> list(@RequestBody MqttUserDto.SelectList selectList) {
+        LambdaQueryWrapper<MqttUser> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(selectList, MqttUser.class).build();
+        List<MqttUser> list = list(lambdaQueryWrapper);
+        return R.ok(copy(MqttUserDto.Vo.class, list));
+    }
+
+    @PostMapping("page")
+    @ApiOperation("分页查询")
+    public R<PageBean<MqttUserDto.Vo>> page(@RequestBody MqttUserDto.Page page) {
+        PageBean pageBean = page.getPage();
+        LambdaQueryWrapper<MqttUser> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, MqttUser.class).build();
+        IPage<MqttUser> iPage = page(toIPage(pageBean), lambdaQueryWrapper);
+        return R.ok(toPageBean(MqttUserDto.Vo.class, iPage));
+    }
+
+    @PostMapping("save")
+    @ApiOperation("添加")
+    public R save(@RequestBody @Validated MqttUserDto.Save save) {
+        MqttUser saveInfo = copy(MqttUser.class, save);
+        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();
+    }
+}

+ 15 - 2
device-api-service/src/main/java/com/xy/ztest/Test.java

@@ -1,12 +1,25 @@
 package com.xy.ztest;
 
-import com.xy.utils.MybatisGenerator;
+import com.xy.utils.MybatisGenerator2;
 
 public class Test {
 
     public static void main(String[] args) {
-        MybatisGenerator.Generator.builder()
+        MybatisGenerator2.Generator.builder()
                 .author("lijin")
+                .commPath("F:/idea-project/xy/xy-device")
+                .dtoModule("device-api")
+                .dtoPackage("com.xy")
+                .serviceModule("device-api")
+                .servicePackage("com.xy")
+                .implModule("device-api-service")
+                .implPackage("com.xy")
+                .mapperModule("device-api-service")
+                .mapperPackage("com.xy")
+                .feignModule("device-api-cloud")
+                .feignPackage("com.xy")
+                .entityModule("device-api-service")
+                .entityPackage("com.xy")
                 .build().create();
     }
 

+ 0 - 83
device-api/src/main/java/com/xy/dto/MqttAclDto.java

@@ -1,83 +0,0 @@
-package com.xy.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.xy.utils.PageBean;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.time.LocalDateTime;
-
-/**
- * <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(value = "唯一标识")
-        private Integer id;
-
-        @ApiModelProperty(value = "连接地址")
-        private String ipaddress;
-
-        @ApiModelProperty(value = "连接名")
-        private String username;
-
-        @ApiModelProperty(value = "客户端ID(设备ID)")
-        private String clientid;
-
-        private String action;
-
-        private String permission;
-
-        @ApiModelProperty(value = "队列(设备ID)")
-        private String topic;
-
-        @ApiModelProperty("服务器时间")
-        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-        private LocalDateTime serverDateTime;
-
-    }
-
-}

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

@@ -0,0 +1,70 @@
+package com.xy.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.xy.utils.PageBean;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author lijin
+ * @since 2023-02-17
+ */
+public class MqttUserDto {
+
+    @Data
+    @Accessors(chain = true)
+    public static class SelectList extends Vo {
+
+    }
+
+    @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 {
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Update extends Vo {
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Vo {
+
+        @ApiModelProperty("唯一标识")
+        private Integer id;
+
+        @ApiModelProperty("账号")
+        private String username;
+
+        @ApiModelProperty("密码")
+        private String passwordHash;
+
+        private String salt;
+
+        private Boolean isSuperuser;
+
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime created;
+
+    }
+
+}

+ 3 - 3
device-api/src/main/java/com/xy/service/MqttAclService.java → device-api/src/main/java/com/xy/service/MqttUserService.java

@@ -8,9 +8,9 @@ import com.xy.annotate.RestMappingController;
  * </p>
  *
  * @author lijin
- * @since 2023-01-10
+ * @since 2023-02-17
  */
-@RestMappingController("/mqtt-acl")
-public interface MqttAclService {
+@RestMappingController("/mqtt-user")
+public interface MqttUserService {
 
 }