Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
L
leader-base
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
张京坤
leader-base
Commits
4439987b
提交
4439987b
authored
1月 15, 2025
作者:
yanxin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
导入逻辑修改,增加mybatis拦截器
上级
8a4e7209
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
148 行增加
和
12 行删除
+148
-12
MybatisInterceptor.java
...n/java/com/zzsn/leaderbase/config/MybatisInterceptor.java
+130
-0
CharacterBasicInfoController.java
...n/leaderbase/controller/CharacterBasicInfoController.java
+4
-3
CharacterBasicInfoService.java
...om/zzsn/leaderbase/service/CharacterBasicInfoService.java
+1
-1
CharacterBasicInfoServiceImpl.java
...eaderbase/service/impl/CharacterBasicInfoServiceImpl.java
+2
-1
AuthUtil.java
src/main/java/com/zzsn/leaderbase/util/AuthUtil.java
+11
-7
没有找到文件。
src/main/java/com/zzsn/leaderbase/config/MybatisInterceptor.java
0 → 100644
浏览文件 @
4439987b
package
com
.
zzsn
.
leaderbase
.
config
;
import
com.zzsn.leaderbase.util.AuthUtil
;
import
com.zzsn.leaderbase.util.LoginUser
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.ibatis.binding.MapperMethod.ParamMap
;
import
org.apache.ibatis.executor.Executor
;
import
org.apache.ibatis.mapping.MappedStatement
;
import
org.apache.ibatis.mapping.SqlCommandType
;
import
org.apache.ibatis.plugin.*
;
import
org.springframework.stereotype.Component
;
import
java.lang.reflect.Field
;
import
java.util.*
;
/**
* mybatis拦截器,自动注入创建人、创建时间、修改人、修改时间
*
* @Author scott
* @Date 2019-01-19
*/
@Slf4j
@Component
@Intercepts
({
@Signature
(
type
=
Executor
.
class
,
method
=
"update"
,
args
=
{
MappedStatement
.
class
,
Object
.
class
})})
public
class
MybatisInterceptor
implements
Interceptor
{
@Override
public
Object
intercept
(
Invocation
invocation
)
throws
Throwable
{
MappedStatement
mappedStatement
=
(
MappedStatement
)
invocation
.
getArgs
()[
0
];
String
sqlId
=
mappedStatement
.
getId
();
log
.
debug
(
"------sqlId------"
+
sqlId
);
SqlCommandType
sqlCommandType
=
mappedStatement
.
getSqlCommandType
();
Object
parameter
=
invocation
.
getArgs
()[
1
];
log
.
debug
(
"------sqlCommandType------"
+
sqlCommandType
);
if
(
parameter
==
null
)
{
return
invocation
.
proceed
();
}
if
(
SqlCommandType
.
INSERT
==
sqlCommandType
)
{
LoginUser
sysUser
=
this
.
getLoginUser
();
Field
[]
fields
=
getAllFields
(
parameter
);
for
(
Field
field
:
fields
)
{
log
.
debug
(
"------field.name------"
+
field
.
getName
());
try
{
if
(
"createBy"
.
equals
(
field
.
getName
()))
{
field
.
setAccessible
(
true
);
Object
localCreateBy
=
field
.
get
(
parameter
);
if
(
localCreateBy
==
null
||
localCreateBy
.
equals
(
""
)
&&
(
sysUser
!=
null
))
{
// 登录人账号
field
.
set
(
parameter
,
sysUser
.
getUsername
());
}
field
.
setAccessible
(
false
);
}
// 注入创建时间
if
(
"createTime"
.
equals
(
field
.
getName
()))
{
field
.
setAccessible
(
true
);
Object
localCreateDate
=
field
.
get
(
parameter
);
if
(
localCreateDate
==
null
||
localCreateDate
.
equals
(
""
))
{
field
.
set
(
parameter
,
new
Date
());
}
field
.
setAccessible
(
false
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
if
(
SqlCommandType
.
UPDATE
==
sqlCommandType
)
{
LoginUser
sysUser
=
this
.
getLoginUser
();
Field
[]
fields
;
if
(
parameter
instanceof
ParamMap
)
{
ParamMap
<?>
p
=
(
ParamMap
<?>)
parameter
;
if
(
p
.
containsKey
(
"et"
))
{
parameter
=
p
.
get
(
"et"
);
}
else
{
parameter
=
p
.
get
(
"param1"
);
}
if
(
parameter
==
null
)
{
return
invocation
.
proceed
();
}
fields
=
getAllFields
(
parameter
);
}
else
{
fields
=
getAllFields
(
parameter
);
}
for
(
Field
field
:
fields
)
{
log
.
debug
(
"------field.name------"
+
field
.
getName
());
try
{
if
(
"updateBy"
.
equals
(
field
.
getName
())
&&
(
sysUser
!=
null
))
{
field
.
setAccessible
(
true
);
field
.
set
(
parameter
,
sysUser
.
getUsername
());
field
.
setAccessible
(
false
);
}
if
(
"updateTime"
.
equals
(
field
.
getName
()))
{
field
.
setAccessible
(
true
);
field
.
set
(
parameter
,
new
Date
());
field
.
setAccessible
(
false
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
return
invocation
.
proceed
();
}
@Override
public
Object
plugin
(
Object
target
)
{
return
Plugin
.
wrap
(
target
,
this
);
}
@Override
public
void
setProperties
(
Properties
properties
)
{
}
private
LoginUser
getLoginUser
()
{
return
AuthUtil
.
getLoginUser
();
}
private
Field
[]
getAllFields
(
Object
object
)
{
Class
<?>
clazz
=
object
.
getClass
();
List
<
Field
>
fieldList
=
new
ArrayList
<>();
while
(
clazz
!=
null
)
{
fieldList
.
addAll
(
new
ArrayList
<>(
Arrays
.
asList
(
clazz
.
getDeclaredFields
())));
clazz
=
clazz
.
getSuperclass
();
}
Field
[]
fields
=
new
Field
[
fieldList
.
size
()];
fieldList
.
toArray
(
fields
);
return
fields
;
}
}
src/main/java/com/zzsn/leaderbase/controller/CharacterBasicInfoController.java
浏览文件 @
4439987b
...
...
@@ -197,7 +197,7 @@ public class CharacterBasicInfoController {
@GetMapping
(
"/importExcel"
)
public
void
importExcel
(
String
[]
args
)
{
//本地文件路径
String
filePath
=
"E:\\数能软件\\克虏宝\\人物服务\\专家导入数据2025
-01-08
.xlsx"
;
String
filePath
=
"E:\\数能软件\\克虏宝\\人物服务\\专家导入数据2025
0115
.xlsx"
;
addSummaryLocalExcel
(
filePath
,
"2"
);
}
...
...
@@ -253,7 +253,7 @@ public class CharacterBasicInfoController {
//需要更新的数据列表
List
<
CharacterBasicInfo
>
updateList
=
new
ArrayList
<>();
for
(
CharacterBasicInfo
basicInfo
:
list
)
{
if
(
basicInfo
==
null
||
StringUtils
.
isEmpty
(
basicInfo
.
getName
())
||
StringUtils
.
isEmpty
(
basicInfo
.
getDepartment
())){
if
(
basicInfo
==
null
||
StringUtils
.
isEmpty
(
basicInfo
.
getName
())
||
StringUtils
.
isEmpty
(
basicInfo
.
getDepartment
())
||
StringUtils
.
isEmpty
(
basicInfo
.
getTypeId
())
){
log
.
info
(
"数据为空,跳过"
);
continue
;
}
...
...
@@ -272,7 +272,7 @@ public class CharacterBasicInfoController {
if
(
StringUtils
.
isNotEmpty
(
basicInfo
.
getUid
())){
oldBasicInfo
=
characterBasicInfoService
.
getBasicInfoByUid
(
basicInfo
.
getUid
());
}
else
{
oldBasicInfo
=
characterBasicInfoService
.
getByNameAndByDepartment
(
category
,
basicInfo
.
getName
(),
basicInfo
.
getDepartment
());
oldBasicInfo
=
characterBasicInfoService
.
getByNameAndByDepartment
(
category
,
basicInfo
.
get
TagId
(),
basicInfo
.
get
Name
(),
basicInfo
.
getDepartment
());
}
if
(
oldBasicInfo
!=
null
){
//合并两个对象
...
...
@@ -355,6 +355,7 @@ public class CharacterBasicInfoController {
importFieldMap
.
put
(
"专业技术职称"
,
"technicalTitles"
);
importFieldMap
.
put
(
"专业技术职称取得时间"
,
"technicalDate"
);
importFieldMap
.
put
(
"参加工作时间"
,
"workDate"
);
importFieldMap
.
put
(
"分类"
,
"typeId"
);
}
}
src/main/java/com/zzsn/leaderbase/service/CharacterBasicInfoService.java
浏览文件 @
4439987b
...
...
@@ -58,5 +58,5 @@ public interface CharacterBasicInfoService extends IService<CharacterBasicInfo>
CharacterBasicInfo
getBasicInfoByUid
(
String
uid
);
CharacterBasicInfo
getByNameAndByDepartment
(
String
category
,
String
name
,
String
department
);
CharacterBasicInfo
getByNameAndByDepartment
(
String
category
,
String
typeId
,
String
name
,
String
department
);
}
src/main/java/com/zzsn/leaderbase/service/impl/CharacterBasicInfoServiceImpl.java
浏览文件 @
4439987b
...
...
@@ -258,8 +258,9 @@ public class CharacterBasicInfoServiceImpl extends ServiceImpl<CharacterBasicInf
}
@Override
public
CharacterBasicInfo
getByNameAndByDepartment
(
String
category
,
String
name
,
String
department
)
{
public
CharacterBasicInfo
getByNameAndByDepartment
(
String
category
,
String
typeId
,
String
name
,
String
department
)
{
LambdaQueryWrapper
<
CharacterBasicInfo
>
queryWrapper
=
Wrappers
.
lambdaQuery
();
queryWrapper
.
eq
(
CharacterBasicInfo:
:
getTypeId
,
typeId
);
queryWrapper
.
eq
(
CharacterBasicInfo:
:
getCategory
,
category
);
queryWrapper
.
eq
(
CharacterBasicInfo:
:
getName
,
name
);
queryWrapper
.
eq
(
CharacterBasicInfo:
:
getDepartment
,
department
);
...
...
src/main/java/com/zzsn/leaderbase/util/AuthUtil.java
浏览文件 @
4439987b
package
com
.
zzsn
.
leaderbase
.
util
;
import
cn.hutool.core.net.URLDecoder
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson
2
.JSON
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.servlet.http.HttpServletRequest
;
import
java.nio.charset.StandardCharsets
;
import
java.text.SimpleDateFormat
;
/**
* @Description:
并发调用限制工具
* @Description:
获取用户登录信息
* @Author: jeecg-boot
* @Date: 2024-01-04
* @Version: V1.0
*/
@Slf4j
@Data
public
class
AuthUtil
{
public
final
static
String
LOGIN_USER_HEADER
=
"loginUser"
;
static
SimpleDateFormat
format
;
public
static
LoginUser
getLoginUser
()
{
LoginUser
userVo
=
null
;
try
{
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
String
userInfo
=
URLDecoder
.
decode
(
request
.
getHeader
(
LOGIN_USER_HEADER
),
StandardCharsets
.
UTF_8
);
return
JSON
.
parseObject
(
userInfo
,
LoginUser
.
class
);
userVo
=
JSON
.
parseObject
(
userInfo
,
LoginUser
.
class
);
}
catch
(
Exception
e
){
return
null
;
log
.
debug
(
"用户未登录"
);
}
if
(
userVo
==
null
){
userVo
=
new
LoginUser
();
}
return
userVo
;
}
/**
* 检查是否可以访问
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论