refactor(消息模块): 重构消息服务及控制器功能
重构消息模块,包括以下主要变更: 1. 将MessageRepository从CrudRepository扩展改为JpaRepository 2. 新增消息查询方法,支持按文章ID、父消息ID和昵称查询 3. 完善消息服务层逻辑,增加日志记录和错误处理 4. 扩展消息控制器API,新增获取根消息、回复消息等端点 5. 添加消息数据初始化组件和检查器 6. 优化全局异常处理,增加请求路径日志 同时调整文章模块: 1. 移除按作者查询文章功能 2. 统一分类查询参数命名 3. 优化文章服务层代码结构 配置变更: 1. 添加缓存相关依赖 2. 调整数据库连接配置 3. 暂时禁用Hibernate二级缓存
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
package com.qf.myafterprojecy.init;
|
||||
|
||||
import com.qf.myafterprojecy.pojo.Message;
|
||||
import com.qf.myafterprojecy.repository.MessageRepository;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.ApplicationArguments;
|
||||
import org.springframework.boot.ApplicationRunner;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 消息数据初始化类,用于在应用启动时为Message表添加默认的测试数据
|
||||
*/
|
||||
@Component
|
||||
public class MessageDataInit implements ApplicationRunner {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(MessageDataInit.class);
|
||||
|
||||
@Autowired
|
||||
private MessageRepository messageRepository;
|
||||
|
||||
@Override
|
||||
public void run(ApplicationArguments args) throws Exception {
|
||||
logger.info("===== 消息数据初始化开始 =====");
|
||||
|
||||
// 检查数据库中是否已有消息数据
|
||||
long count = messageRepository.count();
|
||||
logger.info("当前数据库中消息数量: {}", count);
|
||||
|
||||
// 如果没有消息数据,添加一些测试数据
|
||||
if (count == 0) {
|
||||
logger.info("数据库中没有消息数据,开始添加初始化数据...");
|
||||
addInitialMessages();
|
||||
} else {
|
||||
logger.info("数据库中已存在消息数据,无需初始化");
|
||||
}
|
||||
|
||||
logger.info("===== 消息数据初始化结束 =====");
|
||||
}
|
||||
|
||||
private void addInitialMessages() {
|
||||
// 添加第一篇文章的评论
|
||||
Message message1 = new Message();
|
||||
message1.setNickname("系统用户");
|
||||
message1.setEmail("system@example.com");
|
||||
message1.setContent("这是系统自动添加的第一条评论,欢迎使用本系统!");
|
||||
message1.setCreatedAt(new Date());
|
||||
message1.setArticleid(1);
|
||||
message1.setParentid(null); // 根评论
|
||||
messageRepository.save(message1);
|
||||
|
||||
// 添加回复
|
||||
Message reply1 = new Message();
|
||||
reply1.setNickname("管理员");
|
||||
reply1.setEmail("admin@example.com");
|
||||
reply1.setContent("感谢您的支持,如有任何问题请随时联系我们!");
|
||||
reply1.setCreatedAt(new Date());
|
||||
reply1.setArticleid(1);
|
||||
reply1.setParentid(message1.getMessageid()); // 回复第一条评论
|
||||
messageRepository.save(reply1);
|
||||
|
||||
// 添加第二篇文章的评论
|
||||
Message message2 = new Message();
|
||||
message2.setNickname("访客");
|
||||
message2.setEmail("visitor@example.com");
|
||||
message2.setContent("这篇文章写得非常好,学到了很多知识。");
|
||||
message2.setCreatedAt(new Date());
|
||||
message2.setArticleid(2);
|
||||
message2.setParentid(null);
|
||||
messageRepository.save(message2);
|
||||
|
||||
// 再添加一些测试数据
|
||||
Message message3 = new Message();
|
||||
message3.setNickname("测试用户1");
|
||||
message3.setEmail("test1@example.com");
|
||||
message3.setContent("这是测试内容1");
|
||||
message3.setCreatedAt(new Date());
|
||||
message3.setArticleid(1);
|
||||
message3.setParentid(null);
|
||||
messageRepository.save(message3);
|
||||
|
||||
Message reply2 = new Message();
|
||||
reply2.setNickname("测试用户2");
|
||||
reply2.setEmail("test2@example.com");
|
||||
reply2.setContent("回复测试内容1");
|
||||
reply2.setCreatedAt(new Date());
|
||||
reply2.setArticleid(1);
|
||||
reply2.setParentid(message3.getMessageid());
|
||||
messageRepository.save(reply2);
|
||||
|
||||
logger.info("成功添加了{}条初始化消息数据", messageRepository.count());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user