package com.stylefeng.guns.modular.api; import com.alibaba.fastjson.JSON; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.model.Reassign; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.service.IOrderService; import com.stylefeng.guns.modular.system.service.IReassignService; import com.stylefeng.guns.modular.system.service.ITransactionDetailsService; import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; import com.stylefeng.guns.modular.system.warpper.MoneyInfoWarpper; import com.stylefeng.guns.modular.system.warpper.OrderInfoWarpper; import com.stylefeng.guns.modular.system.warpper.OrderListWarpper; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Map; /** * 订单相关控制器 */ @RestController @RequestMapping("") public class OrderController { @Autowired private IOrderService orderService; @Autowired private IDriverService driverService; @Autowired private IReassignService reassignService; @Autowired private PushUtil pushUtil; @Autowired private ChinaMobileUtil chinaMobileUtil; @Autowired private IOrderLogisticsService orderLogisticsService; @Autowired private PayMoneyUtil payMoneyUtil; @Autowired private IOrderCrossCityService orderCrossCityService; @Autowired private ITransactionDetailsService transactionDetailsService; @Value("${callbackPath}") private String callbackPath; /** * 司机端获取首页订单列表 * @param state * @param pageNum * @param size * @param request * @return */ @ResponseBody @PostMapping("/api/order/queryOrderList") @ApiOperation(value = "获取首页订单列表", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "数据类型(1=服务中,2=待服务)", name = "state", required = true, dataType = "int"), @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> queryOrderList(Integer state, Integer pageNum, Integer size, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } List> list = orderService.queryOrderList(state, pageNum, size, uid); return ResultUtil.success(OrderListWarpper.getOrderListWarpper(list)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 司机端获取首页订单列表 * @param state * @param pageNum * @param size * @param request * @return */ @ResponseBody @PostMapping("/api/order/queryOrderList1") @ApiOperation(value = "获取首页订单列表", tags = {"司机端-车载端"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "数据类型(1=服务中,2=待服务)", name = "state", required = true, dataType = "int"), @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=其他订单,2=小件物流)", name = "type", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> queryOrderList1(Integer state, Integer type, Integer pageNum, Integer size, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } List> list = orderService.queryOrderList1(state, type, pageNum, size, uid); return ResultUtil.success(OrderListWarpper.getOrderListWarpper(list)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取我的订单列表 * @param state * @param pageNum * @param size * @param request * @return */ @ResponseBody @PostMapping("/api/order/queryMyAllOrder") @ApiOperation(value = "获取我的订单列表", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "数据类型(1=全部,2=待支付,3=已取消,4=已完成)", name = "state", required = true, dataType = "int"), @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> queryMyAllOrder(Integer state, Integer pageNum, Integer size, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } List listWarppers = orderService.queryMyAllOrder(state, pageNum, size, uid); return ResultUtil.success(listWarppers); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取我的订单列表 * @param pageNum * @param size * @param request * @return */ @ResponseBody @PostMapping("/api/order/queryMyAllOrder1") @ApiOperation(value = "获取我的订单列表", tags = {"司机端-车载端"}, notes = "只含出租车") @ApiImplicitParams({ @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> queryMyAllOrder1(Integer pageNum, Integer size, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } List listWarppers = orderService.queryMyAllOrder1(pageNum, size, uid); return ResultUtil.success(listWarppers); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取抢单界面的订单详情 * @param orderId * @param orderType * @param lon * @param lat * @return */ @ResponseBody @PostMapping("/api/order/queryPushOrder") @ApiOperation(value = "获取抢单界面的订单详情", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(value = "当前定位经度", name = "lon", required = true, dataType = "string"), @ApiImplicitParam(value = "当前定位纬度", name = "lat", required = true, dataType = "string"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryPushOrder(Integer orderId, Integer orderType, String lon, String lat){ try { Map map = orderService.queryPushOrder(orderId, orderType, lon, lat); return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 司机抢单操作 * @param orderId * @param orderType * @param request * @return */ @ResponseBody @PostMapping("/api/order/grabOrder") @ApiOperation(value = "司机抢单操作", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil grabOrder(Integer orderId, Integer orderType, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } return orderService.grabOrder(orderId, orderType, uid); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取服务中页面订单详情 * @param orderId * @param orderType * @return */ @ResponseBody @PostMapping("/api/order/queryOrderInfo") @ApiOperation(value = "获取服务中页面订单详情", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryOrderInfo(Integer orderId, Integer orderType){ try { Map map = orderService.queryOrderInfo(orderId, orderType); return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取订单的改派金额 * @param orderId * @param orderType * @return */ @ResponseBody @PostMapping("/api/order/queryReassignMoney") @ApiOperation(value = "获取改派支付金额", tags = {"司机端-服务中"}, notes = "返回金额为0不需要调用支付") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id(跨城多个订单使用逗号分隔)", name = "orderId", required = true, dataType = "string"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryReassignMoney(String orderId, Integer orderType){ try { String[] split = orderId.split(","); Double aDouble = orderService.queryReassignMoney(Integer.valueOf(split[0]), orderType); BaseWarpper baseWarpper = new BaseWarpper(); if(orderType == 3){ aDouble = aDouble * split.length; } baseWarpper.setAmount(aDouble); return ResultUtil.success(baseWarpper); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 司机提交改派申请 * @param reassign * @param request * @return */ @ResponseBody @PostMapping("/api/order/reassign") @ApiOperation(value = "提交改派申请", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(value = "改派支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = false, dataType = "int"), @ApiImplicitParam(value = "改派原因", name = "reason", required = true, dataType = "string"), @ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil reassign(Reassign reassign, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } return reassignService.saveData(reassign, uid, null); }catch (SystemException s){ return ResultUtil.error(s.getMsg()); } catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 司机走流程操作 * @param orderId * @param orderType * @param state * @param lon * @param lat * @param request * @return */ @ResponseBody @PostMapping("/api/order/process") @ApiOperation(value = "司机走流程操作", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(value = "流程操作状态(3=开始出发预约点,4=到达预约点,5=开始服务,6=服务结束)", name = "state", required = true, dataType = "int"), @ApiImplicitParam(value = "当前经度", name = "lon", required = true, dataType = "double"), @ApiImplicitParam(value = "当前纬度", name = "lat", required = true, dataType = "double"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil process(Integer orderId, Integer orderType, Integer state, Double lon, Double lat, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } return orderService.process(orderId, orderType, state, uid, lon, lat); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 司机抢单操作(车载端) * @param orderId * @param orderType * @param request * @return */ @ResponseBody @PostMapping("/api/order/grabOrder_") @ApiOperation(value = "司机抢单操作", tags = {"司机端-车载端"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(2=出租车,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil grabOrder_(Integer orderId, Integer orderType, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } return orderService.grabOrder_(orderId, orderType, uid); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 司机确认费用 * @param orderId * @param orderType * @param type * @param travelFee * @param parkingFee * @param crossingFee * @return */ @ResponseBody @PostMapping("/api/order/confirmFees") @ApiOperation(value = "司机确认费用", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(value = "支付方式(1=OK平台收款,2=其他方式收款)", name = "type", required = true, dataType = "int"), @ApiImplicitParam(value = "行程费用(出租车必传)", name = "travelFee", required = false, dataType = "double"), @ApiImplicitParam(value = "停车费", name = "parkingFee", required = false, dataType = "double"), @ApiImplicitParam(value = "过路费", name = "crossingFee", required = false, dataType = "double"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil confirmFees(Integer orderId, Integer orderType, Integer type, Double travelFee, Double parkingFee, Double crossingFee){ try{ return orderService.confirmFees(orderId, orderType, type, travelFee, parkingFee, crossingFee); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 司机确认费用(车载端) * @param orderId * @param orderType * @param type * @param travelFee * @return */ @ResponseBody @PostMapping("/api/order/confirmFees_") @ApiOperation(value = "司机确认费用(车载端)", tags = {"司机端-车载端"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(2=出租车)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(value = "支付方式(1=OK平台收款)", name = "type", required = true, dataType = "int"), @ApiImplicitParam(value = "行程费用", name = "travelFee", required = false, dataType = "double"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil confirmFees_(Integer orderId, Integer orderType, Integer type, Double travelFee, Double lon, Double lat){ try{ return orderService.confirmFees_(orderId, orderType, type, travelFee, lon, lat); }catch (Exception e){ e.printStackTrace(); System.err.println(lon + "," + lat); return ResultUtil.runErr(); } } /** * 获取待支付页详情 * @param orderId * @param orderType * @return */ @ResponseBody @PostMapping("/api/order/queryToBePaidPage") @ApiOperation(value = "获取待支付页详情", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryToBePaidPage(Integer orderId, Integer orderType){ try { Map map = orderService.queryToBePaidPage(orderId, orderType); return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 后台改派成功后的推送接口 * @param orderId * @param orderType * @return */ @ResponseBody @PostMapping("/base/order/pushOrderState") public String pushOrderState(Integer orderId, Integer orderType){ try { Map map = orderService.queryOrderInfo(orderId, orderType); //更新小号绑定关系 orderService.RebindMidAxbBindSend(orderId, orderType); pushUtil.pushOrderReassign(Integer.valueOf(String.valueOf(map.get("driverId"))), 2,Integer.valueOf(String.valueOf(map.get("orderId"))), orderType); pushUtil.pushOrderReassign(Integer.valueOf(String.valueOf(map.get("userId"))), 1,Integer.valueOf(String.valueOf(map.get("orderId"))), orderType); pushUtil.pushOrderState(1, Integer.valueOf(String.valueOf(map.get("userId"))), Integer.valueOf(String.valueOf(map.get("orderId"))), orderType, Integer.valueOf(String.valueOf(map.get("orderState")))); return JSON.toJSONString(ResultUtil.success()); }catch (Exception e){ e.printStackTrace(); return JSON.toJSONString(ResultUtil.runErr()); } } /** * 管理后台处理改派后的回退金额 * @return */ @ResponseBody @PostMapping("/base/order/reassignRollbackAmount") public String reassignRollbackAmount(Integer reassignId){ try { Reassign reassign = reassignService.selectById(reassignId); Driver driver = driverService.selectById(reassign.getOriginalDriverId()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String out_trade_no = sdf.format(new Date()) + reassign.getOrderType() + reassign.getId(); if(reassign.getPayType() == 1){//微信 reassign.setRefundState(1); reassignService.updateById(reassign); Map map = payMoneyUtil.wxRefund(reassign.getPayOrder(), out_trade_no, reassign.getMoney().toString(), reassign.getMoney().toString(), callbackPath + "/base/wxReassignRollback"); String return_code = map.get("return_code"); if(!"SUCCESS".equals(return_code)){ return JSON.toJSONString(ResultUtil.error(map.get("return_msg"))); } } if(reassign.getPayType() == 2){//支付宝 reassign.setRefundState(1); reassignService.updateById(reassign); Map map = payMoneyUtil.aliRefund(reassign.getPayOrder(), reassign.getMoney().toString()); String code = map.get("code"); if("10000".equals(code)){ String trade_no = map.get("trade_no"); reassign.setRefundCode(trade_no); reassign.setRefundState(2); reassignService.updateById(reassign); }else{ return JSON.toJSONString(ResultUtil.error(map.get("msg"))); } } if(reassign.getPayType() == 3){//余额 reassign.setRefundState(2); reassignService.updateById(reassign); driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() + reassign.getMoney()); driver.setBalance(driver.getBalance() + reassign.getMoney()); driverService.updateById(driver); } transactionDetailsService.saveData(driver.getId(), "司机改派回退", reassign.getMoney(), 1, 1, 2, reassign.getOrderType(), reassign.getOrderId()); }catch (Exception e){ e.printStackTrace(); return JSON.toJSONString(ResultUtil.runErr()); } return JSON.toJSONString(ResultUtil.success()); } public void wxReassignRollback(HttpServletRequest request, HttpServletResponse response){ try { Map map = payMoneyUtil.wxRefundCallback(request); if(null != map){ String refund_id = map.get("refund_id"); String out_refund_no = map.get("out_refund_no"); String result = map.get("result"); String substring = out_refund_no.substring(17); Integer type = Integer.valueOf(substring.substring(0, 1)); Integer id = Integer.valueOf(substring.substring(1)); Reassign reassign = reassignService.selectById(id); if(reassign.getRefundState() == 2){ return; } reassign.setRefundState(2); reassign.setRefundCode(refund_id); reassignService.updateById(reassign); transactionDetailsService.saveData(reassign.getOriginalDriverId(), "司机改派回退", reassign.getMoney(), 1, 1, 2, reassign.getOrderType(), reassign.getOrderId()); switch (type){ case 1: break; } PrintWriter out = response.getWriter(); out.print(result); out.flush(); out.close(); } }catch (Exception e){ e.printStackTrace(); } } @ResponseBody @PostMapping("/base/order/reassign_") @ApiOperation(value = "提交改派申请", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(value = "改派支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = false, dataType = "int"), @ApiImplicitParam(value = "改派原因", name = "reason", required = true, dataType = "string"), @ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"), }) public String reassign_(Reassign reassign, Integer uid){ try { ResultUtil resultUtil = reassignService.saveData(reassign, uid, 3); return JSON.toJSONString(resultUtil); }catch (SystemException s){ return JSON.toJSONString(ResultUtil.error(s.getMsg())); } catch (Exception e){ e.printStackTrace(); return JSON.toJSONString(ResultUtil.runErr()); } } @ResponseBody @PostMapping("/base/order/test") public String test(String phoneA, String phoneB){ try { Map map = chinaMobileUtil.midAxbBindSend(phoneA, phoneB, 28); System.err.println(JSON.toJSONString(map)); }catch (Exception e){ e.printStackTrace(); return ""; } return null; } @ResponseBody @PostMapping("/base/order/test_") public String test(String bindId){ try { Map map = chinaMobileUtil.midAxbUnBindSend(bindId); }catch (Exception e){ e.printStackTrace(); return ""; } return null; } /** * 司机确认费用(车载端)不管之前数据状态直接修改到待支付(流程断网情况的处理流程) * @param orderId * @param orderType * @param type * @param travelFee * @param lon * @param lat * @return */ @ResponseBody @PostMapping("/api/order/confirmFees$") @ApiOperation(value = "司机确认费用(车载端)不管之前数据状态直接修改到已完成(流程断网情况的处理流程)", tags = {"司机端-车载端"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(2=出租车)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(value = "支付方式(1=OK平台收款)", name = "type", required = true, dataType = "int"), @ApiImplicitParam(value = "行程费用", name = "travelFee", required = false, dataType = "double"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil confirmFees$(Integer orderId, Integer orderType, Integer type, Double travelFee, Double lon, Double lat){ try{ return orderService.confirmFees$(orderId, orderType, type, travelFee, lon, lat); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/order/queryVoiceBroadcast") @ApiOperation(value = "接单后获取语音播报内容", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(value = "当前位置经度", name = "lon", required = true, dataType = "string"), @ApiImplicitParam(value = "当前位置纬度", name = "lat", required = true, dataType = "string"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryVoiceBroadcast(Integer orderId, Integer orderType, String lon, String lat){ try { String s = orderService.queryVoiceBroadcast(orderId, orderType, lon, lat); return ResultUtil.success(s); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 手动确认订单完成 * @param orderId * @param orderType * @return */ @ResponseBody @PostMapping("/api/order/completeOrder") @ApiOperation(value = "手动确认订单完成", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil completeOrder(Integer orderId, Integer orderType){ try { return orderService.completeOrder(orderId, orderType); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/order/queryMoneyInfo") @ApiOperation(value = "获取订单费用明细", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryMoneyInfo(Integer orderId, Integer orderType){ try { Map map = orderService.queryMoneyInfo(orderId, orderType); return ResultUtil.success(MoneyInfoWarpper.getMoneyInfoWarpper(map)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/order/fillInPickUpCode") @ApiOperation(value = "验证小件物流取件码", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "取件码", name = "pickUpCode", required = true, dataType = "string"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil fillInPickUpCode(Integer orderId, String pickUpCode){ try { return orderLogisticsService.fillInPickUpCode(orderId, pickUpCode); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/order/makeUpTheDifference") @ApiOperation(value = "设置小件物流差价", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "差价金额", name = "difference", required = true, dataType = "double"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil makeUpTheDifference(Integer orderId, Double difference){ try { return orderLogisticsService.makeUpTheDifference(orderId, difference); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/order/sendVerificationCode") @ApiOperation(value = "小件物流发送收货码", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil sendVerificationCode(Integer orderId){ try { orderLogisticsService.sendVerificationCode(orderId); return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 完成订单微信支付回调 * @param request */ @ResponseBody @PostMapping("/base/wxPayCrossCity") public void wxPayCrossCity(HttpServletRequest request, HttpServletResponse response){ try { Map map = payMoneyUtil.weixinpayCallback(request); if(null != map){ String out_trade_no = map.get("out_trade_no"); String transaction_id = map.get("transaction_id"); String substring = out_trade_no.substring(17); Integer type = Integer.valueOf(substring.substring(0, 1)); Integer id = Integer.valueOf(substring.substring(1)); switch (type){ case 3: orderCrossCityService.payOrderCrossCityCallback(id, transaction_id, 1); break; } String result = map.get("result"); PrintWriter out = response.getWriter(); out.print(result); out.flush(); out.close(); } }catch (Exception e){ e.printStackTrace(); } } /** * 完成订单支付宝支付回调 * @param request */ @ResponseBody @PostMapping("/base/aliPayCrossCity") public void aliPayCrossCity(HttpServletRequest request, HttpServletResponse response){ try { Map map = payMoneyUtil.alipayCallback(request); if(null != map){ String out_trade_no = map.get("out_trade_no"); String trade_no = map.get("trade_no"); String substring = out_trade_no.substring(17); Integer type = Integer.valueOf(substring.substring(0, 1)); Integer id = Integer.valueOf(substring.substring(1)); switch (type){ case 1: case 3: orderCrossCityService.payOrderCrossCityCallback(id, trade_no, 2); break; } PrintWriter out = response.getWriter(); out.print("success"); out.flush(); out.close(); } }catch (Exception e){ e.printStackTrace(); } } }