From 19c35c58f8b767d7d9c57d0cf910fd091dc7669f Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 27 二月 2025 16:37:08 +0800
Subject: [PATCH] 2.0新增

---
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java |  129 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 117 insertions(+), 12 deletions(-)

diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java
index bf7ec19..1256982 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
+import com.google.gson.Gson;
 import com.stylefeng.guns.core.base.controller.BaseController;
 import com.stylefeng.guns.core.common.constant.factory.PageFactory;
 import com.stylefeng.guns.core.shiro.ShiroKit;
@@ -14,15 +15,13 @@
 import com.stylefeng.guns.modular.system.util.*;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.ui.Model;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.stylefeng.guns.core.log.LogObjectHolder;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
+import java.io.*;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -41,6 +40,8 @@
 
     @Autowired
     private ITOrderTaxiService tOrderTaxiService;
+    @Autowired
+    private ITPubTransactionDetailsService pubTransactionDetailsService;
 
     @Autowired
     private ITOrderPositionService tOrderPositionService;
@@ -100,10 +101,72 @@
      * 跳转到修改出租车订单
      */
     @RequestMapping("/tOrderTaxi_update/{tOrderTaxiId}")
-    public String tOrderTaxiUpdate(@PathVariable Integer tOrderTaxiId, Model model) {
+    public String tOrderTaxiUpdate(@PathVariable Integer tOrderTaxiId, Model model) throws IOException {
         Map<String, Object> tOrderTaxi = tOrderTaxiService.getTaxiOrderDetailById(tOrderTaxiId);
         model.addAttribute("item",tOrderTaxi);
+        // 查询司机扣款
+        List<TPubTransactionDetails> tPubTransactionDetails = pubTransactionDetailsService.selectList(new EntityWrapper<TPubTransactionDetails>()
+                .eq("userId", tOrderTaxi.get("driverId"))
+                .eq("orderId", tOrderTaxi.get("id"))
+                .eq("type", 1)
+                .eq("userType", 2));
+        if(CollectionUtils.isEmpty(tPubTransactionDetails)){
+            model.addAttribute("companyMoney","");
+            model.addAttribute("driverMoney","");
+        }else {
+            TPubTransactionDetails pubTransactionDetailCompany = tPubTransactionDetails.stream().filter(e -> e.getOrderType().equals(6)).findFirst().orElse(null);
+            if(Objects.nonNull(pubTransactionDetailCompany)){
+                model.addAttribute("companyMoney",pubTransactionDetailCompany.getMoney());
+            }else {
+                model.addAttribute("companyMoney","");
+            }
+            TPubTransactionDetails pubTransactionDetailDriver = tPubTransactionDetails.stream().filter(e -> e.getOrderType().equals(2)).findFirst().orElse(null);
+            if(Objects.nonNull(pubTransactionDetailDriver)){
+                model.addAttribute("driverMoney",pubTransactionDetailDriver.getMoney());
+            }else {
+                model.addAttribute("driverMoney","");
+            }
+        }
+        if(tOrderTaxi.get("payManner")!=null && tOrderTaxi.get("payManner").equals("1")){
+            model.addAttribute("payMannerStr","线上收款");
+        }else {
+            model.addAttribute("payMannerStr","计费打表");
+        }
         LogObjectHolder.me().set(tOrderTaxi);
+        try{
+            //将数据存储到文件中
+            File file = new File(filePath + tOrderTaxiId + "_2.txt");
+
+            //读取文件(字符流)
+            BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
+            //循环取出数据
+            String str = null;
+            StringBuffer sb = new StringBuffer();
+            while ((str = in.readLine()) != null) {
+                sb.append(str);
+            }
+            List<TOrderPosition> list = JSONArray.parseArray(sb.toString(), TOrderPosition.class);
+            List<Map> maps = new ArrayList<>();
+            for (TOrderPosition tOrderPosition : list) {
+                Map<String, String> map = new HashMap<>();
+                map.put("lon",tOrderPosition.getLon());
+                map.put("lat",tOrderPosition.getLat());
+                maps.add(map);
+            }
+//        resultUtil = ResultUtil.success(list);
+            // 将maps转化为jsonArray字符串
+            // 使用 Gson 转换为 JSON 字符串
+//        Gson gson = new Gson();
+//        String jsonString = gson.toJson(maps);
+//        System.out.println(jsonString);
+            model.addAttribute("guiji",maps);
+        }catch (Exception e){
+            e.printStackTrace();
+            resultUtil = ResultUtil.runErr();
+            model.addAttribute("guiji","");
+        }
+
+
         return PREFIX + "tOrderTaxi_edit.html";
     }
 
@@ -122,8 +185,40 @@
      * 跳转到出租车订单轨迹页面
      */
     @RequestMapping("/tOrderTaxi_trajectory/{tOrderTaxiId}")
-    public String tOrderTaxi_trajectory(@PathVariable Integer tOrderTaxiId, Model model) {
+    public String tOrderTaxi_trajectory(@PathVariable Integer tOrderTaxiId, Model model) throws IOException {
         model.addAttribute("tOrderTaxiId",tOrderTaxiId);
+        try{
+            //将数据存储到文件中
+            File file = new File(filePath + tOrderTaxiId + "_2.txt");
+
+            //读取文件(字符流)
+            BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
+            //循环取出数据
+            String str = null;
+            StringBuffer sb = new StringBuffer();
+            while ((str = in.readLine()) != null) {
+                sb.append(str);
+            }
+            List<TOrderPosition> list = JSONArray.parseArray(sb.toString(), TOrderPosition.class);
+            List<Map> maps = new ArrayList<>();
+            for (TOrderPosition tOrderPosition : list) {
+                Map<String, String> map = new HashMap<>();
+                map.put("lon",tOrderPosition.getLon());
+                map.put("lat",tOrderPosition.getLat());
+                maps.add(map);
+            }
+//        resultUtil = ResultUtil.success(list);
+            // 将maps转化为jsonArray字符串
+            // 使用 Gson 转换为 JSON 字符串
+//        Gson gson = new Gson();
+//        String jsonString = gson.toJson(maps);
+//        System.out.println(jsonString);
+            model.addAttribute("guiji",maps);
+        }catch (Exception e){
+            e.printStackTrace();
+            resultUtil = ResultUtil.runErr();
+            model.addAttribute("guiji","");
+        }
         return PREFIX + "tOrderTaxi_trajectory.html";
     }
 
@@ -354,12 +449,12 @@
             tOrderTaxi.setUserId(tUser.getId());
             tOrderTaxi.setOrderNum(this.getOrderNum());
             tOrderTaxi.setPlacementAddress(tOrderTaxi.getStartAddress());
-            tOrderTaxi.setPlacementLon(Double.valueOf(s.get(0).split(",")[0]));
-            tOrderTaxi.setPlacementLat(Double.valueOf(s.get(0).split(",")[1]));
-            tOrderTaxi.setStartLon(Double.valueOf(s.get(0).split(",")[0]));
-            tOrderTaxi.setStartLat(Double.valueOf(s.get(0).split(",")[1]));
-            tOrderTaxi.setEndLon(Double.valueOf(e.get(0).split(",")[0]));
-            tOrderTaxi.setEndLat(Double.valueOf(e.get(0).split(",")[1]));
+            tOrderTaxi.setPlacementLon(Double.valueOf(s.get(0).split(",")[1]));
+            tOrderTaxi.setPlacementLat(Double.valueOf(s.get(0).split(",")[0]));
+            tOrderTaxi.setStartLon(Double.valueOf(s.get(0).split(",")[1]));
+            tOrderTaxi.setStartLat(Double.valueOf(s.get(0).split(",")[0]));
+            tOrderTaxi.setEndLon(Double.valueOf(e.get(0).split(",")[1]));
+            tOrderTaxi.setEndLat(Double.valueOf(e.get(0).split(",")[0]));
             tOrderTaxi.setMileage(0D);
             tOrderTaxi.setOrderMoney(new BigDecimal(0));
             tOrderTaxi.setTravelMoney(new BigDecimal(0));
@@ -373,6 +468,7 @@
             tOrderTaxi.setSubstitute(0);
             tOrderTaxi.setOrderSource(5);
             tOrderTaxi.setIsDelete(1);
+            tOrderTaxi.setPayManner(3);
             tOrderTaxiService.insert(tOrderTaxi);
             if(tOrderTaxi.getState() == 1){
                 //推送司机抢单
@@ -416,15 +512,22 @@
                         TSysPushOrder pushOrder = pushOrderService.querys(i, 2, query.getId()).get(0);
                         //获取空闲司机
                         List<TDriver> list = driverService.queryIdleDriver(2, orderTaxi.getStartLon(), orderTaxi.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
+                        System.out.println("空闲司机1"+list);
                         if(list.size() > 0){
                             double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
+                            System.out.println("空闲司机2"+driverProportion);
+
                             int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
+                            System.out.println("空闲司机3"+lastIndex);
                             lastIndex = lastIndex == 0 ? list.size() : lastIndex;
                             list = list.subList(0, lastIndex);//获取空闲司机中占比数据
+                            System.out.println("空闲司机4"+list);
                             for(TDriver driver : list){//开始进行推送
                                 //查询是否在限制推单范围内
                                 boolean bo = false;
+                                System.out.println("integers"+integers);
                                 for(Integer integer : integers){
+                                    System.out.println("距离"+integer);
                                     if(integer.compareTo(driver.getId()) == 0){
                                         bo = true;
                                         break;
@@ -433,7 +536,9 @@
                                 if(bo){
                                     continue;
                                 }
+                                System.out.println("推送1");
                                 pushUtil.pushOrderState(2, driver.getId(), orderTaxi.getId(), 2, orderTaxi.getState(), pushOrder.getPushTime());
+                                System.out.println("推送2");
                             }
                         }
                         Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间

--
Gitblit v1.7.1