From e099d0cd93c26b44bc1c10e51944edfad0465b0c Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期四, 05 三月 2026 17:44:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New
---
src/main/java/com/ruoyi/basic/service/impl/ReturnVisitReminderService.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 53 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/service/impl/ReturnVisitReminderService.java b/src/main/java/com/ruoyi/basic/service/impl/ReturnVisitReminderService.java
new file mode 100644
index 0000000..819a47d
--- /dev/null
+++ b/src/main/java/com/ruoyi/basic/service/impl/ReturnVisitReminderService.java
@@ -0,0 +1,53 @@
+package com.ruoyi.basic.service.impl;
+
+import com.ruoyi.basic.pojo.CustomerReturnVisit;
+import com.ruoyi.basic.service.CustomerReturnVisitService;
+import com.ruoyi.framework.redis.RedisCache;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.ZoneId;
+
+/**
+ * <br>
+ * 瀹㈡埛鍥炶鎻愰啋鏈嶅姟
+ * </br>
+ *
+ * @author deslrey
+ * @version 1.0
+ * @since 2026/03/05 10:45
+ */
+@Slf4j
+@Service
+public class ReturnVisitReminderService {
+
+ private static final String REMINDER_QUEUE_KEY = "return_visit:reminder:queue";
+
+ @Autowired
+ private RedisCache redisCache;
+
+ @Autowired
+ private CustomerReturnVisitService customerReturnVisitService;
+
+ @SuppressWarnings("unchecked")
+ public void scheduleReminder(Long returnVisitId) {
+ CustomerReturnVisit returnVisit = customerReturnVisitService.getById(returnVisitId);
+ if (returnVisit == null || returnVisit.getIsEnabled() == 0) {
+ return;
+ }
+ long timestamp = returnVisit.getReminderTime()
+ .atZone(ZoneId.systemDefault())
+ .toInstant()
+ .toEpochMilli();
+
+ redisCache.redisTemplate.opsForZSet().add(REMINDER_QUEUE_KEY, returnVisitId, timestamp);
+ log.info("宸叉坊鍔犲洖璁挎彁閱掑埌闃熷垪: ID={}, 鎻愰啋鏃堕棿={}", returnVisitId, returnVisit.getReminderTime());
+ }
+
+ @SuppressWarnings("unchecked")
+ public void cancelReminder(Long returnVisitId) {
+ redisCache.redisTemplate.opsForZSet().remove(REMINDER_QUEUE_KEY, returnVisitId);
+ log.info("宸插彇娑堝洖璁挎彁閱�: ID={}", returnVisitId);
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3