From 3565ef641c4204aaf7d9a2eaf770ca034110f67a Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 20 十一月 2025 09:16:04 +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