| | |
| | | |
| | | |
| | | 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; |
| | |
| | | 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> |
| | |
| | | private IXpActicityStrategyService xpActicityStrategyService; |
| | | |
| | | @Resource |
| | | private IXpActicityCouponService couponService; |
| | | private IXpCouponService xpCouponService; |
| | | |
| | | @Resource |
| | | private XpAppUserCouponClient appUserCouponClient; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取所有白名单手机号 |
| | |
| | | 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); |
| | | } |