From 4f9263aeee1c7e5a87a7ff58d008fb1c47ceed6b Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期日, 28 九月 2025 10:12:19 +0800 Subject: [PATCH] 增加同步引流平台的开关的功能 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 191 +++++++++++++++++++++++++---------------------- 1 files changed, 102 insertions(+), 89 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 88b4cf1..6ade2d6 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 @@ -797,6 +797,7 @@ String key = "AQJC_" + chargingOrder.getChargingGunId(); List<PlatformStartChargingReply> data = platformStartChargingReplyService.getPlatformStartChargingReply(code); log.info(code + ":-------------------开始检查调起充电结果-------------------" + data.toString()); + Site site = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData().get(0); if (data.size() != 0) { PlatformStartChargingReply platformStartChargingReply = data.get(1); Integer startup_result = platformStartChargingReply.getStartup_result(); @@ -842,7 +843,7 @@ redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS); //推送三方平台订单状态 - if (2 == chargingOrder.getOrderSource()) { + if (2 == chargingOrder.getOrderSource() && 1 == site.getIsOpenSynchronization()) { tcecClient.notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId()); } return true; @@ -876,7 +877,7 @@ this.updateById(order); redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS); //推送三方平台订单状态 - if (2 == chargingOrder.getOrderSource()) { + if (2 == chargingOrder.getOrderSource() && 1 == site.getIsOpenSynchronization()) { tcecClient.notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId()); } return true; @@ -917,6 +918,7 @@ if (order.getStatus() != 2) { return; } + Site site = siteClient.getSiteByIds(Arrays.asList(order.getSiteId())).getData().get(0); String code = order.getCode(); PreChargeCheck preChargeCheck1 = redisService.getCacheObject("AQJC_" + order.getChargingGunId()); if (null != preChargeCheck1) { @@ -940,8 +942,10 @@ TChargingGun chargingGun = chargingGunClient.getChargingGunById(order.getChargingGunId()).getData(); chargingGun.setStatus(4); chargingGunClient.updateChargingGunById(chargingGun); - //推送状态给三方平台 - tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), 4); + if(1 == site.getIsOpenSynchronization()){ + //推送状态给三方平台 + tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), 4); + } } redisService.setCacheObject("AQJC_" + order.getChargingGunId(), preChargeCheck1, 24L, TimeUnit.HOURS); this.updateById(order); @@ -963,9 +967,12 @@ result.setStartTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); Operator operator = operatorClient.getOperatorById(order.getOperatorId()).getData(); result.setOperatorID(operator.getOperatorId()); - tcecClient.notificationStartChargeResult(result); + if(1 == site.getIsOpenSynchronization()){ + tcecClient.notificationStartChargeResult(result); + tcecClient.notificationEquipChargeStatus(order.getStartChargeSeq(), order.getOperatorId()); + } - tcecClient.notificationEquipChargeStatus(order.getStartChargeSeq(), order.getOperatorId()); + } } @@ -1291,8 +1298,9 @@ log.info(code1 + ":-------------------远程停止充电请求-------------------"); log.info(platformStopCharging.toString()); }); + Site site = siteClient.getSiteByIds(Arrays.asList(order.getSiteId())).getData().get(0); //推送三方平台 - if (2 == order.getOrderSource()) { + if (2 == order.getOrderSource() && 1 == site.getIsOpenSynchronization()) { tcecClient.notificationEquipChargeStatus(order.getStartChargeSeq(), order.getOperatorId()); } @@ -1532,6 +1540,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"); @@ -2593,9 +2602,9 @@ redisService.setCacheObject("chargingOrderStatus:" + vo.getTransaction_serial_number(), 5, 100L, TimeUnit.SECONDS); chargingOrder = this.getById(chargingOrder.getId()); - + Site site = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData().get(0); //推送三方平台 - if (2 == chargingOrder.getOrderSource()) { + if (2 == chargingOrder.getOrderSource() && 1 == site.getIsOpenSynchronization()) { TChargingOrder finalChargingOrder = chargingOrder; new Thread(new Runnable() { @Override @@ -2631,7 +2640,7 @@ chargingGunClient.updateChargingGunById(chargingGun); chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); //推送状态给三方平台 - if (2 == chargingOrder.getOrderSource()) { + if (2 == chargingOrder.getOrderSource() && 1 == site.getIsOpenSynchronization()) { tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), 2); } @@ -2885,7 +2894,6 @@ tChargingOrder.setStatus(5); } - TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund(); chargingOrderRefund.setChargingOrderId(tChargingOrder.getId()); chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount()); @@ -2894,7 +2902,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("后台退款"); @@ -2908,7 +2916,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()); @@ -2961,69 +2969,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()){ @@ -3044,65 +3052,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()){ @@ -4108,9 +4116,11 @@ // scheduler.shutdown(); // } // }, 5, 1, TimeUnit.SECONDS); - - //推送三方平台订单状态 - tcecClient.notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId()); + Site site = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData().get(0); + if(1 == site.getIsOpenSynchronization()){ + //推送三方平台订单状态 + tcecClient.notificationEquipChargeStatus(chargingOrder.getStartChargeSeq(), chargingOrder.getOperatorId()); + } return R.ok(); } @@ -4138,7 +4148,10 @@ chargingOrder.setStatus(4); chargingOrder.setEndMode(1); this.updateById(chargingOrder); - tcecClient.notificationEquipChargeStatus(order.getStartChargeSeq(), order.getOperatorId()); + Site site = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData().get(0); + if(1 == site.getIsOpenSynchronization()){ + tcecClient.notificationEquipChargeStatus(order.getStartChargeSeq(), order.getOperatorId()); + } String code1 = order.getCode(); TChargingGun chargingGun = chargingGunClient.getChargingGunById(order.getChargingGunId()).getData(); -- Gitblit v1.7.1