From c18ec3846c8483975de2224c1ecac9470e9b2804 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 16 八月 2023 19:21:36 +0800
Subject: [PATCH] 同步代码

---
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TOrderController.java |  133 ++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 121 insertions(+), 12 deletions(-)

diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TOrderController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TOrderController.java
index 8fb8b15..0ae9820 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TOrderController.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TOrderController.java
@@ -2,25 +2,38 @@
 
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.base.controller.BaseController;
 import com.stylefeng.guns.core.base.tips.SuccessTip;
 import com.stylefeng.guns.core.log.LogObjectHolder;
+import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.system.controller.resp.TAppUserDetailOrderResp;
 import com.stylefeng.guns.modular.system.controller.resp.TDriverCommissionResp;
 import com.stylefeng.guns.modular.system.controller.resp.TOrderResp;
 import com.stylefeng.guns.modular.system.controller.util.ExcelUtil;
+import com.stylefeng.guns.modular.system.enums.OrderStateEnum;
 import com.stylefeng.guns.modular.system.model.TAppUser;
 import com.stylefeng.guns.modular.system.model.TDriver;
 import com.stylefeng.guns.modular.system.model.TOrder;
+import com.stylefeng.guns.modular.system.model.TOrderPosition;
 import com.stylefeng.guns.modular.system.service.ITAppUserService;
+import com.stylefeng.guns.modular.system.service.ITCancelOrderService;
+import com.stylefeng.guns.modular.system.service.ITDriverService;
 import com.stylefeng.guns.modular.system.service.ITOrderService;
+import com.stylefeng.guns.modular.system.util.HttpRequestUtil;
+import com.stylefeng.guns.modular.system.util.PushURL;
+import com.stylefeng.guns.modular.system.util.RedisUtil;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.PushOrderInfoWarpper;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -29,14 +42,11 @@
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletResponse;
-import java.io.OutputStream;
+import java.io.*;
 import java.math.BigDecimal;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * 控制器
@@ -54,6 +64,17 @@
     private ITOrderService tOrderService;
     @Autowired
     private ITAppUserService tAppUserService;
+    @Autowired
+    private ITCancelOrderService tCancelOrderService;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Autowired
+    private ITDriverService driverService;
+
+    @Value("${filePath}")
+    private String filePath;
 
     /**
      * 跳转到首页
@@ -150,6 +171,7 @@
         if(Objects.nonNull(userId)){
             wrapper.eq("user_id",userId);
         }
+        wrapper.orderBy("createTime",false);
         return tOrderService.selectList(wrapper);
     }
 
@@ -182,7 +204,8 @@
                             String userPhone,
                             Integer state,
                             String driverName) {
-        return tOrderService.getOrderList(createTime, code, source, userName, userPhone, state, driverName,2);
+//        return tOrderService.getOrderList(createTime, code, source, userName, userPhone, state, driverName,2);
+        return tCancelOrderService.getCancelOrderList(createTime, code, source, userName, userPhone, state, driverName);
     }
 
     /**
@@ -197,23 +220,101 @@
 
         EntityWrapper<TOrder> wrapper = new EntityWrapper<>();
         if(Objects.nonNull(userId)){
-            wrapper.eq("user_id",userId);
+            wrapper.eq("userId",userId);
         }
         List<TOrder> tOrders = tOrderService.selectList(wrapper);
         for (TOrder tOrder : tOrders) {
             TAppUserDetailOrderResp tAppUserDetailOrderResp = new TAppUserDetailOrderResp();
             BeanUtils.copyProperties(tOrder,tAppUserDetailOrderResp);
 
-            // TODO 计算总里程
-
+            // 计算总里程
+            if(Objects.nonNull(tOrder.getActualMileage())){
+                tAppUserDetailOrderResp.setMileageSum(tOrder.getActualMileage()/1000);
+            }
 
             // 计算总时长
-            long travelTimeSum = DateUtil.between(tAppUserDetailOrderResp.getBoardingTime(), tAppUserDetailOrderResp.getGetoffTime(), DateUnit.MINUTE);
+            long travelTimeSum = 0;
+            if(Objects.nonNull(tAppUserDetailOrderResp.getBoardingTime()) && Objects.nonNull(tAppUserDetailOrderResp.getGetoffTime())){
+                travelTimeSum = DateUtil.between(tAppUserDetailOrderResp.getBoardingTime(), tAppUserDetailOrderResp.getGetoffTime(), DateUnit.MINUTE);
+            }
             tAppUserDetailOrderResp.setTravelTimeSum(Integer.valueOf(Long.toString(travelTimeSum)));
 
             list.add(tAppUserDetailOrderResp);
         }
         return list;
+    }
+
+
+
+    @RequestMapping(value = "/getOrderTrack")
+    @ResponseBody
+    public ResultUtil getOrderTrack(Integer orderDetailId){
+        if(ToolUtil.isNotEmpty(orderDetailId)){
+            try {
+                //将数据存储到文件中
+                File file = new File(filePath + orderDetailId + ".json");
+                if(!file.exists()){
+                    return ResultUtil.success(new ArrayList<>());
+                }
+                //读取文件(字符流)
+                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);
+                return ResultUtil.success(list);
+            }catch (Exception e){
+                e.printStackTrace();
+                return ResultUtil.runErr();
+            }
+        }else {
+            return ResultUtil.paranErr();
+        }
+    }
+
+
+
+    /**
+     * 关闭订单
+     */
+    @RequestMapping(value = "/cancelOrderUpdate")
+    @ResponseBody
+    public Object cancelOrderUpdate(@RequestParam Integer tOrderId) {
+        TOrder tOrder = tOrderService.selectById(tOrderId);
+        tOrder.setState(OrderStateEnum.CANCELED.getCode());
+        tOrderService.updateById(tOrder);
+        if(null != tOrder.getDriverId()){
+            redisUtil.delSetValue("orderService", tOrder.getId().toString());
+            TDriver tDriver = driverService.selectById(tOrder.getDriverId());
+            tDriver.setServerStatus(1);
+            driverService.updateById(tDriver);
+        }
+
+        Map<String, String> map = new HashMap<>();
+        map.put("id", tOrder.getUserId().toString());
+        map.put("type", "1");
+        PushOrderInfoWarpper pushOrderInfoWarpper = new PushOrderInfoWarpper();
+        pushOrderInfoWarpper.setId(tOrder.getId().longValue());
+        pushOrderInfoWarpper.setState(tOrder.getState());
+        pushOrderInfoWarpper.setCancelObject(3);
+        map.put("pushOrderInfoWarpper", JSON.toJSONString(pushOrderInfoWarpper));
+        String result = HttpRequestUtil.postRequest(PushURL.order_push_url, map);
+        if(null != tOrder.getDriverId()){
+            map = new HashMap<>();
+            map.put("id", tOrder.getDriverId().toString());
+            map.put("type", "1");
+            PushOrderInfoWarpper pushOrderInfoWarpper1 = new PushOrderInfoWarpper();
+            pushOrderInfoWarpper1.setId(tOrder.getId().longValue());
+            pushOrderInfoWarpper1.setState(tOrder.getState());
+            pushOrderInfoWarpper1.setCancelObject(3);
+            map.put("pushOrderInfoWarpper", JSON.toJSONString(pushOrderInfoWarpper1));
+            result = HttpRequestUtil.postRequest(PushURL.order_push_url, map);
+        }
+        redisUtil.setStrValue("cancelOrder", "true");
+        return SUCCESS_TIP;
     }
 
 
@@ -295,7 +396,11 @@
                 }else if(2 == source1){
                     values[i][2] = "司机创建";
                 }
-                values[i][3] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getStartTime());
+                if(Objects.nonNull(d.getStartTime())){
+                    values[i][3] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getStartTime());
+                }else {
+                    values[i][3] = "";
+                }
                 values[i][4] = d.getUserName();
                 values[i][5] = d.getUserPhone();
                 values[i][6] = d.getStartAddress();
@@ -372,7 +477,11 @@
                 }else if(2 == source1){
                     values[i][2] = "司机创建";
                 }
-                values[i][3] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getStartTime());
+                if(Objects.nonNull(d.getStartTime())){
+                    values[i][3] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getStartTime());
+                }else {
+                    values[i][3] = "";
+                }
                 values[i][4] = d.getUserName();
                 values[i][5] = d.getUserPhone();
                 values[i][6] = d.getStartAddress();

--
Gitblit v1.7.1