| | |
| | | import cn.lili.common.exception.ServiceException; |
| | | import cn.lili.common.security.AuthUser; |
| | | import cn.lili.common.security.context.UserContext; |
| | | import cn.lili.modules.goods.service.GoodsService; |
| | | import cn.lili.modules.lmk.domain.entity.CouponVirtual; |
| | | import cn.lili.modules.lmk.domain.form.CouponVirtualForm; |
| | | import cn.lili.modules.lmk.domain.query.CouponVirtualQuery; |
| | | import cn.lili.modules.lmk.domain.vo.CouponVirtualVO; |
| | | import cn.lili.modules.lmk.domain.vo.CouponVirtualVOInfo; |
| | | import cn.lili.modules.lmk.mapper.CouponVirtualMapper; |
| | | import cn.lili.modules.lmk.service.CouponVirtualService; |
| | | import cn.lili.modules.order.order.entity.dos.Order; |
| | |
| | | import cn.lili.modules.order.order.service.OrderItemService; |
| | | import cn.lili.modules.order.order.service.OrderService; |
| | | import cn.lili.modules.promotion.service.MemberCouponService; |
| | | import cn.lili.utils.COSUtil; |
| | | import cn.lili.utils.PageUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | private final OrderService orderService; |
| | | |
| | | private final MemberCouponService memberCouponService; |
| | | |
| | | private final GoodsService goodsService; |
| | | |
| | | private final COSUtil cosUtil; |
| | | /** |
| | | * 添加 |
| | | * |
| | |
| | | public Result page(CouponVirtualQuery query) { |
| | | IPage<CouponVirtualVO> page = PageUtil.getPage(query, CouponVirtualVO.class); |
| | | baseMapper.getPage(page, query); |
| | | for (CouponVirtualVO record : page.getRecords()) { |
| | | String original = record.getOriginal(); |
| | | if (StringUtils.isNotBlank(original) && !original.contains("http")) { |
| | | record.setOriginal(cosUtil.getPreviewUrl(original)); |
| | | } |
| | | } |
| | | return Result.ok().data(page.getRecords()).total(page.getTotal()); |
| | | } |
| | | |
| | |
| | | lock = redissonClient.getLock(LOCK_COUPON_VIRTUAL_CARD_ID + cardId); |
| | | LambdaQueryWrapper<CouponVirtual> forUpdate = Wrappers.<CouponVirtual>lambdaQuery().eq(CouponVirtual::getId, cardId).last("FOR UPDATE"); |
| | | CouponVirtual cardInfo = this.getOne(forUpdate); |
| | | if (cardInfo == null) { |
| | | throw new ServiceException("当前优惠卷不存在"); |
| | | } |
| | | if (ClaimStatusEnum.CLAIM.name().equals(cardInfo.getClaimStatus())) { |
| | | throw new ServiceException("当前购物卡已经被领取"); |
| | | } |
| | |
| | | cardInfo.setUserNickname(nickName); |
| | | cardInfo.setUserId(userId); |
| | | cardInfo.setClaimStatus(ClaimStatusEnum.CLAIM.name()); |
| | | cardInfo.setShareStatus(ShareStatusEnum.SHARE.name()); |
| | | cardInfo.setClaimTime(new Date()); |
| | | boolean b = this.updateById(cardInfo); |
| | | //去领取优惠卷 |
| | |
| | | if (couponVirtual == null) { |
| | | throw new ServiceException("当前购物卡不存在"); |
| | | } |
| | | return Result.ok().data(couponVirtual); |
| | | CouponVirtualVOInfo virtualVOInfo = new CouponVirtualVOInfo(); |
| | | BeanUtils.copyProperties(couponVirtual, virtualVOInfo); |
| | | |
| | | String goodsId = virtualVOInfo.getGoodsId(); |
| | | String url = goodsService.getById(goodsId).getOriginal(); |
| | | if (StringUtils.isNotBlank(url) && !url.contains("http")) { |
| | | virtualVOInfo.setGoodsUrl(cosUtil.getPreviewUrl(url)); |
| | | } |
| | | return Result.ok().data(virtualVOInfo); |
| | | } |
| | | } |