From ea86cc455053b205e1b8ca88de4e91e6c64ec298 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 07 五月 2026 18:23:59 +0800
Subject: [PATCH] 免密
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 110 +++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 91 insertions(+), 19 deletions(-)
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
index b694dfd..c708ebd 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -21,6 +21,9 @@
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;
@@ -36,6 +39,7 @@
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;
@@ -55,6 +59,8 @@
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;
@@ -196,6 +202,9 @@
@Resource
private OfficialPartnerUtil officialPartnerUtil;
+
+ @Resource
+ private XpPayFrontClient xpPayFrontClient;
@Value("${robotaxi.appId:xp_robotaxi_api}")
private String appid;
@@ -3218,27 +3227,90 @@
@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();
}
/**
--
Gitblit v1.7.1