|
|
@@ -13,9 +13,10 @@
|
|
|
|
|
|
### 2.1 消息通知记录表
|
|
|
|
|
|
-**文件**:`.docs/sql/建表语句/消息通知记录表.sql`
|
|
|
+**文件**:`jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/../.docs/sql/建表语句/消息通知记录表.sql`
|
|
|
|
|
|
```sql
|
|
|
+-- 主表
|
|
|
CREATE TABLE notification_record (
|
|
|
ID VARCHAR(36) NOT NULL,
|
|
|
MODULE_TYPE VARCHAR(50) COMMENT '来源模块',
|
|
|
@@ -29,29 +30,33 @@ CREATE TABLE notification_record (
|
|
|
SYS_ORG_CODE VARCHAR(50),
|
|
|
PRIMARY KEY (ID)
|
|
|
);
|
|
|
+COMMENT ON TABLE notification_record IS '消息通知记录表';
|
|
|
|
|
|
+-- 后增字段
|
|
|
ALTER TABLE notification_record ADD EXPIRE_TIME TIMESTAMP;
|
|
|
COMMENT ON COLUMN notification_record.EXPIRE_TIME IS '过期时间';
|
|
|
ALTER TABLE notification_record ADD STATUS VARCHAR(20) DEFAULT '0';
|
|
|
COMMENT ON COLUMN notification_record.STATUS IS '状态: 0未读 1已读';
|
|
|
-```
|
|
|
-
|
|
|
-**接收人关联表**:
|
|
|
|
|
|
-```sql
|
|
|
+-- 接收人关联表
|
|
|
CREATE TABLE notification_target (
|
|
|
NOTIFICATION_ID VARCHAR(36) NOT NULL COMMENT '消息ID',
|
|
|
TARGET_TYPE VARCHAR(20) NOT NULL COMMENT '类型: personal/enterprise',
|
|
|
TARGET_ID VARCHAR(36) NOT NULL COMMENT '目标ID'
|
|
|
);
|
|
|
+COMMENT ON TABLE notification_target IS '消息接收人关联表';
|
|
|
+CREATE INDEX idx_nt_target ON notification_target(TARGET_TYPE, TARGET_ID);
|
|
|
+CREATE INDEX idx_nt_notify ON notification_target(NOTIFICATION_ID);
|
|
|
+ALTER TABLE notification_target ADD STATUS VARCHAR(20) DEFAULT '0';
|
|
|
+COMMENT ON COLUMN notification_target.STATUS IS '状态: 0未读 1已读';
|
|
|
```
|
|
|
|
|
|
### 2.2 待办记录表
|
|
|
|
|
|
-**文件**:`.docs/sql/建表语句/待办记录表.sql`
|
|
|
+**文件**:`jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/../.docs/sql/建表语句/待办记录表.sql`
|
|
|
|
|
|
```sql
|
|
|
+-- 主表
|
|
|
CREATE TABLE todo_record (
|
|
|
ID VARCHAR(36) NOT NULL,
|
|
|
MODULE_TYPE VARCHAR(50) COMMENT '来源模块',
|
|
|
@@ -65,16 +70,23 @@ CREATE TABLE todo_record (
|
|
|
EXPIRE_TIME TIMESTAMP COMMENT '过期时间',
|
|
|
TARGET_PAGE VARCHAR(500) COMMENT '目标页面路径',
|
|
|
DATA_ID VARCHAR(36) COMMENT '数据ID',
|
|
|
- PATH_PARAMS VARCHAR(500) COMMENT '路径参数(JSON格式)',
|
|
|
+ PATH_PARAMS VARCHAR(500) COMMENT '路径参数',
|
|
|
SYS_ORG_CODE VARCHAR(50),
|
|
|
PRIMARY KEY (ID)
|
|
|
);
|
|
|
+COMMENT ON TABLE todo_record IS '待办记录表';
|
|
|
|
|
|
+-- 接收人关联表
|
|
|
CREATE TABLE todo_target (
|
|
|
TODO_ID VARCHAR(36) NOT NULL COMMENT '待办ID',
|
|
|
TARGET_TYPE VARCHAR(20) NOT NULL COMMENT '类型: personal/enterprise',
|
|
|
TARGET_ID VARCHAR(36) NOT NULL COMMENT '目标ID'
|
|
|
);
|
|
|
+COMMENT ON TABLE todo_target IS '待办接收人关联表';
|
|
|
+CREATE INDEX idx_tt_target ON todo_target(TARGET_TYPE, TARGET_ID);
|
|
|
+CREATE INDEX idx_tt_todo ON todo_target(TODO_ID);
|
|
|
+ALTER TABLE todo_target ADD STATUS VARCHAR(20) DEFAULT '0';
|
|
|
+COMMENT ON COLUMN todo_target.STATUS IS '状态: 0待处理 1已完成 2已取消';
|
|
|
```
|
|
|
|
|
|
### 2.3 表结构对比
|
|
|
@@ -82,10 +94,13 @@ CREATE TABLE todo_target (
|
|
|
| 特性 | notification_record | todo_record |
|
|
|
|------|-------------------|-------------|
|
|
|
| 主信息 | 主题、内容、发送人 | 标题、内容、发起人 |
|
|
|
-| 时间 | 发送时间、过期时间 | 创建时间、完成时间、过期时间 |
|
|
|
-| 状态 | 0未读/1已读 | 0待处理/1已完成/2已取消 |
|
|
|
+| 时间 | 推送时间、过期时间 | 创建时间、完成时间、过期时间 |
|
|
|
+| 主表状态 | 0未读/1已读 | 0待处理/1已完成/2已取消 |
|
|
|
| 跳转字段 | 无 | TARGET_PAGE、DATA_ID、PATH_PARAMS |
|
|
|
-| 接收人关联 | notification_target | todo_target |
|
|
|
+| 接收人关联表 | notification_target | todo_target |
|
|
|
+| 关联表状态 | 0未读/1已读 | 0待处理/1已完成/2已取消 |
|
|
|
+
|
|
|
+> 注:两个模块的接收人关联表均通过 ALTER 方式后增了 STATUS 字段,用于独立记录每个接收人的处理状态(消息为已读/未读,待办为处理进度)。
|
|
|
|
|
|
---
|
|
|
|
|
|
@@ -95,9 +110,19 @@ CREATE TABLE todo_target (
|
|
|
|
|
|
**包路径**:`org.jeecg.modules.zjrs.notification`
|
|
|
|
|
|
+**实体映射**:
|
|
|
+
|
|
|
+| 表 | 实体 | 说明 |
|
|
|
+|----|------|------|
|
|
|
+| notification_record | NotificationRecord.java | 主实体,含 expireTime、status |
|
|
|
+| notification_target | NotificationTarget.java | 关联实体,含 status |
|
|
|
+
|
|
|
+**文件变更**:
|
|
|
+
|
|
|
| 文件 | 操作 | 说明 |
|
|
|
|------|------|------|
|
|
|
| `entity/NotificationRecord.java` | 修改 | 新增 `expireTime`、`status` 字段 |
|
|
|
+| `entity/NotificationTarget.java` | 修改 | 新增 `status` 字段 |
|
|
|
| `service/INotificationRecordService.java` | 修改 | 新增 `sendMessage()` 方法 |
|
|
|
| `service/impl/NotificationRecordServiceImpl.java` | 修改 | 实现 `sendMessage()`,含事务写主表、关联表、更新状态表 |
|
|
|
|
|
|
@@ -124,10 +149,19 @@ CREATE TABLE todo_target (
|
|
|
|
|
|
**包路径**:`org.jeecg.modules.zjrs.todo`
|
|
|
|
|
|
+**实体映射**:
|
|
|
+
|
|
|
+| 表 | 实体 | 说明 |
|
|
|
+|----|------|------|
|
|
|
+| todo_record | TodoRecord.java | 主实体,含 status、completeTime、expireTime 及跳转字段 |
|
|
|
+| todo_target | TodoTarget.java | 关联实体,含 status |
|
|
|
+
|
|
|
+**文件变更**:
|
|
|
+
|
|
|
| 文件 | 操作 | 说明 |
|
|
|
|------|------|------|
|
|
|
| `entity/TodoRecord.java` | 新建 | 待办主表实体,包含跳转字段 |
|
|
|
-| `entity/TodoTarget.java` | 新建 | 待办接收人关联实体 |
|
|
|
+| `entity/TodoTarget.java` | 新建 | 待办接收人关联实体,含 status |
|
|
|
| `mapper/TodoRecordMapper.java` | 新建 | MyBatis Plus Mapper |
|
|
|
| `mapper/TodoTargetMapper.java` | 新建 | MyBatis Plus Mapper |
|
|
|
| `mapper/xml/TodoRecordMapper.xml` | 新建 | Mapper XML(空) |
|