查看当前版本和最新版本

This commit is contained in:
zhangzhicheng 2024-10-28 21:20:47 +08:00
parent 5baf139f6b
commit 6cc7de3fb2
5 changed files with 95 additions and 2 deletions

View File

@ -101,6 +101,17 @@ public class EqDeviceController extends BaseController {
return R.ok(eqEquipmentService.ota(equipmentCode)); return R.ok(eqEquipmentService.ota(equipmentCode));
} }
/**
* 查看当前版本和最新版本
* @param equipmentCode
* @return
*/
@GetMapping("/otaVersion")
public R<EqVersionBo> otaVersion(String equipmentCode){
if (equipmentCode == null) throw new ServiceException("设备编码不能为空");
return R.ok(eqEquipmentService.otaVersion(equipmentCode));
}
/** /**
* 控制设备 灯光 控制 * 控制设备 灯光 控制
* 传参设备编码 * 传参设备编码

View File

@ -0,0 +1,35 @@
package org.dromara.web.domain.bo;
import lombok.Data;
import java.io.Serializable;
/**
* @ClassName : EqVersionBo
* @Author : ZZC
* @Date : 2024/10/28 18:52
* @Discription : 版本信息
**/
@Data
public class EqVersionBo implements Serializable {
/**
* 是否需要更新
*/
private boolean isNeedUpdate;
/**
* 当前版本
*/
private String currentVersion;
/**
* 最新版本
*/
private String latestVersion;
/**
* 当前版本id
*/
private String currentVersionId;
/**
* 最新版本id
*/
private String latestVersionId;
}

View File

@ -108,4 +108,5 @@ public interface IEqEquipmentService {
EqEquipmentStatisticsVo selectEquipmentStatistic(Integer type, String startTime, String endTime); EqEquipmentStatisticsVo selectEquipmentStatistic(Integer type, String startTime, String endTime);
String ota(String equipmentCode); String ota(String equipmentCode);
public EqVersionBo otaVersion(String equipmentCode);
} }

View File

@ -220,7 +220,7 @@ public class IotService {
* @param deviceProfileId * @param deviceProfileId
* @return * @return
*/ */
public DeviceOtaPackages httpOtaPackages(String deviceProfileId){ public DeviceOtaPackages httpOtaLastPackages(String deviceProfileId){
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
map.put("deviceProfileId",deviceProfileId); map.put("deviceProfileId",deviceProfileId);
String send = getSend(CommonYmlConfig.URL_IOT_ota_otaPackages, map); String send = getSend(CommonYmlConfig.URL_IOT_ota_otaPackages, map);
@ -230,6 +230,19 @@ public class IotService {
return deviceDto; return deviceDto;
} }
/**
* 获取所有资源包
* @param deviceProfileId
* @return
*/
public List<DeviceOtaPackages> httpOtaPackages(String deviceProfileId){
Map<String, String> map = new HashMap<>();
map.put("deviceProfileId",deviceProfileId);
String send = getSend(CommonYmlConfig.URL_IOT_ota_otaPackages, map);
List<DeviceOtaPackages> deviceOtaPackages = JSON.parseArray(send, DeviceOtaPackages.class);
return deviceOtaPackages;
}
/** /**
* 查询设备凭证 * 查询设备凭证
* @param deviceId * @param deviceId

View File

@ -397,7 +397,7 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
DeviceDto.DeviceProfileId deviceProfileId = deviceDto.getDeviceProfileId(); DeviceDto.DeviceProfileId deviceProfileId = deviceDto.getDeviceProfileId();
String profileIdId = deviceProfileId.getId();//获取配置id String profileIdId = deviceProfileId.getId();//获取配置id
//2.查询OTA资源包 //2.查询OTA资源包
DeviceOtaPackages deviceOtaPackages = iotService.httpOtaPackages(profileIdId); DeviceOtaPackages deviceOtaPackages = iotService.httpOtaLastPackages(profileIdId);
//3.查询设备凭证 //3.查询设备凭证
DeviceCredentials deviceCredentials = iotService.httpCredentials(equipmentCode); DeviceCredentials deviceCredentials = iotService.httpCredentials(equipmentCode);
String assesToken = deviceCredentials.getCredentialsId(); String assesToken = deviceCredentials.getCredentialsId();
@ -407,6 +407,39 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
return iotService.httpPostUpdateOta(assesToken,deviceDto); return iotService.httpPostUpdateOta(assesToken,deviceDto);
} }
@Override
public EqVersionBo otaVersion(String equipmentCode) {
EqVersionBo eqVersionBo = new EqVersionBo();
//1.从iot平台设置用户绑定 并获取设备信息
DeviceDto deviceDto = iotService.httpDeviceGetSend(equipmentCode);
DeviceDto.DeviceProfileId deviceProfileId = deviceDto.getDeviceProfileId();
String profileIdId = deviceProfileId.getId();//获取配置id
//2.查询OTA资源包
// DeviceOtaPackages deviceOtaPackages = iotService.httpOtaLastPackages(profileIdId);
List<DeviceOtaPackages> list = iotService.httpOtaPackages(profileIdId);
DeviceOtaPackages lastOtaPackage = list.get(0);
DeviceOtaPackages currentOtaPackage = null;
//设备包版本id
String currentPackageId = deviceDto.getFirmwareId().getId();
String lastPackageId = lastOtaPackage.getId().getId();
for (DeviceOtaPackages deviceOtaPackages : list) {
if (deviceOtaPackages.getId().getId().equals(currentPackageId))
currentOtaPackage = deviceOtaPackages;
}
if (currentOtaPackage == null) throw new RuntimeException("当前设备版本不存在");
if (currentPackageId.equals(lastPackageId)){
eqVersionBo.setNeedUpdate(false);
eqVersionBo.setCurrentVersionId(currentPackageId);
eqVersionBo.setCurrentVersion(currentOtaPackage.getVersion());
}else {
eqVersionBo.setNeedUpdate(true);
eqVersionBo.setCurrentVersionId(currentPackageId);
eqVersionBo.setCurrentVersion(currentOtaPackage.getVersion());
eqVersionBo.setLatestVersionId(lastPackageId);
eqVersionBo.setLatestVersion(lastOtaPackage.getVersion());
}
return eqVersionBo;
}
/** /**
* 检查要查询的userId 是否为分享给当前用户的userId * 检查要查询的userId 是否为分享给当前用户的userId