2.4.3 消息中心
优质
小牛编辑
143浏览
2023-12-01
一个简易的消息管理模块,你可以进行存储消息,记录消息的已读状态。也可自行扩展,当作消息队列的基础。或者也可以用做记录,管理员之间的留言。
Service说明
1、创建单一消息
/**
* @param $title 消息标题
* @param $content 消息内容
* @param $receiver 接收者(例如管理员id)
* @return array
*/
\AdminMessage\Service\AdminMessageService::createAdminMessage($title,$content,$receiver);
2、创建群发消息
/**
* @param $title 消息标题
* @param $content 消息内容
* @return array
*/
\AdminMessage\Service\AdminMessageService::createGroupMessage($title,$content);
3、创建系统消息
/**
* @param $title 消息标题
* @param $content 消息内容
* @return array
*/
\AdminMessage\Service\AdminMessageService::createSystemMessage($title,$content);
新增表 admin_message:
CREATE TABLE `cms_admin_message` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL DEFAULT '' COMMENT '标题',
`content` varchar(255) NOT NULL DEFAULT '' COMMENT '内容',
`target` varchar(255) NOT NULL DEFAULT '' COMMENT '消息源',
`target_type` varchar(255) NOT NULL DEFAULT '' COMMENT '消息源类型',
`sender` varchar(255) NOT NULL DEFAULT '' COMMENT '发送者',
`sender_type` varchar(255) NOT NULL DEFAULT '' COMMENT '发送者类型',
`receiver` varchar(255) NOT NULL DEFAULT '' COMMENT '接收者',
`receiver_type` varchar(255) NOT NULL DEFAULT '' COMMENT '接收者类型',
`type` varchar(255) NOT NULL DEFAULT '' COMMENT '消息类型',
`read_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '阅读时间',
`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
`read_status` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '阅读状态: 0未阅读 1已阅读',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
使用场景模拟:
1、手动发送给某个管理员消息 系统类型 type = '' (默认为空)
target(消息源) | target_type (消息源类型 ) | type(系统类型) |
---|---|---|
system | system | ' ' |
2、创建系统消息
target(消息源) | target_type (消息源类型 ) | type(系统类型) :-----------: | :-----------: | :-----------: system | system | system
3、张三发送消息通知李四,注意审查
target(消息源) | target_type (消息源类型 ) | type(系统类型) :-----------: | :-----------: | :-----------: 张三的id | admin_id | ' '
4、用户下单后通知管理员
target(消息源) | target_type (消息源类型 ) | type(系统类型) :-----------: | :-----------: | :-----------: 20200715224515 | order_no | ' '