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<TServerCarmodel> carmodelList = tServerCarmodelService.getBaseMapper().selectList(new QueryWrapper<TServerCarmodel>().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<String, Object> 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<OrderPosition> 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<String,String> 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;
|
}
|
|
}
|