diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/MqttUser.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/MqttUser.java new file mode 100644 index 0000000..90c2fdf --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/MqttUser.java @@ -0,0 +1,38 @@ +package com.njcn.csdevice.pojo.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + *

+ * + *

+ * + * @author xuyang + * @since 2023-06-29 + */ +@Data +@TableName("mqtt_user") +public class MqttUser { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.INPUT) + private Integer id; + + private String username; + + private String password; + + private String salt; + + private Integer isSuperuser; + + private LocalDateTime created; + + +} diff --git a/cs-device/cs-device-boot/pom.xml b/cs-device/cs-device-boot/pom.xml index e8d5f85..a047019 100644 --- a/cs-device/cs-device-boot/pom.xml +++ b/cs-device/cs-device-boot/pom.xml @@ -79,6 +79,16 @@ 1.0.0 compile + + com.baomidou + dynamic-datasource-spring-boot-starter + 3.5.1 + + + cn.hutool + hutool-all + 5.8.5 + diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DevModelController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DevModelController.java index 6eb2fc7..a80f767 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DevModelController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DevModelController.java @@ -44,6 +44,7 @@ public class DevModelController extends BaseController { @PostMapping("/addDevModel") @ApiOperation("新增设备模板") @ApiImplicitParam(name = "csDevModelAddParm", value = "新增设备模板参数", required = true) + @Deprecated public HttpResult addDevModel(@RequestBody @Validated CsDevModelAddParm csDevModelAddParm){ String methodDescribe = getMethodDescribe("addDevModel"); CsDevModelPO flag = csDevModelService.addDevModel (csDevModelAddParm); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java index 0e87b30..0017ab1 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java @@ -14,6 +14,7 @@ import com.njcn.csdevice.pojo.param.ProjectEquipmentQueryParm; import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; import com.njcn.csdevice.pojo.vo.*; import com.njcn.csdevice.service.CsEquipmentDeliveryService; +import com.njcn.csdevice.service.IMqttUserService; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -43,6 +44,8 @@ public class EquipmentDeliveryController extends BaseController { private final CsEquipmentDeliveryService csEquipmentDeliveryService; + private final IMqttUserService mqttUserService; + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/addEquipmentDelivery") @ApiOperation("新增出厂设备") @@ -50,6 +53,10 @@ public class EquipmentDeliveryController extends BaseController { public HttpResult addEquipmentDelivery(@RequestBody @Validated CsEquipmentDeliveryAddParm csEquipmentDeliveryAddParm){ String methodDescribe = getMethodDescribe("addEquipmentDelivery"); Boolean flag = csEquipmentDeliveryService.save (csEquipmentDeliveryAddParm); + if (flag){ + //初始化装置mqtt连接信息(使用sha256加密) + mqttUserService.insertMqttUser(csEquipmentDeliveryAddParm.getNdid()); + } return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/MqttUserController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/MqttUserController.java new file mode 100644 index 0000000..711d1ae --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/MqttUserController.java @@ -0,0 +1,41 @@ +package com.njcn.csdevice.controller.equipment; + + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.csdevice.pojo.param.CsDevModelAddParm; +import com.njcn.csdevice.pojo.po.CsDevModelPO; +import com.njcn.csdevice.service.IMqttUserService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; +import com.njcn.web.controller.BaseController; + +/** + *

+ * 前端控制器 + *

+ * + * @author xuyang + * @since 2023-06-29 + */ +@RestController +@RequestMapping("/mqttUser") +@AllArgsConstructor +@Slf4j +@Api(tags = "MqttUser录入") +public class MqttUserController extends BaseController { + +} + diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/MqttUserMapper.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/MqttUserMapper.java new file mode 100644 index 0000000..5d240d6 --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/MqttUserMapper.java @@ -0,0 +1,16 @@ +package com.njcn.csdevice.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.csdevice.pojo.po.MqttUser; + +/** + *

+ * Mapper 接口 + *

+ * + * @author xuyang + * @since 2023-06-29 + */ +public interface MqttUserMapper extends BaseMapper { + +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/MqttUserMapper.xml b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/MqttUserMapper.xml new file mode 100644 index 0000000..83e298b --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/MqttUserMapper.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/IMqttUserService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/IMqttUserService.java new file mode 100644 index 0000000..0387b90 --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/IMqttUserService.java @@ -0,0 +1,22 @@ +package com.njcn.csdevice.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.csdevice.pojo.po.MqttUser; + +/** + *

+ * 服务类 + *

+ * + * @author xuyang + * @since 2023-06-29 + */ +public interface IMqttUserService extends IService { + + /** + * 根据密码生成mqtt连接信息 + * @param password + */ + void insertMqttUser(String password); + +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java index d64a984..ae57d17 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java @@ -61,6 +61,8 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl + * 服务实现类 + *

+ * + * @author xuyang + * @since 2023-06-29 + */ +@Service +@DS("mqtt") +public class MqttUserServiceImpl extends ServiceImpl implements IMqttUserService { + + @Override + public void insertMqttUser(String password) { + Random r = new Random(); + MqttUser mqttUser = new MqttUser(); + mqttUser.setId(1000000000 + (int)(r.nextDouble() * 999999999)); + mqttUser.setUsername(password); + mqttUser.setSalt("mqtt"); + mqttUser.setIsSuperuser(1); + mqttUser.setPassword(DigestUtil.sha256Hex(password + "mqtt")); + this.save(mqttUser); + } +} diff --git a/cs-harmonic/cs-harmonic-boot/pom.xml b/cs-harmonic/cs-harmonic-boot/pom.xml index f4e9525..ecea26b 100644 --- a/cs-harmonic/cs-harmonic-boot/pom.xml +++ b/cs-harmonic/cs-harmonic-boot/pom.xml @@ -92,6 +92,11 @@ 1.0.0 compile + + com.baomidou + dynamic-datasource-spring-boot-starter + 3.5.1 +