diff --git a/my-project-backend/src/main/java/com/example/entity/dto/VerifyMailError.java b/my-project-backend/src/main/java/com/example/entity/dto/VerifyEmail.java similarity index 60% rename from my-project-backend/src/main/java/com/example/entity/dto/VerifyMailError.java rename to my-project-backend/src/main/java/com/example/entity/dto/VerifyEmail.java index 5c4db28..98441e1 100644 --- a/my-project-backend/src/main/java/com/example/entity/dto/VerifyMailError.java +++ b/my-project-backend/src/main/java/com/example/entity/dto/VerifyEmail.java @@ -10,12 +10,21 @@ import java.util.Date; @Data @Accessors(chain = true) -@TableName("db_error_verify_mail") -public class VerifyMailError { +@TableName("db_verify_email") +public class VerifyEmail { @TableId(type = IdType.AUTO) Integer id; String email; String type; String code; Date time; + boolean success; + + public static VerifyEmail success() { + return new VerifyEmail().setSuccess(true); + } + + public static VerifyEmail failure() { + return new VerifyEmail().setSuccess(false); + } } diff --git a/my-project-backend/src/main/java/com/example/listener/ErrorQueueListener.java b/my-project-backend/src/main/java/com/example/listener/ErrorQueueListener.java index 5216854..c16c494 100644 --- a/my-project-backend/src/main/java/com/example/listener/ErrorQueueListener.java +++ b/my-project-backend/src/main/java/com/example/listener/ErrorQueueListener.java @@ -1,8 +1,8 @@ package com.example.listener; import com.example.entity.QueueMessage; -import com.example.entity.dto.VerifyMailError; -import com.example.mapper.VerifyMailErrorMapper; +import com.example.entity.dto.VerifyEmail; +import com.example.mapper.VerifyEmailMapper; import com.example.utils.Const; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; @@ -18,14 +18,14 @@ import java.util.Date; public class ErrorQueueListener { @Resource - VerifyMailErrorMapper mapper; + VerifyEmailMapper mapper; @RabbitHandler public void saveErrorToDatabase(QueueMessage message) { log.error("出现一条错误的队列消息: {}", message); switch (message.getMessageType()) { case "email" -> { - VerifyMailError error = new VerifyMailError() + VerifyEmail error = VerifyEmail.failure() .setCode(message.get("code").toString()) .setType(message.get("type")) .setEmail(message.get("email")) diff --git a/my-project-backend/src/main/java/com/example/listener/MailQueueListener.java b/my-project-backend/src/main/java/com/example/listener/MailQueueListener.java index 0cf90e1..fe75d58 100644 --- a/my-project-backend/src/main/java/com/example/listener/MailQueueListener.java +++ b/my-project-backend/src/main/java/com/example/listener/MailQueueListener.java @@ -1,6 +1,8 @@ package com.example.listener; import com.example.entity.QueueMessage; +import com.example.entity.dto.VerifyEmail; +import com.example.mapper.VerifyEmailMapper; import com.example.utils.Const; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; @@ -11,6 +13,8 @@ import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Component; +import java.util.Date; + /** * 用于处理邮件发送的消息队列监听器 */ @@ -22,6 +26,9 @@ public class MailQueueListener { @Resource JavaMailSender sender; + @Resource + VerifyEmailMapper emailMapper; + @Value("${spring.mail.username}") String username; @@ -51,6 +58,12 @@ public class MailQueueListener { if(mailMessage == null) return; log.info("正在向 {} 发送 {} 类型的电子邮件...", email, type); sender.send(mailMessage); + VerifyEmail record = VerifyEmail.success() + .setCode(message.get("code").toString()) + .setType(message.get("type")) + .setEmail(message.get("email")) + .setTime(new Date()); + emailMapper.insert(record); } /** diff --git a/my-project-backend/src/main/java/com/example/mapper/VerifyMailErrorMapper.java b/my-project-backend/src/main/java/com/example/mapper/VerifyEmailMapper.java similarity index 53% rename from my-project-backend/src/main/java/com/example/mapper/VerifyMailErrorMapper.java rename to my-project-backend/src/main/java/com/example/mapper/VerifyEmailMapper.java index ea57bed..7f9cb7b 100644 --- a/my-project-backend/src/main/java/com/example/mapper/VerifyMailErrorMapper.java +++ b/my-project-backend/src/main/java/com/example/mapper/VerifyEmailMapper.java @@ -1,9 +1,9 @@ package com.example.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.example.entity.dto.VerifyMailError; +import com.example.entity.dto.VerifyEmail; import org.apache.ibatis.annotations.Mapper; @Mapper -public interface VerifyMailErrorMapper extends BaseMapper { +public interface VerifyEmailMapper extends BaseMapper { } diff --git a/my-project-frontend/src/router/index.js b/my-project-frontend/src/router/index.js index c48227c..c915703 100644 --- a/my-project-frontend/src/router/index.js +++ b/my-project-frontend/src/router/index.js @@ -69,8 +69,12 @@ const router = createRouter({ component: () => import('@/views/admin/UserAdmin.vue') }, { path: 'forum', - name: 'forum-setting', + name: 'admin-forum', component: () => import('@/views/admin/ForumAdmin.vue') + }, { + path: 'email', + name: 'admin-email', + component: () => import('@/views/admin/EmailAdmin.vue') } ] } diff --git a/my-project-frontend/src/views/AdminView.vue b/my-project-frontend/src/views/AdminView.vue index e3a0bcd..95c79ae 100644 --- a/my-project-frontend/src/views/AdminView.vue +++ b/my-project-frontend/src/views/AdminView.vue @@ -5,7 +5,7 @@ import { DataLine, Document, Files, - Location, + Location, Message, Monitor, Notification, Position, School, Umbrella, User @@ -19,6 +19,7 @@ const adminMenu = [ { title: '校园论坛管理', icon: Location, sub: [ {title: '用户管理', icon: User, index: '/admin/user' }, + {title: '邮件发信管理', icon: Message, index: '/admin/email' }, {title: '帖子广场管理', icon: ChatDotSquare, index: '/admin/forum' }, {title: '失物招领管理', icon: Bell}, {title: '校园活动管理', icon: Notification}, diff --git a/my-project-frontend/src/views/admin/EmailAdmin.vue b/my-project-frontend/src/views/admin/EmailAdmin.vue new file mode 100644 index 0000000..0ba4c97 --- /dev/null +++ b/my-project-frontend/src/views/admin/EmailAdmin.vue @@ -0,0 +1,32 @@ + + + + + diff --git a/my-project-frontend/src/views/admin/UserAdmin.vue b/my-project-frontend/src/views/admin/UserAdmin.vue index 5fb459c..ae1c918 100644 --- a/my-project-frontend/src/views/admin/UserAdmin.vue +++ b/my-project-frontend/src/views/admin/UserAdmin.vue @@ -40,7 +40,7 @@ watchEffect(() => apiUserList(userTable.page, userTable.size, data => { 论坛用户列表
在这里管理论坛的所有用户,包括账号信息、封禁和禁言
- +