From 85c4410b0948799a93f19f345b4ed18c253c89f3 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 03 九月 2024 10:26:33 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 137 ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 108 insertions(+), 29 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java index f405a62..0cdb324 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java @@ -1,4 +1,7 @@ package com.ruoyi.order.controller; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.google.common.collect.Lists; + import java.math.BigDecimal; import java.time.DayOfWeek; import java.time.LocalDate; @@ -28,6 +31,7 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.BasePage; import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient; import com.ruoyi.integration.api.model.ChargingOrderAndUploadRealTimeMonitoringDataDto; @@ -35,6 +39,8 @@ import com.ruoyi.order.api.model.*; import com.ruoyi.order.api.query.ChargingOrderQuery; import com.ruoyi.order.api.query.TChargingCountQuery; +import com.ruoyi.order.api.query.UploadRealTimeMonitoringDataQuery; +import com.ruoyi.order.api.vo.ChargingOrderInfoVO; import com.ruoyi.order.api.vo.ChargingOrderVO; import com.ruoyi.order.api.vo.TCharingOrderVO; import com.ruoyi.order.dto.GetMyChargingOrderList; @@ -48,6 +54,7 @@ import com.ruoyi.payment.api.feignClient.AliPaymentClient; import com.ruoyi.payment.api.feignClient.WxPaymentClient; import com.ruoyi.payment.api.vo.AliQueryOrder; +import com.ruoyi.payment.api.vo.WxRefundNotifyResp; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -64,6 +71,7 @@ import java.time.YearMonth; import java.time.temporal.ChronoUnit; import java.time.temporal.TemporalAdjusters; +import java.util.*; import java.util.*; import java.util.List; import java.util.stream.Collectors; @@ -87,20 +95,21 @@ private TokenService tokenService; @Autowired private TOrderEvaluateService orderEvaluateService; - + @Resource private WxPaymentClient wxPaymentClient; - + @Resource private RedisService redisService; - + @Resource private AliPaymentClient aliPaymentClient; @Resource private TShoppingOrderService shoppingOrderService; - - @Autowired + + @Resource private AppUserClient appUserClient; + @Resource private TVipOrderService vipOrderService; @@ -124,15 +133,20 @@ @Resource private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService; - - + @ResponseBody @PostMapping(value = "/pay/order/list") @ApiOperation(value = "列表", tags = {"管理后台-支付订单-订单信息"}) public R<PageInfo<PayOrderDto>> payOrderList(@RequestBody PayOrderQueryDto payOrderQueryDto) { return chargingOrderService.payOrderQuery(payOrderQueryDto); + } + @ResponseBody + @PostMapping(value = "/pay/order/refund") + @ApiOperation(value = "列表", tags = {"管理后台-支付订单-订单信息"}) + public R refund(@RequestBody PayOrderRefundDto payOrderQueryDto) { + return chargingOrderService.payRefund(payOrderQueryDto); } @ResponseBody @@ -186,11 +200,12 @@ // payOrderInfoDto3.setRefundAmount(new BigDecimal("0")); - } + + + } return R.ok(); } - @ResponseBody @GetMapping(value = "/pay/order/refund/detail") @ApiOperation(value = "退款信息", tags = {"管理后台-支付订单-订单信息"}) @@ -223,8 +238,10 @@ payOrderChargingInfo.setChargingName(data1.getName()); TChargingGun data2 = chargingGunClient.getChargingGunById(byId.getChargingGunId()).getData(); payOrderChargingInfo.setGunName(data2.getName()); - List<TAppUserCar> data3 = appUserCarClient.getCarByIds(Collections.singletonList(byId.getAppUserCarId())).getData(); - payOrderChargingInfo.setCarNum(data3.get(0).getLicensePlate()); + if (byId.getAppUserCarId()!=null) { + List<TAppUserCar> data3 = appUserCarClient.getCarByIds(Collections.singletonList(byId.getAppUserCarId())).getData(); + payOrderChargingInfo.setCarNum(data3.get(0).getLicensePlate()); + } return R.ok(); } @@ -237,6 +254,7 @@ } + @ResponseBody @PostMapping(value = "/pay/order/refund/list") @ApiOperation(value = "充电信息", tags = {"管理后台-支付订单-退款订单"}) @@ -244,6 +262,9 @@ return chargingOrderService.getRefundList(chargingRefundDto); } + + + @ResponseBody @@ -259,9 +280,19 @@ @ResponseBody @PostMapping(value = "/chargingOrderInfo") @ApiOperation(value = "充电桩订单列表查看详情", tags = {"管理后台-订单管理"}) - public AjaxResult<TCharingOrderVO> chargingOrderInfo(String orderId) { - - return AjaxResult.success(); + public AjaxResult<ChargingOrderInfoVO> chargingOrderInfo(String orderId) { + ChargingOrderInfoVO chargingOrderInfoVO = new ChargingOrderInfoVO(); + chargingOrderInfoVO.setCdElectronic(""); + chargingOrderInfoVO.setCdVoltage(""); + chargingOrderInfoVO.setSurplus(""); + chargingOrderInfoVO.setTotalPower(""); + chargingOrderInfoVO.setLicensePlate(""); + chargingOrderInfoVO.setVehicleBrand(""); + chargingOrderInfoVO.setVehicleModel(""); + chargingOrderInfoVO.setVehicleUse(""); + List<TChargingOrderAccountingStrategy> tChargingOrderAccountingStrategies = new ArrayList<>(); + chargingOrderInfoVO.setList(tChargingOrderAccountingStrategies); + return AjaxResult.success(chargingOrderInfoVO); } @ResponseBody @@ -272,9 +303,9 @@ orderEvaluateService.addOrderEvaluate(dto); return AjaxResult.success(); } - /** * 查询用户最近一次充电记录使用的车辆 + * * @param * @return */ @@ -283,11 +314,11 @@ List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>() .eq(TChargingOrder::getAppUserId, tokenService.getLoginUserApplet().getUserId()) .isNotNull(TChargingOrder::getAppUserCarId)); - if (!list.isEmpty()) { + if (!list.isEmpty()){ // 最近使用的车辆id Long size = list.get(0).getAppUserCarId(); return R.ok(size); - } else { + }else{ return R.ok(-1L); } } @@ -305,7 +336,6 @@ .between(TChargingOrder::getStartTime, req.getStartTime(), req.getEndTime())).size(); return R.ok(size); } - //用户订单数量 @PostMapping(value = "/useOrderCount") public R<Long> useOrderCount(@RequestParam("userId") Long userId) { @@ -345,8 +375,10 @@ .eq(TChargingOrder::getDelFlag, 0).eq(TChargingOrder::getStatus, 3)); return R.ok(one); } - - + + + + @ResponseBody @GetMapping(value = "/getMyChargingOrderList") @ApiOperation(value = "获取充电记录列表", tags = {"小程序-充电记录"}) @@ -354,8 +386,8 @@ Map<String, Object> orderList = chargingOrderService.getMyChargingOrderList(query); return AjaxResult.success(orderList); } - - + + @ResponseBody @GetMapping(value = "/getMyChargingOrderInfo") @ApiOperation(value = "获取充电记订单明细", tags = {"小程序-充电记录"}) @@ -363,8 +395,9 @@ MyChargingOrderInfo myChargingOrderInfo = chargingOrderService.getMyChargingOrderInfo(id); return AjaxResult.success(myChargingOrderInfo); } - - + + + @ResponseBody @GetMapping(value = "/getNoInvoicedOrder") @ApiOperation(value = "获取未开票的订单数据", tags = {"小程序-充电发票"}) @@ -372,15 +405,16 @@ List<MyChargingOrderList> list = chargingOrderService.getNoInvoicedOrder(query); return AjaxResult.success(list); } - - + + + @ResponseBody @PostMapping(value = "/paymentChargingOrder") @ApiOperation(value = "支付充电充值费用", tags = {"小程序-扫一扫"}) public AjaxResult paymentChargingOrder(@RequestBody AddChargingOrder addChargingOrder) { return chargingOrderService.paymentChargingOrder(addChargingOrder); } - + /** * 充电充值支付回调 * @param request @@ -422,6 +456,27 @@ e.printStackTrace(); } } + + + /** + * 远程启动失败后退款回调 + * @param request + */ + @ResponseBody + @PostMapping(value = "/chargingOrderALICallback") + public void chargingOrderStartupFailureWxRefund(HttpServletRequest request){ + WxRefundNotifyResp data = wxPaymentClient.refundNotify(request).getData(); + if(null != data){ + String out_refund_no = data.getOut_refund_no(); + String refund_id = data.getRefund_id(); + String tradeState = data.getTradeState(); + String success_time = data.getSuccess_time(); + chargingOrderService.chargingOrderStartupFailureWxRefund(out_refund_no, refund_id, tradeState, success_time); + } + } + + + @ResponseBody @@ -435,8 +490,9 @@ Object cacheObject = redisService.getCacheObject(key); return AjaxResult.success(cacheObject); } - - + + + @ResponseBody @GetMapping(value = "/getChargingDetails/{id}") @ApiOperation(value = "获取充电中页面数据", tags = {"小程序-扫一扫"}) @@ -577,6 +633,29 @@ return AjaxResult.success(res); } + + + + + /** + * 处理充电订单实时监控数据相关的业务逻辑 + * @param query + */ + @PostMapping("/chargeMonitoring") + public void chargeMonitoring(@RequestBody UploadRealTimeMonitoringDataQuery query){ + chargingOrderService.chargeMonitoring(query); + } + /** + * 通过流水号查询订单 + * @param code + * @return + */ + @PostMapping(value = "/getOrderByCode/{code}") + public R<TChargingOrder> getOrderByCode(@PathVariable("code") String code){ + return R.ok(chargingOrderService.getOne(Wrappers.lambdaQuery(TChargingOrder.class) + .eq(TChargingOrder::getCode,code))); + } + -- Gitblit v1.7.1