From b088628cf9be70c36e34032bb0d024548351541b Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 11 三月 2023 17:37:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TOrderController.java |  267 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 264 insertions(+), 3 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 a1c64e1..8fb8b15 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
@@ -4,11 +4,21 @@
 import cn.hutool.core.date.DateUtil;
 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.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.model.TAppUser;
+import com.stylefeng.guns.modular.system.model.TDriver;
 import com.stylefeng.guns.modular.system.model.TOrder;
+import com.stylefeng.guns.modular.system.service.ITAppUserService;
 import com.stylefeng.guns.modular.system.service.ITOrderService;
+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.stereotype.Controller;
@@ -18,7 +28,13 @@
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.OutputStream;
+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;
 
@@ -36,6 +52,8 @@
 
     @Autowired
     private ITOrderService tOrderService;
+    @Autowired
+    private ITAppUserService tAppUserService;
 
     /**
      * 跳转到首页
@@ -65,17 +83,106 @@
     }
 
     /**
+     * 跳转异常页面
+     * @return
+     */
+    @RequestMapping("/tOrder-exception")
+    public String tOrderException(Model model) {
+        return PREFIX + "tOrderException.html";
+    }
+
+    /**
+     * 跳转到首页
+     */
+    @RequestMapping("/cancelOrder")
+    public String cancelOrder() {
+        return PREFIX + "tCancelOrder.html";
+    }
+
+    /**
+     * 跳转冻结页面
+     * @return
+     */
+    @RequestMapping("/tOrderException_start_and_stop")
+    public String tAppUserStartAndStop( Integer id,
+                                        Model model) {
+
+        // 查询订单
+        TOrder tOrder = tOrderService.selectById(id);
+        TAppUser tAppUser = new TAppUser();
+        if(Objects.nonNull(tOrder)){
+            tAppUser = tAppUserService.selectById(tOrder.getUserId());
+        }
+
+        model.addAttribute("id",id);
+        if(Objects.nonNull(tAppUser)){
+            model.addAttribute("status",tAppUser.getStatus());
+        }
+        return PREFIX + "tOrderStartAndStopException.html";
+    }
+
+    /**
+     * 跳转详情页面
+     */
+    @RequestMapping("/orderDetail")
+    public String orderDetail(Integer orderId, Model model) {
+        tOrderService.orderDetail(orderId,model);
+        return PREFIX + "tOrderDetail.html";
+    }
+
+    /**
+     * 跳转异常详情页面
+     */
+    @RequestMapping("/orderExceptionDetail")
+    public String orderExceptionDetail(Integer orderId, Model model) {
+        tOrderService.orderExceptionDetail(orderId,model);
+        return PREFIX + "tOrderExceptionDetail.html";
+    }
+
+    /**
      * 获取列表
      */
-    @ApiOperation(value = "获取订单列表")
+    @ApiOperation(value = "用户获取订单列表")
     @RequestMapping(value = "/list")
     @ResponseBody
-    public Object list(String condition,Integer userId) {
+    public Object list(Integer userId) {
         EntityWrapper<TOrder> wrapper = new EntityWrapper<>();
         if(Objects.nonNull(userId)){
             wrapper.eq("user_id",userId);
         }
         return tOrderService.selectList(wrapper);
+    }
+
+    /**
+     * 获取列表
+     */
+    @ApiOperation(value = "获取订单列表")
+    @RequestMapping(value = "/orderList")
+    @ResponseBody
+    public Object orderList(String createTime,
+                       String code,
+                       Integer source,
+                       String userName,
+                       String userPhone,
+                       Integer state,
+                       String driverName) {
+        return tOrderService.getOrderList(createTime, code, source, userName, userPhone, state, driverName,1);
+    }
+
+    /**
+     * 获取列表
+     */
+    @ApiOperation(value = "获取订单异常列表")
+    @RequestMapping(value = "/orderExceptionList")
+    @ResponseBody
+    public Object orderExceptionList(String createTime,
+                            String code,
+                            Integer source,
+                            String userName,
+                            String userPhone,
+                            Integer state,
+                            String driverName) {
+        return tOrderService.getOrderList(createTime, code, source, userName, userPhone, state, driverName,2);
     }
 
     /**
@@ -97,7 +204,7 @@
             TAppUserDetailOrderResp tAppUserDetailOrderResp = new TAppUserDetailOrderResp();
             BeanUtils.copyProperties(tOrder,tAppUserDetailOrderResp);
 
-            // 计算总里程
+            // TODO 计算总里程
 
 
             // 计算总时长
@@ -157,4 +264,158 @@
     public Object detail(@PathVariable("tOrderId") Integer tOrderId) {
         return tOrderService.selectById(tOrderId);
     }
+
+    @ApiOperation(value = "导出订单列表",notes="导出订单列表")
+    @RequestMapping(value = "/export")
+    @ResponseBody
+    public void export(String createTime,
+                       String code,
+                       Integer source,
+                       String userName,
+                       String userPhone,
+                       Integer state,
+                       String driverName,HttpServletResponse response) {
+        try {
+            Date date = new Date();
+            DateFormat format = new SimpleDateFormat("yyyyMMdd");
+            String time1 = format.format(date);
+            String fileName = "OrderInfo"+time1+".xls";
+            String[] title = new String[] {"下单时间","订单编号","订单来源","开始服务时间","下单用户昵称",
+                    "下单用户手机","起点地址","终点地址","接单司机","司机电话","预估价","取消次数","订单状态"};
+            List<TOrderResp> orderList = tOrderService.getOrderList(createTime, code, source, userName, userPhone, state, driverName,1);
+            String[][] values = new String[orderList.size()][];
+            for (int i = 0; i < orderList.size(); i++) {
+                TOrderResp d = orderList.get(i);
+                values[i] = new String[title.length];
+                values[i][0] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getCreateTime());
+                values[i][1] = d.getCode();
+                Integer source1 = d.getSource();
+                if(1 == source1){
+                    values[i][2] = "小程序";
+                }else if(2 == source1){
+                    values[i][2] = "司机创建";
+                }
+                values[i][3] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getStartTime());
+                values[i][4] = d.getUserName();
+                values[i][5] = d.getUserPhone();
+                values[i][6] = d.getStartAddress();
+                values[i][7] = d.getEndAddress();
+                values[i][8] = d.getDriverName();
+                values[i][9] = d.getDriverPhone();
+                values[i][10] = String.valueOf(Objects.nonNull(d.getEstimatedPrice())?d.getEstimatedPrice(): BigDecimal.ZERO);
+                values[i][11] = String.valueOf(d.getCancelCount());
+                Integer status1 = d.getState();
+                if(101 == status1){
+                    values[i][12] = "待接单";
+                }else if(102 == status1){
+                    values[i][12] = "已接单";
+                }else if(103 == status1){
+                    values[i][12] = "前往预约点";
+                }else if(104 == status1){
+                    values[i][12] = "到达预约点";
+                }else if(105 == status1){
+                    values[i][12] = "开始服务";
+                }else if(106 == status1){
+                    values[i][12] = "到达目的地";
+                }else if(107 == status1){
+                    values[i][12] = "待支付";
+                }else if(108 == status1){
+                    values[i][12] = "待评价";
+                }else if(109 == status1){
+                    values[i][12] = "已完成";
+                }else if(201 == status1){
+                    values[i][12] = "转单中";
+                }else if(301 == status1){
+                    values[i][12] = "已取消";
+                }else if(401 == status1){
+                    values[i][12] = "等待中";
+                }
+            }
+            HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null);
+            ExcelUtil.setResponseHeader(response, fileName);
+            OutputStream os = response.getOutputStream();
+            wb.write(os);
+            os.flush();
+            os.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @ApiOperation(value = "导出订单列表",notes="导出订单列表")
+    @RequestMapping(value = "/export-exception")
+    @ResponseBody
+    public void exportException(String createTime,
+                       String code,
+                       Integer source,
+                       String userName,
+                       String userPhone,
+                       Integer state,
+                       String driverName,HttpServletResponse response) {
+        try {
+            Date date = new Date();
+            DateFormat format = new SimpleDateFormat("yyyyMMdd");
+            String time1 = format.format(date);
+            String fileName = "OrderExceptionInfo"+time1+".xls";
+            String[] title = new String[] {"下单时间","订单编号","订单来源","乘车时间","下单用户昵称",
+                    "下单用户手机","起点","终点","接单司机","司机电话","预估价格","取消次数","订单状态"};
+            List<TOrderResp> orderList = tOrderService.getOrderList(createTime, code, source, userName, userPhone, state, driverName,1);
+            String[][] values = new String[orderList.size()][];
+            for (int i = 0; i < orderList.size(); i++) {
+                TOrderResp d = orderList.get(i);
+                values[i] = new String[title.length];
+                values[i][0] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getCreateTime());
+                values[i][1] = d.getCode();
+                Integer source1 = d.getSource();
+                if(1 == source1){
+                    values[i][2] = "小程序";
+                }else if(2 == source1){
+                    values[i][2] = "司机创建";
+                }
+                values[i][3] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getStartTime());
+                values[i][4] = d.getUserName();
+                values[i][5] = d.getUserPhone();
+                values[i][6] = d.getStartAddress();
+                values[i][7] = d.getEndAddress();
+                values[i][8] = d.getDriverName();
+                values[i][9] = d.getDriverPhone();
+                values[i][10] = String.valueOf(Objects.nonNull(d.getEstimatedPrice())?d.getEstimatedPrice(): BigDecimal.ZERO);
+                values[i][11] = String.valueOf(d.getCancelCount());
+                Integer status1 = d.getState();
+                if(101 == status1){
+                    values[i][12] = "待接单";
+                }else if(102 == status1){
+                    values[i][12] = "已接单";
+                }else if(103 == status1){
+                    values[i][12] = "前往预约点";
+                }else if(104 == status1){
+                    values[i][12] = "到达预约点";
+                }else if(105 == status1){
+                    values[i][12] = "开始服务";
+                }else if(106 == status1){
+                    values[i][12] = "到达目的地";
+                }else if(107 == status1){
+                    values[i][12] = "待支付";
+                }else if(108 == status1){
+                    values[i][12] = "待评价";
+                }else if(109 == status1){
+                    values[i][12] = "已完成";
+                }else if(201 == status1){
+                    values[i][12] = "转单中";
+                }else if(301 == status1){
+                    values[i][12] = "已取消";
+                }else if(401 == status1){
+                    values[i][12] = "等待中";
+                }
+            }
+            HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null);
+            ExcelUtil.setResponseHeader(response, fileName);
+            OutputStream os = response.getOutputStream();
+            wb.write(os);
+            os.flush();
+            os.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 }

--
Gitblit v1.7.1