diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/BatteryStationController.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/BatteryStationController.java index 33d8f27..522d46f 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/BatteryStationController.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/BatteryStationController.java @@ -3,6 +3,9 @@ package com.evotech.hd.cloud.controller; import java.util.List; import java.util.Map; +import com.evotech.hd.cloud.entity.request.BatterySwapRequest; +import com.evotech.hd.cloud.entity.request.BatterySwapResponse; +import com.evotech.hd.cloud.mqtt.message.handle.RequestMessageService; import org.springdoc.core.annotations.ParameterObject; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -26,6 +29,7 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; + @Tag(name = "换电站") @ApiSupport(order = 11) @RestController @@ -34,6 +38,8 @@ public class BatteryStationController { @Resource private BatteryStationService batteryStationService; + @Resource + private RequestMessageService pro; @Operation(summary = "增加") @PostMapping("/add") diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/order/OrderSwapBatteryController.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/order/OrderSwapBatteryController.java index 7efd4c0..6dfeb8b 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/order/OrderSwapBatteryController.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/order/OrderSwapBatteryController.java @@ -2,6 +2,8 @@ package com.evotech.hd.cloud.controller.order; import java.util.List; +import com.evotech.hd.cloud.entity.request.BatterySwapRequest; +import com.evotech.hd.cloud.entity.request.BatterySwapResponse; import org.springdoc.core.annotations.ParameterObject; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -151,5 +153,18 @@ public class OrderSwapBatteryController { public Result cancelOrder(@NotNull String orderNo) { return orderSwapBatteryService.cancelOrder(orderNo, null); } + @Operation(summary = "开始换电") + @GetMapping("/start") + @ApiOperationSupport(order = 8) + public Result startSwap(@ParameterObject BatterySwapRequest battyreq ) { + // 创建换电请求对象 + orderSwapBatteryService.startSwap(battyreq); + // 通过 MQTT 发送开始换电的消息 + + //pro.request(); + + // 等待换电站的回复 + return null; + } } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/request/BatterySwapRequest.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/request/BatterySwapRequest.java new file mode 100644 index 0000000..b677281 --- /dev/null +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/request/BatterySwapRequest.java @@ -0,0 +1,9 @@ +package com.evotech.hd.cloud.entity.request; + +import lombok.Data; + +@Data +public class BatterySwapRequest { + private String userId; // 用户ID + private String plateNum; // 车牌号 +} diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/request/BatterySwapResponse.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/request/BatterySwapResponse.java new file mode 100644 index 0000000..edf1dfe --- /dev/null +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/request/BatterySwapResponse.java @@ -0,0 +1,13 @@ +package com.evotech.hd.cloud.entity.request; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(name = "开始换电接收参数") +public class BatterySwapResponse { + + private boolean success; // 是否成功 + + private String errorMessage; // 错误信息(如果有) +} diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/OrderSwapBatteryServiceImpl.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/OrderSwapBatteryServiceImpl.java index a7078a7..11a5222 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/OrderSwapBatteryServiceImpl.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/OrderSwapBatteryServiceImpl.java @@ -8,6 +8,8 @@ import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.evotech.hd.cloud.entity.request.BatterySwapRequest; +import com.evotech.hd.cloud.entity.request.BatterySwapResponse; import com.evotech.hd.common.redis.utils.RedisUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -450,4 +452,21 @@ public class OrderSwapBatteryServiceImpl implements OrderSwapBatteryService { } } + @Override + public Result startSwap(BatterySwapRequest battyreq) { + //获取用户wuid + String wuid = battyreq.getUserId(); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(OrderSwapBattery::getOrderPreUid,wuid) + .eq(OrderSwapBattery::getPlateNum,battyreq.getPlateNum()); + OrderSwapBattery orderSwap = orderSwapBatteryDao.selectOne(wrapper); + if (orderSwap!=null){ + //发送消息给站端 + + // + + } + return null; + } + }