设计消息模块的业务层Web层

目录

业务层

一、定义Message业务接口

二、定义Message业务实现类

Web层

一、获取分页消息列表

二、根据ID查询消息

三、把未读消息更新成已读消息

四、删除消息


业务层

一、定义Message业务接口

创建 MessageService.java 类 

public interface MessageService {public String insertMessage(MessageEntity entity);public List<HashMap> searchMessageByPage(int userId, long start, int length);public HashMap searchMessageById(String id);public String insertRef(MessageRefEntity entity);public long searchUnreadCount(int userId);public long searchLastCount(int userId);public long updateUnreadMessage(String id);public long deleteMessageRefById(String id);public long deleteUserMessageRef(int userId);
}

二、定义Message业务实现类

 

创建 MessageServiceImpl.java 类

@Service
public class MessageServiceImpl implements MessageService {@Autowiredprivate MessageDao messageDao;@Autowiredprivate MessageRefDao messageRefDao;@Overridepublic String insertMessage(MessageEntity entity) {String id=messageDao.insert(entity);return id;}@Overridepublic List<HashMap> searchMessageByPage(int userId, long start, int length) {List<HashMap> list=messageDao.searchMessageByPage(userId,start,length);return list;}@Overridepublic HashMap searchMessageById(String id) {HashMap map=messageDao.searchMessageById(id);return map;}@Overridepublic String insertRef(MessageRefEntity entity) {String id=messageRefDao.insert(entity);return id;}@Overridepublic long searchUnreadCount(int userId) {long count=messageRefDao.searchUnreadCount(userId);return count;}@Overridepublic long searchLastCount(int userId) {long count=messageRefDao.searchLastCount(userId);return count;}@Overridepublic long updateUnreadMessage(String id) {long rows=messageRefDao.updateUnreadMessage(id);return rows;}@Overridepublic long deleteMessageRefById(String id) {long rows=messageRefDao.deleteMessageRefById(id);return rows;}@Overridepublic long deleteUserMessageRef(int userId) {long rows=messageRefDao.deleteUserMessageRef(userId);return rows;}
}

Web层

一、获取分页消息列表

创建 SearchMessageByPageForm.java 类 

@Data
@ApiModel
public class SearchMessageByPageForm {@NotNull@Min(1)private Integer page;@NotNull@Range(min = 1,max = 40)private Integer length;
}

创建 MessageController.java 类  

@RestController
@RequestMapping("/message")
@Api("消息模块网络接口")
public class MessageController {@Autowiredprivate JwtUtil jwtUtil;@Autowiredprivate MessageService messageService;@PostMapping("/searchMessageByPage")@ApiOperation("获取分页消息列表")public R searchMessageByPage(@Valid @RequestBody SearchMessageByPageForm form, @RequestHeader("token") String token) {int userId = jwtUtil.getUserId(token);int page = form.getPage();int length = form.getLength();long start = (page - 1) * length;List<HashMap> list = messageService.searchMessageByPage(userId, start, length);return R.ok().put("result", list);}
}

二、根据ID查询消息

创建 SearchMessageByIdForm.java 类

@Data
@ApiModel
public class SearchMessageByIdForm {@NotNullprivate String id;
}

在 MessageController.java 中编写Web方法 

……@PostMapping("/searchMessageById")@ApiOperation("根据ID查询消息")public R searchMessageById(@Valid @RequestBody SearchMessageByIdForm form) {HashMap map = messageService.searchMessageById(form.getId());return R.ok().put("result", map);}

三、把未读消息更新成已读消息

创建 UpdateUnreadMessageForm.java 类 

@Data
@ApiModel
public class UpdateUnreadMessageForm {@NotNullprivate String id;
}

在 MessageController.java 中编写Web方法

……    @PostMapping("/updateUnreadMessage")@ApiOperation("未读消息更新成已读消息")public R updateUnreadMessage(@Valid @RequestBody UpdateUnreadMessageForm form) {long rows = messageService.updateUnreadMessage(form.getId());return R.ok().put("result", rows == 1 ? true : false);}

四、删除消息

创建 DeleteMessageRefByIdForm.java 类

@Data
@ApiModel
public class DeleteMessageRefByIdForm {@NotNullprivate String id;
}

在 MessageController.java 中编写Web方法

……@PostMapping("/deleteMessageRefById")@ApiOperation("删除消息")public R deleteMessageRefById(@Valid @RequestBody DeleteMessageRefByIdForm form) {long rows = messageService.deleteMessageRefById(form.getId());return R.ok().put("result", rows == 1 ? true : false);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/2377.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++【位图/布隆过滤器—海量数据处理】

文章目录 一、位图&#xff08;1&#xff09;位图概念介绍&#xff08;2&#xff09;简单模拟实现&#xff08;3&#xff09;位图应用 二、布隆过滤器&#xff08;1&#xff09;关于布隆过滤器概念及介绍&#xff08;2&#xff09;布隆过滤器的使用场景&#xff08;3&#xff0…

性能测试的具体流程

文章目录 1. 确定性能测试目标及指标2. 设计测试场景3. 配置测试环境4. 编写测试脚本5. 进行性能测试6. 分析测试结果7. 提出优化建议8. 进行反复测试和调整 以下是一个基本的性能测试过程&#xff0c;旨在帮助了解性能测试的具体流程和步骤。 1. 确定性能测试目标及指标 首先…

多层感知机与深度学习算法概述

多层感知机与深度学习算法概述 读研之前那会儿我们曾纠结于机器学习、深度学习、神经网络这些概念的异同。现在看来深度学习这一算法竟然容易让人和他的爸爸机器学习搞混…可见深度学习技术的影响力之大。深度学习&#xff0c;作为机器学习家族中目前最有价值的一种算法&#…

JAVA开发(记一次504 gateway timeout错误排查过程)

一、问题与背景&#xff1a; 最近在发布一个web项目&#xff0c;在测试环境都是可以的&#xff0c;发布到生产环境通过IP访问也是可以的&#xff0c;但是通过域名访问就出现504 gateway timeout。通过postman去测试接口也是一样。ip和端口都可以通&#xff0c;域名却不行&…

MySql高级篇-006 MySQL架构篇-02MySQL的数据目录:数据库下的主要目录结构、文件系统如何存储数据

第02章_MySQL的数据目录 1.MySQL8的主要目录结构 # 查询名称叫做mysql的文件目录都有哪些[rootatguigu07 ~]# find / -name mysql安装好MySQL 8之后&#xff0c;我们查看如下的目录结构&#xff1a; 1.1 数据库文件的存放路径 MySQL数据库文件的存放路径&#xff1a;/var/…

商业综合体智能管理系统

自主研发的商业综合体智能管理系统和智能硬件&#xff0c;并针对行业不同需求&#xff0c;推出了不同行业的创新解決方案和服务。该系统能够提高商业综合体的管理效率和安全性&#xff0c;为商业综合体的经营和服务增加更多的价值。全自动智能完成无需人工干预&#xff0c;从而…

基于HTML5的手术室信息管理系统的设计与实现(源码+文档+数据库)

本文通过对现有手术室信息管理系统分析&#xff0c;设计了一套基于 HTML的手术室信息管理系统&#xff0c;实现了患者信息、手术记录及术后随访等功能&#xff0c;提高了手术室工作效率。 本系统实现了患者基本资料的录入及基本信息的查询&#xff0c;提供了术前准备情况及术中…

计算机网络—网络层

文章目录 网络层服务虚电路网络数据报网络 IPv4IP数据报IP数据报分片 IP编址&#xff08;IPv4&#xff09;有类IP地址IP子网划分子网掩码 无类IP地址&#xff08;CIDR&#xff09;DHCPNATICMP协议 路由算法链路状态路由算法距离向量路由算法不同子网之间的路由算法学习RIP协议O…

less和sass

less和sass 相比于css解决了什么问题&#xff1f; 答案&#xff1a;less和sass可以嵌套&#xff0c;可以使用变量&#xff1b;而css不可以 BEM/CSS modules/Atomic CSS/CSS in JS&#xff0c;这些方案应用于工程化中&#xff0c;解决了的问题是&#xff1a; 多人协同/大规模场…

机器人工程创新类课程补充说明-2023-2

仅供参考 之前一篇&#xff1a;机器人工程创新类课程补充说明-2023- 自主学习→自主研究→自主创新&#xff0c;这是一个循序渐进的过程&#xff0c;着急没用的&#xff0c;大部分学生&#xff0c;都卡在第一个阶段&#xff0c;自主学习的效率比较低&#xff0c;并且成果不突出…

vue的学习

title: VUE 一、Vue简介 1.1 简介 ::: tip Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式的js框架&#xff0c;发布于 2014 年 2 月。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0…

数据结构--单链表的建立

数据结构–链表的建立 目标&#xff1a; Step 1:初始化一个单链表 Step 2:每次取一个数据元素&#xff0c;插入到表尾/表头 尾插法建立单链表 代码实现 typedef struct LNode {int data;struct LNode *next; }LNode, *LinkList;LinkList List_TailInsert(LinkList &L) {…