Pu Zhibing
2025-08-08 6dbd3b95671e6ac00a442b9866331397af1b10ba
UserQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
@@ -1,146 +1,173 @@
package com.stylefeng.guns;
import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
import com.stylefeng.guns.modular.system.model.Company;
import com.stylefeng.guns.modular.system.model.Driver;
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.service.ICompanyService;
import com.stylefeng.guns.modular.system.service.IDriverService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.math.BigDecimal;
import java.util.List;
/**
 * SpringBoot方式启动类
 *
 * @author stylefeng
 * @Date 2017/5/21 12:06
 */
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest
public class GunsApplicationTest {
   @Autowired
   private IOrderPrivateCarService orderPrivateCarService;
   @Autowired
   private IUserInfoService userInfoService;
   @Autowired
   private IDriverService driverService;
   @Autowired
   private ICompanyService companyService;
   @Autowired
   private IPaymentRecordService paymentRecordService;
   @Test
   public void test(){
      OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(211);
      //使用备付金进行支付订单
      TradePayOffData tradePayOffData = new TradePayOffData();
      tradePayOffData.setPartnerPayId(orderPrivateCar.getTravelId());
      tradePayOffData.setTotalFee(Double.valueOf(orderPrivateCar.getOrderMoney() * 100).intValue() + "");
      tradePayOffData.setOrderDesc("完成订单");
      PayInfo payInfo = OrderUtil.tradePayOff(tradePayOffData);
      String retCode = payInfo.getRetCode();
      if (!"000000".equals(retCode)) {
         log.error("备付金支付失败:{}", payInfo.getRetMsg());
         return;
      }
      PayInfoData data = payInfo.getData();
      String status = data.getStatus();
      if ("3".equals(status)) {
         log.error("备付金支付失败:{}", payInfo.getRetMsg());
         return;
      }
      PayInfoData payInfoData = payInfo.getData();
      PaymentInfo paymentInfo = payInfoData.getPaymentInfos().get(0);
      //支付成功,通知三方
      PaymentOrderRequest paymentOrderRequest = new PaymentOrderRequest();
      paymentOrderRequest.setPayItemId(paymentInfo.getPayItemId());
      paymentOrderRequest.setPaymentInfo(payInfoData.getPaymentInfos());
      paymentOrderRequest.setOrderId("PR" + orderPrivateCar.getId());
      paymentOrderRequest.setCharge(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()));
      paymentOrderRequest.setPayTime(data.getPayTime());
      paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId());
      OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest);
      //查询三方订单状态
      Driver driver1 = driverService.selectById(orderPrivateCar.getDriverId());
      Company company = companyService.selectById(driver1.getCompanyId());
      UserInfo userInfo1 = userInfoService.selectById(orderPrivateCar.getUserId());
      GetTravelItineraryListRequest request = new GetTravelItineraryListRequest();
      request.setCustomerId(userInfo1.getOnconUUID());
      request.setOrderNo("PR" + orderPrivateCar.getId());
      request.setDriverId(driver1.getEmpId().toString());
      ListPage<List<TravelItinerary>> travelItineraryList = OrderUtil.getTravelItineraryList(request);
      Integer status1 = travelItineraryList.getList().get(0).getStatus();
      if(9 != status1){
         //中台修改订单状态
         ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
         request1.setOrderId(orderPrivateCar.getTravelId());
         request1.setStatus(9);
         if (null != orderPrivateCar.getDriverId()) {
            request1.setDriverId(driver1.getEmpId().toString());
            request1.setSupplierShopId(company.getEnterCode());
         }
         if (2 == orderPrivateCar.getPromotion()) {
            Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
            request1.setPromoterId(driver2.getEmpId().toString());
         }
         OrderUtil.modifyTravelItinerary(request1);
      }
      String payId = payInfo.getData().getPayId();
      //copy原始订单后生成追缴单
      OrderPrivateCar orderPrivateCar1 = new OrderPrivateCar();
      BeanUtils.copyProperties(orderPrivateCar, orderPrivateCar1);
      orderPrivateCar1.setId(null);
      orderPrivateCar1.setRecoveryOrder(1);
      //修改原始订单为支付状态
      orderPrivateCar.setState(8);
      orderPrivateCar.setPayType(5);
      orderPrivateCar.setPayMoney(orderPrivateCar.getOrderMoney());
      orderPrivateCarService.updateById(orderPrivateCar);
      //添加三方支付记录
      try {
         paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderPrivateCar.getId(), 1, 3, orderPrivateCar.getOrderMoney(), payId, 2);
      } catch (Exception e) {
         throw new RuntimeException(e);
      }
      Driver driver = driverService.selectById(orderPrivateCar1.getDriverId());
      UserInfo userInfo = userInfoService.selectById(orderPrivateCar1.getUserId());
      //调用三方创建订单
      CreateOrderRequest createOrderRequest = new CreateOrderRequest();
      createOrderRequest.setTreatShopId(driver.getEmpId().toString());
      createOrderRequest.setField1("{\"profitSharing\":\"0\",\"isPromote\":\"0\"}");
      createOrderRequest.setCharge(new BigDecimal(orderPrivateCar1.getOrderMoney()));
      createOrderRequest.setOrderNo("PR" + orderPrivateCar1.getId());
      createOrderRequest.setCustomerId(userInfo.getOnconUUID());
      OrderInfo orderInfo = OrderUtil.tradeOrderCreate(createOrderRequest);
      orderPrivateCar1.setTravelId(orderInfo.getOrderId());
      orderPrivateCar1.setIsCreated(1);
      //保存追缴单
      orderPrivateCarService.insert(orderPrivateCar1);
   }
}
//package com.stylefeng.guns;
//
//import com.alibaba.fastjson.JSON;
//import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
//import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
//import com.stylefeng.guns.modular.system.model.Company;
//import com.stylefeng.guns.modular.system.model.Driver;
//import com.stylefeng.guns.modular.system.model.UserInfo;
//import com.stylefeng.guns.modular.system.service.ICompanyService;
//import com.stylefeng.guns.modular.system.service.IDriverService;
//import com.stylefeng.guns.modular.system.service.IUserInfoService;
//import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
//import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
//import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
//import lombok.extern.slf4j.Slf4j;
//import org.junit.Test;
//import org.junit.runner.RunWith;
//import org.springframework.beans.BeanUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.test.context.junit4.SpringRunner;
//
//import java.math.BigDecimal;
//import java.util.List;
//
///**
// * SpringBoot方式启动类
// *
// * @author stylefeng
// * @Date 2017/5/21 12:06
// */
//@Slf4j
//@RunWith(SpringRunner.class)
//@SpringBootTest
//public class GunsApplicationTest {
//
//   @Autowired
//   private IOrderPrivateCarService orderPrivateCarService;
//
//   @Autowired
//   private IUserInfoService userInfoService;
//
//   @Autowired
//   private IDriverService driverService;
//   @Autowired
//   private ICompanyService companyService;
//   @Autowired
//   private IPaymentRecordService paymentRecordService;
//
//
//
//
//   @Test
//   public void test(){
//      OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(228);
//      Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
//      Company company = companyService.selectById(driver.getCompanyId());
//      UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
//      if(null == orderPrivateCar.getIsCreated()){
//         //先调中台创建订单
//         CreateOrderRequest createOrderRequest = new CreateOrderRequest();
//         createOrderRequest.setTreatShopId(driver.getEmpId().toString());
//         createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}");
//         createOrderRequest.setCharge(new BigDecimal(orderPrivateCar.getOrderMoney()));
//         createOrderRequest.setOrderNo("PR" + orderPrivateCar.getId());
//         createOrderRequest.setOrderId(orderPrivateCar.getTravelId());
//         createOrderRequest.setCustomerId(userInfo.getOnconUUID());
//         OrderInfo orderInfo = OrderUtil.tradeOrderCreate(createOrderRequest);
//         orderPrivateCar.setIsCreated(1);
//         orderPrivateCar.setTravelId(orderInfo.getOrderId());
//         orderPrivateCarService.updateById(orderPrivateCar);
//      }
//      //使用备付金进行支付订单
//      TradePayOffData tradePayOffData = new TradePayOffData();
//      tradePayOffData.setPartnerPayId(orderPrivateCar.getTravelId());
//      tradePayOffData.setTotalFee(Double.valueOf(orderPrivateCar.getOrderMoney() * 100).intValue() + "");
//      tradePayOffData.setOrderDesc("完成订单");
//      PayInfo payInfo = OrderUtil.tradePayOff(tradePayOffData);
//      String retCode = payInfo.getRetCode();
//      if (!"000000".equals(retCode)) {
//         log.error("备付金支付失败:{}", payInfo.getRetMsg());
//         return;
//      }
//      PayInfoData data = payInfo.getData();
//      String status = data.getStatus();
//      if ("3".equals(status)) {
//         log.error("备付金支付失败:{}", payInfo.getRetMsg());
//         return;
//      }
//      if("0".equals(status)){
//         //查询支付信息
//         GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
//         getPaymentInfoDataRequest.setPartnerPayId(orderPrivateCar.getTravelId());
//         GetPaymentInfo getPaymentInfo = OrderUtil.paymentInfo(getPaymentInfoDataRequest);
//         status = getPaymentInfo.getStatus();
//      }
//      PayInfoData payInfoData = payInfo.getData();
//      PaymentInfo paymentInfo = payInfoData.getPaymentInfos().get(0);
//      if(!"0".equals(status)){
//         //支付成功,通知三方
//         PaymentOrderRequest paymentOrderRequest = new PaymentOrderRequest();
//         paymentOrderRequest.setPayItemId(paymentInfo.getPayItemId());
//         paymentOrderRequest.setPaymentInfo(JSON.toJSONString(payInfoData.getPaymentInfos()));
//         paymentOrderRequest.setOrderId(orderPrivateCar.getTravelId());
//         paymentOrderRequest.setCharge(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()));
//         paymentOrderRequest.setPayTime(data.getPayTime());
//         paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId());
//         OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest);
//
//         //中台修改订单状态
//         ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
//         request1.setOrderId(orderPrivateCar.getTravelId());
//         request1.setStatus(9);
//         if (null != orderPrivateCar.getDriverId()) {
//            request1.setDriverId(driver.getEmpId().toString());
//            request1.setSupplierShopId(company.getEnterCode());
//         }
//         if (2 == orderPrivateCar.getPromotion()) {
//            Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
//            request1.setPromoterId(driver2.getEmpId().toString());
//         }
//         OrderUtil.modifyTravelItinerary(request1);
//
//         String payId = payInfo.getData().getPayId();
//         //copy原始订单后生成追缴单
//         OrderPrivateCar orderPrivateCar1 = new OrderPrivateCar();
//         BeanUtils.copyProperties(orderPrivateCar, orderPrivateCar1);
//         orderPrivateCar1.setId(null);
//         orderPrivateCar1.setRecoveryOrder(1);
//
//         //修改原始订单为支付状态
//         orderPrivateCar.setState(8);
//         orderPrivateCar.setPayType(5);
//         orderPrivateCar.setPayMoney(orderPrivateCar.getOrderMoney());
//         orderPrivateCarService.updateById(orderPrivateCar);
//         //保存追缴单
//         orderPrivateCarService.insert(orderPrivateCar1);
//         //添加三方支付记录
//         try {
//            paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderPrivateCar.getId(), 1, 3, orderPrivateCar.getOrderMoney(), payId, 2);
//         } catch (Exception e) {
//            throw new RuntimeException(e);
//         }
//
//
//         Driver driver1 = driverService.selectById(orderPrivateCar1.getDriverId());
//         UserInfo userInfo1 = userInfoService.selectById(orderPrivateCar1.getUserId());
//         Company company1 = companyService.selectById(driver1.getCompanyId());
//         //调三方订单中心创建行程单
//         CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
//         request.setOrderNo("PR" + orderPrivateCar1.getId());
//         request.setCustomerId(userInfo1.getOnconUUID());
//         request.setDriverId(driver1.getEmpId().toString());
//         request.setSupplierShopId(company1.getEnterCode());
//         request.setServiceType(2);
//         String travelItinerary = OrderUtil.createTravelItinerary(request);
//         orderPrivateCar1.setTravelId(travelItinerary);
//         orderPrivateCar1.setIsCreated(0);
//         orderPrivateCarService.updateById(orderPrivateCar1);
//         //修改订单状态为待支付
//         ModifyTravelItineraryRequest modifyTravelItineraryRequest = new ModifyTravelItineraryRequest();
//         modifyTravelItineraryRequest.setOrderId(orderPrivateCar1.getTravelId());
//         modifyTravelItineraryRequest.setStatus(orderPrivateCar1.getState());
//         modifyTravelItineraryRequest.setDriverId(driver1.getEmpId().toString());
//         modifyTravelItineraryRequest.setSupplierShopId(company1.getEnterCode());
//         if (2 == orderPrivateCar1.getPromotion()) {
//            Driver driver2 = driverService.selectById(orderPrivateCar1.getPromotionDriverId());
//            modifyTravelItineraryRequest.setPromoterId(driver2.getEmpId().toString());
//         }
//         OrderUtil.modifyTravelItinerary(modifyTravelItineraryRequest);
//      }
//   }
//}