-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'develop' into feature/#14
# Conflicts: # src/main/java/com/semtleapp/semtleapp/semtlenotice/entity/SemtleNotice.java # src/main/java/com/semtleapp/semtleapp/semtlepost/repository/SemtlePostRepository.java # src/main/java/com/semtleapp/semtleapp/semtlestudy/entity/SemtleStudyPost.java # src/main/java/com/semtleapp/semtleapp/semtleuser/entity/SemtleUser.java
- Loading branch information
Showing
27 changed files
with
473 additions
and
158 deletions.
There are no files selected for viewing
7 changes: 0 additions & 7 deletions
7
src/main/java/com/semtleapp/semtleapp/file/controller/FileController.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
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
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
63 changes: 63 additions & 0 deletions
63
src/main/java/com/semtleapp/semtleapp/semtlenotice/controller/SemtleNoticeController.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,63 @@ | ||
package com.semtleapp.semtleapp.semtlenotice.controller; | ||
|
||
import com.semtleapp.semtleapp.global.entity.ApiResponse; | ||
import com.semtleapp.semtleapp.global.exception.CustomException; | ||
import com.semtleapp.semtleapp.global.jwt.JwtService; | ||
import com.semtleapp.semtleapp.semtlenotice.dto.SemtleNoticeReq; | ||
import com.semtleapp.semtleapp.semtlenotice.dto.SemtleNoticeRes; | ||
import com.semtleapp.semtleapp.semtlenotice.service.SemtleNoticeService; | ||
import io.swagger.annotations.Api; | ||
import io.swagger.annotations.ApiOperation; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.security.access.prepost.PreAuthorize; | ||
import org.springframework.web.bind.annotation.*; | ||
import org.springframework.web.multipart.MultipartFile; | ||
|
||
import java.security.Principal; | ||
import java.util.List; | ||
|
||
|
||
@RequiredArgsConstructor | ||
@RestController | ||
@Api(tags={"03.Notice❤"}) | ||
@RequestMapping("/notice") | ||
public class SemtleNoticeController { | ||
|
||
private final SemtleNoticeService semtleNoticeService; | ||
|
||
@ApiOperation(value = "공지사항 글작성", notes = "공지사항 글작성") | ||
@PreAuthorize("hasAnyRole('ADMIN','ASEM','DSEM')") | ||
@PostMapping | ||
public ApiResponse<SemtleNoticeRes.PostNoticeRes> registerNoticePost(Principal principal, @RequestPart(value = "file", required = false) List<MultipartFile> files, @RequestPart(value = "postNoticeReq") SemtleNoticeReq.PostNoticeReq postNoticeReq) throws Exception { | ||
try{ | ||
return new ApiResponse<>(semtleNoticeService.registerNoticePost(principal.getName(), postNoticeReq, files)); | ||
} catch(Exception e){ | ||
throw new Exception(e.getMessage()); | ||
} | ||
} | ||
|
||
@ApiOperation(value = "공지사항 글수정", notes = "공지사항 글수정") | ||
@PreAuthorize("hasAnyRole('ADMIN','ASEM','DSEM')") | ||
@PatchMapping | ||
public ApiResponse<SemtleNoticeRes.PostNoticeRes> modifyNoticePost(Principal principal, @RequestPart(value = "file", required = false) List<MultipartFile> files, @RequestPart(value = "patchNoticeReq") SemtleNoticeReq.PatchNoticeReq patchNoticeReq) throws Exception { | ||
try{ | ||
return new ApiResponse<>(semtleNoticeService.modifyNoticePost(principal.getName(), patchNoticeReq, files)); | ||
} catch(Exception e){ | ||
throw new Exception(e.getMessage()); | ||
} | ||
} | ||
|
||
@ApiOperation(value = "공지사항 글삭제", notes = "공지사항 글삭제") | ||
@PreAuthorize("hasAnyRole('ADMIN','ASEM','DSEM')") | ||
@DeleteMapping("/{postId}") | ||
public ApiResponse<SemtleNoticeRes.PostNoticeRes> deleteNoticePost(Principal principal, @PathVariable(name = "postId") Long postId) throws Exception { | ||
try{ | ||
return new ApiResponse<>(semtleNoticeService.deleteNoticePost(principal.getName(), postId)); | ||
} catch(Exception e){ | ||
throw new Exception(e.getMessage()); | ||
} | ||
} | ||
|
||
|
||
|
||
} |
32 changes: 32 additions & 0 deletions
32
src/main/java/com/semtleapp/semtleapp/semtlenotice/convertor/SemtleNoticeConvertor.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,32 @@ | ||
package com.semtleapp.semtleapp.semtlenotice.convertor; | ||
|
||
import com.semtleapp.semtleapp.semtlenotice.dto.SemtleNoticeReq; | ||
import com.semtleapp.semtleapp.semtlenotice.entity.SemtleNotice; | ||
import com.semtleapp.semtleapp.semtlestudy.dto.RegisterStudyPostReqDto; | ||
import com.semtleapp.semtleapp.semtlestudy.dto.RegisterStudyRoomReqDto; | ||
import com.semtleapp.semtleapp.semtlestudy.entity.SemtleStudyBelong; | ||
import com.semtleapp.semtleapp.semtlestudy.entity.SemtleStudyPost; | ||
import com.semtleapp.semtleapp.semtlestudy.entity.SemtleStudyRoom; | ||
import com.semtleapp.semtleapp.semtleuser.entity.SemtleUser; | ||
|
||
public class SemtleNoticeConvertor { | ||
|
||
public static SemtleNotice registerNoticePost(SemtleUser semtleUser, SemtleNoticeReq.PostNoticeReq postNoticeReq) { | ||
return SemtleNotice.builder() | ||
.semtleUser(semtleUser) | ||
.title(postNoticeReq.getTitle()) | ||
.content(postNoticeReq.getContent()) | ||
.build(); | ||
} | ||
|
||
public static SemtleNotice modifyNoticePost(SemtleUser semtleUser, SemtleNoticeReq.PatchNoticeReq patchNoticeReq) { | ||
return SemtleNotice.builder() | ||
.postId(patchNoticeReq.getPostId()) | ||
.semtleUser(semtleUser) | ||
.title(patchNoticeReq.getTitle()) | ||
.content(patchNoticeReq.getContent()) | ||
.build(); | ||
} | ||
|
||
|
||
} |
33 changes: 33 additions & 0 deletions
33
src/main/java/com/semtleapp/semtleapp/semtlenotice/dto/SemtleNoticeReq.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,33 @@ | ||
package com.semtleapp.semtleapp.semtlenotice.dto; | ||
|
||
import com.semtleapp.semtleapp.file.entity.PhotoDto; | ||
import lombok.*; | ||
|
||
import java.util.List; | ||
|
||
public class SemtleNoticeReq { | ||
|
||
@Builder | ||
@NoArgsConstructor | ||
@AllArgsConstructor | ||
@Getter | ||
@Setter | ||
public static class PostNoticeReq { | ||
private String title; | ||
private String content; | ||
private List<PhotoDto> photoDtoList; | ||
} | ||
|
||
@Builder | ||
@NoArgsConstructor | ||
@AllArgsConstructor | ||
@Getter | ||
@Setter | ||
public static class PatchNoticeReq { | ||
private Long postId; | ||
private String title; | ||
private String content; | ||
private List<PhotoDto> photoDtoList; | ||
} | ||
|
||
} |
15 changes: 15 additions & 0 deletions
15
src/main/java/com/semtleapp/semtleapp/semtlenotice/dto/SemtleNoticeRes.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,15 @@ | ||
package com.semtleapp.semtleapp.semtlenotice.dto; | ||
|
||
import lombok.*; | ||
|
||
public class SemtleNoticeRes { | ||
|
||
@Builder | ||
@NoArgsConstructor | ||
@AllArgsConstructor | ||
@Getter | ||
@Setter | ||
public static class PostNoticeRes { | ||
private String message; | ||
} | ||
} |
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: 8 additions & 0 deletions
8
src/main/java/com/semtleapp/semtleapp/semtlenotice/repository/SemtleNoticeRepository.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,8 @@ | ||
package com.semtleapp.semtleapp.semtlenotice.repository; | ||
|
||
import com.semtleapp.semtleapp.semtlenotice.entity.SemtleNotice; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
|
||
public interface SemtleNoticeRepository extends JpaRepository<SemtleNotice, Long> { | ||
|
||
} |
14 changes: 14 additions & 0 deletions
14
src/main/java/com/semtleapp/semtleapp/semtlenotice/service/SemtleNoticeService.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.semtleapp.semtleapp.semtlenotice.service; | ||
|
||
import com.semtleapp.semtleapp.semtlenotice.dto.SemtleNoticeReq; | ||
import com.semtleapp.semtleapp.semtlenotice.dto.SemtleNoticeRes; | ||
import org.springframework.web.multipart.MultipartFile; | ||
|
||
import java.util.List; | ||
|
||
public interface SemtleNoticeService { | ||
SemtleNoticeRes.PostNoticeRes registerNoticePost(String email, SemtleNoticeReq.PostNoticeReq postNoticeReq, List<MultipartFile> files); | ||
SemtleNoticeRes.PostNoticeRes modifyNoticePost(String email, SemtleNoticeReq.PatchNoticeReq patchNoticeReq, List<MultipartFile> files); | ||
SemtleNoticeRes.PostNoticeRes deleteNoticePost(String email, Long postId); | ||
|
||
} |
78 changes: 78 additions & 0 deletions
78
src/main/java/com/semtleapp/semtleapp/semtlenotice/service/SemtleNoticeServiceImpl.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,78 @@ | ||
package com.semtleapp.semtleapp.semtlenotice.service; | ||
|
||
import com.semtleapp.semtleapp.file.entity.PhotoType; | ||
import com.semtleapp.semtleapp.file.service.FileUserService; | ||
import com.semtleapp.semtleapp.global.exception.CustomException; | ||
import com.semtleapp.semtleapp.global.exception.ErrorCode; | ||
import com.semtleapp.semtleapp.semtlenotice.convertor.SemtleNoticeConvertor; | ||
import com.semtleapp.semtleapp.semtlenotice.dto.SemtleNoticeReq; | ||
import com.semtleapp.semtleapp.semtlenotice.dto.SemtleNoticeRes; | ||
import com.semtleapp.semtleapp.semtlenotice.entity.SemtleNotice; | ||
import com.semtleapp.semtleapp.semtlenotice.repository.SemtleNoticeRepository; | ||
import com.semtleapp.semtleapp.semtleuser.entity.SemtleUser; | ||
import com.semtleapp.semtleapp.semtleuser.repository.SemtleUserRepository; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.stereotype.Service; | ||
import org.springframework.transaction.annotation.Transactional; | ||
import org.springframework.web.multipart.MultipartFile; | ||
|
||
import java.io.IOException; | ||
import java.util.List; | ||
|
||
@Service | ||
@Transactional | ||
@RequiredArgsConstructor | ||
public class SemtleNoticeServiceImpl implements SemtleNoticeService { | ||
|
||
private final SemtleNoticeRepository semtleNoticeRepository; | ||
private final FileUserService fileUserService; | ||
private final SemtleUserRepository semtleUserRepository; | ||
|
||
@Override | ||
public SemtleNoticeRes.PostNoticeRes registerNoticePost(String email, SemtleNoticeReq.PostNoticeReq postNoticeReq, List<MultipartFile> files) { | ||
SemtleUser semtleUser = semtleUserRepository.findByEmail(email).get(); | ||
SemtleNotice semtleNotice = SemtleNoticeConvertor.registerNoticePost(semtleUser, postNoticeReq); | ||
Long postId = semtleNoticeRepository.save(semtleNotice).getPostId(); | ||
uploadPhotos(files, postId); | ||
return SemtleNoticeRes.PostNoticeRes.builder().message("공지글이 등록되었습니다").build(); | ||
} | ||
|
||
@Override | ||
public SemtleNoticeRes.PostNoticeRes modifyNoticePost(String email, SemtleNoticeReq.PatchNoticeReq patchNoticeReq, List<MultipartFile> files) { | ||
SemtleUser semtleUser = semtleUserRepository.findByEmail(email).get(); | ||
SemtleNotice semtleNotice = semtleNoticeRepository.findById(patchNoticeReq.getPostId()).get(); | ||
if(semtleUser.getUserId() == semtleNotice.getSemtleUser().getUserId()){ | ||
SemtleNotice saveSemtleNotice = semtleNoticeRepository.save(SemtleNoticeConvertor.modifyNoticePost(semtleUser, patchNoticeReq)); | ||
fileUserService.deleteFile(PhotoType.NOTICE, saveSemtleNotice.getPostId()); | ||
uploadPhotos(files, saveSemtleNotice.getPostId()); | ||
} else { | ||
throw new CustomException(ErrorCode.FORBIDDEN); | ||
} | ||
return SemtleNoticeRes.PostNoticeRes.builder().message("공지글이 수정되었습니다").build(); | ||
} | ||
|
||
@Override | ||
public SemtleNoticeRes.PostNoticeRes deleteNoticePost(String email, Long postId) { | ||
SemtleUser semtleUser = semtleUserRepository.findByEmail(email).get(); | ||
SemtleNotice semtleNotice = semtleNoticeRepository.findById(postId).get(); | ||
if(semtleUser.getUserId() == semtleNotice.getSemtleUser().getUserId()){ | ||
semtleNoticeRepository.deleteById(postId); | ||
fileUserService.deleteFile(PhotoType.NOTICE, postId); | ||
} else { | ||
throw new CustomException(ErrorCode.FORBIDDEN); | ||
} | ||
return SemtleNoticeRes.PostNoticeRes.builder().message("공지글이 삭제되었습니다").build(); | ||
} | ||
|
||
|
||
private void uploadPhotos(List<MultipartFile> files, Long postId) { | ||
if(files != null) { | ||
try { | ||
fileUserService.saveFile(files, PhotoType.NOTICE, postId); | ||
} catch (IOException e) { | ||
e.printStackTrace(); | ||
} | ||
} | ||
} | ||
|
||
} |
27 changes: 0 additions & 27 deletions
27
src/main/java/com/semtleapp/semtleapp/semtlepost/controller/SemtlePostController.java
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.