From 79d97c39f1d118824f91467feb9f4a55717fd0c0 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 26 七月 2024 14:03:41 +0800
Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/IgoTravel into 2.0

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java |   71 ++++++++++++++++++++++++++++++-----
 1 files changed, 61 insertions(+), 10 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
index 8cbe308..838c5be 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.common.constant.state.Order;
 import com.stylefeng.guns.core.util.DateUtil;
@@ -15,10 +16,7 @@
 import com.stylefeng.guns.modular.system.dao.PhoneMapper;
 import com.stylefeng.guns.modular.system.dao.RegionMapper;
 import com.stylefeng.guns.modular.system.dao.SysReformistMapper;
-import com.stylefeng.guns.modular.system.model.BankCard;
-import com.stylefeng.guns.modular.system.model.Driver;
-import com.stylefeng.guns.modular.system.model.OrderPosition;
-import com.stylefeng.guns.modular.system.model.Region;
+import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
 import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo;
@@ -93,6 +91,18 @@
 
     @Autowired
     private IBankCardService bankCardService;
+    
+    @Autowired
+    private ICancleOrderService cancleOrderService;
+    
+    @Autowired
+    private ISettlementDetailService settlementDetailService;
+    
+    @Autowired
+    private ISettlementRecordService settlementRecordService;
+    
+    @Resource
+    private IBalanceUsageRecordService balanceUsageRecordService;
 
 
 
@@ -123,7 +133,7 @@
 //        List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(state, uid);
 //        datas.addAll(list2);
         //小件物流
-        List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid, language);
+        List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(state, uid, language);
         datas.addAll(list3);
 
         //分页
@@ -163,7 +173,7 @@
             List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(language, state, uid);
             datas.addAll(list2);
         }else{//小件物流
-            List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid, language);
+            List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(state, uid, language);
             datas.addAll(list3);
         }
 
@@ -199,12 +209,30 @@
 //        datas.addAll(list);
         //专车
         List<Map<String, Object>> list1 = orderPrivateCarService.queryMyAllOrder(state, uid, language);
+        for (Map<String, Object> map : list1) {
+            Integer id = Integer.valueOf(map.get("id").toString());
+            map.put("settleAccounts", 0);
+            SettlementDetail settlementDetail = settlementDetailService.selectOne(new EntityWrapper<SettlementDetail>().eq("orderId", id).eq("orderType", 1));
+            if(null != settlementDetail){
+                SettlementRecord settlementRecord = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
+                map.put("settleAccounts", null == settlementRecord || settlementRecord.getPaymentStatus() == 1 ? 0 : 1);
+            }
+        }
         datas.addAll(list1);
         //跨城
 //        List<Map<String, Object>> list2 = orderCrossCityService.queryMyAllOrder(state, uid);
 //        datas.addAll(list2);
         //小件物流
         List<Map<String, Object>> list3 = orderLogisticsService.queryMyAllOrder(state, uid, language);
+        for (Map<String, Object> map : list3) {
+            Integer id = Integer.valueOf(map.get("id").toString());
+            map.put("settleAccounts", 0);
+            SettlementDetail settlementDetail = settlementDetailService.selectOne(new EntityWrapper<SettlementDetail>().eq("orderId", id).eq("orderType", 4));
+            if(null != settlementDetail){
+                SettlementRecord settlementRecord = settlementRecordService.selectById(settlementDetail.getSettlementRecordId());
+                map.put("settleAccounts", null == settlementRecord || settlementRecord.getPaymentStatus() == 1 ? 0 : 1);
+            }
+        }
         datas.addAll(list3);
 
         List<OrderListWarpper> orderListWarpper = OrderListWarpper.getOrderListWarpper(datas);
@@ -493,6 +521,25 @@
         if(null != map.get("telX")){
             map.put("phone", map.get("telX"));
         }
+        Integer companyId = 1;
+        if(null != map.get("driverId")){
+            companyId = Integer.valueOf(String.valueOf(map.get("companyId")));
+        }
+        CancleOrder cancleOrder = cancleOrderService.selectOne(new EntityWrapper<CancleOrder>().eq("companyId", companyId));
+        JSONObject jsonObject = JSON.parseObject(cancleOrder.getContent());
+        int driverTimeout = jsonObject.getIntValue("driverTimeout");
+    
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Integer type = Integer.valueOf(map.get("orderType").toString());
+        if(type == 2){
+            String travelTime = map.get("travelTime").toString();
+            long time = System.currentTimeMillis() - sdf.parse(travelTime).getTime() - (driverTimeout * 60000);
+            map.put("timeOutCancel", Double.valueOf(time / 60000).intValue());
+        }else{
+            String estimateArriveTime = map.get("estimateArriveTime").toString();
+            long time = System.currentTimeMillis() - sdf.parse(estimateArriveTime).getTime() - (driverTimeout * 60000);
+            map.put("timeOutCancel", Double.valueOf(time / 60000).intValue());
+        }
         return map;
     }
 
@@ -700,7 +747,7 @@
             case 3://城际
                 return orderCrossCityService.calculateMileage(orderPosition);
             case 4://
-                break;
+                return orderLogisticsService.calculateMileage(orderPosition.getOrderId(), orderPosition.getLon(), orderPosition.getLat());
             case 5:
                 break;
             case 6:
@@ -1056,7 +1103,7 @@
 
         for(OrderPrivateCar order : orderList){
             if(order.getSmsTime()==null ){
-                if(order.getGetoffTime().getTime()+24*60*60*1000L<day.getTime()){
+                if(null != order.getGetoffTime() && order.getGetoffTime().getTime()+24*60*60*1000L<day.getTime()){
                     order.setSmsNumber(order.getSmsNumber()+1);
                     order.setSmsTime(day);
                     //发送短信
@@ -1175,14 +1222,18 @@
             }
             if(payType == 3){//余额支付
                 driver.setBalance(driver.getBalance() - money);
-                if(driver.getLaveBusinessMoney().compareTo(money) < 0){
-                    double b = money - driver.getLaveBusinessMoney();
+                Double laveBusinessMoney = driver.getLaveBusinessMoney();
+                if(laveBusinessMoney.compareTo(money) < 0){
+                    double b = money - laveBusinessMoney;
                     driver.setLaveBusinessMoney(0D);
                     driver.setLaveActivityMoney(driver.getLaveActivityMoney() - b);
                     driverService.updateById(driver);
+                    balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 1, b, orderType == 1 ? 1 : 2);
+                    balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 2, laveBusinessMoney, orderType == 1 ? 1 : 2);
                 }else{
                     driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - money);
                     driverService.updateById(driver);
+                    balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 2, money, orderType == 1 ? 1 : 2);
                 }
 
                 if(orderType == 1){//专车

--
Gitblit v1.7.1