From 49148072078220c92f94f2e7ea25cd79a6810fc7 Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期六, 24 八月 2024 15:31:37 +0800 Subject: [PATCH] 封装支付宝支付和完善充电支付功能 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 87 +++++++++++++++++++++++++++++++++++++++---- 1 files changed, 78 insertions(+), 9 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 d5521a8..51ec3ab 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 @@ -17,20 +17,24 @@ import com.ruoyi.chargingPile.api.model.TChargingPile; 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.query.ChargingOrderQuery; +import com.ruoyi.order.api.vo.ChargingOrderVO; +import com.ruoyi.order.api.vo.TCharingOrderVO; import com.ruoyi.order.dto.*; import com.ruoyi.order.mapper.TChargingOrderMapper; import com.ruoyi.order.service.TChargingOrderAccountingStrategyService; import com.ruoyi.order.service.TChargingOrderService; +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 org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.math.BigDecimal; @@ -38,7 +42,6 @@ import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.util.*; -import java.util.stream.Collectors; /** * <p> @@ -59,6 +62,8 @@ @Resource private AppUserCarClient appUserCarClient; + @Resource + private AppUserClient appUserClient; @Resource private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService; @@ -70,11 +75,12 @@ private WxPaymentClient wxPaymentClient; @Resource - private ChargingPileClient chargingPileClient; + private AliPaymentClient aliPaymentClient; @Resource - private AppUserClient appUserClient; + private ChargingPileClient chargingPileClient; + @Resource private AppUserVipDetailClient appUserVipDetailClient; @@ -221,7 +227,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()); + } + } } } @@ -251,7 +264,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()); + } + } } } @@ -303,7 +328,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("无效的支付方式"); } @@ -386,4 +421,38 @@ // todo 待完善 return AjaxResult.success(); } + + + @Override + public TCharingOrderVO chargingOrder(ChargingOrderQuery dto) { + TCharingOrderVO tCharingOrderVO = new TCharingOrderVO(); + String startTime1 = null; + String startTime2 = null; + String endTime1 = null; + String endTime2 = null; + + if (StringUtils.hasLength(dto.getStartTime())){ + String[] split = dto.getStartTime().split(" - "); + startTime1 = split[0]; + startTime2 = split[1]; + } + if (StringUtils.hasLength(dto.getEndTime())){ + String[] split = dto.getEndTime().split(" - "); + endTime1 = split[0]; + endTime2 = split[1]; + } + if (StringUtils.hasLength(dto.getPhone())){ + List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData(); + if (data.isEmpty()){ + data.add(0L); + } + dto.setUserIds(data); + } + PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); + List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo,dto,startTime1,startTime2,endTime1,endTime2); + + pageInfo.setRecords(list); + tCharingOrderVO.setList(pageInfo); + return tCharingOrderVO; + } } -- Gitblit v1.7.1