Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
elleai
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ai-tech
E
ellehuis-group
backend
elleai
Commits
678e2873
Commit
678e2873
authored
Oct 16, 2024
by
陈立彬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
权限&时间统一格式化
parent
271b2097
Changes
77
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
77 changed files
with
546 additions
and
497 deletions
+546
-497
pom.xml
pom.xml
+15
-3
ElleaiApplication.java
src/main/java/cn/breeze/elleai/ElleaiApplication.java
+2
-1
ExamineQaSaveDto.java
...eeze/elleai/application/dto/request/ExamineQaSaveDto.java
+1
-1
ExamineRecordRequestDto.java
...leai/application/dto/request/ExamineRecordRequestDto.java
+9
-0
ExamineSaveDto.java
...breeze/elleai/application/dto/request/ExamineSaveDto.java
+3
-3
ExamineSceneCategorySaveDto.java
.../application/dto/request/ExamineSceneCategorySaveDto.java
+1
-1
ExamineSceneSaveDto.java
...e/elleai/application/dto/request/ExamineSceneSaveDto.java
+1
-1
ExamineUpdateResultDto.java
...lleai/application/dto/request/ExamineUpdateResultDto.java
+1
-1
ProperNounSaveDto.java
...eze/elleai/application/dto/request/ProperNounSaveDto.java
+1
-1
WikiCategorySaveDto.java
...e/elleai/application/dto/request/WikiCategorySaveDto.java
+1
-1
ExamineDetailRecordMobileDto.java
...pplication/dto/response/ExamineDetailRecordMobileDto.java
+3
-3
ExamineDto.java
...cn/breeze/elleai/application/dto/response/ExamineDto.java
+1
-1
ExamineQaDifyDto.java
...eze/elleai/application/dto/response/ExamineQaDifyDto.java
+1
-1
ExamineQaDto.java
.../breeze/elleai/application/dto/response/ExamineQaDto.java
+3
-3
ExamineRecordDto.java
...eze/elleai/application/dto/response/ExamineRecordDto.java
+96
-0
ExamineRecordMobileDto.java
...leai/application/dto/response/ExamineRecordMobileDto.java
+6
-3
ExamineSceneCategoryDto.java
...eai/application/dto/response/ExamineSceneCategoryDto.java
+3
-3
ExamineSceneDto.java
...eeze/elleai/application/dto/response/ExamineSceneDto.java
+3
-3
HotQaMobileDto.java
...reeze/elleai/application/dto/response/HotQaMobileDto.java
+1
-1
ProperNounDto.java
...breeze/elleai/application/dto/response/ProperNounDto.java
+3
-3
QaAssistantDto.java
...reeze/elleai/application/dto/response/QaAssistantDto.java
+3
-3
UserChatCompletionDto.java
...lleai/application/dto/response/UserChatCompletionDto.java
+3
-3
UserChatCompletionHistoryDto.java
...pplication/dto/response/UserChatCompletionHistoryDto.java
+2
-2
WikiCategoryDto.java
...eeze/elleai/application/dto/response/WikiCategoryDto.java
+3
-3
WikiDto.java
...va/cn/breeze/elleai/application/dto/response/WikiDto.java
+3
-3
AppExamineService.java
.../breeze/elleai/application/service/AppExamineService.java
+37
-10
GlobalExceptionHandler.java
.../java/cn/breeze/elleai/config/GlobalExceptionHandler.java
+9
-15
GlobalWebWebConfigurer.java
.../java/cn/breeze/elleai/config/GlobalWebWebConfigurer.java
+3
-0
UserPrincipalHandlerMethodArgumentResolver.java
...ai/config/UserPrincipalHandlerMethodArgumentResolver.java
+12
-11
ChatCompletionMobileController.java
...eze/elleai/controller/ChatCompletionMobileController.java
+3
-0
ExamineController.java
...n/java/cn/breeze/elleai/controller/ExamineController.java
+17
-3
ExamineRecordRequestModel.java
...ain/sparring/model/request/ExamineRecordRequestModel.java
+5
-0
ExamineSaveModel.java
...lleai/domain/sparring/model/request/ExamineSaveModel.java
+3
-3
ExamineSceneCategorySaveModel.java
...sparring/model/request/ExamineSceneCategorySaveModel.java
+3
-3
ExamineSceneSaveModel.java
.../domain/sparring/model/request/ExamineSceneSaveModel.java
+3
-3
ProperNounSaveModel.java
...ai/domain/sparring/model/request/ProperNounSaveModel.java
+3
-3
QaAssistantSaveModel.java
...i/domain/sparring/model/request/QaAssistantSaveModel.java
+3
-3
WikiCategorySaveModel.java
.../domain/sparring/model/request/WikiCategorySaveModel.java
+1
-1
WikiSaveModel.java
...e/elleai/domain/sparring/model/request/WikiSaveModel.java
+1
-1
ExamineDetailRecordResponseModel.java
...ring/model/response/ExamineDetailRecordResponseModel.java
+3
-3
ExamineQaResponseModel.java
...omain/sparring/model/response/ExamineQaResponseModel.java
+3
-3
ExamineQaXrefResponseModel.java
...n/sparring/model/response/ExamineQaXrefResponseModel.java
+3
-3
ExamineRecordResponseModel.java
...n/sparring/model/response/ExamineRecordResponseModel.java
+3
-3
ExamineResponseModel.java
.../domain/sparring/model/response/ExamineResponseModel.java
+5
-5
ExamineSceneCategoryResponseModel.java
...ing/model/response/ExamineSceneCategoryResponseModel.java
+3
-3
ExamineSceneResponseModel.java
...in/sparring/model/response/ExamineSceneResponseModel.java
+3
-3
ProperNounResponseModel.java
...main/sparring/model/response/ProperNounResponseModel.java
+3
-3
QaAssistantResponseModel.java
...ain/sparring/model/response/QaAssistantResponseModel.java
+3
-3
UserChatCompletionHistoryResponseModel.java
...odel/response/UserChatCompletionHistoryResponseModel.java
+2
-2
UserChatCompletionResponseModel.java
...rring/model/response/UserChatCompletionResponseModel.java
+3
-3
WikiCategoryResponseModel.java
...in/sparring/model/response/WikiCategoryResponseModel.java
+3
-3
WikiResponseModel.java
...eai/domain/sparring/model/response/WikiResponseModel.java
+3
-3
ChatCompletionServiceImpl.java
...ai/domain/sparring/service/ChatCompletionServiceImpl.java
+6
-6
CommonServiceImpl.java
...eze/elleai/domain/sparring/service/CommonServiceImpl.java
+4
-4
ExamineServiceImpl.java
...ze/elleai/domain/sparring/service/ExamineServiceImpl.java
+28
-22
InternalException.java
...in/java/cn/breeze/elleai/exception/InternalException.java
+39
-0
ExamineEntity.java
...ain/java/cn/breeze/elleai/infra/entity/ExamineEntity.java
+5
-5
ExamineQaEntity.java
...n/java/cn/breeze/elleai/infra/entity/ExamineQaEntity.java
+3
-3
ExamineQaXrefEntity.java
...va/cn/breeze/elleai/infra/entity/ExamineQaXrefEntity.java
+3
-3
ExamineSceneCategoryEntity.java
...reeze/elleai/infra/entity/ExamineSceneCategoryEntity.java
+3
-3
ExamineSceneEntity.java
...ava/cn/breeze/elleai/infra/entity/ExamineSceneEntity.java
+3
-3
ProperNounEntity.java
.../java/cn/breeze/elleai/infra/entity/ProperNounEntity.java
+3
-3
QaAssistantEntity.java
...java/cn/breeze/elleai/infra/entity/QaAssistantEntity.java
+3
-3
UserChatCompletionEntity.java
.../breeze/elleai/infra/entity/UserChatCompletionEntity.java
+3
-3
UserChatCompletionHistoryEntity.java
.../elleai/infra/entity/UserChatCompletionHistoryEntity.java
+2
-2
UserExamineDetailRecordEntity.java
...ze/elleai/infra/entity/UserExamineDetailRecordEntity.java
+3
-3
UserExamineRecordEntity.java
...n/breeze/elleai/infra/entity/UserExamineRecordEntity.java
+3
-3
WikiCategoryEntity.java
...ava/cn/breeze/elleai/infra/entity/WikiCategoryEntity.java
+3
-3
WikiEntity.java
src/main/java/cn/breeze/elleai/infra/entity/WikiEntity.java
+3
-3
JwtInterceptor.java
src/main/java/cn/breeze/elleai/security/JwtInterceptor.java
+35
-0
SecurityConfig.java
src/main/java/cn/breeze/elleai/security/SecurityConfig.java
+18
-0
Codes.java
src/main/java/cn/breeze/elleai/util/Codes.java
+1
-17
JwtProperties.java
src/main/java/cn/breeze/elleai/util/JwtProperties.java
+0
-32
JwtUtil.java
src/main/java/cn/breeze/elleai/util/JwtUtil.java
+54
-88
JwtUtils.java
src/main/java/cn/breeze/elleai/util/JwtUtils.java
+0
-57
LoginFilter.java
src/main/java/cn/breeze/elleai/util/LoginFilter.java
+0
-84
UserPrincipal.java
src/main/java/cn/breeze/elleai/util/UserPrincipal.java
+9
-3
No files found.
pom.xml
View file @
678e2873
...
...
@@ -5,7 +5,7 @@
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
3.
3.3
</version>
<version>
3.
0.10
</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>
cn.breeze
</groupId>
...
...
@@ -114,6 +114,11 @@
<version>
3.0.0
</version>
</dependency>
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-databind
</artifactId>
</dependency>
<!-- jwt支持 -->
<dependency>
<groupId>
com.auth0
</groupId>
...
...
@@ -121,9 +126,16 @@
<version>
3.4.0
</version>
</dependency>
<!--security-->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-security
</artifactId>
</dependency>
<!-- JWT 支持 -->
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-security</artifactId>-->
<!-- <groupId>io.jsonwebtoken</groupId>-->
<!-- <artifactId>jjwt</artifactId>-->
<!-- <version>0.9.1</version>-->
<!-- </dependency>-->
</dependencies>
...
...
src/main/java/cn/breeze/elleai/ElleaiApplication.java
View file @
678e2873
...
...
@@ -3,8 +3,9 @@ package cn.breeze.elleai;
import
com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration
;
@SpringBootApplication
@SpringBootApplication
(
exclude
=
{
SecurityAutoConfiguration
.
class
})
@EnableKnife4j
public
class
ElleaiApplication
{
...
...
src/main/java/cn/breeze/elleai/application/dto/request/ExamineQaSaveDto.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ExamineQaSaveDto
implements
Serializable
{
...
...
src/main/java/cn/breeze/elleai/application/dto/request/ExamineRecordRequestDto.java
View file @
678e2873
...
...
@@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
@Data
public
class
ExamineRecordRequestDto
implements
Serializable
{
...
...
@@ -28,4 +29,12 @@ public class ExamineRecordRequestDto implements Serializable {
@Schema
(
description
=
"对练模式(0练习 1对练)"
)
@JsonProperty
(
"examine_mode"
)
private
Integer
examineMode
;
@Schema
(
description
=
"开始时间"
)
@JsonProperty
(
"start_time"
)
private
Date
startTime
;
@Schema
(
description
=
"结束时间"
)
@JsonProperty
(
"end_time"
)
private
Date
endTime
;
}
src/main/java/cn/breeze/elleai/application/dto/request/ExamineSaveDto.java
View file @
678e2873
...
...
@@ -8,7 +8,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.util.List
;
@Data
...
...
@@ -55,7 +55,7 @@ public class ExamineSaveDto implements Serializable {
@Schema
(
description
=
"开始时间"
)
@JsonProperty
(
"start_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
startTime
;
private
Dat
e
startTime
;
/**
* 结束时间
...
...
@@ -63,7 +63,7 @@ public class ExamineSaveDto implements Serializable {
@Schema
(
description
=
"结束时间"
)
@JsonProperty
(
"end_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
endTime
;
private
Dat
e
endTime
;
/**
* 状态(0禁用 1启用)
...
...
src/main/java/cn/breeze/elleai/application/dto/request/ExamineSceneCategorySaveDto.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ExamineSceneCategorySaveDto
implements
Serializable
{
...
...
src/main/java/cn/breeze/elleai/application/dto/request/ExamineSceneSaveDto.java
View file @
678e2873
...
...
@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ExamineSceneSaveDto
implements
Serializable
{
...
...
src/main/java/cn/breeze/elleai/application/dto/request/ExamineUpdateResultDto.java
View file @
678e2873
...
...
@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.util.List
;
@Data
...
...
src/main/java/cn/breeze/elleai/application/dto/request/ProperNounSaveDto.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ProperNounSaveDto
implements
Serializable
{
...
...
src/main/java/cn/breeze/elleai/application/dto/request/WikiCategorySaveDto.java
View file @
678e2873
...
...
@@ -6,7 +6,7 @@ import com.mybatisflex.annotation.KeyType;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
WikiCategorySaveDto
implements
Serializable
{
...
...
src/main/java/cn/breeze/elleai/application/dto/response/ExamineDetailRecordMobileDto.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ExamineDetailRecordMobileDto
implements
Serializable
{
...
...
@@ -63,12 +63,12 @@ public class ExamineDetailRecordMobileDto implements Serializable {
*/
@Schema
(
description
=
"创建时间"
)
@JsonProperty
(
"create_time"
)
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
@Schema
(
description
=
"更新时间"
)
@JsonProperty
(
"update_time"
)
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/application/dto/response/ExamineDto.java
View file @
678e2873
...
...
@@ -7,7 +7,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.util.List
;
@Data
...
...
src/main/java/cn/breeze/elleai/application/dto/response/ExamineQaDifyDto.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ExamineQaDifyDto
implements
Serializable
{
...
...
src/main/java/cn/breeze/elleai/application/dto/response/ExamineQaDto.java
View file @
678e2873
...
...
@@ -8,7 +8,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ExamineQaDto
implements
Serializable
{
...
...
@@ -55,7 +55,7 @@ public class ExamineQaDto implements Serializable {
@Schema
(
description
=
"创建时间"
)
@JsonProperty
(
"create_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
...
...
@@ -63,5 +63,5 @@ public class ExamineQaDto implements Serializable {
@Schema
(
description
=
"更新时间"
)
@JsonProperty
(
"update_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/application/dto/response/ExamineRecordDto.java
0 → 100644
View file @
678e2873
package
cn
.
breeze
.
elleai
.
application
.
dto
.
response
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
@Data
public
class
ExamineRecordDto
implements
Serializable
{
@Schema
(
description
=
"对练记录ID"
)
private
Integer
id
;
/**
* 用户ID
*/
@Schema
(
description
=
"用户ID"
)
@JsonProperty
(
"user_id"
)
private
String
userId
;
/**
* 会话ID
*/
@Schema
(
description
=
"会话ID"
)
@JsonProperty
(
"session_id"
)
private
String
sessionId
;
/**
* 对练ID
*/
@Schema
(
description
=
"对练ID"
)
@JsonProperty
(
"examine_id"
)
private
Integer
examineId
;
@Schema
(
description
=
"对练名称"
)
@JsonProperty
(
"examine_name"
)
private
String
examineName
;
@Schema
(
description
=
"对练描述"
)
@JsonProperty
(
"examine_description"
)
private
String
examineDescription
;
/**
* 对练模式(0练习 1对练)
*/
@Schema
(
description
=
"对练模式(0练习 1对练)"
)
@JsonProperty
(
"examine_mode"
)
private
Integer
examineMode
;
/**
* 已答题数量
*/
@Schema
(
description
=
"已答题数量"
)
@JsonProperty
(
"answered_num"
)
private
Integer
answeredNum
;
/**
* 综合评分
*/
@Schema
(
description
=
"综合评分"
)
@JsonProperty
(
"overall_score"
)
private
Float
overallScore
;
/**
* 综合评价
*/
@Schema
(
description
=
"综合评价"
)
@JsonProperty
(
"overall_evaluation"
)
private
String
overallEvaluation
;
/**
* 创建时间
*/
@Schema
(
description
=
"创建时间"
)
@JsonProperty
(
"create_time"
)
private
Date
createTime
;
/**
* 更新时间
*/
@Schema
(
description
=
"更新时间"
)
@JsonProperty
(
"update_time"
)
private
Date
updateTime
;
/**
* 答题明细
*/
@Schema
(
description
=
"答题明细列表"
)
@JsonProperty
(
"details"
)
private
List
<
ExamineDetailRecordMobileDto
>
details
;
}
src/main/java/cn/breeze/elleai/application/dto/response/ExamineRecordMobileDto.java
View file @
678e2873
package
cn
.
breeze
.
elleai
.
application
.
dto
.
response
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.util.List
;
@Data
...
...
@@ -76,14 +77,16 @@ public class ExamineRecordMobileDto implements Serializable {
*/
@Schema
(
description
=
"创建时间"
)
@JsonProperty
(
"create_time"
)
private
LocalDateTime
createTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
/**
* 更新时间
*/
@Schema
(
description
=
"更新时间"
)
@JsonProperty
(
"update_time"
)
private
LocalDateTime
updateTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
updateTime
;
/**
* 答题明细
...
...
src/main/java/cn/breeze/elleai/application/dto/response/ExamineSceneCategoryDto.java
View file @
678e2873
...
...
@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ExamineSceneCategoryDto
implements
Serializable
{
...
...
@@ -65,7 +65,7 @@ public class ExamineSceneCategoryDto implements Serializable {
@Schema
(
description
=
"创建时间"
)
@JsonProperty
(
"create_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
...
...
@@ -73,7 +73,7 @@ public class ExamineSceneCategoryDto implements Serializable {
@Schema
(
description
=
"更新时间"
)
@JsonProperty
(
"update_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
/**
* 父级分类ID
...
...
src/main/java/cn/breeze/elleai/application/dto/response/ExamineSceneDto.java
View file @
678e2873
...
...
@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ExamineSceneDto
implements
Serializable
{
...
...
@@ -44,7 +44,7 @@ public class ExamineSceneDto implements Serializable {
@Schema
(
description
=
"创建时间"
)
@JsonProperty
(
"create_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
...
...
@@ -52,5 +52,5 @@ public class ExamineSceneDto implements Serializable {
@Schema
(
description
=
"update_time"
)
@JsonProperty
(
"update_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/application/dto/response/HotQaMobileDto.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
HotQaMobileDto
implements
Serializable
{
...
...
src/main/java/cn/breeze/elleai/application/dto/response/ProperNounDto.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ProperNounDto
implements
Serializable
{
...
...
@@ -38,12 +38,12 @@ public class ProperNounDto implements Serializable {
*/
@JsonProperty
(
"create_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
@JsonProperty
(
"update_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/application/dto/response/QaAssistantDto.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
QaAssistantDto
implements
Serializable
{
...
...
@@ -57,12 +57,12 @@ public class QaAssistantDto implements Serializable {
*/
@Schema
(
description
=
"创建时间"
)
@JsonProperty
(
"create_time"
)
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
@Schema
(
description
=
"更新时间"
)
@JsonProperty
(
"update_time"
)
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/application/dto/response/UserChatCompletionDto.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
UserChatCompletionDto
implements
Serializable
{
...
...
@@ -32,12 +32,12 @@ public class UserChatCompletionDto implements Serializable {
*/
@Schema
(
description
=
"创建时间"
)
@JsonProperty
(
"create_time"
)
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 最后更新时间
*/
@Schema
(
description
=
"更新时间"
)
@JsonProperty
(
"update_time"
)
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/application/dto/response/UserChatCompletionHistoryDto.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
UserChatCompletionHistoryDto
implements
Serializable
{
...
...
@@ -37,5 +37,5 @@ public class UserChatCompletionHistoryDto implements Serializable {
*/
@Schema
(
description
=
"创建时间"
)
@JsonProperty
(
"create_time"
)
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
}
src/main/java/cn/breeze/elleai/application/dto/response/WikiCategoryDto.java
View file @
678e2873
...
...
@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
WikiCategoryDto
implements
Serializable
{
...
...
@@ -45,7 +45,7 @@ public class WikiCategoryDto implements Serializable {
@Schema
(
description
=
"创建时间"
)
@JsonProperty
(
"create_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
...
...
@@ -53,5 +53,5 @@ public class WikiCategoryDto implements Serializable {
@Schema
(
description
=
"update_time"
)
@JsonProperty
(
"update_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/application/dto/response/WikiDto.java
View file @
678e2873
...
...
@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
WikiDto
implements
Serializable
{
...
...
@@ -85,7 +85,7 @@ public class WikiDto implements Serializable {
@Schema
(
description
=
"创建时间"
)
@JsonProperty
(
"create_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
...
...
@@ -93,5 +93,5 @@ public class WikiDto implements Serializable {
@Schema
(
description
=
"update_time"
)
@JsonProperty
(
"update_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/application/service/AppExamineService.java
View file @
678e2873
...
...
@@ -566,11 +566,8 @@ public class AppExamineService {
List
<
ExamineDto
>
dtoList
=
page
.
getRecords
().
stream
().
map
(
v
->
{
ExamineDto
dto
=
BeanUtil
.
copyProperties
(
v
,
ExamineDto
.
class
);
long
startTime
=
v
.
getStartTime
().
toEpochSecond
(
ZoneOffset
.
UTC
);
dto
.
setStartTime
(
startTime
);
long
endTime
=
v
.
getEndTime
().
toEpochSecond
(
ZoneOffset
.
UTC
);
dto
.
setEndTime
(
endTime
);
dto
.
setStartTime
(
v
.
getStartTime
().
getTime
());
dto
.
setEndTime
(
v
.
getEndTime
().
getTime
());
return
dto
;
}).
collect
(
Collectors
.
toList
());
...
...
@@ -598,11 +595,8 @@ public class AppExamineService {
List
<
ExamineMobileDto
>
dtoList
=
page
.
getRecords
().
stream
().
map
(
v
->
{
ExamineMobileDto
dto
=
BeanUtil
.
copyProperties
(
v
,
ExamineMobileDto
.
class
);
long
startTime
=
v
.
getStartTime
().
toEpochSecond
(
ZoneOffset
.
UTC
);
dto
.
setStartTime
(
startTime
);
long
endTime
=
v
.
getEndTime
().
toEpochSecond
(
ZoneOffset
.
UTC
);
dto
.
setEndTime
(
endTime
);
dto
.
setStartTime
(
v
.
getStartTime
().
getTime
());
dto
.
setEndTime
(
v
.
getEndTime
().
getTime
());
// 已考人数
long
examCount
=
0
;
...
...
@@ -673,6 +667,39 @@ public class AppExamineService {
return
pageResult
;
}
/**
* 用户对练记录
* @param request
* @return
*/
public
PageResult
<
ExamineRecordDto
>
examineRecordPaginQuery
(
ExamineRecordRequestDto
request
)
{
ExamineRecordRequestModel
requestModel
=
BeanUtil
.
copyProperties
(
request
,
ExamineRecordRequestModel
.
class
);
Page
<
ExamineRecordResponseModel
>
page
=
examineService
.
examineRecordPaginQuery
(
requestModel
);
PageResult
<
ExamineRecordDto
>
pageResult
=
PageResult
.
of
(
request
.
getPageNo
(),
request
.
getPageSize
(),
(
int
)
page
.
getTotalRow
(),
null
);
if
(
CollectionUtil
.
isNotEmpty
(
page
.
getRecords
()))
{
List
<
ExamineRecordDto
>
dtoList
=
page
.
getRecords
().
stream
().
map
(
v
->
{
ExamineRecordDto
dto
=
BeanUtil
.
copyProperties
(
v
,
ExamineRecordDto
.
class
);
ExamineDto
examineDto
=
examineDetail
(
dto
.
getExamineId
());
if
(
Objects
.
nonNull
(
examineDto
))
{
dto
.
setExamineName
(
examineDto
.
getName
());
dto
.
setExamineDescription
(
examineDto
.
getDescription
());
}
return
dto
;
}).
collect
(
Collectors
.
toList
());
pageResult
.
setItems
(
dtoList
);
}
return
pageResult
;
}
/************************************************** 资料库分类 **************************************************/
/**
...
...
src/main/java/cn/breeze/elleai/config/GlobalExceptionHandler.java
View file @
678e2873
package
cn
.
breeze
.
elleai
.
config
;
import
cn.breeze.elleai.application.dto.ApiResponse
;
import
cn.breeze.elleai.exception.InternalException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
...
...
@@ -12,23 +12,17 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
* 请求接口处理
* @author Administrator
*/
@RestControllerAdvice
//
@RestControllerAdvice
@Slf4j
public
class
GlobalExceptionHandler
{
@Value
(
"${spring.application.name:}"
)
private
String
applicationName
;
// @ExceptionHandler(InternalException.class)
// public ResponseEntity<ApiResponse> handleException(InternalException e) {
// e.printStackTrace();
// log.error("出错啦:ex = {}, message = {}", e.getDescription(), e.getStackTrace());
// ApiResponse error = ApiResponse.fail(e.getCode(), e.getDescription(), e.getDescription());
// error.setModule(applicationName);
// return new ResponseEntity<>(error, HttpStatus.OK);
// }
@ExceptionHandler
(
InternalException
.
class
)
public
ResponseEntity
<
ApiResponse
>
handleException
(
InternalException
e
)
{
e
.
printStackTrace
();
log
.
error
(
"出错啦:ex = {}, message = {}"
,
e
.
getDescription
(),
e
.
getStackTrace
());
ApiResponse
error
=
ApiResponse
.
fail
(
e
.
getCode
(),
e
.
getDescription
());
return
new
ResponseEntity
<>(
error
,
HttpStatus
.
OK
);
}
@ExceptionHandler
(
Exception
.
class
)
...
...
src/main/java/cn/breeze/elleai/config/GlobalWebWebConfigurer.java
View file @
678e2873
...
...
@@ -18,6 +18,9 @@ public class GlobalWebWebConfigurer implements WebMvcConfigurer {
public
void
addArgumentResolvers
(
List
<
HandlerMethodArgumentResolver
>
resolvers
)
{
QueryParamHandlerMethodArgumentResolver
queryParamHandlerMethodArgumentResolver
=
new
QueryParamHandlerMethodArgumentResolver
();
resolvers
.
add
(
queryParamHandlerMethodArgumentResolver
);
UserPrincipalHandlerMethodArgumentResolver
userPrincipalHandlerMethodArgumentResolver
=
new
UserPrincipalHandlerMethodArgumentResolver
();
resolvers
.
add
(
userPrincipalHandlerMethodArgumentResolver
);
}
@Override
...
...
src/main/java/cn/breeze/elleai/config/UserPrincipalHandlerMethodArgumentResolver.java
View file @
678e2873
package
cn
.
breeze
.
elleai
.
config
;
import
cn.breeze.elleai.util.Codes
;
import
cn.breeze.elleai.util.JwtUtil
;
import
cn.breeze.elleai.util.PrincipalEnum
;
import
cn.breeze.elleai.util.UserPrincipal
;
import
cn.hutool.core.util.StrUtil
;
import
jakarta.servlet.http.HttpServletRequest
;
import
org.springframework.core.MethodParameter
;
import
org.springframework.security.core.Authentication
;
import
org.springframework.web.bind.support.WebDataBinderFactory
;
import
org.springframework.web.context.request.NativeWebRequest
;
import
org.springframework.web.method.support.HandlerMethodArgumentResolver
;
import
org.springframework.web.method.support.ModelAndViewContainer
;
import
reactor.core.publisher.Mono
;
import
java.util.Objects
;
/**
*
...
...
@@ -25,18 +31,13 @@ public class UserPrincipalHandlerMethodArgumentResolver implements HandlerMethod
@Override
public
Object
resolveArgument
(
MethodParameter
parameter
,
ModelAndViewContainer
mavContainer
,
NativeWebRequest
webRequest
,
WebDataBinderFactory
binderFactory
)
throws
Exception
{
HttpServletRequest
request
=
webRequest
.
getNativeRequest
(
HttpServletRequest
.
class
);
UserPrincipal
userPrincipal
=
null
;
String
username
=
webRequest
.
getHeader
(
Codes
.
X_JWT_UN
);
String
uid
=
webRequest
.
getHeader
(
Codes
.
X_JWT_UID
);
String
type
=
webRequest
.
getHeader
(
Codes
.
X_JWT_TYPE
);
String
jti
=
webRequest
.
getHeader
(
Codes
.
X_JWT_JTI
);
if
(
StrUtil
.
isAllNotBlank
(
uid
,
username
,
type
))
{
userPrincipal
=
new
UserPrincipal
();
//最少要有用户ID、用户名和用户类型(mobile, openapi, admin)其中一种
userPrincipal
.
setUserId
(
Long
.
valueOf
(
uid
));
userPrincipal
.
setType
(
PrincipalEnum
.
valueOf
(
type
));
userPrincipal
.
setUsername
(
username
);
userPrincipal
.
setJti
(
jti
);
Mono
<
Authentication
>
convert
=
JwtUtil
.
convert
(
request
);
Authentication
authentication
=
convert
.
toFuture
().
get
();
if
(
Objects
.
nonNull
(
authentication
))
{
userPrincipal
=
(
UserPrincipal
)
authentication
.
getPrincipal
();
}
return
userPrincipal
;
}
...
...
src/main/java/cn/breeze/elleai/controller/ChatCompletionMobileController.java
View file @
678e2873
...
...
@@ -10,6 +10,7 @@ import cn.breeze.elleai.application.dto.response.QaAssistantDto;
import
cn.breeze.elleai.application.dto.response.UserChatCompletionHistoryDto
;
import
cn.breeze.elleai.application.service.AppChatCompletionService
;
import
cn.breeze.elleai.config.QueryParam
;
import
com.alibaba.fastjson.JSON
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
...
...
@@ -34,6 +35,8 @@ public class ChatCompletionMobileController {
@GetMapping
(
"/hot/list"
)
public
ApiResponse
<
PageResult
<
HotQaMobileDto
>>
hotList
(
@QueryParam
QaAssistantRequestDto
request
)
{
PageResult
<
HotQaMobileDto
>
pageResult
=
new
PageResult
<>();
String
json
=
"{\"items\": [{\"question\": \"热门提问1\"},{\"question\": \"热门提问2\"},{\"question\": \"热门提问3\"},{\"question\": \"热门提问4\"},{\"question\": \"热门提问5\"},{\"question\": \"热门提问6\"},{\"question\": \"热门提问7\"},{\"question\": \"热门提问8\"},{\"question\": \"热门提问9\"},{\"question\": \"热门提问10\"}],\"total\": 10,\"total_page\": 1,\"page_no\": 1,\"page_size\": 10}"
;
pageResult
=
JSON
.
parseObject
(
json
,
PageResult
.
class
);
return
ApiResponse
.
ok
(
pageResult
);
}
...
...
src/main/java/cn/breeze/elleai/controller/ExamineController.java
View file @
678e2873
...
...
@@ -3,12 +3,12 @@ package cn.breeze.elleai.controller;
import
cn.breeze.elleai.application.dto.ApiResponse
;
import
cn.breeze.elleai.application.dto.PageResult
;
import
cn.breeze.elleai.application.dto.request.ExamineQaRequestDto
;
import
cn.breeze.elleai.application.dto.request.ExamineQaSaveDto
;
import
cn.breeze.elleai.application.dto.request.ExamineRecordRequestDto
;
import
cn.breeze.elleai.application.dto.request.ExamineRequestDto
;
import
cn.breeze.elleai.application.dto.request.ExamineSaveDto
;
import
cn.breeze.elleai.application.dto.response.ExamineDto
;
import
cn.breeze.elleai.application.dto.response.ExamineQaDto
;
import
cn.breeze.elleai.application.dto.response.ExamineRecordDto
;
import
cn.breeze.elleai.application.dto.response.ExamineRecordMobileDto
;
import
cn.breeze.elleai.application.service.AppExamineService
;
import
cn.breeze.elleai.config.QueryParam
;
import
io.swagger.v3.oas.annotations.Operation
;
...
...
@@ -61,4 +61,18 @@ public class ExamineController {
PageResult
<
ExamineDto
>
pageResult
=
examineService
.
examinePaginQuery
(
request
);
return
ApiResponse
.
ok
(
pageResult
);
}
@Operation
(
summary
=
"对练记录详情"
,
tags
=
"对练记录"
)
@GetMapping
(
"/record/detail/{id}"
)
public
ApiResponse
<
ExamineRecordMobileDto
>
recordDetail
(
@Schema
(
description
=
"对练记录ID"
)
@PathVariable
(
"id"
)
Integer
id
)
{
ExamineRecordMobileDto
detail
=
examineService
.
examineRecordMobileDetail
(
id
);
return
ApiResponse
.
ok
(
detail
);
}
@Operation
(
summary
=
"对练记录列表"
,
tags
=
"对练记录"
)
@GetMapping
(
"/record/list"
)
public
ApiResponse
<
PageResult
<
ExamineRecordDto
>>
recordList
(
@QueryParam
ExamineRecordRequestDto
request
)
{
PageResult
<
ExamineRecordDto
>
pageResult
=
examineService
.
examineRecordPaginQuery
(
request
);
return
ApiResponse
.
ok
(
pageResult
);
}
}
src/main/java/cn/breeze/elleai/domain/sparring/model/request/ExamineRecordRequestModel.java
View file @
678e2873
...
...
@@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
@Data
public
class
ExamineRecordRequestModel
implements
Serializable
{
...
...
@@ -27,5 +28,9 @@ public class ExamineRecordRequestModel implements Serializable {
* 对练模式(0练习 1对练)
*/
private
Integer
examineMode
;
private
Date
startTime
;
private
Date
endTime
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/request/ExamineSaveModel.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.util.List
;
@Data
...
...
@@ -43,13 +43,13 @@ public class ExamineSaveModel implements Serializable {
* 开始时间
*/
@JsonProperty
(
"start_time"
)
private
LocalDateTim
e
startTime
;
private
Dat
e
startTime
;
/**
* 结束时间
*/
@JsonProperty
(
"end_time"
)
private
LocalDateTim
e
endTime
;
private
Dat
e
endTime
;
/**
* 状态(0禁用 1启用)
...
...
src/main/java/cn/breeze/elleai/domain/sparring/model/request/ExamineSceneCategorySaveModel.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ExamineSceneCategorySaveModel
implements
Serializable
{
...
...
@@ -47,13 +47,13 @@ public class ExamineSceneCategorySaveModel implements Serializable {
* 创建时间
*/
@JsonProperty
(
"create_time"
)
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
@JsonProperty
(
"update_time"
)
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
/**
* 父级分类ID
...
...
src/main/java/cn/breeze/elleai/domain/sparring/model/request/ExamineSceneSaveModel.java
View file @
678e2873
...
...
@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.request;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ExamineSceneSaveModel
implements
Serializable
{
...
...
@@ -38,10 +38,10 @@ public class ExamineSceneSaveModel implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/request/ProperNounSaveModel.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import com.mybatisflex.annotation.KeyType;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ProperNounSaveModel
implements
Serializable
{
...
...
@@ -35,12 +35,12 @@ public class ProperNounSaveModel implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/request/QaAssistantSaveModel.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
QaAssistantSaveModel
implements
Serializable
{
...
...
@@ -49,12 +49,12 @@ public class QaAssistantSaveModel implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/request/WikiCategorySaveModel.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
WikiCategorySaveModel
implements
Serializable
{
...
...
src/main/java/cn/breeze/elleai/domain/sparring/model/request/WikiSaveModel.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import com.mybatisflex.annotation.KeyType;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
WikiSaveModel
implements
Serializable
{
...
...
src/main/java/cn/breeze/elleai/domain/sparring/model/response/ExamineDetailRecordResponseModel.java
View file @
678e2873
...
...
@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.response;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ExamineDetailRecordResponseModel
implements
Serializable
{
...
...
@@ -38,10 +38,10 @@ public class ExamineDetailRecordResponseModel implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/response/ExamineQaResponseModel.java
View file @
678e2873
...
...
@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ExamineQaResponseModel
implements
Serializable
{
...
...
@@ -50,7 +50,7 @@ public class ExamineQaResponseModel implements Serializable {
@Schema
(
description
=
"创建时间"
)
@JsonProperty
(
"create_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
...
...
@@ -58,6 +58,6 @@ public class ExamineQaResponseModel implements Serializable {
@Schema
(
description
=
"更新时间"
)
@JsonProperty
(
"update_time"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/response/ExamineQaXrefResponseModel.java
View file @
678e2873
...
...
@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.response;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ExamineQaXrefResponseModel
implements
Serializable
{
...
...
@@ -29,11 +29,11 @@ public class ExamineQaXrefResponseModel implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/response/ExamineRecordResponseModel.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import com.mybatisflex.annotation.KeyType;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.util.List
;
@Data
...
...
@@ -52,10 +52,10 @@ public class ExamineRecordResponseModel implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/response/ExamineResponseModel.java
View file @
678e2873
...
...
@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.response;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.util.List
;
@Data
...
...
@@ -40,12 +40,12 @@ public class ExamineResponseModel implements Serializable {
/**
* 开始时间
*/
private
LocalDateTim
e
startTime
;
private
Dat
e
startTime
;
/**
* 结束时间
*/
private
LocalDateTim
e
endTime
;
private
Dat
e
endTime
;
/**
* 状态(0禁用 1启用)
...
...
@@ -65,12 +65,12 @@ public class ExamineResponseModel implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
/**
* 关联题目列表
...
...
src/main/java/cn/breeze/elleai/domain/sparring/model/response/ExamineSceneCategoryResponseModel.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ExamineSceneCategoryResponseModel
implements
Serializable
{
...
...
@@ -56,12 +56,12 @@ public class ExamineSceneCategoryResponseModel implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
/**
* 父级分类ID
...
...
src/main/java/cn/breeze/elleai/domain/sparring/model/response/ExamineSceneResponseModel.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import com.mybatisflex.annotation.KeyType;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ExamineSceneResponseModel
implements
Serializable
{
...
...
@@ -40,11 +40,11 @@ public class ExamineSceneResponseModel implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/response/ProperNounResponseModel.java
View file @
678e2873
...
...
@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.response;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
ProperNounResponseModel
implements
Serializable
{
...
...
@@ -34,11 +34,11 @@ public class ProperNounResponseModel implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/response/QaAssistantResponseModel.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
QaAssistantResponseModel
implements
Serializable
{
...
...
@@ -50,11 +50,11 @@ public class QaAssistantResponseModel implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/response/UserChatCompletionHistoryResponseModel.java
View file @
678e2873
...
...
@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.response;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
UserChatCompletionHistoryResponseModel
implements
Serializable
{
...
...
@@ -28,6 +28,6 @@ public class UserChatCompletionHistoryResponseModel implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/response/UserChatCompletionResponseModel.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
UserChatCompletionResponseModel
implements
Serializable
{
...
...
@@ -24,11 +24,11 @@ public class UserChatCompletionResponseModel implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 最后更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/response/WikiCategoryResponseModel.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
WikiCategoryResponseModel
implements
Serializable
{
...
...
@@ -40,11 +40,11 @@ public class WikiCategoryResponseModel implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/response/WikiResponseModel.java
View file @
678e2873
...
...
@@ -5,7 +5,7 @@ import com.mybatisflex.annotation.KeyType;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
@Data
public
class
WikiResponseModel
implements
Serializable
{
...
...
@@ -61,11 +61,11 @@ public class WikiResponseModel implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/domain/sparring/service/ChatCompletionServiceImpl.java
View file @
678e2873
...
...
@@ -24,7 +24,7 @@ import com.mybatisflex.core.update.UpdateChain;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -112,7 +112,7 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{
UserChatCompletionEntity
entity
=
new
UserChatCompletionEntity
();
entity
.
setUserId
(
userId
);
entity
.
setSessionId
(
sessionId
);
entity
.
setUpdateTime
(
LocalDateTime
.
now
());
entity
.
setUpdateTime
(
new
Date
());
chatCompletionMapper
.
insertOrUpdateSelective
(
entity
);
return
entity
.
getId
();
}
...
...
@@ -123,7 +123,7 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{
entity
.
setChatCompletionId
(
chatCompletionId
);
entity
.
setType
(
type
);
entity
.
setContent
(
content
);
entity
.
setCreateTime
(
LocalDateTime
.
now
());
entity
.
setCreateTime
(
new
Date
());
chatCompletionHistoryMapper
.
insertOrUpdateSelective
(
entity
);
}
...
...
@@ -168,7 +168,7 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{
public
void
updateQaAssistantStatus
(
Integer
id
,
Integer
status
)
{
UpdateChain
.
of
(
QaAssistantEntity
.
class
)
.
set
(
QA_ASSISTANT_ENTITY
.
STATUS
,
status
)
.
set
(
QA_ASSISTANT_ENTITY
.
UPDATE_TIME
,
LocalDateTime
.
now
())
.
set
(
QA_ASSISTANT_ENTITY
.
UPDATE_TIME
,
new
Date
())
.
where
(
QA_ASSISTANT_ENTITY
.
ID
.
eq
(
id
))
.
update
();
}
...
...
@@ -177,7 +177,7 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{
public
void
deleteQaAssistant
(
Integer
id
)
{
UpdateChain
.
of
(
QaAssistantEntity
.
class
)
.
set
(
QA_ASSISTANT_ENTITY
.
DELETED
,
1
)
.
set
(
QA_ASSISTANT_ENTITY
.
UPDATE_TIME
,
LocalDateTime
.
now
())
.
set
(
QA_ASSISTANT_ENTITY
.
UPDATE_TIME
,
new
Date
())
.
where
(
QA_ASSISTANT_ENTITY
.
ID
.
eq
(
id
))
.
update
();
}
...
...
@@ -185,7 +185,7 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{
@Override
public
void
saveQaAssistant
(
QaAssistantSaveModel
dto
)
{
QaAssistantEntity
entity
=
BeanUtil
.
toBean
(
dto
,
QaAssistantEntity
.
class
);
entity
.
setUpdateTime
(
LocalDateTime
.
now
());
entity
.
setUpdateTime
(
new
Date
());
if
(
Objects
.
isNull
(
entity
.
getId
()))
{
entity
.
setStatus
(
1
);
entity
.
setDeleted
(
0
);
...
...
src/main/java/cn/breeze/elleai/domain/sparring/service/CommonServiceImpl.java
View file @
678e2873
...
...
@@ -14,7 +14,7 @@ import com.mybatisflex.core.update.UpdateChain;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -67,7 +67,7 @@ public class CommonServiceImpl implements CommonService{
public
void
updateProperNounStatus
(
Integer
id
,
Integer
status
)
{
UpdateChain
.
of
(
ProperNounEntity
.
class
)
.
set
(
PROPER_NOUN_ENTITY
.
STATUS
,
status
)
.
set
(
PROPER_NOUN_ENTITY
.
UPDATE_TIME
,
LocalDateTime
.
now
())
.
set
(
PROPER_NOUN_ENTITY
.
UPDATE_TIME
,
new
Date
())
.
where
(
PROPER_NOUN_ENTITY
.
ID
.
eq
(
id
))
.
update
();
}
...
...
@@ -76,7 +76,7 @@ public class CommonServiceImpl implements CommonService{
public
void
deleteProperNoun
(
Integer
id
)
{
UpdateChain
.
of
(
ProperNounEntity
.
class
)
.
set
(
PROPER_NOUN_ENTITY
.
DELETED
,
1
)
.
set
(
PROPER_NOUN_ENTITY
.
UPDATE_TIME
,
LocalDateTime
.
now
())
.
set
(
PROPER_NOUN_ENTITY
.
UPDATE_TIME
,
new
Date
())
.
where
(
PROPER_NOUN_ENTITY
.
ID
.
eq
(
id
))
.
update
();
}
...
...
@@ -84,7 +84,7 @@ public class CommonServiceImpl implements CommonService{
@Override
public
void
saveProperNoun
(
ProperNounSaveModel
dto
)
{
ProperNounEntity
entity
=
BeanUtil
.
toBean
(
dto
,
ProperNounEntity
.
class
);
entity
.
setUpdateTime
(
LocalDateTime
.
now
());
entity
.
setUpdateTime
(
new
Date
());
if
(
Objects
.
isNull
(
entity
.
getId
()))
{
entity
.
setStatus
(
1
);
entity
.
setDeleted
(
0
);
...
...
src/main/java/cn/breeze/elleai/domain/sparring/service/ExamineServiceImpl.java
View file @
678e2873
This diff is collapsed.
Click to expand it.
src/main/java/cn/breeze/elleai/exception/InternalException.java
0 → 100644
View file @
678e2873
package
cn
.
breeze
.
elleai
.
exception
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
*
* 内部异常类
* @author Administrator
*/
@Getter
@Setter
public
class
InternalException
extends
RuntimeException
{
public
InternalException
()
{
super
();
}
public
InternalException
(
int
code
,
String
description
)
{
super
();
this
.
code
=
code
;
this
.
description
=
description
;
}
/**
* 错误码
*/
@Schema
(
description
=
"错误编码"
)
private
int
code
;
/**
* 错误信息描述
*/
@Schema
(
description
=
"错误描述"
)
private
String
description
;
}
src/main/java/cn/breeze/elleai/infra/entity/ExamineEntity.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import
com.mybatisflex.annotation.KeyType
;
import
com.mybatisflex.annotation.Table
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.io.Serial
;
...
...
@@ -60,12 +60,12 @@ public class ExamineEntity implements Serializable {
/**
* 开始时间
*/
private
LocalDateTim
e
startTime
;
private
Dat
e
startTime
;
/**
* 结束时间
*/
private
LocalDateTim
e
endTime
;
private
Dat
e
endTime
;
/**
* 状态(0禁用 1启用)
...
...
@@ -85,11 +85,11 @@ public class ExamineEntity implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/infra/entity/ExamineQaEntity.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import
com.mybatisflex.annotation.KeyType
;
import
com.mybatisflex.annotation.Table
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.io.Serial
;
...
...
@@ -60,11 +60,11 @@ public class ExamineQaEntity implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/infra/entity/ExamineQaXrefEntity.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import
com.mybatisflex.annotation.KeyType
;
import
com.mybatisflex.annotation.Table
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.io.Serial
;
...
...
@@ -50,11 +50,11 @@ public class ExamineQaXrefEntity implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/infra/entity/ExamineSceneCategoryEntity.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import
com.mybatisflex.annotation.KeyType
;
import
com.mybatisflex.annotation.Table
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.io.Serial
;
...
...
@@ -65,12 +65,12 @@ public class ExamineSceneCategoryEntity implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
/**
* 父级分类ID
...
...
src/main/java/cn/breeze/elleai/infra/entity/ExamineSceneEntity.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import
com.mybatisflex.annotation.KeyType
;
import
com.mybatisflex.annotation.Table
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.io.Serial
;
...
...
@@ -60,11 +60,11 @@ public class ExamineSceneEntity implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/infra/entity/ProperNounEntity.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import
com.mybatisflex.annotation.KeyType
;
import
com.mybatisflex.annotation.Table
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.io.Serial
;
...
...
@@ -55,11 +55,11 @@ public class ProperNounEntity implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/infra/entity/QaAssistantEntity.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import
com.mybatisflex.annotation.KeyType
;
import
com.mybatisflex.annotation.Table
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.io.Serial
;
...
...
@@ -70,11 +70,11 @@ public class QaAssistantEntity implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/infra/entity/UserChatCompletionEntity.java
View file @
678e2873
...
...
@@ -11,7 +11,7 @@ import lombok.NoArgsConstructor;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
/**
* 实体类。
...
...
@@ -45,11 +45,11 @@ public class UserChatCompletionEntity implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 最后更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/infra/entity/UserChatCompletionHistoryEntity.java
View file @
678e2873
...
...
@@ -10,7 +10,7 @@ import lombok.NoArgsConstructor;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
/**
* 实体类。
...
...
@@ -49,6 +49,6 @@ public class UserChatCompletionHistoryEntity implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
}
src/main/java/cn/breeze/elleai/infra/entity/UserExamineDetailRecordEntity.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import
com.mybatisflex.annotation.KeyType
;
import
com.mybatisflex.annotation.Table
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.io.Serial
;
...
...
@@ -60,11 +60,11 @@ public class UserExamineDetailRecordEntity implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/infra/entity/UserExamineRecordEntity.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import
com.mybatisflex.annotation.KeyType
;
import
com.mybatisflex.annotation.Table
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.io.Serial
;
...
...
@@ -70,11 +70,11 @@ public class UserExamineRecordEntity implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/infra/entity/WikiCategoryEntity.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import
com.mybatisflex.annotation.KeyType
;
import
com.mybatisflex.annotation.Table
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.io.Serial
;
...
...
@@ -55,12 +55,12 @@ public class WikiCategoryEntity implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
/**
* 父级分类ID
...
...
src/main/java/cn/breeze/elleai/infra/entity/WikiEntity.java
View file @
678e2873
...
...
@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import
com.mybatisflex.annotation.KeyType
;
import
com.mybatisflex.annotation.Table
;
import
java.io.Serializable
;
import
java.
time.LocalDateTim
e
;
import
java.
util.Dat
e
;
import
java.io.Serial
;
...
...
@@ -80,11 +80,11 @@ public class WikiEntity implements Serializable {
/**
* 创建时间
*/
private
LocalDateTim
e
createTime
;
private
Dat
e
createTime
;
/**
* 更新时间
*/
private
LocalDateTim
e
updateTime
;
private
Dat
e
updateTime
;
}
src/main/java/cn/breeze/elleai/security/JwtInterceptor.java
0 → 100644
View file @
678e2873
package
cn
.
breeze
.
elleai
.
security
;
import
cn.breeze.elleai.util.JwtUtil
;
import
jakarta.servlet.http.HttpServletRequest
;
import
jakarta.servlet.http.HttpServletResponse
;
import
lombok.SneakyThrows
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.security.core.Authentication
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
reactor.core.publisher.Mono
;
import
java.util.*
;
@Slf4j
public
class
JwtInterceptor
implements
HandlerInterceptor
{
@SneakyThrows
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
{
String
token
=
request
.
getHeader
(
"token"
);
if
(
StringUtils
.
isEmpty
(
token
)){
System
.
out
.
println
(
"json不能为空"
);
}
Mono
<
Authentication
>
convert
=
JwtUtil
.
convert
(
request
);
Authentication
authentication
=
convert
.
toFuture
().
get
();
if
(
Objects
.
isNull
(
authentication
))
{
response
.
setStatus
(
401
);
return
false
;
}
return
true
;
}
}
src/main/java/cn/breeze/elleai/security/SecurityConfig.java
0 → 100644
View file @
678e2873
package
cn
.
breeze
.
elleai
.
security
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
@Configuration
public
class
SecurityConfig
implements
WebMvcConfigurer
{
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
// registry.addInterceptor(new JwtInterceptor())
// //拦截的路径
// .addPathPatterns("/**")
// //排除登录接口
// .excludePathPatterns("/front/getToken");
}
}
\ No newline at end of file
src/main/java/cn/breeze/elleai/util/Codes.java
View file @
678e2873
...
...
@@ -6,17 +6,6 @@ package cn.breeze.elleai.util;
public
abstract
class
Codes
{
/**
* 启用的状态
*/
public
static
final
Byte
ENABLED_BYTE
=
Byte
.
valueOf
(
"1"
);
/**
* 停用的状态
*/
public
static
final
Byte
DISABLED_BYTE
=
Byte
.
valueOf
(
"0"
);
/**
* 启用的状态
*/
...
...
@@ -31,12 +20,7 @@ public abstract class Codes {
/**
* jwt签名
*/
public
static
final
String
JWT_SIGN_KEY
=
"ZDQ0MjhlODYyNzE4MzJhZWUyN2U1MTQ5Yzk2NTA5MGU="
;
/**
* aes签名key
*/
public
static
final
String
JWT_AES_KEY
=
"fys3xpev0bupb7u1wah3zg7tr3syumzr"
;
public
static
final
String
JWT_SIGN_KEY
=
"mezeron-ai"
;
/**
...
...
src/main/java/cn/breeze/elleai/util/JwtProperties.java
deleted
100644 → 0
View file @
271b2097
package
cn
.
breeze
.
elleai
.
util
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.stereotype.Component
;
/**
* @author qx
* @date 2023/7/4
* @des Jwt配置类
*/
@Component
@ConfigurationProperties
(
prefix
=
"jwt"
)
@Data
public
class
JwtProperties
{
/**
* 过期时间-分钟
*/
private
Integer
expireTime
;
/**
* refreshToken时间
*/
private
Integer
refreshTime
;
/**
* 密钥
*/
private
String
secret
;
}
src/main/java/cn/breeze/elleai/util/JwtUtil.java
View file @
678e2873
package
cn
.
breeze
.
elleai
.
util
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.auth0.jwt.JWT
;
import
com.auth0.jwt.JWTVerifier
;
import
com.auth0.jwt.algorithms.Algorithm
;
import
com.auth0.jwt.interfaces.Claim
;
import
com.auth0.jwt.interfaces.DecodedJWT
;
import
jakarta.servlet.http.Cookie
;
import
jakarta.servlet.http.HttpServletRequest
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.authentication.UsernamePasswordAuthenticationToken
;
import
org.springframework.security.core.Authentication
;
import
org.springframework.stereotype.Component
;
import
reactor.core.publisher.Mono
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.*
;
/**
* @author qx
* @date 2023/7/4
* @des JWT工具类
*/
@Component
@RequiredArgsConstructor
public
class
JwtUtil
{
private
final
JwtProperties
jwtProperties
;
public
static
UserPrincipal
checkAndTransformV2
(
String
token
)
{
Algorithm
algorithm
=
Algorithm
.
HMAC256
(
"mezeron-ai"
);
JWTVerifier
verifier
=
com
.
auth0
.
jwt
.
JWT
.
require
(
algorithm
)
.
withIssuer
(
"oss"
)
.
build
();
DecodedJWT
jwt
=
verifier
.
verify
(
token
);
/**
* 生成一个jwt字符串
*
* @param username 用户名
* @return jwt字符串
*/
public
String
sign
(
String
username
)
{
Algorithm
algorithm
=
Algorithm
.
HMAC256
(
jwtProperties
.
getSecret
());
return
JWT
.
create
()
// 设置过期时间1个小时
.
withExpiresAt
(
new
Date
(
System
.
currentTimeMillis
()
+
jwtProperties
.
getExpireTime
()
*
60
*
1000
))
// 设置负载
.
withClaim
(
"username"
,
username
).
sign
(
algorithm
);
}
/**
* 生成refreshToken
*
* @param username 用户名
* @return
*/
public
String
refreshToken
(
String
username
)
{
Algorithm
algorithm
=
Algorithm
.
HMAC256
(
jwtProperties
.
getSecret
());
return
JWT
.
create
()
// 设置更新时间2个小时
.
withExpiresAt
(
new
Date
(
System
.
currentTimeMillis
()
+
jwtProperties
.
getRefreshTime
()
*
60
*
1000
))
// 设置负载
.
withClaim
(
"username"
,
username
).
sign
(
algorithm
);
}
String
userId
=
jwt
.
getClaim
(
"userId"
).
asString
();
String
userName
=
jwt
.
getClaim
(
"userName"
).
asString
();
String
position
=
jwt
.
getClaim
(
"position"
).
asString
();
String
shopId
=
jwt
.
getClaim
(
"shopId"
).
asString
();
String
shopName
=
jwt
.
getClaim
(
"shopName"
).
asString
();
String
jobTitle
=
jwt
.
getClaim
(
"jobTitle"
).
asString
();
public
static
void
main
(
String
[]
args
)
{
Algorithm
algorithm
=
Algorithm
.
HMAC256
(
"KU5TjMO6zmh03bU3"
);
String
username
=
"admin"
;
String
token
=
JWT
.
create
()
// 设置过期时间1个小时
.
withExpiresAt
(
new
Date
(
System
.
currentTimeMillis
()
+
60
*
60
*
1000
))
// 设置负载
.
withClaim
(
"username"
,
username
).
sign
(
algorithm
);
System
.
out
.
println
(
token
);
UserPrincipal
principal
=
new
UserPrincipal
();
principal
.
setUserId
(
userId
);
principal
.
setUserName
(
userName
);
principal
.
setPosition
(
position
);
principal
.
setShopId
(
shopId
);
principal
.
setShopName
(
shopName
);
principal
.
setJobTitle
(
jobTitle
);
return
principal
;
}
/**
* 校验token是否正确
*
* @param token token值
*/
public
boolean
verify
(
String
token
)
{
if
(
token
==
null
||
token
.
length
()
==
0
)
{
throw
new
RuntimeException
(
"token为空"
);
}
try
{
Algorithm
algorithm
=
Algorithm
.
HMAC256
(
jwtProperties
.
getSecret
());
JWTVerifier
jwtVerifier
=
JWT
.
require
(
algorithm
).
build
();
DecodedJWT
decodedJWT
=
jwtVerifier
.
verify
(
token
);
Map
<
String
,
Claim
>
map
=
decodedJWT
.
getClaims
();
System
.
out
.
println
(
"claims:"
+
map
.
get
(
"username"
).
asString
());
return
true
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
}
public
static
Mono
<
Authentication
>
convert
(
HttpServletRequest
request
)
{
return
Mono
.
just
(
request
).
flatMap
(
ex
->
{
String
token
=
null
;
/**
* 重新生成token和refreshToken
*
* @param refreshToken refreshToken
* @return 返回token和refreshToken
*/
public
Map
<
String
,
String
>
refreshJwt
(
String
refreshToken
)
{
if
(
refreshToken
==
null
||
refreshToken
.
length
()
==
0
)
{
throw
new
RuntimeException
(
"refreshToken为空"
);
}
Algorithm
algorithm
=
Algorithm
.
HMAC256
(
jwtProperties
.
getSecret
());
JWTVerifier
jwtVerifier
=
JWT
.
require
(
algorithm
).
build
();
DecodedJWT
decodedJWT
=
jwtVerifier
.
verify
(
refreshToken
);
Map
<
String
,
Claim
>
map
=
decodedJWT
.
getClaims
();
// 获取用户名
String
username
=
map
.
get
(
"username"
).
asString
();
Map
<
String
,
String
>
resultMap
=
new
HashMap
<>();
// 重新生成token和refreshToken
resultMap
.
put
(
"token"
,
sign
(
username
));
resultMap
.
put
(
"refreshToken"
,
refreshToken
(
username
));
return
resultMap
;
String
headerVal
=
request
.
getHeader
(
"Authorization"
);
if
(
StrUtil
.
isNotBlank
(
headerVal
)
&&
headerVal
.
startsWith
(
"Bearer "
))
{
token
=
headerVal
.
substring
(
7
);
}
else
{
Cookie
[]
cookies
=
request
.
getCookies
();
if
(
Objects
.
nonNull
(
cookies
)
&&
cookies
.
length
>
0
)
{
Optional
<
Cookie
>
jwt
=
Arrays
.
stream
(
cookies
).
filter
(
v
->
Objects
.
equals
(
v
.
getName
(),
"jwt"
)).
findFirst
();
if
(
jwt
.
isPresent
())
{
token
=
jwt
.
get
().
getValue
();
}
}
}
return
Mono
.
justOrEmpty
(
token
);
}).
flatMap
(
token
->
Mono
.
justOrEmpty
(
checkAndTransformV2
(
token
))
.
map
(
payload
->
{
if
(
ObjectUtil
.
isNull
(
payload
))
{
//解密失败,jwt无效时返回为通过的授权
return
UsernamePasswordAuthenticationToken
.
unauthenticated
(
""
,
""
);
}
else
{
//解密成功,jwt验证通过,返回授权
return
UsernamePasswordAuthenticationToken
.
authenticated
(
payload
,
""
,
Collections
.
emptyList
());
}
}));
}
}
src/main/java/cn/breeze/elleai/util/JwtUtils.java
deleted
100644 → 0
View file @
271b2097
package
cn
.
breeze
.
elleai
.
util
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
@Data
@Component
@ConfigurationProperties
(
prefix
=
"token"
)
public
class
JwtUtils
{
private
long
expireTime
;
private
String
secret
;
private
String
header
;
protected
static
final
long
MILLIS_SECOND
=
1000
;
protected
static
final
long
MILLIS_MINUTE
=
60
*
MILLIS_SECOND
;
private
static
final
Long
MILLIS_MINUTE_TEN
=
20
*
60
*
1000L
;
// 生成JWT
// public String generateToken(String account) {
//
// Date nowDate = new Date();
// Date expireDate = new Date(nowDate.getTime() + MILLIS_SECOND * expireTime);
//
// return Jwts.builder()
// .setHeaderParam("typ", "JWT")
// .setSubject(account)
// .setIssuedAt(nowDate)
// .setExpiration(expireDate)
// .signWith(SignatureAlgorithm.HS512, secret)
// .compact();
// }
// // 解析JWT
// public Claims getClaimsByToken(String jwt) {
// try {
// return Jwts.parser()
// .setSigningKey(secret)
// .parseClaimsJws(jwt)
// .getBody();
// } catch (Exception e) {
// return null;
// }
// }
//
// // 判断JWT是否过期
// public boolean isTokenExpired(Claims claims) {
// return claims.getExpiration().before(new Date());
// }
}
src/main/java/cn/breeze/elleai/util/LoginFilter.java
deleted
100644 → 0
View file @
271b2097
package
cn
.
breeze
.
elleai
.
util
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
javax.servlet.*
;
import
javax.servlet.annotation.WebFilter
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
/**
* @author qx
* @date 2023/7/4
* @des 登录过滤器
*/
//@Component
//@WebFilter(urlPatterns = "/**")
public
class
LoginFilter
implements
Filter
{
// @Value("${sso_server}")
private
String
serverHost
;
@Override
public
void
doFilter
(
ServletRequest
servletRequest
,
ServletResponse
servletResponse
,
FilterChain
filterChain
)
throws
IOException
,
ServletException
{
HttpServletRequest
httpServletRequest
=
(
HttpServletRequest
)
servletRequest
;
String
token
=
httpServletRequest
.
getParameter
(
"token"
);
if
(
this
.
check
(
token
))
{
filterChain
.
doFilter
(
servletRequest
,
servletResponse
);
}
else
{
// token过期后再使用refreshToken处理
String
refreshToken
=
httpServletRequest
.
getHeader
(
"refreshToken"
);
if
(
check
(
refreshToken
))
{
// 重新生成token和refreshtoken给客户端保存 下次传递token参数的时候使用这个重新生成的
System
.
out
.
println
(
"更新后的token和refreshToken:"
+
refreshToken
(
refreshToken
));
filterChain
.
doFilter
(
servletRequest
,
servletResponse
);
}
// 如果refreshToken也过期 那么需要重新登录
HttpServletResponse
response
=
(
HttpServletResponse
)
servletResponse
;
String
redirect
=
serverHost
+
"/login"
;
response
.
sendRedirect
(
redirect
);
}
}
/**
* 验证token
*
* @param token
* @return
* @throws IOException
*/
private
boolean
check
(
String
token
)
throws
IOException
{
if
(
token
==
null
||
token
.
trim
().
length
()
==
0
)
{
return
false
;
}
// OkHttpClient client = new OkHttpClient();
// // 请求验证token的合法性
// String url = serverHost + "/checkJwt?token=" + token;
// Request request = new Request.Builder().url(url).build();
// Response response = client.newCall(request).execute();
// return Boolean.parseBoolean(response.body().string());
return
true
;
}
/**
* 重新获取token和refreshToken
*
* @param refreshToken
* @return
* @throws IOException
*/
private
String
refreshToken
(
String
refreshToken
)
throws
IOException
{
if
(
refreshToken
==
null
||
refreshToken
.
trim
().
length
()
==
0
)
{
return
null
;
}
// OkHttpClient client = new OkHttpClient();
// // 请求重新获取token和refreshToken
// String url = serverHost + "/refreshJwt?refreshToken=" + refreshToken;
// Request request = new Request.Builder().url(url).build();
// Response response = client.newCall(request).execute();
// return response.body().string();
return
null
;
}
}
src/main/java/cn/breeze/elleai/util/UserPrincipal.java
View file @
678e2873
...
...
@@ -10,11 +10,17 @@ import java.io.Serializable;
@Data
public
class
UserPrincipal
implements
Serializable
{
private
String
jti
;
private
String
userId
;
private
String
user
n
ame
;
private
String
user
N
ame
;
private
Long
userId
;
private
String
position
;
private
String
jobTitle
;
private
String
shopId
;
private
String
shopName
;
private
PrincipalEnum
type
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment