Commit 678e2873 authored by 陈立彬's avatar 陈立彬

权限&时间统一格式化

parent 271b2097
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.3</version> <version>3.0.10</version>
<relativePath/> <!-- lookup parent from repository --> <relativePath/> <!-- lookup parent from repository -->
</parent> </parent>
<groupId>cn.breeze</groupId> <groupId>cn.breeze</groupId>
...@@ -114,6 +114,11 @@ ...@@ -114,6 +114,11 @@
<version>3.0.0</version> <version>3.0.0</version>
</dependency> </dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<!-- jwt支持 --> <!-- jwt支持 -->
<dependency> <dependency>
<groupId>com.auth0</groupId> <groupId>com.auth0</groupId>
...@@ -121,9 +126,16 @@ ...@@ -121,9 +126,16 @@
<version>3.4.0</version> <version>3.4.0</version>
</dependency> </dependency>
<!--security-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- JWT 支持 -->
<!-- <dependency>--> <!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>--> <!-- <groupId>io.jsonwebtoken</groupId>-->
<!-- <artifactId>spring-boot-starter-security</artifactId>--> <!-- <artifactId>jjwt</artifactId>-->
<!-- <version>0.9.1</version>-->
<!-- </dependency>--> <!-- </dependency>-->
</dependencies> </dependencies>
......
...@@ -3,8 +3,9 @@ package cn.breeze.elleai; ...@@ -3,8 +3,9 @@ package cn.breeze.elleai;
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
@SpringBootApplication @SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
@EnableKnife4j @EnableKnife4j
public class ElleaiApplication { public class ElleaiApplication {
......
...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ExamineQaSaveDto implements Serializable { public class ExamineQaSaveDto implements Serializable {
......
...@@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
@Data @Data
public class ExamineRecordRequestDto implements Serializable { public class ExamineRecordRequestDto implements Serializable {
...@@ -28,4 +29,12 @@ public class ExamineRecordRequestDto implements Serializable { ...@@ -28,4 +29,12 @@ public class ExamineRecordRequestDto implements Serializable {
@Schema(description = "对练模式(0练习 1对练)") @Schema(description = "对练模式(0练习 1对练)")
@JsonProperty("examine_mode") @JsonProperty("examine_mode")
private Integer examineMode; private Integer examineMode;
@Schema(description = "开始时间")
@JsonProperty("start_time")
private Date startTime;
@Schema(description = "结束时间")
@JsonProperty("end_time")
private Date endTime;
} }
...@@ -8,7 +8,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -8,7 +8,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data
...@@ -55,7 +55,7 @@ public class ExamineSaveDto implements Serializable { ...@@ -55,7 +55,7 @@ public class ExamineSaveDto implements Serializable {
@Schema(description = "开始时间") @Schema(description = "开始时间")
@JsonProperty("start_time") @JsonProperty("start_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime startTime; private Date startTime;
/** /**
* 结束时间 * 结束时间
...@@ -63,7 +63,7 @@ public class ExamineSaveDto implements Serializable { ...@@ -63,7 +63,7 @@ public class ExamineSaveDto implements Serializable {
@Schema(description = "结束时间") @Schema(description = "结束时间")
@JsonProperty("end_time") @JsonProperty("end_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime endTime; private Date endTime;
/** /**
* 状态(0禁用 1启用) * 状态(0禁用 1启用)
......
...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ExamineSceneCategorySaveDto implements Serializable { public class ExamineSceneCategorySaveDto implements Serializable {
......
...@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ExamineSceneSaveDto implements Serializable { public class ExamineSceneSaveDto implements Serializable {
......
...@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data
......
...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ProperNounSaveDto implements Serializable { public class ProperNounSaveDto implements Serializable {
......
...@@ -6,7 +6,7 @@ import com.mybatisflex.annotation.KeyType; ...@@ -6,7 +6,7 @@ import com.mybatisflex.annotation.KeyType;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class WikiCategorySaveDto implements Serializable { public class WikiCategorySaveDto implements Serializable {
......
...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ExamineDetailRecordMobileDto implements Serializable { public class ExamineDetailRecordMobileDto implements Serializable {
...@@ -63,12 +63,12 @@ public class ExamineDetailRecordMobileDto implements Serializable { ...@@ -63,12 +63,12 @@ public class ExamineDetailRecordMobileDto implements Serializable {
*/ */
@Schema(description = "创建时间") @Schema(description = "创建时间")
@JsonProperty("create_time") @JsonProperty("create_time")
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
@Schema(description = "更新时间") @Schema(description = "更新时间")
@JsonProperty("update_time") @JsonProperty("update_time")
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -7,7 +7,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -7,7 +7,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data
......
...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ExamineQaDifyDto implements Serializable { public class ExamineQaDifyDto implements Serializable {
......
...@@ -8,7 +8,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -8,7 +8,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ExamineQaDto implements Serializable { public class ExamineQaDto implements Serializable {
...@@ -55,7 +55,7 @@ public class ExamineQaDto implements Serializable { ...@@ -55,7 +55,7 @@ public class ExamineQaDto implements Serializable {
@Schema(description = "创建时间") @Schema(description = "创建时间")
@JsonProperty("create_time") @JsonProperty("create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
...@@ -63,5 +63,5 @@ public class ExamineQaDto implements Serializable { ...@@ -63,5 +63,5 @@ public class ExamineQaDto implements Serializable {
@Schema(description = "更新时间") @Schema(description = "更新时间")
@JsonProperty("update_time") @JsonProperty("update_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime updateTime; private Date updateTime;
} }
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;
}
package cn.breeze.elleai.application.dto.response; package cn.breeze.elleai.application.dto.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data
...@@ -76,14 +77,16 @@ public class ExamineRecordMobileDto implements Serializable { ...@@ -76,14 +77,16 @@ public class ExamineRecordMobileDto implements Serializable {
*/ */
@Schema(description = "创建时间") @Schema(description = "创建时间")
@JsonProperty("create_time") @JsonProperty("create_time")
private LocalDateTime createTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
@Schema(description = "更新时间") @Schema(description = "更新时间")
@JsonProperty("update_time") @JsonProperty("update_time")
private LocalDateTime updateTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private Date updateTime;
/** /**
* 答题明细 * 答题明细
......
...@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ExamineSceneCategoryDto implements Serializable { public class ExamineSceneCategoryDto implements Serializable {
...@@ -65,7 +65,7 @@ public class ExamineSceneCategoryDto implements Serializable { ...@@ -65,7 +65,7 @@ public class ExamineSceneCategoryDto implements Serializable {
@Schema(description = "创建时间") @Schema(description = "创建时间")
@JsonProperty("create_time") @JsonProperty("create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
...@@ -73,7 +73,7 @@ public class ExamineSceneCategoryDto implements Serializable { ...@@ -73,7 +73,7 @@ public class ExamineSceneCategoryDto implements Serializable {
@Schema(description = "更新时间") @Schema(description = "更新时间")
@JsonProperty("update_time") @JsonProperty("update_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime updateTime; private Date updateTime;
/** /**
* 父级分类ID * 父级分类ID
......
...@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ExamineSceneDto implements Serializable { public class ExamineSceneDto implements Serializable {
...@@ -44,7 +44,7 @@ public class ExamineSceneDto implements Serializable { ...@@ -44,7 +44,7 @@ public class ExamineSceneDto implements Serializable {
@Schema(description = "创建时间") @Schema(description = "创建时间")
@JsonProperty("create_time") @JsonProperty("create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
...@@ -52,5 +52,5 @@ public class ExamineSceneDto implements Serializable { ...@@ -52,5 +52,5 @@ public class ExamineSceneDto implements Serializable {
@Schema(description = "update_time") @Schema(description = "update_time")
@JsonProperty("update_time") @JsonProperty("update_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class HotQaMobileDto implements Serializable { public class HotQaMobileDto implements Serializable {
......
...@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; ...@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ProperNounDto implements Serializable { public class ProperNounDto implements Serializable {
...@@ -38,12 +38,12 @@ public class ProperNounDto implements Serializable { ...@@ -38,12 +38,12 @@ public class ProperNounDto implements Serializable {
*/ */
@JsonProperty("create_time") @JsonProperty("create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
@JsonProperty("update_time") @JsonProperty("update_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class QaAssistantDto implements Serializable { public class QaAssistantDto implements Serializable {
...@@ -57,12 +57,12 @@ public class QaAssistantDto implements Serializable { ...@@ -57,12 +57,12 @@ public class QaAssistantDto implements Serializable {
*/ */
@Schema(description = "创建时间") @Schema(description = "创建时间")
@JsonProperty("create_time") @JsonProperty("create_time")
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
@Schema(description = "更新时间") @Schema(description = "更新时间")
@JsonProperty("update_time") @JsonProperty("update_time")
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class UserChatCompletionDto implements Serializable { public class UserChatCompletionDto implements Serializable {
...@@ -32,12 +32,12 @@ public class UserChatCompletionDto implements Serializable { ...@@ -32,12 +32,12 @@ public class UserChatCompletionDto implements Serializable {
*/ */
@Schema(description = "创建时间") @Schema(description = "创建时间")
@JsonProperty("create_time") @JsonProperty("create_time")
private LocalDateTime createTime; private Date createTime;
/** /**
* 最后更新时间 * 最后更新时间
*/ */
@Schema(description = "更新时间") @Schema(description = "更新时间")
@JsonProperty("update_time") @JsonProperty("update_time")
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class UserChatCompletionHistoryDto implements Serializable { public class UserChatCompletionHistoryDto implements Serializable {
...@@ -37,5 +37,5 @@ public class UserChatCompletionHistoryDto implements Serializable { ...@@ -37,5 +37,5 @@ public class UserChatCompletionHistoryDto implements Serializable {
*/ */
@Schema(description = "创建时间") @Schema(description = "创建时间")
@JsonProperty("create_time") @JsonProperty("create_time")
private LocalDateTime createTime; private Date createTime;
} }
...@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class WikiCategoryDto implements Serializable { public class WikiCategoryDto implements Serializable {
...@@ -45,7 +45,7 @@ public class WikiCategoryDto implements Serializable { ...@@ -45,7 +45,7 @@ public class WikiCategoryDto implements Serializable {
@Schema(description = "创建时间") @Schema(description = "创建时间")
@JsonProperty("create_time") @JsonProperty("create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
...@@ -53,5 +53,5 @@ public class WikiCategoryDto implements Serializable { ...@@ -53,5 +53,5 @@ public class WikiCategoryDto implements Serializable {
@Schema(description = "update_time") @Schema(description = "update_time")
@JsonProperty("update_time") @JsonProperty("update_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class WikiDto implements Serializable { public class WikiDto implements Serializable {
...@@ -85,7 +85,7 @@ public class WikiDto implements Serializable { ...@@ -85,7 +85,7 @@ public class WikiDto implements Serializable {
@Schema(description = "创建时间") @Schema(description = "创建时间")
@JsonProperty("create_time") @JsonProperty("create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
...@@ -93,5 +93,5 @@ public class WikiDto implements Serializable { ...@@ -93,5 +93,5 @@ public class WikiDto implements Serializable {
@Schema(description = "update_time") @Schema(description = "update_time")
@JsonProperty("update_time") @JsonProperty("update_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -566,11 +566,8 @@ public class AppExamineService { ...@@ -566,11 +566,8 @@ public class AppExamineService {
List<ExamineDto> dtoList = page.getRecords().stream().map(v -> { List<ExamineDto> dtoList = page.getRecords().stream().map(v -> {
ExamineDto dto = BeanUtil.copyProperties(v, ExamineDto.class); ExamineDto dto = BeanUtil.copyProperties(v, ExamineDto.class);
long startTime = v.getStartTime().toEpochSecond(ZoneOffset.UTC); dto.setStartTime(v.getStartTime().getTime());
dto.setStartTime(startTime); dto.setEndTime(v.getEndTime().getTime());
long endTime = v.getEndTime().toEpochSecond(ZoneOffset.UTC);
dto.setEndTime(endTime);
return dto; return dto;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
...@@ -598,11 +595,8 @@ public class AppExamineService { ...@@ -598,11 +595,8 @@ public class AppExamineService {
List<ExamineMobileDto> dtoList = page.getRecords().stream().map(v -> { List<ExamineMobileDto> dtoList = page.getRecords().stream().map(v -> {
ExamineMobileDto dto = BeanUtil.copyProperties(v, ExamineMobileDto.class); ExamineMobileDto dto = BeanUtil.copyProperties(v, ExamineMobileDto.class);
long startTime = v.getStartTime().toEpochSecond(ZoneOffset.UTC); dto.setStartTime(v.getStartTime().getTime());
dto.setStartTime(startTime); dto.setEndTime(v.getEndTime().getTime());
long endTime = v.getEndTime().toEpochSecond(ZoneOffset.UTC);
dto.setEndTime(endTime);
// 已考人数 // 已考人数
long examCount = 0; long examCount = 0;
...@@ -673,6 +667,39 @@ public class AppExamineService { ...@@ -673,6 +667,39 @@ public class AppExamineService {
return pageResult; 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;
}
/************************************************** 资料库分类 **************************************************/ /************************************************** 资料库分类 **************************************************/
/** /**
......
package cn.breeze.elleai.config; package cn.breeze.elleai.config;
import cn.breeze.elleai.application.dto.ApiResponse; import cn.breeze.elleai.application.dto.ApiResponse;
import cn.breeze.elleai.exception.InternalException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
...@@ -12,23 +12,17 @@ import org.springframework.web.bind.annotation.RestControllerAdvice; ...@@ -12,23 +12,17 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
* 请求接口处理 * 请求接口处理
* @author Administrator * @author Administrator
*/ */
@RestControllerAdvice //@RestControllerAdvice
@Slf4j @Slf4j
public class GlobalExceptionHandler { public class GlobalExceptionHandler {
@Value("${spring.application.name:}") @ExceptionHandler(InternalException.class)
private String applicationName; public ResponseEntity<ApiResponse> handleException(InternalException e) {
e.printStackTrace();
log.error("出错啦:ex = {}, message = {}", e.getDescription(), e.getStackTrace());
ApiResponse error = ApiResponse.fail(e.getCode(), e.getDescription());
// @ExceptionHandler(InternalException.class) return new ResponseEntity<>(error, HttpStatus.OK);
// 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(Exception.class) @ExceptionHandler(Exception.class)
......
...@@ -18,6 +18,9 @@ public class GlobalWebWebConfigurer implements WebMvcConfigurer { ...@@ -18,6 +18,9 @@ public class GlobalWebWebConfigurer implements WebMvcConfigurer {
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) { public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
QueryParamHandlerMethodArgumentResolver queryParamHandlerMethodArgumentResolver = new QueryParamHandlerMethodArgumentResolver(); QueryParamHandlerMethodArgumentResolver queryParamHandlerMethodArgumentResolver = new QueryParamHandlerMethodArgumentResolver();
resolvers.add(queryParamHandlerMethodArgumentResolver); resolvers.add(queryParamHandlerMethodArgumentResolver);
UserPrincipalHandlerMethodArgumentResolver userPrincipalHandlerMethodArgumentResolver = new UserPrincipalHandlerMethodArgumentResolver();
resolvers.add(userPrincipalHandlerMethodArgumentResolver);
} }
@Override @Override
......
package cn.breeze.elleai.config; package cn.breeze.elleai.config;
import cn.breeze.elleai.util.Codes; import cn.breeze.elleai.util.Codes;
import cn.breeze.elleai.util.JwtUtil;
import cn.breeze.elleai.util.PrincipalEnum; import cn.breeze.elleai.util.PrincipalEnum;
import cn.breeze.elleai.util.UserPrincipal; import cn.breeze.elleai.util.UserPrincipal;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.core.MethodParameter; import org.springframework.core.MethodParameter;
import org.springframework.security.core.Authentication;
import org.springframework.web.bind.support.WebDataBinderFactory; import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest; import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer; 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 ...@@ -25,18 +31,13 @@ public class UserPrincipalHandlerMethodArgumentResolver implements HandlerMethod
@Override @Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
UserPrincipal userPrincipal = null; UserPrincipal userPrincipal = null;
String username = webRequest.getHeader(Codes.X_JWT_UN); Mono<Authentication> convert = JwtUtil.convert(request);
String uid = webRequest.getHeader(Codes.X_JWT_UID); Authentication authentication = convert.toFuture().get();
String type = webRequest.getHeader(Codes.X_JWT_TYPE); if(Objects.nonNull(authentication)) {
String jti = webRequest.getHeader(Codes.X_JWT_JTI); userPrincipal = (UserPrincipal) authentication.getPrincipal();
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);
} }
return userPrincipal; return userPrincipal;
} }
......
...@@ -10,6 +10,7 @@ import cn.breeze.elleai.application.dto.response.QaAssistantDto; ...@@ -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.dto.response.UserChatCompletionHistoryDto;
import cn.breeze.elleai.application.service.AppChatCompletionService; import cn.breeze.elleai.application.service.AppChatCompletionService;
import cn.breeze.elleai.config.QueryParam; import cn.breeze.elleai.config.QueryParam;
import com.alibaba.fastjson.JSON;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -34,6 +35,8 @@ public class ChatCompletionMobileController { ...@@ -34,6 +35,8 @@ public class ChatCompletionMobileController {
@GetMapping("/hot/list") @GetMapping("/hot/list")
public ApiResponse<PageResult<HotQaMobileDto>> hotList(@QueryParam QaAssistantRequestDto request) { public ApiResponse<PageResult<HotQaMobileDto>> hotList(@QueryParam QaAssistantRequestDto request) {
PageResult<HotQaMobileDto> pageResult = new PageResult<>(); 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); return ApiResponse.ok(pageResult);
} }
......
...@@ -3,12 +3,12 @@ package cn.breeze.elleai.controller; ...@@ -3,12 +3,12 @@ package cn.breeze.elleai.controller;
import cn.breeze.elleai.application.dto.ApiResponse; import cn.breeze.elleai.application.dto.ApiResponse;
import cn.breeze.elleai.application.dto.PageResult; import cn.breeze.elleai.application.dto.PageResult;
import cn.breeze.elleai.application.dto.request.ExamineQaRequestDto; import cn.breeze.elleai.application.dto.request.ExamineRecordRequestDto;
import cn.breeze.elleai.application.dto.request.ExamineQaSaveDto;
import cn.breeze.elleai.application.dto.request.ExamineRequestDto; import cn.breeze.elleai.application.dto.request.ExamineRequestDto;
import cn.breeze.elleai.application.dto.request.ExamineSaveDto; import cn.breeze.elleai.application.dto.request.ExamineSaveDto;
import cn.breeze.elleai.application.dto.response.ExamineDto; 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.application.service.AppExamineService;
import cn.breeze.elleai.config.QueryParam; import cn.breeze.elleai.config.QueryParam;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
...@@ -61,4 +61,18 @@ public class ExamineController { ...@@ -61,4 +61,18 @@ public class ExamineController {
PageResult<ExamineDto> pageResult = examineService.examinePaginQuery(request); PageResult<ExamineDto> pageResult = examineService.examinePaginQuery(request);
return ApiResponse.ok(pageResult); 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);
}
} }
...@@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
@Data @Data
public class ExamineRecordRequestModel implements Serializable { public class ExamineRecordRequestModel implements Serializable {
...@@ -28,4 +29,8 @@ public class ExamineRecordRequestModel implements Serializable { ...@@ -28,4 +29,8 @@ public class ExamineRecordRequestModel implements Serializable {
*/ */
private Integer examineMode; private Integer examineMode;
private Date startTime;
private Date endTime;
} }
...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; ...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data
...@@ -43,13 +43,13 @@ public class ExamineSaveModel implements Serializable { ...@@ -43,13 +43,13 @@ public class ExamineSaveModel implements Serializable {
* 开始时间 * 开始时间
*/ */
@JsonProperty("start_time") @JsonProperty("start_time")
private LocalDateTime startTime; private Date startTime;
/** /**
* 结束时间 * 结束时间
*/ */
@JsonProperty("end_time") @JsonProperty("end_time")
private LocalDateTime endTime; private Date endTime;
/** /**
* 状态(0禁用 1启用) * 状态(0禁用 1启用)
......
...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; ...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ExamineSceneCategorySaveModel implements Serializable { public class ExamineSceneCategorySaveModel implements Serializable {
...@@ -47,13 +47,13 @@ public class ExamineSceneCategorySaveModel implements Serializable { ...@@ -47,13 +47,13 @@ public class ExamineSceneCategorySaveModel implements Serializable {
* 创建时间 * 创建时间
*/ */
@JsonProperty("create_time") @JsonProperty("create_time")
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
@JsonProperty("update_time") @JsonProperty("update_time")
private LocalDateTime updateTime; private Date updateTime;
/** /**
* 父级分类ID * 父级分类ID
......
...@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.request; ...@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.request;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ExamineSceneSaveModel implements Serializable { public class ExamineSceneSaveModel implements Serializable {
...@@ -38,10 +38,10 @@ public class ExamineSceneSaveModel implements Serializable { ...@@ -38,10 +38,10 @@ public class ExamineSceneSaveModel implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -5,7 +5,7 @@ import com.mybatisflex.annotation.KeyType; ...@@ -5,7 +5,7 @@ import com.mybatisflex.annotation.KeyType;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ProperNounSaveModel implements Serializable { public class ProperNounSaveModel implements Serializable {
...@@ -35,12 +35,12 @@ public class ProperNounSaveModel implements Serializable { ...@@ -35,12 +35,12 @@ public class ProperNounSaveModel implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; ...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class QaAssistantSaveModel implements Serializable { public class QaAssistantSaveModel implements Serializable {
...@@ -49,12 +49,12 @@ public class QaAssistantSaveModel implements Serializable { ...@@ -49,12 +49,12 @@ public class QaAssistantSaveModel implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; ...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class WikiCategorySaveModel implements Serializable { public class WikiCategorySaveModel implements Serializable {
......
...@@ -5,7 +5,7 @@ import com.mybatisflex.annotation.KeyType; ...@@ -5,7 +5,7 @@ import com.mybatisflex.annotation.KeyType;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class WikiSaveModel implements Serializable { public class WikiSaveModel implements Serializable {
......
...@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.response; ...@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.response;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ExamineDetailRecordResponseModel implements Serializable { public class ExamineDetailRecordResponseModel implements Serializable {
...@@ -38,10 +38,10 @@ public class ExamineDetailRecordResponseModel implements Serializable { ...@@ -38,10 +38,10 @@ public class ExamineDetailRecordResponseModel implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ExamineQaResponseModel implements Serializable { public class ExamineQaResponseModel implements Serializable {
...@@ -50,7 +50,7 @@ public class ExamineQaResponseModel implements Serializable { ...@@ -50,7 +50,7 @@ public class ExamineQaResponseModel implements Serializable {
@Schema(description = "创建时间") @Schema(description = "创建时间")
@JsonProperty("create_time") @JsonProperty("create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
...@@ -58,6 +58,6 @@ public class ExamineQaResponseModel implements Serializable { ...@@ -58,6 +58,6 @@ public class ExamineQaResponseModel implements Serializable {
@Schema(description = "更新时间") @Schema(description = "更新时间")
@JsonProperty("update_time") @JsonProperty("update_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.response; ...@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.response;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ExamineQaXrefResponseModel implements Serializable { public class ExamineQaXrefResponseModel implements Serializable {
...@@ -29,11 +29,11 @@ public class ExamineQaXrefResponseModel implements Serializable { ...@@ -29,11 +29,11 @@ public class ExamineQaXrefResponseModel implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -5,7 +5,7 @@ import com.mybatisflex.annotation.KeyType; ...@@ -5,7 +5,7 @@ import com.mybatisflex.annotation.KeyType;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data
...@@ -52,10 +52,10 @@ public class ExamineRecordResponseModel implements Serializable { ...@@ -52,10 +52,10 @@ public class ExamineRecordResponseModel implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.response; ...@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.response;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data
...@@ -40,12 +40,12 @@ public class ExamineResponseModel implements Serializable { ...@@ -40,12 +40,12 @@ public class ExamineResponseModel implements Serializable {
/** /**
* 开始时间 * 开始时间
*/ */
private LocalDateTime startTime; private Date startTime;
/** /**
* 结束时间 * 结束时间
*/ */
private LocalDateTime endTime; private Date endTime;
/** /**
* 状态(0禁用 1启用) * 状态(0禁用 1启用)
...@@ -65,12 +65,12 @@ public class ExamineResponseModel implements Serializable { ...@@ -65,12 +65,12 @@ public class ExamineResponseModel implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
/** /**
* 关联题目列表 * 关联题目列表
......
...@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; ...@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ExamineSceneCategoryResponseModel implements Serializable { public class ExamineSceneCategoryResponseModel implements Serializable {
...@@ -56,12 +56,12 @@ public class ExamineSceneCategoryResponseModel implements Serializable { ...@@ -56,12 +56,12 @@ public class ExamineSceneCategoryResponseModel implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
/** /**
* 父级分类ID * 父级分类ID
......
...@@ -5,7 +5,7 @@ import com.mybatisflex.annotation.KeyType; ...@@ -5,7 +5,7 @@ import com.mybatisflex.annotation.KeyType;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ExamineSceneResponseModel implements Serializable { public class ExamineSceneResponseModel implements Serializable {
...@@ -40,11 +40,11 @@ public class ExamineSceneResponseModel implements Serializable { ...@@ -40,11 +40,11 @@ public class ExamineSceneResponseModel implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.response; ...@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.response;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class ProperNounResponseModel implements Serializable { public class ProperNounResponseModel implements Serializable {
...@@ -34,11 +34,11 @@ public class ProperNounResponseModel implements Serializable { ...@@ -34,11 +34,11 @@ public class ProperNounResponseModel implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; ...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class QaAssistantResponseModel implements Serializable { public class QaAssistantResponseModel implements Serializable {
...@@ -50,11 +50,11 @@ public class QaAssistantResponseModel implements Serializable { ...@@ -50,11 +50,11 @@ public class QaAssistantResponseModel implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.response; ...@@ -3,7 +3,7 @@ package cn.breeze.elleai.domain.sparring.model.response;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class UserChatCompletionHistoryResponseModel implements Serializable { public class UserChatCompletionHistoryResponseModel implements Serializable {
...@@ -28,6 +28,6 @@ public class UserChatCompletionHistoryResponseModel implements Serializable { ...@@ -28,6 +28,6 @@ public class UserChatCompletionHistoryResponseModel implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
} }
...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; ...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class UserChatCompletionResponseModel implements Serializable { public class UserChatCompletionResponseModel implements Serializable {
...@@ -24,11 +24,11 @@ public class UserChatCompletionResponseModel implements Serializable { ...@@ -24,11 +24,11 @@ public class UserChatCompletionResponseModel implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 最后更新时间 * 最后更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; ...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class WikiCategoryResponseModel implements Serializable { public class WikiCategoryResponseModel implements Serializable {
...@@ -40,11 +40,11 @@ public class WikiCategoryResponseModel implements Serializable { ...@@ -40,11 +40,11 @@ public class WikiCategoryResponseModel implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -5,7 +5,7 @@ import com.mybatisflex.annotation.KeyType; ...@@ -5,7 +5,7 @@ import com.mybatisflex.annotation.KeyType;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
@Data @Data
public class WikiResponseModel implements Serializable { public class WikiResponseModel implements Serializable {
...@@ -61,11 +61,11 @@ public class WikiResponseModel implements Serializable { ...@@ -61,11 +61,11 @@ public class WikiResponseModel implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -24,7 +24,7 @@ import com.mybatisflex.core.update.UpdateChain; ...@@ -24,7 +24,7 @@ import com.mybatisflex.core.update.UpdateChain;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -112,7 +112,7 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{ ...@@ -112,7 +112,7 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{
UserChatCompletionEntity entity = new UserChatCompletionEntity(); UserChatCompletionEntity entity = new UserChatCompletionEntity();
entity.setUserId(userId); entity.setUserId(userId);
entity.setSessionId(sessionId); entity.setSessionId(sessionId);
entity.setUpdateTime(LocalDateTime.now()); entity.setUpdateTime(new Date());
chatCompletionMapper.insertOrUpdateSelective(entity); chatCompletionMapper.insertOrUpdateSelective(entity);
return entity.getId(); return entity.getId();
} }
...@@ -123,7 +123,7 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{ ...@@ -123,7 +123,7 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{
entity.setChatCompletionId(chatCompletionId); entity.setChatCompletionId(chatCompletionId);
entity.setType(type); entity.setType(type);
entity.setContent(content); entity.setContent(content);
entity.setCreateTime(LocalDateTime.now()); entity.setCreateTime(new Date());
chatCompletionHistoryMapper.insertOrUpdateSelective(entity); chatCompletionHistoryMapper.insertOrUpdateSelective(entity);
} }
...@@ -168,7 +168,7 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{ ...@@ -168,7 +168,7 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{
public void updateQaAssistantStatus(Integer id, Integer status) { public void updateQaAssistantStatus(Integer id, Integer status) {
UpdateChain.of(QaAssistantEntity.class) UpdateChain.of(QaAssistantEntity.class)
.set(QA_ASSISTANT_ENTITY.STATUS, status) .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)) .where(QA_ASSISTANT_ENTITY.ID.eq(id))
.update(); .update();
} }
...@@ -177,7 +177,7 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{ ...@@ -177,7 +177,7 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{
public void deleteQaAssistant(Integer id) { public void deleteQaAssistant(Integer id) {
UpdateChain.of(QaAssistantEntity.class) UpdateChain.of(QaAssistantEntity.class)
.set(QA_ASSISTANT_ENTITY.DELETED, 1) .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)) .where(QA_ASSISTANT_ENTITY.ID.eq(id))
.update(); .update();
} }
...@@ -185,7 +185,7 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{ ...@@ -185,7 +185,7 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{
@Override @Override
public void saveQaAssistant(QaAssistantSaveModel dto) { public void saveQaAssistant(QaAssistantSaveModel dto) {
QaAssistantEntity entity = BeanUtil.toBean(dto, QaAssistantEntity.class); QaAssistantEntity entity = BeanUtil.toBean(dto, QaAssistantEntity.class);
entity.setUpdateTime(LocalDateTime.now()); entity.setUpdateTime(new Date());
if(Objects.isNull(entity.getId())) { if(Objects.isNull(entity.getId())) {
entity.setStatus(1); entity.setStatus(1);
entity.setDeleted(0); entity.setDeleted(0);
......
...@@ -14,7 +14,7 @@ import com.mybatisflex.core.update.UpdateChain; ...@@ -14,7 +14,7 @@ import com.mybatisflex.core.update.UpdateChain;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -67,7 +67,7 @@ public class CommonServiceImpl implements CommonService{ ...@@ -67,7 +67,7 @@ public class CommonServiceImpl implements CommonService{
public void updateProperNounStatus(Integer id, Integer status) { public void updateProperNounStatus(Integer id, Integer status) {
UpdateChain.of(ProperNounEntity.class) UpdateChain.of(ProperNounEntity.class)
.set(PROPER_NOUN_ENTITY.STATUS, status) .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)) .where(PROPER_NOUN_ENTITY.ID.eq(id))
.update(); .update();
} }
...@@ -76,7 +76,7 @@ public class CommonServiceImpl implements CommonService{ ...@@ -76,7 +76,7 @@ public class CommonServiceImpl implements CommonService{
public void deleteProperNoun(Integer id) { public void deleteProperNoun(Integer id) {
UpdateChain.of(ProperNounEntity.class) UpdateChain.of(ProperNounEntity.class)
.set(PROPER_NOUN_ENTITY.DELETED, 1) .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)) .where(PROPER_NOUN_ENTITY.ID.eq(id))
.update(); .update();
} }
...@@ -84,7 +84,7 @@ public class CommonServiceImpl implements CommonService{ ...@@ -84,7 +84,7 @@ public class CommonServiceImpl implements CommonService{
@Override @Override
public void saveProperNoun(ProperNounSaveModel dto) { public void saveProperNoun(ProperNounSaveModel dto) {
ProperNounEntity entity = BeanUtil.toBean(dto, ProperNounEntity.class); ProperNounEntity entity = BeanUtil.toBean(dto, ProperNounEntity.class);
entity.setUpdateTime(LocalDateTime.now()); entity.setUpdateTime(new Date());
if(Objects.isNull(entity.getId())) { if(Objects.isNull(entity.getId())) {
entity.setStatus(1); entity.setStatus(1);
entity.setDeleted(0); entity.setDeleted(0);
......
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;
}
...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id; ...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table; import com.mybatisflex.annotation.Table;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.io.Serial; import java.io.Serial;
...@@ -60,12 +60,12 @@ public class ExamineEntity implements Serializable { ...@@ -60,12 +60,12 @@ public class ExamineEntity implements Serializable {
/** /**
* 开始时间 * 开始时间
*/ */
private LocalDateTime startTime; private Date startTime;
/** /**
* 结束时间 * 结束时间
*/ */
private LocalDateTime endTime; private Date endTime;
/** /**
* 状态(0禁用 1启用) * 状态(0禁用 1启用)
...@@ -85,11 +85,11 @@ public class ExamineEntity implements Serializable { ...@@ -85,11 +85,11 @@ public class ExamineEntity implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id; ...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table; import com.mybatisflex.annotation.Table;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.io.Serial; import java.io.Serial;
...@@ -60,11 +60,11 @@ public class ExamineQaEntity implements Serializable { ...@@ -60,11 +60,11 @@ public class ExamineQaEntity implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id; ...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table; import com.mybatisflex.annotation.Table;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.io.Serial; import java.io.Serial;
...@@ -50,11 +50,11 @@ public class ExamineQaXrefEntity implements Serializable { ...@@ -50,11 +50,11 @@ public class ExamineQaXrefEntity implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id; ...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table; import com.mybatisflex.annotation.Table;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.io.Serial; import java.io.Serial;
...@@ -65,12 +65,12 @@ public class ExamineSceneCategoryEntity implements Serializable { ...@@ -65,12 +65,12 @@ public class ExamineSceneCategoryEntity implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
/** /**
* 父级分类ID * 父级分类ID
......
...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id; ...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table; import com.mybatisflex.annotation.Table;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.io.Serial; import java.io.Serial;
...@@ -60,11 +60,11 @@ public class ExamineSceneEntity implements Serializable { ...@@ -60,11 +60,11 @@ public class ExamineSceneEntity implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id; ...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table; import com.mybatisflex.annotation.Table;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.io.Serial; import java.io.Serial;
...@@ -55,11 +55,11 @@ public class ProperNounEntity implements Serializable { ...@@ -55,11 +55,11 @@ public class ProperNounEntity implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id; ...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table; import com.mybatisflex.annotation.Table;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.io.Serial; import java.io.Serial;
...@@ -70,11 +70,11 @@ public class QaAssistantEntity implements Serializable { ...@@ -70,11 +70,11 @@ public class QaAssistantEntity implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -11,7 +11,7 @@ import lombok.NoArgsConstructor; ...@@ -11,7 +11,7 @@ import lombok.NoArgsConstructor;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
/** /**
* 实体类。 * 实体类。
...@@ -45,11 +45,11 @@ public class UserChatCompletionEntity implements Serializable { ...@@ -45,11 +45,11 @@ public class UserChatCompletionEntity implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 最后更新时间 * 最后更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -10,7 +10,7 @@ import lombok.NoArgsConstructor; ...@@ -10,7 +10,7 @@ import lombok.NoArgsConstructor;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
/** /**
* 实体类。 * 实体类。
...@@ -49,6 +49,6 @@ public class UserChatCompletionHistoryEntity implements Serializable { ...@@ -49,6 +49,6 @@ public class UserChatCompletionHistoryEntity implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
} }
...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id; ...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table; import com.mybatisflex.annotation.Table;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.io.Serial; import java.io.Serial;
...@@ -60,11 +60,11 @@ public class UserExamineDetailRecordEntity implements Serializable { ...@@ -60,11 +60,11 @@ public class UserExamineDetailRecordEntity implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id; ...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table; import com.mybatisflex.annotation.Table;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.io.Serial; import java.io.Serial;
...@@ -70,11 +70,11 @@ public class UserExamineRecordEntity implements Serializable { ...@@ -70,11 +70,11 @@ public class UserExamineRecordEntity implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id; ...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table; import com.mybatisflex.annotation.Table;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.io.Serial; import java.io.Serial;
...@@ -55,12 +55,12 @@ public class WikiCategoryEntity implements Serializable { ...@@ -55,12 +55,12 @@ public class WikiCategoryEntity implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
/** /**
* 父级分类ID * 父级分类ID
......
...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id; ...@@ -4,7 +4,7 @@ import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table; import com.mybatisflex.annotation.Table;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import java.io.Serial; import java.io.Serial;
...@@ -80,11 +80,11 @@ public class WikiEntity implements Serializable { ...@@ -80,11 +80,11 @@ public class WikiEntity implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private Date createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private LocalDateTime updateTime; private Date updateTime;
} }
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;
}
}
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
...@@ -6,17 +6,6 @@ package cn.breeze.elleai.util; ...@@ -6,17 +6,6 @@ package cn.breeze.elleai.util;
public abstract class Codes { 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 { ...@@ -31,12 +20,7 @@ public abstract class Codes {
/** /**
* jwt签名 * jwt签名
*/ */
public static final String JWT_SIGN_KEY = "ZDQ0MjhlODYyNzE4MzJhZWUyN2U1MTQ5Yzk2NTA5MGU="; public static final String JWT_SIGN_KEY = "mezeron-ai";
/**
* aes签名key
*/
public static final String JWT_AES_KEY = "fys3xpev0bupb7u1wah3zg7tr3syumzr";
/** /**
......
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;
}
package cn.breeze.elleai.util; 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.JWT;
import com.auth0.jwt.JWTVerifier; import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.Claim; import com.auth0.jwt.interfaces.Claim;
import com.auth0.jwt.interfaces.DecodedJWT; import com.auth0.jwt.interfaces.DecodedJWT;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; 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 org.springframework.stereotype.Component;
import reactor.core.publisher.Mono;
import java.util.Date; import java.util.*;
import java.util.HashMap;
import java.util.Map;
/** /**
* @author qx * @author qx
* @date 2023/7/4 * @date 2023/7/4
* @des JWT工具类 * @des JWT工具类
*/ */
@Component
@RequiredArgsConstructor
public class JwtUtil { 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);
/** String userId = jwt.getClaim("userId").asString();
* 生成一个jwt字符串 String userName = jwt.getClaim("userName").asString();
* String position = jwt.getClaim("position").asString();
* @param username 用户名 String shopId = jwt.getClaim("shopId").asString();
* @return jwt字符串 String shopName = jwt.getClaim("shopName").asString();
*/ String jobTitle = jwt.getClaim("jobTitle").asString();
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);
}
/** UserPrincipal principal = new UserPrincipal();
* 生成refreshToken principal.setUserId(userId);
* principal.setUserName(userName);
* @param username 用户名 principal.setPosition(position);
* @return principal.setShopId(shopId);
*/ principal.setShopName(shopName);
public String refreshToken(String username) { principal.setJobTitle(jobTitle);
Algorithm algorithm = Algorithm.HMAC256(jwtProperties.getSecret()); return principal;
return JWT.create()
// 设置更新时间2个小时
.withExpiresAt(new Date(System.currentTimeMillis() + jwtProperties.getRefreshTime() * 60 * 1000))
// 设置负载
.withClaim("username", username).sign(algorithm);
} }
public static Mono<Authentication> convert(HttpServletRequest request) {
return Mono.just(request).flatMap(ex -> {
String token = null;
public static void main(String[] args) { String headerVal = request.getHeader("Authorization");
Algorithm algorithm = Algorithm.HMAC256("KU5TjMO6zmh03bU3"); if (StrUtil.isNotBlank(headerVal) && headerVal.startsWith("Bearer ")) {
String username = "admin"; token = headerVal.substring(7);
String token = JWT.create() } else {
// 设置过期时间1个小时 Cookie[] cookies = request.getCookies();
.withExpiresAt(new Date(System.currentTimeMillis() + 60 * 60 * 1000)) if (Objects.nonNull(cookies) && cookies.length > 0) {
// 设置负载 Optional<Cookie> jwt = Arrays.stream(cookies).filter(v -> Objects.equals(v.getName(), "jwt")).findFirst();
.withClaim("username", username).sign(algorithm); if (jwt.isPresent()) {
System.out.println(token); token = jwt.get().getValue();
} }
/**
* 校验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;
} }
return Mono.justOrEmpty(token);
} }).flatMap(token -> Mono.justOrEmpty(checkAndTransformV2(token))
.map(payload -> {
/** if(ObjectUtil.isNull(payload)) {
* 重新生成token和refreshToken //解密失败,jwt无效时返回为通过的授权
* return UsernamePasswordAuthenticationToken.unauthenticated("", "");
* @param refreshToken refreshToken } else {
* @return 返回token和refreshToken //解密成功,jwt验证通过,返回授权
*/ return UsernamePasswordAuthenticationToken.authenticated(payload, "", Collections.emptyList());
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;
} }
} }
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());
// }
}
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;
}
}
...@@ -10,11 +10,17 @@ import java.io.Serializable; ...@@ -10,11 +10,17 @@ import java.io.Serializable;
@Data @Data
public class UserPrincipal implements Serializable { public class UserPrincipal implements Serializable {
private String jti; private String userId;
private String username; private String userName;
private Long userId; private String position;
private String jobTitle;
private String shopId;
private String shopName;
private PrincipalEnum type; private PrincipalEnum type;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment