Commit 62a868f497874f5d755ec1bff4b74a08c8bb05a5

Authored by alwayssuper
1 parent f1d887d0

feat:simulator1

yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/tdengine/IotDeviceLogDataMapper.java
... ... @@ -21,32 +21,10 @@ public interface IotDeviceLogDataMapper {
21 21  
22 22 /**
23 23 * 创建设备日志超级表
24   -<<<<<<< HEAD
25 24 * 初始化只创建一次
26 25 */
27 26 void createDeviceLogSTable();
28 27  
29   -=======
30   - *
31   - * 注意:初始化时只需创建一次
32   - */
33   - void createDeviceLogSTable();
34   -
35   - // TODO @super:是不是删除哈
36   ->>>>>>> deab8c1cc6bb7864d9c40e0c369f649f6f9bfa41
37   - /**
38   - * 创建设备日志子表
39   - *
40   - * @param deviceKey 设备标识
41   - */
42   -<<<<<<< HEAD
43   - void createDeviceLogTable( @Param("deviceKey") String deviceKey);
44   -
45   - /**
46   - * 插入设备日志数据
47   - *
48   -=======
49   - void createDeviceLogTable(@Param("deviceKey") String deviceKey);
50 28  
51 29 // TODO @super:单个参数,不用加 @Param
52 30 /**
... ... @@ -54,10 +32,9 @@ public interface IotDeviceLogDataMapper {
54 32 *
55 33 * 如果子表不存在,会自动创建子表
56 34 *
57   ->>>>>>> deab8c1cc6bb7864d9c40e0c369f649f6f9bfa41
58 35 * @param log 设备日志数据
59 36 */
60   - void insert(@Param("log") IotDeviceLogDO log);
  37 + void insert(IotDeviceLogDO log);
61 38  
62 39 /**
63 40 * 获得设备日志分页
... ... @@ -65,7 +42,7 @@ public interface IotDeviceLogDataMapper {
65 42 * @param reqVO 分页查询条件
66 43 * @return 设备日志列表
67 44 */
68   - List<IotDeviceLogDO> selectPage(@Param("reqVO") IotDeviceLogPageReqVO reqVO);
  45 + List<IotDeviceLogDO> selectPage(IotDeviceLogPageReqVO reqVO);
69 46  
70 47 /**
71 48 * 获得设备日志总数
... ... @@ -73,6 +50,11 @@ public interface IotDeviceLogDataMapper {
73 50 * @param reqVO 查询条件
74 51 * @return 日志总数
75 52 */
76   - Long selectCount(@Param("reqVO") IotDeviceLogPageReqVO reqVO);
  53 + Long selectCount(IotDeviceLogPageReqVO reqVO);
77 54  
  55 + /**
  56 + * 查询设备日志表是否存在
  57 + *
  58 + */
  59 + Object checkDeviceLogTableExists();
78 60 }
... ...
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/tdengine/TdThingModelMessageMapper.java deleted
1   -package cn.iocoder.yudao.module.iot.dal.tdengine;
2   -
3   -import cn.iocoder.yudao.module.iot.framework.tdengine.core.annotation.TDengineDS;
4   -import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
5   -import org.apache.ibatis.annotations.Mapper;
6   -import org.apache.ibatis.annotations.Param;
7   -
8   -/**
9   - * 处理 TD 中物模型消息日志的操作
10   - */
11   -@Mapper
12   -@Deprecated // TODO super:什么时候,删除下哈。
13   -@TDengineDS
14   -@InterceptorIgnore(tenantLine = "true") // 避免 SQL 解析,因为 JSqlParser 对 TDengine 的 SQL 解析会报错
15   -public interface TdThingModelMessageMapper {
16   -
17   - /**
18   - * 创建物模型消息日志超级表超级表
19   - *
20   - */
21   -
22   - void createSuperTable(@Param("productKey") String productKey);
23   -
24   - /**
25   - * 创建子表
26   - *
27   - */
28   -
29   - void createTableWithTag(@Param("productKey") String productKey,@Param("deviceKey") String deviceKey);
30   -
31   -}
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/tdengine/config/TDengineTableInitConfiguration.java
... ... @@ -25,18 +25,13 @@ public class TDengineTableInitConfiguration implements ApplicationRunner {
25 25 public void run(ApplicationArguments args) {
26 26 try {
27 27 // 初始化设备日志表
28   - deviceLogService.initTDengineSTable();
  28 + deviceLogService.defineDeviceLog();
29 29 // TODO @super:这个日志,是不是不用打,不然重复啦!!!
30   - log.info("[run]初始化 设备日志表 TDengine 表结构成功");
31 30 } catch (Exception ex) {
32 31 // TODO @super:初始化失败,打印 error 日志,退出系统。。不然跑起来,就初始啦!!!
33   - if (ex.getMessage().contains("Table already exists")) {
34   - log.info("TDengine 设备日志超级表已存在,跳过创建");
35   - return;
36   - } else{
37   - log.error("初始化 设备日志表 TDengine 表结构失败", ex);
38   - }
39   - throw ex;
  32 + // 初始化失败时打印错误日志并退出系统
  33 + log.error("[TDengine] 初始化设备日志表结构失败,系统无法正常运行,即将退出", ex);
  34 + System.exit(1);
40 35 }
41 36 }
42 37  
... ...
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDeviceLogDataService.java
... ... @@ -17,7 +17,7 @@ public interface IotDeviceLogDataService {
17 17 *
18 18 *系统启动时,会自动初始化一次
19 19 */
20   - void initTDengineSTable();
  20 + void defineDeviceLog();
21 21  
22 22 /**
23 23 * 插入设备日志
... ...
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDeviceLogDataServiceImpl.java
... ... @@ -28,9 +28,24 @@ public class IotDeviceLogDataServiceImpl implements IotDeviceLogDataService{
28 28  
29 29 // TODO @super:方法名。defineDeviceLog。。未来,有可能别人使用别的记录日志,例如说 es 之类的。
30 30 @Override
31   - public void initTDengineSTable() {
  31 + public void defineDeviceLog() {
32 32 // TODO @super:改成不存在才创建。
33   - iotDeviceLogDataMapper.createDeviceLogSTable();
  33 +// try {
  34 +// // 创建超级表(使用 IF NOT EXISTS 语句避免重复创建错误)
  35 +// iotDeviceLogDataMapper.createDeviceLogSTable();
  36 +// } catch (Exception e) {
  37 +// if (e.getMessage().contains("already exists")) {
  38 +// log.info("[TDengine] 设备日志超级表已存在,跳过创建");
  39 +// return;
  40 +// }
  41 +// throw e;
  42 +// }
  43 + if(iotDeviceLogDataMapper.checkDeviceLogTableExists()==null){
  44 + log.info("[TDengine] 设备日志超级表不存在,开始创建 {}",iotDeviceLogDataMapper.checkDeviceLogTableExists());
  45 + iotDeviceLogDataMapper.createDeviceLogSTable();
  46 + }else{
  47 + log.info("[TDengine] 设备日志超级表已存在,跳过创建");
  48 + }
34 49 }
35 50  
36 51 @Override
... ...
yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/IotDeviceLogDataMapper.xml
... ... @@ -6,13 +6,13 @@
6 6  
7 7 <!-- 创建设备日志超级表 初始化只创建一次-->
8 8 <update id="createDeviceLogSTable">
9   - CREATE STABLE device_log (
  9 + CREATE STABLE IF NOT EXISTS device_log (
10 10 ts TIMESTAMP,
11 11 id NCHAR(50),
12 12 product_key NCHAR(50),
13 13 type NCHAR(50),
14 14 <!-- TODO @super:下划线 sub_type -->
15   - subType NCHAR(50),
  15 + sub_type NCHAR(50),
16 16 content NCHAR(1024),
17 17 report_time TIMESTAMP
18 18 ) TAGS (
... ... @@ -75,4 +75,9 @@
75 75 </where>
76 76 </select>
77 77  
  78 + <!-- 检查设备日志超级表是否存在 -->
  79 + <select id="checkDeviceLogTableExists" resultType="Object">
  80 + SHOW TABLES LIKE 'device_log';
  81 + </select>
  82 +
78 83 </mapper>
79 84 \ No newline at end of file
... ...
yudao-server/src/main/resources/application-local.yaml
... ... @@ -283,9 +283,9 @@ iot:
283 283  
284 284 # MQTT-RPC 配置
285 285 mqtt:
286   - broker: tcp://127.0.0.1:1883
287   - username: root
288   - password: 123456
  286 + broker: tcp://chaojiniu.top:1883
  287 + username: haohao
  288 + password: ahh@123456
289 289 clientId: mqtt-rpc-server-${random.int}
290 290 requestTopic: rpc/request
291 291 responseTopicPrefix: rpc/response/
... ...