package com.dsh.guns.modular.system.controller.specialTrain; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.course.feignClient.driver.DriverClient; import com.dsh.course.feignClient.driver.model.DriverInfoReq; import com.dsh.course.feignClient.driver.model.DriverInfoRes; import com.dsh.course.feignClient.nearDriver.OrderPositionClient; import com.dsh.course.feignClient.nearDriver.model.DriverPositionReq; import com.dsh.course.feignClient.nearDriver.model.OrderPosition; import com.dsh.course.feignClient.order.OrderPrivateCarClient; import com.dsh.course.feignClient.order.model.GetPrivateCarOrderDetailById; import com.dsh.course.feignClient.order.model.OrderPrivateCar; import com.dsh.course.feignClient.order.model.QueryPrivateCarOrderReq; import com.dsh.course.feignClient.order.model.UpdateStateReq; import com.dsh.course.feignClient.orderCancel.OrderCancelClient; import com.dsh.course.feignClient.orderCancel.model.OrderCancelRes; import com.dsh.guns.config.UserExt; import com.dsh.guns.core.base.controller.BaseController; import com.dsh.guns.core.support.HttpKit; import com.dsh.guns.core.util.SinataUtil; import com.dsh.guns.modular.system.model.OrderCancel; import com.dsh.guns.modular.system.model.TServerCarmodel; import com.dsh.guns.modular.system.service.ITServerCarmodelService; import com.dsh.guns.modular.system.util.HttpRequestUtil; import com.dsh.guns.modular.system.util.PushURL; import com.dsh.guns.modular.system.util.ResultUtil; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; import java.util.*; /** * 专车订单控制器 * * @author fengshuonan * @Date 2020-09-02 17:28:59 */ @Controller @RequestMapping("/tOrderPrivateCar") public class TOrderPrivateCarController extends BaseController { private String PREFIX = "/system/tOrderPrivateCar/"; @Resource private OrderPrivateCarClient tOrderPrivateCarService; @Autowired private ITServerCarmodelService tServerCarmodelService; @Resource private DriverClient driverClient; @Resource private OrderCancelClient orderCancelClient; @Resource private OrderPositionClient orderPositionClient; /** * 跳转到专车订单首页 */ @RequestMapping("") public String index(Model model) { //服务专车车型 List carmodelList = tServerCarmodelService.getBaseMapper().selectList(new QueryWrapper().eq("type", 1).eq("state", 1)); model.addAttribute("carmodelList",carmodelList); model.addAttribute("language",UserExt.getLanguage()); return PREFIX + "tOrderPrivateCar.html"; } /** * 跳转到修改专车订单 */ @RequestMapping("/tOrderPrivateCar_orderDetail/{tOrderPrivateCarId}") public String tOrderPrivateCarUpdate(@PathVariable Long tOrderPrivateCarId, Model model) { Map item = tOrderPrivateCarService.getPrivateCarOrderDetailById(new GetPrivateCarOrderDetailById(tOrderPrivateCarId,UserExt.getLanguage())); item.put("insertTimeStr",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(Long.valueOf(item.get("insertTime").toString())))); if(item.get("travelTime") != null){ item.put("travelTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(Long.valueOf(item.get("travelTime").toString())))); } if(item.get("boardingTime")!=null) { item.put("boardingTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(Long.valueOf(item.get("startServiceTime").toString())))); } if(item.get("getoffTime")!=null) { item.put("getoffTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(Long.valueOf(item.get("endServiceTime").toString())))); } model.addAttribute("item",item); model.addAttribute("language",UserExt.getLanguage()); return PREFIX + "tOrderPrivateCar_orderDetail.html"; } /** * 跳转到出租车订单轨迹页面 */ @RequestMapping("/tOrderPrivateCar_trajectory/{tOrderPrivateCarId}") public String tOrderTaxi_trajectory(@PathVariable Long tOrderPrivateCarId, Model model) { model.addAttribute("tOrderPrivateCarId",tOrderPrivateCarId); return PREFIX + "tOrderPrivateCar_trajectory.html"; } /** * 获取专车订单列表 */ @RequestMapping(value = "/list") @ResponseBody public Object list(String insertTime, String orderNum, Integer orderSource, String userName, String userPhone, String passengers, String passengersPhone, Integer serverCarModelId, String driver, Integer state) { String beginTime = null; String endTime = null; if (SinataUtil.isNotEmpty(insertTime)){ String[] timeArray = insertTime.split(" - "); beginTime = timeArray[0]; endTime = timeArray[1]; } HttpServletRequest request = HttpKit.getRequest(); int limit = Integer.valueOf(request.getParameter("limit")); //每页多少条数据 int offset = Integer.valueOf(request.getParameter("offset")); return super.packForBT(tOrderPrivateCarService.getPrivateCarOrderList(new QueryPrivateCarOrderReq(limit,offset, beginTime, endTime, UserExt.getUser().getRoleType(), UserExt.getUser().getObjectId(), orderNum, orderSource, userName, userPhone, passengers, passengersPhone, serverCarModelId, driver, state))); } private ResultUtil resultUtil; /** * 获取订单轨迹 * @param orderDetailId * @return */ @ResponseBody @RequestMapping(value = "/getOrderTrack", method = RequestMethod.POST) public ResultUtil getOrderTrack(Long orderDetailId, Integer orderType){ if(!StringUtils.isEmpty(orderDetailId)){ try { DriverPositionReq driverPositionReq = new DriverPositionReq(); driverPositionReq.setOrderId(orderDetailId); driverPositionReq.setOrderType(orderType); List orderPositions = orderPositionClient.queryOrderPosition(driverPositionReq); resultUtil = ResultUtil.success(orderPositions); }catch (Exception e){ e.printStackTrace(); resultUtil = ResultUtil.runErr(); } }else { resultUtil = ResultUtil.paranErr(); } return resultUtil; } /** * 取消专车订单 */ @RequestMapping(value = "/cancel") @ResponseBody public Object cancel(@RequestParam Long tOrderPrivateCarId) { OrderPrivateCar tOrderPrivateCar = tOrderPrivateCarService.selectById(tOrderPrivateCarId); //修改之前司机状态 -- 空闲 if(null != tOrderPrivateCar.getDriverId()){ DriverInfoRes driver = driverClient.getDriver(tOrderPrivateCar.getDriverId()); driver.setState(2); DriverInfoReq driverInfoReq = new DriverInfoReq(); BeanUtils.copyProperties(driver,driverInfoReq); driverClient.updateDriver(driverInfoReq); } tOrderPrivateCar.setState(10); tOrderPrivateCarService.updateByIds(new UpdateStateReq(tOrderPrivateCarId,10)); OrderCancel orderCancel = new OrderCancel(); orderCancel.setOrderId(tOrderPrivateCarId); orderCancel.setOrderType(1); orderCancel.setReason("平台取消订单"); orderCancel.setRemark("平台取消订单"); orderCancel.setUserType(2); orderCancel.setState(2); orderCancel.setInsertTime(new Date()); OrderCancelRes orderCancelRes = new OrderCancelRes(); BeanUtils.copyProperties(orderCancel,orderCancelRes); orderCancelClient.saveOrderCancel(orderCancelRes); //增加推送 Map map = new HashMap<>(); map.put("id", tOrderPrivateCar.getId().toString()); map.put("orderType", "1"); String result = HttpRequestUtil.postRequest(PushURL.cancel_order_url, map); System.out.println("专车取消:【orderId="+tOrderPrivateCar.getId().toString()+"】,调用接口:"+result); // // new Thread(new Runnable() { // @Override // public void run() { // if(pushMinistryOfTransport){//上传数据 // pushMinistryOfTransportUtil.orderCancel(tOrderPrivateCarId); // } // } // }).start(); return SUCCESS_TIP; } /** * 删除专车订单 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Long tOrderPrivateCarId) { OrderPrivateCar tOrderPrivateCar = tOrderPrivateCarService.selectById(tOrderPrivateCarId); tOrderPrivateCar.setIsDelete(2); tOrderPrivateCarService.updateById1s(new UpdateStateReq(tOrderPrivateCarId,2)); return SUCCESS_TIP; } }