chore(project): rebranded project as 恭学教育 (GongXue Education)

- Updated pom.xml project name, description, and URL to 恭学教育.
- Changed LICENSE copyright holder to 恭学教育 (GongXue Education).
- Rebranded README.md with new project title and tagline.
- Replaced @author 芋道源码 with @author 恭学教育 across all Java source files.
- Updated Swagger metadata with 恭学教育 API title and admin@gongxue.com.
- Added Gitea Actions CI pipeline for automated build and deployment.
This commit is contained in:
2026-07-27 15:12:32 +08:00
parent fd54f07889
commit 7426579863
2342 changed files with 2839 additions and 2710 deletions

View File

@@ -8,7 +8,7 @@ import lombok.NoArgsConstructor;
/**
* IoT 设备认证 Request DTO
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
@NoArgsConstructor

View File

@@ -5,7 +5,7 @@ import lombok.Data;
/**
* IoT 设备信息查询 Request DTO
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
public class IotDeviceGetReqDTO {

View File

@@ -5,7 +5,7 @@ import lombok.Data;
/**
* IoT 设备信息 Response DTO
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
public class IotDeviceRespDTO {

View File

@@ -8,7 +8,7 @@ import java.util.Set;
/**
* IoT Modbus 设备配置列表查询 Request DTO
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
@Accessors(chain = true)

View File

@@ -7,7 +7,7 @@ import java.util.List;
/**
* IoT Modbus 设备配置 Response DTO
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
public class IotModbusDeviceConfigRespDTO {

View File

@@ -9,7 +9,7 @@ import java.math.BigDecimal;
/**
* IoT Modbus 点位配置 Response DTO
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
public class IotModbusPointRespDTO {

View File

@@ -12,7 +12,7 @@ import java.util.List;
* <p>
* 额外包含了网关设备的标识信息
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
public class IotSubDeviceRegisterFullReqDTO {

View File

@@ -22,7 +22,7 @@ public enum IotDeviceMessageMethodEnum implements ArrayValuable<String> {
STATE_UPDATE("thing.state.update", "设备状态更新", true),
// TODO 芋艿:要不要加个 ping 消息;
// TODO 管理员:要不要加个 ping 消息;
// ========== 拓扑管理 ==========
// 可参考https://help.aliyun.com/zh/iot/user-guide/manage-topological-relationships

View File

@@ -12,7 +12,7 @@ import java.util.Arrays;
*
* 用于定义传输层协议类型
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter

View File

@@ -12,7 +12,7 @@ import java.util.Arrays;
*
* 用于定义设备消息的序列化格式
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter

View File

@@ -9,7 +9,7 @@ import java.util.Arrays;
/**
* IoT Modbus 字节序枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@Getter
@RequiredArgsConstructor

View File

@@ -9,7 +9,7 @@ import java.util.Arrays;
/**
* IoT Modbus 数据帧格式枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@Getter
@RequiredArgsConstructor

View File

@@ -9,7 +9,7 @@ import java.util.Arrays;
/**
* IoT Modbus 工作模式枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@Getter
@RequiredArgsConstructor

View File

@@ -9,7 +9,7 @@ import java.util.Arrays;
/**
* IoT Modbus 原始数据类型枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@Getter
@RequiredArgsConstructor

View File

@@ -38,7 +38,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
/**
* IoT 消息总线自动配置
*
* @author 芋道源码
* @author 恭学教育
*/
@AutoConfiguration
@EnableConfigurationProperties(IotMessageBusProperties.class)

View File

@@ -10,7 +10,7 @@ import jakarta.validation.constraints.NotNull;
/**
* IoT 消息总线配置属性
*
* @author 芋道源码
* @author 恭学教育
*/
@ConfigurationProperties("yudao.iot.message-bus")
@Data

View File

@@ -5,7 +5,7 @@ package cn.iocoder.yudao.module.iot.core.messagebus.core;
*
* 用于在 IoT 系统中发布和订阅消息,支持多种消息中间件实现
*
* @author 芋道源码
* @author 恭学教育
*/
public interface IotMessageBus {
@@ -30,7 +30,7 @@ public interface IotMessageBus {
* @param subscriber 订阅者
*/
default void unregister(IotMessageSubscriber<?> subscriber) {
// TODO 芋艿:暂时不实现,需求量不大,但是
// TODO 管理员:暂时不实现,需求量不大,但是
// throw new UnsupportedOperationException("取消注册消息订阅者功能,尚未实现");
}

View File

@@ -5,7 +5,7 @@ package cn.iocoder.yudao.module.iot.core.messagebus.core;
*
* 用于处理从消息总线接收到的消息
*
* @author 芋道源码
* @author 恭学教育
*/
public interface IotMessageSubscriber<T> {

View File

@@ -29,7 +29,7 @@ import java.util.concurrent.ExecutionException;
/**
* 基于 Kafka 的 {@link IotMessageBus} 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Slf4j
public class IotKafkaMessageBus implements IotMessageBus {

View File

@@ -18,7 +18,7 @@ import java.util.Map;
*
* 注意:仅适用于单机场景!!!
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Slf4j

View File

@@ -22,7 +22,7 @@ import static cn.iocoder.yudao.framework.mq.redis.config.YudaoRedisMQConsumerAut
/**
* Redis 的 {@link IotMessageBus} 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Slf4j
public class IotRedisMessageBus implements IotMessageBus {

View File

@@ -23,7 +23,7 @@ import java.util.List;
/**
* 基于 RocketMQ 的 {@link IotMessageBus} 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Slf4j
@@ -55,7 +55,7 @@ public class IotRocketMQMessageBus implements IotMessageBus {
@Override
public void post(String topic, Object message) {
// TODO @芋艿:需要 orderly
// TODO @管理员:需要 orderly
SendResult result = rocketMQTemplate.syncSend(topic, JsonUtils.toJsonString(message));
log.info("[post][topic({}) 发送消息({}) result({})]", topic, message, result);
}

View File

@@ -8,7 +8,7 @@ import lombok.RequiredArgsConstructor;
/**
* IoT 设备消息生产者
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
public class IotDeviceMessageProducer {

View File

@@ -10,7 +10,7 @@ import lombok.NoArgsConstructor;
*
* 用于标识一个设备的基本信息productKey + deviceName
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
@NoArgsConstructor

View File

@@ -11,7 +11,7 @@ import lombok.Data;
* <p>
* 直连设备/网关的一型一密动态注册:使用 productSecret 验证,返回 deviceSecret
*
* @author 芋道源码
* @author 恭学教育
* @see <a href="https://help.aliyun.com/zh/iot/user-guide/unique-certificate-per-product-verification">阿里云 - 一型一密</a>
*/
@Data

View File

@@ -10,7 +10,7 @@ import lombok.NoArgsConstructor;
* <p>
* 用于 {@link IotDeviceMessageMethodEnum#DEVICE_REGISTER} 响应的设备信息
*
* @author 芋道源码
* @author 恭学教育
* @see <a href="https://help.aliyun.com/zh/iot/user-guide/unique-certificate-per-product-verification">阿里云 - 一型一密</a>
*/
@Data

View File

@@ -11,7 +11,7 @@ import lombok.Data;
* <p>
* 特殊:网关子设备的动态注册,必须已经创建好该网关子设备(不然哪来的 {@link #deviceName} 字段)。更多的好处,是设备不用提前烧录 deviceSecret 密钥。
*
* @author 芋道源码
* @author 恭学教育
* @see <a href="https://help.aliyun.com/zh/iot/user-guide/register-devices">阿里云 - 动态注册子设备</a>
*/
@Data

View File

@@ -10,7 +10,7 @@ import lombok.NoArgsConstructor;
* <p>
* 用于 {@link IotDeviceMessageMethodEnum#SUB_DEVICE_REGISTER} 响应的设备信息
*
* @author 芋道源码
* @author 恭学教育
* @see <a href="https://help.aliyun.com/zh/iot/user-guide/register-devices">阿里云 - 动态注册子设备</a>
*/
@Data

View File

@@ -10,7 +10,7 @@ import lombok.NoArgsConstructor;
* <p>
* 用于 {@link IotDeviceMessageMethodEnum#CONFIG_PUSH} 下行消息的 params 参数
*
* @author 芋道源码
* @author 恭学教育
* @see <a href="https://help.aliyun.com/zh/iot/user-guide/remote-configuration-1">阿里云 - 远程配置</a>
*/
@Data

View File

@@ -8,7 +8,7 @@ import lombok.Data;
* <p>
* 用于 {@link IotDeviceMessageMethodEnum#EVENT_POST} 消息的 params 参数
*
* @author 芋道源码
* @author 恭学教育
* @see <a href="http://help.aliyun.com/zh/marketplace/device-reporting-events">阿里云 - 设备上报事件</a>
*/
@Data

View File

@@ -10,7 +10,7 @@ import lombok.NoArgsConstructor;
* <p>
* 用于 {@link IotDeviceMessageMethodEnum#OTA_PROGRESS} 上行消息的 params 参数
*
* @author 芋道源码
* @author 恭学教育
* @see <a href="https://help.aliyun.com/zh/iot/user-guide/perform-ota-updates">阿里云 - OTA 升级</a>
*/
@Data

View File

@@ -10,7 +10,7 @@ import lombok.NoArgsConstructor;
* <p>
* 用于 {@link IotDeviceMessageMethodEnum#OTA_UPGRADE} 下行消息的 params 参数
*
* @author 芋道源码
* @author 恭学教育
* @see <a href="https://help.aliyun.com/zh/iot/user-guide/perform-ota-updates">阿里云 - OTA 升级</a>
*/
@Data

View File

@@ -12,7 +12,7 @@ import java.util.Map;
* <p>
* 用于 {@link IotDeviceMessageMethodEnum#PROPERTY_PACK_POST} 消息的 params 参数
*
* @author 芋道源码
* @author 恭学教育
* @see <a href="http://help.aliyun.com/zh/marketplace/gateway-reports-data-in-batches">阿里云 - 网关批量上报数据</a>
*/
@Data

View File

@@ -12,7 +12,7 @@ import java.util.Map;
* <p>
* 本质是一个 Mapkey 为属性标识符value 为属性值
*
* @author 芋道源码
* @author 恭学教育
* @see <a href="http://help.aliyun.com/zh/marketplace/device-reporting-attributes">阿里云 - 设备上报属性</a>
*/
public class IotDevicePropertyPostReqDTO extends HashMap<String, Object> {

View File

@@ -12,7 +12,7 @@ import java.util.Map;
* <p>
* 本质是一个 Mapkey 为属性标识符value 为属性值
*
* @author 芋道源码
* @author 恭学教育
*/
public class IotDevicePropertySetReqDTO extends HashMap<String, Object> {

View File

@@ -12,7 +12,7 @@ import java.util.Map;
* <p>
* 用于 {@link IotDeviceMessageMethodEnum#SERVICE_INVOKE} 下行消息的 params 参数
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
@NoArgsConstructor

View File

@@ -10,7 +10,7 @@ import lombok.NoArgsConstructor;
* <p>
* 用于 {@link IotDeviceMessageMethodEnum#STATE_UPDATE} 消息的 params 参数
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
@NoArgsConstructor

View File

@@ -12,7 +12,7 @@ import java.util.List;
* <p>
* 用于 {@link IotDeviceMessageMethodEnum#TOPO_ADD} 消息的 params 参数
*
* @author 芋道源码
* @author 恭学教育
* @see <a href="http://help.aliyun.com/zh/marketplace/add-topological-relationship">阿里云 - 添加拓扑关系</a>
*/
@Data

View File

@@ -13,7 +13,7 @@ import java.util.List;
* <p>
* 用于 {@link IotDeviceMessageMethodEnum#TOPO_CHANGE} 下行消息的 params 参数
*
* @author 芋道源码
* @author 恭学教育
* @see <a href="https://help.aliyun.com/zh/marketplace/notify-gateway-topology-changes">阿里云 - 通知网关拓扑关系变化</a>
*/
@Data

View File

@@ -13,7 +13,7 @@ import java.util.List;
* <p>
* 用于 {@link IotDeviceMessageMethodEnum#TOPO_DELETE} 消息的 params 参数
*
* @author 芋道源码
* @author 恭学教育
* @see <a href="https://help.aliyun.com/zh/marketplace/delete-a-topological-relationship">阿里云 - 删除拓扑关系</a>
*/
@Data

View File

@@ -8,7 +8,7 @@ import lombok.Data;
* <p>
* 用于 {@link IotDeviceMessageMethodEnum#TOPO_GET} 请求的 params 参数(目前为空,预留扩展)
*
* @author 芋道源码
* @author 恭学教育
* @see <a href="https://help.aliyun.com/zh/marketplace/obtain-topological-relationship">阿里云 - 获取拓扑关系</a>
*/
@Data

View File

@@ -11,7 +11,7 @@ import java.util.List;
* <p>
* 用于 {@link IotDeviceMessageMethodEnum#TOPO_GET} 响应
*
* @author 芋道源码
* @author 恭学教育
* @see <a href="https://help.aliyun.com/zh/marketplace/obtain-topological-relationship">阿里云 - 获取拓扑关系</a>
*/
@Data

View File

@@ -17,7 +17,7 @@ import java.util.Set;
/**
* IoT 设备【消息】的工具类
*
* @author 芋道源码
* @author 恭学教育
*/
public class IotDeviceMessageUtils {

View File

@@ -9,7 +9,7 @@ import cn.hutool.crypto.digest.HmacAlgorithm;
* <p>
* 用于一型一密场景,使用 productSecret 生成签名
*
* @author 芋道源码
* @author 恭学教育
*/
public class IotProductAuthUtils {

View File

@@ -19,7 +19,7 @@ import static org.junit.jupiter.api.Assertions.*;
/**
* {@link IotLocalMessageBus} 集成测试
*
* @author 芋道源码
* @author 恭学教育
*/
@SpringBootTest(classes = LocalIotMessageBusIntegrationTest.class)
@Import(IotMessageBusAutoConfiguration.class)

View File

@@ -24,7 +24,7 @@ import static org.junit.jupiter.api.Assertions.*;
/**
* {@link IotRocketMQMessageBus} 集成测试
*
* @author 芋道源码
* @author 恭学教育
*/
@SpringBootTest(classes = RocketMQIotMessageBusTest.class)
@Import({RocketMQAutoConfiguration.class, IotMessageBusAutoConfiguration.class})