| | |
| | | redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 0, 24L, TimeUnit.HOURS); |
| | | return; |
| | | } |
| | | /* |
| | | order.setStatus(0); |
| | | order.setAppUserId(null); |
| | | baseMapper.updateById(order); |
| | |
| | | xpOrderCancel.setCancelSource(1); |
| | | xpOrderCancel.setCancelReason("用户取消订单"); |
| | | xpOrderCancelService.save(xpOrderCancel); |
| | | |
| | | */ |
| | | |
| | | // 移除mongo数据 |
| | | xpPricingClient.deleteXpGeoQueryEntity(order.getId().toString()); |
| | |
| | | this.updateById(xpOrder); |
| | | //结束行程,修改状态和计算费用 |
| | | this.endTrip(xpOrder.getId(),appUserId.toString()); |
| | | |
| | | //将支付金额修改成0 并将状态修改成 订单状态9 |
| | | XpOrder xpOrder1 = new XpOrder(); |
| | | xpOrder1.setId(xpOrder.getId()); |
| | | xpOrder1.setPayMoney(BigDecimal.ZERO); |
| | | xpOrder1.setStatus(OrderStatusEnum.PENDING_PAYMENT.getCode()); |
| | | xpOrder1.setUpdateTime(LocalDateTime.now()); |
| | | baseMapper.updateById(xpOrder1); |
| | | redisService.setCacheObject("ORDER_STATUS:" + xpOrder.getId(), xpOrder1.getStatus(), 24L, TimeUnit.HOURS); |
| | | |
| | | return R.ok(); |
| | | } |
| | |
| | | XpOrder order = this.getById(dto.getOrderId()); |
| | | order.setStatus(9); |
| | | order.setAppUserId(null); |
| | | |
| | | if(order.getCarAbnormal()){//是故障单 支付金额未0 @todo yyy 这里应该有问题 |
| | | order.setPayMoney(BigDecimal.ZERO); |
| | | }else{ |
| | | if(order.getCouponId()!=null){ |
| | | UseUserCouponDto useUserCouponDto = new UseUserCouponDto(); |
| | | useUserCouponDto.setUserCouponId(order.getCouponId()); |
| | | R<BigDecimal> decimalR = xpAppUserCouponClient.useUserCoupon(useUserCouponDto); |
| | | if(decimalR.getCode()==200){ |
| | | order.setCouponMoney(decimalR.getData()); |
| | | if(order.getCouponMoney().compareTo(order.getOrderMoney())>0){ |
| | | order.setPayMoney(BigDecimal.ZERO); |
| | | order.setCouponMoney(order.getOrderMoney()); |
| | | }else { |
| | | order.setPayMoney(order.getOrderMoney().subtract(decimalR.getData())); |
| | | } |
| | | if(order.getCouponId()!=null){ |
| | | UseUserCouponDto useUserCouponDto = new UseUserCouponDto(); |
| | | useUserCouponDto.setUserCouponId(order.getCouponId()); |
| | | R<BigDecimal> decimalR = xpAppUserCouponClient.useUserCoupon(useUserCouponDto); |
| | | if(decimalR.getCode()==200){ |
| | | order.setCouponMoney(decimalR.getData()); |
| | | if(order.getCouponMoney().compareTo(order.getOrderMoney())>0){ |
| | | order.setPayMoney(BigDecimal.ZERO); |
| | | order.setCouponMoney(order.getOrderMoney()); |
| | | }else { |
| | | order.setPayMoney(order.getOrderMoney().subtract(decimalR.getData())); |
| | | } |
| | | } |
| | | } |
| | | |
| | | baseMapper.updateById(order); |
| | | redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 9, 24L, TimeUnit.HOURS); |
| | | return R.ok(); |
| | |
| | | xpOrder.setAppUserId(null); |
| | | this.updateById(xpOrder); |
| | | } |
| | | Boolean cancelShow = true; //是否能取消行程 |
| | | xpOrderDetailVO.setCancelShow(cancelShow); |
| | | |
| | | |
| | | |
| | | return xpOrderDetailVO; |
| | | } |
| | | |
| | | /** |
| | | * 取消行程:若处于“送驾中”且离目的地小于10分钟路程(后台配置),【取消行程】按钮应置灰; |
| | | * 修改行程: |
| | | * 1. 当前剩余里程 < 800米 (后台配置)或 剩余时间 < 5分钟(后台配置)(以先到者为准),禁止修改,按钮置灰。 |
| | | * 2. 单次行程最多允许修改 2次 (后台配置)目的地,防恶意高频调用 |
| | | * @return |
| | | */ |
| | | private Boolean isCancelShow(){ |
| | | |
| | | return true; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void changeAmount(Long id, BigDecimal amount) { |
| | | if (Objects.isNull(id)) { |