| | |
| | | import com.xiaopeng.api.dto.map.RouteAndFareDto; |
| | | import com.xiaopeng.api.dto.operation.LonLatDto; |
| | | import com.xiaopeng.api.dto.order.*; |
| | | import com.xiaopeng.api.dto.payFront.CreditOrderCreateDto; |
| | | import com.xiaopeng.api.dto.payFront.CreditPaySignQueryDto; |
| | | import com.xiaopeng.api.dto.payFront.CreditPrecreateDto; |
| | | import com.xiaopeng.api.dto.payFront.*; |
| | | import com.xiaopeng.api.dto.pushMessage.SendMessageDTO; |
| | | import com.xiaopeng.api.dto.statistics.DailyCountDTO; |
| | | import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO; |
| | |
| | | import com.xiaopeng.api.vo.operation.NearestNextVo; |
| | | import com.xiaopeng.api.vo.operation.RouteVo; |
| | | import com.xiaopeng.api.vo.order.*; |
| | | import com.xiaopeng.api.vo.payFront.CreditOrderCreateVo; |
| | | import com.xiaopeng.api.vo.payFront.CreditPaySignQueryVo; |
| | | import com.xiaopeng.api.vo.payFront.*; |
| | | 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; |
| | |
| | | import com.xiaopeng.common.core.exception.ServiceException; |
| | | import com.xiaopeng.common.core.utils.DateUtils; |
| | | import com.xiaopeng.common.core.utils.GeodesyUtil; |
| | | import com.xiaopeng.common.core.utils.OrderCodeUtil; |
| | | import com.xiaopeng.common.core.utils.StringUtils; |
| | | import com.xiaopeng.common.core.web.domain.BaseModel; |
| | | import com.xiaopeng.common.core.web.page.PageInfo; |
| | |
| | | public R payment(XpOrderPayDto dto, String uid) { |
| | | |
| | | |
| | | XpOrder order = this.getById(dto.getOrderId()); |
| | | |
| | | HashMap<String, Object> resultMap = new HashMap<>(); |
| | | |
| | | // 1.0 免密 //查询是否开通免密 |
| | |
| | | creditPaySignQueryDto.setUid(Long.valueOf(uid)); |
| | | creditPaySignQueryDto.setBusinessId("xp-robotaxi"); |
| | | creditPaySignQueryDto.setCategory("009001"); |
| | | creditPaySignQueryDto.setBusinessOrderId(""); |
| | | creditPaySignQueryDto.setBusinessOrderId(OrderCodeUtil.getOrderCode("MMZF")); |
| | | R<CreditPaySignQueryVo> creditPaySignQueryVoR = xpPayFrontClient.queryCreditPaySign(creditPaySignQueryDto); |
| | | if (creditPaySignQueryVoR.getCode()==200) { |
| | | CreditPaySignQueryVo data = creditPaySignQueryVoR.getData(); |
| | |
| | | CreditOrderCreateDto creditOrderCreateDto = new CreditOrderCreateDto(); |
| | | creditOrderCreateDto.setUid(Long.valueOf(uid)); |
| | | creditOrderCreateDto.setBusinessId("xp-robotaxi"); |
| | | creditOrderCreateDto.setCategory("xp_robotaxi_api"); |
| | | creditOrderCreateDto.setCategory("009001"); |
| | | creditOrderCreateDto.setBusinessOrderId(""); |
| | | creditOrderCreateDto.setSubject("009001"); |
| | | creditOrderCreateDto.setSubject("小鹏集团|robotaxi"); |
| | | creditOrderCreateDto.setPayType("13"); |
| | | |
| | | |
| | |
| | | CreditOrderCreateVo data = creditOrderCreateVoR.getData(); |
| | | resultMap.put("status", 1); |
| | | resultMap.put("value", data); |
| | | |
| | | order.setPayType(3); |
| | | order.setAuthOrderId(data.getAuthOrderId()); |
| | | |
| | | return R.ok(resultMap); |
| | | } |
| | | |
| | |
| | | |
| | | // 未签约 |
| | | // 调用预下单接口 |
| | | XpOrder order = this.getById(dto.getOrderId()); |
| | | CreditPrecreateDto creditPrecreateDto = new CreditPrecreateDto(); |
| | | creditPrecreateDto.setUid(uid); |
| | | creditPrecreateDto.setBizId("xp-robotaxi"); |
| | |
| | | return vo; |
| | | } |
| | | |
| | | /** |
| | | * 查询订单状态 |
| | | * @param orderId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public OrderStatusFromOrderIdVo queryOrderStatusFromOrderId(Long orderId) { |
| | | |
| | | XpOrder order = this.getById(orderId); |
| | | if(order==null){ |
| | | return null; |
| | | } |
| | | if(order.getPayType()==3){ |
| | | // 免密查询 如果成功则调用结算 |
| | | CreditOrderQueryDto dto = new CreditOrderQueryDto(); |
| | | dto.setBusinessOrderId(OrderCodeUtil.getOrderCode("MMZF")); |
| | | dto.setAuthOrderId(order.getAuthOrderId()); |
| | | dto.setPayType("13"); |
| | | R<CreditOrderQueryVo> creditOrderQueryVoR = xpPayFrontClient.queryCreditOrder(dto); |
| | | if(creditOrderQueryVoR.getCode()==200){ |
| | | CreditOrderQueryVo creditOrderQueryVo = creditOrderQueryVoR.getData(); |
| | | if(creditOrderQueryVo.getCreditOrderStatus().equals("DONE")){ |
| | | // 订单确认 需要吊起扣款 |
| | | CreditOrderWxPayDto creditOrderWxPayDto = new CreditOrderWxPayDto(); |
| | | creditOrderWxPayDto.setBusinessOrderId(OrderCodeUtil.getOrderCode("MMZF")); |
| | | creditOrderWxPayDto.setAuthOrderId(order.getAuthOrderId()); |
| | | creditOrderWxPayDto.setPayCallbackUrl("13"); |
| | | creditOrderWxPayDto.setTotalAmount( order.getOrderMoney().multiply(BigDecimal.valueOf(100)).longValue()); |
| | | creditOrderWxPayDto.setSubject("小鹏集团|robotaxi"); |
| | | creditOrderWxPayDto.setPayType("13"); |
| | | |
| | | List<CreditOrderCreateDto.PostPayment> postPayments = new ArrayList<>(); |
| | | CreditOrderCreateDto.PostPayment postPayment = new CreditOrderCreateDto.PostPayment(); |
| | | postPayment.setName("收费标准"); |
| | | postPayment.setDescription("行程价格动态浮动,具体详情可在费用详情或计价规则查看"); |
| | | postPayments.add(postPayment); |
| | | creditOrderWxPayDto.setPostPayments(postPayments); |
| | | R<CreditOrderWxPayVo> creditOrderWxPayVoR = xpPayFrontClient.creditOrderWxPay(creditOrderWxPayDto); |
| | | }else if(creditOrderQueryVo.getCreditOrderStatus().equals("CREATED") || creditOrderQueryVo.getCreditOrderStatus().equals("DOING")){ |
| | | |
| | | } |
| | | } |
| | | |
| | | }else { |
| | | // 微信支付也需要查询下 |
| | | |
| | | } |
| | | OrderStatusFromOrderIdVo orderStatusFromOrderIdVo = new OrderStatusFromOrderIdVo(); |
| | | orderStatusFromOrderIdVo.setOrderId(order.getId()); |
| | | orderStatusFromOrderIdVo.setStatus(order.getStatus()); |
| | | return orderStatusFromOrderIdVo; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 发票列表 |
| | |
| | | @Override |
| | | public List<XpInvoiceVo> invoiceList(XpOrderInvoiceQuery query) { |
| | | |
| | | // 格式:yyyyMM 转yyyy-MM |
| | | query.setStartTime(query.getStartTime().substring(0, 4) + "-" + query.getStartTime().substring(4, 6)); |
| | | query.setEndTime(query.getEndTime().substring(0, 4) + "-" + query.getEndTime().substring(4, 6)); |
| | | DateTimeFormatter monthFormatter = DateTimeFormatter.ofPattern("yyyyMM"); |
| | | LocalDateTime startTime = YearMonth.parse(query.getStartTime(), monthFormatter) |
| | | .atDay(1) |
| | | .atStartOfDay(); |
| | | LocalDateTime endTime = YearMonth.parse(query.getEndTime(), monthFormatter) |
| | | .atEndOfMonth() |
| | | .atTime(23, 59, 59); |
| | | |
| | | List<XpOrder> list =null; |
| | | // 通过uid 和时间查出来数据 先判断是否传入了分页 |
| | | if (query.getPageNo()!=null && query.getPageSize()!=null) { |
| | | Page<XpOrder> page = new Page<>(query.getPageNo(), query.getPageSize()); |
| | | Page<XpOrder> orderPage = this.baseMapper.selectPage(page, new LambdaQueryWrapper<XpOrder>().eq(XpOrder::getAppUserId, Long.valueOf(query.getUid())).ge(XpOrder::getStatus, 9).between(BaseModel::getCreateTime, query.getStartTime(), query.getEndTime())); |
| | | Page<XpOrder> orderPage = this.baseMapper.selectPage(page, new LambdaQueryWrapper<XpOrder>().eq(XpOrder::getAppUserId, Long.valueOf(query.getUid())).ge(XpOrder::getStatus, 9).between(BaseModel::getCreateTime, startTime, endTime)); |
| | | list = orderPage.getRecords(); |
| | | }else { |
| | | list = this.baseMapper.selectList(new LambdaQueryWrapper<XpOrder>().eq(XpOrder::getAppUserId, Long.valueOf(query.getUid())).ge(XpOrder::getStatus, 9).between(BaseModel::getCreateTime, query.getStartTime(), query.getEndTime())); |
| | | list = this.baseMapper.selectList(new LambdaQueryWrapper<XpOrder>().eq(XpOrder::getAppUserId, Long.valueOf(query.getUid())).ge(XpOrder::getStatus, 9).between(BaseModel::getCreateTime, startTime, endTime)); |
| | | } |
| | | |
| | | if(list.isEmpty()){ |