From 66e1298d2ae4079efa43cba51e376a8c35c8e969 Mon Sep 17 00:00:00 2001 From: attiya <2413103649@qq.com> Date: Fri, 29 Aug 2025 15:47:01 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=90=E8=90=A5=E5=8C=BA=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E8=BD=A6=E8=BE=86=E7=BB=91=E5=AE=9A=E6=83=85?= =?UTF-8?q?=E5=86=B5=E3=80=81JsonResult=E7=B1=BB=E6=89=A9=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cdzy/common/model/JsonResult.java | 8 ++++++ .../feign/clients/MaintenanceFeignClient.java | 9 ++++++ .../controller/EbikeBikeInfoController.java | 28 ++++++++++++++----- .../impl/EbikeOperationRegionServiceImpl.java | 18 +++++++++--- 4 files changed, 52 insertions(+), 11 deletions(-) diff --git a/ebike-common/src/main/java/com/cdzy/common/model/JsonResult.java b/ebike-common/src/main/java/com/cdzy/common/model/JsonResult.java index eae673b9..dd56059a 100644 --- a/ebike-common/src/main/java/com/cdzy/common/model/JsonResult.java +++ b/ebike-common/src/main/java/com/cdzy/common/model/JsonResult.java @@ -71,4 +71,12 @@ public class JsonResult implements Serializable { public static JsonResult failed(String msg, Object data) { return new JsonResult<>(Code.FAILED, msg, data); } + + public boolean isSuccess() { + return this.code == Code.SUCCESS; + } + + public boolean isFailed() { + return this.code != Code.SUCCESS; + } } \ No newline at end of file diff --git a/ebike-feign/src/main/java/com/ebike/feign/clients/MaintenanceFeignClient.java b/ebike-feign/src/main/java/com/ebike/feign/clients/MaintenanceFeignClient.java index 3092b119..5b8d8a92 100644 --- a/ebike-feign/src/main/java/com/ebike/feign/clients/MaintenanceFeignClient.java +++ b/ebike-feign/src/main/java/com/ebike/feign/clients/MaintenanceFeignClient.java @@ -2,6 +2,7 @@ package com.ebike.feign.clients; import com.cdzy.common.model.EcuSnDto; import com.cdzy.common.model.JsonResult; +import com.cdzy.common.model.ReqBatchRegionDto; import com.ebike.feign.component.FeignTokenInterceptor; import com.ebike.feign.config.ExampleFeignConfiguration; import com.ebike.feign.model.res.ReqEcuSnDto; @@ -152,4 +153,12 @@ public interface MaintenanceFeignClient { */ @GetMapping("ebikeBikeInfo/used") JsonResult used(@RequestParam(name = "bikeId") String bikeId); + + /** + * 查看运营区下是否有车辆(返回有车辆的运营区id + * @param dto 运营区id + * @return 结果 + */ + @PostMapping("ebikeBikeInfo/getRegionIdsByBikes") + JsonResult> getRegionIdsByBikes(@RequestBody ReqBatchRegionDto dto); } diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/controller/EbikeBikeInfoController.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/controller/EbikeBikeInfoController.java index 4bb3e432..d21c92b2 100644 --- a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/controller/EbikeBikeInfoController.java +++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/controller/EbikeBikeInfoController.java @@ -1,10 +1,7 @@ package com.cdzy.ebikemaintenance.controller; import com.alibaba.fastjson2.JSONObject; -import com.cdzy.common.model.EcuSnDto; -import com.cdzy.common.model.JsonResult; -import com.cdzy.common.model.PageParam; -import com.cdzy.common.model.ResGPSDto; +import com.cdzy.common.model.*; import com.cdzy.common.utils.ConvertUtil; import com.cdzy.ebikemaintenance.model.dto.request.*; import com.cdzy.ebikemaintenance.model.dto.response.*; @@ -33,6 +30,7 @@ import java.time.LocalDateTime; import java.util.*; import static com.cdzy.ebikemaintenance.model.pojo.table.EbikeBatteryInfoTableDef.EBIKE_BATTERY_INFO; +import static com.cdzy.ebikemaintenance.model.pojo.table.EbikeBikeInfoTableDef.EBIKE_BIKE_INFO; import static com.cdzy.ebikemaintenance.model.pojo.table.EbikeHelmetInfoTableDef.EBIKE_HELMET_INFO; /** @@ -396,7 +394,7 @@ public class EbikeBikeInfoController { String fileName = multipartFile.getOriginalFilename(); String contentType = multipartFile.getContentType(); String fileUniqueKey = UUID.randomUUID() + fileName.substring(fileName.lastIndexOf(".")); - minioUtil.uploadFile(inputStream, MinioUtil.BUCKET_FAULT, fileUniqueKey,contentType); + minioUtil.uploadFile(inputStream, MinioUtil.BUCKET_FAULT, fileUniqueKey, contentType); String fileUrl = minioUtil.getFileUrl(MinioUtil.BUCKET_FAULT, fileUniqueKey); ResEbikeFaultReportFileDto resEbikeFaultReportFileDto = new ResEbikeFaultReportFileDto(); resEbikeFaultReportFileDto.setUrl(fileUrl); @@ -920,7 +918,6 @@ public class EbikeBikeInfoController { } - /** * 根据车辆id将车辆设置为待使用状态 * @@ -945,7 +942,24 @@ public class EbikeBikeInfoController { */ @GetMapping("getRideRecord") JsonResult getRideRecord(@RequestParam("bikeId") String bikeId, PageParam pageParam) { - JsonResult> rideRecord = ordersFeignClient.getRideRecord(bikeId,pageParam.getPageNum(),pageParam.getPageSize()); + JsonResult> rideRecord = ordersFeignClient.getRideRecord(bikeId, pageParam.getPageNum(), pageParam.getPageSize()); return JsonResult.success(rideRecord.getData()); } + + + /** + * 删除运营区域前检查是否有绑定车辆 + * + * @param dto 车辆id + * @return 结果 + */ + @GetMapping("getRegionIdsByBikes") + JsonResult getRegionIdsByBikes(@RequestBody ReqBatchRegionDto dto) { + QueryWrapper queryWrapper = QueryWrapper.create() + .select(EBIKE_BIKE_INFO.REGIN_ID) + .where(EBIKE_BIKE_INFO.REGIN_ID.in(dto.getIds())) + .groupBy(EBIKE_BIKE_INFO.REGIN_ID); + List list = ebikeBikeInfoService.listAs(queryWrapper, Long.class); + return JsonResult.success(list); + } } diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/impl/EbikeOperationRegionServiceImpl.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/impl/EbikeOperationRegionServiceImpl.java index dfa8af6a..be823624 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/impl/EbikeOperationRegionServiceImpl.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/service/impl/EbikeOperationRegionServiceImpl.java @@ -135,17 +135,27 @@ public class EbikeOperationRegionServiceImpl extends ServiceImpl ebikeOperationRegions = this.mapper.selectListByIds(delRegionDto.getIds()); + JsonResult> result = maintenanceFeignClient.getRegionIdsByBikes(delRegionDto); + if (result.isFailed()){ + throw new RuntimeException("检查车辆信息失败"); + } + List list = result.getData(); + List ids = delRegionDto.getIds(); + ids.removeAll(list); + if (ids.isEmpty()) { + throw new RuntimeException("当前区域均有车辆绑定,不可删除"); + } + List ebikeOperationRegions = this.mapper.selectListByIds(ids); //做不同运营商考虑,通过循环进行删除 ebikeOperationRegions.forEach(region -> delPoints(region.getOrgId(), region.getOperationRegionId()) ); QueryWrapper queryWrapper = QueryWrapper.create() - .where(EBIKE_SITE_REGION.OPERATION_REGION_ID.in(delRegionDto.getIds())); + .where(EBIKE_STAFF_REGION.REGION_ID.in(ids)); staffRegionMapper.deleteByQuery(queryWrapper); //站点与运营商解耦仅与运营区有关,做批量删除 - redisUtil.deleteStieByOperationIds(delRegionDto.getIds()); - this.mapper.deleteBatchByIds(delRegionDto.getIds()); + redisUtil.deleteStieByOperationIds(ids); + this.mapper.deleteBatchByIds(ids); } @Override