Merge branch 'master' of https://git.lionquexpress.com/wuweihua/BMS
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
-- ============================================================
|
||||
-- 功能:系统管理 - 消息通知管理(客户超额通知)
|
||||
-- 日期:2026-10-09
|
||||
-- 说明:
|
||||
-- 1) sys_notify_rule 通知规则(当前事件类型:CUSTOMER_OVERDUE 客户已超额)
|
||||
-- 2) sys_notify_rule_target 规则通知对象(USER 指定用户 / ROLE 指定角色,可多个)
|
||||
-- 3) sys_notify_message 通知消息(一次超额扫描/客户/天最多一条,防重复打扰)
|
||||
-- 4) sys_notify_receive 接收人与已读/弹屏记录
|
||||
-- 5) sys_notify_scan_log 扫描状态日志(用于超额->恢复状态机与当日去重)
|
||||
-- 6) 菜单:系统管理 -> 消息通知管理(system/notify/index)
|
||||
-- 7) 定时任务:notifyCustomerTask.scanOverdue() 每日09:00
|
||||
-- 口径:通知与核销无关,不涉及任何余额/额度变动。
|
||||
-- ============================================================
|
||||
|
||||
-- 1. 通知规则
|
||||
CREATE TABLE IF NOT EXISTS `sys_notify_rule` (
|
||||
`rule_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '规则ID',
|
||||
`rule_name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规则名称',
|
||||
`event_type` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CUSTOMER_OVERDUE' COMMENT '事件类型:CUSTOMER_OVERDUE客户已超额',
|
||||
`status` char(1) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '状态(0启用 1停用)',
|
||||
`remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建者',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '更新者',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`del_flag` char(1) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '删除标志(0存在 2删除)',
|
||||
PRIMARY KEY (`rule_id`),
|
||||
KEY `idx_snr_event_status` (`event_type`,`status`,`del_flag`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='消息通知规则';
|
||||
|
||||
-- 2. 规则通知对象
|
||||
CREATE TABLE IF NOT EXISTS `sys_notify_rule_target` (
|
||||
`target_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '对象ID',
|
||||
`rule_id` bigint(20) NOT NULL COMMENT '规则ID',
|
||||
`target_type` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '对象类型:USER用户/ROLE角色',
|
||||
`ref_id` bigint(20) NOT NULL COMMENT '用户ID或角色ID',
|
||||
`ref_name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户名/角色名快照',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`target_id`),
|
||||
UNIQUE KEY `uk_snrt_rule_type_ref` (`rule_id`,`target_type`,`ref_id`),
|
||||
KEY `idx_snrt_type_ref` (`target_type`,`ref_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='通知规则对象(用户/角色)';
|
||||
|
||||
-- 3. 通知消息
|
||||
CREATE TABLE IF NOT EXISTS `sys_notify_message` (
|
||||
`message_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '消息ID',
|
||||
`event_type` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CUSTOMER_OVERDUE' COMMENT '事件类型',
|
||||
`title` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标题',
|
||||
`content` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '内容',
|
||||
`customer_id` bigint(20) DEFAULT NULL COMMENT '关联客户ID',
|
||||
`customer_code` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户编号快照',
|
||||
`customer_name` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户名称快照',
|
||||
`overdue_amount` decimal(18,2) DEFAULT NULL COMMENT '超额金额(CNY,正数)',
|
||||
`create_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建者(系统任务记为system)',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`message_id`),
|
||||
KEY `idx_snm_event_customer` (`event_type`,`customer_id`),
|
||||
KEY `idx_snm_create_time` (`create_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='通知消息';
|
||||
|
||||
-- 4. 接收人
|
||||
CREATE TABLE IF NOT EXISTS `sys_notify_receive` (
|
||||
`receive_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '接收ID',
|
||||
`message_id` bigint(20) NOT NULL COMMENT '消息ID',
|
||||
`user_id` bigint(20) NOT NULL COMMENT '接收用户ID',
|
||||
`read_flag` char(1) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '已读标志(0未读 1已读)',
|
||||
`read_time` datetime DEFAULT NULL COMMENT '阅读时间',
|
||||
`popup_flag` char(1) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'N' COMMENT '登录弹屏是否已展示(N否 Y是)',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`receive_id`),
|
||||
UNIQUE KEY `uk_snr_message_user` (`message_id`,`user_id`),
|
||||
KEY `idx_snr_user_popup` (`user_id`,`popup_flag`,`read_flag`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='通知消息接收人';
|
||||
|
||||
-- 5. 扫描状态日志(每客户每事件一行)
|
||||
CREATE TABLE IF NOT EXISTS `sys_notify_scan_log` (
|
||||
`log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
|
||||
`event_type` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事件类型',
|
||||
`customer_id` bigint(20) NOT NULL COMMENT '客户ID',
|
||||
`last_status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '最近状态:OVERDUE超额/NORMAL正常',
|
||||
`last_notify_date` date DEFAULT NULL COMMENT '最近通知日期(当日去重)',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`log_id`),
|
||||
UNIQUE KEY `uk_snsl_event_customer` (`event_type`,`customer_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='通知扫描状态日志';
|
||||
|
||||
-- 6. 菜单:系统管理 -> 消息通知管理
|
||||
INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
|
||||
VALUES (2450, '消息通知管理', 1, 9, 'notify', 'system/notify/index', NULL, 1, 0, 'C', '0', '0', 'system:notify:list', 'message', 'admin', sysdate(), '消息通知配置与记录');
|
||||
INSERT INTO `sys_menu`(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`) VALUES
|
||||
(2451, '通知规则查询', 2450, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:notify:query', '#', 'admin', sysdate(), ''),
|
||||
(2452, '通知规则新增', 2450, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:notify:add', '#', 'admin', sysdate(), ''),
|
||||
(2453, '通知规则修改', 2450, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:notify:edit', '#', 'admin', sysdate(), ''),
|
||||
(2454, '通知规则删除', 2450, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:notify:remove', '#', 'admin', sysdate(), '');
|
||||
|
||||
-- 7. 定时任务:客户超额通知扫描(每日09:00,misfire不补偿、禁止并发)
|
||||
INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `remark`)
|
||||
VALUES (8, '客户超额通知扫描', 'DEFAULT', 'notifyCustomerTask.scanOverdue()', '0 0 9 * * ?', '3', '1', '0', 'admin', sysdate(), '扫描已超额(欠费)客户并按通知规则投递消息');
|
||||
Reference in New Issue
Block a user