# iot **Repository Path**: renqx/iot ## Basic Information - **Project Name**: iot - **Description**: iot采集平台 基于服务端+采集端 java+vue - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: iot-dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2024-01-31 - **Last Updated**: 2025-09-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 环境说明 + 服务器 + 外网IP:182.139.182.62 + 内网IP:192.168.10.210(成都) + 开发环境 + gateway端口:30300 + web端口:30380 + 测试环境 + gateway端口:30200 + web端口:30280 + 生产环境 + gateway端口:30000 + web端口:30080 # 分支说明 + 开发分支:iot + 测试分支:iot-test-XXX,其中XXX为具体版本号,封板测试时创建该测试分支,bug修复在此分支上 + 发布分支:iot-XXX,其中xxx为具体版本号,当测试分支稳定后,创建发布分支,用于发布正式版本,后期hotfix在该分支上 # 文件目录说明 + devops: CICD相关文件 + iot-client: 采集器,用于和设备进行通讯采集原始数据 + iot-relay: 数据中继服务(预留待实现) + iot-server: iot平台服务端 + iot-server-parent: 服务端基础父类,用于控制各个依赖版本 + iot-server-base: 服务端基础、封装各类配置 + iot-server-gateway: 服务端基础网关 + iot-server-device-type: 设备型号服务,用于平台基础数据设置 + iot-server-device-manage: 设备管理服务,用于配置采集器、设备绑定关系 + iot-server-data: 数据服务,用于存储、提供采集数据 + iot-server-scene: 场景服务 + iot-server-scene-icis: 重症场景服务 + iot-server-scene-joysuch: 真趣数据对接服务(对接采集数据) + iot-web: iot平台前端 # 开发规范 ## 文件目录 + config: 配置文件目录 + SwaggerConfig: swagger文档配置 + RabbitMQConfig: mq配置,主要用于发送与接收处理事件,配置交换机与队列 + *Event: 各类事件 + controller: 接口暴露(一般按照功能模块暴露) + service: 业务服务(以Biz开头,一般与controller保持对应,不与其他Biz服务有引用) + dto: 数据传输类,用于接收与提供给外部使用,业务服务接收与返回的均为Dto + core: + entity: 数据实体,与表结构关联,不进行非表结构字段扩展 + mapper: 所需,不允许增加接口与写sql + service: 与数据实体关MyBatisPlus联,操作该表数据,除了非常简易的数据操作可直接用MyBatisPlus提供的接口外,所有与该表的sql操作均需写在这里 + feign: 远程调用 + client: 远程调用接口 + dto: 远程调用的数据传输,一般与对应服务的dto保持一致 + impl: 远程调用的服务实现,一般远程调用都需redis缓存,并且监听对应服务相关事件进行缓存清理 + listener: 远程调用缓存处理,监听其他服务发布的事件,并清理自身的缓存 ## 注释 + 接口与实现均需写注释 + 函数内需大致注释每部的操作,若复杂逻辑,需要在函数头写明业务逻辑步骤,并在下方注释每步 ## 注解 + 尽量使用lombok注解,类中不再写get和set方法(特殊需求除外) + 配置项写入配置文件,类中以注解方式读取,配置文件中需写明该配置的用途 ## 命名规范 + 配置类以Config结尾 + 数据传输类以Dto结尾 + 数据实体(用于数据库存储)以Entity结尾 + 业务服务以Biz开头 + 所有服务接口以Service结尾 + 所有服务实现以Impl结尾 ## 编码规范 + 函数一般不可超过一个屏幕长度(50行内) + 重复度高的代码需要抽取成方法,并写好注释