From 375134f8fead27cc32a880c45cc68e72b69c5ce9 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期二, 27 八月 2024 10:43:58 +0800 Subject: [PATCH] 8.27 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 67 ++++++++++++++++++++++++++++----- 1 files changed, 56 insertions(+), 11 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 c853def..320930e 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 @@ -1,7 +1,5 @@ package com.ruoyi.order.service.impl; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -18,14 +16,15 @@ import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.chargingPile.api.model.TChargingPile; +import com.ruoyi.common.core.domain.R; 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.common.redis.service.RedisService; import com.ruoyi.common.security.service.TokenService; -import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy; +import com.ruoyi.order.api.model.TChargingOrderRefund; import com.ruoyi.order.api.query.ChargingOrderQuery; import com.ruoyi.order.api.vo.ChargingOrderVO; import com.ruoyi.order.api.vo.TCharingOrderVO; @@ -33,11 +32,9 @@ import com.ruoyi.order.mapper.TChargingOrderMapper; import com.ruoyi.order.service.TChargingOrderAccountingStrategyService; import com.ruoyi.order.service.TChargingOrderService; -import com.ruoyi.other.api.domain.TCoupon; -import com.ruoyi.other.api.domain.TVip; +import com.ruoyi.payment.api.feignClient.AliPaymentClient; import com.ruoyi.payment.api.feignClient.WxPaymentClient; -import com.ruoyi.payment.api.vo.NotifyV3PayDecodeRespBody; -import com.ruoyi.payment.api.vo.PaymentOrder; +import com.ruoyi.payment.api.vo.*; import io.seata.spring.annotation.GlobalTransactional; import io.swagger.annotations.ApiModelProperty; import org.springframework.beans.factory.annotation.Autowired; @@ -52,7 +49,6 @@ import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.*; -import java.util.stream.Collectors; /** * <p> @@ -84,6 +80,9 @@ @Resource private WxPaymentClient wxPaymentClient; + + @Resource + private AliPaymentClient aliPaymentClient; @Resource private ChargingPileClient chargingPileClient; @@ -232,7 +231,14 @@ } } if(2 == rechargePaymentType){ - + AliQueryOrder data = aliPaymentClient.query(tChargingOrder.getCode()).getData(); + if(null != data){ + //支付失败,删除无效的订单 + String tradeStatus = data.getTradeStatus(); + if(tradeStatus.equals("TRADE_CLOSED")){ + this.removeById(tChargingOrder.getId()); + } + } } } @@ -262,7 +268,19 @@ } } if(2 == one.getRechargePaymentType()){ - + AliQueryOrder data = aliPaymentClient.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")){ + //结束第三方支付,删除订单 + aliPaymentClient.close(one.getCode()); + this.removeById(one.getId()); + } + } } } @@ -314,7 +332,17 @@ return AjaxResult.success(data); } if(2 == addChargingOrder.getPaymentType()){ - + AliPaymentReq req = new AliPaymentReq(); + req.setOutTradeNo(chargingOrder.getCode()); + req.setTotalAmount(chargingOrder.getPaymentAmount().toString()); + req.setSubject("充电充值"); + req.setBuyerOpenId(appUser.getAliOpenid()); + req.setBody("充电充值"); + AliPaymentResp data = aliPaymentClient.payment(req).getData(); + if(null != data){ + data.setNotifyUrl(data.getNotifyUrl() + "/t-charging-order/chargingOrderALICallback"); + return AjaxResult.success(data); + } } throw new RuntimeException("无效的支付方式"); } @@ -492,4 +520,21 @@ tCharingOrderVO.setList(pageInfo); return tCharingOrderVO; } + + @Override + public R<PageInfo<PayOrderDto>> payOrderQuery(PayOrderQueryDto payOrderQueryDto) { + PageInfo<PayOrderDto> pageInfo = new PageInfo<>(payOrderQueryDto.getPageCurr(),payOrderQueryDto.getPageSize()); + List<PayOrderDto> list = this.baseMapper.payOrderQuery(pageInfo,payOrderQueryDto); + pageInfo.setRecords(list); + return R.ok(pageInfo); + } + + @Override + public R<PageInfo<TChargingOrderRefund>> getRefundList(ChargingRefundDto chargingRefundDto) { + PageInfo<TChargingOrderRefund> pageInfo = new PageInfo<>(chargingRefundDto.getPageCurr(),chargingRefundDto.getPageSize()); + List<TChargingOrderRefund> list = this.baseMapper.getRefundList(pageInfo,chargingRefundDto); + pageInfo.setRecords(list); + + return R.ok(pageInfo); + } } -- Gitblit v1.7.1