package com.stylefeng.guns.modular.system.controller.specialTrain; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.core.base.controller.BaseController; import com.stylefeng.guns.core.base.tips.ErrorTip; import com.stylefeng.guns.core.beetl.ShiroExtUtil; import com.stylefeng.guns.core.common.constant.factory.PageFactory; import com.stylefeng.guns.core.util.DateUtil; import com.stylefeng.guns.core.util.SinataUtil; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.dao.OrderCancelMapper; import com.stylefeng.guns.modular.system.dao.TCompanyMapper; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.service.impl.IncomeServiceImpl; import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.util.*; /** * 快车订单控制器 * * @author fengshuonan * @Date 2020-09-02 17:28:59 */ @Slf4j @Controller @RequestMapping("/abnormal") public class TAbnormalOrderCarController extends BaseController { private String PREFIX = "/system/tAbnormalOrderCar/"; @Autowired private ITOrderPrivateCarService tOrderPrivateCarService; @Autowired private ITServerCarmodelService tServerCarmodelService; @Autowired private ITOrderPositionService tOrderPositionService; @Autowired private ITServerCarmodelService serverCarmodelService; @Autowired private ITDriverService tDriverService; @Autowired private IIncomeService incomeService; @Autowired private PushMinistryOfTransportUtil pushMinistryOfTransportUtil; @Autowired private ITUserService userService; @Resource private OrderCancelMapper orderCancelMapper; @Autowired private ITOrderCrossCityService tOrderCrossCityService; @Autowired private ITOrderTaxiService tOrderTaxiService; @Value("${pushMinistryOfTransport}") private boolean pushMinistryOfTransport; @Resource private MongoTemplate mongoTemplate; @Autowired private ShiroExtUtil shiroExtUtil; @Autowired private TAbnormalPayOrderService tAbnormalPayOrderService; @Autowired private ITSystemNoticeService systemNoticeService; @Autowired private TCompanyMapper tCompanyMapper; /** * 跳转到快车订单首页 */ @RequestMapping("") public String index(Model model) { //服务快车车型 List carmodelList = tServerCarmodelService.selectList(new EntityWrapper().eq("type", 1).eq("state", 1)); model.addAttribute("carmodelList", carmodelList); return PREFIX + "tAbnormalOrder.html"; } /** * 跳转到修改快车订单 */ @RequestMapping("/tOrderPrivateCar_orderDetail") public String tOrderPrivateCarUpdate(Integer tOrderPrivateCarId,Integer type, Model model) { if(type==1){ Map item = tOrderPrivateCarService.getPrivateCarOrderDetailById(tOrderPrivateCarId); TOrderPrivateCar tOrderPrivateCar1 = tOrderPrivateCarService.selectById(tOrderPrivateCarId); Object o1 = item.get("abnormalImg"); if(o1!=null && !o1.toString().equals("")){ String[] split = o1.toString().split(","); model.addAttribute("abnormalImg",split); } // money是修改后的金额 model.addAttribute("money",""); Object o2 = item.get("responsibilityType"); if(o2!=null){ if(Integer.valueOf(o2.toString())>2){ model.addAttribute("money", tOrderPrivateCar1.getResponsibilityMoney()); } } model.addAttribute("item",item); model.addAttribute("type",1); model.addAttribute("show",0); List tOrderPrivateCars = tOrderPrivateCarService.selectList(new EntityWrapper().eq("pid", tOrderPrivateCarId).eq("isDelete", 1)); List> maps = new ArrayList<>(); for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) { item = tOrderPrivateCarService.getPrivateCarOrderDetailById(tOrderPrivateCar.getId()); String phone = item.get("userPhone").toString(); item.put("userPhone1", phone.substring(phone.length() - 4)); maps.add(item); } model.addAttribute("maps",maps); }else if(type==2){ Map item = tOrderCrossCityService.getCrossCityOrderDetailById(tOrderPrivateCarId); TOrderCrossCity tOrderCrossCity = tOrderCrossCityService.selectById(tOrderPrivateCarId); Object o1 = item.get("abnormalImg"); if(o1!=null && !o1.toString().equals("")){ String[] split = o1.toString().split(","); model.addAttribute("abnormalImg",split); } Object o2 = item.get("responsibilityType"); model.addAttribute("money",""); model.addAttribute("show",0); if(o2!=null){ if(Integer.valueOf(o2.toString())>2){ model.addAttribute("money", tOrderCrossCity.getResponsibilityMoney()); } } model.addAttribute("type",2); model.addAttribute("item",item); }else if(type==3){ Map item = tOrderTaxiService.getTaxiOrderDetailById(tOrderPrivateCarId); TOrderTaxi tOrderTaxi = tOrderTaxiService.selectById(tOrderPrivateCarId); Object o1 = item.get("abnormalImg"); if(o1!=null && !o1.toString().equals("")){ String[] split = o1.toString().split(","); model.addAttribute("abnormalImg",split); } model.addAttribute("money",""); model.addAttribute("show",0); Object o2 = item.get("responsibilityType"); if(o2!=null){ if(Integer.valueOf(o2.toString())>2){ model.addAttribute("money", tOrderTaxi.getResponsibilityMoney()); } } model.addAttribute("type",3); model.addAttribute("item",item); } return PREFIX + "tAbnormalOrder_orderDetail.html"; } @RequestMapping("/tOrderPrivateCar_orderDetail1") public String tOrderPrivateCarUpdate1(Integer tOrderPrivateCarId,Integer type, Model model) { if(type==1){ Map item = tOrderPrivateCarService.getPrivateCarOrderDetailById(tOrderPrivateCarId); Object o1 = item.get("abnormalImg"); if(o1!=null && !o1.toString().equals("")){ String[] split = o1.toString().split(","); model.addAttribute("abnormalImg",split); } // money是修改后的金额 model.addAttribute("money",0); Object o2 = item.get("responsibilityType"); if(o2!=null){ if(Integer.valueOf(o2.toString())>2){ TAbnormalPayOrder tAbnormalPayOrder = tAbnormalPayOrderService.selectOne(new EntityWrapper().eq("type", 1).eq("orderNum", tOrderPrivateCarId)); model.addAttribute("money",tAbnormalPayOrder.getPayMoney()); } } model.addAttribute("item",item); model.addAttribute("type",1); model.addAttribute("show",1); List tOrderPrivateCars = tOrderPrivateCarService.selectList(new EntityWrapper().eq("pid", tOrderPrivateCarId).eq("isDelete", 1)); List> maps = new ArrayList<>(); for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) { item = tOrderPrivateCarService.getPrivateCarOrderDetailById(tOrderPrivateCar.getId()); String phone = item.get("userPhone").toString(); item.put("userPhone1", phone.substring(phone.length() - 4)); maps.add(item); } model.addAttribute("maps",maps); }else if(type==2){ Map item = tOrderCrossCityService.getCrossCityOrderDetailById(tOrderPrivateCarId); Object o1 = item.get("abnormalImg"); if(o1!=null && !o1.toString().equals("")){ String[] split = o1.toString().split(","); model.addAttribute("abnormalImg",split); } Object o2 = item.get("responsibilityType"); model.addAttribute("money",0); model.addAttribute("show",1); if(o2!=null){ if(Integer.valueOf(o2.toString())>2){ TAbnormalPayOrder tAbnormalPayOrder = tAbnormalPayOrderService.selectOne(new EntityWrapper().eq("type", 2).eq("orderNum", tOrderPrivateCarId)); model.addAttribute("money",tAbnormalPayOrder.getPayMoney()); } } model.addAttribute("type",2); model.addAttribute("item",item); }else if(type==3){ Map item = tOrderTaxiService.getTaxiOrderDetailById(tOrderPrivateCarId); Object o1 = item.get("abnormalImg"); if(o1!=null && !o1.toString().equals("")){ String[] split = o1.toString().split(","); model.addAttribute("abnormalImg",split); } model.addAttribute("money",0); model.addAttribute("show",1); Object o2 = item.get("responsibilityType"); if(o2!=null){ if(Integer.valueOf(o2.toString())>2){ TAbnormalPayOrder tAbnormalPayOrder = tAbnormalPayOrderService.selectOne(new EntityWrapper().eq("type", 3).eq("orderNum", tOrderPrivateCarId)); model.addAttribute("money",tAbnormalPayOrder.getPayMoney()); } } model.addAttribute("type",3); model.addAttribute("item",item); } return PREFIX + "tAbnormalOrder_orderDetail.html"; } /** * 跳转到出租车订单轨迹页面 */ @RequestMapping("/tOrderPrivateCar_trajectory/{tOrderPrivateCarId}") public String tOrderTaxi_trajectory(@PathVariable Integer 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, Integer rideType, Integer abnormal, Integer promotion, String promotionUser,Integer type,Integer abnormalStatus, String travelId ) { String beginTime = null; String endTime = null; if (SinataUtil.isNotEmpty(insertTime)) { String[] timeArray = insertTime.split(" - "); beginTime = timeArray[0]; endTime = timeArray[1]; } abnormal = 2; Page> page = new PageFactory>().defaultPage(); if(type==null){ type=1; } // 快车 if(type==1){ page.setRecords(tOrderPrivateCarService.getPrivateCarOrderList(page, beginTime, endTime, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(), orderNum, orderSource, userName, userPhone, passengers, passengersPhone, serverCarModelId, driver, state, rideType, abnormal, promotion, promotionUser,abnormalStatus, null, travelId)); return super.packForBT(page); // 跨城 }else if(type==2){ page.setRecords(tOrderCrossCityService.getCrossCityOrderList(page, beginTime, endTime, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(), orderNum, orderSource, userName, userPhone, passengers, passengersPhone, serverCarModelId, driver, null, state, abnormal, promotion, promotionUser,abnormalStatus, travelId)); return super.packForBT(page); // 出租车 }else if(type==3){ page.setRecords(tOrderTaxiService.getTaxiOrderList(page, beginTime, endTime, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(), orderNum, orderSource, userName, userPhone, passengers, passengersPhone, driver, state, abnormal, promotion, promotionUser,abnormalStatus, travelId)); return super.packForBT(page); } return super.packForBT(page); } @GetMapping("/export") @ResponseBody public void export(String insertTime, String orderNum, Integer orderSource, String userName, String userPhone, String passengers, String passengersPhone, Integer serverCarModelId, String driver, Integer state, Integer rideType, Integer abnormal, Integer promotion, String promotionUser,Integer type,Integer abnormalStatus, String travelId, HttpServletRequest request, HttpServletResponse response) { try { String beginTime = null; String endTime = null; if (SinataUtil.isNotEmpty(insertTime)) { String[] timeArray = insertTime.split(" - "); beginTime = timeArray[0]; endTime = timeArray[1]; } abnormal = 2; List> list=new ArrayList<>(); if(type==1){ list = tOrderPrivateCarService.getPrivateCarOrderListExport(null, beginTime, endTime, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(), orderNum, orderSource, userName, userPhone, passengers, passengersPhone, serverCarModelId, driver, state, rideType, abnormal, promotion, promotionUser,abnormalStatus, travelId); }else if(type==2){ list = tOrderCrossCityService.getCrossCityOrderListExport(null, beginTime, endTime, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(), orderNum, orderSource, userName, userPhone, passengers, passengersPhone, serverCarModelId, driver, null, state, abnormal, promotion, promotionUser,abnormalStatus, travelId); }else if(type==3){ list = tOrderTaxiService.getTaxiOrderListExport(null, beginTime, endTime, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(), orderNum, orderSource, userName, userPhone, passengers, passengersPhone, driver, state, abnormal, promotion, promotionUser,abnormalStatus, travelId); } // 表格数据【封装】 List> dataList = new ArrayList<>(); //第一行显示【封装】 List twoList = new ArrayList(); twoList.add("总计:"); twoList.add(String.valueOf(list.size())+"条"); dataList.add(twoList); // 列【封装】 List shellList = new ArrayList(); shellList.add("下单时间"); shellList.add("订单编号"); shellList.add("订单来源"); shellList.add("乘车时间"); shellList.add("下单用户昵称"); shellList.add("下单用户手机"); shellList.add("乘车用户姓名"); shellList.add("乘车用户手机"); shellList.add("起点"); shellList.add("终点"); shellList.add("线路名称"); shellList.add("选择车型"); shellList.add("接单司机"); shellList.add("接单车辆"); shellList.add("订单金额"); shellList.add("状态"); shellList.add("是否异常订单"); shellList.add("是否推广订单"); shellList.add("推广员姓名"); shellList.add("推广员电话"); dataList.add(shellList); for (Map object : list){ // 详细数据列【封装】 shellList = new ArrayList(); if(SinataUtil.isNotEmpty(object.get("insertTime"))){ shellList.add(DateUtil.formatDate(DateUtil.parse(object.get("insertTime").toString(),"YYYY-MM-dd HH:mm:ss.S"), "YYYY-MM-dd HH:mm:ss")); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("orderNum"))){ shellList.add(object.get("orderNum").toString()); }else{ shellList.add("-"); } // 1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单 if(SinataUtil.isNotEmpty(object.get("orderSource"))){ switch (object.get("orderSource").toString()){ case "1": shellList.add("APP下单"); break; case "2": shellList.add("扫码下单"); break; case "3": shellList.add("小程序下单"); break; case "4": shellList.add("司机下单"); break; case "5": shellList.add("调度下单"); break; case "6": shellList.add("道行龙城下单"); break; default: shellList.add("-"); break; } } if(SinataUtil.isNotEmpty(object.get("travelTime"))){ shellList.add(DateUtil.formatDate(DateUtil.parse(object.get("travelTime").toString(),"YYYY-MM-dd HH:mm:ss.S"), "YYYY-MM-dd HH:mm:ss")); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("userName"))){ shellList.add(object.get("userName").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("userPhone"))){ shellList.add(object.get("userPhone").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("passengers"))){ shellList.add(object.get("passengers").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("passengersPhone"))){ shellList.add(object.get("passengersPhone").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("startAddress"))){ shellList.add(object.get("startAddress").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("endAddress"))){ shellList.add(object.get("endAddress").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("lineName"))){ shellList.add(object.get("lineName").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("serverCarModelName"))){ shellList.add(object.get("serverCarModelName").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("driver"))){ shellList.add(object.get("driver").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("car"))){ shellList.add(object.get("car").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("orderMoney"))){ shellList.add(object.get("orderMoney").toString()); }else{ shellList.add("-"); } // 1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付 if(SinataUtil.isNotEmpty(object.get("state"))){ switch (object.get("state").toString()){ case "1": shellList.add("待接单"); break; case "2": shellList.add("待出发"); break; case "3": shellList.add("待到达预约地点"); break; case "4": shellList.add("待乘客上车"); break; case "5": shellList.add("服务中"); break; case "6": shellList.add("完成服务"); break; case "7": shellList.add("待支付"); break; case "8": shellList.add("待评价"); break; case "9": shellList.add("已完成"); break; case "10": shellList.add("已取消"); break; case "11": shellList.add("改派中"); break; case "12": shellList.add("取消待支付"); break; default: shellList.add("-"); break; } } if(SinataUtil.isNotEmpty(object.get("abnormal"))){ shellList.add(object.get("abnormal").toString().equals("1")?"否":"是"); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("promotion"))){ shellList.add(object.get("promotion").toString().equals("1")?"否":"是"); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("promotionUser"))){ shellList.add(object.get("promotionUser").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("promotionPhone"))){ shellList.add(object.get("promotionPhone").toString()); }else{ shellList.add("-"); } dataList.add(shellList); } try { // 调用工具类进行导出 ExcelExportUtil.easySheet("订单导出记录"+DateUtil.formatDate(new Date(), "YYYYMMddHHmmss"), "订单导出记录", dataList,request, response); } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } } private ResultUtil resultUtil; /** * 获取订单轨迹 * * @param orderDetailId * @return */ @ResponseBody @RequestMapping(value = "/getOrderTrack", method = RequestMethod.POST) public ResultUtil getOrderTrack(Integer orderDetailId) { if (ToolUtil.isNotEmpty(orderDetailId)) { try { Query query = new Query() .addCriteria(Criteria.where("orderId").is(orderDetailId).and("orderType").is(1)) .with(new Sort(Sort.Direction.ASC, "insertTime")); List positions = mongoTemplate.find(query, TOrderPosition.class); resultUtil = ResultUtil.success(positions); } catch (Exception e) { e.printStackTrace(); resultUtil = ResultUtil.runErr(); } } else { resultUtil = ResultUtil.paranErr(); } return resultUtil; } /** * 取消快车订单 */ @RequestMapping(value = "/cancel") @ResponseBody public Object cancel(@RequestParam Integer tOrderPrivateCarId) { TOrderPrivateCar tOrderPrivateCar = tOrderPrivateCarService.selectById(tOrderPrivateCarId); //修改之前司机状态 -- 空闲 if(null != tOrderPrivateCar.getDriverId()){ TDriver driver = tDriverService.selectById(tOrderPrivateCar.getDriverId()); driver.setState(2); tDriverService.updateById(driver); } tOrderPrivateCar.setState(10); tOrderPrivateCarService.updateById(tOrderPrivateCar); OrderCancel orderCancel = new OrderCancel(); orderCancel.setOrderId(tOrderPrivateCarId); orderCancel.setOrderType(1); orderCancel.setReason("平台取消订单"); orderCancel.setRemark("平台取消订单"); orderCancel.setUserType(2); orderCancel.setState(2); orderCancel.setInsertTime(new Date()); orderCancelMapper.insert(orderCancel); //增加推送 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 Integer tOrderPrivateCarId) { TOrderPrivateCar tOrderPrivateCar = tOrderPrivateCarService.selectById(tOrderPrivateCarId); tOrderPrivateCar.setIsDelete(2); tOrderPrivateCarService.updateById(tOrderPrivateCar); return SUCCESS_TIP; } @RequestMapping(value = "/save") @ResponseBody public Object save(Integer responsibilityTypeVal,String remark,String money,Integer type,String orderNum) { Integer userId =null; if(type==1){ TOrderPrivateCar tOrderPrivateCar = tOrderPrivateCarService.selectOne(new EntityWrapper().eq("id",orderNum)); if(1 != tOrderPrivateCar.getAbnormalStatus()){ return new ErrorTip(500, "订单已被审核,不能重复操作"); } userId = tOrderPrivateCar.getUserId(); //平台全责需要调起备付金支付 if(1 == responsibilityTypeVal){ TDriver driver = tDriverService.selectById(tOrderPrivateCar.getDriverId()); TCompany company = tCompanyMapper.selectById(driver.getCompanyId()); TUser userInfo = userService.selectById(tOrderPrivateCar.getUserId()); if(null == tOrderPrivateCar.getIsCreated()){ //先调中台创建订单 CreateOrderRequest createOrderRequest = new CreateOrderRequest(); createOrderRequest.setTreatShopId(driver.getEmpId().toString()); createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (tOrderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}"); createOrderRequest.setCharge(tOrderPrivateCar.getOrderMoney()); createOrderRequest.setOrderNo("PR" + tOrderPrivateCar.getId()); createOrderRequest.setOrderId(tOrderPrivateCar.getTravelId()); createOrderRequest.setCustomerId(userInfo.getOnconUUID()); OrderInfo orderInfo = com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil.tradeOrderCreate(createOrderRequest); tOrderPrivateCar.setIsCreated(1); tOrderPrivateCar.setTravelId(orderInfo.getOrderId()); tOrderPrivateCarService.updateById(tOrderPrivateCar); } //使用备付金进行支付订单 // TradePayOffData tradePayOffData = new TradePayOffData(); // tradePayOffData.setPartnerPayId(tOrderPrivateCar.getTravelId()); // tradePayOffData.setTotalFee(tOrderPrivateCar.getOrderMoney().multiply(new BigDecimal(100)).toString()); // tradePayOffData.setOrderDesc("完成订单"); // PayInfo payInfo = com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil.tradePayOff(tradePayOffData); // String retCode = payInfo.getRetCode(); // if (!"000000".equals(retCode)) { // log.error("备付金支付失败:{}", payInfo.getRetMsg()); // return new ErrorTip(500, "备付金支付失败:" + payInfo.getRetMsg()); // } // PayInfoData data = payInfo.getData(); // String status = data.getStatus(); // if ("3".equals(status)) { // log.error("备付金支付失败:{}", payInfo.getRetMsg()); // return new ErrorTip(500, "备付金支付失败:" + payInfo.getRetMsg()); // } // if("0".equals(status)){ // //查询支付信息 // GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest(); // getPaymentInfoDataRequest.setPartnerPayId(tOrderPrivateCar.getTravelId()); // GetPaymentInfo getPaymentInfo = com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil.paymentInfo(getPaymentInfoDataRequest); // status = getPaymentInfo.getStatus(); // } // PayInfoData payInfoData = payInfo.getData(); // PaymentInfo paymentInfo = payInfoData.getPaymentInfos().get(0); // if(!"0".equals(status)) { // //支付成功,通知三方 // PaymentOrderRequest paymentOrderRequest = new PaymentOrderRequest(); // paymentOrderRequest.setPayItemId(paymentInfo.getPayItemId()); // paymentOrderRequest.setPaymentInfo(JSON.toJSONString(payInfoData.getPaymentInfos())); // paymentOrderRequest.setOrderId(tOrderPrivateCar.getTravelId()); // paymentOrderRequest.setCharge(tOrderPrivateCar.getOrderMoney()); // paymentOrderRequest.setPayTime(data.getPayTime()); // paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId()); // OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest); // //添加收入 Map map = null; try { map = incomeService.saveIncome(tOrderPrivateCar.getId(), 1, tOrderPrivateCar.getOrderMoney().doubleValue()); } catch (Exception e) { throw new RuntimeException(e); } tOrderPrivateCar.setSplitAllocation(JSON.toJSONString(map)); //中台修改订单状态 ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); request1.setOrderId(tOrderPrivateCar.getTravelId()); request1.setStatus(9); if (null != tOrderPrivateCar.getDriverId()) { request1.setDriverId(driver.getEmpId().toString()); request1.setSupplierShopId(company.getEnterCode()); } if (2 == tOrderPrivateCar.getPromotion()) { TDriver driver2 = tDriverService.selectById(tOrderPrivateCar.getPromotionDriverId()); request1.setPromoterId(driver2.getEmpId().toString()); } OrderUtil.modifyTravelItinerary(request1); // } tOrderPrivateCar.setPayType(5); tOrderPrivateCar.setPayMoney(tOrderPrivateCar.getOrderMoney()); tOrderPrivateCar.setState(9); tOrderPrivateCar.setResponsibilityMoney(tOrderPrivateCar.getOrderMoney()); } //司机全责 if(responsibilityTypeVal == 2){ tOrderPrivateCar.setState(9); tOrderPrivateCar.setPayMoney(BigDecimal.ZERO); tOrderPrivateCar.setResponsibilityMoney(BigDecimal.ZERO); } //乘客全责,不做任何修改 if(responsibilityTypeVal == 3){ tOrderPrivateCar.setResponsibilityMoney(tOrderPrivateCar.getOrderMoney()); } //平台部分责任/司机部分责任 if(responsibilityTypeVal == 4 || responsibilityTypeVal == 5){ tOrderPrivateCar.setResponsibilityMoney(new BigDecimal(money)); } tOrderPrivateCar.setResponsibilityType(responsibilityTypeVal); tOrderPrivateCar.setAbnormalStatus(2); tOrderPrivateCar.setAbnormalRemark(remark); tOrderPrivateCar.setAbnormalTime(new Date()); tOrderPrivateCarService.updateById(tOrderPrivateCar); } if(type==2){ TOrderCrossCity tOrderCrossCity = tOrderCrossCityService.selectOne(new EntityWrapper().eq("id", orderNum)); if(1 != tOrderCrossCity.getAbnormalStatus()){ return new ErrorTip(500, "订单已被审核,不能重复操作"); } userId = tOrderCrossCity.getUserId(); tOrderCrossCity.setResponsibilityType(responsibilityTypeVal); tOrderCrossCity.setAbnormalStatus(2); //平台全责 if(responsibilityTypeVal == 1) { tOrderCrossCity.setPayType(5); tOrderCrossCity.setPayMoney(tOrderCrossCity.getOrderMoney()); tOrderCrossCity.setState(9); tOrderCrossCity.setResponsibilityMoney(tOrderCrossCity.getOrderMoney()); } //司机全责 if(responsibilityTypeVal == 2){ tOrderCrossCity.setState(9); tOrderCrossCity.setPayMoney(BigDecimal.ZERO); tOrderCrossCity.setResponsibilityMoney(BigDecimal.ZERO); } //乘客全责,不做任何修改 if(responsibilityTypeVal == 3){ tOrderCrossCity.setResponsibilityMoney(tOrderCrossCity.getOrderMoney()); } //平台部分责任/司机部分责任 if(responsibilityTypeVal == 4 || responsibilityTypeVal == 5){ tOrderCrossCity.setResponsibilityMoney(new BigDecimal(money)); } tOrderCrossCity.setAbnormalRemark(remark); tOrderCrossCityService.updateById(tOrderCrossCity); } if(type==3){ TOrderTaxi tOrderTaxi = tOrderTaxiService.selectOne(new EntityWrapper().eq("id", orderNum)); if(1 != tOrderTaxi.getAbnormalStatus()){ return new ErrorTip(500, "订单已被审核,不能重复操作"); } userId = tOrderTaxi.getUserId(); tOrderTaxi.setResponsibilityType(responsibilityTypeVal); tOrderTaxi.setAbnormalStatus(2); //平台全责 if(responsibilityTypeVal == 1) { tOrderTaxi.setPayType(5); tOrderTaxi.setPayMoney(tOrderTaxi.getOrderMoney()); tOrderTaxi.setResponsibilityMoney(tOrderTaxi.getOrderMoney()); tOrderTaxi.setState(9); } //司机全责 if(responsibilityTypeVal == 2){ tOrderTaxi.setState(9); tOrderTaxi.setPayMoney(BigDecimal.ZERO); tOrderTaxi.setResponsibilityMoney(BigDecimal.ZERO); } //乘客全责,不做任何修改 if(responsibilityTypeVal == 3){ tOrderTaxi.setResponsibilityMoney(tOrderTaxi.getOrderMoney()); } //平台部分责任/司机部分责任 if(responsibilityTypeVal == 4 || responsibilityTypeVal == 5){ tOrderTaxi.setResponsibilityMoney(new BigDecimal(money)); } tOrderTaxi.setAbnormalRemark(remark); tOrderTaxi.setAbnormalTime(new Date()); tOrderTaxiService.updateById(tOrderTaxi); } TSystemNotice tSystemNotice = new TSystemNotice(); tSystemNotice.setType(2); tSystemNotice.setNoticeType(1); tSystemNotice.setUserType(1); tSystemNotice.setUserId(userId); tSystemNotice.setContent("您提交的申诉平台已处理"); tSystemNotice.setRead(1); tSystemNotice.setInsertTime(new Date()); systemNoticeService.insert(tSystemNotice); return SUCCESS_TIP; } /** * 跳转添加快车订单 * * @return */ @RequestMapping("/tOrderPrivateCar_addOrder") public String addOrderIndex(Model model) { /*获取车型*/ Wrapper wrapper = new EntityWrapper<>(); wrapper.eq("state", 1); List models = serverCarmodelService.selectList(wrapper); model.addAttribute("carModelList", models); return PREFIX + "tOrderPrivateCar_add.html"; } @RequestMapping("/add") @ResponseBody public Object add(TOrderPrivateCar privateCar) { TUser user = userService.selectOne(new EntityWrapper().eq("phone", privateCar.getPassengersPhone())); if (ToolUtil.isNotEmpty(user)) {/// 用户是平台用户 privateCar.setOrderNum("PRIVATE" + String.valueOf(1000000 + privateCar.selectList(null).size() + 1).substring(1)); privateCar.setUserId(user.getId()); privateCar.setState(1); privateCar.setInsertTime(DateUtil.parseTime(DateUtil.getTime())); privateCar.setOrderType(1); privateCar.setType(1); privateCar.setIsReassign(1); privateCar.setReassignNotice(0); privateCar.setSubstitute(0); privateCar.setOrderSource(5); privateCar.setPlacementAddress(ToolUtil.formatting(privateCar.getStartAddress())); privateCar.setPlacementLat(privateCar.getStartLat()); privateCar.setPlacementLon(privateCar.getStartLon()); privateCar.setStartAddress(ToolUtil.formatting(privateCar.getStartAddress())); privateCar.setEndAddress(ToolUtil.formatting(privateCar.getEndAddress())); /// 判断是否为预约单 long travelTime = privateCar.getTravelTime().getTime(); long momengtTime = new Date().getTime(); if ((travelTime - momengtTime) > 10 * 60 * 1000) { privateCar.setOrderType(2); } else { privateCar.setOrderType(1); } tOrderPrivateCarService.insert(privateCar); } else {/// 用户不是平台用户时 TUser tUser = new TUser(); tUser.setInsertTime(DateUtil.parseTime(DateUtil.getTime())); tUser.setPhone(privateCar.getPassengersPhone()); tUser.setName(privateCar.getPassengers()); tUser.setNickName("GRJY" + String.valueOf(1000000 + userService.selectList(null).size() + 1).substring(1)); userService.insert(tUser); /// 存入订单信息 privateCar.setOrderNum("PRIVATE" + String.valueOf(1000000 + tOrderPrivateCarService.selectList(null).size() + 1).substring(1)); privateCar.setUserId(tUser.getId()); privateCar.setState(1); privateCar.setInsertTime(DateUtil.parseTime(DateUtil.getTime())); privateCar.setOrderType(1); privateCar.setType(1); privateCar.setIsReassign(1); privateCar.setReassignNotice(0); privateCar.setSubstitute(0); privateCar.setOrderSource(5); privateCar.setPlacementAddress(ToolUtil.formatting(privateCar.getStartAddress())); privateCar.setPlacementLat(privateCar.getStartLat()); privateCar.setPlacementLon(privateCar.getStartLon()); privateCar.setStartAddress(ToolUtil.formatting(privateCar.getStartAddress())); privateCar.setEndAddress(ToolUtil.formatting(privateCar.getEndAddress())); /// 判断是否为预约单 long travelTime = privateCar.getTravelTime().getTime(); long momengtTime = new Date().getTime(); if ((travelTime - momengtTime) > 10 * 60 * 1000) { privateCar.setOrderType(2); } else { privateCar.setOrderType(1); } tOrderPrivateCarService.insert(privateCar); } //增加推送 Map map = new HashMap<>(); map.put("orderId", privateCar.getId().toString()); map.put("orderType", "1"); String result = HttpRequestUtil.postRequest(PushURL.push_order, map); System.out.println("添加订单推单调用结果:" + result); return SUCCESS_TIP; } }