Просмотр исходного кода

feat: course表增加了邀请码作为索引,并且设置课程名称和课程邀请码为unique

mjh 4 лет назад
Родитель
Сommit
84f4b5d81a

+ 12 - 9
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/domain/Course.java

@@ -8,7 +8,10 @@ import javax.validation.constraints.NotNull;
 import java.time.OffsetDateTime;
 
 @Entity
-@Table(name = "course")
+@Table(
+        name = "course",
+        indexes = @Index(name = "course_code_index", columnList = "invitationCode")
+)
 public class Course {
     @Id
     @GeneratedValue(strategy = GenerationType.TABLE, generator = "PK_COURSE")
@@ -22,7 +25,7 @@ public class Course {
     )
     private Long id;
 
-    @Column
+    @Column(unique = true)
     @NotNull
     private String name;
 
@@ -50,9 +53,9 @@ public class Course {
     @CreationTimestamp
     private OffsetDateTime endTime;
 
-    @Column
+    @Column(unique = true)
     @NotNull
-    private String InvitationCoder;
+    private String invitationCode;
 
     @Column
 //    @NotNull
@@ -139,12 +142,12 @@ public class Course {
         this.endTime = endTime;
     }
 
-    public String getInvitationCoder() {
-        return InvitationCoder;
+    public String getInvitationCode() {
+        return invitationCode;
     }
 
-    public void setInvitationCoder(String invitationCoder) {
-        InvitationCoder = invitationCoder;
+    public void setInvitationCode(String invitationCode) {
+        this.invitationCode = invitationCode;
     }
 
     public String getMoocUrl() {
@@ -198,7 +201,7 @@ public class Course {
                 ", description='" + description + '\'' +
                 ", startTime=" + startTime +
                 ", endTime=" + endTime +
-                ", InvitationCoder='" + InvitationCoder + '\'' +
+                ", InvitationCoder='" + invitationCode + '\'' +
                 ", moocUrl='" + moocUrl + '\'' +
                 ", evalId=" + evalId +
                 ", coderId=" + coderId +

+ 2 - 2
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/mapper/impl/CourseMapperImpl.java

@@ -37,7 +37,7 @@ public class CourseMapperImpl implements CourseMapper {
         courseVO.setDescription(course.getDescription());
         courseVO.setStartTime(course.getStartTime());
         courseVO.setEndTime(course.getEndTime());
-        courseVO.setInvitationCode(course.getInvitationCoder());
+        courseVO.setInvitationCode(course.getInvitationCode());
         courseVO.setMoocUrl(course.getMoocUrl());
         courseVO.setEvalId(course.getEvalId());
         courseVO.setCoderId(course.getCoderId());
@@ -63,7 +63,7 @@ public class CourseMapperImpl implements CourseMapper {
         course.setDescription(courseVO.getDescription());
         course.setStartTime(courseVO.getStartTime());
         course.setEndTime(courseVO.getEndTime());
-        course.setInvitationCoder(courseVO.getInvitationCode());
+        course.setInvitationCode(courseVO.getInvitationCode());
         course.setMoocUrl(courseVO.getMoocUrl());
         course.setEvalId(courseVO.getEvalId());
         course.setCoderId(courseVO.getCoderId());

+ 5 - 0
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/repository/CourseRepository.java

@@ -4,7 +4,12 @@ import cn.seecoder.seecoderportalserver.domain.Course;
 import org.springframework.data.jpa.repository.JpaRepository;
 
 import java.util.List;
+import java.util.Optional;
 
 public interface CourseRepository extends JpaRepository<Course, Long> {
     List<Course> findCoursesByTeacherId(Long teacherId);
+
+    Optional<Course> findCourseByInvitationCode(String invitationCode);
+
+    Optional<Course> findCourseByName(String name);
 }

+ 0 - 1
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/service/CourseService.java

@@ -50,7 +50,6 @@ public class CourseService {
         if (!teacher.isPresent()) {
             return null;
         }
-        // todo: evalId, coderId, helperId
         Course course = courseMapper.courseVOToCourse(courseVO);
         course.setCourseState(CourseState.NORMAL);
         Course result = courseRepository.save(course);