From 016ddc332273c36e437a6f3b5f0a25574d5b7b78 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 05 九月 2025 09:12:43 +0800
Subject: [PATCH] bug修改

---
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java                  |   64 +++++++++++-
 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TIncomeController.java                              |   16 ++-
 ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tIncome/balance.html                                                       |    4 
 UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml                                         |    2 
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ElectricFenceUtil.java                                        |    4 
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java                              |    8 
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml                        |   86 +++++++++++++++++
 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/UploadUtil.java                                |    2 
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                                                 |   16 +++
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/OrderPrivateCarMapper.java                               |   10 ++
 UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java                                  |    4 
 ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tOrderPrivateCarConfirm/tOrderPrivateCar_info.js                         |    2 
 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarConfirmController.java |    2 
 UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java                    |   26 ++--
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java                                   |   11 ++
 ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/specialAreaBilling/specialAreaBilling.js                                 |    2 
 UserZYTravel/guns-admin/pom.xml                                                                                                              |    6 +
 17 files changed, 225 insertions(+), 40 deletions(-)

diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index 5635a41..c9158ef 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -881,6 +881,22 @@
                 baseWarpper.setRemark(String.valueOf(map.get("remark")));
                 data.add(baseWarpper);
             }
+            List<TransactionDetails> transactionDetails = transactionDetailsService.selectList(new EntityWrapper<TransactionDetails>()
+                    .eq("type", 1)
+                    .eq("userId", uid)
+                    .eq("state", 2)
+                    .eq("userType", 2)
+                    .eq("orderType", 7));
+            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+            for (TransactionDetails transactionDetail : transactionDetails) {
+                BaseWarpper baseWarpper = new BaseWarpper();
+                baseWarpper.setDay(format.format(transactionDetail.getInsertTime()));
+                baseWarpper.setAmount(transactionDetail.getMoney());
+                baseWarpper.setRemark(transactionDetail.getRemark());
+                baseWarpper.setName("平台扣除");
+                baseWarpper.setData(new HashMap<>());
+                data.add(baseWarpper);
+            }
             return ResultUtil.success(data);
         }catch (Exception e){
             e.printStackTrace();
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/OrderPrivateCarMapper.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/OrderPrivateCarMapper.java
index 9347446..02c93f2 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/OrderPrivateCarMapper.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/OrderPrivateCarMapper.java
@@ -60,6 +60,16 @@
      */
     List<OrderPrivateCar> queryByState(@Param("uid") Integer uid, @Param("orderType") Integer orderType,
                                        @Param("type") Integer type, @Param("state") Integer...state) throws Exception;
+    /**
+     * 根据状态数据订单数据
+     * @param uid
+     * @param orderType
+     * @param state
+     * @return
+     * @throws Exception
+     */
+    List<OrderPrivateCar> queryDriverByState(@Param("uid") Integer uid, @Param("orderType") Integer orderType,
+                                       @Param("type") Integer type, @Param("state") Integer...state) throws Exception;
 
 
 
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
index 34c1e42..de390aa 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
@@ -409,6 +409,92 @@
             and `type` = #{type}
         </if>
     </select>
+    <select id="queryDriverByState" resultType="OrderPrivateCar">
+        select
+        id as id,
+        `type` as `type`,
+        userId as userId,
+        serverCarModelId as serverCarModelId,
+        driverId as driverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        startMileage as startMileage,
+        startMoney as startMoney,
+        mileageKilometers as mileageKilometers,
+        mileageMoney as mileageMoney,
+        duration as duration,
+        durationMoney as durationMoney,
+        wait as wait,
+        waitMoney as waitMoney,
+        longDistance as longDistance,
+        longDistanceMoney as longDistanceMoney,
+        parkMoney as parkMoney,
+        roadTollMoney as roadTollMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        substitute as substitute,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        orderType as orderType,
+        orderSource as orderSource,
+        invoiceId as invoiceId,
+        isReassign as isReassign,
+        reassignNotice as reassignNotice,
+        trackId as trackId,
+        isDelete as isDelete,
+        oldState as oldState,
+        telX as telX,
+        bindId as bindId
+        from t_order_private_car where isDelete = 1 and driverId = #{uid}
+        <if test="null != orderType">
+            and orderType = #{orderType}
+        </if>
+        <if test="null != state">
+            and state in
+            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="null != type">
+            and `type` = #{type}
+        </if>
+    </select>
 
 
     <select id="query" resultType="OrderPrivateCar">
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
index 339a911..0595060 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
@@ -457,6 +457,17 @@
     @ApiModelProperty(value = "支付流水号")
     @TableField("transactionId")
     private String transactionId;
+    @ApiModelProperty(value = "是否已确认 1=是 0=否")
+    @TableField("isConfirm")
+    private Integer isConfirm;
+
+    public Integer getIsConfirm() {
+        return isConfirm;
+    }
+
+    public void setIsConfirm(Integer isConfirm) {
+        this.isConfirm = isConfirm;
+    }
 
     public String getTransactionId() {
         return transactionId;
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 1476c81..039b892 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -302,7 +302,7 @@
         switch (state){
             case 3://出发前往预约点
                 // 判断是否有其他未完成的单子
-                List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.queryByState(orderPrivateCar.getUserId(), 1, 1, 3,4, 5,6);
+                List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.queryDriverByState(orderPrivateCar.getDriverId(), 1, 1, 3,4, 5,6);
                 if(!CollectionUtils.isEmpty(orderPrivateCars)){
                     return ResultUtil.error("有未完成的服务订单");
                 }
@@ -531,6 +531,7 @@
         orderPrivateCar.setParkMoney(null == parkingFee ? 0D : parkingFee);
         orderPrivateCar.setRoadTollMoney(null == crossingFee ? 0D : crossingFee);
         orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney() + orderPrivateCar.getParkMoney() + orderPrivateCar.getRoadTollMoney());
+        orderPrivateCar.setIsConfirm(1);
         //判断是否首单免费-免费直接完成
         Integer orderNumber = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("userId",orderPrivateCar.getUserId()).last("and (state=8 or state=9)"));
 
@@ -561,7 +562,7 @@
                     driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                     driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                     driverService.updateById(driver);
-                    incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(),driver.getBalance());
+                    incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(),driver.getLaveBusinessMoney());
                 }else{
                     orderPrivateCar.setState(7);
                     orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney()-userInfo.getFreeMoney().doubleValue());
@@ -627,7 +628,7 @@
             driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
             driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
             driverService.updateById(driver);
-            incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getBalance());
+            incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getLaveBusinessMoney());
         }else {
             orderPrivateCar.setState(7);
         }
@@ -693,6 +694,56 @@
             this.setMoney(orderPrivateCar, 0D, 0D);
         }
 
+        if(Objects.isNull(orderPrivateCar.getEstimatedPrice())){
+            orderPrivateCar.setEstimatedPrice(0D);
+        }
+        if(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()).subtract(new BigDecimal(orderPrivateCar.getEstimatedPrice())).abs().doubleValue() > 3){
+            orderPrivateCar.setIsException(1);
+        }
+        this.updateById(orderPrivateCar);
+
+        if(orderPrivateCar.getIsConfirm() == 0){
+            // 查询起点或者终点在特殊区域中
+            List<SpecialAreaBilling> specialAreaBillings = specialAreaBillingService.selectList(new EntityWrapper<SpecialAreaBilling>()
+                    .eq("state", 1));
+            if(!CollectionUtils.isEmpty(specialAreaBillings)){
+                // 判断起点或者终点在特殊区域中
+                Iterator<SpecialAreaBilling> iterator = specialAreaBillings.iterator();
+                while (iterator.hasNext()) {
+                    SpecialAreaBilling specialAreaBilling = iterator.next();
+                    // 起点
+                    Double startLon = orderPrivateCar.getStartLon();
+                    Double startLat = orderPrivateCar.getStartLat();
+                    boolean start = ElectricFenceUtil.monitorElectricFenc(specialAreaBilling.getCoordinate(), startLon + "," + startLat);
+                    // 终点
+                    Double endLon = orderPrivateCar.getEndLon();
+                    Double endLat = orderPrivateCar.getEndLat();
+                    boolean end = ElectricFenceUtil.monitorElectricFenc(specialAreaBilling.getCoordinate(), endLon + "," + endLat);
+                    if(!start && !end){
+                        iterator.remove();
+                    }
+                }
+                if(!CollectionUtils.isEmpty(specialAreaBillings)){
+                    // 拿到价格系数最高的特殊区域
+                    specialAreaBillings.sort(new Comparator<SpecialAreaBilling>() {
+                        @Override
+                        public int compare(SpecialAreaBilling o1, SpecialAreaBilling o2) {
+                            return o2.getPriceCoefficient().compareTo(o1.getPriceCoefficient());
+                        }
+                    });
+                    BigDecimal priceCoefficient = specialAreaBillings.get(0).getPriceCoefficient();
+                    orderPrivateCar.setOrderMoney(Objects.nonNull(orderPrivateCar.getOrderMoney())?new BigDecimal(orderPrivateCar.getOrderMoney()).multiply(priceCoefficient).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue():0D);
+                    orderPrivateCar.setStartMoney(Objects.nonNull(orderPrivateCar.getStartMoney())?new BigDecimal(orderPrivateCar.getStartMoney()).multiply(priceCoefficient).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue():0D);
+                    orderPrivateCar.setMileageMoney(Objects.nonNull(orderPrivateCar.getMileageMoney())?new BigDecimal(orderPrivateCar.getMileageMoney()).multiply(priceCoefficient).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue():0D);
+                    orderPrivateCar.setDurationMoney(Objects.nonNull(orderPrivateCar.getDurationMoney())?new BigDecimal(orderPrivateCar.getDurationMoney()).multiply(priceCoefficient).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue():0D);
+                    orderPrivateCar.setWaitMoney(Objects.nonNull(orderPrivateCar.getWaitMoney())?new BigDecimal(orderPrivateCar.getWaitMoney()).multiply(priceCoefficient).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue():0D);
+                    orderPrivateCar.setLongDistanceMoney(Objects.nonNull(orderPrivateCar.getLongDistanceMoney())?new BigDecimal(orderPrivateCar.getLongDistanceMoney()).multiply(priceCoefficient).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue():0D);
+                    orderPrivateCar.setParkMoney(Objects.nonNull(orderPrivateCar.getParkMoney())?new BigDecimal(orderPrivateCar.getParkMoney()).multiply(priceCoefficient).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue():0D);
+                    orderPrivateCar.setRoadTollMoney(Objects.nonNull(orderPrivateCar.getRoadTollMoney())?new BigDecimal(orderPrivateCar.getRoadTollMoney()).multiply(priceCoefficient).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue():0D);
+                }
+            }
+        }
+
         Map<String, Object> map = new HashMap<>();
         map.put("orderMoney", orderPrivateCar.getOrderMoney());//订单金额
         map.put("startMileage", orderPrivateCar.getStartMileage());//起步价
@@ -711,12 +762,6 @@
         map.put("couponMoney", orderPrivateCar.getCouponMoney());//优惠券抵扣金额
         map.put("discountMoney", orderPrivateCar.getDiscountMoney());//折扣抵扣金额
         map.put("discount", orderPrivateCar.getDiscount());//折扣
-        if(Objects.isNull(orderPrivateCar.getEstimatedPrice())){
-            orderPrivateCar.setEstimatedPrice(0D);
-        }
-        if(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()).subtract(new BigDecimal(orderPrivateCar.getEstimatedPrice())).abs().doubleValue() > 3){
-            orderPrivateCar.setIsException(1);
-        }
         map.put("estimatedPrice", orderPrivateCar.getEstimatedPrice());
         map.put("isException", orderPrivateCar.getIsException());//是否异常
         return map;
@@ -1008,6 +1053,7 @@
         OrderPrivateCar orderPrivateCar = this.selectById(orderId);
         orderPrivateCar.setPriceType(priceType);
         orderPrivateCar.setUpdatePrice(updatePrice);
+        orderPrivateCar.setOrderMoney(updatePrice.doubleValue());
         orderPrivateCar.setPriceAuditState(1);
         orderPrivateCar.setState(6);
         this.updateById(orderPrivateCar);
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
index 4627723..ee6b561 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
@@ -190,7 +190,7 @@
                     driver.setBalance(new BigDecimal(balance).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                     driverService.updateById(driver);
                     //添加交易明细
-                    transactionDetailsService.saveDriverData(uid, "司机改派支付", aDouble, 2, 1, 2, reassign.getOrderType(), reassign.getOrderId(), driver.getBalance());
+                    transactionDetailsService.saveDriverData(uid, "司机改派支付", aDouble, 2, 1, 2, reassign.getOrderType(), reassign.getOrderId(), driver.getLaveBusinessMoney());
             
             
                     //修改改派通知状态
@@ -354,7 +354,7 @@
                 driverService.updateById(driver);
                 for(String id : split){
                     //添加交易明细
-                    transactionDetailsService.saveDriverData(uid, "司机改派支付", aDouble, 2, 1, 2, 3, Integer.valueOf(id),driver.getBalance());
+                    transactionDetailsService.saveDriverData(uid, "司机改派支付", aDouble, 2, 1, 2, 3, Integer.valueOf(id),driver.getLaveBusinessMoney());
                 }
 
                 //修改改派通知状态
@@ -418,7 +418,7 @@
                 PaymentRecord query = paymentRecordService.query(1, null, null, Integer.valueOf(key), 3, type, 1);
                 if(null != query){
                     //添加交易明细
-                    transactionDetailsService.saveDriverData(reassigns.get(0).getOriginalDriverId(), "司机改派支付", reassigns.get(0).getMoney(), 2, 1, 2, 3, Integer.valueOf(key),driver.getBalance());
+                    transactionDetailsService.saveDriverData(reassigns.get(0).getOriginalDriverId(), "司机改派支付", reassigns.get(0).getMoney(), 2, 1, 2, 3, Integer.valueOf(key),driver.getLaveBusinessMoney());
                     for(Reassign reassign : reassigns){
                         reassign.setState(2);
                         reassign.setPayOrder(order_id);
@@ -462,7 +462,7 @@
             PaymentRecord query = paymentRecordService.query(1, null, null, reassign.getOrderId(), reassign.getOrderType(), type, 1);
             if(null != query){
                 //添加交易明细
-                transactionDetailsService.saveDriverData(reassign.getOriginalDriverId(), "司机改派支付", reassign.getMoney(), 2, 1, 2, reassign.getOrderType(), reassign.getOrderId(),driver.getBalance());
+                transactionDetailsService.saveDriverData(reassign.getOriginalDriverId(), "司机改派支付", reassign.getMoney(), 2, 1, 2, reassign.getOrderType(), reassign.getOrderId(),driver.getLaveBusinessMoney());
                 reassign.setState(2);
                 reassign.setPayOrder(order_id);
                 reassign.setPayTime(new Date());
diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ElectricFenceUtil.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ElectricFenceUtil.java
index 1941b82..7679220 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ElectricFenceUtil.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ElectricFenceUtil.java
@@ -26,8 +26,8 @@
         List<Double> pointsX = new ArrayList<>();
         List<Double> pointsY = new ArrayList<>();
         for (String s : split) {
-            pointsX.add(Double.valueOf(s.split(",")[1]));
-            pointsY.add(Double.valueOf(s.split(",")[0]));
+            pointsX.add(Double.valueOf(s.split(",")[0]));
+            pointsY.add(Double.valueOf(s.split(",")[1]));
         }
         String lon1 = lonLat.split(",")[0];
         String lat1 = lonLat.split(",")[1];
diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TIncomeController.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TIncomeController.java
index 42ae3b5..4a24e18 100644
--- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TIncomeController.java
+++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TIncomeController.java
@@ -140,7 +140,6 @@
                 tPubTransactionDetails.setOrderType(7);
                 break;
         }
-        pubTransactionDetailsService.insert(tPubTransactionDetails);
         // type=1增加 type=2减少
         switch (type){
             case 1:
@@ -148,22 +147,27 @@
 
                 BigDecimal add = tDriver.getBalance().add(bigDecimal);
                 tDriver.setBalance(add);
+                BigDecimal laveBusinessMoney = new BigDecimal(tDriver.getLaveBusinessMoney()).add(bigDecimal);
+                tDriver.setLaveBusinessMoney(laveBusinessMoney.doubleValue());
                 break;
             case 2:
                 BigDecimal bigDecimal1 = new BigDecimal(mount);
                 BigDecimal subtract = tDriver.getBalance().subtract(bigDecimal1);
                 int comparisonResult = subtract.compareTo(BigDecimal.ZERO);
                 // 小于0 设置为0 不要为负数
-                if (comparisonResult<0){
-//                    tDriver.setBalance(BigDecimal.ZERO);
-
-                    return 502;
-                }else{
+                if (comparisonResult>0){
                     tDriver.setBalance(subtract);
+                }
+                BigDecimal laveBusinessMoney1 = new BigDecimal(tDriver.getLaveBusinessMoney()).subtract(bigDecimal1);
+                int comparisonResult1 = laveBusinessMoney1.compareTo(BigDecimal.ZERO);
+                if (comparisonResult1>0){
+                    tDriver.setLaveBusinessMoney(laveBusinessMoney1.doubleValue());
                 }
                 break;
         }
         driverService.updateById(tDriver);
+        tPubTransactionDetails.setDriverBalance(tDriver.getLaveBusinessMoney());
+        pubTransactionDetailsService.insert(tPubTransactionDetails);
         return SUCCESS_TIP;
     }
     /**
diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarConfirmController.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarConfirmController.java
index 8c5a8db..c8b6f9d 100644
--- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarConfirmController.java
+++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarConfirmController.java
@@ -203,6 +203,8 @@
         orderPrivateCar.setAbnormalMoney(orderPrivateCar.getOrderMoney());
         orderPrivateCar.setOrderMoney(money);
         orderPrivateCar.setIsException(0);
+        orderPrivateCar.setPriceAuditState(2);
+        orderPrivateCar.setState(7);
         orderPrivateCar.updateById();
         // 推送消息
         TOrderPrivateCar finalOrderPrivateCar = orderPrivateCar;
diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/UploadUtil.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/UploadUtil.java
index 2b7c448..2507017 100644
--- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/UploadUtil.java
+++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/UploadUtil.java
@@ -4,7 +4,7 @@
 import com.stylefeng.guns.core.base.controller.BaseController;
 import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
 import com.stylefeng.guns.core.exception.GunsException;
-import com.stylefeng.guns.core.util.ObsUploadUtil;
+//import com.stylefeng.guns.core.util.ObsUploadUtil;
 import com.stylefeng.guns.modular.system.util.OssUploadUtil;
 import com.stylefeng.guns.modular.system.util.qiniuyun.KodoUtil;
 import org.slf4j.Logger;
diff --git a/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tIncome/balance.html b/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tIncome/balance.html
index 05714da..d3e3b73 100644
--- a/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tIncome/balance.html
+++ b/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tIncome/balance.html
@@ -21,8 +21,8 @@
                             <option value="2">车费平台手续费扣除</option>
                             <option value="3">充值</option>
                             <option value="4">提现</option>
-                            <option value="5">平台充值</option>
-                            <option value="6">平台扣除</option>
+                            <option value="6">平台充值</option>
+                            <option value="7">平台扣除</option>
                         </#SelectCon>
                     </div>
                     <div class="col-sm-3">
diff --git a/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/specialAreaBilling/specialAreaBilling.js b/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/specialAreaBilling/specialAreaBilling.js
index 55a508a..b893644 100644
--- a/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/specialAreaBilling/specialAreaBilling.js
+++ b/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/specialAreaBilling/specialAreaBilling.js
@@ -96,7 +96,7 @@
         }, function () {
             var ajax = new $ax(Feng.ctxPath + "/specialAreaBilling/delete", function (data) {
                 swal("删除成功", "您已经成功删除了。", "success");
-                TCar.table.refresh();
+                SpecialAreaBilling.table.refresh();
             }, function (data) {
                 swal("删除失败", data.responseJSON.message+"!", "warning");
             });
diff --git a/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tOrderPrivateCarConfirm/tOrderPrivateCar_info.js b/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tOrderPrivateCarConfirm/tOrderPrivateCar_info.js
index 2811c43..a1379cc 100644
--- a/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tOrderPrivateCarConfirm/tOrderPrivateCar_info.js
+++ b/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tOrderPrivateCarConfirm/tOrderPrivateCar_info.js
@@ -163,7 +163,7 @@
     ajax.start();
 }
 TOrderPrivateCarInfoDlg.confirmMoney= function(){
-    var ajax = new $ax(Feng.ctxPath + "/tOrderPrivateCar/confirmMoney", function(data){
+    var ajax = new $ax(Feng.ctxPath + "/tOrderPrivateCarConfirm/confirmMoney", function(data){
         Feng.success("修改成功!");
         window.parent.TOrderPrivateCar.table.refresh();
         TOrderPrivateCarInfoDlg.close();
diff --git a/UserZYTravel/guns-admin/pom.xml b/UserZYTravel/guns-admin/pom.xml
index 3db4d24..435b154 100644
--- a/UserZYTravel/guns-admin/pom.xml
+++ b/UserZYTravel/guns-admin/pom.xml
@@ -203,6 +203,12 @@
             <artifactId>wechatpay-java</artifactId>
             <version>0.2.12</version>
         </dependency>
+        <dependency>
+            <groupId>com.alipay.sdk</groupId>
+            <artifactId>alipay-sdk-java</artifactId>
+            <version>4.39.186.ALL</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 
diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 77e3a99..e60c2c4 100644
--- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -904,7 +904,10 @@
         if(null == orderPrivateCar){
             return ResultUtil.error("取消订单失败,订单信息有误");
         }
-        if(orderPrivateCar.getState() > 5 && orderPrivateCar.getState() != 11){
+        if(orderPrivateCar.getPayMethod() == 0 && orderPrivateCar.getPaymentAdvanceMoney()>0 && orderPrivateCar.getState() > 5 && orderPrivateCar.getState() != 11){
+            return ResultUtil.error("取消订单失败,当前状态无法取消");
+        }
+        if(orderPrivateCar.getPayMethod() == 1 && orderPrivateCar.getState() > 5 && orderPrivateCar.getState() != 11){
             return ResultUtil.error("取消订单失败,不合法的操作");
         }
         if(null == orderPrivateCar.getDriverId()){//没有接单的情况
@@ -1126,7 +1129,7 @@
                     driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                     driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                     driverService.updateById(driver);
-                    incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue(),driver.getBalance());
+                    incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue(),driver.getLaveBusinessMoney());
 
                     this.deleteTask(id);//删除定时任务
 
@@ -1187,11 +1190,10 @@
                             for(Driver driver : list){//开始进行推送
                                 // 判断该司机是否有30分钟内预约单
                                 long count = orderPrivateCars.stream().filter(orderPrivateCar1 -> driver.getId().equals(orderPrivateCar1.getDriverId())
-                                        && DateUtil.dateToLocalDateTime(orderPrivateCar1.getTravelTime()).minusMinutes(query.getLimitationTime()).isBefore(LocalDateTime.now())
-                                        && DateUtil.dateToLocalDateTime(orderPrivateCar1.getTravelTime()).isAfter(LocalDateTime.now())).count();
-                                if(orderPrivateCar.getOrderType() == 2 && orderPrivateCarDriverIds.contains(driver.getId())){
-                                    continue;
-                                }
+                                        && DateUtil.dateToLocalDateTime(orderPrivateCar1.getTravelTime()).minusMinutes(query.getLimitationTime()).isBefore(LocalDateTime.now())).count();
+//                                if(orderPrivateCar.getOrderType() == 2 && orderPrivateCarDriverIds.contains(driver.getId())){
+//                                    continue;
+//                                }
                                 if(count > 0){
                                     continue;
                                 }
@@ -1594,7 +1596,7 @@
                         driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driverService.updateById(driver);
-                        incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getBalance());
+                        incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getLaveBusinessMoney());
                         orderPrivateCar.setState(8);
                     }else {
                         if(orderPrivateCar.getOrderSource() == 2){
@@ -1646,7 +1648,7 @@
                         driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driverService.updateById(driver);
-                        incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getBalance());
+                        incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getLaveBusinessMoney());
                     }
 
 
@@ -1834,7 +1836,7 @@
             driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
             driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
             driverService.updateById(driver);
-            incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getBalance());
+            incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getLaveBusinessMoney());
             this.deleteTask(orderPrivateCar.getId());//删除定时任务
 
             // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
@@ -1937,7 +1939,7 @@
                         driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driverService.updateById(driver);
-                        incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getBalance());
+                        incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getLaveBusinessMoney());
                     }else {
                         if(orderPrivateCar.getOrderSource() == 2){
                             orderPrivateCar.setState(2);
@@ -1975,7 +1977,7 @@
                         driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                         driverService.updateById(driver);
-                        incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getBalance());
+                        incomeService.saveDriverData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue(), driver.getLaveBusinessMoney());
                     }
                 }
                 // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
index a8bb09a..3213550 100644
--- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
+++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
@@ -319,7 +319,7 @@
         updateTime as updateTime,
         updateUser as updateUser
         from t_driver
-        where flag != 3 and state = 3 and authState = 2
+        where flag != 3 and state in (2,3) and authState = 2
         <if test="null != companyId">
             <choose>
                 <when test="companyId != 1">
diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index f715723..b54efa8 100644
--- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -132,7 +132,9 @@
         List<Driver> list = new ArrayList<>();
         for(Driver driver : drivers){
             int count = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driver.getId())
-                    .in("state", Arrays.asList(2, 3, 4, 5, 6, 11)).eq("isDelete", 1));
+                    .in("state", Arrays.asList(2, 3, 4, 11))
+                    .ne("orderType",2)
+                    .eq("isDelete", 1));
             if(0 != count){
                 continue;
             }

--
Gitblit v1.7.1