diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/IotDeviceDataController.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/IotDeviceDataController.java index f78a96b248..638c880467 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/IotDeviceDataController.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/IotDeviceDataController.java @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.iot.controller.admin.device; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.iot.api.device.dto.IotDevicePropertyReportReqDTO; import cn.iocoder.yudao.module.iot.controller.admin.device.vo.deviceData.*; import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDataDO; import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceLogDO; @@ -52,7 +51,7 @@ public class IotDeviceDataController { return success(BeanUtils.toBean(list, IotTimeDataRespVO.class)); } - // TODO:数据权限 + // TODO:功能权限 @PostMapping("/simulator") @Operation(summary = "模拟设备") public CommonResult simulatorDevice(@Valid @RequestBody IotDeviceDataSimulatorSaveReqVO simulatorReqVO) { @@ -62,7 +61,7 @@ public class IotDeviceDataController { return success(true); } - // TODO:数据权限 + // TODO:功能权限 @GetMapping("/log/page") @Operation(summary = "获得设备日志分页") public CommonResult> getDeviceLogPage(@Valid IotDeviceLogPageReqVO pageReqVO) { diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/vo/deviceData/IotDeviceDataSimulatorSaveReqVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/vo/deviceData/IotDeviceDataSimulatorSaveReqVO.java index 4d09808b14..efa608e572 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/vo/deviceData/IotDeviceDataSimulatorSaveReqVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/vo/deviceData/IotDeviceDataSimulatorSaveReqVO.java @@ -19,7 +19,6 @@ public class IotDeviceDataSimulatorSaveReqVO { @NotEmpty(message = "产品标识不能为空") private String productKey; - // TODO @super:中文写作规范,中英文之间,要有空格。例如说,设备 ID。ps:这里应该是设备标识 @Schema(description = "设备标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "device123") @NotEmpty(message = "设备标识不能为空") private String deviceKey; @@ -38,6 +37,7 @@ public class IotDeviceDataSimulatorSaveReqVO { @NotEmpty(message = "数据内容不能为空") private String content; + // TODO @芋艿:需要讨论下,reportTime 到底以那个为准! @Schema(description = "上报时间", requiredMode = Schema.RequiredMode.REQUIRED) private Long reportTime; diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/device/IotDeviceLogDO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/device/IotDeviceLogDO.java index 609c9c43ad..158b0f57b9 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/device/IotDeviceLogDO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/device/IotDeviceLogDO.java @@ -25,7 +25,6 @@ public class IotDeviceLogDO { */ private String id; - // TODO @super:关联要 @下 /** * 产品标识 *

@@ -33,7 +32,6 @@ public class IotDeviceLogDO { */ private String productKey; - // TODO @super:关联要 @下 /** * 设备标识 *

diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/tdengine/IotDeviceLogDataMapper.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/tdengine/IotDeviceLogDataMapper.java index 2d8230f1f6..f9d18bdccd 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/tdengine/IotDeviceLogDataMapper.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/tdengine/IotDeviceLogDataMapper.java @@ -10,9 +10,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - * IOT 设备日志数据 Mapper 接口 - * - * 基于 TDengine 实现设备日志的存储 + * 设备日志 {@link IotDeviceLogDO} Mapper 接口 */ @Mapper @TDengineDS @@ -21,12 +19,11 @@ public interface IotDeviceLogDataMapper { /** * 创建设备日志超级表 - * 初始化只创建一次 */ void createDeviceLogSTable(); - // TODO @super:单个参数,不用加 @Param + // TODO @芋艿:在瞅瞅 //讨论:艿菇这里有些特殊情况,我也学习了一下这块知识: // 如果使用的是Java 8及以上版本,并且编译器保留了参数名(通过编译器选项-parameters启用),则可以去掉@Param注解。MyBatis会自动使用参数的实际名称 // 但在TDengine中 @Param去掉后TDengine会报错,以下是大模型的回答: @@ -65,18 +62,12 @@ public interface IotDeviceLogDataMapper { */ Long selectCount(@Param("reqVO") IotDeviceLogPageReqVO reqVO); + // TODO @芋艿:这个方法名,后续看看叫啥好 /** * 查询设备日志表是否存在 * - * @return 不存在返回null + * @return 不存在返回 null */ Object checkDeviceLogSTableExists(); - /** - * 检查设备日志子表是否存在 - * - * @param deviceKey 设备标识 - * @return 不存在返回null - */ - Object checkDeviceLogTableExists(@Param("deviceKey") String deviceKey); } diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/tdengine/config/TDengineTableInitConfiguration.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/tdengine/config/TDengineTableInitConfiguration.java index c9f08903e8..9f3c79c227 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/tdengine/config/TDengineTableInitConfiguration.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/tdengine/config/TDengineTableInitConfiguration.java @@ -6,17 +6,15 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.context.annotation.Configuration; -import org.springframework.core.annotation.Order; /** * TDengine 表初始化的 Configuration * * @author alwayssuper */ +@Configuration @Slf4j @RequiredArgsConstructor -@Configuration -@Order public class TDengineTableInitConfiguration implements ApplicationRunner { private final IotDeviceLogDataService deviceLogService; @@ -26,9 +24,7 @@ public class TDengineTableInitConfiguration implements ApplicationRunner { try { // 初始化设备日志表 deviceLogService.defineDeviceLog(); - // TODO @super:这个日志,是不是不用打,不然重复啦!!! } catch (Exception ex) { - // TODO @super:初始化失败,打印 error 日志,退出系统。。不然跑起来,就初始啦!!! // 初始化失败时打印错误日志并退出系统 log.error("[TDengine] 初始化设备日志表结构失败,系统无法正常运行,即将退出", ex); System.exit(1); diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/mq/consumer/deviceconsumer/DeviceConsumer.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/mq/consumer/deviceconsumer/DeviceConsumer.java index 1daa05f920..7403fb6686 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/mq/consumer/deviceconsumer/DeviceConsumer.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/mq/consumer/deviceconsumer/DeviceConsumer.java @@ -1,7 +1,6 @@ package cn.iocoder.yudao.module.iot.mq.consumer.deviceconsumer; -import cn.iocoder.yudao.module.iot.api.device.dto.IotDevicePropertyReportReqDTO; import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.ThingModelMessage; import cn.iocoder.yudao.module.iot.service.device.IotDeviceLogDataService; import cn.iocoder.yudao.module.iot.service.device.IotDevicePropertyDataService; @@ -20,8 +19,9 @@ import javax.annotation.Resource; @Component @Slf4j public class DeviceConsumer { + @Resource - private IotDeviceLogDataService iotDeviceLogDataService; + private IotDeviceLogDataService deviceLogDataService; @Resource private IotDevicePropertyDataService deviceDataService; @@ -35,7 +35,7 @@ public class DeviceConsumer { // 设备数据记录 deviceDataService.saveDeviceDataTest(message); // 设备日志记录 - iotDeviceLogDataService.saveDeviceLog(message); + deviceLogDataService.saveDeviceLog(message); } } diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/mq/producer/simulatesend/SimulateSendProducer.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/mq/producer/simulatesend/SimulateSendProducer.java index 1fb0c80c00..7366f4da54 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/mq/producer/simulatesend/SimulateSendProducer.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/mq/producer/simulatesend/SimulateSendProducer.java @@ -6,7 +6,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Component; -// TODO @alwayssuper:是不是还没用起来哈?Producer 最好属于某个模块; +// TODO @芋艿:@alwayssuper:是不是还没用起来哈?Producer 最好属于某个模块; /** * SimulateSend 模拟设备上报的 Producer * @@ -28,4 +28,5 @@ public class SimulateSendProducer { public void sendSimulateMessage(ThingModelMessage thingModelMessage) { applicationContext.publishEvent(thingModelMessage); } + } diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDeviceLogDataService.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDeviceLogDataService.java index 2d7bf98500..637c8f51a3 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDeviceLogDataService.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDeviceLogDataService.java @@ -16,7 +16,7 @@ public interface IotDeviceLogDataService { /** * 初始化 TDengine 超级表 * - *系统启动时,会自动初始化一次 + * 系统启动时,会自动初始化一次 */ void defineDeviceLog(); @@ -40,8 +40,8 @@ public interface IotDeviceLogDataService { /** * 插入设备日志 * - * @param msg 设备数据 + * @param message 设备数据 */ - void saveDeviceLog(ThingModelMessage msg); + void saveDeviceLog(ThingModelMessage message); } diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDeviceLogDataServiceImpl.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDeviceLogDataServiceImpl.java index f66bcc8ad2..bfe3199551 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDeviceLogDataServiceImpl.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDeviceLogDataServiceImpl.java @@ -13,7 +13,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import java.util.Date; import java.util.List; /** @@ -27,28 +26,18 @@ import java.util.List; public class IotDeviceLogDataServiceImpl implements IotDeviceLogDataService{ @Resource - private IotDeviceLogDataMapper iotDeviceLogDataMapper; + private IotDeviceLogDataMapper deviceLogDataMapper; - // TODO @super:方法名。defineDeviceLog。。未来,有可能别人使用别的记录日志,例如说 es 之类的。 @Override public void defineDeviceLog() { - // TODO @super:改成不存在才创建。 -// try { -// // 创建超级表(使用 IF NOT EXISTS 语句避免重复创建错误) -// iotDeviceLogDataMapper.createDeviceLogSTable(); -// } catch (Exception e) { -// if (e.getMessage().contains("already exists")) { -// log.info("[TDengine] 设备日志超级表已存在,跳过创建"); -// return; -// } -// throw e; -// } - if(iotDeviceLogDataMapper.checkDeviceLogSTableExists()==null){ - log.info("[TDengine] 设备日志超级表不存在,开始创建"); - iotDeviceLogDataMapper.createDeviceLogSTable(); - }else{ - log.info("[TDengine] 设备日志超级表已存在,跳过创建"); + if (deviceLogDataMapper.checkDeviceLogSTableExists() != null) { + log.info("[defineDeviceLog][设备日志超级表已存在,跳过创建]"); + return; } + + log.info("[defineDeviceLog][设备日志超级表不存在,开始创建]"); + deviceLogDataMapper.createDeviceLogSTable(); + log.info("[defineDeviceLog][设备日志超级表不存在,创建完成]"); } @Override @@ -57,47 +46,32 @@ public class IotDeviceLogDataServiceImpl implements IotDeviceLogDataService{ IotDeviceLogDO iotDeviceLogDO = BeanUtils.toBean(simulatorReqVO, IotDeviceLogDO.class); // 2. 处理时间字段 - // TODO @super:一次性的字段,不用单独给个变量 -// long currentTime = System.currentTimeMillis(); - // 2.1 设置时序时间为当前时间 // iotDeviceLogDO.setTs(currentTime); // TODO @super:TS在SQL中直接NOW 咱们的TS数据获取是走哪一种;走 now() // 3. 插入数据 - // TODO @super:不要直接调用对方的 IotDeviceLogDataMapper,通过 service 哈! - // 讨论:艿菇 这就是iotDeviceLogDataService的Impl - iotDeviceLogDataMapper.insert(iotDeviceLogDO); + deviceLogDataMapper.insert(iotDeviceLogDO); } - // TODO @super:在 iotDeviceLogDataService 写 - // 讨论:艿菇 这就是iotDeviceLogDataService的Impl @Override public PageResult getDeviceLogPage(IotDeviceLogPageReqVO pageReqVO) { - // 当设备日志表未创建时,查询会出现报错 - if(iotDeviceLogDataMapper.checkDeviceLogTableExists(pageReqVO.getDeviceKey())==null){ - return null; - } - // 查询数据 - List list = iotDeviceLogDataMapper.selectPage(pageReqVO); - Long total = iotDeviceLogDataMapper.selectCount(pageReqVO); - // 构造分页结果 + // TODO @芋艿:增加一个表不存在的 try catch + List list = deviceLogDataMapper.selectPage(pageReqVO); + Long total = deviceLogDataMapper.selectCount(pageReqVO); return new PageResult<>(list, total); } @Override - public void saveDeviceLog(ThingModelMessage msg) { - // 1. 构建设备日志对象 - IotDeviceLogDO iotDeviceLogDO = IotDeviceLogDO.builder() - .id(msg.getId()) // 消息ID - .deviceKey(msg.getDeviceKey()) // 设备标识 - .productKey(msg.getProductKey()) // 产品标识 - .type(msg.getMethod()) // 消息类型,使用method作为类型 - .subType("property") // TODO:这块先写死,后续优化 - .content(JSONUtil.toJsonStr(msg)) // TODO:后续优化 - .reportTime(msg.getTime()) // 上报时间 + public void saveDeviceLog(ThingModelMessage message) { + IotDeviceLogDO log = IotDeviceLogDO.builder() + .id(message.getId()) + .deviceKey(message.getDeviceKey()) + .productKey(message.getProductKey()) + .type(message.getMethod()) // 消息类型,使用method作为类型 TODO 芋艿:在看看 + .subType("property") // TODO 芋艿:这块先写死,后续优化 + .content(JSONUtil.toJsonStr(message)) // TODO 芋艿:后续优化 + .reportTime(message.getTime()) // 上报时间 TODO 芋艿:在想想时间 .build(); - - // 2. 插入设备日志 - iotDeviceLogDataMapper.insert(iotDeviceLogDO); + deviceLogDataMapper.insert(log); } } diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDevicePropertyDataService.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDevicePropertyDataService.java index 92a64c28f8..672785694e 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDevicePropertyDataService.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDevicePropertyDataService.java @@ -32,7 +32,6 @@ public interface IotDevicePropertyDataService { */ void saveDeviceData(IotDevicePropertyReportReqDTO createDTO); - /** * 保存设备数据 * @@ -45,7 +44,6 @@ public interface IotDevicePropertyDataService { * * @param simulatorReqVO 设备数据 */ - void simulatorSend(IotDeviceDataSimulatorSaveReqVO simulatorReqVO); /** diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDevicePropertyDataServiceImpl.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDevicePropertyDataServiceImpl.java index 2b998e7886..abd788948f 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDevicePropertyDataServiceImpl.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/IotDevicePropertyDataServiceImpl.java @@ -159,7 +159,7 @@ public class IotDevicePropertyDataServiceImpl implements IotDevicePropertyDataSe thingModelMessageService.saveThingModelMessage(device, thingModelMessage); } - //TODO:后续捋一捋这块逻辑,先借鉴一下目前的代码 + //TODO @芋艿:后续捋一捋这块逻辑,先借鉴一下目前的代码 @Override public void saveDeviceDataTest(ThingModelMessage thingModelMessage) { // 1. 根据产品 key 和设备名称,获得设备信息 @@ -168,7 +168,7 @@ public class IotDevicePropertyDataServiceImpl implements IotDevicePropertyDataSe thingModelMessageService.saveThingModelMessage(device, thingModelMessage); } - //TODO: copy 了 saveDeviceData 的逻辑,后续看看这块怎么优化 + //TODO @芋艿:copy 了 saveDeviceData 的逻辑,后续看看这块怎么优化 @Override public void simulatorSend(IotDeviceDataSimulatorSaveReqVO simulatorReqVO) { // 1. 根据设备 key ,获得设备信息 diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/IotDeviceLogDataMapper.xml b/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/IotDeviceLogDataMapper.xml index 828522ed70..039180857b 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/IotDeviceLogDataMapper.xml +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/IotDeviceLogDataMapper.xml @@ -4,28 +4,20 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - CREATE STABLE IF NOT EXISTS device_log ( - ts TIMESTAMP, - id NCHAR(50), - product_key NCHAR(50), - type NCHAR(50), - - sub_type NCHAR(50), - content NCHAR(1024), - report_time TIMESTAMP + ts TIMESTAMP, + id NCHAR(50), + product_key NCHAR(50), + type NCHAR(50), + sub_type NCHAR(50), + content NCHAR(1024), + report_time TIMESTAMP ) TAGS ( device_key NCHAR(50) ) - - - CREATE TABLE device_log_${deviceKey} USING device_log TAGS('${deviceKey}') - - - INSERT INTO device_log_${log.deviceKey} (ts, id, product_key, type, subType, content, report_time) USING device_log @@ -42,7 +34,7 @@ - - - \ No newline at end of file diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml index 08918a667b..4a23c0d577 100644 --- a/yudao-server/src/main/resources/application-local.yaml +++ b/yudao-server/src/main/resources/application-local.yaml @@ -45,7 +45,7 @@ spring: primary: master datasource: master: - url: jdbc:mysql://chaojiniu.top:23306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 + url: jdbc:mysql://127.0.0.1:3307/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 # url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=true&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai # MySQL Connector/J 5.X 连接的示例 # url: jdbc:postgresql://127.0.0.1:5432/ruoyi-vue-pro # PostgreSQL 连接的示例 # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 @@ -53,8 +53,8 @@ spring: # url: jdbc:dm://127.0.0.1:5236?schema=RUOYI_VUE_PRO # DM 连接的示例 # url: jdbc:kingbase8://127.0.0.1:54321/test # 人大金仓 KingbaseES 连接的示例 # url: jdbc:postgresql://127.0.0.1:5432/postgres # OpenGauss 连接的示例 - username: ruoyi-vue-pro - password: ruoyi-@h2ju02hebp + username: root + password: ahh@123456 # username: sa # SQL Server 连接的示例 # password: Yudao@2024 # SQL Server 连接的示例 # username: SYSDBA # DM 连接的示例 @@ -63,25 +63,17 @@ spring: # password: Yudao@2024 # OpenGauss 连接的示例 slave: # 模拟从库,可根据自己需要修改 lazy: true # 开启懒加载,保证启动速度 - url: jdbc:mysql://chaojiniu.top:23306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true - username: ruoyi-vue-pro - password: ruoyi-@h2ju02hebp - tdengine: # IOT 数据库 -# lazy: true # 开启懒加载,保证启动速度 - url: jdbc:TAOS-RS://chaojiniu.top:6041/ruoyi_vue_pro - driver-class-name: com.taosdata.jdbc.rs.RestfulDriver + url: jdbc:mysql://127.0.0.1:3307/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true username: root - password: taosdata - druid: - validation-query: SELECT SERVER_STATUS() # TDengine 数据源的有效性检查 SQL + password: ahh@123456 # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 data: redis: - host: chaojiniu.top # 地址 + host: 127.0.0.1 # 地址 port: 6379 # 端口 - database: 15 # 数据库索引 - password: fsknKD7UvQYZsyf2hXXn # 密码,建议生产环境开启 + database: 0 # 数据库索引 +# password: dev # 密码,建议生产环境开启 --- #################### 定时任务相关配置 #################### @@ -191,12 +183,12 @@ debug: false --- #################### 微信公众号、小程序相关配置 #################### wx: mp: # 公众号配置(必填),参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-mp-spring-boot-starter/README.md 文档 -# app-id: wx041349c6f39b268b # 测试号(牛希尧提供的) -# secret: 5abee519483bc9f8cb37ce280e814bd0 + # app-id: wx041349c6f39b268b # 测试号(牛希尧提供的) + # secret: 5abee519483bc9f8cb37ce280e814bd0 app-id: wx5b23ba7a5589ecbb # 测试号(自己的) secret: 2a7b3b20c537e52e74afd395eb85f61f -# app-id: wxa69ab825b163be19 # 测试号(Kongdy 提供的) -# secret: bd4f9fab889591b62aeac0d7b8d8b4a0 + # app-id: wxa69ab825b163be19 # 测试号(Kongdy 提供的) + # secret: bd4f9fab889591b62aeac0d7b8d8b4a0 # 存储配置,解决 AccessToken 的跨节点的共享 config-storage: type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取 @@ -205,10 +197,10 @@ wx: miniapp: # 小程序配置(必填),参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-miniapp-spring-boot-starter/README.md 文档 # appid: wx62056c0d5e8db250 # 测试号(牛希尧提供的) # secret: 333ae72f41552af1e998fe1f54e1584a -# appid: wx63c280fe3248a3e7 # wenhualian的接口测试号 -# secret: 6f270509224a7ae1296bbf1c8cb97aed -# appid: wxc4598c446f8a9cb3 # 测试号(Kongdy 提供的) -# secret: 4a1a04e07f6a4a0751b39c3064a92c8b + # appid: wx63c280fe3248a3e7 # wenhualian的接口测试号 + # secret: 6f270509224a7ae1296bbf1c8cb97aed + # appid: wxc4598c446f8a9cb3 # 测试号(Kongdy 提供的) + # secret: 4a1a04e07f6a4a0751b39c3064a92c8b appid: wx66186af0759f47c9 # 测试号(puhui 提供的) secret: 3218bcbd112cbc614c7264ceb20144ac config-storage: @@ -267,7 +259,7 @@ justauth: iot: emq: # 账号 - username: haohao + username: anhaohao # 密码 password: ahh@123456 # 主机地址 @@ -279,18 +271,4 @@ iot: # 保持连接 keepalive: 60 # 清除会话(设置为false,断开连接,重连后使用原来的会话 保留订阅的主题,能接收离线期间的消息) - clearSession: true - -# MQTT-RPC 配置 -mqtt: - broker: tcp://chaojiniu.top:1883 - username: haohao - password: ahh@123456 - clientId: mqtt-rpc-server-${random.int} - requestTopic: rpc/request - responseTopicPrefix: rpc/response/ - - -# 插件配置 -pf4j: - pluginsDir: /Users/anhaohao/code/gitee/ruoyi-vue-pro/plugins # 插件目录 \ No newline at end of file + clearSession: true \ No newline at end of file