diff --git a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java index d5e600f9..6f9dca2f 100644 --- a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java +++ b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java @@ -167,5 +167,5 @@ public interface Constant { /** * 版本号 */ - public static final String VERSION = "0.3.8"; + public static final String VERSION = "0.3.9"; } \ No newline at end of file diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/controller/OTAController.java b/main/manager-api/src/main/java/xiaozhi/modules/device/controller/OTAController.java index 30f30b53..e18439a1 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/device/controller/OTAController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/device/controller/OTAController.java @@ -15,25 +15,29 @@ import org.springframework.web.bind.annotation.RestController; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; import xiaozhi.modules.device.dto.DeviceReportReqDTO; import xiaozhi.modules.device.dto.DeviceReportRespDTO; +import xiaozhi.modules.device.entity.DeviceEntity; import xiaozhi.modules.device.service.DeviceService; import xiaozhi.modules.device.utils.NetworkUtil; @Tag(name = "设备管理", description = "OTA 相关接口") +@Slf4j @RestController @RequiredArgsConstructor @RequestMapping("/ota/") public class OTAController { private final DeviceService deviceService; - @Operation(summary = "检查 OTA 版本和设备激活状态") + @Operation(summary = "OTA版本和设备激活状态检查") @PostMapping public ResponseEntity checkOTAVersion( @RequestBody DeviceReportReqDTO deviceReportReqDTO, @@ -54,9 +58,25 @@ public class OTAController { return createResponse(deviceService.checkDeviceActive(macAddress, clientId, deviceReportReqDTO)); } + @Operation(summary = "设备快速检查激活状态") + @PostMapping("activate") + public ResponseEntity activateDevice( + @Parameter(name = "Device-Id", description = "设备唯一标识", required = true, in = ParameterIn.HEADER) @RequestHeader("Device-Id") String deviceId, + @Parameter(name = "Client-Id", description = "客户端标识", required = false, in = ParameterIn.HEADER) @RequestHeader(value = "Client-Id", required = false) String clientId) { + if (StringUtils.isBlank(deviceId)) { + return ResponseEntity.status(202).build(); + } + DeviceEntity device = deviceService.getDeviceByMacAddress(deviceId); + if (device == null) { + return ResponseEntity.status(202).build(); + } + return ResponseEntity.ok("success"); + } + @GetMapping - public ResponseEntity getOTAPrompt() { - return createResponse(DeviceReportRespDTO.createError("请提交正确的ota参数")); + @Hidden + public ResponseEntity getOTA() { + return ResponseEntity.ok("OTA接口运行正常"); } @SneakyThrows diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/dto/DeviceReportRespDTO.java b/main/manager-api/src/main/java/xiaozhi/modules/device/dto/DeviceReportRespDTO.java index 9f93a9b7..d7e10792 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/device/dto/DeviceReportRespDTO.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/device/dto/DeviceReportRespDTO.java @@ -44,6 +44,8 @@ public class DeviceReportRespDTO { @Schema(description = "激活码信息: 激活地址") private String message; + @Schema(description = "挑战码") + private String challenge; } @Getter diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java index 2f90a102..aef15749 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java @@ -251,10 +251,12 @@ public class DeviceServiceImpl extends BaseServiceImpl if (StringUtils.isNotBlank(cachedCode)) { code.setCode(cachedCode); code.setMessage(frontedUrl + "\n" + cachedCode); + code.setChallenge(deviceId); } else { String newCode = RandomUtil.randomNumbers(6); code.setCode(newCode); code.setMessage(frontedUrl + "\n" + newCode); + code.setChallenge(deviceId); Map dataMap = new HashMap<>(); dataMap.put("id", deviceId); diff --git a/main/xiaozhi-server/config/logger.py b/main/xiaozhi-server/config/logger.py index 519bc73f..5e933584 100644 --- a/main/xiaozhi-server/config/logger.py +++ b/main/xiaozhi-server/config/logger.py @@ -3,7 +3,7 @@ import sys from loguru import logger from config.config_loader import load_config -SERVER_VERSION = "0.3.8" +SERVER_VERSION = "0.3.9" def get_module_abbreviation(module_name, module_dict):