远程升级

This commit is contained in:
attiya 2025-11-18 14:03:15 +08:00
parent 181edd0c77
commit b5fcac8a04
6 changed files with 40 additions and 7 deletions

View File

@ -1,5 +1,6 @@
package com.cdzy.operations.controller; package com.cdzy.operations.controller;
import com.cdzy.common.enums.Message;
import com.cdzy.common.model.request.PageParam; import com.cdzy.common.model.request.PageParam;
import com.cdzy.common.model.response.JsonResult; import com.cdzy.common.model.response.JsonResult;
import com.cdzy.operations.enums.CommandType; import com.cdzy.operations.enums.CommandType;
@ -13,6 +14,7 @@ import jakarta.annotation.Resource;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
@ -174,5 +176,15 @@ public class EbikeEcuInfoController {
return JsonResult.success(result); return JsonResult.success(result);
} }
/**
* 上传远程升级文件
* @param file 文件
* @return 操作结果
*/
@GetMapping("upload")
public JsonResult<?> upload(@RequestParam("file") MultipartFile file) throws Exception {
String result = ebikeEcuInfoService.upload(file);
return JsonResult.success(Message.SUCCESS,result);
}
} }

View File

@ -5,6 +5,7 @@ import com.cdzy.operations.model.vo.EbikeEcuInfoBatchVo;
import com.cdzy.operations.model.vo.EbikeEcuInfoVo; import com.cdzy.operations.model.vo.EbikeEcuInfoVo;
import com.mybatisflex.core.service.IService; import com.mybatisflex.core.service.IService;
import com.cdzy.operations.model.entity.EbikeEcuInfo; import com.cdzy.operations.model.entity.EbikeEcuInfo;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
@ -131,4 +132,9 @@ public interface EbikeEcuInfoService extends IService<EbikeEcuInfo> {
*/ */
boolean upgrade(EbikeEcuInfo ebikeEcuInfo,String url); boolean upgrade(EbikeEcuInfo ebikeEcuInfo,String url);
/**
* 上传远程升级
* @param file 文件对象
*/
String upload(MultipartFile file) throws Exception;
} }

View File

@ -55,7 +55,7 @@ public class EbikeBatteryInfoServiceImpl extends ServiceImpl<EbikeBatteryInfoMap
EbikeBatteryInfo batteryInfo = EbikeBatteryInfo.builder() EbikeBatteryInfo batteryInfo = EbikeBatteryInfo.builder()
.operatorId(operatorId) .operatorId(operatorId)
.batteryCode(code) .batteryCode(code)
.batteryQr(minioUtil.getQrShowUrl(batteryUrl+code +batterySuffix)) .batteryQr(minioUtil.getShowUrl(batteryUrl+code +batterySuffix))
.createdBy(StpUtil.getLoginIdAsLong()) .createdBy(StpUtil.getLoginIdAsLong())
.build(); .build();
batteryInfos.add(batteryInfo); batteryInfos.add(batteryInfo);

View File

@ -55,7 +55,7 @@ public class EbikeBikeQrServiceImpl extends ServiceImpl<EbikeBikeQrMapper, Ebike
EbikeBikeQr ebikeBikeQr = EbikeBikeQr.builder() EbikeBikeQr ebikeBikeQr = EbikeBikeQr.builder()
.operatorId(operatorId) .operatorId(operatorId)
.bikeQrCode(code) .bikeQrCode(code)
.bikeQr(minioUtil.getQrShowUrl(bikeUrl+code +bikeSuffix)) .bikeQr(minioUtil.getShowUrl(bikeUrl+code +bikeSuffix))
.createdBy(StpUtil.getLoginIdAsLong()) .createdBy(StpUtil.getLoginIdAsLong())
.status(BikeQrStatus.UN_BIND) .status(BikeQrStatus.UN_BIND)
.build(); .build();

View File

@ -10,6 +10,7 @@ import com.cdzy.operations.model.vo.EbikeEcuInfoBatchVo;
import com.cdzy.operations.model.vo.EbikeEcuInfoVo; import com.cdzy.operations.model.vo.EbikeEcuInfoVo;
import com.cdzy.operations.service.CommandService; import com.cdzy.operations.service.CommandService;
import com.cdzy.operations.utils.EmqxApiClient; import com.cdzy.operations.utils.EmqxApiClient;
import com.cdzy.operations.utils.MinioUtil;
import com.mybatisflex.core.query.QueryMethods; import com.mybatisflex.core.query.QueryMethods;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.util.StringUtil; import com.mybatisflex.core.util.StringUtil;
@ -19,10 +20,12 @@ import com.cdzy.operations.mapper.EbikeEcuInfoMapper;
import com.cdzy.operations.service.EbikeEcuInfoService; import com.cdzy.operations.service.EbikeEcuInfoService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.UUID;
import static com.cdzy.operations.model.entity.table.EbikeBikeInfoTableDef.EBIKE_BIKE_INFO; import static com.cdzy.operations.model.entity.table.EbikeBikeInfoTableDef.EBIKE_BIKE_INFO;
import static com.cdzy.operations.model.entity.table.EbikeEcuInfoTableDef.EBIKE_ECU_INFO; import static com.cdzy.operations.model.entity.table.EbikeEcuInfoTableDef.EBIKE_ECU_INFO;
@ -45,6 +48,13 @@ public class EbikeEcuInfoServiceImpl extends ServiceImpl<EbikeEcuInfoMapper, Ebi
@Resource @Resource
private CommandService commandService; private CommandService commandService;
@Resource
private MinioUtil minioUtil;
private static final String upgradeUrl = "/upgrade-file/";
private static final String upgradeSuffix = ".bin";
@Override @Override
public void saveEcu(EbikeEcuInfoVo ebikeEcuInfo) { public void saveEcu(EbikeEcuInfoVo ebikeEcuInfo) {
EbikeEcuInfo ebikeEcuInfoEntity = EbikeEcuInfo.builder() EbikeEcuInfo ebikeEcuInfoEntity = EbikeEcuInfo.builder()
@ -169,6 +179,14 @@ public class EbikeEcuInfoServiceImpl extends ServiceImpl<EbikeEcuInfoMapper, Ebi
return commandService.upgrade(ebikeEcuInfo, url); return commandService.upgrade(ebikeEcuInfo, url);
} }
@Override
public String upload(MultipartFile file) throws Exception {
String fileName = UUID.randomUUID().toString().replace("-", "");
String objectName = upgradeUrl + fileName + upgradeSuffix;
minioUtil.uploadFile(file.getInputStream() , objectName);
return minioUtil.getShowUrl(objectName);
}
@Override @Override
public boolean checkSnOrBikeCode(String ecuSn, String bikeCode) { public boolean checkSnOrBikeCode(String ecuSn, String bikeCode) {
try { try {

View File

@ -25,8 +25,6 @@ public class MinioUtil {
@Setter @Setter
private static String bucketName; private static String bucketName;
private static final String bikeUrl = "/bike-qr/";
@Resource @Resource
private MinioClient minioClient; private MinioClient minioClient;
@ -65,8 +63,7 @@ public class MinioUtil {
*/ */
public void uploadFile(InputStream inputStream, String objectName) throws Exception{ public void uploadFile(InputStream inputStream, String objectName) throws Exception{
//上传文件 //上传文件
minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(objectName) uploadFile(inputStream, bucketName, objectName);
.stream(inputStream,-1,Integer.MAX_VALUE).build());
} }
/** /**
@ -275,7 +272,7 @@ public class MinioUtil {
* 获取二维码展示路径 * 获取二维码展示路径
* @param objectName 文件名称 * @param objectName 文件名称
*/ */
public String getQrShowUrl(String objectName){ public String getShowUrl(String objectName){
return baseUrl+objectName; return baseUrl+objectName;
} }