| | |
| | | import com.xiaopeng.api.vo.payFront.CreditOrderCreateVo; |
| | | import com.xiaopeng.api.vo.payFront.CreditPaySignQueryVo; |
| | | import com.xiaopeng.api.vo.order.FareBreakdownVo; |
| | | import com.xiaopeng.api.vo.payFront.CreditPrecreateVo; |
| | | import com.xiaopeng.api.vo.vehicleConvoy.AddTaxiPassengerVo; |
| | | import com.xiaopeng.api.vo.vehicleConvoy.BluetoothDeliverVo; |
| | | import com.xiaopeng.api.vo.vehicleConvoy.CancelTaxiPassengerVo; |
| | |
| | | redisService.deleteObject("rt:bluetooth:unlock:order:" + order.getId()); |
| | | XpVehicle xpVehicle = xpVehicleClient.queryById(order.getVehicleId()).getData(); |
| | | BluetoothDeliverVo vo = new BluetoothDeliverVo(); |
| | | vo.setVim(xpVehicle.getVehicleVin()); |
| | | vo.setCredential(token); |
| | | vo.setVin(xpVehicle.getVehicleVin()); |
| | | vo.setPassengerUid(order.getAppUserId()); |
| | | BaseVehicleUserDto delete = bluetoothUnlockClient.delete(vo); |
| | | if (null == delete || delete.getCode() != 0) { |
| | |
| | | |
| | | BaseVehicleUserDto baseVehicleUserDto = userVehicleClient.cancelTaxiPassenger(cancelTaxiPassengerVo); |
| | | if (baseVehicleUserDto == null) { |
| | | // TODO 本地无法调通 |
| | | // throw new RuntimeException("取消订单失败"); |
| | | throw new RuntimeException("取消订单失败"); |
| | | } |
| | | |
| | | //还原车辆状态 |
| | |
| | | xpVehicleClient.updateVehicleById(vehicle1); |
| | | log.info("用户取消订单,车辆状态修改0 {}", xpVehicle.getPlateNumber()); |
| | | } |
| | | |
| | | //删除蓝牙秘钥 |
| | | String token = redisService.getCacheObject("rt:bluetooth:unlock:order:" + order.getId()); |
| | | if (StringUtils.isNotBlank(token)) { |
| | | redisService.deleteObject("rt:bluetooth:unlock:" + token); |
| | | redisService.deleteObject("rt:bluetooth:unlock:order:" + order.getId()); |
| | | BluetoothDeliverVo vo = new BluetoothDeliverVo(); |
| | | vo.setCredential(token); |
| | | vo.setVin(xpVehicle.getVehicleVin()); |
| | | vo.setPassengerUid(order.getAppUserId()); |
| | | BaseVehicleUserDto delete = bluetoothUnlockClient.delete(vo); |
| | | if (null == delete || delete.getCode() != 0) { |
| | | log.error("删除蓝牙解锁失败:{} {}", delete.getMsg(), order.getOrderNumber()); |
| | | } |
| | | } |
| | | |
| | | //车辆继续巡游 |
| | | addCruiseMission(order, status); |
| | | } |
| | | |
| | | //删除蓝牙秘钥 |
| | | String token = redisService.getCacheObject("rt:bluetooth:unlock:order:" + order.getId()); |
| | | if (StringUtils.isNotBlank(token)) { |
| | | redisService.deleteObject("rt:bluetooth:unlock:" + token); |
| | | redisService.deleteObject("rt:bluetooth:unlock:order:" + order.getId()); |
| | | XpVehicle xpVehicle = xpVehicleClient.queryById(order.getVehicleId()).getData(); |
| | | BluetoothDeliverVo vo = new BluetoothDeliverVo(); |
| | | vo.setVim(xpVehicle.getVehicleVin()); |
| | | vo.setPassengerUid(order.getAppUserId()); |
| | | BaseVehicleUserDto delete = bluetoothUnlockClient.delete(vo); |
| | | if (null == delete || delete.getCode() != 0) { |
| | | log.error("删除蓝牙解锁失败:{} {}", delete.getMsg(), order.getOrderNumber()); |
| | | } |
| | | } |
| | | }else{ |
| | | //流量接入-订单推送 推送取消订单 |
| | |
| | | redisService.deleteObject("rt:bluetooth:unlock:order:" + order.getId()); |
| | | XpVehicle xpVehicle = xpVehicleClient.queryById(order.getVehicleId()).getData(); |
| | | BluetoothDeliverVo vo = new BluetoothDeliverVo(); |
| | | vo.setVim(xpVehicle.getVehicleVin()); |
| | | vo.setCredential(token); |
| | | vo.setVin(xpVehicle.getVehicleVin()); |
| | | vo.setPassengerUid(order.getAppUserId()); |
| | | BaseVehicleUserDto delete = bluetoothUnlockClient.delete(vo); |
| | | if (null == delete || delete.getCode() != 0) { |
| | |
| | | order.setAppUserId(appUserId); |
| | | bootCommonService.setCache_orderStatus(order.getId(), order, null); |
| | | //删除蓝牙秘钥 |
| | | // String token = redisService.getCacheObject("rt:bluetooth:unlock:order:" + orderId); |
| | | // if(StringUtils.isNotBlank(token)){ |
| | | // redisService.deleteObject("rt:bluetooth:unlock:" + token); |
| | | // redisService.deleteObject("rt:bluetooth:unlock:order:" + orderId); |
| | | // XpVehicle xpVehicle = xpVehicleClient.queryById(order.getVehicleId()).getData(); |
| | | // BluetoothDeliverVo vo = new BluetoothDeliverVo(); |
| | | // vo.setVim(xpVehicle.getVehicleVin()); |
| | | // vo.setPassengerUid(order.getAppUserId()); |
| | | // BaseVehicleUserDto delete = bluetoothUnlockClient.delete(vo); |
| | | // if(null == delete || delete.getCode() != 0){ |
| | | // log.error("删除蓝牙解锁失败:{} {}", delete.getMsg(), order.getOrderNumber()); |
| | | // } |
| | | // } |
| | | String token = redisService.getCacheObject("rt:bluetooth:unlock:order:" + orderId); |
| | | if(StringUtils.isNotBlank(token)){ |
| | | redisService.deleteObject("rt:bluetooth:unlock:" + token); |
| | | redisService.deleteObject("rt:bluetooth:unlock:order:" + orderId); |
| | | XpVehicle xpVehicle = xpVehicleClient.queryById(order.getVehicleId()).getData(); |
| | | BluetoothDeliverVo vo = new BluetoothDeliverVo(); |
| | | vo.setCredential(token); |
| | | vo.setVin(xpVehicle.getVehicleVin()); |
| | | vo.setPassengerUid(order.getAppUserId()); |
| | | BaseVehicleUserDto delete = bluetoothUnlockClient.delete(vo); |
| | | if(null == delete || delete.getCode() != 0){ |
| | | log.error("删除蓝牙解锁失败:{} {}", delete.getMsg(), order.getOrderNumber()); |
| | | } |
| | | } |
| | | |
| | | // 根据订单所属开通城市id 查询定价 |
| | | XpPricing pricing = bootCommonService.getXpPricing(order.getCityId(), order.getVehicleId()); |
| | |
| | | @Override |
| | | public R payment(XpOrderPayDto dto, String uid) { |
| | | |
| | | |
| | | HashMap<String, Object> resultMap = new HashMap<>(); |
| | | |
| | | // 1.0 免密 //查询是否开通免密 |
| | | // 1先查用户是否申请 申请了拿到通过的businessOrderId |
| | | boolean signed = false; |
| | | CreditPaySignQueryDto creditPaySignQueryDto = new CreditPaySignQueryDto(); |
| | | creditPaySignQueryDto.setUid(Long.valueOf(uid)); |
| | | creditPaySignQueryDto.setBusinessId(appid); |
| | | creditPaySignQueryDto.setCategory("xp_robotaxi_api"); |
| | | creditPaySignQueryDto.setBusinessId("xp-robotaxi"); |
| | | creditPaySignQueryDto.setCategory("009001"); |
| | | creditPaySignQueryDto.setBusinessOrderId(""); |
| | | R<CreditPaySignQueryVo> creditPaySignQueryVoR = xpPayFrontClient.queryCreditPaySign(creditPaySignQueryDto); |
| | | if (creditPaySignQueryVoR.getCode()==200) { |
| | |
| | | // y已签约 1.信用下单 |
| | | CreditOrderCreateDto creditOrderCreateDto = new CreditOrderCreateDto(); |
| | | creditOrderCreateDto.setUid(Long.valueOf(uid)); |
| | | creditOrderCreateDto.setBusinessId(appid); |
| | | creditOrderCreateDto.setBusinessId("xp-robotaxi"); |
| | | creditOrderCreateDto.setCategory("xp_robotaxi_api"); |
| | | creditOrderCreateDto.setBusinessOrderId(""); |
| | | creditOrderCreateDto.setSubject("信用下单"); |
| | | creditOrderCreateDto.setSubject("009001"); |
| | | creditOrderCreateDto.setPayType("13"); |
| | | |
| | | |
| | |
| | | R<CreditOrderCreateVo> creditOrderCreateVoR = xpPayFrontClient.createCreditOrder(creditOrderCreateDto); |
| | | if(creditOrderCreateVoR.getCode()==200){ |
| | | CreditOrderCreateVo data = creditOrderCreateVoR.getData(); |
| | | return R.ok(data.getPackageValue()); |
| | | resultMap.put("status", 1); |
| | | resultMap.put("value", data); |
| | | return R.ok(resultMap); |
| | | } |
| | | |
| | | }else { |
| | |
| | | XpOrder order = this.getById(dto.getOrderId()); |
| | | CreditPrecreateDto creditPrecreateDto = new CreditPrecreateDto(); |
| | | creditPrecreateDto.setUid(uid); |
| | | creditPrecreateDto.setBizId(appid); |
| | | creditPrecreateDto.setBizId("xp-robotaxi"); |
| | | creditPrecreateDto.setBizOrderId(""); |
| | | creditPrecreateDto.setPayScene(99); |
| | | creditPrecreateDto.setAmount(order.getOrderMoney().multiply(new BigDecimal(100)).intValue()); |
| | | creditPrecreateDto.setCategory("信用下单"); |
| | | creditPrecreateDto.setCategory("009001"); |
| | | creditPrecreateDto.setTitle("信用下单"); |
| | | creditPrecreateDto.setDetail("信用下单"); |
| | | |
| | | HashMap<String, String> businessExtend = new HashMap<>(); |
| | | businessExtend.put("returnUrl", ""); |
| | | businessExtend.put("notifyUrl", ""); |
| | | creditPrecreateDto.setBusinessExtend(businessExtend); |
| | | |
| | | R<CreditPrecreateVo> creditPrecreateVoR = xpPayFrontClient.precreate(creditPrecreateDto); |
| | | if (creditPrecreateVoR.getCode()==200) { |
| | | CreditPrecreateVo data = creditPrecreateVoR.getData(); |
| | | resultMap.put("status", 2); |
| | | resultMap.put("value", data); |
| | | return R.ok(resultMap); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | //开始下发蓝牙token |
| | | BluetoothDeliverVo vo = new BluetoothDeliverVo(); |
| | | vo.setCredential(token); |
| | | vo.setVim(vehicle.getVehicleVin()); |
| | | vo.setVin(vehicle.getVehicleVin()); |
| | | vo.setPassengerUid(order.getAppUserId()); |
| | | // BaseVehicleUserDto deliver = bluetoothUnlockClient.deliver(vo); |
| | | // if(null == deliver){ |
| | | // throw new ServiceException("下发蓝牙token失败"); |
| | | // } |
| | | // if(deliver.getCode() != 0){ |
| | | // log.error("下发蓝牙token失败:{} {}", deliver.getMsg(), order.getOrderNumber()); |
| | | // throw new ServiceException(deliver.getMsg()); |
| | | // } |
| | | // log.info("下发蓝牙token成功:{} {}", deliver.getData(), order.getOrderNumber()); |
| | | BaseVehicleUserDto deliver = bluetoothUnlockClient.deliver(vo); |
| | | if(null == deliver){ |
| | | throw new ServiceException("下发蓝牙token失败"); |
| | | } |
| | | if(deliver.getCode() != 0){ |
| | | log.error("下发蓝牙token失败:{} {}", deliver.getMsg(), order.getOrderNumber()); |
| | | throw new ServiceException(deliver.getMsg()); |
| | | } |
| | | log.info("下发蓝牙token成功:{} {}", deliver.getData(), order.getOrderNumber()); |
| | | } |
| | | |
| | | if (order.getStatus() == 2) { |