From 4a9ca8e24317da12e3dd07d93128a5d74c8103b8 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 30 四月 2026 21:20:12 +0800
Subject: [PATCH] 修改bug

---
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpActicityController.java |   56 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 30 insertions(+), 26 deletions(-)

diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpActicityController.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpActicityController.java
index 170d103..6b32447 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpActicityController.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpActicityController.java
@@ -99,35 +99,39 @@
     public R<XpActivity> firstEnter(HttpServletRequest request) {
         String uid = request.getHeader("XP-Uid");
         ValueOperations<String, String> ops = redisTemplate.opsForValue();
-        XpActivity activity = service.activiting(Long.valueOf(uid));
-        if (activity != null) {
-            List<XpAppUserCoupon> couponList = appUserCouponClient.getXpAppUserCoupon(activity.getId()).getData();
-            Set<Long> longSet = couponList.stream().map(XpAppUserCoupon::getCouponId).collect(Collectors.toSet());
-            if (longSet.isEmpty()) {
-                return R.ok();
-            }
-            List<XpCoupon> xpCoupons1 = xpCouponService.listByIds(longSet);
-            List<CouponVo> couponVos = new ArrayList<>();
-            for (XpCoupon xpCoupon : xpCoupons1) {
-                XpAppUserCoupon xpAppUserCoupon = couponList.stream().filter(s -> s.getCouponId().equals(xpCoupon.getId())).findFirst().get();
-                CouponVo vo = new CouponVo();
-                vo.setId(xpCoupon.getId());
-                vo.setConditionalAmount(xpCoupon.getConditionalAmount());
-                vo.setAmount(xpCoupon.getAmount());
-                vo.setCouponType(xpCoupon.getCouponType());
-                vo.setCouponName(xpCoupon.getCouponName());
-                vo.setCouponDesc(xpCoupon.getCouponDescription());
-                vo.setEndTime(xpAppUserCoupon.getExpirationTime().toString());
-                long count = couponList.stream().filter(s -> s.getCouponId().equals(xpCoupon.getId())).count();
-                vo.setQuantity(count);
-                couponVos.add(vo);
-            }
+        List<XpActivity> activityList = service.activiting(Long.valueOf(uid));
+        for (XpActivity activity : activityList) {
             Duration duration = Duration.between(LocalDateTime.now(), activity.getEndTime());
             Boolean isFirst = ops.setIfAbsent(CacheConstants.firstEnterActivity(String.valueOf(activity.getId()), uid), "1", duration);
-            activity.setIsFirst(isFirst);
-            activity.setCoupons(couponVos);
+            if(isFirst){
+                List<XpAppUserCoupon> couponList = appUserCouponClient.getXpAppUserCoupon(activity.getId()).getData();
+                Set<Long> longSet = couponList.stream().map(XpAppUserCoupon::getCouponId).collect(Collectors.toSet());
+                if (longSet.isEmpty()) {
+                    return R.ok();
+                }
+                List<XpCoupon> xpCoupons1 = xpCouponService.listByIds(longSet);
+                List<CouponVo> couponVos = new ArrayList<>();
+                for (XpCoupon xpCoupon : xpCoupons1) {
+                    XpAppUserCoupon xpAppUserCoupon = couponList.stream().filter(s -> s.getCouponId().equals(xpCoupon.getId())).findFirst().get();
+                    CouponVo vo = new CouponVo();
+                    vo.setId(xpCoupon.getId());
+                    vo.setConditionalAmount(xpCoupon.getConditionalAmount());
+                    vo.setAmount(xpCoupon.getAmount());
+                    vo.setCouponType(xpCoupon.getCouponType());
+                    vo.setCouponName(xpCoupon.getCouponName());
+                    vo.setCouponDesc(xpCoupon.getCouponDescription());
+                    vo.setEndTime(xpAppUserCoupon.getExpirationTime().toString());
+                    long count = couponList.stream().filter(s -> s.getCouponId().equals(xpCoupon.getId())).count();
+                    vo.setQuantity(count);
+                    couponVos.add(vo);
+                }
+
+                activity.setIsFirst(isFirst);
+                activity.setCoupons(couponVos);
+                return R.ok(activity);
+            }
         }
-        return R.ok(activity);
+        return R.ok();
     }
 
 

--
Gitblit v1.7.1