From e08f56b973eb0c81e0bad1d00c8ac95ba6206cd4 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期日, 15 三月 2026 23:28:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCouponController.java |   32 ++++++++++++++++++++------------
 1 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCouponController.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCouponController.java
index 28c2e7e..f2b695d 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCouponController.java
+++ b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCouponController.java
@@ -99,20 +99,28 @@
             }
         }
 
-        // 优先用满足条件且抵扣金额最大的
-        List<XpAppUserCoupon> discountUserCoupons = couponList.stream().filter(e -> e.getCouponType() == 1).sorted(Comparator.comparing(XpAppUserCoupon::getMoney).reversed()).collect(Collectors.toList());
-        if(!discountUserCoupons.isEmpty()){
-            userCouponVo.setId(discountUserCoupons.get(0).getId());
-            userCouponVo.setMoney(discountUserCoupons.get(0).getMoney().doubleValue());
+        if(dto.getUserCouponId()!=null){
+            XpAppUserCoupon coupon = couponList.get(0);
+            userCouponVo.setId(coupon.getId());
+            userCouponVo.setMoney(coupon.getMoney().doubleValue());
+            return R.ok(userCouponVo);
+        }else {
+            // 优先用满足条件且抵扣金额最大的
+            List<XpAppUserCoupon> discountUserCoupons = couponList.stream().filter(e -> e.getCouponType() == 1).sorted(Comparator.comparing(XpAppUserCoupon::getMoney).reversed()).collect(Collectors.toList());
+            if(!discountUserCoupons.isEmpty()){
+                userCouponVo.setId(discountUserCoupons.get(0).getId());
+                userCouponVo.setMoney(discountUserCoupons.get(0).getMoney().doubleValue());
+                return R.ok(userCouponVo);
+            }
+            List<XpAppUserCoupon> fullUserCoupons = couponList.stream().filter(e -> e.getCouponType() == 2 && e.getFullMoney().doubleValue()>dto.getTotalAmount()).sorted(Comparator.comparing(XpAppUserCoupon::getMoney).reversed()).collect(Collectors.toList());
+            if(!fullUserCoupons.isEmpty()){
+                userCouponVo.setId(fullUserCoupons.get(0).getId());
+                userCouponVo.setMoney(fullUserCoupons.get(0).getMoney().doubleValue());
+                return R.ok(userCouponVo);
+            }
             return R.ok(userCouponVo);
         }
-        List<XpAppUserCoupon> fullUserCoupons = couponList.stream().filter(e -> e.getCouponType() == 2 && e.getFullMoney().doubleValue()>dto.getTotalAmount()).sorted(Comparator.comparing(XpAppUserCoupon::getMoney).reversed()).collect(Collectors.toList());
-        if(!fullUserCoupons.isEmpty()){
-            userCouponVo.setId(fullUserCoupons.get(0).getId());
-            userCouponVo.setMoney(fullUserCoupons.get(0).getMoney().doubleValue());
-            return R.ok(userCouponVo);
-        }
-        return R.ok(userCouponVo);
+
     }
     @PostMapping("/inner/appUserCoupon/useUserCoupon")
     public R<BigDecimal> useUserCoupon(@RequestBody UseUserCouponDto dto) {

--
Gitblit v1.7.1