Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cmeeting
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
翟斌
cmeeting
Commits
2e389558
提交
2e389558
authored
7月 24, 2025
作者:
洪东保
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
定时任务查询模板
父级
be6a4aad
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
90 行增加
和
60 行删除
+90
-60
src/main/java/com/cmeeting/dto/RecordTemplateDto.java
+2
-0
src/main/java/com/cmeeting/job/FileProcessTask.java
+3
-1
src/main/java/com/cmeeting/service/impl/MeetTypeServiceImpl.java
+0
-2
src/main/java/com/cmeeting/service/impl/MeetingRecordTemplateServiceImpl.java
+81
-55
src/main/resources/mapper/primary/MeetingRecordTemplateMapper.xml
+3
-1
src/test/java/com/cmeeting/MeetingApiTest.java
+1
-1
没有找到文件。
src/main/java/com/cmeeting/dto/RecordTemplateDto.java
浏览文件 @
2e389558
...
...
@@ -19,6 +19,8 @@ public class RecordTemplateDto {
private
String
typeDetail
;
// 生成模板的提示词
private
String
prompt
;
// 模板文件
private
String
template
;
// 引用(参考)模板id
private
Long
referTemplateId
;
// 创建者工号
...
...
src/main/java/com/cmeeting/job/FileProcessTask.java
浏览文件 @
2e389558
...
...
@@ -222,7 +222,9 @@ public class FileProcessTask {
log
.
info
(
"choiceTemplateType->{}"
,
choiceTemplateType
);
// 2. 获取这个会议需要使用的一个模板
MeetingRecordTemplate
template
=
meetingRecordTemplateService
.
getEnabledRecordTemplate
(
choiceTemplateType
,
userIdMapper
.
getWidByTid
(
meetingInfo
.
getHostUid
()));
if
(
template
==
null
)
{
throw
new
RobotBaseException
(
"未找到模板!"
);
}
List
<
EmailPush
.
Attachment
>
attachments
=
new
ArrayList
<>();
String
hostUid
=
meetingInfo
.
getHostUid
();
String
toUserCode
=
tidWidRelations
.
get
(
meetingInfo
.
getHostUid
());
...
...
src/main/java/com/cmeeting/service/impl/MeetTypeServiceImpl.java
浏览文件 @
2e389558
...
...
@@ -165,8 +165,6 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType>
RobotSecurityUser
loginUser
=
SecurityUtil
.
getUser
();
List
<
SysUserSyncCategory
>
categoryList
=
sysUserSyncService
.
getCategoryListByUserId
(
String
.
format
(
"%08d"
,
loginUser
.
getUserId
()));
List
<
String
>
parentDeptIdList
=
categoryList
.
stream
().
map
(
SysUserSyncCategory:
:
getDeptId
).
collect
(
Collectors
.
toList
());
String
role
=
loginUser
.
getRole
();
return
meetingRecordTemplateService
.
getMeetTypeList
(
String
.
format
(
"%08d"
,
loginUser
.
getUserId
()),
parentDeptIdList
,
loginUser
.
getRole
());
}
...
...
src/main/java/com/cmeeting/service/impl/MeetingRecordTemplateServiceImpl.java
浏览文件 @
2e389558
package
com
.
cmeeting
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.io.FileUtil
;
...
...
@@ -419,16 +420,39 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
*/
@Override
public
MeetingRecordTemplate
getEnabledRecordTemplate
(
Long
meetType
,
String
userId
)
{
MeetingRecordTemplate
template
=
baseMapper
.
selectEnabledTemplate
(
meetType
,
userId
);
if
(!
ObjectUtils
.
isEmpty
(
template
))
{
return
template
;
MeetingRecordTemplate
template
=
null
;
List
<
SysUserSyncCategory
>
categoryList
=
sysUserSyncService
.
getCategoryListByUserId
(
userId
);
List
<
String
>
parentDeptIdList
=
categoryList
.
stream
().
map
(
SysUserSyncCategory:
:
getDeptId
).
collect
(
Collectors
.
toList
());
List
<
MeetTypeDto
>
list
=
this
.
getMeetTypeList
(
userId
,
parentDeptIdList
,
"custom"
);
// 获取制定会议类型下的模板
for
(
MeetTypeDto
meetTypeDto
:
list
)
{
if
(
meetTypeDto
.
getId
().
equals
(
meetType
))
{
if
(
CollUtil
.
isNotEmpty
(
meetTypeDto
.
getRecordTemplateDTOList
()))
{
for
(
RecordTemplateDto
templateDto
:
meetTypeDto
.
getRecordTemplateDTOList
())
{
if
(
templateDto
.
getEnable
())
{
template
=
BeanUtil
.
copyProperties
(
templateDto
,
MeetingRecordTemplate
.
class
);
break
;
}
}
}
}
}
template
=
baseMapper
.
selectEnabledTemplate
(
RecordTemplateConstant
.
COMMON_MEET_TYPE
,
userId
);
if
(!
ObjectUtils
.
isEmpty
(
template
))
{
return
template
;
// 获取通用会议类型下的模板
if
(
template
==
null
)
{
for
(
MeetTypeDto
meetTypeDto
:
list
.
stream
().
filter
(
e
->
e
.
getId
().
equals
(
1L
)).
collect
(
Collectors
.
toList
()))
{
if
(
meetTypeDto
.
getId
().
equals
(
meetType
))
{
if
(
CollUtil
.
isNotEmpty
(
meetTypeDto
.
getRecordTemplateDTOList
()))
{
for
(
RecordTemplateDto
templateDto
:
meetTypeDto
.
getRecordTemplateDTOList
())
{
if
(
templateDto
.
getEnable
())
{
template
=
BeanUtil
.
copyProperties
(
templateDto
,
MeetingRecordTemplate
.
class
);
break
;
}
}
}
}
}
}
// TODO
return
baseMapper
.
selectEnabledTemplate
(
RecordTemplateConstant
.
COMMON_MEET_TYPE
,
userId
);
return
template
;
}
/**
...
...
@@ -441,64 +465,66 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
*/
@Override
public
List
<
MeetTypeDto
>
getMeetTypeList
(
String
userId
,
List
<
String
>
parentDeptIdList
,
String
role
)
{
List
<
MeetTypeDto
>
meetTypeDtos
;
if
(
role
.
equals
(
RecordTemplateConstant
.
TEMPLATE_TYPE_SYSTEM
))
{
return
baseMapper
.
selectTemplate
(
RecordTemplateConstant
.
TEMPLATE_TYPE_SYSTEM
);
}
List
<
MeetTypeDto
>
meetTypeDtos
=
baseMapper
.
selectCustomTemplate
(
userId
);
List
<
ModulePermission
>
permissions
=
modulePermissionService
.
list
(
new
LambdaQueryWrapper
<
ModulePermission
>()
.
and
(
e
->
e
.
eq
(
ModulePermission:
:
getPurpose
,
PermissionPruposeType
.
TEMPLATE_TYPE_PERMISSION
)
.
or
().
eq
(
ModulePermission:
:
getPurpose
,
PermissionPruposeType
.
TEMPLATE_PERMISSION
)
).
and
(
e
->
e
.
eq
(
ModulePermission:
:
getType
,
RecordTemplateConstant
.
REL_TYPE_USER
).
eq
(
ModulePermission:
:
getRelId
,
userId
)
.
or
().
eq
(
ModulePermission:
:
getType
,
RecordTemplateConstant
.
REL_TYPE_DEPT
).
in
(
ModulePermission:
:
getRelId
,
parentDeptIdList
))
.
select
(
ModulePermission:
:
getTargetId
,
ModulePermission:
:
getPurpose
)
);
Set
<
Long
>
typeIds
=
permissions
.
stream
().
filter
(
e
->
e
.
getPurpose
().
equals
(
PermissionPruposeType
.
TEMPLATE_TYPE_PERMISSION
)).
map
(
ModulePermission:
:
getTargetId
).
collect
(
Collectors
.
toSet
());
Set
<
Long
>
ids
=
permissions
.
stream
().
filter
(
e
->
e
.
getPurpose
().
equals
(
PermissionPruposeType
.
TEMPLATE_PERMISSION
)).
map
(
ModulePermission:
:
getTargetId
).
collect
(
Collectors
.
toSet
());
meetTypeDtos
.
forEach
(
meetTypeDto
->
{
meetTypeDto
.
getRecordTemplateDTOList
().
removeIf
(
template
->
template
.
getId
()
==
null
);
if
(
meetTypeDto
.
getId
()
!=
1
)
{
Integer
authType
=
meetTypeDto
.
getAuthType
();
if
(
AuthTypeConstant
.
NO_AUTH
.
equals
(
authType
))
{
if
(
CollUtil
.
isNotEmpty
(
meetTypeDto
.
getRecordTemplateDTOList
()))
{
meetTypeDto
.
getRecordTemplateDTOList
().
removeIf
(
template
->
template
.
getType
().
equals
(
RecordTemplateConstant
.
TEMPLATE_TYPE_SYSTEM
)
&&
!
ids
.
contains
(
template
.
getId
()));
}
}
else
if
(
AuthTypeConstant
.
SELECT
.
equals
(
authType
))
{
if
(
CollUtil
.
isNotEmpty
(
meetTypeDto
.
getRecordTemplateDTOList
()))
{
meetTypeDto
.
getRecordTemplateDTOList
().
removeIf
(
template
->
template
.
getType
().
equals
(
RecordTemplateConstant
.
TEMPLATE_TYPE_SYSTEM
)
&&
!
typeIds
.
contains
(
meetTypeDto
.
getId
())
&&
!
ids
.
contains
(
template
.
getId
()));
}
}
}
});
meetTypeDtos
=
baseMapper
.
selectTemplate
(
RecordTemplateConstant
.
TEMPLATE_TYPE_SYSTEM
);
}
else
{
meetTypeDtos
=
baseMapper
.
selectCustomTemplate
(
userId
);
List
<
ModulePermission
>
permissions
=
modulePermissionService
.
list
(
new
LambdaQueryWrapper
<
ModulePermission
>()
.
and
(
e
->
e
.
eq
(
ModulePermission:
:
getPurpose
,
PermissionPruposeType
.
TEMPLATE_TYPE_PERMISSION
)
.
or
().
eq
(
ModulePermission:
:
getPurpose
,
PermissionPruposeType
.
TEMPLATE_PERMISSION
)
).
and
(
e
->
e
.
eq
(
ModulePermission:
:
getType
,
RecordTemplateConstant
.
REL_TYPE_USER
).
eq
(
ModulePermission:
:
getRelId
,
userId
)
.
or
().
eq
(
ModulePermission:
:
getType
,
RecordTemplateConstant
.
REL_TYPE_DEPT
).
in
(
ModulePermission:
:
getRelId
,
parentDeptIdList
))
.
select
(
ModulePermission:
:
getTargetId
,
ModulePermission:
:
getPurpose
)
);
Set
<
Long
>
typeIds
=
permissions
.
stream
().
filter
(
e
->
e
.
getPurpose
().
equals
(
PermissionPruposeType
.
TEMPLATE_TYPE_PERMISSION
)).
map
(
ModulePermission:
:
getTargetId
).
collect
(
Collectors
.
toSet
());
Set
<
Long
>
ids
=
permissions
.
stream
().
filter
(
e
->
e
.
getPurpose
().
equals
(
PermissionPruposeType
.
TEMPLATE_PERMISSION
)).
map
(
ModulePermission:
:
getTargetId
).
collect
(
Collectors
.
toSet
());
// 通用类型(meetType=1)单独处理停启用状态-之前的sql没有办法一次性解决
List
<
MeetTemplateEnable
>
list
=
meetTemplateEnableService
.
list
(
new
LambdaQueryWrapper
<
MeetTemplateEnable
>()
.
eq
(
MeetTemplateEnable:
:
getMeetTypeId
,
1
)
.
eq
(
MeetTemplateEnable:
:
getUserId
,
userId
).
select
(
MeetTemplateEnable:
:
getRelId
));
if
(
CollUtil
.
isNotEmpty
(
list
))
{
Set
<
Long
>
collect
=
list
.
stream
().
map
(
MeetTemplateEnable:
:
getRelId
).
collect
(
Collectors
.
toSet
());
meetTypeDtos
.
forEach
(
meetTypeDto
->
{
if
(
meetTypeDto
.
getId
()
==
1
)
{
meetTypeDto
.
getRecordTemplateDTOList
().
forEach
(
template
->
{
if
(!
collect
.
contains
(
template
.
getId
()))
{
template
.
setEnable
(
false
);
meetTypeDto
.
getRecordTemplateDTOList
().
removeIf
(
template
->
template
.
getId
()
==
null
);
if
(
meetTypeDto
.
getId
()
!=
1
)
{
Integer
authType
=
meetTypeDto
.
getAuthType
();
if
(
AuthTypeConstant
.
NO_AUTH
.
equals
(
authType
))
{
if
(
CollUtil
.
isNotEmpty
(
meetTypeDto
.
getRecordTemplateDTOList
()))
{
meetTypeDto
.
getRecordTemplateDTOList
().
removeIf
(
template
->
template
.
getType
().
equals
(
RecordTemplateConstant
.
TEMPLATE_TYPE_SYSTEM
)
&&
!
ids
.
contains
(
template
.
getId
()));
}
}
else
if
(
AuthTypeConstant
.
SELECT
.
equals
(
authType
))
{
if
(
CollUtil
.
isNotEmpty
(
meetTypeDto
.
getRecordTemplateDTOList
()))
{
meetTypeDto
.
getRecordTemplateDTOList
().
removeIf
(
template
->
template
.
getType
().
equals
(
RecordTemplateConstant
.
TEMPLATE_TYPE_SYSTEM
)
&&
!
typeIds
.
contains
(
meetTypeDto
.
getId
())
&&
!
ids
.
contains
(
template
.
getId
()));
}
}
);
}
}
});
// 通用类型(meetType=1)单独处理停启用状态-之前的sql没有办法一次性解决
List
<
MeetTemplateEnable
>
list
=
meetTemplateEnableService
.
list
(
new
LambdaQueryWrapper
<
MeetTemplateEnable
>()
.
eq
(
MeetTemplateEnable:
:
getMeetTypeId
,
1
)
.
eq
(
MeetTemplateEnable:
:
getUserId
,
userId
).
select
(
MeetTemplateEnable:
:
getRelId
));
if
(
CollUtil
.
isNotEmpty
(
list
))
{
Set
<
Long
>
collect
=
list
.
stream
().
map
(
MeetTemplateEnable:
:
getRelId
).
collect
(
Collectors
.
toSet
());
meetTypeDtos
.
forEach
(
meetTypeDto
->
{
if
(
meetTypeDto
.
getId
()
==
1
)
{
meetTypeDto
.
getRecordTemplateDTOList
().
forEach
(
template
->
{
if
(!
collect
.
contains
(
template
.
getId
()))
{
template
.
setEnable
(
false
);
}
});
}
});
}
}
// 每个会议类型下有一个兜底启用的模板
meetTypeDtos
.
forEach
(
meetTypeDto
->
{
AtomicBoolean
exist
=
new
AtomicBoolean
(
false
);
for
(
RecordTemplateDto
template
:
meetTypeDto
.
getRecordTemplateDTOList
())
{
if
(
template
.
getEnable
())
{
exist
.
set
(
true
);
break
;
if
(
CollUtil
.
isNotEmpty
(
meetTypeDto
.
getRecordTemplateDTOList
()))
{
for
(
RecordTemplateDto
template
:
meetTypeDto
.
getRecordTemplateDTOList
())
{
if
(
template
.
getEnable
())
{
exist
.
set
(
true
);
break
;
}
}
}
if
(!
exist
.
get
())
{
if
(
CollUtil
.
isNotEmpty
(
meetTypeDto
.
getRecordTemplateDTOList
()))
{
if
(!
exist
.
get
())
{
meetTypeDto
.
getRecordTemplateDTOList
().
get
(
0
).
setEnable
(
true
);
}
}
...
...
src/main/resources/mapper/primary/MeetingRecordTemplateMapper.xml
浏览文件 @
2e389558
...
...
@@ -242,6 +242,7 @@
<result
property=
"type"
column=
"type"
/>
<result
property=
"typeDetail"
column=
"type_detail"
/>
<result
property=
"prompt"
column=
"prompt"
/>
<result
property=
"template"
column=
"template"
/>
<result
property=
"referTemplateId"
column=
"refer_template_id"
/>
<result
property=
"enable"
column=
"enable"
/>
<result
property=
"createTime"
column=
"template_create_time"
/>
...
...
@@ -289,6 +290,7 @@
t2.refer_template_id,
t2.create_user as template_create_user,
t2.create_time as template_create_time,
t2.template as template,
CASE
WHEN t2.type = 'system' THEN
CASE WHEN t3.id IS NULL AND t1.id != 1 THEN 0 ELSE t2.enable END
...
...
@@ -301,7 +303,7 @@
and ((t2.type = 'system' and t2.enable = 1) or (t2.type = 'custom' and t2.create_user = #{userId}))
left join meet_template_enable t3 on t3.rel_id = t2.id and t3.user_id = #{userId}
where t1.is_del = 0
order by CASE WHEN t2.type = 'system' THEN 1 WHEN t2.type = 'custom' THEN 2 ELSE 3 END,
order by
t1.id,
CASE WHEN t2.type = 'system' THEN 1 WHEN t2.type = 'custom' THEN 2 ELSE 3 END,
t1.create_time,t2.create_time
</select>
...
...
src/test/java/com/cmeeting/MeetingApiTest.java
浏览文件 @
2e389558
...
...
@@ -25,7 +25,7 @@ public class MeetingApiTest {
@Test
public
void
test2
(){
String
userId
=
"00010786"
;
Long
templateType
=
1
L
;
Long
templateType
=
96
L
;
MeetingRecordTemplate
enabledRecordTemplate
=
meetingRecordTemplateService
.
getEnabledRecordTemplate
(
templateType
,
userId
);
System
.
out
.
println
(
enabledRecordTemplate
.
getName
());
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论