From 6df85e7ca8476b631b4f5e843fc4597cef91d6c7 Mon Sep 17 00:00:00 2001 From: jkcdev Date: Wed, 21 May 2025 15:46:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=80=E6=AC=BE=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E8=AE=A2=E5=8D=95=E8=AF=A6=E6=83=85=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/clients/MaintenanceFeignClient.java | 14 +++- .../feign/clients/OperateFeignClient.java | 10 +++ .../feign/model/res/ReqEbikeSiteQuery.java | 35 +++++++++ .../feign/model/rsp/EbikeBikeBaseInfo.java | 74 +++++++++++++++++++ .../ebike/feign/model/rsp/EbikeSiteInfo.java | 26 +++++++ .../controller/EbikeBikeInfoController.java | 18 +++++ .../controller/EbikeTrackingController.java | 30 ++++++++ .../controller/EbikeWxPaymentController.java | 12 +++ .../cdzy/payment/model/dto/BorrowingInfo.java | 2 + .../com/cdzy/payment/model/dto/OrderInfo.java | 6 +- .../cdzy/payment/model/dto/ReturnInfo.java | 1 + .../payment/service/EbikePaymentService.java | 10 +++ .../cdzy/payment/service/WxPayService.java | 8 ++ .../service/impl/EbikePaymentServiceImpl.java | 9 +++ .../service/impl/WxPayServiceImpl.java | 5 ++ 15 files changed, 255 insertions(+), 5 deletions(-) create mode 100644 ebike-feign/src/main/java/com/ebike/feign/model/res/ReqEbikeSiteQuery.java create mode 100644 ebike-feign/src/main/java/com/ebike/feign/model/rsp/EbikeBikeBaseInfo.java create mode 100644 ebike-feign/src/main/java/com/ebike/feign/model/rsp/EbikeSiteInfo.java 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 32296df6..5a7c41e5 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 @@ -6,10 +6,7 @@ import com.ebike.feign.model.res.ReqVehicleStatusUpdateDto; import com.ebike.feign.model.rsp.FeignEbikeBikeInfoDto; import com.ebike.feign.model.rsp.RspBikeInfo; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -38,6 +35,15 @@ public interface MaintenanceFeignClient { @PostMapping("ebikeBikeInfo/getEbikeInfoByCode") JsonResult getEbikeInfoByCode(@RequestParam(name = "ebikeCode") String ebikeCode); + /** + * 根据车辆编号获取车辆基本信息 + * + * @param bikeCode 车辆编号 + * @return + */ + @GetMapping("ebikeBikeInfo/getBikeBaseInfoByCode/{bikeCode}") + JsonResult getBikeBaseInfoByCode(@PathVariable("bikeCode") String bikeCode); + /** * 保存头盔信息 * diff --git a/ebike-feign/src/main/java/com/ebike/feign/clients/OperateFeignClient.java b/ebike-feign/src/main/java/com/ebike/feign/clients/OperateFeignClient.java index 26ab81bd..b344286e 100644 --- a/ebike-feign/src/main/java/com/ebike/feign/clients/OperateFeignClient.java +++ b/ebike-feign/src/main/java/com/ebike/feign/clients/OperateFeignClient.java @@ -3,6 +3,7 @@ package com.ebike.feign.clients; import com.cdzy.common.model.EbikeTracking; import com.cdzy.common.model.JsonResult; import com.cdzy.common.model.ReqBatchRegionDto; +import com.ebike.feign.model.res.ReqEbikeSiteQuery; import com.ebike.feign.model.res.ReqUserOperateDto; import com.ebike.feign.model.res.ResFeignEbikeSysRcostsetDto; import com.ebike.feign.model.rsp.FeignEbikeRegionDto; @@ -143,4 +144,13 @@ public interface OperateFeignClient { @PostMapping("ebikeRegion/operationRegionIdFilter") JsonResult> operationRegionIdFilter(@RequestBody ReqBatchRegionDto reqBatchRegionDto); + /** + * 查询车辆所在站点。 + * + * @param siteQuery 查询参数 + * @return + */ + @PostMapping("ebikeTracking/querySite") + JsonResult querySite(@RequestBody ReqEbikeSiteQuery siteQuery); + } diff --git a/ebike-feign/src/main/java/com/ebike/feign/model/res/ReqEbikeSiteQuery.java b/ebike-feign/src/main/java/com/ebike/feign/model/res/ReqEbikeSiteQuery.java new file mode 100644 index 00000000..e03d566d --- /dev/null +++ b/ebike-feign/src/main/java/com/ebike/feign/model/res/ReqEbikeSiteQuery.java @@ -0,0 +1,35 @@ +package com.ebike.feign.model.res; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 车辆位于站点查询 请求参数。 + * + * @author dingchao + * @date 2025/5/21 + * @modified by: + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ReqEbikeSiteQuery implements Serializable { + + /** + * 运营区域ID + */ + private long areaId; + /** + * 经度 + */ + private Double longitude; + + /** + * 纬度 + */ + private Double latitude; + +} diff --git a/ebike-feign/src/main/java/com/ebike/feign/model/rsp/EbikeBikeBaseInfo.java b/ebike-feign/src/main/java/com/ebike/feign/model/rsp/EbikeBikeBaseInfo.java new file mode 100644 index 00000000..e3356ec3 --- /dev/null +++ b/ebike-feign/src/main/java/com/ebike/feign/model/rsp/EbikeBikeBaseInfo.java @@ -0,0 +1,74 @@ +package com.ebike.feign.model.rsp; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 车辆基本信息 实体类。 + * + * @author dingchao + * @since 2025-05-21 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class EbikeBikeBaseInfo implements Serializable { + + /** + * 车辆ID + */ + private String bikeId; + + /** + * 区域ID + */ + private String reginId; + + /** + * 中控ID + */ + private String ecuId; + + /** + * 电池ID + */ + private String batteryId; + + /** + * 头盔ID + */ + private String helmetId; + + /** + * 状态 + */ + private String state; + + /** + * 车辆编号 + */ + private String bikeCode; + + /** + * 使用状态 + */ + private Integer usageStatus; + + /** + * 备注信息 + */ + private String remarks; + + /** + * 车辆型号 + */ + private String bikeModel; + + /** + * 车牌号 + */ + private String bikeNumber; +} diff --git a/ebike-feign/src/main/java/com/ebike/feign/model/rsp/EbikeSiteInfo.java b/ebike-feign/src/main/java/com/ebike/feign/model/rsp/EbikeSiteInfo.java new file mode 100644 index 00000000..77b8d5b1 --- /dev/null +++ b/ebike-feign/src/main/java/com/ebike/feign/model/rsp/EbikeSiteInfo.java @@ -0,0 +1,26 @@ +package com.ebike.feign.model.rsp; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 车辆位于站点查询 响应参数。 + * + * @author dingchao + * @date 2025/5/21 + * @modified by: + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class EbikeSiteInfo { + /** + * 站点ID + */ + private Long siteId; + /** + * 站点名称 + */ + private String siteName; +} 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 7beb52ed..6b647aab 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 @@ -11,6 +11,7 @@ import com.cdzy.common.utils.ConvertUtil; import com.cdzy.ebikemaintenance.utils.MinioUtil; import com.cdzy.ebikemaintenance.utils.RedisUtil; import com.ebike.feign.model.res.ReqEcuSnDto; +import com.ebike.feign.model.rsp.EbikeBikeBaseInfo; import com.ebike.feign.model.rsp.RspBikeInfo; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryWrapper; @@ -141,6 +142,23 @@ public class EbikeBikeInfoController { } + /** + * 根据车辆编号获取车辆基本信息 + * + * @param bikeCode 车辆编号 + * @return + */ + @GetMapping("getBikeBaseInfoByCode/{bikeCode}") + public JsonResult getBikeBaseInfoByCode(@PathVariable("bikeCode") String bikeCode) { + EbikeBikeInfo ebikeBikeInfo = ebikeBikeInfoService.getByBikeCode(bikeCode); + if (ebikeBikeInfo == null) { + return JsonResult.failed("获取车辆基本信息失败"); + } + EbikeBikeBaseInfo bikeBaseInfo = new EbikeBikeBaseInfo(); + BeanUtils.copyProperties(ebikeBikeInfo, bikeBaseInfo); + return JsonResult.success(bikeBaseInfo); + } + /** * 根据车辆编号获取ecuSn * diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeTrackingController.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeTrackingController.java index 88f88641..496dbcc2 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeTrackingController.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeTrackingController.java @@ -2,9 +2,14 @@ package com.cdzy.ebikeoperate.controller; import com.cdzy.common.model.EbikeTracking; import com.cdzy.common.model.JsonResult; +import com.cdzy.ebikeoperate.model.pojo.EbikeSiteRegion; +import com.cdzy.ebikeoperate.service.EbikeSiteRegionService; +import com.cdzy.ebikeoperate.utils.RedisUtil; +import com.ebike.feign.model.res.ReqEbikeSiteQuery; import com.cdzy.ebikeoperate.model.dto.request.ReqEbikeTrackingDto; import com.cdzy.ebikeoperate.model.dto.response.EbikeTrackingDto; import com.cdzy.ebikeoperate.service.EbikeTrackingService; +import com.ebike.feign.model.rsp.EbikeSiteInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -25,6 +30,10 @@ public class EbikeTrackingController { @Autowired private EbikeTrackingService ebikeTrackingService; + @Autowired + private RedisUtil redisUtil; + @Autowired + private EbikeSiteRegionService ebikeSiteRegionService; /** * 保存车辆轨迹。 @@ -52,4 +61,25 @@ public class EbikeTrackingController { List result = ebikeTrackingService.query(reqEbikeTrackingDto); return JsonResult.success(result); } + + /** + * 查询车辆所在站点。 + * + * @param siteQuery 查询参数 + * @return + */ + @PostMapping("querySite") + public JsonResult querySite(@RequestBody ReqEbikeSiteQuery siteQuery) { + EbikeSiteInfo siteInfo = new EbikeSiteInfo(); + Long siteId = redisUtil.isPointInSiteWithSiteRegionId(siteQuery.getLongitude(), siteQuery.getLatitude(), siteQuery.getAreaId()); + siteInfo.setSiteId(siteId); + if (siteId == null) { + siteInfo.setSiteName( "不在站点范围内"); + } + EbikeSiteRegion siteRegion = ebikeSiteRegionService.getById(siteId); + if (siteRegion != null) { + siteInfo.setSiteName(siteRegion.getSiteName()); + } + return JsonResult.success(siteInfo); + } } diff --git a/ebike-payment/src/main/java/com/cdzy/payment/controller/EbikeWxPaymentController.java b/ebike-payment/src/main/java/com/cdzy/payment/controller/EbikeWxPaymentController.java index 275dc939..53982635 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/controller/EbikeWxPaymentController.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/controller/EbikeWxPaymentController.java @@ -157,4 +157,16 @@ public class EbikeWxPaymentController { ResOrderInfoDto r = wxPayService.queryRefundOrderById(refundId); return r == null?JsonResult.failed(String.format("退款单号{%s}查询订单详情失败", refundId)):JsonResult.success(r); } + + /** + * 退款申请订单详情 + * + * @param orderId 订单id + * @return 订单详情 + */ + @GetMapping("/refundApplyOrderDetail/{orderId}") + public JsonResult refundApplyOrderDetail(@PathVariable(name = "orderId") String orderId) { + ResRefundOrderInfo r = wxPayService.queryRefundApplyOrderById(orderId); + return r == null?JsonResult.failed(String.format("订单号{%s}查询订单详情失败", orderId)):JsonResult.success(r); + } } diff --git a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/BorrowingInfo.java b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/BorrowingInfo.java index 0d27349e..1632f4e1 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/BorrowingInfo.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/BorrowingInfo.java @@ -21,11 +21,13 @@ public class BorrowingInfo { /** * 借用站点 */ + // ebike_operate private String borrowSite; /** * 借用地址 */ + // 逆地理编码 private String borrowAddress; } diff --git a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/OrderInfo.java b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/OrderInfo.java index 3ed5d422..39b85d4c 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/OrderInfo.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/OrderInfo.java @@ -28,6 +28,7 @@ public class OrderInfo { /** * 运营区域 */ + // ebike_operate private String operate; /** @@ -36,7 +37,7 @@ public class OrderInfo { private String orderSource; /** - * 租借方式 + * 租借方式,微信支付分、押金 */ private String rentMethod; @@ -68,6 +69,7 @@ public class OrderInfo { /** * 轨迹里程 */ + // 逆地理编码 private String trajectoryMileage; /** @@ -93,10 +95,12 @@ public class OrderInfo { /** * 起始行政区域 */ + // 逆地理编码 private String startRegion; /** * 结束行政区域 */ + // 逆地理编码 private String endRegion; } diff --git a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ReturnInfo.java b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ReturnInfo.java index e7631ea7..659a9ab4 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ReturnInfo.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/model/dto/ReturnInfo.java @@ -26,6 +26,7 @@ public class ReturnInfo { /** * 归还地址 */ + // 逆地理编码 private String returnAddress; } diff --git a/ebike-payment/src/main/java/com/cdzy/payment/service/EbikePaymentService.java b/ebike-payment/src/main/java/com/cdzy/payment/service/EbikePaymentService.java index e62ee604..2f00177e 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/service/EbikePaymentService.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/service/EbikePaymentService.java @@ -1,5 +1,7 @@ package com.cdzy.payment.service; +import com.cdzy.payment.model.dto.OrderDetailInfo; +import com.cdzy.payment.model.dto.ResOrderInfoDto; import com.mybatisflex.core.service.IService; import com.cdzy.payment.model.entity.EbikePayment; import com.wechat.pay.java.service.payments.model.Transaction; @@ -44,4 +46,12 @@ public interface EbikePaymentService extends IService { * @return */ EbikePayment getByOrderId(String orderId); + + /** + * 订单详情 + * + * @param orderId 退款id + * @return 订单详情 + */ + OrderDetailInfo getOrderDetail(String orderId); } diff --git a/ebike-payment/src/main/java/com/cdzy/payment/service/WxPayService.java b/ebike-payment/src/main/java/com/cdzy/payment/service/WxPayService.java index 25cb799e..88de36ae 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/service/WxPayService.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/service/WxPayService.java @@ -135,4 +135,12 @@ public interface WxPayService { * @return 退款详情 */ ResOrderInfoDto queryRefundOrderById(String refundId); + + /** + * 退款申请订单详情 + * + * @param orderId 订单id + * @return 退款申请详情 + */ + ResRefundOrderInfo queryRefundApplyOrderById(String orderId); } diff --git a/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikePaymentServiceImpl.java b/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikePaymentServiceImpl.java index 235649a6..f3712e1c 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikePaymentServiceImpl.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikePaymentServiceImpl.java @@ -1,5 +1,7 @@ package com.cdzy.payment.service.impl; +import com.cdzy.payment.model.dto.OrderDetailInfo; +import com.cdzy.payment.model.dto.ResOrderInfoDto; import com.cdzy.payment.model.enums.PayMethod; import com.cdzy.payment.utils.StringUtils; import com.ebike.feign.clients.OrdersFeignClient; @@ -81,6 +83,13 @@ public class EbikePaymentServiceImpl extends ServiceImpl