Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-api-boot
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-api-boot
Commits
421f6bdd
提交
421f6bdd
authored
3月 03, 2023
作者:
方治民
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 加入 JpaAuditing 操作人员记录
上级
b1a92522
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
69 行增加
和
14 行删除
+69
-14
Application.java
app/src/main/java/com/yiring/app/Application.java
+2
-0
InjectAuditorAware.java
.../main/java/com/yiring/auth/config/InjectAuditorAware.java
+39
-0
BasicEntity.java
...e/src/main/java/com/yiring/common/domain/BasicEntity.java
+28
-14
没有找到文件。
app/src/main/java/com/yiring/app/Application.java
浏览文件 @
421f6bdd
...
@@ -5,12 +5,14 @@ import org.springframework.boot.SpringApplication;
...
@@ -5,12 +5,14 @@ import org.springframework.boot.SpringApplication;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.domain.EntityScan
;
import
org.springframework.boot.autoconfigure.domain.EntityScan
;
import
org.springframework.data.jpa.convert.threeten.Jsr310JpaConverters
;
import
org.springframework.data.jpa.convert.threeten.Jsr310JpaConverters
;
import
org.springframework.data.jpa.repository.config.EnableJpaAuditing
;
import
org.springframework.data.jpa.repository.config.EnableJpaRepositories
;
import
org.springframework.data.jpa.repository.config.EnableJpaRepositories
;
@EntityScan
(
@EntityScan
(
basePackageClasses
=
{
Application
.
class
,
Jsr310JpaConverters
.
class
},
basePackageClasses
=
{
Application
.
class
,
Jsr310JpaConverters
.
class
},
basePackages
=
Application
.
BASE_PACKAGES
basePackages
=
Application
.
BASE_PACKAGES
)
)
@EnableJpaAuditing
@EnableJpaRepositories
(
basePackages
=
Application
.
BASE_PACKAGES
)
@EnableJpaRepositories
(
basePackages
=
Application
.
BASE_PACKAGES
)
@SpringBootApplication
(
scanBasePackages
=
Application
.
BASE_PACKAGES
)
@SpringBootApplication
(
scanBasePackages
=
Application
.
BASE_PACKAGES
)
public
class
Application
{
public
class
Application
{
...
...
basic-auth/src/main/java/com/yiring/auth/config/InjectAuditorAware.java
0 → 100644
浏览文件 @
421f6bdd
/* (C) 2023 YiRing, Inc. */
package
com
.
yiring
.
auth
.
config
;
import
cn.dev33.satoken.stp.StpUtil
;
import
com.yiring.auth.domain.user.User
;
import
com.yiring.auth.domain.user.UserRepository
;
import
java.util.Optional
;
import
lombok.NonNull
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Configurable
;
import
org.springframework.data.domain.AuditorAware
;
import
org.springframework.stereotype.Component
;
/**
* @author Jim
* @version 0.1
* 2023/3/3 11:43
*/
@Component
@Configurable
@RequiredArgsConstructor
public
class
InjectAuditorAware
implements
AuditorAware
<
String
>
{
final
UserRepository
userRepository
;
@Override
public
@NonNull
Optional
<
String
>
getCurrentAuditor
()
{
String
loginId
=
StpUtil
.
getLoginIdAsString
();
if
(
loginId
!=
null
)
{
Optional
<
User
>
optional
=
userRepository
.
findById
(
loginId
);
if
(
optional
.
isPresent
())
{
return
Optional
.
of
(
optional
.
get
().
getId
());
}
}
return
Optional
.
empty
();
}
}
basic-common/core/src/main/java/com/yiring/common/domain/BasicEntity.java
浏览文件 @
421f6bdd
...
@@ -2,16 +2,20 @@
...
@@ -2,16 +2,20 @@
package
com
.
yiring
.
common
.
domain
;
package
com
.
yiring
.
common
.
domain
;
import
com.yiring.common.snowflake.SnowflakeId
;
import
com.yiring.common.snowflake.SnowflakeId
;
import
jakarta.persistence.*
;
import
jakarta.persistence.EntityListeners
;
import
jakarta.persistence.GeneratedValue
;
import
jakarta.persistence.Id
;
import
jakarta.persistence.MappedSuperclass
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
lombok.*
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldNameConstants
;
import
lombok.experimental.FieldNameConstants
;
import
lombok.experimental.SuperBuilder
;
import
lombok.experimental.SuperBuilder
;
import
org.hibernate.annotations.Comment
;
import
org.hibernate.annotations.*
;
import
org.hibernate.annotations.CreationTimestamp
;
import
org.springframework.data.annotation.CreatedBy
;
import
org.hibernate.annotations.GenericGenerator
;
import
org.springframework.data.annotation.CreatedDate
;
import
org.hibernate.annotations.UpdateTimestamp
;
import
org.springframework.data.annotation.LastModifiedBy
;
import
org.springframework.data.annotation.LastModifiedDate
;
import
org.springframework.data.jpa.domain.support.AuditingEntityListener
;
import
org.springframework.data.jpa.domain.support.AuditingEntityListener
;
/**
/**
...
@@ -27,11 +31,13 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
...
@@ -27,11 +31,13 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
@ToString
@ToString
@NoArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@AllArgsConstructor
@SuperBuilder
(
toBuilder
=
true
)
@FieldNameConstants
@FieldNameConstants
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@
SuperBuilder
(
toBuilder
=
true
)
@
FilterDef
(
name
=
"deletedFilter"
,
parameters
=
@ParamDef
(
name
=
"isDeleted"
,
type
=
Boolean
.
class
)
)
@
MappedSuperclass
@
Filter
(
name
=
"deletedFilter"
,
condition
=
"deleted = :isDeleted"
)
@EntityListeners
(
AuditingEntityListener
.
class
)
@EntityListeners
(
AuditingEntityListener
.
class
)
@MappedSuperclass
public
abstract
class
BasicEntity
{
public
abstract
class
BasicEntity
{
@Comment
(
"主键"
)
@Comment
(
"主键"
)
...
@@ -40,22 +46,30 @@ public abstract class BasicEntity {
...
@@ -40,22 +46,30 @@ public abstract class BasicEntity {
@GenericGenerator
(
name
=
SnowflakeId
.
GENERATOR
,
strategy
=
SnowflakeId
.
Strategy
.
STRING
)
@GenericGenerator
(
name
=
SnowflakeId
.
GENERATOR
,
strategy
=
SnowflakeId
.
Strategy
.
STRING
)
String
id
;
String
id
;
@Comment
(
"创建人"
)
@CreatedBy
String
createBy
;
@Comment
(
"创建时间"
)
@Comment
(
"创建时间"
)
@Column
(
nullable
=
false
)
@CreatedDate
@CreationTimestamp
LocalDateTime
createTime
;
LocalDateTime
createTime
;
@Comment
(
"修改人"
)
@LastModifiedBy
String
updateBy
;
@Comment
(
"最后修改时间"
)
@Comment
(
"最后修改时间"
)
@Column
(
nullable
=
false
)
@LastModifiedDate
@UpdateTimestamp
LocalDateTime
updateTime
;
LocalDateTime
updateTime
;
@Comment
(
"删除时间"
)
@Comment
(
"删除时间"
)
LocalDateTime
deleteTime
;
Boolean
deleted
=
Boolean
.
FALSE
;
public
interface
Where
{
public
interface
Where
{
String
EXIST
=
" delete_time is null "
;
String
EXIST
=
" deleted = false "
;
String
DELETE_SET
=
" set deleted = true "
;
String
DELETE_SET
=
" set delete_time = now()
where id = ? "
;
String
WHERE_ID
=
"
where id = ? "
;
}
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论