From d684c14222c6f158bdf29e722e4e9a35b4754193 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 25 四月 2026 06:58:17 +0800
Subject: [PATCH] 修改bug

---
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpActicityController.java |   35 ++++++++++++++++++++++++++++++++---
 1 files changed, 32 insertions(+), 3 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 86c0be5..22c65f3 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
@@ -2,17 +2,21 @@
 
 
 import com.xiaopeng.api.dto.operation.XpActivityDto;
+import com.xiaopeng.api.feignClient.account.XpAppUserCouponClient;
+import com.xiaopeng.api.model.account.XpAppUserCoupon;
 import com.xiaopeng.api.model.operation.XpActicityCoupon;
 import com.xiaopeng.api.model.operation.XpActicityStrategy;
 import com.xiaopeng.api.model.operation.XpActivity;
 import com.xiaopeng.api.model.operation.XpCoupon;
 import com.xiaopeng.api.query.operation.XpActivityPageListQuery;
+import com.xiaopeng.api.vo.account.CouponVo;
 import com.xiaopeng.common.core.constant.CacheConstants;
 import com.xiaopeng.common.core.domain.R;
 import com.xiaopeng.common.core.web.page.PageInfo;
 import com.xiaopeng.operation.service.IXpActicityCouponService;
 import com.xiaopeng.operation.service.IXpActicityService;
 import com.xiaopeng.operation.service.IXpActicityStrategyService;
+import com.xiaopeng.operation.service.IXpCouponService;
 import com.xiaopeng.unifiedverification.interceptor.XpClientCheck;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -27,7 +31,10 @@
 import javax.servlet.http.HttpServletRequest;
 import java.time.Duration;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -54,7 +61,12 @@
     private IXpActicityStrategyService xpActicityStrategyService;
 
     @Resource
-    private IXpActicityCouponService couponService;
+    private IXpCouponService xpCouponService;
+
+    @Resource
+    private XpAppUserCouponClient appUserCouponClient;
+
+
 
     /**
      * 获取所有白名单手机号
@@ -86,11 +98,28 @@
         ValueOperations<String, String> ops = redisTemplate.opsForValue();
         XpActivity activity = service.activiting(Long.valueOf(uid));
         if (activity !=null) {
-            List<XpActicityCoupon> cps = couponService.lambdaQuery().eq(XpActicityCoupon::getActivityId, activity.getId()).list();
+            List<XpAppUserCoupon> couponList = appUserCouponClient.getXpAppUserCoupon(activity.getId()).getData();
+            Set<Long> longSet = couponList.stream().map(XpAppUserCoupon::getCouponId).collect(Collectors.toSet());
+            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);
+            }
             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(cps);
+            activity.setCoupons(couponVos);
         }
         return R.ok(activity);
     }

--
Gitblit v1.7.1