From c4a098e3f88bc5071e36b92b9e5dcceb51129957 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期四, 01 六月 2023 23:25:07 +0800 Subject: [PATCH] 同步后台代码 --- management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TOrderController.java | 306 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 296 insertions(+), 10 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 e29171a..5887e8b 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 @@ -1,22 +1,41 @@ package com.stylefeng.guns.modular.system.controller.general; +import cn.hutool.core.date.DateUnit; +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.ITCancelOrderService; +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; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.beans.factory.annotation.Autowired; -import com.stylefeng.guns.core.log.LogObjectHolder; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; -import com.stylefeng.guns.modular.system.model.TOrder; -import com.stylefeng.guns.modular.system.service.ITOrderService; +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; @@ -34,6 +53,10 @@ @Autowired private ITOrderService tOrderService; + @Autowired + private ITAppUserService tAppUserService; + @Autowired + private ITCancelOrderService tCancelOrderService; /** * 跳转到首页 @@ -63,17 +86,108 @@ } /** + * 跳转异常页面 + * @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); } + wrapper.orderBy("createTime",false); 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); + return tCancelOrderService.getCancelOrderList(createTime, code, source, userName, userPhone, state, driverName); } /** @@ -88,14 +202,24 @@ 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 = 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); } @@ -150,4 +274,166 @@ 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] = "司机创建"; + } + 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(); + 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] = "司机创建"; + } + 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(); + 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