| | |
| | | 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.pushMessage.SendMessageDTO; |
| | | import com.xiaopeng.api.dto.statistics.DailyCountDTO; |
| | | import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO; |
| | |
| | | import com.xiaopeng.api.feignClient.map.XpMapClient; |
| | | import com.xiaopeng.api.feignClient.operation.*; |
| | | import com.xiaopeng.api.feignClient.order.XpCruiseOrderClient; |
| | | import com.xiaopeng.api.feignClient.payFront.XpPayFrontClient; |
| | | import com.xiaopeng.api.feignClient.pushMessage.XpPushMessageClient; |
| | | import com.xiaopeng.api.feignClient.vehicleConvoy.*; |
| | | import com.xiaopeng.api.model.maintenance.XpTaskRule; |
| | |
| | | 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.vehicleConvoy.AddTaxiPassengerVo; |
| | | import com.xiaopeng.api.vo.vehicleConvoy.BluetoothDeliverVo; |
| | | import com.xiaopeng.api.vo.vehicleConvoy.CancelTaxiPassengerVo; |
| | |
| | | |
| | | @Resource |
| | | private OfficialPartnerUtil officialPartnerUtil; |
| | | |
| | | @Resource |
| | | private XpPayFrontClient xpPayFrontClient; |
| | | |
| | | @Value("${robotaxi.appId:xp_robotaxi_api}") |
| | | private String appid; |
| | |
| | | |
| | | @Override |
| | | public R payment(XpOrderPayDto dto, String uid) { |
| | | // mvp版本不做支付 使用优惠券抵扣为0元订单处理 处理订单状态即可 |
| | | XpOrder order = this.getById(dto.getOrderId()); |
| | | order.setStatus(9); |
| | | order.setAppUserId(null); |
| | | 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())); |
| | | } |
| | | |
| | | // 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.setBusinessOrderId(""); |
| | | R<CreditPaySignQueryVo> creditPaySignQueryVoR = xpPayFrontClient.queryCreditPaySign(creditPaySignQueryDto); |
| | | if (creditPaySignQueryVoR.getCode()==200) { |
| | | CreditPaySignQueryVo data = creditPaySignQueryVoR.getData(); |
| | | // 查看是否有签约的 |
| | | long count = data.getSignList().stream().filter(e -> e.getStatus().equals("VALID")).count(); |
| | | if (count > 0){ |
| | | signed = true; |
| | | } |
| | | } |
| | | baseMapper.updateById(order); |
| | | bootCommonService.setCache_orderStatus(order.getId(), order, null); |
| | | return R.ok(); |
| | | |
| | | |
| | | if(signed){ |
| | | // y已签约 1.信用下单 |
| | | CreditOrderCreateDto creditOrderCreateDto = new CreditOrderCreateDto(); |
| | | creditOrderCreateDto.setUid(Long.valueOf(uid)); |
| | | creditOrderCreateDto.setBusinessId(appid); |
| | | creditOrderCreateDto.setCategory("xp_robotaxi_api"); |
| | | creditOrderCreateDto.setBusinessOrderId(""); |
| | | creditOrderCreateDto.setSubject("信用下单"); |
| | | creditOrderCreateDto.setPayType("13"); |
| | | |
| | | |
| | | // 信用下单 |
| | | ArrayList<CreditOrderCreateDto.PostPayment> postPayments = new ArrayList<>(1); |
| | | CreditOrderCreateDto.PostPayment postPayment = new CreditOrderCreateDto.PostPayment(); |
| | | postPayment.setName("收费标准"); |
| | | postPayment.setDescription("行程价格动态浮动,具体详情可在费用详情或计价规则查看"); |
| | | postPayments.add(postPayment); |
| | | creditOrderCreateDto.setPostPayments(postPayments); |
| | | R<CreditOrderCreateVo> creditOrderCreateVoR = xpPayFrontClient.createCreditOrder(creditOrderCreateDto); |
| | | if(creditOrderCreateVoR.getCode()==200){ |
| | | CreditOrderCreateVo data = creditOrderCreateVoR.getData(); |
| | | return R.ok(data.getPackageValue()); |
| | | } |
| | | |
| | | }else { |
| | | |
| | | // 未签约 |
| | | // 调用预下单接口 |
| | | XpOrder order = this.getById(dto.getOrderId()); |
| | | CreditPrecreateDto creditPrecreateDto = new CreditPrecreateDto(); |
| | | creditPrecreateDto.setUid(uid); |
| | | creditPrecreateDto.setBizId(appid); |
| | | creditPrecreateDto.setBizOrderId(""); |
| | | creditPrecreateDto.setPayScene(99); |
| | | creditPrecreateDto.setAmount(order.getOrderMoney().multiply(new BigDecimal(100)).intValue()); |
| | | creditPrecreateDto.setCategory("信用下单"); |
| | | creditPrecreateDto.setTitle("信用下单"); |
| | | creditPrecreateDto.setDetail("信用下单"); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | // mvp版本不做支付 使用优惠券抵扣为0元订单处理 处理订单状态即可 |
| | | // XpOrder order = this.getById(dto.getOrderId()); |
| | | // order.setStatus(9); |
| | | // order.setAppUserId(null); |
| | | // 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); |
| | | // bootCommonService.setCache_orderStatus(order.getId(), order, null); |
| | | return R.fail(); |
| | | } |
| | | |
| | | /** |