From 6da3cde42c90fa5383cf1b48e632cb1107c80d3e Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期六, 25 四月 2026 07:27:16 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0

---
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpActicityController.java |   80 +++++++++++++++++++++++++++++++++-------
 1 files changed, 66 insertions(+), 14 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 da591d2..ea82e80 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
@@ -3,13 +3,23 @@
 
 import com.xiaopeng.api.dto.operation.XpActivityDto;
 import com.xiaopeng.api.model.operation.*;
+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.operation.XpActivityVo;
+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.utils.bean.BeanUtils;
 import com.xiaopeng.common.core.web.page.PageInfo;
 import com.xiaopeng.operation.service.*;
+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;
 import lombok.RequiredArgsConstructor;
@@ -23,7 +33,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>
@@ -49,6 +62,14 @@
     @Resource
     private IXpActicityStrategyService xpActicityStrategyService;
 
+    @Resource
+    private IXpCouponService xpCouponService;
+
+    @Resource
+    private XpAppUserCouponClient appUserCouponClient;
+
+
+
     /**
      * 获取所有白名单手机号
      * @return
@@ -72,26 +93,57 @@
      * @return 活动信息,id 和 img
      */
     @GetMapping("/api/v1/mini-program/acticity/firstEnter")
-    @ApiOperation(value = "获取是否第一次推送活动", tags = {"管理后台-活动首次进入情况"})
-    public R<XpActivityVo> firstEnter(HttpServletRequest request){
-
+    @ApiOperation(value = "获取是否第一次推送活动", tags = {"小程序-首页活动"})
+    @XpClientCheck(checkToken = false, checkOtpToken = true)
+    public R<XpActivity> firstEnter(HttpServletRequest request){
         String uid = request.getHeader("XP-Uid");
         ValueOperations<String, String> ops = redisTemplate.opsForValue();
-        XpActivity activity = service.activiting();
-        List<XpActicityCoupon> cps = couponService.lambdaQuery().eq(XpActicityCoupon::getActivityId, activity.getId()).list();
-        XpActivityVo ret = new XpActivityVo();
+        XpActivity activity = service.activiting(Long.valueOf(uid));
         if (activity !=null) {
-            BeanUtils.copyBeanProp(ret, activity);
+            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);
+            }
             Duration duration = Duration.between(LocalDateTime.now(), activity.getEndTime());
             Boolean isFirst = ops.setIfAbsent(CacheConstants.firstEnterActivity(String.valueOf(activity.getId()), uid),"1", duration);
-            ret.setIsFirst(isFirst);
-            ret.setCoupons(cps);
+            activity.setIsFirst(isFirst);
+            activity.setCoupons(couponVos);
         }
-        return R.ok(ret);
-
+        return R.ok(activity);
     }
 
-    IXpActicityCouponService couponService;
+
+    /**
+     * 是否第一次进入某活动
+     * @return 活动信息,id 和 img
+     */
+    @GetMapping("/api/v1/mini-program/acticity/getFloatActicity")
+    @ApiOperation(value = "获取首页活动悬浮图标数据", tags = {"小程序-首页活动"})
+    @XpClientCheck(checkToken = false, checkOtpToken = true)
+    public R<XpActivity> getFloatActicity(HttpServletRequest request){
+        String uid = request.getHeader("XP-Uid");
+        XpActivity activity = service.getFloatActicity(Long.valueOf(uid));
+        return R.ok(activity);
+    }
+
+
 
     @Resource
     IXpActicityStrategyService strategyService;

--
Gitblit v1.7.1