-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #82 from Team-KeepGoing/feature/notice
feat :: 공지 기능 구현
- Loading branch information
Showing
44 changed files
with
693 additions
and
98 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 7 additions & 0 deletions
7
src/main/java/com/keepgoing/keepserver/KeepServerApplication.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
6 changes: 5 additions & 1 deletion
6
src/main/java/com/keepgoing/keepserver/domain/book/payload/response/BookResponseDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,22 @@ | ||
package com.keepgoing.keepserver.domain.book.payload.response; | ||
|
||
import com.keepgoing.keepserver.domain.book.domain.entity.enums.BookState; | ||
import com.querydsl.core.annotations.QueryProjection; | ||
import lombok.Builder; | ||
|
||
import java.time.LocalDateTime; | ||
|
||
@Builder | ||
public record BookResponseDto( | ||
Long id, | ||
long id, | ||
String bookName, | ||
String writer, | ||
String imageUrl, | ||
LocalDateTime registrationDate, | ||
LocalDateTime rentDate, | ||
BookState state | ||
) { | ||
@QueryProjection | ||
public BookResponseDto { | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,7 +29,7 @@ public class Device { | |
/* | ||
기기 사진 | ||
*/ | ||
@Column(nullable = false) | ||
@Column | ||
private String imgUrl; | ||
|
||
/* | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
8 changes: 6 additions & 2 deletions
8
src/main/java/com/keepgoing/keepserver/domain/device/payload/response/DeviceResponseDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,21 @@ | ||
package com.keepgoing.keepserver.domain.device.payload.response; | ||
|
||
import com.keepgoing.keepserver.domain.device.domain.entity.enums.DeviceStatus; | ||
import com.querydsl.core.annotations.QueryProjection; | ||
import lombok.Builder; | ||
|
||
import java.time.LocalDateTime; | ||
|
||
@Builder | ||
public record DeviceResponseDto ( | ||
Long id, | ||
public record DeviceResponseDto( | ||
long id, | ||
String deviceName, | ||
String imgUrl, | ||
LocalDateTime regDate, | ||
LocalDateTime rentDate, | ||
DeviceStatus status | ||
) { | ||
@QueryProjection | ||
public DeviceResponseDto { | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
46 changes: 46 additions & 0 deletions
46
src/main/java/com/keepgoing/keepserver/domain/notice/domain/entity/notice/Notice.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
package com.keepgoing.keepserver.domain.notice.domain.entity.notice; | ||
|
||
import com.keepgoing.keepserver.domain.user.domain.entity.user.User; | ||
import jakarta.persistence.*; | ||
import lombok.AccessLevel; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
import lombok.Setter; | ||
import lombok.experimental.SuperBuilder; | ||
import org.springframework.data.annotation.CreatedDate; | ||
import org.springframework.data.annotation.LastModifiedDate; | ||
import org.springframework.data.jpa.domain.support.AuditingEntityListener; | ||
|
||
import java.time.LocalDateTime; | ||
|
||
@Entity | ||
@Getter | ||
@Setter | ||
@SuperBuilder | ||
@NoArgsConstructor(access = AccessLevel.PROTECTED) | ||
@EntityListeners(AuditingEntityListener.class) | ||
@Table(name = "notice") | ||
public class Notice { | ||
@Id | ||
@GeneratedValue(strategy = GenerationType.IDENTITY) | ||
private long idx; | ||
|
||
@Lob | ||
@Column(nullable = false) | ||
private String message; | ||
|
||
@ManyToOne | ||
@JoinColumn(name = "teacher_id", nullable = false) | ||
private User teacher; | ||
|
||
@Column(nullable = false) | ||
private boolean isGlobal; | ||
|
||
@CreatedDate | ||
@Column(nullable = false, updatable = false) | ||
private LocalDateTime createTime; | ||
|
||
@LastModifiedDate | ||
@Column | ||
private LocalDateTime editTime; | ||
} |
35 changes: 35 additions & 0 deletions
35
...ain/java/com/keepgoing/keepserver/domain/notice/domain/entity/notice/NoticeReception.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
package com.keepgoing.keepserver.domain.notice.domain.entity.notice; | ||
|
||
import com.keepgoing.keepserver.domain.user.domain.entity.user.User; | ||
import jakarta.persistence.*; | ||
import lombok.AccessLevel; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
import lombok.Setter; | ||
import lombok.experimental.SuperBuilder; | ||
import org.hibernate.annotations.OnDelete; | ||
import org.hibernate.annotations.OnDeleteAction; | ||
import org.springframework.data.jpa.domain.support.AuditingEntityListener; | ||
|
||
@Entity | ||
@Getter | ||
@Setter | ||
@SuperBuilder | ||
@NoArgsConstructor(access = AccessLevel.PROTECTED) | ||
@EntityListeners(AuditingEntityListener.class) | ||
@Table(name = "notice_reception") | ||
public class NoticeReception { | ||
@Id | ||
@GeneratedValue(strategy = GenerationType.IDENTITY) | ||
private long idx; | ||
|
||
@JoinColumn(name = "user_id", nullable = false) | ||
@OnDelete(action = OnDeleteAction.CASCADE) | ||
@ManyToOne | ||
private User user; | ||
|
||
@JoinColumn(name = "notice_id", nullable = false) | ||
@OnDelete(action = OnDeleteAction.CASCADE) | ||
@ManyToOne | ||
private Notice notice; | ||
} |
21 changes: 21 additions & 0 deletions
21
src/main/java/com/keepgoing/keepserver/domain/notice/domain/mapper/NoticeMapper.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package com.keepgoing.keepserver.domain.notice.domain.mapper; | ||
|
||
import com.keepgoing.keepserver.domain.notice.domain.entity.notice.Notice; | ||
import com.keepgoing.keepserver.domain.notice.payload.req.NoticeRequestDto; | ||
import com.keepgoing.keepserver.domain.notice.payload.res.NoticeResponseDto; | ||
import com.keepgoing.keepserver.domain.user.domain.entity.user.User; | ||
import org.mapstruct.Mapper; | ||
import org.mapstruct.Mapping; | ||
|
||
@Mapper(componentModel = "spring") | ||
public interface NoticeMapper { | ||
@Mapping(source = "idx", target = "id") | ||
@Mapping(source = "teacher.name", target = "teacherName") | ||
NoticeResponseDto entityToDto(Notice notice); | ||
|
||
@Mapping(target = "teacher", source = "teacher") | ||
@Mapping(target = "isGlobal", source = "noticeRequestDto.isGlobal") | ||
@Mapping(target = "message", source = "noticeRequestDto.message") | ||
Notice toEntity(NoticeRequestDto noticeRequestDto, User teacher); | ||
|
||
} |
11 changes: 11 additions & 0 deletions
11
...a/com/keepgoing/keepserver/domain/notice/domain/repository/NoticeReceptionRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package com.keepgoing.keepserver.domain.notice.domain.repository; | ||
|
||
import com.keepgoing.keepserver.domain.notice.domain.entity.notice.Notice; | ||
import com.keepgoing.keepserver.domain.notice.domain.entity.notice.NoticeReception; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
import org.springframework.stereotype.Repository; | ||
|
||
@Repository | ||
public interface NoticeReceptionRepository extends JpaRepository<NoticeReception, Long> { | ||
void deleteAllByNotice(Notice notice); | ||
} |
14 changes: 14 additions & 0 deletions
14
src/main/java/com/keepgoing/keepserver/domain/notice/domain/repository/NoticeRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package com.keepgoing.keepserver.domain.notice.domain.repository; | ||
|
||
import com.keepgoing.keepserver.domain.notice.domain.entity.notice.Notice; | ||
import com.keepgoing.keepserver.domain.user.domain.entity.user.User; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
import org.springframework.stereotype.Repository; | ||
|
||
import java.util.List; | ||
|
||
@Repository | ||
public interface NoticeRepository extends JpaRepository<Notice, Long> { | ||
Notice findNoticeByIdxAndTeacher_Id(long idx, long tIdx); | ||
List<Notice> findNoticesByTeacher(User teacher); | ||
} |
17 changes: 17 additions & 0 deletions
17
src/main/java/com/keepgoing/keepserver/domain/notice/payload/req/NoticeRequestDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
package com.keepgoing.keepserver.domain.notice.payload.req; | ||
|
||
import jakarta.validation.constraints.NotBlank; | ||
import jakarta.validation.constraints.NotNull; | ||
import lombok.Builder; | ||
|
||
import java.util.List; | ||
|
||
@Builder | ||
public record NoticeRequestDto( | ||
@NotBlank(message = "메시지는 필수입니다.") | ||
String message, | ||
@NotNull(message = "isGlobal 값은 필수입니다.") | ||
boolean isGlobal, | ||
List<Long> userIds | ||
) { | ||
} |
18 changes: 18 additions & 0 deletions
18
src/main/java/com/keepgoing/keepserver/domain/notice/payload/res/NoticeResponseDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package com.keepgoing.keepserver.domain.notice.payload.res; | ||
|
||
import com.querydsl.core.annotations.QueryProjection; | ||
import lombok.Builder; | ||
|
||
import java.time.LocalDateTime; | ||
|
||
@Builder | ||
public record NoticeResponseDto ( | ||
long id, | ||
String message, | ||
String teacherName, | ||
LocalDateTime createTime, | ||
LocalDateTime editTime | ||
) { | ||
@QueryProjection | ||
public NoticeResponseDto{} | ||
} |
Oops, something went wrong.