puzhibing
2026-04-25 d684c14222c6f158bdf29e722e4e9a35b4754193
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);
    }