From 50dde470ec18f292e8e58547ef1c4a4cbd4138b2 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期三, 24 九月 2025 15:08:54 +0800 Subject: [PATCH] 修改bug --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 203 ++++++++++++++++++++++---------------------------- 1 files changed, 91 insertions(+), 112 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java index bc4d15a..4297ea2 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java @@ -583,6 +583,8 @@ AccountingStrategyDetailOrder accountingStrategyDetailOrder = new AccountingStrategyDetailOrder(); BeanUtils.copyProperties(tAccountingStrategyDetail, accountingStrategyDetailOrder); accountingStrategyDetailOrder.setChargingOrderId(chargingOrder.getId()); + accountingStrategyDetailOrder.setCreateTime(LocalDateTime.now()); + accountingStrategyDetailOrder.setDelFlag(false); list1.add(accountingStrategyDetailOrder); } accountingStrategyDetailOrderService.saveBatch(list1); @@ -939,7 +941,7 @@ chargingGun.setStatus(4); chargingGunClient.updateChargingGunById(chargingGun); //推送状态给三方平台 - tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus()); + tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), 4); } redisService.setCacheObject("AQJC_" + order.getChargingGunId(), preChargeCheck1, 24L, TimeUnit.HOURS); this.updateById(order); @@ -1530,6 +1532,7 @@ if (siteIds.isEmpty()) siteIds.add(-1); dto.setSiteIds(siteIds); List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo, dto, startTime1, startTime2, endTime1, endTime2); + BigDecimal total = new BigDecimal("0"); long time = 0L; BigDecimal electronicMoney = new BigDecimal("0"); @@ -1602,42 +1605,7 @@ } } - -// List<TChargingOrderRefund> chargingOrderRefunds = chargingOrderRefundService.lambdaQuery() -// .eq(TChargingOrderRefund::getRefundStatus,2).list(); - - Map<String, Object> map = this.baseMapper.chargingOrderNolimit(dto, startTime1, startTime2, endTime1, endTime2); -// for (ChargingOrderVO chargingOrderVO : list1) { -// if(null == chargingOrderVO.getStatus() || 5 != chargingOrderVO.getStatus()){ -// continue; -// } -// List<TChargingOrderAccountingStrategy> list4 = list3.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderVO.getId())).collect(Collectors.toList()); -// BigDecimal electronic_reduce = list4.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add); -// BigDecimal service_reduce = list4.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add); -// BigDecimal chargingCapacity = list4.stream().map(TChargingOrderAccountingStrategy::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); -// electronicMoney = electronicMoney.add(electronic_reduce); -// total = total.add(chargingCapacity); -// if (!chargingOrderVO.getOrderSource().equals(2)) { -// serviceMoney = serviceMoney.add(service_reduce); -// paymentMoney = paymentMoney.add(electronic_reduce).add(service_reduce); -// }else{ -// serviceMoney = serviceMoney.add(service_reduce.multiply(new BigDecimal("0.8"))); -// paymentMoney = paymentMoney.add(electronic_reduce).add(service_reduce.multiply(new BigDecimal("0.8"))); -// } -// if (chargingOrderVO.getStartTime()!=null && chargingOrderVO.getEndTime()!=null){ -// LocalDateTime startTime = chargingOrderVO.getStartTime(); -// LocalDateTime endTime = chargingOrderVO.getEndTime(); -// // 计算时间差 单位秒 -// long between = ChronoUnit.SECONDS.between(startTime, endTime); -// time+=between; -// } -//// List<TChargingOrderRefund> list2 = chargingOrderRefunds.stream().filter(e -> e.getChargingOrderId() != null && e.getChargingOrderId().equals(chargingOrderVO.getId())) -//// .collect(Collectors.toList()); -//// for (TChargingOrderRefund tChargingOrderRefund : list2) { -//// refundMoney = refundMoney.add(tChargingOrderRefund.getRefundTotalAmount()); -//// } -// } if (null != map) { tCharingOrderVO.setTotal(map.get("total") == null ? BigDecimal.ZERO : (BigDecimal) map.get("total")); tCharingOrderVO.setTime(map.get("time") == null ? 0L : (Long) map.get("time")); @@ -2662,9 +2630,10 @@ chargingGun.setStatus(2); chargingGun.setChargingPower(BigDecimal.ZERO); chargingGunClient.updateChargingGunById(chargingGun); + chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); //推送状态给三方平台 if (2 == chargingOrder.getOrderSource()) { - tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus()); + tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), 2); } //添加积分 @@ -2917,7 +2886,6 @@ tChargingOrder.setStatus(5); } - TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund(); chargingOrderRefund.setChargingOrderId(tChargingOrder.getId()); chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount()); @@ -2926,7 +2894,7 @@ chargingOrderRefund.setRefundTime(LocalDateTime.now()); chargingOrderRefund.setCode(tChargingOrder.getCode()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); - chargingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue())); + chargingOrderRefund.setRefundCode("CDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue())); chargingOrderRefund.setRefundTitle("后台退款"); chargingOrderRefund.setRefundContent("后台退款"); chargingOrderRefund.setRefundReason("后台退款"); @@ -2940,7 +2908,7 @@ model.setOut_refund_no(chargingOrderRefund.getRefundCode()); model.setTransaction_id(tChargingOrder.getRechargeSerialNumber()); model.setReason("取消订单"); - model.setNotify_url("/order/t-shopping-order/cancelShoppingOrderWxRefund"); + model.setNotify_url("/payment/wx/refund/notify"); WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount(); amount.setRefund(payOrderQueryDto.getRefundAmount().multiply(new BigDecimal(100)).intValue()); amount.setTotal(tChargingOrder.getRechargeAmount().multiply(new BigDecimal(100)).intValue()); @@ -2993,69 +2961,69 @@ } } if (payOrderQueryDto.getType() == 2) { - TShoppingOrder tChargingOrder = shoppingOrderService.getById(payOrderQueryDto.getOrderId()); - if (tChargingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount()) == -1) { + TShoppingOrder shoppingOrder = shoppingOrderService.getById(payOrderQueryDto.getOrderId()); + if (shoppingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount()) == -1) { return R.fail("退款金额需小于支付金额"); } - if ((tChargingOrder.getPaymentAmount().subtract(tChargingOrder.getRefundAmount()).compareTo(payOrderQueryDto.getRefundAmount())) == 0) { - tChargingOrder.setStatus(5); + if ((shoppingOrder.getPaymentAmount().subtract(shoppingOrder.getRefundAmount()).compareTo(payOrderQueryDto.getRefundAmount())) == 0) { + shoppingOrder.setStatus(5); } - TShoppingOrderRefund chargingOrderRefund = new TShoppingOrderRefund(); - chargingOrderRefund.setShoppingOrderId(tChargingOrder.getId()); - chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount()); - chargingOrderRefund.setRefundStatus(1); - chargingOrderRefund.setPayType(tChargingOrder.getPaymentType()); - chargingOrderRefund.setRefundTime(LocalDateTime.now()); - chargingOrderRefund.setCode(tChargingOrder.getCode()); + TShoppingOrderRefund shoppingOrderRefund = new TShoppingOrderRefund(); + shoppingOrderRefund.setShoppingOrderId(shoppingOrder.getId()); + shoppingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount()); + shoppingOrderRefund.setRefundStatus(1); + shoppingOrderRefund.setPayType(shoppingOrder.getPaymentType()); + shoppingOrderRefund.setRefundTime(LocalDateTime.now()); + shoppingOrderRefund.setCode(shoppingOrder.getCode()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); - chargingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue())); - chargingOrderRefund.setRefundTitle("后台退款"); - chargingOrderRefund.setRefundContent("后台退款"); - chargingOrderRefund.setRefundReason("后台退款"); - chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark()); - chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount())); - chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount()); + shoppingOrderRefund.setRefundCode("GWF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue())); + shoppingOrderRefund.setRefundTitle("后台退款"); + shoppingOrderRefund.setRefundContent("后台退款"); + shoppingOrderRefund.setRefundReason("后台退款"); + shoppingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark()); + shoppingOrderRefund.setRefundTotalAmount(shoppingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount())); + shoppingOrderRefund.setPayAmount(shoppingOrder.getPaymentAmount()); - if (1 == tChargingOrder.getPaymentType()) { + if (1 == shoppingOrder.getPaymentType()) { WxPaymentRefundModel model = new WxPaymentRefundModel(); - model.setOut_trade_no(tChargingOrder.getCode()); - model.setOut_refund_no(chargingOrderRefund.getRefundCode()); - model.setTransaction_id(tChargingOrder.getSerialNumber()); + model.setOut_trade_no(shoppingOrder.getCode()); + model.setOut_refund_no(shoppingOrderRefund.getRefundCode()); + model.setTransaction_id(shoppingOrder.getSerialNumber()); model.setReason("取消订单"); - model.setNotify_url("/order/t-shopping-order/cancelShoppingOrderWxRefund"); + model.setNotify_url("/payment/wx/refund/notify"); WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount(); amount.setRefund(payOrderQueryDto.getRefundAmount().multiply(new BigDecimal(100)).intValue()); - amount.setTotal(tChargingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue()); + amount.setTotal(shoppingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue()); amount.setCurrency("CNY"); model.setAmount(amount); R<Map<String, Object>> orderR = wxPaymentClient.refundOrderR(model); if (200 == orderR.getCode()) { - tChargingOrder.setRefundStatus(2); - tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); - shoppingOrderService.updateById(tChargingOrder); - shoppingOrderRefundService.save(chargingOrderRefund); + shoppingOrder.setRefundStatus(2); + shoppingOrder.setRefundAmount((shoppingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : shoppingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); + shoppingOrderService.updateById(shoppingOrder); + shoppingOrderRefundService.save(shoppingOrderRefund); //手续费 Map<String, Object> amount1 = (Map<String, Object>) orderR.getData().get("amount"); Object refund_fee1 = amount1.get("refund_fee"); BigDecimal refund_fee = new BigDecimal(null == refund_fee1 ? "0" : refund_fee1.toString()).divide(new BigDecimal(100)); - chargingOrderRefund.setRefundFee(refund_fee); - shoppingOrderRefundService.updateById(chargingOrderRefund); + shoppingOrderRefund.setRefundFee(refund_fee); + shoppingOrderRefundService.updateById(shoppingOrderRefund); } } - if (2 == tChargingOrder.getPaymentType()) { + if (2 == shoppingOrder.getPaymentType()) { RefundReq dto = new RefundReq(); - dto.setOutTradeNo(tChargingOrder.getCode()); - dto.setOutRequestNo(tChargingOrder.getCode()); + dto.setOutTradeNo(shoppingOrder.getCode()); + dto.setOutRequestNo(shoppingOrder.getCode()); dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString()); dto.setRefundReason("取消订单"); RefundResp resp = aliPaymentClient.refund(dto).getData(); if (null != resp) { - tChargingOrder.setRefundStatus(2); - tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); - shoppingOrderService.updateById(tChargingOrder); - shoppingOrderRefundService.save(chargingOrderRefund); + shoppingOrder.setRefundStatus(2); + shoppingOrder.setRefundAmount((shoppingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : shoppingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); + shoppingOrderService.updateById(shoppingOrder); + shoppingOrderRefundService.save(shoppingOrderRefund); } } // if(3 == tChargingOrder.getPaymentType()){ @@ -3076,65 +3044,65 @@ } if (payOrderQueryDto.getType() == 3) { - TVipOrder tChargingOrder = vipOrderService.getById(payOrderQueryDto.getOrderId()); - if (tChargingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount()) == -1) { + TVipOrder vipOrder = vipOrderService.getById(payOrderQueryDto.getOrderId()); + if (vipOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount()) == -1) { return R.fail("退款金额需小于支付金额"); } - TVipOrderRefund chargingOrderRefund = new TVipOrderRefund(); - chargingOrderRefund.setVipOrderId(tChargingOrder.getId()); - chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount()); - chargingOrderRefund.setRefundStatus(1); - chargingOrderRefund.setPayType(tChargingOrder.getPaymentType()); - chargingOrderRefund.setRefundTime(LocalDateTime.now()); - chargingOrderRefund.setCode(tChargingOrder.getCode()); + TVipOrderRefund vipOrderRefund = new TVipOrderRefund(); + vipOrderRefund.setVipOrderId(vipOrder.getId()); + vipOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount()); + vipOrderRefund.setRefundStatus(1); + vipOrderRefund.setPayType(vipOrder.getPaymentType()); + vipOrderRefund.setRefundTime(LocalDateTime.now()); + vipOrderRefund.setCode(vipOrder.getCode()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); - chargingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue())); - chargingOrderRefund.setRefundTitle("后台退款"); - chargingOrderRefund.setRefundContent("后台退款"); - chargingOrderRefund.setRefundReason("后台退款"); - chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark()); - chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount())); - chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount()); + vipOrderRefund.setRefundCode("HYF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue())); + vipOrderRefund.setRefundTitle("后台退款"); + vipOrderRefund.setRefundContent("后台退款"); + vipOrderRefund.setRefundReason("后台退款"); + vipOrderRefund.setRefundRemark(payOrderQueryDto.getRemark()); + vipOrderRefund.setRefundTotalAmount(vipOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount())); + vipOrderRefund.setPayAmount(vipOrder.getPaymentAmount()); - if (1 == tChargingOrder.getPaymentType()) { + if (1 == vipOrder.getPaymentType()) { WxPaymentRefundModel model = new WxPaymentRefundModel(); - model.setOut_trade_no(tChargingOrder.getCode()); - model.setOut_refund_no(chargingOrderRefund.getRefundCode()); - model.setTransaction_id(tChargingOrder.getSerialNumber()); + model.setOut_trade_no(vipOrder.getCode()); + model.setOut_refund_no(vipOrderRefund.getRefundCode()); + model.setTransaction_id(vipOrder.getSerialNumber()); model.setReason("取消订单"); - model.setNotify_url("/order/t-shopping-order/cancelShoppingOrderWxRefund"); + model.setNotify_url("/payment/wx/refund/notify"); WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount(); amount.setRefund(payOrderQueryDto.getRefundAmount().multiply(new BigDecimal(100)).intValue()); - amount.setTotal(tChargingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue()); + amount.setTotal(vipOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue()); amount.setCurrency("CNY"); model.setAmount(amount); R<Map<String, Object>> orderR = wxPaymentClient.refundOrderR(model); if (200 == orderR.getCode()) { - tChargingOrder.setRefundStatus(2); - tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); - vipOrderService.updateById(tChargingOrder); - vipOrderRefundService.save(chargingOrderRefund); + vipOrder.setRefundStatus(2); + vipOrder.setRefundAmount((vipOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : vipOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); + vipOrderService.updateById(vipOrder); + vipOrderRefundService.save(vipOrderRefund); //手续费 Map<String, Object> amount1 = (Map<String, Object>) orderR.getData().get("amount"); Object refund_fee1 = amount1.get("refund_fee"); BigDecimal refund_fee = new BigDecimal(null == refund_fee1 ? "0" : refund_fee1.toString()).divide(new BigDecimal(100)); - chargingOrderRefund.setRefundFee(refund_fee); - vipOrderRefundService.updateById(chargingOrderRefund); + vipOrderRefund.setRefundFee(refund_fee); + vipOrderRefundService.updateById(vipOrderRefund); } } - if (2 == tChargingOrder.getPaymentType()) { + if (2 == vipOrder.getPaymentType()) { RefundReq dto = new RefundReq(); - dto.setOutTradeNo(tChargingOrder.getCode()); - dto.setOutRequestNo(tChargingOrder.getCode()); + dto.setOutTradeNo(vipOrder.getCode()); + dto.setOutRequestNo(vipOrder.getCode()); dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString()); dto.setRefundReason("取消订单"); RefundResp resp = aliPaymentClient.refund(dto).getData(); if (null != resp) { - tChargingOrder.setRefundStatus(2); - tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); - vipOrderService.updateById(tChargingOrder); - vipOrderRefundService.save(chargingOrderRefund); + vipOrder.setRefundStatus(2); + vipOrder.setRefundAmount((vipOrder.getRefundAmount() == null ? BigDecimal.valueOf(0) : vipOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); + vipOrderService.updateById(vipOrder); + vipOrderRefundService.save(vipOrderRefund); } } // if(3 == tChargingOrder.getPaymentType()){ @@ -4104,6 +4072,8 @@ AccountingStrategyDetailOrder accountingStrategyDetailOrder = new AccountingStrategyDetailOrder(); BeanUtils.copyProperties(tAccountingStrategyDetail, accountingStrategyDetailOrder); accountingStrategyDetailOrder.setChargingOrderId(chargingOrder.getId()); + accountingStrategyDetailOrder.setCreateTime(LocalDateTime.now()); + accountingStrategyDetailOrder.setDelFlag(false); list1.add(accountingStrategyDetailOrder); } accountingStrategyDetailOrderService.saveBatch(list1); @@ -4363,4 +4333,13 @@ public List<TChargingOrder> findChargingOrder() { return this.baseMapper.findChargingOrder(); } + + /** + * 获取已结束的数据 + * @return + */ + @Override + public List<TChargingOrder> findEndChargingOrder() { + return this.baseMapper.findEndChargingOrder(); + } } -- Gitblit v1.7.1