基于springboot的通知反馈系统

博主主页猫头鹰源码

博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

文末联系获取

项目介绍: 

该系统创作于2022年4月,包含详细数据库设计。基于springboot技术,数据层为MyBatis,mysql数据库,页面使用html,具有完整的业务逻辑,适合选题:通知、消息通知、通知反馈、部门信息收集等。

项目功能:

系统共分为平台管理员,单位管理员,部门管理员,普通员工,四种角色,平台管理员由数据库内部预设,单位管理员新增员工的时候,可以新增不同角色,比如可以新增部门管理员,也可以新增普通员工  消息分为两种 1通知类消息(不需要回复和提交文件) 发布通知信息时要有标题、内容、发布时间、发布人、发送给的相关部门或小组; 2材料收集类消息(可以回复和提交文件)发布材料收集需求时要有标题、内容、发布时间、发布人、发送给的相关部门或小组、收集材料的名称和说明,截至提交时间;  平台管理员: 单位管理员管理:新增单位管理员(不能新增部门管理员),修改,查看,删除 单位管理:新建单位,删除,修改,查看  单位管理员: 个人信息管理:查看个人信息,修改 部门管理:新建,删除,修改,查看 部门管理员管理:新增部门管理员,删除部门管理员,修改,查看 通知类消息管理:发布消息,删除已发布消息,修改消息,查询消息(统计消息哪些人已读未读,并做统计) 材料收集类消息管理:发布消息,删除已发布消息,修改消息,查询消息 下载消息中提交的材料  部门管理员: 个人信息管理:查看个人信息,修改 小组管理:增加小组,删除小组,修改小组,查看小组 普通员工管理:增加本部门员工,修改员工(可以修改所在的小组),删除员工,查看员工列表 通知类消息管理:发布消息,删除已发布消息,修改消息,查询消息(统计消息哪些人已读未读,并做统计) 一个列表,谁读谁没读 材料收集类消息管理:发布消息,删除已发布消息,修改消息,查询消息 下载消息中提交的材料  普通员工: 个人信息管理:查看个人信息,部分信息修改(修改姓名年龄性别 不能修改所属部门、小组) 消息管理:查看(仅查看所属部门消息),材料收集类消息可以回复、上传文件

数据模型:

数据库表结构文档:

系统包含技术:

后端:springboot、mybatis
前端:layui,js,css等,html页面
开发工具:idea
数据库:mysql 5.7
JDK版本:jdk1.8

部分截图说明:

系统分为多个角色,下面是登录页面

下面是平台管理员首页

平台管理员可以对单位管理员管理

平台管理员对单位管理

部门管理员对部门管理

 部门管理员可以对小组进行管理

员工管理

 部门管理员看通知消息

部门管理员查看材料收集消息

员工查看通知消息

部分代码:

 拦截器

@Override     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {         HttpSession session = request.getSession();         if(session.getAttribute("userInfo") != null){             return true;         }         // 不符合条件的给出提示信息,并转发到主页面         request.setAttribute("msg", "您还没有登录,请先登录!");         request.getRequestDispatcher("/logout").forward(request, response);         //返回true通过,返回false拦截         return false;     }

部门管理

 /**进入列表页面*/     @GetMapping("/department")     public String userIframe(Model model, HttpSession session){         Organ organ = new Organ();         String type = (String)session.getAttribute("type");         if(type.equals("02")){             OrganAdmin organAdmin = (OrganAdmin)session.getAttribute("userInfo");             organ.setId(Integer.parseInt(organAdmin.getOid()));         }         List<Organ> organs = organService.selectByCondition(organ);         model.addAttribute("organs",organs);         return "DepartmentList";     }      /**列表数据*/     @GetMapping("/list")     @ResponseBody     public PageResultVo findDepartment(Department department, Integer limit, Integer page, HttpSession session){         String type = (String)session.getAttribute("type");         if(type.equals("02")){             OrganAdmin organAdmin = (OrganAdmin)session.getAttribute("userInfo");             department.setOid(organAdmin.getOid());         }         PageHelper.startPage(page,limit);         List<Department> departmentList = departmentService.selectByCondition(department);         PageInfo<Department> pages = new PageInfo<>(departmentList);         return JsonData.table(departmentList,pages.getTotal());     }       /**编辑详情*/     @GetMapping("/edit")     @ResponseBody     public Department edit(Model model, String id){         return departmentService.selectById(id);     }       /**编辑*/     @PostMapping("/edit")     @ResponseBody     public JsonData edit(Department department){         List<Department> all = departmentService.findAll();         for(int i=0;i<all.size();i++){             if(all.get(i).getName().equals(department.getName()) && all.get(i).getId()!=department.getId()  && all.get(i).getOid().equals(department.getOid())){                 return JsonData.fail("部门名称重复,请重试!");             }         }         int a = departmentService.updateById(department);         if (a > 0) {           return JsonData.success(null,"编辑成功!");         } else {           return JsonData.fail("编辑失败");         }     }       /**删除*/     @PostMapping("/del")     @ResponseBody     public JsonData del(String id){         try{           departmentService.deleteById(Integer.parseInt(id));         }catch(Exception ex){           JsonData.fail("出现错误");         }         return JsonData.success(null,"删除成功");     } 

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

Spring Boot项目中使用RabbitMQ实现点赞、评论、关注系统通知,可以按照以下步骤进行: 1. 安装RabbitMQ,并启动RabbitMQ服务。 2. 在项目中引入RabbitMQ相关依赖,可以通过Maven或Gradle等构建工具来实现,例如: ``` <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <version>2.2.10.RELEASE</version> </dependency> ``` 3. 创建RabbitMQ配置类,配置RabbitMQ连接信息和交换机、队列等信息。例如: ``` @Configuration public class RabbitMQConfig { @Bean public ConnectionFactory connectionFactory() { CachingConnectionFactory connectionFactory = new CachingConnectionFactory(); connectionFactory.setHost("localhost"); connectionFactory.setUsername("guest"); connectionFactory.setPassword("guest"); connectionFactory.setVirtualHost("/"); connectionFactory.setPort(5672); return connectionFactory; } @Bean public RabbitTemplate rabbitTemplate() { return new RabbitTemplate(connectionFactory()); } @Bean public DirectExchange directExchange() { return new DirectExchange("exchange"); } @Bean public Queue likeQueue() { return new Queue("like.queue"); } @Bean public Queue commentQueue() { return new Queue("comment.queue"); } @Bean public Queue followQueue() { return new Queue("follow.queue"); } @Bean public Binding likeBinding() { return BindingBuilder.bind(likeQueue()).to(directExchange()).with("like"); } @Bean public Binding commentBinding() { return BindingBuilder.bind(commentQueue()).to(directExchange()).with("comment"); } @Bean public Binding followBinding() { return BindingBuilder.bind(followQueue()).to(directExchange()).with("follow"); } } ``` 4. 在需要发送消息的地方,使用RabbitTemplate来发送消息。例如: ``` @Autowired private RabbitTemplate rabbitTemplate; public void sendLikeMessage(String message) { rabbitTemplate.convertAndSend("exchange", "like", message); } public void sendCommentMessage(String message) { rabbitTemplate.convertAndSend("exchange", "comment", message); } public void sendFollowMessage(String message) { rabbitTemplate.convertAndSend("exchange", "follow", message); } ``` 5. 在需要接收消息的地方,创建对应的消息监听器,并使用@RabbitListener注解来监听队列。例如: ``` @Component public class LikeMessageListener { @RabbitListener(queues = "like.queue") public void receiveLikeMessage(String message) { System.out.println("收到点赞消息:" + message); // 处理点赞消息 } } @Component public class CommentMessageListener { @RabbitListener(queues = "comment.queue") public void receiveCommentMessage(String message) { System.out.println("收到评论消息:" + message); // 处理评论消息 } } @Component public class FollowMessageListener { @RabbitListener(queues = "follow.queue") public void receiveFollowMessage(String message) { System.out.println("收到关注消息:" + message); // 处理关注消息 } } ``` 通过以上步骤,就可以在Spring Boot项目中使用RabbitMQ实现点赞、评论、关注系统通知了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值