package com.supersavedriving.driver.modular.system.api; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.supersavedriving.driver.modular.system.model.*; import com.supersavedriving.driver.modular.system.service.*; import com.supersavedriving.driver.modular.system.util.MallBook.model.InterfaceResponse; import com.supersavedriving.driver.modular.system.util.MallBook.model.Receive; import com.supersavedriving.driver.modular.system.util.MallBook.model.ReceiveUser; import com.supersavedriving.driver.modular.system.util.MallBook.util.RSASignature; import com.supersavedriving.driver.modular.system.util.MallBook.util.TrhRequest; import com.supersavedriving.driver.modular.system.util.PushUtil; import com.supersavedriving.driver.modular.system.util.rongyun.RongYunUtil; import com.supersavedriving.driver.modular.system.util.rongyun.model.CloudRecordingCallback; import com.supersavedriving.driver.modular.system.warpper.*; import com.supersavedriving.driver.core.util.ToolUtil; import com.supersavedriving.driver.modular.system.util.ResultUtil; import com.supersavedriving.driver.modular.system.warpper.AddOrderWarpper; import com.supersavedriving.driver.modular.system.warpper.HallOrderList; import com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.*; /** * 订单控制器 * @author pzb * @Date 2023/2/16 15:02 */ @RestController @RequestMapping("") public class OrderController { Logger logger = LoggerFactory.getLogger(OrderController.class); @Autowired private IOrderService orderService; @Autowired private IDriverService driverService; @Autowired private IRechargeRecordService rechargeRecordService; @Autowired private IDivisionRecordService divisionRecordService; @Autowired private PushUtil pushUtil; @Autowired private TOrderCheckService orderCheckService; @ResponseBody @PostMapping("/api/order/queryDriverServerOrder") // @ServiceLog(name = "获取司机服务中的订单id", url = "/api/order/queryDriverServerOrder") @ApiOperation(value = "获取司机服务中的订单id", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper> queryDriverServerOrder(){ try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } Map map = orderService.queryDriverServerOrder(uid); return ResponseWarpper.success(map); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/driverAddOrder") // @ServiceLog(name = "司机代客下单", url = "/api/order/driverAddOrder") @ApiOperation(value = "司机代客下单", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper driverAddOrder(AddOrderWarpper addOrderWarpper){ try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } ResultUtil resultUtil = orderService.driverAddOrder(uid, addOrderWarpper); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/queryOrderHall") // @ServiceLog(name = "司机获取大厅订单列表", url = "/api/order/queryOrderHall") @ApiOperation(value = "司机获取大厅订单列表", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), @ApiImplicitParam(value = "页条数", name = "pageSize", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper> queryOrderHall(Integer pageNum, Integer pageSize){ if(null == pageNum){ return ResponseWarpper.success(ResultUtil.paranErr("pageNum")); } if(null == pageSize){ return ResponseWarpper.success(ResultUtil.paranErr("pageSize")); } try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } List hallOrderLists = orderService.queryOrderHall(uid, pageNum, pageSize); return ResponseWarpper.success(hallOrderLists); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/rejectionOrder") // @ServiceLog(name = "司机拒绝接单", url = "/api/order/rejectionOrder") @ApiOperation(value = "司机拒绝接单", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper rejectionOrder(Long orderId){ if(null == orderId){ return ResponseWarpper.success(ResultUtil.paranErr("orderId")); } try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } ResultUtil resultUtil = orderService.rejectionOrder(uid, orderId); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/receiveOrder") // @ServiceLog(name = "司机接单操作", url = "/api/order/receiveOrder") @ApiOperation(value = "司机接单操作", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper receiveOrder(Long orderId){ if(null == orderId){ return ResponseWarpper.success(ResultUtil.paranErr("orderId")); } try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } ResultUtil resultUtil = orderService.receiveOrder(uid, orderId); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/receiveCheckOrder") @ApiOperation(value = "司机车检接单操作", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "车检订单id", name = "orderId", required = true, dataType = "long"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper receiveCheckOrder(Long orderId){ if(null == orderId){ return ResponseWarpper.success(ResultUtil.paranErr("orderId")); } try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } ResultUtil resultUtil = orderCheckService.receiveCheckOrder(uid, orderId); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/queryOrderInfo") // @ServiceLog(name = "获取订单详情", url = "/api/order/queryOrderInfo") @ApiOperation(value = "获取订单详情", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper queryOrderInfo(Long orderId){ if(null == orderId){ return ResponseWarpper.success(ResultUtil.paranErr("orderId")); } try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } OrderInfoWarpper orderInfoWarpper = orderService.queryOrderInfo(uid, orderId); return ResponseWarpper.success(orderInfoWarpper); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/queryCheckOrderInfo") // @ServiceLog(name = "获取订单详情", url = "/api/order/queryOrderInfo") @ApiOperation(value = "获取车检订单详情", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper queryCheckOrderInfo(Long orderId){ if(null == orderId){ return ResponseWarpper.success(ResultUtil.paranErr("orderId")); } try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } CheckOrderInfoWarpper orderInfoWarpper = orderCheckService.queryOrderInfo(uid, orderId); return ResponseWarpper.success(orderInfoWarpper); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/setCarType") // @ServiceLog(name = "获取订单详情", url = "/api/order/queryOrderInfo") @ApiOperation(value = "设置车类型1油车 2电车", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), @ApiImplicitParam(value = "carType", name = "carType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper setCarType(Long orderId,Integer carType){ if(null == orderId){ return ResponseWarpper.success(ResultUtil.paranErr("orderId")); } if(null == carType){ return ResponseWarpper.success(ResultUtil.paranErr("carType")); } try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } TOrderCheck tOrderCheck = orderCheckService.selectById(orderId); tOrderCheck.setCarType(carType); orderCheckService.updateById(tOrderCheck); return ResponseWarpper.success(); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/driverProcessOperations") // @ServiceLog(name = "司机走订单流程", url = "/api/order/driverProcessOperations") @ApiOperation(value = "司机走订单流程", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper driverProcessOperations(ProcessOperationsWarpper processOperationsWarpper){ try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } ResultUtil resultUtil = orderService.driverProcessOperations(uid, processOperationsWarpper); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/driverCheckProcessOperations") // @ServiceLog(name = "司机走订单流程", url = "/api/order/driverProcessOperations") @ApiOperation(value = "司机走车检订单流程", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper driverCheckProcessOperations(ProcessCheckOperationsWarpper processOperationsWarpper){ try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } ResultUtil resultUtil = orderCheckService.driverCheckProcessOperations(uid, processOperationsWarpper); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/transferOrder") // @ServiceLog(name = "司机转单操作", url = "/api/order/transferOrder") @ApiOperation(value = "司机转单操作", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), @ApiImplicitParam(value = "原因", name = "cause", required = true, dataType = "string"), @ApiImplicitParam(value = "phone", name = "phone", required = false, dataType = "string"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper transferOrder(Long orderId, String cause,String phone){ if(ToolUtil.isEmpty(orderId)){ return ResponseWarpper.success(ResultUtil.paranErr("orderId")); } if(ToolUtil.isEmpty(cause)){ return ResponseWarpper.success(ResultUtil.paranErr("cause")); } try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } ResultUtil resultUtil = orderService.transferOrder(uid, orderId, cause,phone); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/transferOrderVerify") // @ServiceLog(name = "司机转单操作", url = "/api/order/transferOrder") @ApiOperation(value = "司机转单操作验证", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "phone", name = "phone", required = false, dataType = "string"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper transferOrderVerify(String phone){ if(phone!=null && !"".equals(phone)) { List drivers = driverService.selectList(new EntityWrapper().eq("phone", phone)); if (drivers.size() == 0) { return new ResponseWarpper(500,"暂无该司机,无法转单"); } else { Driver driver = drivers.get(0); if (driver.getServerStatus() != 1) { return new ResponseWarpper(500,"司机正在服务中,无法转单。"); } if (driver.getStatus() != 1) { return new ResponseWarpper(500,"该司机已被冻结,无法转单。"); } } } return ResponseWarpper.success(); } @ResponseBody @PostMapping("/api/order/setOrderEndAddress") // @ServiceLog(name = "司机修改订单终点", url = "/api/order/setOrderEndAddress") @ApiOperation(value = "司机修改订单终点", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper setOrderEndAddress(OrderEndAddressWarpper orderEndAddressWarpper){ try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } ResultUtil resultUtil = orderService.setOrderEndAddress(uid, orderEndAddressWarpper); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/cancelTransferOrder") // @ServiceLog(name = "司机取消转单操作", url = "/api/order/cancelTransferOrder") @ApiOperation(value = "司机取消转单操作", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper cancelTransferOrder(Long orderId){ if(ToolUtil.isEmpty(orderId)){ return ResponseWarpper.success(ResultUtil.paranErr("orderId")); } try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } ResultUtil resultUtil = orderService.cancelTransferOrder(uid, orderId); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/driverCancelOrder") // @ServiceLog(name = "司机取消订单操作", url = "/api/order/driverCancelOrder") @ApiOperation(value = "司机取消订单操作", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), @ApiImplicitParam(value = "原因", name = "cause", required = true, dataType = "string"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper driverCancelOrder(Long orderId, String cause){ if(ToolUtil.isEmpty(orderId)){ return ResponseWarpper.success(ResultUtil.paranErr("orderId")); } if(ToolUtil.isEmpty(cause)){ return ResponseWarpper.success(ResultUtil.paranErr("cause")); } try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } ResultUtil resultUtil = orderService.driverCancelOrder(uid, orderId, cause); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/queryOrderPrice") // @ServiceLog(name = "获取订单费用明细", url = "/api/order/queryOrderPrice") @ApiOperation(value = "获取订单费用明细", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper queryOrderPrice(Long orderId){ if(ToolUtil.isEmpty(orderId)){ return ResponseWarpper.success(ResultUtil.paranErr("orderId")); } try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } OrderPriceWarpper orderPriceWarpper = orderService.queryOrderPrice(uid, orderId); return ResponseWarpper.success(orderPriceWarpper); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/setOrderStatus") // @ServiceLog(name = "服务完成后修改订单状态", url = "/api/order/setOrderStatus") @ApiOperation(value = "服务完成后修改订单状态", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), @ApiImplicitParam(value = "支付方式(1=线上,2=线下)", name = "payType", required = true, dataType = "int"), @ApiImplicitParam(value = "107(待支付),108(已完成)", name = "state", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper setOrderStatus(Long orderId, Integer payType, Integer state){ if(ToolUtil.isEmpty(orderId)){ return ResponseWarpper.success(ResultUtil.paranErr("orderId")); } if(ToolUtil.isEmpty(state)){ return ResponseWarpper.success(ResultUtil.paranErr("state")); } try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } ResultUtil resultUtil = orderService.setOrderStatus(uid, orderId, payType, state); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } /** * 转账回调 * @param execute * @param response */ @ResponseBody @PostMapping("/base/order/zhaunzhangCallback") public void zhaunzhangCallback(@RequestBody InterfaceResponse execute, HttpServletResponse response){ try { if("0000".equals(execute.getCode())){ JSONObject jsonObject = JSON.parseObject(execute.getResult()); Integer status = jsonObject.getInteger("status");//0:待处理;1:成功;2:失败 if(2 == status){ System.err.println("转账失败"); return; } String parameter1 = jsonObject.getString("parameter1"); RechargeRecord rechargeRecord = rechargeRecordService.selectById(parameter1); response.setStatus(200); PrintWriter out = response.getWriter(); out.print("OK"); out.flush(); out.close(); }else{ System.err.println("转账失败:" + execute.getMsg()); return; } }catch (Exception e){ e.printStackTrace(); } } @ResponseBody @PostMapping("/api/order/queryDriverOrderList") // @ServiceLog(name = "获取司机订单列表", url = "/api/order/queryDriverOrderList") @ApiOperation(value = "获取司机订单列表", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单状态(107=未支付,109=已完成,301=已取消)", name = "state", required = true, dataType = "int"), @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), @ApiImplicitParam(value = "页条数", name = "pageSize", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper> queryDriverOrderList(Integer state, Integer pageNum, Integer pageSize){ if(null == pageNum){ return ResponseWarpper.success(ResultUtil.paranErr("pageNum")); } if(null == pageSize){ return ResponseWarpper.success(ResultUtil.paranErr("pageSize")); } try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } List driverOrderListWarppers = orderService.queryDriverOrderList(uid, state, pageNum, pageSize); return ResponseWarpper.success(driverOrderListWarppers); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/queryDriverCheckOrderList") // @ServiceLog(name = "获取司机订单列表", url = "/api/order/queryDriverOrderList") @ApiOperation(value = "获取司机车检订单列表(2.0)", 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 = "pageSize", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper> queryDriverCheckOrderList(Integer state, Integer pageNum, Integer pageSize){ if(null == pageNum){ return ResponseWarpper.success(ResultUtil.paranErr("pageNum")); } if(null == pageSize){ return ResponseWarpper.success(ResultUtil.paranErr("pageSize")); } try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } List driverOrderListWarppers = orderService.queryDriverCheckOrderList(uid, state, pageNum, pageSize); return ResponseWarpper.success(driverOrderListWarppers); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } /** * 服务录音回调 * @param request */ @ResponseBody @PostMapping("/base/order/cloudRecordingCallback") public void cloudRecordingCallback(HttpServletRequest request, HttpServletResponse response){ CloudRecordingCallback cloudRecordingCallback = RongYunUtil.cloudRecordingCallback(request); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.err.println(sdf.format(new Date()) + "-------------------云端录制状态回调!-------------------"); System.err.println(JSON.toJSONString(cloudRecordingCallback)); if(null == cloudRecordingCallback){ System.err.println("云端录制状态回调解析出错!"); return; } Integer type = cloudRecordingCallback.getType(); if(4 == type){//文件上传 String fileUrl = cloudRecordingCallback.getOutput().getFileUrl(); String roomId = cloudRecordingCallback.getRoomId(); Order order = orderService.selectById(roomId); order.setRouteRecord(fileUrl); orderService.updateById(order); } PrintWriter out = null; try { out = response.getWriter(); } catch (IOException e) { e.printStackTrace(); } out.print("OK"); out.flush(); out.close(); } @ResponseBody @PostMapping("/api/order/openOrderQRCode") // @ServiceLog(name = "打开下单二维码操作", url = "/api/order/openOrderQRCode") @ApiOperation(value = "打开下单二维码操作", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper openOrderQRCode(){ try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } ResultUtil resultUtil = driverService.openOrderQRCode(uid); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } @ResponseBody @PostMapping("/api/order/closeOrderQRCode") // @ServiceLog(name = "关闭下单二维码操作", url = "/api/order/closeOrderQRCode") @ApiOperation(value = "关闭下单二维码操作", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResponseWarpper closeOrderQRCode(){ try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } ResultUtil resultUtil = driverService.closeOrderQRCode(uid); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } /** * 异步分账回调 */ @ResponseBody @PostMapping("/base/order/ledgerCallback") public void ledgerCallback(@RequestBody InterfaceResponse execute, HttpServletResponse response){ try{ // 验签 boolean verify = RSASignature.validate(execute.content(), execute.getSign()); if (verify) {//验签成功业务处理逻辑 if("0000".equals(execute.getCode())){ JSONObject jsonObject = JSON.parseObject(execute.getResult()); Integer status = jsonObject.getInteger("status"); if(2 == status){ logger.warn("异步分账回调异常"); return; } String merOrderId = jsonObject.getString("merOrderId"); String divisionRecordId = jsonObject.getString("parameter1"); DivisionRecord divisionRecord = divisionRecordService.selectById(divisionRecordId); if(divisionRecord.getState() == 2){ response.setStatus(200); PrintWriter out = response.getWriter(); out.print("OK"); out.flush(); out.close(); return; } divisionRecord.setMerOrderId(merOrderId); divisionRecord.setPayTime(new Date()); divisionRecord.setState(2); divisionRecordService.updateById(divisionRecord); //确认收货 new Timer().schedule(new TimerTask() { @Override public void run() { Receive receive = new Receive();//确认收货 receive.setOriginalMerOrderId(merOrderId); receive.setRcvAmount(new BigDecimal(divisionRecord.getAmount()).multiply(new BigDecimal(100)).setScale(0, RoundingMode.HALF_EVEN).longValue() + ""); List splitList = new ArrayList<>(); ReceiveUser receiveUser = new ReceiveUser(); receiveUser.setSplitUserId(divisionRecord.getMerchantNumber()); receiveUser.setRcvSplitAmount(new BigDecimal(divisionRecord.getAmount()).multiply(new BigDecimal(100)).setScale(0, RoundingMode.HALF_EVEN).longValue() + ""); splitList.add(receiveUser); receive.setSplitList(splitList); TrhRequest request1 = new TrhRequest(); InterfaceResponse execute = request1.execute(receive, Receive.SERVICE_CODE); if(!"0000".equals(execute.getCode())){ logger.warn("确认收货" + execute.getMsg()); } JSONObject jsonObject = JSON.parseObject(execute.getResult()); String status = jsonObject.getString("status"); if("2".equals(status)){ logger.warn("确认收货失败"); } if("0".equals(status)){ logger.warn("确认收货处理中"); } } }, 60000); response.setStatus(200); PrintWriter out = response.getWriter(); out.print("OK"); out.flush(); out.close(); } } else {//验签失败业务处理逻辑 logger.warn("支付回调验签失败"); } }catch (Exception e){ e.printStackTrace(); } } /** * 管理后台调用推送 * @param id * @param type * @param pushOrderInfoWarpper */ @ResponseBody @PostMapping("/base/order/pushOrderInfo") public void pushOrderInfo(Integer id, Integer type, PushOrderInfoWarpper pushOrderInfoWarpper){ pushUtil.pushOrderInfo(id, type, pushOrderInfoWarpper); } }