| | |
| | | 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.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; |
| | | |
| | |
| | | |
| | | @Autowired |
| | | private ITOrderService tOrderService; |
| | | @Autowired |
| | | private ITAppUserService tAppUserService; |
| | | @Autowired |
| | | private ITCancelOrderService tCancelOrderService; |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 跳转异常页面 |
| | | * @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); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | 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) { |
| | |
| | | BeanUtils.copyProperties(tOrder,tAppUserDetailOrderResp); |
| | | |
| | | // 计算总里程 |
| | | |
| | | 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); |
| | |
| | | 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(); |
| | | } |
| | | } |
| | | } |