package com.zswl.dataservice.controller.hardware; import com.zswl.dataservice.model.iot.IotMainModel; import com.zswl.dataservice.model.mqtt.DeviceInfoAddParam; import com.zswl.dataservice.model.mqtt.DeviceInfoModel; import com.zswl.dataservice.model.mqtt.DeviceInfoSearchParam; import com.zswl.dataservice.model.mqtt.DeviceInfoUpdateRemark; import com.zswl.dataservice.service.mqtt.DeviceInfoService; import com.zswl.dataservice.utils.result.ResultContent; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.web.PageableDefault; import org.springframework.util.Assert; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 设备管理 服务 * * @author TRX * @date 2024/3/21 */ @RequestMapping("/device") @RestController @Validated @Tag(name = "设备管理") public class DeviceController { @Autowired DeviceInfoService deviceInfoService; @Operation(summary = "添加-编辑设备") @RequestMapping(value = "addDeviceInfo", method = {RequestMethod.POST}) public ResultContent addDeviceInfo(@RequestBody DeviceInfoAddParam param) { Assert.hasText(param.getDeviceId(), "设备ID不能为空"); Assert.hasText(param.getDeviceName(), "设备名称不能为空"); return deviceInfoService.addDeviceInfo(param); } @Operation(summary = "设备列表-分页查询") @RequestMapping(value = {"pageActivity"}, method = {RequestMethod.POST}) public ResultContent> pageActivity(@Parameter(hidden = true) @PageableDefault(page = 0, size = 10) Pageable pageable, @Parameter(required = false) DeviceInfoSearchParam param) { return deviceInfoService.pageDevice(pageable, param); } @Operation(summary = "删除设备") @RequestMapping(value = "deleteDeviceInfo", method = {RequestMethod.GET}) public ResultContent deleteDeviceInfo( @Parameter(name = "deviceId", description = "数据ID", example = "") @RequestParam("deviceId") String deviceId) { return deviceInfoService.deleteDeviceInfo(deviceId); } @Operation(summary = "查询设备") @RequestMapping(value = "getDeviceById", method = {RequestMethod.GET}) public ResultContent getDeviceById( @Parameter(name = "deviceId", description = "数据ID", example = "") @RequestParam("deviceId") String deviceId) { return deviceInfoService.getDeviceById(deviceId); } @Operation(summary = "编辑备注") @RequestMapping(value = "updateRemark", method = {RequestMethod.POST}) public ResultContent updateRemark(@RequestBody DeviceInfoUpdateRemark param) { Assert.hasText(param.getId(), "ID不能为空"); return deviceInfoService.updateRemark(param); } @Operation(summary = "编辑关联的模版") @RequestMapping(value = "updateIopTemplate", method = {RequestMethod.POST}) public ResultContent updateIopTemplate(@RequestBody DeviceInfoUpdateRemark param) { Assert.hasText(param.getId(), "ID不能为空"); return deviceInfoService.updateIopTemplate(param); } @Operation(summary = "启用-禁用 设备") @RequestMapping(value = "updateDeviceState", method = {RequestMethod.POST}) public ResultContent updateDeviceState(@RequestBody DeviceInfoUpdateRemark param) { Assert.hasText(param.getId(), "ID不能为空"); if (param.getState() != null) { return ResultContent.buildFail("state不能为空"); } return deviceInfoService.updateDeviceState(param); } @Operation(summary = "改变是否上传日志") @RequestMapping(value = "updateIsReportLogs", method = {RequestMethod.POST}) public ResultContent updateIsReportLogs(@RequestBody DeviceInfoUpdateRemark param) { Assert.hasText(param.getId(), "ID不能为空"); return deviceInfoService.updateIsReportLogs(param); } @Operation(summary = "ping设备") @RequestMapping(value = "testDevice", method = {RequestMethod.GET}) public ResultContent testDevice( @Parameter(name = "deviceId", description = "数据ID", example = "") @RequestParam("deviceId") String deviceId) { return deviceInfoService.testDevice(deviceId); } @Operation(summary = "物模型数据") @RequestMapping(value = "getDeviceIotMainData", method = {RequestMethod.GET}) public ResultContent> getDeviceIotMainData( @Parameter(name = "deviceId", description = "数据ID", example = "") @RequestParam("deviceId") String deviceId) { return deviceInfoService.getDeviceIotMain(deviceId); } }