zhibing.pu
2024-08-24 49148072078220c92f94f2e7ea25cd79a6810fc7
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.extension.service.impl.ServiceImpl;
import com.ruoyi.account.api.feignClient.AppUserCarClient;
@@ -22,7 +20,6 @@
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;
@@ -32,13 +29,10 @@
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@@ -48,7 +42,6 @@
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
/**
 * <p>
@@ -80,6 +73,9 @@
   
   @Resource
   private WxPaymentClient wxPaymentClient;
   @Resource
   private AliPaymentClient aliPaymentClient;
   
   @Resource
   private ChargingPileClient chargingPileClient;
@@ -231,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());
               }
            }
         }
      }
      
@@ -261,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());
               }
            }
         }
      }
      
@@ -313,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("无效的支付方式");
   }