From 44aacaabb89a128d1a47593cf8db5f908fa03fab Mon Sep 17 00:00:00 2001 From: peng <peng.com> Date: 星期五, 19 九月 2025 14:17:59 +0800 Subject: [PATCH] 会员列表导出 --- framework/src/main/java/cn/lili/modules/lmk/service/impl/CouponVirtualServiceImpl.java | 40 +++++++++++++++++++++++++++++++++++++--- 1 files changed, 37 insertions(+), 3 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/CouponVirtualServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/CouponVirtualServiceImpl.java index dc1a5f2..72fb330 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/CouponVirtualServiceImpl.java +++ b/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()); } @@ -169,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("褰撳墠璐墿鍗″凡缁忚棰嗗彇"); } @@ -203,16 +220,16 @@ 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 (!b) { throw new RuntimeException("棰嗗彇澶辫触"); } - return Result.ok("棰嗗彇鎴愬姛"); + return Result.ok().data(cardInfo.getCouponId()); } finally { - assert lock != null; - if (lock.isHeldByCurrentThread()) { + if ( lock != null && lock.isHeldByCurrentThread()) { lock.unlock(); } } @@ -225,4 +242,21 @@ this.updateById(couponVirtual); return Result.ok(); } + + @Override + public Result couponCardInfo(String cardId) { + CouponVirtual couponVirtual = this.getById(cardId); + if (couponVirtual == null) { + throw new ServiceException("褰撳墠璐墿鍗′笉瀛樺湪"); + } + 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); + } } -- Gitblit v1.8.0