From 1e6d61d3df503025982fd18998f4fbf6f5709c24 Mon Sep 17 00:00:00 2001 From: xsx <825657193@qq.com> Date: Wed, 1 Jan 2025 17:27:03 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=B6=88=E6=81=AF=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/im-admin.sql | 34 ++- im-admin-ui/src/api/im/smPushTask/index.ts | 28 +- im-admin-ui/src/api/im/smPushTask/types.ts | 22 +- im-admin-ui/src/api/im/systemMessage/index.ts | 12 + im-admin-ui/src/api/im/user/index.ts | 2 +- im-admin-ui/src/components/Editor/index.vue | 3 +- .../src/components/ImageUpload/index.vue | 212 +++++++------- .../components/im/ImSysMsgSelect/index.vue | 51 ---- .../src/components/im/ImUserSelect/index.vue | 4 +- .../src/views/im/message/system/index.vue | 36 ++- .../src/views/im/message/task/index.vue | 276 +++++------------- .../src/main/resources/application-dev.yml | 2 +- .../im/controller/ImSmPushTaskController.java | 37 +-- .../controller/ImSystemMessageController.java | 30 +- .../im/controller/ImUserController.java | 13 +- .../org/dromara/im/domain/ImBaseEntity.java | 57 ---- .../org/dromara/im/domain/ImSmPushTask.java | 26 +- .../dromara/im/domain/ImSystemMessage.java | 28 +- .../dromara/im/domain/bo/ImSmPushTaskBo.java | 32 +- .../dromara/im/domain/vo/ImSmPushTaskVo.java | 48 +-- .../org/dromara/im/enums/ImSmPushStatus.java | 34 +++ .../im/service/IImGroupMemberService.java | 9 - .../im/service/IImGroupMessageService.java | 10 - .../im/service/IImPrivateMessageService.java | 10 +- .../im/service/IImSmPushTaskService.java | 17 +- .../im/service/IImSystemMessageService.java | 8 +- .../dromara/im/service/IImUserService.java | 7 + .../impl/ImGroupMemberServiceImpl.java | 14 - .../impl/ImGroupMessageServiceImpl.java | 12 - .../impl/ImPrivateMessageServiceImpl.java | 12 - .../impl/ImSensitiveWordServiceImpl.java | 8 +- .../service/impl/ImSmPushTaskServiceImpl.java | 115 +++++--- .../impl/ImSystemMessageServiceImpl.java | 30 +- .../im/service/impl/ImUserServiceImpl.java | 7 + .../org/dromara/im/util/CommaTextUtils.java | 98 +++++++ 35 files changed, 622 insertions(+), 722 deletions(-) delete mode 100644 im-admin-ui/src/components/im/ImSysMsgSelect/index.vue delete mode 100644 im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/ImBaseEntity.java create mode 100644 im-admin/ruoyi-im/src/main/java/org/dromara/im/enums/ImSmPushStatus.java create mode 100644 im-admin/ruoyi-im/src/main/java/org/dromara/im/util/CommaTextUtils.java diff --git a/db/im-admin.sql b/db/im-admin.sql index 704e64b..be3dc7b 100644 --- a/db/im-admin.sql +++ b/db/im-admin.sql @@ -31,7 +31,7 @@ create table sys_social create_time datetime comment '创建时间', update_by bigint(20) comment '更新者', update_time datetime comment '更新时间', - del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', + del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)', PRIMARY KEY (id) ) engine=innodb comment = '社会化关系表'; @@ -55,7 +55,7 @@ create table sys_tenant expire_time datetime comment '过期时间', account_count int default -1 comment '用户数量(-1不限制)', status char(1) default '0' comment '租户状态(0正常 1停用)', - del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', + del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)', create_dept bigint(20) comment '创建部门', create_by bigint(20) comment '创建者', create_time datetime comment '创建时间', @@ -75,7 +75,7 @@ create table sys_tenant_package ( remark varchar(200) comment '备注', menu_check_strictly tinyint(1) default 1 comment '菜单树选择项是否关联显示', status char(1) default '0' comment '状态(0正常 1停用)', - del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', + del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)', create_dept bigint(20) comment '创建部门', create_by bigint(20) comment '创建者', create_time datetime comment '创建时间', @@ -100,7 +100,7 @@ create table sys_dept ( phone varchar(11) default null comment '联系电话', email varchar(50) default null comment '邮箱', status char(1) default '0' comment '部门状态(0正常 1停用)', - del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', + del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)', create_dept bigint(20) default null comment '创建部门', create_by bigint(20) default null comment '创建者', create_time datetime comment '创建时间', @@ -133,7 +133,7 @@ create table sys_user ( avatar varchar(256) comment '头像地址', password varchar(100) default '' comment '密码', status char(1) default '0' comment '帐号状态(0正常 1停用)', - del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', + del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)', login_ip varchar(128) default '' comment '最后登录IP', login_date datetime comment '最后登录时间', create_dept bigint(20) default null comment '创建部门', @@ -187,7 +187,7 @@ create table sys_role ( menu_check_strictly tinyint(1) default 1 comment '菜单树选择项是否关联显示', dept_check_strictly tinyint(1) default 1 comment '部门树选择项是否关联显示', status char(1) not null comment '角色状态(0正常 1停用)', - del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', + del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)', create_dept bigint(20) default null comment '创建部门', create_by bigint(20) default null comment '创建者', create_time datetime comment '创建时间', @@ -238,7 +238,7 @@ insert into sys_menu values('2', '系统监控', '0', '13', 'monitor', insert into sys_menu values('3', '系统工具', '0', '14', 'tool', null, '', 1, 0, 'M', '0', '0', '', 'tool', 103, 1, sysdate(), null, null, '系统工具目录'); -- 二级菜单 -insert into sys_menu values('100', '用户管理', '1', '1', 'user', 'system/user/index', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 103, 1, sysdate(), null, null, '用户管理菜单'); +insert into sys_menu values('100', '系统用户', '1', '1', 'user', 'system/user/index', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 103, 1, sysdate(), null, null, '用户管理菜单'); insert into sys_menu values('101', '角色管理', '1', '2', 'role', 'system/role/index', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 103, 1, sysdate(), null, null, '角色管理菜单'); insert into sys_menu values('102', '菜单管理', '1', '3', 'menu', 'system/menu/index', '', 1, 0, 'C', '0', '0', 'system:menu:list', 'tree-table', 103, 1, sysdate(), null, null, '菜单管理菜单'); insert into sys_menu values('103', '部门管理', '1', '4', 'dept', 'system/dept/index', '', 1, 0, 'C', '0', '0', 'system:dept:list', 'tree', 103, 1, sysdate(), null, null, '部门管理菜单'); @@ -354,11 +354,19 @@ insert into sys_menu values('61', '群聊消息', '6', '2', 'group', 'i insert into sys_menu values('6101', '群聊消息查询', '61', '1', '#', '', '', 1, 0, 'F', '0', '0', 'im:groupMessage:query', '#', 103, 1, sysdate(), null, null, ''); -- IM-系统消息 -insert into sys_menu values('62', '系统消息', '6', '4', 'system', 'im/message/system/index', '', 1, 0, 'C', '0', '0', 'im:systemMessage:list', 'category', 103, 1, sysdate(), null, null, 'IM系统消息'); -insert into sys_menu values('6201', '系统消息查询', '6', '1', '#', '', '', 1, 0, 'F', '0', '0', 'im:systemMessage:query', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values('6202', '系统消息添加', '6', '2', '#', '', '', 1, 0, 'F', '0', '0', 'im:systemMessage:add', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values('6203', '系统消息删除', '6', '3', '#', '', '', 1, 0, 'F', '0', '0', 'im:systemMessage:remove', '#', 103, 1, sysdate(), null, null, ''); -insert into sys_menu values('6204', '系统消息修改', '6', '4', '#', '', '', 1, 0, 'F', '0', '0', 'im:systemMessage:edit', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu values('62', '系统消息', '6', '4', 'system', 'im/message/system/index', '', 1, 0, 'C', '0', '0', 'im:systemMessage:list', 'druid', 103, 1, sysdate(), null, null, 'IM系统消息'); +insert into sys_menu values('6201', '系统消息查询', '62', '1', '#', '', '', 1, 0, 'F', '0', '0', 'im:systemMessage:query', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu values('6202', '系统消息添加', '62', '2', '#', '', '', 1, 0, 'F', '0', '0', 'im:systemMessage:add', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu values('6203', '系统消息删除', '62', '3', '#', '', '', 1, 0, 'F', '0', '0', 'im:systemMessage:remove', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu values('6204', '系统消息修改', '62', '4', '#', '', '', 1, 0, 'F', '0', '0', 'im:systemMessage:edit', '#', 103, 1, sysdate(), null, null, ''); + +-- IM-推送任务 +insert into sys_menu values('63', '推送任务', '6', '4', 'task', 'im/message/task/index', '', 1, 0, 'C', '0', '0', 'im:smPushTask:list', 'my-task', 103, 1, sysdate(), null, null, 'IM推送任务'); +insert into sys_menu values('6301', '推送任务查询', '63', '1', '#', '', '', 1, 0, 'F', '0', '0', 'im:smPushTask:query', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu values('6302', '推送任务添加', '63', '2', '#', '', '', 1, 0, 'F', '0', '0', 'im:smPushTask:add', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu values('6303', '推送任务删除', '63', '3', '#', '', '', 1, 0, 'F', '0', '0', 'im:smPushTask:remove', '#', 103, 1, sysdate(), null, null, ''); +insert into sys_menu values('6304', '推送任务修改', '63', '3', '#', '', '', 1, 0, 'F', '0', '0', 'im:smPushTask:edit', '#', 103, 1, sysdate(), null, null, ''); + -- IM-敏感词管理 insert into sys_menu values('7', '敏感词管理', '0', '2', 'im/sensitiveWord', 'im/sensitiveWord/index', '', 1, 0, 'C', '0', '0', 'im:sensitiveWord:list', 'documentation', 103, 1, sysdate(), null, null, 'IM敏感词管理'); @@ -705,7 +713,7 @@ create table sys_client ( active_timeout int(11) default 1800 comment 'token活跃超时时间', timeout int(11) default 604800 comment 'token固定超时', status char(1) default '0' comment '状态(0正常 1停用)', - del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)', + del_flag char(1) default '0' comment '删除标志(0代表存在 1代表删除)', create_dept bigint(20) default null comment '创建部门', create_by bigint(20) default null comment '创建者', create_time datetime default null comment '创建时间', diff --git a/im-admin-ui/src/api/im/smPushTask/index.ts b/im-admin-ui/src/api/im/smPushTask/index.ts index 0a8f9b1..a90d13f 100644 --- a/im-admin-ui/src/api/im/smPushTask/index.ts +++ b/im-admin-ui/src/api/im/smPushTask/index.ts @@ -20,7 +20,7 @@ export const listSmPushTask = (query?: SmPushTaskQuery): AxiosPromise => { +export const getSmPushTask = (id: number): AxiosPromise => { return request({ url: '/im/smPushTask/' + id, method: 'get' @@ -55,9 +55,33 @@ export const updateSmPushTask = (data: SmPushTaskForm) => { * 删除系统消息推送任务 * @param id */ -export const delSmPushTask = (id: string | number | Array) => { +export const delSmPushTask = (id: number | Array< number>) => { return request({ url: '/im/smPushTask/' + id, method: 'delete' }); }; + + +/** + * 取消任务 + * @param id + */ +export const cancelSmPushTask = (id: number) => { + return request({ + url: '/im/smPushTask/cancel?id=' + id, + method: 'put' + }); +}; + +/** + * 开启任务 + * @param id + */ +export const openSmPushTask = (id: number) => { + return request({ + url: '/im/smPushTask/open?id=' + id, + method: 'put' + }); +}; + diff --git a/im-admin-ui/src/api/im/smPushTask/types.ts b/im-admin-ui/src/api/im/smPushTask/types.ts index be57cee..cc9adaa 100644 --- a/im-admin-ui/src/api/im/smPushTask/types.ts +++ b/im-admin-ui/src/api/im/smPushTask/types.ts @@ -2,12 +2,12 @@ export interface SmPushTaskVO { /** * id */ - id: string | number; + id: number; /** * 系统消息id */ - messageId: string | number; + messageId: number; /** * 发送序列号 @@ -27,12 +27,12 @@ export interface SmPushTaskVO { /** * 是否发送给全体用户 */ - sendToAll: number; + sendToAll: boolean; /** * 接收用户id,逗号分隔,send_to_all为false时有效 */ - recvIds: string | number; + recvIds: string; /** * 删除标识 0:正常 1:已删除 @@ -55,12 +55,12 @@ export interface SmPushTaskForm extends BaseEntity { /** * id */ - id?: string | number; + id?: number; /** * 系统消息id */ - messageId?: string | number; + messageId?: number; /** * 发送序列号 @@ -80,12 +80,12 @@ export interface SmPushTaskForm extends BaseEntity { /** * 是否发送给全体用户 */ - sendToAll?: number; + sendToAll?: boolean; /** * 接收用户id,逗号分隔,send_to_all为false时有效 */ - recvIds?: string | number; + recvIds?: string; /** * 删除标识 0:正常 1:已删除 @@ -109,7 +109,7 @@ export interface SmPushTaskQuery extends PageQuery { /** * 系统消息id */ - messageId?: string | number; + messageId?: number; /** * 发送序列号 @@ -129,12 +129,12 @@ export interface SmPushTaskQuery extends PageQuery { /** * 是否发送给全体用户 */ - sendToAll?: number; + sendToAll?: boolean; /** * 接收用户id,逗号分隔,send_to_all为false时有效 */ - recvIds?: string | number; + recvIds?: string; /** * 删除标识 0:正常 1:已删除 diff --git a/im-admin-ui/src/api/im/systemMessage/index.ts b/im-admin-ui/src/api/im/systemMessage/index.ts index 1043ed3..2530fbb 100644 --- a/im-admin-ui/src/api/im/systemMessage/index.ts +++ b/im-admin-ui/src/api/im/systemMessage/index.ts @@ -61,3 +61,15 @@ export const delSystemMessage = (id: string | number | Array) = method: 'delete' }); }; + +/** + * 根据标题模糊查询系统消息 + * @param title + */ +export const findSystemMessageByTitle = (title?: String): AxiosPromise => { + return request({ + url: '/im/systemMessage/findByTitle?title=' + title, + method: 'get' + }); +}; + diff --git a/im-admin-ui/src/api/im/user/index.ts b/im-admin-ui/src/api/im/user/index.ts index a692af6..6af776f 100644 --- a/im-admin-ui/src/api/im/user/index.ts +++ b/im-admin-ui/src/api/im/user/index.ts @@ -56,7 +56,7 @@ export const unban = (data: UserUnbanDTO) => { export const findUserByName = (name?: String): AxiosPromise => { return request({ - url: '/im/user/findByName?name='+name, + url: '/im/user/findByName?name=' + name, method: 'get' }); }; diff --git a/im-admin-ui/src/components/Editor/index.vue b/im-admin-ui/src/components/Editor/index.vue index bfad600..c987743 100644 --- a/im-admin-ui/src/components/Editor/index.vue +++ b/im-admin-ui/src/components/Editor/index.vue @@ -55,7 +55,7 @@ const editorConfig: Partial = { console.log(file) const fd = new FormData() fd.append('file', file) - let url = import.meta.env.VITE_APP_BASE_API + '/image/upload'; + let url = import.meta.env.VITE_APP_BASE_API + '/system/image/upload'; let headers = globalHeaders(); headers['Content-Type'] = 'multipart/form-data'; let res = await axios.post(url, fd, { headers }) @@ -72,7 +72,6 @@ onBeforeUnmount(() => { if (editor == null) { return } - console.log("onBeforeUnmount") editor.destroy() }) diff --git a/im-admin-ui/src/components/ImageUpload/index.vue b/im-admin-ui/src/components/ImageUpload/index.vue index fc613c2..637d42a 100644 --- a/im-admin-ui/src/components/ImageUpload/index.vue +++ b/im-admin-ui/src/components/ImageUpload/index.vue @@ -1,11 +1,10 @@ + +