peng
昨天 44aacaabb89a128d1a47593cf8db5f908fa03fab
framework/src/main/java/cn/lili/modules/lmk/service/impl/CouponVirtualServiceImpl.java
@@ -133,6 +133,12 @@
    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());
    }
@@ -176,8 +182,12 @@
        RLock lock = null;
        try {
            lock = redissonClient.getLock(LOCK_COUPON_VIRTUAL_CARD_ID + cardId);
            lock.lock();
            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("当前购物卡已经被领取");
            }
@@ -210,6 +220,7 @@
            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);
            //去领取优惠卷
@@ -218,8 +229,7 @@
            }
            return Result.ok().data(cardInfo.getCouponId());
        } finally {
            assert lock != null;
            if (lock.isHeldByCurrentThread()) {
            if ( lock != null && lock.isHeldByCurrentThread()) {
                lock.unlock();
            }
        }