peng
6 天以前 a576bf75eec664e7b167a7a5eb6fabe2552ccbcc
framework/src/main/java/cn/lili/modules/lmk/service/impl/CouponVirtualServiceImpl.java
@@ -4,10 +4,12 @@
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;
@@ -19,6 +21,7 @@
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;
@@ -62,6 +65,10 @@
    private final OrderService orderService;
    private final MemberCouponService memberCouponService;
    private final GoodsService goodsService;
    private final COSUtil cosUtil;
    /**
     * 添加
     *
@@ -126,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());
    }
@@ -171,6 +184,9 @@
            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("当前购物卡已经被领取");
            }
@@ -203,6 +219,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);
            //去领取优惠卷
@@ -232,6 +249,14 @@
        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);
    }
}