Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cmeeting
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
翟斌
cmeeting
Commits
9c63e432
提交
9c63e432
authored
8月 15, 2025
作者:
洪东保
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
cmeeting独立部署:
1. 删除与其他服务相关无用代码 2. 新增cimc服务配置
父级
c38ab7e6
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
34 个修改的文件
包含
57 行增加
和
1014 行删除
+57
-1014
src/main/java/com/cmeeting/GraphApiWithOkHttp.java
+0
-82
src/main/java/com/cmeeting/TencentMeetingCallbackController.java
+0
-0
src/main/java/com/cmeeting/WeComAndTencentMeeting.java
+0
-0
src/main/java/com/cmeeting/ad/config/CustomAuthenticationProvider.java
+0
-9
src/main/java/com/cmeeting/ad/config/CustomWhiteConfigProperties.java
+0
-23
src/main/java/com/cmeeting/ad/config/RobotWebSecurityConfig.java
+2
-15
src/main/java/com/cmeeting/ad/config/RobotWhiteConfigProperties.java
+0
-25
src/main/java/com/cmeeting/ad/entity/RelPlatformSettingTenant.java
+0
-44
src/main/java/com/cmeeting/ad/entity/RobotSecurityUser.java
+0
-1
src/main/java/com/cmeeting/ad/entity/RoleTree.java
+0
-28
src/main/java/com/cmeeting/ad/entity/SysMenu.java
+0
-151
src/main/java/com/cmeeting/ad/entity/SysPlatformSetting.java
+0
-109
src/main/java/com/cmeeting/ad/entity/SysTenant.java
+0
-116
src/main/java/com/cmeeting/ad/service/impl/DetailsServiceImpl.java
+8
-14
src/main/java/com/cmeeting/ad/service/impl/UserServiceImpl.java
+14
-9
src/main/java/com/cmeeting/aspect/OperLogAspect.java
+0
-1
src/main/java/com/cmeeting/constant/CimcConstants.java
+0
-25
src/main/java/com/cmeeting/constant/UserAdminRouteConstant.java
+0
-0
src/main/java/com/cmeeting/controller/OperationLogController.java
+0
-1
src/main/java/com/cmeeting/job/CmeetingJob.java
+6
-0
src/main/java/com/cmeeting/job/FileProcessTask.java
+3
-86
src/main/java/com/cmeeting/log/service/impl/ProcessLogServiceImpl.java
+1
-2
src/main/java/com/cmeeting/mapper/primary/AuthMapper.java
+6
-0
src/main/java/com/cmeeting/mapper/primary/ShareUserMapper.java
+0
-18
src/main/java/com/cmeeting/mapper/primary/TecentMeetingMapper.java
+0
-1
src/main/java/com/cmeeting/pojo/CoreModulePermissions.java
+9
-3
src/main/java/com/cmeeting/pojo/ShareUser.java
+0
-80
src/main/java/com/cmeeting/pojo/TencentMeetingRecord.java
+0
-26
src/main/java/com/cmeeting/pojo/User.java
+0
-34
src/main/java/com/cmeeting/pojo/UserCompany.java
+0
-41
src/main/java/com/cmeeting/service/FileProcessProducer.java
+0
-4
src/main/java/com/cmeeting/util/CimcUtil.java
+1
-5
src/main/java/com/cmeeting/util/UserAdminTokenUtil.java
+0
-57
src/main/resources/application.yml
+7
-4
没有找到文件。
src/main/java/com/cmeeting/GraphApiWithOkHttp.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
package
com
.
cmeeting
;
import
com.azure.core.credential.TokenRequestContext
;
import
com.azure.identity.ClientSecretCredential
;
import
com.azure.identity.ClientSecretCredentialBuilder
;
import
okhttp3.*
;
import
java.io.IOException
;
public
class
GraphApiWithOkHttp
{
static
String
CLIENT_ID
=
"d65aa91b-05f4-42b2-902f-4d82ea5a2b93"
;
static
String
TENANT_ID
=
"74cc8acf-aacc-4514-9bbb-dc27ce3096bb"
;
// or "common" for multi-tenant apps
static
String
CLIENT_SECRET
=
"~N98Q~83v6dViQFIofwr0fRn4J5VEZ2tvwOz.bPX"
;
private
static
final
String
USER_EMAIL
=
"biinizhai321@outlook.com"
;
// 发送邮件的用户
public
static
void
main
(
String
[]
args
)
throws
IOException
{
/**中集:
* c06fe7cf-2a89-4099-9805-ce03031938f8
* wsu8Q~GxYxPLf2akioQZDRG8NR1EzCAHIAQRVc6u
* 18653b3e-03c7-499e-8baf-42ef06a814ef
*/
ClientSecretCredential
credential
=
new
ClientSecretCredentialBuilder
()
.
clientId
(
CLIENT_ID
)
.
clientSecret
(
CLIENT_SECRET
)
.
tenantId
(
TENANT_ID
)
.
build
();
// 1. 获取 Access Token
String
token
=
credential
.
getToken
(
new
TokenRequestContext
()
.
addScopes
(
"https://graph.microsoft.com/.default"
))
.
block
().
getToken
();
System
.
out
.
println
(
"获取到的令牌: "
+
token
);
String
token1
=
"EwBYBMl6BAAUBKgm8k1UswUNwklmy2v7U/S+1fEAAUa0jd3QNQBdqTy9ZwEaLPqqapU5zHFRz4XvGqbI7jN7x01mEvBtCSFgYtNiSOEb5s1UwLxl6HwlHFqfJsqDsoCicvnlqCWjsaR/4wPZgXxd+pBhHRSPl+tJcSzz2NJB+dy81wHcSaU4bRxCIgoU7MtrW2ak9DhGisnK4/vxHkzxuIjHe9IDOZBzwzAtTZhycWRoAtuQrC1iu/kuKGJaU9noNjsOwfHUaXRz68g6niSdPT8P6zOa2vlOHjhXh478ms1PhqKeTkS+nkTurT2Gc5qRJviICiiAlK4BlxV70tOA6xEtl2ApXOrfFr+rlv4pASmPewtbdkTHnpP3H0R9L0kQZgAAEF4HO14XaFxPCdIqniVBvSkgA75wLsTuUZragTXGu71SV7ccLi26nZ+9KZlulf8dAlj/NEdheqtdEHb+BOLknQoXFEJ0UNj6PLkczzHfV3Yr5zlXJICwb3yI9vrFTUCb555ux/P904vXCY900UNgX81gBIYJQIJtOCURDAcHWtxyWvfNlkr17fKgnX5KdDyec6JK9tgzPi62LlqhDcoR/W/4MTCZhfJRlZgdYkI52pQSbDJItR6W7xfZguXPgKRHVcZJTzlybtOW0kbrfv96CKrryKzGeRjZyEcov1U3VjAoBUllgi3+LdIFK86aojMuBP+v5PvRq81qZS2q5roIRJD5zydu1selrpwhrZjm2nupDxHGjvfj2TVZJlz1zGYsVYrSRz2+st+2UbZagR1fbPRX2GilTfDyN05HV//LrfdrddbffMImxY2M8D9iQZFSjBYSFa20S9Vs9/yj08M9ljwiJifHGjX2o/arR63SWe3pbga26EC+j8JaBemhAhPsu91xW4o7+j/xEUadXR2NDbuogMq+MeINKe3PqAAFeTva1ZWZF5p3oGVIQKL4pcQFA9xEwopoN+vSeHDuAOvTFQ/4PukxicJdFTiaZquGeQMF0sLFvLdddpvS3Xaf17fPxjMUlMGcjYQ8gK5XG5wzjR8Up4MZZyX3xiK/hccGOp5pwi8WAN5cVmTKZOSXTkHUGEQT4rcGUYTPduHYMjjrVpzffpnmqfO92VA7a7fuYqXKp3NPikv17s6PTVr6b4+24AP8u3MEhDHU2YjaMuFR3jBUYLxtm443Gn58MC7oYrmQIVN2VYJrxADgStqpE+3nUCyKajmF0q5U+LUI1cCYnOKgmAkrpN71qlB9GeQLLQDJytG2sg64NG/h3CN1SseudSYtmqM3XUURSsztB9dNL7xmHQAcEBYMVjec5N5jHLhIs48rxAqI/WAJ/2RFKWgJIeCUJ8v4oQYEI9lAlWgReVhrjcNxRsbuVDFFwU7cTSeY9bJzxSX5kWJ8TXr/Q/SELEViUVCz10Cw/sOtm4urke538R4yXlR1wfMk3S86xlOfc3HJ6Iz7hi1h2fovWA9T1ceFWQM="
;
// 2. 使用 OkHttp 发送邮件
sendEmail
(
token
);
}
// 使用 Graph API 发送邮件
private
static
void
sendEmail
(
String
accessToken
)
throws
IOException
{
OkHttpClient
client
=
new
OkHttpClient
();
// 构建邮件内容 (JSON 格式)
String
emailJson
=
"{\n"
+
" \"message\": {\n"
+
" \"subject\": \"Test Email\",\n"
+
" \"body\": {\n"
+
" \"contentType\": \"Text\",\n"
+
" \"content\": \"This is a test email.\"\n"
+
" },\n"
+
" \"toRecipients\": [\n"
+
" {\n"
+
" \"emailAddress\": {\n"
+
" \"address\": \"binzhai321@outlook.com\"\n"
+
" }\n"
+
" }\n"
+
" ]\n"
+
" }\n"
+
"}"
;
// 构建请求
Request
request
=
new
Request
.
Builder
()
.
url
(
"https://graph.microsoft.com/v1.0/users/"
+
USER_EMAIL
+
"/sendMail"
)
.
post
(
RequestBody
.
create
(
MediaType
.
parse
(
"application/json"
),
emailJson
))
.
addHeader
(
"authorization"
,
"Bearer "
+
accessToken
)
.
addHeader
(
"Content-Type"
,
"application/json"
)
.
build
();
// 发送请求
try
(
Response
response
=
client
.
newCall
(
request
).
execute
())
{
if
(
response
.
isSuccessful
())
{
System
.
out
.
println
(
"Email sent successfully!"
);
}
else
{
System
.
err
.
println
(
"Failed to send email: "
+
response
.
code
()
+
" - "
+
response
.
message
());
System
.
err
.
println
(
response
.
body
().
string
());
// 打印错误详情
}
}
}
}
src/main/java/com/cmeeting/TencentMeetingCallbackController.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
差异被折叠。
点击展开。
src/main/java/com/cmeeting/WeComAndTencentMeeting.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
差异被折叠。
点击展开。
src/main/java/com/cmeeting/ad/config/CustomAuthenticationProvider.java
浏览文件 @
9c63e432
...
...
@@ -72,15 +72,6 @@ public class CustomAuthenticationProvider extends AbstractUserDetailsAuthenticat
"AbstractUserDetailsAuthenticationProvider.badCredentials"
,
"Bad credentials"
));
}
String
presentedPassword
=
authentication
.
getCredentials
().
toString
();
// 密码验证在login接口做过了
// if (!passwordEncoder.matches(presentedPassword, userDetails.getPassword())) {
// logger.debug("Authentication failed: password does not match stored value");
// throw new BadCredentialsException(messages.getMessage(
// "AbstractUserDetailsAuthenticationProvider.badCredentials",
// "Bad credentials"));
// }
}
protected
void
doAfterPropertiesSet
()
{
...
...
src/main/java/com/cmeeting/ad/config/CustomWhiteConfigProperties.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
package
com
.
cmeeting
.
ad
.
config
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author liuzhenmeng
* @date 2024/2/4 17:05
*/
@Data
@Component
@ConfigurationProperties
(
prefix
=
"robot.custom"
)
public
class
CustomWhiteConfigProperties
{
/**
* 接口白名单
*/
private
List
<
String
>
whiteTables
=
new
ArrayList
<>();
}
src/main/java/com/cmeeting/ad/config/RobotWebSecurityConfig.java
浏览文件 @
9c63e432
...
...
@@ -41,16 +41,8 @@ public class RobotWebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private
RobotJwtAuthenticationTokenFilter
robotJwtAuthenticationTokenFilter
;
@Autowired
private
CustomWhiteConfigProperties
customWhiteConfigProperties
;
@Autowired
private
CustomUserDetailsService
customUserDetailsService
;
@Autowired
private
RobotWhiteConfigProperties
configProperties
;
/**
* 解决 无法直接注入 AuthenticationManager
*
...
...
@@ -87,11 +79,6 @@ public class RobotWebSecurityConfig extends WebSecurityConfigurerAdapter {
*/
@Override
protected
void
configure
(
HttpSecurity
httpSecurity
)
throws
Exception
{
List
<
String
>
whiteTables
=
configProperties
.
getWhiteTables
();
String
[]
api
=
ArrayUtil
.
toArray
(
whiteTables
,
String
.
class
);
List
<
String
>
customWhiteTables
=
customWhiteConfigProperties
.
getWhiteTables
();
String
[]
customApi
=
ArrayUtil
.
toArray
(
customWhiteTables
,
String
.
class
);
httpSecurity
// 由于使用的是JWT,我们这里不需要csrf
.
csrf
().
disable
()
...
...
@@ -100,8 +87,8 @@ public class RobotWebSecurityConfig extends WebSecurityConfigurerAdapter {
// 过滤请求
.
authorizeRequests
()
// 对于登录login 图标 要允许匿名访问
.
antMatchers
(
customApi
).
access
(
"@robotJwtCustomTokenFilter.checkToken(request)"
)
.
antMatchers
(
api
).
anonymous
()
//
.antMatchers(customApi).access("@robotJwtCustomTokenFilter.checkToken(request)")
//
.antMatchers(api).anonymous()
.
antMatchers
(
HttpMethod
.
GET
,
"/*.html"
,
"/**/*.html"
,
"/**/*.css"
,
"/**/*.js"
,
"/**/*.map"
)
.
permitAll
()
...
...
src/main/java/com/cmeeting/ad/config/RobotWhiteConfigProperties.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
package
com
.
cmeeting
.
ad
.
config
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author 张伟
* @date 2021/2/2 17:47
*/
@Data
@Component
@ConfigurationProperties
(
prefix
=
"robot.white"
)
public
class
RobotWhiteConfigProperties
{
/**
* 接口白名单
*/
private
List
<
String
>
whiteTables
=
new
ArrayList
<>();
private
List
<
String
>
whiteSignUrls
=
new
ArrayList
<>();
}
src/main/java/com/cmeeting/ad/entity/RelPlatformSettingTenant.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
package
com
.
cmeeting
.
ad
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.*
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 租户平台设置关联表(RelPlatformSettingTenant)实体类
*
* @author makejava
* @since 2023-06-12 10:03:26
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
@TableName
(
"rel_platform_setting_tenant"
)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
RelPlatformSettingTenant
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
89908876679147553L
;
private
String
id
;
private
String
tenantId
;
/**
* 菜单id
*/
private
String
platformSettingId
;
private
Integer
isDel
;
private
Date
createTime
;
private
String
createUser
;
private
Date
updateTime
;
private
String
updateUser
;
}
src/main/java/com/cmeeting/ad/entity/RobotSecurityUser.java
浏览文件 @
9c63e432
...
...
@@ -48,7 +48,6 @@ public class RobotSecurityUser implements UserDetails {
@JsonIgnore
private
Collection
<?
extends
GrantedAuthority
>
authorities
;
private
SysPlatformSetting
sysPlatformSetting
;
private
String
nick
;
private
String
picture
;
...
...
src/main/java/com/cmeeting/ad/entity/RoleTree.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
package
com
.
cmeeting
.
ad
.
entity
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author: 王长伟
*/
@Getter
@Setter
public
class
RoleTree
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
List
<
String
>
tenantCenter
=
new
ArrayList
<>();
private
List
<
String
>
interactCenter
=
new
ArrayList
<>();
private
List
<
String
>
knowledgeCenter
=
new
ArrayList
<>();
private
List
<
String
>
llmCenter
=
new
ArrayList
<>();
private
List
<
String
>
statisticsCenter
=
new
ArrayList
<>();
private
List
<
String
>
securityCenter
=
new
ArrayList
<>();
private
List
<
String
>
robotCenter
=
new
ArrayList
<>();
private
List
<
String
>
staffCenter
=
new
ArrayList
<>();
private
List
<
String
>
processCenter
=
new
ArrayList
<>();
}
src/main/java/com/cmeeting/ad/entity/SysMenu.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
package
com
.
cmeeting
.
ad
.
entity
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
/**
* <p>
* 菜单权限表
* </p>
*
* @author robot
* @since 2019-04-21
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
@TableName
(
"sys_menu"
)
public
class
SysMenu
extends
Model
<
SysMenu
>
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 菜单ID
*/
@TableId
(
value
=
"id"
,
type
=
IdType
.
ASSIGN_ID
)
private
Integer
id
;
/**
* 菜单名称
*/
private
String
name
;
/**
* 菜单权限标识
*/
private
String
perms
;
/**
* 前端path / 即跳转路由
*/
private
String
path
;
/**
* 菜单组件
*/
private
String
component
;
/**
* 父菜单ID
*/
private
Integer
parentId
;
/**
* 图标
*/
private
String
icon
;
/**
* 是否为外链
*/
private
Boolean
isAdmin
;
/**
* 排序
*/
private
Integer
sort
;
/**
* 菜单类型 (类型 1:目录 2:菜单 3:按钮)
*/
private
Integer
type
;
/**
* 所属大功能模块
*/
private
String
parentSystem
;
/**
* 在租户菜单是否展示 新增
*/
private
Integer
isShow
;
/**
* 创建时间
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
Date
createTime
;
/**
* 更新时间
*/
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
private
Date
updateTime
;
@TableField
(
fill
=
FieldFill
.
INSERT
)
@TableLogic
private
Integer
isDel
;
/**
* 非数据库字段
* 父菜单名称
*/
@TableField
(
exist
=
false
)
private
String
parentName
;
/**
* 非数据库字段
* 菜单等级
*/
@TableField
(
exist
=
false
)
private
Integer
level
;
/**
* 非数据库字段
* 子菜单
*/
@TableField
(
exist
=
false
)
private
List
<
SysMenu
>
children
;
@TableField
(
exist
=
false
)
private
String
parentPath
;
@TableField
(
exist
=
false
)
private
String
key
;
@TableField
(
exist
=
false
)
private
String
title
;
public
String
getTitle
()
{
return
name
;
}
@Override
public
boolean
equals
(
Object
o
)
{
return
Objects
.
hash
(
id
)
==
o
.
hashCode
();
}
@Override
public
int
hashCode
()
{
return
Objects
.
hash
(
id
);
}
}
src/main/java/com/cmeeting/ad/entity/SysPlatformSetting.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
package
com
.
cmeeting
.
ad
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.*
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 平台设置表(SysPlatformSetting)实体类
*
* @author makejava
* @since 2023-06-12 11:43:45
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
@TableName
(
"sys_platform_setting"
)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
SysPlatformSetting
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
86441288874834748L
;
/**
* 主键id
*/
private
String
id
;
/**
* 是否使用机器人 0:false 1:true, 默认为1
*/
private
Integer
robot
;
/**
* 是否使用数字人 0:false 1:true, 默认为1
*/
private
Integer
digitalPerson
;
/**
* 是否使用客服系统 0:false 1:true ,默认为1
*/
private
Integer
moduleKefu
;
/**
* 是否使用大语言模型 0:false 1:true ,默认为1
*/
private
Integer
largeLanguage
;
/**
* 是否使用工单系统 0:false 1:true , 默认为1
*/
private
Integer
moduleTicket
;
/**
* 是否使用问答知识点 0:false 1:true, 默认为1
*/
private
Integer
qaKnowledge
;
/**
* 是否使用知识导图 0:false 1:true, 默认为1
*/
private
Integer
atlasKnowledge
;
/**
* 是否使用多轮对话 0:false 1:true ,默认为1
*/
private
Integer
dialogKnowledge
;
/**
* 是否使用文档知识点 0:false 1:true , 默认为1
*/
private
Integer
docKnowledge
;
/**
* logo登录标签地址
*/
private
String
loginLogoUrl
;
/**
* logo首页标签地址
*/
private
String
indexLogoUrl
;
/**
* 背景图片地址
*/
private
String
backgroundUrl
;
/**
* 推广图片地址
*/
private
String
advertiseUrl
;
/**
* 底部信息
*/
private
String
bottomInfo
;
/**
* 创建时间;创建时间
*/
private
Date
createTime
;
/**
* 更新时间;更新时间
*/
private
Date
updateTime
;
/**
* 创建人;创建人id
*/
private
String
createUser
;
/**
* 更新人;更新人id
*/
private
String
updateUser
;
/**
* 删除标识;0正常,1删除,默认为0
*/
private
Integer
isDel
;
private
Integer
isAdmin
;
private
String
agreement
;
}
src/main/java/com/cmeeting/ad/entity/SysTenant.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
package
com
.
cmeeting
.
ad
.
entity
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* <p>
* 租户表
* </p>
*
* @author robot
* @since 2019-08-10
*/
@Getter
@Setter
public
class
SysTenant
implements
Serializable
{
/**
* 租户id
*/
@TableId
(
value
=
"id"
,
type
=
IdType
.
ASSIGN_ID
)
private
String
id
;
private
String
kefuId
;
/**
* 租户名称
*/
private
String
name
;
/**
* 删除标记
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
@TableLogic
private
Boolean
isDel
;
/**
* 创建时间
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
Date
createTime
;
/**
* 更新时间
*/
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
private
Date
updateTime
;
/**
* 创建时间
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
String
createUser
;
/**
* 更新时间
*/
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
private
String
updateUser
;
/**
* 有效期
*/
private
String
validity
;
/**
* 0纯网页 11企业微信第三方应用 12企业微信自建 21钉钉第三方应用 22钉钉自建 3 teams
*/
// private Integer tenantType;
/**
* 启用状态(0: 启用, 1: 禁用)
*/
private
String
status
;
/**
* 备注
*/
private
String
remarks
;
/**
* 机器人数量
*/
private
Integer
robotNums
;
/**
* 知识点数量上限
*/
private
Integer
qaNums
;
private
Integer
atlasNums
;
private
Integer
dialogNums
;
private
Integer
docNums
;
private
Integer
formNums
;
private
Integer
userNums
;
private
Integer
regulatorsNums
;
/**
* 知创建租户的系统用户名称
*/
private
String
userName
;
/**
* 语言
*/
private
String
language
;
@TableField
(
exist
=
false
)
private
Boolean
expired
;
}
src/main/java/com/cmeeting/ad/service/impl/DetailsServiceImpl.java
浏览文件 @
9c63e432
package
com
.
cmeeting
.
ad
.
service
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.cmeeting.ad.entity.RobotSecurityUser
;
import
com.cmeeting.ad.entity.SysUserSync
;
import
com.cmeeting.ad.service.CustomUserDetailsService
;
import
com.cmeeting.constant.UserAdminRouteConstant
;
import
com.cmeeting.constant.UserTypeConstant
;
import
com.cmeeting.util.HttpClientUtils
;
import
com.cmeeting.util.UserAdminConfig
;
import
com.cmeeting.util.UserAdminTokenUtil
;
import
com.cmeeting.service.SysUserSyncService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.security.core.userdetails.UserDetails
;
import
org.springframework.security.core.userdetails.UsernameNotFoundException
;
...
...
@@ -24,7 +21,7 @@ import javax.annotation.Resource;
@Service
public
class
DetailsServiceImpl
implements
CustomUserDetailsService
{
@Resource
private
UserAdminConfig
userAdminConfig
;
private
SysUserSyncService
sysUserSyncService
;
/**
* @return 用户基本信息
...
...
@@ -34,14 +31,11 @@ public class DetailsServiceImpl implements CustomUserDetailsService {
public
UserDetails
loadUser
(
String
uid
,
String
tenantId
,
String
role
)
{
RobotSecurityUser
user
=
new
RobotSecurityUser
();
user
.
setUserType
(
UserTypeConstant
.
SYNC
);
String
url
=
userAdminConfig
.
getUserAdminDomain
()
+
UserAdminRouteConstant
.
SyncUser
.
INFO
+
"?id="
+
uid
+
"&tenantId="
+
tenantId
;
JSONObject
jsonObject
=
HttpClientUtils
.
httpGet
(
url
,
UserAdminTokenUtil
.
getUserAdminToken
());
JSONObject
data
=
jsonObject
.
getJSONObject
(
"data"
);
user
.
setId
(
data
.
getString
(
"userId"
));
user
.
setUserId
(
Long
.
valueOf
(
data
.
getString
(
"userId"
)));
user
.
setUsername
(
data
.
getString
(
"name"
));
user
.
setNick
(
data
.
getString
(
"nickName"
));
user
.
setTenantId
(
data
.
getString
(
"tenantId"
));
SysUserSync
one
=
sysUserSyncService
.
getById
(
uid
);
user
.
setId
(
one
.
getUserId
());
user
.
setUserId
(
Long
.
valueOf
(
one
.
getUserId
()));
user
.
setUsername
(
one
.
getName
());
user
.
setNick
(
one
.
getName
());
user
.
setRole
(
role
);
return
user
;
}
...
...
src/main/java/com/cmeeting/ad/service/impl/UserServiceImpl.java
浏览文件 @
9c63e432
...
...
@@ -3,20 +3,19 @@ package com.cmeeting.ad.service.impl;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.cmeeting.ad.entity.*
;
import
com.cmeeting.ad.util.SecurityUtil
;
import
com.cmeeting.ad.entity.RobotSecurityUser
;
import
com.cmeeting.ad.entity.SysUserSync
;
import
com.cmeeting.ad.service.ILdapService
;
import
com.cmeeting.ad.service.UserService
;
import
com.cmeeting.ad.util.JwtUtil
;
import
com.cmeeting.ad.vo.ApplicationUserVO
;
import
com.cmeeting.ad.vo.UserVo
;
import
com.cmeeting.constant.RecordTemplateConstant
;
import
com.cmeeting.exception.RobotBaseException
;
import
com.cmeeting.mapper.primary.AuthMapper
;
import
com.cmeeting.ad.service.ILdapService
;
import
com.cmeeting.ad.service.UserService
;
import
com.cmeeting.ad.util.JwtUtil
;
import
com.cmeeting.constant.UserAdminRouteConstant
;
import
com.cmeeting.mapper.primary.SysUserSyncMapper
;
import
com.cmeeting.pojo.CoreModulePermissions
;
import
com.cmeeting.util.*
;
import
com.cmeeting.ad.vo.ApplicationUserVO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Value
;
...
...
@@ -28,8 +27,14 @@ import org.springframework.stereotype.Service;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.time.*
;
import
java.util.*
;
import
java.time.Duration
;
import
java.time.Instant
;
import
java.time.ZoneId
;
import
java.time.ZonedDateTime
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Service
...
...
src/main/java/com/cmeeting/aspect/OperLogAspect.java
浏览文件 @
9c63e432
...
...
@@ -10,7 +10,6 @@ import lombok.extern.slf4j.Slf4j;
import
org.aspectj.lang.JoinPoint
;
import
org.aspectj.lang.annotation.After
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Before
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
...
...
src/main/java/com/cmeeting/constant/CimcConstants.java
浏览文件 @
9c63e432
...
...
@@ -11,40 +11,15 @@ public interface CimcConstants {
String
GET_TEST_POSITION
=
"https://apipoc1.cimc.com/env-101/por-101/hrapi/hrms/cimc_org_position_wbs_standard.service?p_user=USER&p_password=PASSWORD&apikey=API_KEY&p_page_num=PAGE_NUM"
;
//获取员工标准信息
String
GET_TEST_EMPLOYEE
=
"https://apipoc1.cimc.com/env-101/por-101/hrapi/hrms/cimc_lbr_employee_wbs_standard.service?p_user=USER&p_password=PASSWORD&apikey=API_KEY&p_include_dismission=1&p_page_num=PAGE_NUM"
;
//获取IWORK获取访问token
String
GET_TEST_TOKEN
=
"https://apipoc1.cimc.com/env-101/por-101/hrapi/iWorkapi/v1/token?apikey=API_KEY"
;
String
TEST_IWORK_LOGIN
=
"https://apipoc1.cimc.com/env-101/por-101/hrapi/iWorkapi/ticket/TICKET?access_token=TOKEN&apikey=API_KEY"
;
//2. API地址(集团本地节点-生产)
String
GET_ORGANIZATION
=
"https://cchqapi.cimc.com/por-11/hrapi/hrms/cimc_org_unit_wbs_standard.service?p_user=USER&p_password=PASSWORD&apikey=API_KEY&p_page_num=PAGE_NUM"
;
String
GET_POSITION
=
"https://cchqapi.cimc.com/por-11/hrapi/hrms/cimc_org_position_wbs_standard.service?p_user=USER&p_password=PASSWORD&apikey=API_KEY&p_page_num=PAGE_NUM"
;
String
GET_EMPLOYEE
=
"https://cchqapi.cimc.com/por-11/hrapi/hrms/cimc_lbr_employee_wbs_standard.service?p_user=USER&p_password=PASSWORD&apikey=API_KEY&p_page_num=PAGE_NUM"
;
String
GET_TOKEN
=
"https://cchqapi.cimc.com/por-11/hrapi/iWorkapi/v1/token?apikey=API_KEY"
;
String
IWORK_LOGIN
=
"https://cchqapi.cimc.com/por-11/hrapi/iWorkapi/ticket/TICKET?access_token=TOKEN&apikey=API_KEY"
;
//3. API地址(AWS节点-生产)
String
GET_AWS_ORGANIZATION
=
"https://awsapi.cimc.cn/env-101/por-10/hrapi/hrms/cimc_org_unit_wbs_standard.service?p_user=USER&p_password=PASSWORD&apikey=API_KEY&p_page_num=PAGE_NUM"
;
String
GET_AWS_POSITION
=
"https://awsapi.cimc.cn/env-101/por-10/hrapi/hrms/cimc_org_position_wbs_standard.service?p_user=USER&p_password=PASSWORD&apikey=API_KEY&p_page_num=PAGE_NUM"
;
String
GET_AWS_EMPLOYEE
=
"https://awsapi.cimc.cn/env-101/por-10/hrapi/hrms/cimc_lbr_employee_wbs_standard.service?p_user=USER&p_password=PASSWORD&apikey=API_KEY&p_page_num=PAGE_NUM"
;
String
GET_AWS_TOKEN
=
"https://awsapi.cimc.cn/env-101/por-10/hrapi/iWorkapi/v1/token?apikey=API_KEY"
;
String
AWS_IWORK_LOGIN
=
"https://awsapi.cimc.cn/env-101/por-10/hrapi/iWorkapi/ticket/TICKET?access_token=TOKEN&apikey=API_KEY"
;
//门户登录
String
POST_TEST_LOGIN
=
"https://apipoc1.cimc.com/env-101/por-101/cimcoatest/test/APIUserService"
;
//参数 apikey systemid token
String
POST_LOGIN
=
"https://awsapi.cimc.cn/env-101/por-10/cimcoaprd/oa_prd/APIUserService"
;
String
BPM_POST_FORM_TEST
=
"https://apipoc1.cimc.com/env-101/por-101/ekp/bpm/addReview"
;
String
BPM_POST_FORM_PROD
=
"https://awsapi.cimc.cn/env-101/por-10/ekp/bpm/addReview"
;
String
ALTER_USER
=
"USER"
;
String
ALTER_PASSWORD
=
"PASSWORD"
;
String
ALTER_API_KEY
=
"API_KEY"
;
String
ALTER_DISMISSION
=
"DISMISSION"
;
String
ALTER_PAGE_NUM
=
"PAGE_NUM"
;
String
ALTER_TOKEN
=
"TOKEN"
;
String
ALTER_TICKET
=
"TICKET"
;
String
EMPTY
=
""
;
}
src/main/java/com/cmeeting/constant/UserAdminRouteConstant.java
浏览文件 @
9c63e432
差异被折叠。
点击展开。
src/main/java/com/cmeeting/controller/OperationLogController.java
浏览文件 @
9c63e432
...
...
@@ -9,7 +9,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.Date
;
...
...
src/main/java/com/cmeeting/job/CmeetingJob.java
浏览文件 @
9c63e432
...
...
@@ -358,7 +358,13 @@ public class CmeetingJob {
*/
@Scheduled
(
cron
=
"0 0 6 * * ? "
)
public
void
pullAllDate
()
{
if
(
isDev
)
{
return
;
}
log
.
info
(
"同步用户开始"
);
long
l
=
System
.
currentTimeMillis
();
cimcService
.
pullCimcData
();
log
.
info
(
"同步用户结束,耗时: {}ms"
,
System
.
currentTimeMillis
()
-
l
);
}
...
...
src/main/java/com/cmeeting/job/FileProcessTask.java
浏览文件 @
9c63e432
...
...
@@ -4,15 +4,12 @@ import cn.chatbot.meeting.LLMConfig;
import
cn.chatbot.meeting.LLMResult
;
import
cn.chatbot.meeting.MeetingProcess
;
import
cn.chatbot.openai.completion.chat.ChatCompletionRequest
;
import
cn.chatbot.openai.completion.chat.ChatMessage
;
import
cn.chatbot.openai.completion.chat.ChatMessageRole
;
import
cn.chatbot.openai.completion.chat.Message
;
import
cn.chatbot.openai.service.LLMService
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.io.FileUtil
;
import
cn.hutool.core.util.IdUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
...
...
@@ -20,9 +17,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.cmeeting.constant.KnowledgePlatformRouteConstant
;
import
com.cmeeting.constant.MeetingState
;
import
com.cmeeting.constant.RecordTemplateConstant
;
import
com.cmeeting.dto.DocResultDto
;
import
com.cmeeting.dto.MeetTypeDto
;
import
com.cmeeting.dto.UserDTO
;
import
com.cmeeting.email.EmailSender
;
import
com.cmeeting.exception.RobotBaseException
;
...
...
@@ -41,14 +36,8 @@ import com.deepoove.poi.XWPFTemplate;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.dataformat.xml.XmlMapper
;
import
com.tencentcloudapi.wemeet.Client
;
import
com.tencentcloudapi.wemeet.core.authenticator.AuthenticatorBuilder
;
import
com.tencentcloudapi.wemeet.core.authenticator.JWTAuthenticator
;
import
com.tencentcloudapi.wemeet.service.meetings.api.MeetingsApi
;
import
com.tencentcloudapi.wemeet.service.meetings.model.*
;
import
com.tencentcloudapi.wemeet.service.records.api.RecordsApi
;
import
com.tencentcloudapi.wemeet.service.records.model.V1AddressesRecordFileIdGet200Response
;
import
com.tencentcloudapi.wemeet.service.records.model.V1AddressesRecordFileIdGet200ResponseAiMeetingTranscriptsInner
;
import
com.tencentcloudapi.wemeet.service.meetings.model.V1MeetingsMeetingIdParticipantsGet200Response
;
import
com.tencentcloudapi.wemeet.service.meetings.model.V1MeetingsMeetingIdParticipantsGet200ResponseParticipantsInner
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -64,10 +53,8 @@ import org.springframework.util.CollectionUtils;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.*
;
import
java.math.BigInteger
;
import
java.nio.charset.Charset
;
import
java.nio.charset.StandardCharsets
;
import
java.security.SecureRandom
;
import
java.text.MessageFormat
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
...
...
@@ -321,42 +308,6 @@ public class FileProcessTask {
log
.
info
(
"线程结束, 耗时: {} ms"
,
System
.
currentTimeMillis
()
-
l
);
}
private
byte
[]
downloadFile
(
String
url
)
{
// 实现文件下载逻辑
OkHttpClient
client
=
new
OkHttpClient
();
Request
request
=
new
Request
.
Builder
().
url
(
url
).
build
();
try
{
Response
response
=
client
.
newCall
(
request
).
execute
();
if
(!
response
.
isSuccessful
())
throw
new
IOException
(
"Unexpected code "
+
response
);
return
response
.
body
().
bytes
();
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
"下载文件失败"
,
e
);
}
}
private
String
getRecordTextContent
(
byte
[]
fileData
)
{
// 定义文件路径和文件名
String
fullPath
=
savePath
+
(
System
.
currentTimeMillis
()
/
1000L
)
+
".docx"
;
// 将字节内容写入本地文件
try
(
FileOutputStream
fos
=
new
FileOutputStream
(
fullPath
))
{
fos
.
write
(
fileData
);
log
.
info
(
"DOCX transcript saved to: {}"
,
fullPath
);
}
catch
(
IOException
e
)
{
log
.
error
(
"Error saving DOCX transcript to file: {}"
,
e
.
getMessage
(),
e
);
}
XWPFDocument
document
;
try
{
FileInputStream
fis
=
new
FileInputStream
(
fullPath
);
document
=
new
XWPFDocument
(
fis
);
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
.
getMessage
());
}
XWPFWordExtractor
extractor
=
new
XWPFWordExtractor
(
document
);
String
textContent
=
extractor
.
getText
();
log
.
info
(
"DOCX content as string:\n{}"
,
textContent
);
return
textContent
;
}
/**
* 提供会议转录文件和会议主题,判断会议类型
*
...
...
@@ -426,10 +377,6 @@ public class FileProcessTask {
return
type
;
}
private
String
formatMessage
(
String
pattern
,
Object
...
args
)
{
return
MessageFormat
.
format
(
pattern
,
args
);
}
/**
* 大模型生成纪要xml
*
...
...
@@ -621,35 +568,6 @@ public class FileProcessTask {
);
}
private
String
convertXmlToJSON
(
String
xml
)
{
String
json
;
try
{
XmlMapper
xmlMapper
=
new
XmlMapper
();
JsonNode
rootNode
=
xmlMapper
.
readTree
(
xml
.
getBytes
());
// 正确获取节点和属性的方式
List
<
Map
>
list
=
new
ArrayList
<>();
Iterator
<
String
>
iterator
=
rootNode
.
fieldNames
();
while
(
iterator
.
hasNext
())
{
String
tagName
=
iterator
.
next
();
JsonNode
subNode
=
rootNode
.
path
(
tagName
);
String
displayName
=
subNode
.
path
(
"label"
).
asText
();
String
content
=
subNode
.
path
(
""
).
asText
();
list
.
add
(
new
HashMap
()
{{
put
(
"key"
,
tagName
+
"/"
+
displayName
);
put
(
"value"
,
content
);
}});
}
// 构建JSON对象
ObjectMapper
jsonMapper
=
new
ObjectMapper
();
json
=
jsonMapper
.
writeValueAsString
(
list
);
}
catch
(
IOException
e
)
{
log
.
error
(
e
.
getMessage
());
throw
new
RuntimeException
(
e
.
getMessage
());
}
return
json
;
}
private
String
call_llm
(
String
apiAddr
,
String
model
,
String
token
,
List
<
Message
>
messages
,
int
maxTokens
)
{
LLMService
service
=
new
LLMService
(
token
,
apiAddr
);
StringBuilder
stringBuilder
=
new
StringBuilder
();
...
...
@@ -736,7 +654,7 @@ public class FileProcessTask {
MeetingInfoMapper
meetingInfoMapper
,
MinioUtils
minioUtils
,
RedisUtils
redisUtils
,
EmailSender
emailSender
,
MeetingRecordTemplateMapper
meetingRecordTemplateMapper
,
MeetingRecordTemplateService
meetingRecordTemplateService
,
MeetTypeService
meetTypeService
,
UserIdMapper
userIdMapper
,
String
llmApiAddr
,
Boolean
finalRetry
,
ProcessLogService
processLogService
,
List
<
UserDTO
.
TemplateAuthorizedUserDTO
>
authorizedUsers
,
Map
<
String
,
String
>
tidWidRelations
,
UserAdminConfig
userAdminConfig
,
String
a
dminToken
,
String
a
pplicationId
,
String
fileDownloadPath
,
String
permTenantId
,
UserAdminConfig
userAdminConfig
,
String
applicationId
,
String
fileDownloadPath
,
String
permTenantId
,
String
aesKey
)
{
this
.
recordFileIdList
=
recordFileIdList
;
this
.
savePath
=
savePath
;
...
...
@@ -757,7 +675,6 @@ public class FileProcessTask {
this
.
authorizedUsers
=
authorizedUsers
;
this
.
tidWidRelations
=
tidWidRelations
;
this
.
userAdminConfig
=
userAdminConfig
;
this
.
adminToken
=
adminToken
;
this
.
applicationId
=
applicationId
;
this
.
fileDownloadPath
=
fileDownloadPath
;
this
.
permTenantId
=
permTenantId
;
...
...
src/main/java/com/cmeeting/log/service/impl/ProcessLogServiceImpl.java
浏览文件 @
9c63e432
...
...
@@ -15,7 +15,6 @@ public class ProcessLogServiceImpl extends ServiceImpl<ProcessLogMapper, Process
@Override
public
boolean
log
(
String
meetingId
,
String
subMeetingId
,
String
message
)
{
ProcessLog
processLog
=
ProcessLog
.
builder
().
meetingId
(
meetingId
).
subMeetingId
(
subMeetingId
).
message
(
message
).
operateTime
(
LocalDateTime
.
now
()).
build
();
boolean
save
=
save
(
processLog
);
return
save
;
return
save
(
processLog
);
}
}
src/main/java/com/cmeeting/mapper/primary/AuthMapper.java
浏览文件 @
9c63e432
...
...
@@ -9,5 +9,11 @@ import java.util.List;
@Mapper
public
interface
AuthMapper
{
/**
* 智能体权限查询
* @param targetId
* @param tenantId
* @return
*/
List
<
CoreModulePermissions
>
getAuthByTargetId
(
@Param
(
"targetId"
)
String
targetId
,
@Param
(
"tenantId"
)
String
tenantId
);
}
src/main/java/com/cmeeting/mapper/primary/ShareUserMapper.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
//package com.cmeeting.mapper.secondary;
//
//import com.baomidou.mybatisplus.core.mapper.BaseMapper;
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import com.cmeeting.pojo.ShareUser;
//import org.apache.ibatis.annotations.Param;
//
//import java.util.List;
//
///**
// * (ShareUser)表数据库访问层
// *
// * @author makejava
// * @since 2025-01-16 14:50:16
// */
//public interface ShareUserMapper extends BaseMapper<ShareUser> {
//
//}
src/main/java/com/cmeeting/mapper/primary/TecentMeetingMapper.java
浏览文件 @
9c63e432
...
...
@@ -2,7 +2,6 @@ package com.cmeeting.mapper.primary;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.cmeeting.pojo.TencentMeetingUser
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
...
...
src/main/java/com/cmeeting/pojo/CoreModulePermissions.java
浏览文件 @
9c63e432
package
com
.
cmeeting
.
pojo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
lombok.*
;
import
lombok.experimental.Accessors
;
import
java.util.Date
;
...
...
@@ -14,6 +15,11 @@ import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
@TableName
(
"core_module_permissions"
)
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
CoreModulePermissions
{
/**
* 主键ID
...
...
src/main/java/com/cmeeting/pojo/ShareUser.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
package
com
.
cmeeting
.
pojo
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.*
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* (ShareUser)实体类
*
* @author makejava
* @since 2025-01-16 14:50:14
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
@TableName
(
"share_user"
)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
ShareUser
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
15064516326494187L
;
/**
* 单个用户id或者分类id
*/
private
String
relId
;
/**
* 0 分类 1用户
*/
private
Integer
type
;
/**
* 主键ID
*/
@TableId
(
value
=
"id"
,
type
=
IdType
.
ASSIGN_ID
)
private
String
id
;
/**
* 0-正常,1-删除
*/
@TableLogic
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
boolean
isDel
;
/**
* 用户创建人
*/
private
String
createUser
;
/**
* 更新者
*/
private
String
updateUser
;
/**
* 修改时间
*/
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
updateTime
;
/**
* 创建时间
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
/**
* 租户id
*/
private
String
tenantId
;
}
src/main/java/com/cmeeting/pojo/TencentMeetingRecord.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
package
com
.
cmeeting
.
pojo
;
import
lombok.Data
;
@Data
public
class
TencentMeetingRecord
{
/**
* 主键ID
*/
private
Integer
id
;
/**
* 会议id
*/
private
String
meetingId
;
/**
* 用户ID
*/
private
String
userId
;
/**
* 是否是重名用户(1:重名, 0:不重名)
*/
private
String
isrepeatName
;
}
src/main/java/com/cmeeting/pojo/User.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
// pojo/User.java
package
com
.
cmeeting
.
pojo
;
import
lombok.Data
;
@Data
public
class
User
{
private
Long
id
;
private
String
username
;
private
String
password
;
private
String
salt
;
// 其他字段...
public
User
()
{
}
public
User
(
Long
id
,
String
username
,
String
password
,
String
salt
)
{
this
.
id
=
id
;
this
.
username
=
username
;
this
.
password
=
password
;
this
.
salt
=
salt
;
}
@Override
public
String
toString
()
{
return
"User{"
+
"id="
+
id
+
", username='"
+
username
+
'\''
+
", password='"
+
password
+
'\''
+
", salt='"
+
salt
+
'\''
+
'}'
;
}
}
\ No newline at end of file
src/main/java/com/cmeeting/pojo/UserCompany.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
package
com
.
cmeeting
.
pojo
;
import
lombok.Data
;
@Data
public
class
UserCompany
{
private
Integer
id
;
// 对应表中的 `id`
private
String
userName
;
// 对应表中的 `user_name`
private
String
phone
;
// 对应表中的 `phone`
private
String
email
;
// 对应表中的 `emaill`(注意拼写修正为 email)
private
String
address
;
// 对应表中的 `address`
private
String
userId
;
// 对应表中的 `user_id`
// 无参构造方法
public
UserCompany
()
{
}
// 全参构造方法
public
UserCompany
(
Integer
id
,
String
userName
,
String
phone
,
String
email
,
String
address
,
String
userId
)
{
this
.
id
=
id
;
this
.
userName
=
userName
;
this
.
phone
=
phone
;
this
.
email
=
email
;
this
.
address
=
address
;
this
.
userId
=
userId
;
}
@Override
public
String
toString
()
{
return
"UserCompany{"
+
"id="
+
id
+
", userName='"
+
userName
+
'\''
+
", phone='"
+
phone
+
'\''
+
", email='"
+
email
+
'\''
+
", address='"
+
address
+
'\''
+
", userId='"
+
userId
+
'\''
+
'}'
;
}
}
\ No newline at end of file
src/main/java/com/cmeeting/service/FileProcessProducer.java
浏览文件 @
9c63e432
...
...
@@ -8,11 +8,9 @@ import com.cmeeting.log.service.ProcessLogService;
import
com.cmeeting.mapper.primary.MeetingInfoMapper
;
import
com.cmeeting.mapper.primary.MeetingRecordTemplateMapper
;
import
com.cmeeting.mapper.primary.UserIdMapper
;
import
com.cmeeting.pojo.UserId
;
import
com.cmeeting.util.MinioUtils
;
import
com.cmeeting.util.RedisUtils
;
import
com.cmeeting.util.UserAdminConfig
;
import
com.cmeeting.util.UserAdminTokenUtil
;
import
com.cmeeting.vo.TencentMeetingVO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -83,7 +81,6 @@ public class FileProcessProducer {
*/
public
void
submitBatchTasks
(
List
<
TencentMeetingVO
.
RecordFile
>
recordFiles
,
List
<
UserDTO
.
TemplateAuthorizedUserDTO
>
authorizedUsers
,
Map
<
String
,
String
>
tidWidRelations
,
Boolean
finalRetry
)
{
List
<
Future
<?>>
futures
=
new
ArrayList
<>();
String
adminToken
=
UserAdminTokenUtil
.
getUserAdminToken
();
log
.
info
(
"待处理会议数量: {}"
,
recordFiles
.
size
());
for
(
TencentMeetingVO
.
RecordFile
recordFile
:
recordFiles
)
{
// 为每个URL创建任务
...
...
@@ -107,7 +104,6 @@ public class FileProcessProducer {
authorizedUsers
,
tidWidRelations
,
userAdminConfig
,
adminToken
,
applicationId
,
fileDownloadPath
,
permTenantId
,
...
...
src/main/java/com/cmeeting/util/CimcUtil.java
浏览文件 @
9c63e432
...
...
@@ -21,17 +21,13 @@ import java.util.List;
@Slf4j
@Component
public
class
CimcUtil
implements
CimcConstants
{
@Value
(
"${cimc.loginApiKey-test}"
)
public
String
loginApiKey
=
"faBqIHbXOtDIbguxJ7F55QhL04jIRekJ"
;
//生产 Jj8UONm74FRxOSMnlIN95pVVUJf5Nn2D 测试 faBqIHbXOtDIbguxJ7F55QhL04jIRekJ
@Value
(
"${cimc.loginApiKey-prod}"
)
public
String
prodLoginApiKey
=
"Jj8UONm74FRxOSMnlIN95pVVUJf5Nn2D"
;
//生产 Jj8UONm74FRxOSMnlIN95pVVUJf5Nn2D 测试 faBqIHbXOtDIbguxJ7F55QhL04jIRekJ
@Value
(
"${cimc.username}"
)
public
String
username
;
@Value
(
"${cimc.password}"
)
public
String
password
;
@Value
(
"${cimc.apiKey}"
)
public
String
apiKey
;
//同步apiKey
public
String
apiKey
;
@Value
(
"${cimc.userinfo-environment}"
)
public
String
userInfoEnvironment
;
...
...
src/main/java/com/cmeeting/util/UserAdminTokenUtil.java
deleted
100644 → 0
浏览文件 @
c38ab7e6
package
com
.
cmeeting
.
util
;
import
com.alibaba.fastjson.JSONObject
;
import
com.cmeeting.constant.UserAdminRouteConstant
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.PostConstruct
;
import
javax.annotation.Resource
;
/**
* @author a
*/
@Component
public
class
UserAdminTokenUtil
{
@Resource
private
RedisUtils
redisUtils
;
@Resource
private
UserAdminConfig
userAdminConfig
;
@Value
(
"${userAdmin.appId}"
)
private
String
appId
;
@Value
(
"${userAdmin.secret}"
)
private
String
secret
;
private
String
getAccessToken
()
{
String
key
=
"user_admin_token_"
+
appId
;
Object
o
=
redisUtils
.
get
(
key
);
if
(
o
!=
null
)
{
return
o
.
toString
();
}
String
url
=
userAdminConfig
.
getUserAdminDomain
()
+
UserAdminRouteConstant
.
ACCESS_TOKEN
;
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"appId"
,
appId
);
body
.
put
(
"secret"
,
secret
);
JSONObject
object
=
HttpClientUtils
.
httpPost
(
url
,
body
,
null
);
if
(
object
!=
null
&&
object
.
getInteger
(
"code"
)
==
0
)
{
String
data
=
object
.
getString
(
"data"
);
redisUtils
.
set
(
key
,
data
,
7000
);
return
data
;
}
else
{
throw
new
RuntimeException
(
"获取accessToken失败"
);
}
}
private
static
UserAdminTokenUtil
util
;
@PostConstruct
public
void
init
()
{
util
=
this
;
}
public
static
String
getUserAdminToken
()
{
return
util
.
getAccessToken
();
}
}
src/main/resources/application.yml
浏览文件 @
9c63e432
...
...
@@ -146,12 +146,8 @@ userAdmin:
jwt
:
header
:
Authorization
customHeader
:
'
Custom-Auth-Token'
applicationId
:
'
Application-Id'
tokenHead
:
'
Bearer
'
openingUp-header
:
'
aigc-open-auth-token'
expireTime
:
36000
customExpireTime
:
36000
# 5天
permission
:
applicationId
:
${PERMISSION_APPLiCATION_ID}
...
...
@@ -178,3 +174,10 @@ statistics:
toEmails
:
-
user
:
洪
email
:
hongdongbao@chatbot.cn
# 同步组织架构信息用 HR账号密码
cimc
:
username
:
cimc_AIGC
password
:
4A6BEB75A7017F4BC4D381C2CBB0E6FB
apiKey
:
Jj8UONm74FRxOSMnlIN95pVVUJf5Nn2D
userinfo-environment
:
test
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论