From aba9fb0a15bf2484f531fd149f3a3562c47ddc1e Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 26 Sep 2025 12:39:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(printer):=20=E6=B7=BB=E5=8A=A0=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E8=B4=AD=E4=B9=B0=E9=A1=B9=E8=AE=BE=E7=BD=AE=E7=9A=84?= =?UTF-8?q?Redis=E7=BC=93=E5=AD=98=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 引入RedisTemplate依赖用于缓存控制 - 新增60秒的缓存键避免重复处理用户购买项 - 在setUserIsBuyItem方法中实现缓存检查逻辑- 添加TimeUnit依赖支持缓存过期时间设置 - 定义USER_PHOTO_LIST_TO_PRINTER缓存键前缀 --- .../basic/service/printer/impl/PrinterServiceImpl.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java b/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java index 2e05f8d1..7a9ca2fa 100644 --- a/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java @@ -39,6 +39,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Strings; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import java.math.BigDecimal; @@ -49,6 +50,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @Slf4j @@ -377,8 +379,16 @@ public class PrinterServiceImpl implements PrinterService { printerMapper.updateUserPhotoListToPrinter(memberId, scenicId, printerId); } + @Autowired + private RedisTemplate redisTemplate; + private static final String USER_PHOTO_LIST_TO_PRINTER = "USER_PHOTO_LIST_TO_PRINTER:"; + @Override public void setUserIsBuyItem(Long memberId, Long id, Long orderId) { + if (redisTemplate.opsForValue().get(USER_PHOTO_LIST_TO_PRINTER + memberId + ":" + orderId) != null) { + return; + } + redisTemplate.opsForValue().set(USER_PHOTO_LIST_TO_PRINTER + memberId + ":" + orderId, "1", 60, TimeUnit.SECONDS); printerMapper.setUserIsBuyItem(memberId, id, orderId); // 创建打印任务 List userPhotoListByOrderId = getUserPhotoListByOrderId(orderId);