💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
# 消息提醒对接文档 * ## **数据库** 通用消息共涉及三张表。自定义消息由业务自行建表。以下展示公共消息三张表内容(公共字段省略)</br> **1、T_MESSAGE_SEND(消息发送详情表)** | 字段名称 | 字段 | | --- | --- | | 主键 | `ID` | | 关联消息id | `MESSAGE_ID` | | 关联用户id | `USER_ID `| | 状态 0默认未读 1已读 | `STATUS `| * * * **2、T_MESSAGE(消息表)** | 字段名称 | 字段 | | --- | --- | | 主键 | `ID` | |消息类型注册ID,系统提醒时需要用到 | `MESSAGE_TYPE_ID`| | 标题 | `TITLE `| | 内容 | `CONTENT `| | 消息类型 | `TYPE `| | 消息通道,逗号分割,XT系统 DX短信,WX微信 YX邮箱 | `CHANNEL`| | 业务数据类型 | `BIZ_TYPE`| | 业务数据ID | `BIZ_ID`| | 业务数据扩展,用于存储业务扩展信息 | `BIZ_EXT`| * * * **3、T_MESSAGE_TYPE(消息类型表)** | 字段名称 | 字段 | | --- | --- | | 主键 | `ID`| | 消息类型 | `MESSAGE_TYPE `| | 类引用路径 | `MESSAGE_CLASS_NAME `| | 状态,默认1开启提醒,0不开启 | `STATUS `| | 是否使用自定义消息类,默认0否,1是 | `IS_CUSTOM `| * * * </br> * ## **界面配置** 首先在菜单中加入消息通知管理界面。 ![](https://img.kancloud.cn/a7/76/a776924bc3aa5336d146e5f1158f0f81_958x514.png) 所有消息都需要在消息管理界面进行注册。分为通用消息配置和自定义消息配置。 **1、通用消息配置** ![](https://img.kancloud.cn/5a/0f/5a0f0180abd77fbeb06cc5ff8a218423_513x354.png) **2、自定义消息配置** ![](https://img.kancloud.cn/79/a3/79a3eb12bb342cf59d09d79479c0a296_517x351.png) * * * <br/> * ## **通用消息** 调用 `MessageSendService` 有关方法获取、修改消息数据。</br> **1、消息保存接口:** ``` /** * 保存发送的消息 * * @param userIds 用户id列表,用逗号隔开 * @param message 消息实体 */ void saveMessage(String userIds, Message message); ``` **2、修改状态接口** ``` /** * 修改消息状态为已读 * * @param id id值 */ void editStatusRead(String id); /** * 批量修改消息状态为已读 * * @param ids id列表 */ void batchEditStatusRead(String[] ids); /** * 修改已读未读状态 * * @param id 实体id * @param status 消息状态值(已读还是未读) */ void editStatus(String id, Integer status); /** * 批量修改已读未读状态 * * @param ids id列表 * @param status 消息状态值(已读还是未读) */ void batchEditStatus(String[] ids, Integer status); ``` **3、获取消息** ``` /** * 获取当前用户展示信息 * * @return 当前用户展示信息 */ List<MessageViewModel> getCurrentUserMessageView(); /** * 获取所有信息展示数据 * * @return 获取所有信息展示数据 */ List<MessageViewModel> getAllMessageView(); /** * 获取当前用户已读消息展示数据 * * @return 已读消息展示数据 */ List<MessageViewModel> getReadMessageView(); /** * 获取当前用户未读消息展示数据 * * @return 未读消息列表 */ List<MessageViewModel> getUnReadMessageView(); ``` * * * </br> * ## **自定义消息** 实现 `IMessage<T>`。 根据自己的需求实现对应接口,有以下几个接口可供实现: ``` /** * 获取当前用户展示信息 * * @return 当前用户展示信息 */ MessageViewModel getCurrentUserMessageView(); /** * 获取所有信息展示数据 * * @return 获取所有信息展示数据 */ MessageViewModel getAllMessageView(); /** * 获取当前用户已读消息展示数据 * * @return 已读消息展示数据 */ MessageViewModel getReadMessageView(); /** * 获取当前用户未读消息展示数据 * * @return 未读消息列表 */ MessageViewModel getUnReadMessageView(); /** * 获取当前用户消息列表 * * @return 获取当前用户消息 */ List<T> getCurrentUserMessage(); /** * 获取所有消息列表 * * @return 获取所有消息 */ List<T> getAllMessage(); /** * 获取当前用户已读消息列表 * * @return 已读消息列表 */ List<T> getReadMessage(); /** * 获取当前用户未读消息列表 * * @return 未读消息列表 */ List<T> getUnReadMessage(); ``` `MessageViewModel` 为规定的消息展示模型,共有三个字段 ``` /** * 消息类型 */ private String type; /** * 消息名称 */ private String name; /** * 消息数量 */ private Integer count; ``` * * * * ## **前端调用** 无论是通用消息还是自定义消息,都只需要调用`MessageSendService`提供的有关接口就能获取到数据。 但对数据的修改自定义消息需要自行编写有关接口并调用,这里不进行统一编写。 在前端`message-manager.js` 文件中已有现成的地址可供使用。 ``` const base = '/common/message' // 获取当前用户展示信息 const getCurrentUserMessageView = `${base}/getCurrentUserMessageView` // 获取所有信息展示数据 const getAllMessageView = `${base}/getAllMessageView` // 获取当前用户已读消息展示数据 const getReadMessageView = `${base}/getReadMessageView` // 获取当前用户未读消息展示数据 const getUnReadMessageView = `${base}/getUnReadMessageView` // 修改消息状态为已读 const editStatusRead = `${base}/editStatusRead` // 批量修改消息状态为已读 const batchEditStatusRead = `${base}/batchEditStatusRead` // 修改状态 const editStatus = `${base}/editStatus` // 批量修改状态 const batchEditStatus = `${base}/batchEditStatus` ``` * * * * ## **自定义消息示例代码** ``` /** * 自定义消息示例代码 * */ @Slf4j public class MessageExample implements IMessage<ActBusiness> { /** * 获取当前用户展示信息 * * @return 当前用户展示信息 */ @Override public MessageViewModel getCurrentUserMessageView() { // 手动获取bean ActBusinessService actBusinessService = SpringUtil.getBean(ActBusinessService.class); ActBusiness actBusiness = actBusinessService.findByTableId("1321353858607931392"); System.out.println(actBusiness); System.out.println("getCurrentUserMessageView获取成功"); MessageViewModel messageViewModel = new MessageViewModel(); messageViewModel.setCount(10); return messageViewModel; } } ```