From 185b90fbbd29bcf520456196d758079e60b325eb Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期一, 16 六月 2025 09:49:09 +0800 Subject: [PATCH] 川易充h5接口 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 152 insertions(+), 2 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 b8a3f75..8712488 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 @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.feignClient.*; import com.ruoyi.account.api.model.*; @@ -59,6 +60,7 @@ import com.ruoyi.other.api.domain.TVip; import com.ruoyi.other.api.feignClient.*; import com.ruoyi.payment.api.feignClient.AliPaymentClient; +import com.ruoyi.payment.api.feignClient.H5AliPaymentClient; import com.ruoyi.payment.api.feignClient.WxPaymentClient; import com.ruoyi.payment.api.model.RefundReq; import com.ruoyi.payment.api.model.RefundResp; @@ -132,6 +134,8 @@ @Resource private AliPaymentClient aliPaymentClient; + @Resource + private H5AliPaymentClient h5AliPaymentClient; @Resource private AppCouponClient appCouponClient; @@ -216,6 +220,8 @@ @Resource private ITChargingOrderSummaryDataService chargingOrderSummaryDataService; + @Resource + private TOrderAppealService orderAppealService; @@ -346,6 +352,9 @@ myChargingOrderInfo.setPower(power); } myChargingOrderInfo.setActionable(myChargingOrderInfo.getEndTime() + 604800000L < System.currentTimeMillis() ? 0 : 1); + long count = orderAppealService.count(Wrappers.lambdaQuery(TOrderAppeal.class) + .eq(TOrderAppeal::getOrderId, id)); + myChargingOrderInfo.setIsAppeal(count>0?0:1); return myChargingOrderInfo; } @@ -418,6 +427,16 @@ } } } + if(3 == rechargePaymentType){ + AliQueryOrder data = h5AliPaymentClient.query(tChargingOrder.getCode()).getData(); + if(null != data){ + //支付失败,删除无效的订单 + String tradeStatus = data.getTradeStatus(); + if(null != tradeStatus && tradeStatus.equals("TRADE_CLOSED")){ + this.removeById(tChargingOrder.getId()); + } + } + } } //检查当前枪是否是正在使用中 @@ -456,6 +475,21 @@ if(trade_state.equals("WAIT_BUYER_PAY")){ //结束第三方支付,删除订单 aliPaymentClient.close(one.getCode()); + this.removeById(one.getId()); + } + } + } + if(3 == one.getRechargePaymentType()){ + AliQueryOrder data = h5AliPaymentClient.query(one.getCode()).getData(); + if(null != data){ + String trade_state = data.getTradeStatus(); + //支付失败,删除无效的订单 + if(trade_state.equals("TRADE_CLOSED")){ + this.removeById(one.getId()); + } + if(trade_state.equals("WAIT_BUYER_PAY")){ + //结束第三方支付,删除订单 + h5AliPaymentClient.close(one.getCode()); this.removeById(one.getId()); } } @@ -561,6 +595,20 @@ AliPaymentResp data = aliPaymentClient.payment(req).getData(); if(null != data){ return AjaxResult.success(data); + } + } + if(3 == addChargingOrder.getPaymentType()){ + AliPaymentReq req = new AliPaymentReq(); + req.setOutTradeNo(chargingOrder.getCode()); + req.setTotalAmount(addChargingOrder.getPaymentAmount().toString()); + req.setSubject("充电充值"); + req.setBuyerOpenId(appUser.getAliOpenid()); + req.setBody("充电充值"); + req.setNotifyUrl("/payment/aliH5/callBack"); + req.setReturnUrl(addChargingOrder.getReturnUrl()); + String data = h5AliPaymentClient.payment(req).getData(); + if(StringUtils.hasLength(data)){ + return AjaxResult.success("操作成功",data); } } throw new RuntimeException("无效的支付方式"); @@ -976,6 +1024,36 @@ chargingOrderStartupFailureWxRefund(chargingOrderRefund.getRefundCode(), resp.getTradeNo(), "SUCCESS", null); } } + if(3 == rechargePaymentType){ + RefundReq dto = new RefundReq(); + dto.setOutTradeNo(chargingOrder.getCode()); + dto.setOutRequestNo(chargingOrderRefund.getCode()); + dto.setRefundAmount(rechargeAmount.toString()); + dto.setRefundReason("充电失败,取消充电订单"); + RefundResp resp = h5AliPaymentClient.refund(dto).getData(); + if(null != resp){ + chargingOrderRefundService.save(chargingOrderRefund); + //回退会员折扣次数 + if(chargingOrder.getVipDiscountAmount().compareTo(BigDecimal.ZERO) > 0){ + TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData(); + GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail(); + getAppUserVipDetail.setAppUserId(chargingOrder.getAppUserId()); + getAppUserVipDetail.setVipId(appUser.getVipId()); + TAppUserVipDetail data = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData(); + if(null != data){ + data.setChargeNum(data.getChargeNum() + 1); + appUserVipDetailClient.updateAppUserVipDetail(data); + } + } + + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + chargingOrderStartupFailureWxRefund(chargingOrderRefund.getRefundCode(), resp.getTradeNo(), "SUCCESS", null); + } + } } } @@ -1043,7 +1121,24 @@ chargingOrderStartupFailureWxRefund(chargingOrderRefund.getRefundCode(), resp.getTradeNo(), "SUCCESS", null); } } - + if(3 == rechargePaymentType){ + RefundReq dto = new RefundReq(); + dto.setOutTradeNo(chargingOrder.getCode()); + dto.setOutRequestNo(chargingOrderRefund.getCode()); + dto.setRefundAmount(money.toString()); + dto.setRefundReason("充电完成退款"); + RefundResp resp = h5AliPaymentClient.refund(dto).getData(); + if(null != resp){ + chargingOrderRefundService.save(chargingOrderRefund); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + chargingOrderStartupFailureWxRefund(chargingOrderRefund.getRefundCode(), resp.getTradeNo(), "SUCCESS", null); + } + } + } } @@ -2626,7 +2721,19 @@ this.chargingOrderStartupFailureWxRefund(chargingOrderRefund.getRefundCode(), resp.getTradeNo(), "SUCCESS", null); } } - + if(3 == rechargePaymentType){ + RefundReq dto = new RefundReq(); + dto.setOutTradeNo(chargingOrder.getCode()); + dto.setOutRequestNo(chargingOrderRefund.getRefundCode()); + dto.setRefundAmount(refundAmount.toString()); + dto.setRefundReason("充电完成退款"); + RefundResp resp = h5AliPaymentClient.refund(dto).getData(); + if(null != resp){ + chargingOrderRefundService.save(chargingOrderRefund); + this.chargingOrderStartupFailureWxRefund(chargingOrderRefund.getRefundCode(), resp.getTradeNo(), "SUCCESS", null); + } + } + } } @@ -2827,6 +2934,21 @@ } } + if(3 == tChargingOrder.getRechargePaymentType()){ + RefundReq dto = new RefundReq(); + dto.setOutTradeNo(tChargingOrder.getCode()); + dto.setOutRequestNo(tChargingOrder.getCode()); + dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString()); + dto.setRefundReason("取消订单"); + RefundResp resp = h5AliPaymentClient.refund(dto).getData(); + if(null != resp){ + chargingOrderRefund.setRefundStatus(2); + chargingOrderRefund.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); + this.baseMapper.updateById(tChargingOrder); + chargingOrderRefundService.save(chargingOrderRefund); + + } + } } if (payOrderQueryDto.getType()==2){ TShoppingOrder tChargingOrder = shoppingOrderService.getById(payOrderQueryDto.getOrderId()); @@ -2894,6 +3016,20 @@ shoppingOrderRefundService.save(chargingOrderRefund); } } + if(3 == tChargingOrder.getPaymentType()){ + RefundReq dto = new RefundReq(); + dto.setOutTradeNo(tChargingOrder.getCode()); + dto.setOutRequestNo(tChargingOrder.getCode()); + dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString()); + dto.setRefundReason("取消订单"); + RefundResp resp = h5AliPaymentClient.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); + } + } } @@ -2959,6 +3095,20 @@ vipOrderRefundService.save(chargingOrderRefund); } } + if(3 == tChargingOrder.getPaymentType()){ + RefundReq dto = new RefundReq(); + dto.setOutTradeNo(tChargingOrder.getCode()); + dto.setOutRequestNo(tChargingOrder.getCode()); + dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString()); + dto.setRefundReason("取消订单"); + RefundResp resp = h5AliPaymentClient.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); + } + } } return R.ok(); } -- Gitblit v1.7.1