消息通知组件
# 消息通知
# 需求说明
后台需要给指定的用户, 或指定公司的所有员工发送实时的消息
后台可以是程序, 也可以是管理员在操作页面操作
# 更新包
点击下载:更新包消息组件 (opens new window)
# 使用
# 效果图如下
# 强制弹出消息
# 消息列表查询
# 消息提示
# 前端配置
- window.website 中增加如下代码
window.website = {
//是否启用通道,进行消息获取
tgNoticeEnable:true,
}
1
2
3
4
2
3
4
- “功能列表”下面的“消息配置管理”中新建消息
属性名 | 说明 |
---|---|
消息标题 | 发送消息的标题 |
消息类型 | |
推送类型 | 个人或者公司 |
接收方 | 根据推送类型,选择个人或者公司 |
是否强制弹出 | 当前的消息,是否需要强制弹出 |
是否强制阅读(秒) | 当前的消息,必须要阅读完当前设置的秒,才可以关闭 |
消息是否启用 | 不启用不会进行发送消息 |
显示风格 | 消息的小图标的颜色 |
通知有效期 | 当前消息的有效期,开始时间到了,进行消息的推送 |
消息类型 | 消息的内容 |
# 后端配置
# 建表
导入表 (新的解决方案生成后如果包含了, 无视)
mysql
CREATE TABLE `TG_MESSAGE_INFO` (
`ID` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '主键',
`MESSAGE_TYPE` varchar(2) DEFAULT NULL COMMENT '消息类型(系统/通知...)',
`MESSAGE_STYLE` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '显示风格(显示的风格primary/success/info/warning/danger)',
`PUSH_TYPE` varchar(2) DEFAULT NULL COMMENT '推送类型(1按用户推/2按企业推/9全部)',
`MESSAGE_TITLE` varchar(100) DEFAULT NULL COMMENT '消息标题',
`MESSAGE_CONTENT` text COMMENT '消息内容',
`RECEIVE_ID` text COMMENT '接收方(多个id,用逗号隔开)',
`SEND_MARK` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '消息推送状态(0否/1是/2作废)',
`SEND_MAIL` varchar(1) DEFAULT NULL COMMENT '邮件发送状态(0否/1是)',
`SEND_SMS` varchar(1) DEFAULT NULL COMMENT '短信发送状态(0否/1是)',
`SEND_WX` varchar(1) DEFAULT NULL COMMENT '微信推送状态(0否/1是)',
`SEND_TIME` datetime DEFAULT NULL COMMENT '消息发送时间',
`CREATE_USER` varchar(64) DEFAULT NULL COMMENT '消息创建人',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '消息创建时间',
`UPDATE_USER` varchar(64) DEFAULT NULL COMMENT '消息更新人',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '消息更新时间',
`OPEN_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '消息是否开启(0否/1是)',
`EFFECTIVE_START_TIME` datetime DEFAULT NULL COMMENT '消息有效时间(开始)',
`EFFECTIVE_END_TIME` datetime DEFAULT NULL COMMENT '消息有效时间(结束)',
`FORCED_READ` varchar(1) DEFAULT NULL COMMENT '是否强制阅读 0否 / 1是',
`FORCED_READ_SEC` int(10) DEFAULT NULL COMMENT '强制阅读时间(秒)',
`REMARK` varchar(255) DEFAULT NULL COMMENT '备注',
`BZ1` varchar(255) DEFAULT NULL COMMENT '备注1',
`BZ2` varchar(255) DEFAULT NULL COMMENT '备注2',
`BZ3` varchar(255) DEFAULT NULL COMMENT '备注3',
`BZ4` varchar(255) DEFAULT NULL COMMENT '备注4',
PRIMARY KEY (`ID`,`MESSAGE_STYLE`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1409933706567681 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='框架消息表';
CREATE TABLE `TG_MESSAGE_READ` (
`ID` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '主键',
`MESSAGE_ID` bigint(10) DEFAULT NULL COMMENT '消息表id',
`USER_ID` varchar(64) DEFAULT NULL COMMENT '用户id',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`PUSH_TYPE` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '推送类型(1按用户推/2按企业推)',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '修改时间(阅读时间)',
`UPDATE_USER` varchar(64) DEFAULT NULL COMMENT '阅读人',
`READ_STATUS` varchar(1) DEFAULT NULL COMMENT '阅读状态(0未读/1已读)',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1409933721649153 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户消息状态记录表';
CREATE TABLE `TG_PARAMETERS` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`PARA_TYPE` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '参数类型',
`PARA_CODE` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '参数代码',
`PARA_NAME` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '参数名称',
`PARA_INDEX` int(11) DEFAULT NULL COMMENT '排序',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='框架通用参数表';
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
oracle
CREATE TABLE TG_MESSAGE_INFO (
ID NUMBER(10) NOT NULL,
MESSAGE_TYPE VARCHAR2(2 CHAR) DEFAULT NULL,
MESSAGE_STYLE VARCHAR2(64 CHAR) NOT NULL,
PUSH_TYPE VARCHAR2(2 CHAR) DEFAULT NULL,
MESSAGE_TITLE VARCHAR2(100 CHAR) DEFAULT NULL,
MESSAGE_CONTENT CLOB,
RECEIVE_ID CLOB,
SEND_MARK CHAR(1 CHAR) DEFAULT NULL,
SEND_MAIL CHAR(1 CHAR) DEFAULT NULL,
SEND_SMS CHAR(1 CHAR) DEFAULT NULL,
SEND_WX CHAR(1 CHAR) DEFAULT NULL,
SEND_TIME TIMESTAMP(6) DEFAULT NULL,
CREATE_USER VARCHAR2(64 CHAR) DEFAULT NULL,
CREATE_TIME TIMESTAMP(6) DEFAULT NULL,
UPDATE_USER VARCHAR2(64 CHAR) DEFAULT NULL,
UPDATE_TIME TIMESTAMP(6) DEFAULT NULL,
OPEN_FLAG CHAR(1 CHAR) DEFAULT NULL,
EFFECTIVE_START_TIME TIMESTAMP(6) DEFAULT NULL,
EFFECTIVE_END_TIME TIMESTAMP(6) DEFAULT NULL,
FORCED_READ CHAR(1 CHAR) DEFAULT NULL,
FORCED_READ_SEC NUMBER(10) DEFAULT NULL,
REMARK VARCHAR2(255 CHAR) DEFAULT NULL,
BZ1 VARCHAR2(255 CHAR) DEFAULT NULL,
BZ2 VARCHAR2(255 CHAR) DEFAULT NULL,
BZ3 VARCHAR2(255 CHAR) DEFAULT NULL,
BZ4 VARCHAR2(255 CHAR) DEFAULT NULL,
CONSTRAINT TG_MESSAGE_INFO_PK PRIMARY KEY (ID, MESSAGE_STYLE)
);
CREATE TABLE TG_MESSAGE_READ (
ID NUMBER(10) NOT NULL,
MESSAGE_ID NUMBER(10),
USER_ID VARCHAR2(64),
CREATE_TIME TIMESTAMP,
PUSH_TYPE CHAR(2 CHAR),
UPDATE_TIME TIMESTAMP,
UPDATE_USER VARCHAR2(64),
READ_STATUS CHAR(1 CHAR),
CONSTRAINT PK_TG_MESSAGE_READ PRIMARY KEY (ID)
);
CREATE TABLE TG_PARAMETERS (
ID NUMBER(20) NOT NULL,
PARA_TYPE VARCHAR2(50 CHAR) DEFAULT NULL,
PARA_CODE VARCHAR2(50 CHAR) DEFAULT NULL,
PARA_NAME VARCHAR2(100 CHAR) DEFAULT NULL,
PARA_INDEX NUMBER(11) DEFAULT NULL,
CONSTRAINT PK_TG_PARAMETERS PRIMARY KEY (ID)
);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
sqlServer
CREATE TABLE [TG_MESSAGE_INFO](
[ID] [bigint] IDENTITY(1,1) NOT NULL CONSTRAINT [PK_TG_MESSAGE_INFO] PRIMARY KEY CLUSTERED, -- 使用IDENTITY代替AUTO_INCREMENT
[MESSAGE_TYPE] [nvarchar](2) NULL,
[MESSAGE_STYLE] [nvarchar](64) NOT NULL,
[PUSH_TYPE] [nvarchar](2) NULL,
[MESSAGE_TITLE] [nvarchar](100) NULL,
[MESSAGE_CONTENT] [nvarchar](max) NULL, -- 使用nvarchar(max)代替text
[RECEIVE_ID] [nvarchar](max) NULL, -- 同上
[SEND_MARK] [nvarchar](1) NULL,
[SEND_MAIL] [nvarchar](1) NULL,
[SEND_SMS] [nvarchar](1) NULL,
[SEND_WX] [nvarchar](1) NULL,
[SEND_TIME] [datetime] NULL,
[CREATE_USER] [nvarchar](64) NULL,
[CREATE_TIME] [datetime] NULL,
[UPDATE_USER] [nvarchar](64) NULL,
[UPDATE_TIME] [datetime] NULL,
[OPEN_FLAG] [nvarchar](1) NULL,
[EFFECTIVE_START_TIME] [datetime] NULL,
[EFFECTIVE_END_TIME] [datetime] NULL,
[FORCED_READ] [nvarchar](1) NULL,
[FORCED_READ_SEC] [int] NULL,
[REMARK] [nvarchar](255) NULL,
[BZ1] [nvarchar](255) NULL,
[BZ2] [nvarchar](255) NULL,
[BZ3] [nvarchar](255) NULL,
[BZ4] [nvarchar](255) NULL
) ON [PRIMARY];
CREATE TABLE [TG_MESSAGE_READ](
[ID] [bigint] IDENTITY(1,1) NOT NULL CONSTRAINT [PK_TG_MESSAGE_READ] PRIMARY KEY CLUSTERED,
[MESSAGE_ID] [bigint] NULL ,
[USER_ID] [nvarchar](64) NULL,
[CREATE_TIME] [datetime2](7) NULL,
[PUSH_TYPE] [nchar](2) NULL,
[UPDATE_TIME] [datetime2](7) NULL,
[UPDATE_USER] [nvarchar](64) NULL,
[READ_STATUS] [nchar](1) NULL
) ON [PRIMARY];
CREATE TABLE [TG_PARAMETERS](
[ID] [bigint] IDENTITY(1,1) NOT NULL CONSTRAINT [PK_TG_PARAMETERS] PRIMARY KEY CLUSTERED,
[PARA_TYPE] [nvarchar](50) NULL,
[PARA_CODE] [nvarchar](50) NULL,
[PARA_NAME] [nvarchar](100) NULL,
[PARA_INDEX] [int] NULL
) ON [PRIMARY];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
达梦
CREATE TABLE TG_MESSAGE_INFO (
ID bigint NOT NULL COMMENT '主键id',
MESSAGE_TYPE varchar(2) DEFAULT NULL COMMENT '消息类型(系统/通知...)',
MESSAGE_STYLE varchar(64) NOT NULL COMMENT '显示风格(显示的风格primary/success/info/warning/danger)',
PUSH_TYPE varchar(2) DEFAULT NULL COMMENT '推送类型(1按用户推/2按企业推/9全部)',
MESSAGE_TITLE varchar(100) DEFAULT NULL COMMENT '消息标题',
MESSAGE_CONTENT text COMMENT '消息内容',
RECEIVE_ID text COMMENT '接收方(多个id,用逗号隔开)',
SEND_MARK varchar(1) DEFAULT NULL COMMENT '消息推送状态(0否/1是/2作废)',
SEND_MAIL varchar(1) DEFAULT NULL COMMENT '邮件发送状态(0否/1是)',
SEND_SMS varchar(1) DEFAULT NULL COMMENT '短信发送状态(0否/1是)',
SEND_WX varchar(1) DEFAULT NULL COMMENT '微信推送状态(0否/1是)',
SEND_TIME datetime DEFAULT NULL COMMENT '消息发送时间',
CREATE_USER varchar(64) DEFAULT NULL COMMENT '消息创建人',
CREATE_TIME datetime DEFAULT NULL COMMENT '创建时间',
UPDATE_USER varchar(64) DEFAULT NULL COMMENT '消息更新人',
UPDATE_TIME datetime DEFAULT NULL COMMENT '消息更新时间',
OPEN_FLAG varchar(1) DEFAULT NULL COMMENT '消息是否开启(0否/1是)',
EFFECTIVE_START_TIME datetime DEFAULT NULL COMMENT '消息有效时间(开始)',
EFFECTIVE_END_TIME datetime DEFAULT NULL COMMENT '消息有效时间(结束)',
FORCED_READ varchar(1) DEFAULT NULL COMMENT '是否强制阅读 0否 / 1是',
FORCED_READ_SEC int DEFAULT NULL COMMENT '强制阅读时间(秒)',
REMARK varchar(255) DEFAULT NULL COMMENT '备注',
BZ1 varchar(255) DEFAULT NULL COMMENT '备注1',
BZ2 varchar(255) DEFAULT NULL COMMENT '备注2',
BZ3 varchar(255) DEFAULT NULL COMMENT '备注3',
BZ4 varchar(255) DEFAULT NULL COMMENT '备注4',
PRIMARY KEY (ID)
);
CREATE TABLE TG_MESSAGE_READ (
ID bigint NOT NULL COMMENT '主键id',
MESSAGE_ID bigint DEFAULT NULL COMMENT '消息表id',
USER_ID VARCHAR(64) DEFAULT NULL COMMENT '用户id',
CREATE_TIME TIMESTAMP DEFAULT NULL COMMENT '创建时间',
PUSH_TYPE VARCHAR(2) DEFAULT NULL COMMENT '推送类型(1按用户推/2按企业推)',
UPDATE_TIME TIMESTAMP DEFAULT NULL COMMENT '修改时间(阅读时间)',
UPDATE_USER VARCHAR(64) DEFAULT NULL COMMENT '阅读人',
READ_STATUS CHAR(1) DEFAULT NULL COMMENT '阅读状态(0未读/1已读)',
PRIMARY KEY (ID)
);
CREATE TABLE TG_PARAMETERS (
ID bigint NOT NULL COMMENT '主键id',
PARA_TYPE VARCHAR(50) DEFAULT NULL COMMENT '参数类型',
PARA_CODE VARCHAR(50) DEFAULT NULL COMMENT '参数代码',
PARA_NAME VARCHAR(100) DEFAULT NULL COMMENT '参数名称',
PARA_INDEX INT DEFAULT NULL COMMENT '排序',
PRIMARY KEY (ID)
);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
人大金仓
CREATE TABLE TG_MESSAGE_INFO (
ID INT8 NOT NULL,
MESSAGE_TYPE VARCHAR(2) DEFAULT NULL ,
MESSAGE_STYLE VARCHAR(64) NOT NULL ,
PUSH_TYPE VARCHAR(2) DEFAULT NULL ,
MESSAGE_TITLE VARCHAR(100) DEFAULT NULL ,
MESSAGE_CONTENT CLOB ,
RECEIVE_ID CLOB ,
SEND_MARK CHAR(1) DEFAULT NULL ,
SEND_MAIL CHAR(1) DEFAULT NULL ,
SEND_SMS CHAR(1) DEFAULT NULL ,
SEND_WX CHAR(1) DEFAULT NULL ,
SEND_TIME TIMESTAMP DEFAULT NULL ,
CREATE_USER VARCHAR(64) DEFAULT NULL ,
CREATE_TIME TIMESTAMP DEFAULT NULL ,
UPDATE_USER VARCHAR(64) DEFAULT NULL ,
UPDATE_TIME TIMESTAMP DEFAULT NULL ,
OPEN_FLAG CHAR(1) DEFAULT NULL ,
EFFECTIVE_START_TIME TIMESTAMP DEFAULT NULL ,
EFFECTIVE_END_TIME TIMESTAMP DEFAULT NULL ,
FORCED_READ CHAR(1) DEFAULT NULL ,
FORCED_READ_SEC INT DEFAULT NULL ,
REMARK VARCHAR(255) DEFAULT NULL ,
BZ1 VARCHAR(255) DEFAULT NULL ,
BZ2 VARCHAR(255) DEFAULT NULL ,
BZ3 VARCHAR(255) DEFAULT NULL ,
BZ4 VARCHAR(255) DEFAULT NULL ,
PRIMARY KEY (ID)
);
CREATE TABLE TG_MESSAGE_READ (
ID bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
MESSAGE_ID bigint DEFAULT NULL,
USER_ID varchar(64) DEFAULT NULL,
CREATE_TIME timestamp DEFAULT NULL,
PUSH_TYPE varchar(2) DEFAULT NULL,
UPDATE_TIME timestamp DEFAULT NULL,
UPDATE_USER varchar(64) DEFAULT NULL,
READ_STATUS varchar(1) DEFAULT NULL,
PRIMARY KEY (ID)
);
CREATE TABLE TG_PARAMETERS (
ID bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
PARA_TYPE varchar(50) DEFAULT NULL,
PARA_CODE varchar(50) DEFAULT NULL,
PARA_NAME varchar(100) DEFAULT NULL,
PARA_INDEX int DEFAULT NULL,
PRIMARY KEY (ID)
);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 打开消息通知开关
application配置文件设置, 不设默认是false, 不开启消息推送
project:
notice:
enabled: true
1
2
3
4
2
3
4
# 程序推送消息
1. 注入消息组件
@Autowired
private TgMessageInfoService tgMessageInfoService;
2. 调用方法
tgMessageInfoService.pushMessage(
"通知",
"success",
"1",
"消息标题",
"<p>这个是一个p标签的消息</p>",
"687d09af71a74f97a2b4a8856ae19ccd,fad1eb1f370d443385155aac58c07581",
DateUtils.dateTime("yyyy-MM-dd HH:mm:ss","2024-10-01 12:00:00"),
DateUtils.dateTime("yyyy-MM-dd HH:mm:ss","2024-12-01 12:00:00"),
"1",
5
);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
上次更新: 2024/7/18 13:48:06