diff --git a/pom.xml b/pom.xml index 36c8d75..d415785 100644 --- a/pom.xml +++ b/pom.xml @@ -32,6 +32,62 @@ spring-boot-starter-test test + + org.mockito + mockito-junit-jupiter + test + + + org.flywaydb + flyway-core + + + org.flywaydb + flyway-mysql + + + + mysql + mysql-connector-java + 8.0.28 + + + com.alibaba + druid + 1.2.8 + + + + com.baomidou + mybatis-plus-boot-starter + + + + org.mybatis + mybatis-spring + + + 3.5.5 + + + + + cn.dev33 + sa-token-spring-boot3-starter + 1.38.0 + + + + org.mybatis + mybatis-spring + 3.0.3 + + + com.baomidou + mybatis-plus-generator + 3.5.5 + + diff --git a/src/main/java/com/guo/learningprogresstracker/LearningProgressTrackerApplication.java b/src/main/java/com/guo/learningprogresstracker/LearningProgressTrackerApplication.java index 89bb24b..6a9fb39 100644 --- a/src/main/java/com/guo/learningprogresstracker/LearningProgressTrackerApplication.java +++ b/src/main/java/com/guo/learningprogresstracker/LearningProgressTrackerApplication.java @@ -1,13 +1,20 @@ package com.guo.learningprogresstracker; +import cn.dev33.satoken.SaManager; +import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** + * @author guo + * 应用程序启动类 + */ @SpringBootApplication public class LearningProgressTrackerApplication { public static void main(String[] args) { SpringApplication.run(LearningProgressTrackerApplication.class, args); + System.out.println("启动成功,Sa-Token 配置如下:" + SaManager.getConfig()); } } diff --git a/src/main/java/com/guo/learningprogresstracker/controller/LoginController.java b/src/main/java/com/guo/learningprogresstracker/controller/LoginController.java new file mode 100644 index 0000000..a705feb --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/controller/LoginController.java @@ -0,0 +1,29 @@ +package com.guo.learningprogresstracker.controller; + +import com.guo.learningprogresstracker.domain.entity.CommonResult; +import com.guo.learningprogresstracker.domain.model.LoginBody; +import com.guo.learningprogresstracker.exception.AppException; +import com.guo.learningprogresstracker.service.LoginService; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @author guo + */ +@CrossOrigin +@RestController +public class LoginController { + + @Resource + private LoginService loginService; + + @PostMapping("/login") + public CommonResult login(@RequestBody LoginBody loginBody) throws AppException { + String token = loginService.login(loginBody.getUsername(),loginBody.getPassword()); + return CommonResult.success("登录成功!",token); + } +} \ No newline at end of file diff --git a/src/main/java/com/guo/learningprogresstracker/domain/entity/BaseEntity.java b/src/main/java/com/guo/learningprogresstracker/domain/entity/BaseEntity.java new file mode 100644 index 0000000..8b188b9 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/domain/entity/BaseEntity.java @@ -0,0 +1,26 @@ +package com.guo.learningprogresstracker.domain.entity; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @author guo + */ +@Data +public class BaseEntity { + + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createdTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @TableField(fill = FieldFill.INSERT) + private String createdBy; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updatedBy; +} diff --git a/src/main/java/com/guo/learningprogresstracker/domain/entity/StudyExpectationsEntity.java b/src/main/java/com/guo/learningprogresstracker/domain/entity/StudyExpectationsEntity.java new file mode 100644 index 0000000..4ae74e4 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/domain/entity/StudyExpectationsEntity.java @@ -0,0 +1,62 @@ +package com.guo.learningprogresstracker.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * 存储每次学习开始前的预期 + * @TableName study_expectations + */ +@TableName(value ="study_expectations") +@Data +public class StudyExpectationsEntity extends BaseEntity implements Serializable { + /** + * + */ + @TableId(value = "expectation_id", type = IdType.AUTO) + private Integer expectationId; + + /** + * + */ + @TableField(value = "session_id") + private Integer sessionId; + + /** + * 学习预期的详细描述 + */ + @TableField(value = "description") + private String description; + + /** + * + */ + @TableField(value = "created_time") + private LocalDateTime createdTime; + + /** + * + */ + @TableField(value = "created_by") + private String createdBy; + + /** + * + */ + @TableField(value = "last_modified_time") + private LocalDateTime lastModifiedTime; + + /** + * + */ + @TableField(value = "last_modified_by") + private String lastModifiedBy; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/guo/learningprogresstracker/domain/entity/StudyReportFragmentsEntity.java b/src/main/java/com/guo/learningprogresstracker/domain/entity/StudyReportFragmentsEntity.java new file mode 100644 index 0000000..3d03803 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/domain/entity/StudyReportFragmentsEntity.java @@ -0,0 +1,62 @@ +package com.guo.learningprogresstracker.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * 记录学习过程中的学习内容报告残片 + * @TableName study_report_fragments + */ +@TableName(value ="study_report_fragments") +@Data +public class StudyReportFragmentsEntity extends BaseEntity implements Serializable { + /** + * + */ + @TableId(value = "fragment_id", type = IdType.AUTO) + private Integer fragmentId; + + /** + * + */ + @TableField(value = "session_id") + private Integer sessionId; + + /** + * 学习内容的描述 + */ + @TableField(value = "content") + private String content; + + /** + * 创建时间 + */ + @TableField(value = "created_time") + private LocalDateTime createdTime; + + /** + * + */ + @TableField(value = "created_by") + private String createdBy; + + /** + * + */ + @TableField(value = "last_modified_time") + private LocalDateTime lastModifiedTime; + + /** + * + */ + @TableField(value = "last_modified_by") + private String lastModifiedBy; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/guo/learningprogresstracker/domain/entity/StudyReportsEntity.java b/src/main/java/com/guo/learningprogresstracker/domain/entity/StudyReportsEntity.java new file mode 100644 index 0000000..9bb4fa4 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/domain/entity/StudyReportsEntity.java @@ -0,0 +1,62 @@ +package com.guo.learningprogresstracker.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * 存储每次学习结束时的完整学习报告 + * @TableName study_reports + */ +@TableName(value ="study_reports") +@Data +public class StudyReportsEntity extends BaseEntity implements Serializable { + /** + * + */ + @TableId(value = "report_id", type = IdType.AUTO) + private Integer reportId; + + /** + * + */ + @TableField(value = "session_id") + private Integer sessionId; + + /** + * 完整的学习报告内容 + */ + @TableField(value = "content") + private String content; + + /** + * 创建时间 + */ + @TableField(value = "created_time") + private LocalDateTime createdTime; + + /** + * + */ + @TableField(value = "created_by") + private String createdBy; + + /** + * + */ + @TableField(value = "last_modified_time") + private LocalDateTime lastModifiedTime; + + /** + * + */ + @TableField(value = "last_modified_by") + private String lastModifiedBy; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/guo/learningprogresstracker/domain/entity/StudySessionsEntity.java b/src/main/java/com/guo/learningprogresstracker/domain/entity/StudySessionsEntity.java new file mode 100644 index 0000000..33dc4f0 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/domain/entity/StudySessionsEntity.java @@ -0,0 +1,92 @@ +package com.guo.learningprogresstracker.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * 记录每次学习会话的具体数据 + * @TableName study_sessions + */ +@TableName(value ="study_sessions") +@Data +public class StudySessionsEntity extends BaseEntity implements Serializable { + /** + * + */ + @TableId(value = "session_id", type = IdType.AUTO) + private Integer sessionId; + + /** + * + */ + @TableField(value = "task_id") + private Integer taskId; + + /** + * 学习开始时间 + */ + @TableField(value = "start_time") + private LocalDateTime startTime; + + /** + * 学习结束时间 + */ + @TableField(value = "end_time") + private LocalDateTime endTime; + + /** + * 实际使用时间(分钟) + */ + @TableField(value = "actual_time") + private Integer actualTime; + + /** + * 有效学习时间(分钟) + */ + @TableField(value = "effective_time") + private Integer effectiveTime; + + /** + * 有效时间比 + */ + @TableField(value = "effectiveness_ratio") + private Double effectivenessRatio; + + /** + * 学习会话的状态(进行中、暂停、已结束) + */ + @TableField(value = "session_state") + private String sessionState; + + /** + * + */ + @TableField(value = "created_by") + private String createdBy; + + /** + * + */ + @TableField(value = "last_modified_time") + private LocalDateTime lastModifiedTime; + + /** + * + */ + @TableField(value = "last_modified_by") + private String lastModifiedBy; + + /** + * + */ + @TableField(value = "created_time") + private LocalDateTime createdTime; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/guo/learningprogresstracker/domain/entity/TasksEntity.java b/src/main/java/com/guo/learningprogresstracker/domain/entity/TasksEntity.java new file mode 100644 index 0000000..f607664 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/domain/entity/TasksEntity.java @@ -0,0 +1,98 @@ +package com.guo.learningprogresstracker.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * 存储学习任务的基本信息,包括优先级的多维度计算 + * @TableName tasks + */ +@TableName(value ="tasks") +@Data +public class TasksEntity extends BaseEntity implements Serializable { + /** + * + */ + @TableId(value = "task_id", type = IdType.AUTO) + private Integer taskId; + + /** + * 学习任务的名称 + */ + @TableField(value = "task_name") + private String taskName; + + /** + * 学习材料的存储URL + */ + @TableField(value = "material_url") + private String materialUrl; + + /** + * 用户设置的任务紧急性 + */ + @TableField(value = "urgency") + private Integer urgency; + + /** + * 用户设置的任务重要性 + */ + @TableField(value = "importance") + private Integer importance; + + /** + * 任务的内容难度 + */ + @TableField(value = "content_difficulty") + private Integer contentDifficulty; + + /** + * 任务的未来价值 + */ + @TableField(value = "future_value") + private Integer futureValue; + + /** + * 用户对任务的主观优先级 + */ + @TableField(value = "subjective_priority") + private Integer subjectivePriority; + + /** + * 通过算法计算得出的任务优先级 + */ + @TableField(value = "calculated_priority") + private Double calculatedPriority; + + /** + * + */ + @TableField(value = "created_time") + private LocalDateTime createdTime; + + /** + * + */ + @TableField(value = "created_by") + private String createdBy; + + /** + * + */ + @TableField(value = "last_modified_time") + private LocalDateTime lastModifiedTime; + + /** + * + */ + @TableField(value = "last_modified_by") + private String lastModifiedBy; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/guo/learningprogresstracker/domain/entity/UserEntity.java b/src/main/java/com/guo/learningprogresstracker/domain/entity/UserEntity.java new file mode 100644 index 0000000..8b0deb8 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/domain/entity/UserEntity.java @@ -0,0 +1,49 @@ +package com.guo.learningprogresstracker.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * 用户信息表 + * @TableName user + */ +@TableName(value ="user") +@Data +public class UserEntity extends BaseEntity implements Serializable { + /** + * 用户id + */ + @TableId(value = "id") + private String id; + + /** + * 账号-登录用 + */ + @TableField(value = "user_name") + private String userName; + + /** + * 账号密码 + */ + @TableField(value = "user_password") + private String userPassword; + + /** + * + */ + @TableField(value = "created_time") + private LocalDateTime createdTime; + + /** + * + */ + @TableField(value = "created_by") + private String createdBy; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/guo/learningprogresstracker/domain/entity/UserTaskEntity.java b/src/main/java/com/guo/learningprogresstracker/domain/entity/UserTaskEntity.java new file mode 100644 index 0000000..4d411df --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/domain/entity/UserTaskEntity.java @@ -0,0 +1,60 @@ +package com.guo.learningprogresstracker.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * 存储用户-任务之间的对应关系 + * @TableName user_task + */ +@TableName(value ="user_task") +@Data +public class UserTaskEntity extends BaseEntity implements Serializable { + /** + * + */ + @TableField(value = "id") + private String id; + + /** + * 用户id + */ + @TableField(value = "user_id") + private Integer userId; + + /** + * 任务id + */ + @TableField(value = "task_id") + private Integer taskId; + + /** + * + */ + @TableField(value = "created_time") + private LocalDateTime createdTime; + + /** + * + */ + @TableField(value = "created_by") + private String createdBy; + + /** + * + */ + @TableField(value = "last_modified_time") + private LocalDateTime lastModifiedTime; + + /** + * + */ + @TableField(value = "last_modified_by") + private String lastModifiedBy; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/guo/learningprogresstracker/domain/model/LoginBody.java b/src/main/java/com/guo/learningprogresstracker/domain/model/LoginBody.java new file mode 100644 index 0000000..89fb802 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/domain/model/LoginBody.java @@ -0,0 +1,13 @@ +package com.guo.learningprogresstracker.domain.model; + +import lombok.Data; + +/** + * 登录-数据模型 + * @author guo + */ +@Data +public class LoginBody { + private String username; + private String password; +} diff --git a/src/main/java/com/guo/learningprogresstracker/mapper/StudyExpectationsMapper.java b/src/main/java/com/guo/learningprogresstracker/mapper/StudyExpectationsMapper.java new file mode 100644 index 0000000..d04d89e --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/mapper/StudyExpectationsMapper.java @@ -0,0 +1,20 @@ +package com.guo.learningprogresstracker.mapper; + +import com.guo.learningprogresstracker.domain.entity.StudyExpectationsEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** +* @author guo +* @description 针对表【study_expectations(存储每次学习开始前的预期)】的数据库操作Mapper +* @createDate 2024-06-09 15:28:48 +* @Entity com.guo.learningprogresstracker.entity.StudyExpectationsEntity +*/ +@Mapper +public interface StudyExpectationsMapper extends BaseMapper { + +} + + + + diff --git a/src/main/java/com/guo/learningprogresstracker/mapper/StudyReportFragmentsMapper.java b/src/main/java/com/guo/learningprogresstracker/mapper/StudyReportFragmentsMapper.java new file mode 100644 index 0000000..543abc2 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/mapper/StudyReportFragmentsMapper.java @@ -0,0 +1,20 @@ +package com.guo.learningprogresstracker.mapper; + +import com.guo.learningprogresstracker.domain.entity.StudyReportFragmentsEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** +* @author guo +* @description 针对表【study_report_fragments(记录学习过程中的学习内容报告残片)】的数据库操作Mapper +* @createDate 2024-06-09 15:28:48 +* @Entity com.guo.learningprogresstracker.entity.StudyReportFragmentsEntity +*/ +@Mapper +public interface StudyReportFragmentsMapper extends BaseMapper { + +} + + + + diff --git a/src/main/java/com/guo/learningprogresstracker/mapper/StudyReportsMapper.java b/src/main/java/com/guo/learningprogresstracker/mapper/StudyReportsMapper.java new file mode 100644 index 0000000..3d22e20 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/mapper/StudyReportsMapper.java @@ -0,0 +1,20 @@ +package com.guo.learningprogresstracker.mapper; + +import com.guo.learningprogresstracker.domain.entity.StudyReportsEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** +* @author guo +* @description 针对表【study_reports(存储每次学习结束时的完整学习报告)】的数据库操作Mapper +* @createDate 2024-06-09 15:28:48 +* @Entity com.guo.learningprogresstracker.entity.StudyReportsEntity +*/ +@Mapper +public interface StudyReportsMapper extends BaseMapper { + +} + + + + diff --git a/src/main/java/com/guo/learningprogresstracker/mapper/StudySessionsMapper.java b/src/main/java/com/guo/learningprogresstracker/mapper/StudySessionsMapper.java new file mode 100644 index 0000000..906eff0 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/mapper/StudySessionsMapper.java @@ -0,0 +1,20 @@ +package com.guo.learningprogresstracker.mapper; + +import com.guo.learningprogresstracker.domain.entity.StudySessionsEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** +* @author guo +* @description 针对表【study_sessions(记录每次学习会话的具体数据)】的数据库操作Mapper +* @createDate 2024-06-09 15:28:48 +* @Entity com.guo.learningprogresstracker.entity.StudySessionsEntity +*/ +@Mapper +public interface StudySessionsMapper extends BaseMapper { + +} + + + + diff --git a/src/main/java/com/guo/learningprogresstracker/mapper/TasksMapper.java b/src/main/java/com/guo/learningprogresstracker/mapper/TasksMapper.java new file mode 100644 index 0000000..f76813e --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/mapper/TasksMapper.java @@ -0,0 +1,20 @@ +package com.guo.learningprogresstracker.mapper; + +import com.guo.learningprogresstracker.domain.entity.TasksEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** +* @author guo +* @description 针对表【tasks(存储学习任务的基本信息,包括优先级的多维度计算)】的数据库操作Mapper +* @createDate 2024-06-09 15:28:48 +* @Entity com.guo.learningprogresstracker.entity.TasksEntity +*/ +@Mapper +public interface TasksMapper extends BaseMapper { + +} + + + + diff --git a/src/main/java/com/guo/learningprogresstracker/mapper/UserMapper.java b/src/main/java/com/guo/learningprogresstracker/mapper/UserMapper.java new file mode 100644 index 0000000..7267bc6 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/mapper/UserMapper.java @@ -0,0 +1,20 @@ +package com.guo.learningprogresstracker.mapper; + +import com.guo.learningprogresstracker.domain.entity.UserEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** +* @author guo +* @description 针对表【user(用户信息表)】的数据库操作Mapper +* @createDate 2024-06-09 15:28:48 +* @Entity com.guo.learningprogresstracker.entity.UserEntity +*/ +@Mapper +public interface UserMapper extends BaseMapper { + +} + + + + diff --git a/src/main/java/com/guo/learningprogresstracker/mapper/UserTaskMapper.java b/src/main/java/com/guo/learningprogresstracker/mapper/UserTaskMapper.java new file mode 100644 index 0000000..474b7f0 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/mapper/UserTaskMapper.java @@ -0,0 +1,20 @@ +package com.guo.learningprogresstracker.mapper; + +import com.guo.learningprogresstracker.domain.entity.UserTaskEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** +* @author guo +* @description 针对表【user_task(存储用户-任务之间的对应关系)】的数据库操作Mapper +* @createDate 2024-06-09 15:28:48 +* @Entity com.guo.learningprogresstracker.entity.UserTaskEntity +*/ +@Mapper +public interface UserTaskMapper extends BaseMapper { + +} + + + + diff --git a/src/main/java/com/guo/learningprogresstracker/service/LoginService.java b/src/main/java/com/guo/learningprogresstracker/service/LoginService.java new file mode 100644 index 0000000..078669d --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/LoginService.java @@ -0,0 +1,9 @@ +package com.guo.learningprogresstracker.service; + +import com.guo.learningprogresstracker.domain.entity.CommonResult; +import com.guo.learningprogresstracker.exception.AppException; + +public interface LoginService { + + String login(String username, String password) throws AppException; +} diff --git a/src/main/java/com/guo/learningprogresstracker/service/StudyExpectationsService.java b/src/main/java/com/guo/learningprogresstracker/service/StudyExpectationsService.java new file mode 100644 index 0000000..d7cb996 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/StudyExpectationsService.java @@ -0,0 +1,13 @@ +package com.guo.learningprogresstracker.service; + +import com.guo.learningprogresstracker.domain.entity.StudyExpectationsEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author guo +* @description 针对表【study_expectations(存储每次学习开始前的预期)】的数据库操作Service +* @createDate 2024-06-09 15:28:48 +*/ +public interface StudyExpectationsService extends IService { + +} diff --git a/src/main/java/com/guo/learningprogresstracker/service/StudyReportFragmentsService.java b/src/main/java/com/guo/learningprogresstracker/service/StudyReportFragmentsService.java new file mode 100644 index 0000000..62f76d3 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/StudyReportFragmentsService.java @@ -0,0 +1,13 @@ +package com.guo.learningprogresstracker.service; + +import com.guo.learningprogresstracker.domain.entity.StudyReportFragmentsEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author guo +* @description 针对表【study_report_fragments(记录学习过程中的学习内容报告残片)】的数据库操作Service +* @createDate 2024-06-09 15:28:48 +*/ +public interface StudyReportFragmentsService extends IService { + +} diff --git a/src/main/java/com/guo/learningprogresstracker/service/StudyReportsService.java b/src/main/java/com/guo/learningprogresstracker/service/StudyReportsService.java new file mode 100644 index 0000000..ec77440 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/StudyReportsService.java @@ -0,0 +1,13 @@ +package com.guo.learningprogresstracker.service; + +import com.guo.learningprogresstracker.domain.entity.StudyReportsEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author guo +* @description 针对表【study_reports(存储每次学习结束时的完整学习报告)】的数据库操作Service +* @createDate 2024-06-09 15:28:48 +*/ +public interface StudyReportsService extends IService { + +} diff --git a/src/main/java/com/guo/learningprogresstracker/service/StudySessionsService.java b/src/main/java/com/guo/learningprogresstracker/service/StudySessionsService.java new file mode 100644 index 0000000..e56ad7f --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/StudySessionsService.java @@ -0,0 +1,13 @@ +package com.guo.learningprogresstracker.service; + +import com.guo.learningprogresstracker.domain.entity.StudySessionsEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author guo +* @description 针对表【study_sessions(记录每次学习会话的具体数据)】的数据库操作Service +* @createDate 2024-06-09 15:28:48 +*/ +public interface StudySessionsService extends IService { + +} diff --git a/src/main/java/com/guo/learningprogresstracker/service/TasksService.java b/src/main/java/com/guo/learningprogresstracker/service/TasksService.java new file mode 100644 index 0000000..636b42f --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/TasksService.java @@ -0,0 +1,13 @@ +package com.guo.learningprogresstracker.service; + +import com.guo.learningprogresstracker.domain.entity.TasksEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author guo +* @description 针对表【tasks(存储学习任务的基本信息,包括优先级的多维度计算)】的数据库操作Service +* @createDate 2024-06-09 15:28:48 +*/ +public interface TasksService extends IService { + +} diff --git a/src/main/java/com/guo/learningprogresstracker/service/UserService.java b/src/main/java/com/guo/learningprogresstracker/service/UserService.java new file mode 100644 index 0000000..9cac390 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/UserService.java @@ -0,0 +1,13 @@ +package com.guo.learningprogresstracker.service; + +import com.guo.learningprogresstracker.domain.entity.UserEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author guo +* @description 针对表【user(用户信息表)】的数据库操作Service +* @createDate 2024-06-09 15:28:48 +*/ +public interface UserService extends IService { + +} diff --git a/src/main/java/com/guo/learningprogresstracker/service/UserTaskService.java b/src/main/java/com/guo/learningprogresstracker/service/UserTaskService.java new file mode 100644 index 0000000..95afed5 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/UserTaskService.java @@ -0,0 +1,13 @@ +package com.guo.learningprogresstracker.service; + +import com.guo.learningprogresstracker.domain.entity.UserTaskEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author guo +* @description 针对表【user_task(存储用户-任务之间的对应关系)】的数据库操作Service +* @createDate 2024-06-09 15:28:48 +*/ +public interface UserTaskService extends IService { + +} diff --git a/src/main/java/com/guo/learningprogresstracker/service/impl/LoginServiceImpl.java b/src/main/java/com/guo/learningprogresstracker/service/impl/LoginServiceImpl.java new file mode 100644 index 0000000..5ac5b2e --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/impl/LoginServiceImpl.java @@ -0,0 +1,26 @@ +package com.guo.learningprogresstracker.service.impl; + +import cn.dev33.satoken.stp.StpUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.guo.learningprogresstracker.domain.entity.CommonResult; +import com.guo.learningprogresstracker.domain.entity.UserEntity; +import com.guo.learningprogresstracker.exception.AppException; +import com.guo.learningprogresstracker.service.LoginService; +import com.guo.learningprogresstracker.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class LoginServiceImpl implements LoginService { + @Autowired + private UserService userService; + @Override + public String login(String username, String password) throws AppException { + UserEntity userEntity = userService.getOneOpt(Wrappers.lambdaQuery() + .eq(UserEntity::getUserName, username) + .eq(UserEntity::getUserPassword, password)).orElseThrow(() -> new AppException("账号或密码错误!")); + StpUtil.login(userEntity.getId()); + //todo Token只在此处使用了,属于后续优化点 + return StpUtil.getTokenInfo().getTokenValue(); + } +} diff --git a/src/main/java/com/guo/learningprogresstracker/service/impl/StudyExpectationsServiceImpl.java b/src/main/java/com/guo/learningprogresstracker/service/impl/StudyExpectationsServiceImpl.java new file mode 100644 index 0000000..ae8b2ab --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/impl/StudyExpectationsServiceImpl.java @@ -0,0 +1,22 @@ +package com.guo.learningprogresstracker.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.guo.learningprogresstracker.domain.entity.StudyExpectationsEntity; +import com.guo.learningprogresstracker.service.StudyExpectationsService; +import com.guo.learningprogresstracker.mapper.StudyExpectationsMapper; +import org.springframework.stereotype.Service; + +/** +* @author guo +* @description 针对表【study_expectations(存储每次学习开始前的预期)】的数据库操作Service实现 +* @createDate 2024-06-09 15:28:48 +*/ +@Service +public class StudyExpectationsServiceImpl extends ServiceImpl + implements StudyExpectationsService{ + +} + + + + diff --git a/src/main/java/com/guo/learningprogresstracker/service/impl/StudyReportFragmentsServiceImpl.java b/src/main/java/com/guo/learningprogresstracker/service/impl/StudyReportFragmentsServiceImpl.java new file mode 100644 index 0000000..79826b1 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/impl/StudyReportFragmentsServiceImpl.java @@ -0,0 +1,22 @@ +package com.guo.learningprogresstracker.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.guo.learningprogresstracker.domain.entity.StudyReportFragmentsEntity; +import com.guo.learningprogresstracker.service.StudyReportFragmentsService; +import com.guo.learningprogresstracker.mapper.StudyReportFragmentsMapper; +import org.springframework.stereotype.Service; + +/** +* @author guo +* @description 针对表【study_report_fragments(记录学习过程中的学习内容报告残片)】的数据库操作Service实现 +* @createDate 2024-06-09 15:28:48 +*/ +@Service +public class StudyReportFragmentsServiceImpl extends ServiceImpl + implements StudyReportFragmentsService{ + +} + + + + diff --git a/src/main/java/com/guo/learningprogresstracker/service/impl/StudyReportsServiceImpl.java b/src/main/java/com/guo/learningprogresstracker/service/impl/StudyReportsServiceImpl.java new file mode 100644 index 0000000..44b6a95 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/impl/StudyReportsServiceImpl.java @@ -0,0 +1,22 @@ +package com.guo.learningprogresstracker.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.guo.learningprogresstracker.domain.entity.StudyReportsEntity; +import com.guo.learningprogresstracker.service.StudyReportsService; +import com.guo.learningprogresstracker.mapper.StudyReportsMapper; +import org.springframework.stereotype.Service; + +/** +* @author guo +* @description 针对表【study_reports(存储每次学习结束时的完整学习报告)】的数据库操作Service实现 +* @createDate 2024-06-09 15:28:48 +*/ +@Service +public class StudyReportsServiceImpl extends ServiceImpl + implements StudyReportsService{ + +} + + + + diff --git a/src/main/java/com/guo/learningprogresstracker/service/impl/StudySessionsServiceImpl.java b/src/main/java/com/guo/learningprogresstracker/service/impl/StudySessionsServiceImpl.java new file mode 100644 index 0000000..f283bfa --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/impl/StudySessionsServiceImpl.java @@ -0,0 +1,22 @@ +package com.guo.learningprogresstracker.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.guo.learningprogresstracker.domain.entity.StudySessionsEntity; +import com.guo.learningprogresstracker.service.StudySessionsService; +import com.guo.learningprogresstracker.mapper.StudySessionsMapper; +import org.springframework.stereotype.Service; + +/** +* @author guo +* @description 针对表【study_sessions(记录每次学习会话的具体数据)】的数据库操作Service实现 +* @createDate 2024-06-09 15:28:48 +*/ +@Service +public class StudySessionsServiceImpl extends ServiceImpl + implements StudySessionsService{ + +} + + + + diff --git a/src/main/java/com/guo/learningprogresstracker/service/impl/TasksServiceImpl.java b/src/main/java/com/guo/learningprogresstracker/service/impl/TasksServiceImpl.java new file mode 100644 index 0000000..a43ac04 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/impl/TasksServiceImpl.java @@ -0,0 +1,22 @@ +package com.guo.learningprogresstracker.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.guo.learningprogresstracker.domain.entity.TasksEntity; +import com.guo.learningprogresstracker.service.TasksService; +import com.guo.learningprogresstracker.mapper.TasksMapper; +import org.springframework.stereotype.Service; + +/** +* @author guo +* @description 针对表【tasks(存储学习任务的基本信息,包括优先级的多维度计算)】的数据库操作Service实现 +* @createDate 2024-06-09 15:28:48 +*/ +@Service +public class TasksServiceImpl extends ServiceImpl + implements TasksService{ + +} + + + + diff --git a/src/main/java/com/guo/learningprogresstracker/service/impl/UserServiceImpl.java b/src/main/java/com/guo/learningprogresstracker/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..ac53883 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/impl/UserServiceImpl.java @@ -0,0 +1,22 @@ +package com.guo.learningprogresstracker.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.guo.learningprogresstracker.domain.entity.UserEntity; +import com.guo.learningprogresstracker.service.UserService; +import com.guo.learningprogresstracker.mapper.UserMapper; +import org.springframework.stereotype.Service; + +/** +* @author guo +* @description 针对表【user(用户信息表)】的数据库操作Service实现 +* @createDate 2024-06-09 15:28:48 +*/ +@Service +public class UserServiceImpl extends ServiceImpl + implements UserService{ + +} + + + + diff --git a/src/main/java/com/guo/learningprogresstracker/service/impl/UserTaskServiceImpl.java b/src/main/java/com/guo/learningprogresstracker/service/impl/UserTaskServiceImpl.java new file mode 100644 index 0000000..2ead5d4 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/service/impl/UserTaskServiceImpl.java @@ -0,0 +1,22 @@ +package com.guo.learningprogresstracker.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.guo.learningprogresstracker.domain.entity.UserTaskEntity; +import com.guo.learningprogresstracker.service.UserTaskService; +import com.guo.learningprogresstracker.mapper.UserTaskMapper; +import org.springframework.stereotype.Service; + +/** +* @author guo +* @description 针对表【user_task(存储用户-任务之间的对应关系)】的数据库操作Service实现 +* @createDate 2024-06-09 15:28:48 +*/ +@Service +public class UserTaskServiceImpl extends ServiceImpl + implements UserTaskService{ + +} + + + + diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties deleted file mode 100644 index 79004c0..0000000 --- a/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=LearningProgressTracker diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..3a1defc --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,45 @@ +spring: + application: + name: LearningProgressTracker + # 配置数据库 + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://localhost:3306/learning_progress_tracker?characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8 + username: root + password: + flyway: + # 是否启动 flyway + enabled: true + # 文件编码 + encoding: UTF-8 + # SQL 脚本位置,默认位于 classpath 下的 db/migration 目录 + locations: classpath:db/migration + # SQL 迁移文件的前缀,默认为 V + sql-migration-prefix: V + # SQL 迁移文件中版本与描述间的分隔符,默认为两个下划线 __ + sql-migration-separator: __ + # SQL 迁移文件的后缀,默认为 .sql + sql-migration-suffixes: .sql + # 是否在迁移时进行验证,默认为 true + validate-on-migrate: true + # 如果 true,首次迁移时基于现有 schema 创建 baseline,这通常用于将 Flyway 集成到已存在的数据库项目中 + baseline-on-migrate: true +server: + port: 8081 + +############## Sa-Token 配置 (文档: https://sa-token.cc) ############## +sa-token: + # token 名称(同时也是 cookie 名称) + token-name: satoken + # token 有效期(单位:秒) 默认30天,-1 代表永久有效 + timeout: 2592000 + # token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结 + active-timeout: -1 + # 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录) + is-concurrent: true + # 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token) + is-share: true + # token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik) + token-style: uuid + # 是否输出操作日志 + is-log: true \ No newline at end of file diff --git a/src/main/resources/db/migration/V20240428_1__InitDataBase.sql b/src/main/resources/db/migration/V20240428_1__InitDataBase.sql new file mode 100644 index 0000000..186f83d --- /dev/null +++ b/src/main/resources/db/migration/V20240428_1__InitDataBase.sql @@ -0,0 +1,47 @@ +-- 创建学习任务表 +CREATE TABLE Tasks ( + TaskID INT AUTO_INCREMENT PRIMARY KEY, + TaskName VARCHAR(255) NOT NULL COMMENT '学习任务的名称', + MaterialURL VARCHAR(255) NOT NULL COMMENT '学习材料的存储URL', + Urgency INT DEFAULT 0 COMMENT '用户设置的任务紧急性', + Importance INT DEFAULT 0 COMMENT '用户设置的任务重要性', + ContentDifficulty INT DEFAULT 0 COMMENT '任务的内容难度', + FutureValue INT DEFAULT 0 COMMENT '任务的未来价值', + SubjectivePriority INT DEFAULT 0 COMMENT '用户对任务的主观优先级', + CalculatedPriority FLOAT DEFAULT 0 COMMENT '通过算法计算得出的任务优先级' +) COMMENT '存储学习任务的基本信息,包括优先级的多维度计算'; + +-- 创建学习会话表 +CREATE TABLE StudySessions ( + SessionID INT AUTO_INCREMENT PRIMARY KEY, + TaskID INT NOT NULL, + StartTime DATETIME NOT NULL COMMENT '学习开始时间', + EndTime DATETIME COMMENT '学习结束时间', + ActualTime INT DEFAULT 0 COMMENT '实际使用时间(分钟)', + EffectiveTime INT DEFAULT 0 COMMENT '有效学习时间(分钟)', + EffectivenessRatio FLOAT DEFAULT 0 COMMENT '有效时间比', + SessionState VARCHAR(50) DEFAULT '进行中' COMMENT '学习会话的状态(进行中、暂停、已结束)' +) COMMENT '记录每次学习会话的具体数据'; + +-- 创建学习预期表 +CREATE TABLE StudyExpectations ( + ExpectationID INT AUTO_INCREMENT PRIMARY KEY, + SessionID INT NOT NULL, + Description TEXT NOT NULL COMMENT '学习预期的详细描述' +) COMMENT '存储每次学习开始前的预期'; + +-- 创建学习报告残片表 +CREATE TABLE StudyReportFragments ( + FragmentID INT AUTO_INCREMENT PRIMARY KEY, + SessionID INT NOT NULL, + Content TEXT NOT NULL COMMENT '学习内容的描述', + CreatedTime DATETIME NOT NULL COMMENT '创建时间' +) COMMENT '记录学习过程中的学习内容报告残片'; + +-- 创建学习报告表 +CREATE TABLE StudyReports ( + ReportID INT AUTO_INCREMENT PRIMARY KEY, + SessionID INT NOT NULL, + Content TEXT NOT NULL COMMENT '完整的学习报告内容', + CreatedTime DATETIME NOT NULL COMMENT '创建时间' +) COMMENT '存储每次学习结束时的完整学习报告'; diff --git a/src/main/resources/db/migration/V20240604_1__addTestTable.sql b/src/main/resources/db/migration/V20240604_1__addTestTable.sql new file mode 100644 index 0000000..900e989 --- /dev/null +++ b/src/main/resources/db/migration/V20240604_1__addTestTable.sql @@ -0,0 +1,8 @@ +# 增加testTable表 +create table test_table +( + id int auto_increment comment '测试主键' + primary key, + id_name varchar(255) null +) + comment '测试表'; \ No newline at end of file diff --git a/src/main/resources/db/migration/V20240609_1__addUserTable.sql b/src/main/resources/db/migration/V20240609_1__addUserTable.sql new file mode 100644 index 0000000..1ede1e1 --- /dev/null +++ b/src/main/resources/db/migration/V20240609_1__addUserTable.sql @@ -0,0 +1,19 @@ +# 增加user表 +create table user +( + id varchar(255) not null comment '用户id' + primary key, + user_name varchar(20) not null comment '账号-登录用', + user_password varchar(30) not null comment '账号密码' +) + comment '用户信息表'; + +# 添加user_task表 +create table user_task +( + id varchar(255) null, + user_id int null comment '用户id', + task_id int null comment '任务id' +) + comment '存储用户-任务之间的对应关系'; + diff --git a/src/main/resources/db/migration/V20240609_2__fixTableName.sql b/src/main/resources/db/migration/V20240609_2__fixTableName.sql new file mode 100644 index 0000000..cbfa6f1 --- /dev/null +++ b/src/main/resources/db/migration/V20240609_2__fixTableName.sql @@ -0,0 +1,14 @@ +-- 重命名学习任务表 +ALTER TABLE Tasks RENAME TO tasks; + +-- 重命名学习会话表 +ALTER TABLE StudySessions RENAME TO study_sessions; + +-- 重命名学习预期表 +ALTER TABLE StudyExpectations RENAME TO study_expectations; + +-- 重命名学习报告残片表 +ALTER TABLE StudyReportFragments RENAME TO study_report_fragments; + +-- 重命名学习报告表 +ALTER TABLE StudyReports RENAME TO study_reports; diff --git a/src/main/resources/db/migration/V20240609_4__addCreateTimeField.sql b/src/main/resources/db/migration/V20240609_4__addCreateTimeField.sql new file mode 100644 index 0000000..7350942 --- /dev/null +++ b/src/main/resources/db/migration/V20240609_4__addCreateTimeField.sql @@ -0,0 +1,48 @@ +-- 对于已经包含 created_time 的表(study_report_fragments, study_reports, study_sessions),添加其他必要字段 + +ALTER TABLE study_report_fragments + ADD COLUMN created_by varchar(255) NULL, + ADD COLUMN last_modified_time datetime NULL, + ADD COLUMN last_modified_by varchar(255) NULL; + +ALTER TABLE study_reports + ADD COLUMN created_by varchar(255) NULL, + ADD COLUMN last_modified_time datetime NULL, + ADD COLUMN last_modified_by varchar(255) NULL; + +ALTER TABLE study_sessions + ADD COLUMN created_by varchar(255) NULL, + ADD COLUMN last_modified_time datetime NULL, + ADD COLUMN last_modified_by varchar(255) NULL; + +-- 对于其他表,添加所有四个管理字段 + +ALTER TABLE study_expectations + ADD COLUMN created_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, + ADD COLUMN created_by varchar(255) NULL, + ADD COLUMN last_modified_time datetime NULL, + ADD COLUMN last_modified_by varchar(255) NULL; + +ALTER TABLE tasks + ADD COLUMN created_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, + ADD COLUMN created_by varchar(255) NULL, + ADD COLUMN last_modified_time datetime NULL, + ADD COLUMN last_modified_by varchar(255) NULL; + +ALTER TABLE test_table + ADD COLUMN created_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, + ADD COLUMN created_by varchar(255) NULL, + ADD COLUMN last_modified_time datetime NULL, + ADD COLUMN last_modified_by varchar(255) NULL; + +ALTER TABLE user + ADD COLUMN created_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, + ADD COLUMN created_by varchar(255) NULL, + ADD COLUMN last_modified_time datetime NULL, + ADD COLUMN last_modified_by varchar(255) NULL; + +ALTER TABLE user_task + ADD COLUMN created_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, + ADD COLUMN created_by varchar(255) NULL, + ADD COLUMN last_modified_time datetime NULL, + ADD COLUMN last_modified_by varchar(255) NULL; diff --git a/src/main/resources/db/migration/V20240609_5__addCreateField.sql b/src/main/resources/db/migration/V20240609_5__addCreateField.sql new file mode 100644 index 0000000..7db6fcc --- /dev/null +++ b/src/main/resources/db/migration/V20240609_5__addCreateField.sql @@ -0,0 +1,2 @@ +ALTER TABLE study_sessions + ADD COLUMN created_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL; \ No newline at end of file diff --git a/src/main/resources/db/migration/V20240616_1__fixUserTableFieldName.sql b/src/main/resources/db/migration/V20240616_1__fixUserTableFieldName.sql new file mode 100644 index 0000000..39eec31 --- /dev/null +++ b/src/main/resources/db/migration/V20240616_1__fixUserTableFieldName.sql @@ -0,0 +1,5 @@ +ALTER TABLE user + CHANGE last_modified_time update_time datetime NULL; + +ALTER TABLE user + CHANGE last_modified_by updated_by varchar(255) NULL; diff --git a/src/main/resources/mapper/StudyExpectationsMapper.xml b/src/main/resources/mapper/StudyExpectationsMapper.xml new file mode 100644 index 0000000..4d6a821 --- /dev/null +++ b/src/main/resources/mapper/StudyExpectationsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + expectation_id,session_id,description, + created_time,created_by,last_modified_time, + last_modified_by + + diff --git a/src/main/resources/mapper/StudyReportFragmentsMapper.xml b/src/main/resources/mapper/StudyReportFragmentsMapper.xml new file mode 100644 index 0000000..aa435f7 --- /dev/null +++ b/src/main/resources/mapper/StudyReportFragmentsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + fragment_id,session_id,content, + created_time,created_by,last_modified_time, + last_modified_by + + diff --git a/src/main/resources/mapper/StudyReportsMapper.xml b/src/main/resources/mapper/StudyReportsMapper.xml new file mode 100644 index 0000000..fe42e8c --- /dev/null +++ b/src/main/resources/mapper/StudyReportsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + report_id,session_id,content, + created_time,created_by,last_modified_time, + last_modified_by + + diff --git a/src/main/resources/mapper/StudySessionsMapper.xml b/src/main/resources/mapper/StudySessionsMapper.xml new file mode 100644 index 0000000..ce58010 --- /dev/null +++ b/src/main/resources/mapper/StudySessionsMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + session_id,task_id,start_time, + end_time,actual_time,effective_time, + effectiveness_ratio,session_state,created_by, + last_modified_time,last_modified_by,created_time + + diff --git a/src/main/resources/mapper/TasksMapper.xml b/src/main/resources/mapper/TasksMapper.xml new file mode 100644 index 0000000..c86db87 --- /dev/null +++ b/src/main/resources/mapper/TasksMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + task_id,task_name,material_url, + urgency,importance,content_difficulty, + future_value,subjective_priority,calculated_priority, + created_time,created_by,last_modified_time, + last_modified_by + + diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml new file mode 100644 index 0000000..a3d672a --- /dev/null +++ b/src/main/resources/mapper/UserMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + id,user_name,user_password, + created_time,created_by,last_modified_time, + last_modified_by + + diff --git a/src/main/resources/mapper/UserTaskMapper.xml b/src/main/resources/mapper/UserTaskMapper.xml new file mode 100644 index 0000000..5791bfa --- /dev/null +++ b/src/main/resources/mapper/UserTaskMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + id,user_id,task_id, + created_time,created_by,last_modified_time, + last_modified_by + +