| | |
| | | import cn.lili.common.event.TransactionCommitSendMQEvent; |
| | | import cn.lili.common.exception.ServiceException; |
| | | import cn.lili.common.properties.RocketmqCustomProperties; |
| | | import cn.lili.common.security.AuthUser; |
| | | import cn.lili.common.security.context.UserContext; |
| | | import cn.lili.common.utils.DateUtil; |
| | | import cn.lili.common.utils.StringUtils; |
| | | import cn.lili.common.vo.PageVO; |
| | | import cn.lili.modules.goods.entity.dos.GoodsSku; |
| | | import cn.lili.modules.goods.service.GoodsSkuService; |
| | | import cn.lili.modules.promotion.entity.dos.Coupon; |
| | | import cn.lili.modules.promotion.entity.dos.FullDiscount; |
| | | import cn.lili.modules.promotion.entity.dos.MemberCoupon; |
| | | import cn.lili.modules.promotion.entity.dos.PromotionGoods; |
| | | import cn.lili.modules.promotion.entity.dto.search.CouponSearchParams; |
| | | import cn.lili.modules.promotion.entity.dto.search.FullDiscountSearchParams; |
| | |
| | | import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum; |
| | | import cn.lili.modules.promotion.entity.vos.CouponVO; |
| | | import cn.lili.modules.promotion.mapper.CouponMapper; |
| | | import cn.lili.modules.promotion.mapper.MemberCouponMapper; |
| | | import cn.lili.modules.promotion.service.*; |
| | | import cn.lili.modules.promotion.tools.PromotionTools; |
| | | import cn.lili.mybatis.util.PageUtil; |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.ApplicationEventPublisher; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | @Autowired |
| | | private ApplicationEventPublisher applicationEventPublisher; |
| | | |
| | | @Autowired |
| | | private MemberCouponMapper memberCouponMapper; |
| | | @Override |
| | | public void getUserCouponsStatus(List<CouponVO> list) { |
| | | AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser()); |
| | | if (StringUtils.isNotBlank(currentUser.getId())){ |
| | | List<String> ids = list.stream().map(CouponVO::getId).collect(Collectors.toList()); |
| | | |
| | | //获得分页优惠劵后的结果后,判断对象是否被用户获得过。 |
| | | List<MemberCoupon> userCouponVOS = new LambdaQueryChainWrapper<>(memberCouponMapper) |
| | | .in(MemberCoupon::getCouponId,ids) |
| | | .eq(MemberCoupon::getMemberId,currentUser.getId()) |
| | | .list(); |
| | | //用户获得过的优惠卷id集合 |
| | | List<String> userHaveCouponIds = userCouponVOS.stream().map(MemberCoupon::getCouponId).collect(Collectors.toList()); |
| | | //修改状态 |
| | | for(CouponVO couponVO : list){ |
| | | boolean owned = false; |
| | | for (String id : userHaveCouponIds){ |
| | | if(id.equals(couponVO.getId())){ |
| | | owned = true; |
| | | break; |
| | | } |
| | | } |
| | | couponVO.setOwned(owned); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 领取优惠券 |
| | | * |