Pu Zhibing
4 天以前 0a8d28436b2f7229ecdf40c6b003902002c8947f
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -48,6 +48,8 @@
import java.math.MathContext;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
@@ -165,7 +167,8 @@
   @Autowired
   private TDriverPromotionActivityService driverPromotionActivityService;
   private CarMapper carMapper;
   /**
    * 专车下单操作
    *
@@ -244,7 +247,15 @@
                  return ResultUtil.error("有未完成的订单");
               }
            }
            String serverCarModel = "";
            if(2 == orderSource){
               Driver driver = driverService.selectById(driverId);
               CarService carService = new CarService();
               carService.setType(1);
               carService.setCarId(driver.getCarId());
               CarService carService1 = carServiceMapper.selectOne(carService);
               serverCarModel = "{\"serverCarModelId\":" + carService1.getServerCarModelId() + ",\"rideType\":1}";
            }
            
            startAddress = startAddress.replaceAll("& #40;", "(");
            startAddress = startAddress.replaceAll("& #41;", ")");
@@ -260,6 +271,7 @@
            orderPrivateCar.setType(type);
            orderPrivateCar.setUserId(uid);
            orderPrivateCar.setServerCarModelId(serverCarModelId);
            orderPrivateCar.setServerCarModel(serverCarModel);
            orderPrivateCar.setOrderNum(this.getOrderNum());
            orderPrivateCar.setPlacementLon(Double.valueOf(placementLon));
            orderPrivateCar.setPlacementLat(Double.valueOf(placementLat));
@@ -553,6 +565,15 @@
                  return ResultUtil.error("有未完成的订单");
               }
            }
            if(2 == orderSource){
               Driver driver = driverService.selectById(driverId);
               CarService carService = new CarService();
               carService.setType(1);
               carService.setCarId(driver.getCarId());
               CarService carService1 = carServiceMapper.selectOne(carService);
               serverCarModel = "{\"serverCarModelId\":" + carService1.getServerCarModelId() + ",\"rideType\":1}";
            }
            
            startAddress = startAddress.replaceAll("& #40;", "(");
            startAddress = startAddress.replaceAll("& #41;", ")");
@@ -561,7 +582,7 @@
            if (ToolUtil.isEmpty(serverCarModel)) {
               return ResultUtil.error("请选择服务车型");
            }
            OrderPrivateCar orderPrivateCar = new OrderPrivateCar();
            orderPrivateCar.setPeopleNum(peopleNum);
            orderPrivateCar.setType(3);
@@ -1982,6 +2003,7 @@
      if (orderPrivateCar.getState() != 7) {
         return ResultUtil.error("订单不在待支付状态,不允许支付", new ArrayList<>());
      }
      Integer uid = orderPrivateCar.getUserId();
      Double orderMoney = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney());
      UserInfo userInfo = userInfoService.selectById(uid);
@@ -2215,6 +2237,7 @@
               goodsInfoRequest.setProfitSharing("1");
            }else{
               goodsInfoRequest.setProfitSharing("0");
               goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
            }
            goodsInfo.add(goodsInfoRequest);
            tradeOrderCreateData.setGoodsInfo(goodsInfo);
@@ -2226,6 +2249,15 @@
            orderPrivateCar.setIsCreated(1);
            resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl());
         }else{
            //查询支付信息
            GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
            getPaymentInfoDataRequest.setPartnerPayId(orderPrivateCar.getTravelId());
            GetPaymentInfo getPaymentInfo = OrderUtil.paymentInfo(getPaymentInfoDataRequest);
            String status = getPaymentInfo.getStatus();
            if("1".equals(status) || "2".equals(status)){
               payOrderPrivateCarCallback(orderPrivateCar.getId(), getPaymentInfo.getPayId(), 1);
               return ResultUtil.error("订单已完成支付,不允许重复支付", new ArrayList<>());
            }
            //拉起支付
            TradePayOff1Data tradePayOff1Data = new TradePayOff1Data();
            tradePayOff1Data.setPartnerPayId(orderPrivateCar.getTravelId());
@@ -2240,6 +2272,7 @@
               goodsInfoRequest.setProfitSharing("1");
            }else{
               goodsInfoRequest.setProfitSharing("0");
               goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
            }
            goodsInfo.add(goodsInfoRequest);
            tradePayOff1Data.setGoodsInfo(goodsInfo);
@@ -2270,11 +2303,11 @@
                  request.setDriverId(driver.getEmpId().toString());
                  ListPage<List<TravelItinerary>> travelItineraryList = OrderUtil.getTravelItineraryList(request);
                  TravelItinerary travelItinerary = travelItineraryList.getList().get(0);
                  if(travelItinerary.getStatus() != 7 || travelItinerary.getOrderStatus() == 11){
                     GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
                     getPaymentInfoDataRequest.setPartnerPayId(orderPrivateCar1.getTravelId());
                     GetPaymentInfo getPaymentInfo = OrderUtil.paymentInfo(getPaymentInfoDataRequest);
                     payOrderPrivateCarCallback(orderPrivateCar1.getId(), getPaymentInfo.getPayId(), 1);
                  if(travelItinerary.getStatus() != 7 || Arrays.asList(3, 11).contains(travelItinerary.getOrderStatus())){
                     GetPaymentInfoDataRequest getPaymentInfoDataRequest1 = new GetPaymentInfoDataRequest();
                     getPaymentInfoDataRequest1.setPartnerPayId(orderPrivateCar1.getTravelId());
                     GetPaymentInfo getPaymentInfo1 = OrderUtil.paymentInfo(getPaymentInfoDataRequest1);
                     payOrderPrivateCarCallback(orderPrivateCar1.getId(), getPaymentInfo1.getPayId(), 1);
                     break;
                  }
                  Thread.sleep(wait);