diff --git a/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/controller/StickerController.java b/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/controller/StickerController.java index 73038e4..6737da0 100644 --- a/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/controller/StickerController.java +++ b/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/controller/StickerController.java @@ -42,28 +42,28 @@ public ResponseEntity getStickersPreview() { // 모달 스티커 작성 @PostMapping("/sticker/create") public ResponseEntity createSticker(@RequestBody StickerCreateDTO stickerCreateDTO){ - StickerPreviewResDto stickerResDto = stickerService.createSticker(stickerCreateDTO); - if (stickerResDto == null) + StickerPreviewResDto previewResDto = stickerService.createSticker(stickerCreateDTO); + if (previewResDto == null) return ResponseEntity.badRequest().body("내용은 공백일 수 없습니다."); - return ResponseEntity.ok().body(stickerResDto); + return ResponseEntity.ok().body(previewResDto); } // 편집할 스티커 불러오기 - @GetMapping("/sticker/edit") + @GetMapping("/sticker/select") public ResponseEntity editSticker(@RequestParam Long id){ - StickerDetailResDto resDto = stickerService.getSticker(id); - if (resDto == null) + StickerDetailResDto detailResDto = stickerService.getSticker(id); + if (detailResDto == null) return ResponseEntity.badRequest().body("해당 id의 스티커가 존재하지 않습니다."); - return ResponseEntity.ok().build(); + return ResponseEntity.ok().body(detailResDto); } // 스티커 편집하기 - @PatchMapping("/sticker/select") + @PatchMapping("/sticker/edit") public ResponseEntity selectedSticker(@RequestBody StickerUpdateReqDTO stickerUpdateDTO){ Sticker editedSticker = stickerService.updateSticker(stickerUpdateDTO); if (editedSticker == null) return ResponseEntity.badRequest().body("해당 id의 스티커가 존재하지 않습니다."); - return ResponseEntity.ok().build(); + return ResponseEntity.ok().body(editedSticker); } // 스티커 삭제 diff --git a/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/dto/WeekStickersDto.java b/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/dto/WeekStickersDto.java index c630fb1..bc81313 100644 --- a/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/dto/WeekStickersDto.java +++ b/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/dto/WeekStickersDto.java @@ -1,7 +1,9 @@ package com.gdscewha.withmate.domain.sticker.dto; +import com.gdscewha.withmate.domain.member.entity.Member; import com.gdscewha.withmate.domain.sticker.entity.Sticker; import com.gdscewha.withmate.domain.week.entity.Week; +import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -9,15 +11,20 @@ import java.util.stream.Collectors; @Getter +@AllArgsConstructor @NoArgsConstructor public class WeekStickersDto { private Long weekNum; + private Long myStickerCount = 0L; private List stickerBoard; - public WeekStickersDto(Week week, List stickerList) { + public WeekStickersDto(Week week, Member member, List stickerList) { this.weekNum = week.getWeekNum(); - this.stickerBoard = stickerList - .stream() + this.myStickerCount = stickerList.stream() + .filter(sticker -> sticker.getMember().equals(member)) + .peek(sticker -> myStickerCount++) + .count(); + this.stickerBoard = stickerList.stream() .map(sticker -> StickerPreviewResDto.builder() .id(sticker.getId()) .title(sticker.getTitle()) diff --git a/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/service/StickerService.java b/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/service/StickerService.java index 263d944..deb5b1b 100644 --- a/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/service/StickerService.java +++ b/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/service/StickerService.java @@ -16,6 +16,7 @@ import org.springframework.stereotype.Service; import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.List; @Service @@ -42,7 +43,7 @@ public StickerRelationDto getStickerRelationInfo() { public WeekStickersDto getStickersForAWeek(Member member) { Week week = weekService.getCurrentWeek(member); List stickerList = stickerRepository.findAllByWeek(week); - return new WeekStickersDto(week, stickerList); + return new WeekStickersDto(week, member, stickerList); } // 새로운 스티커 CREATE 메소드(제목, 스티커 색깔, 모양, 위치 등) @@ -52,6 +53,8 @@ public StickerPreviewResDto createSticker(StickerCreateDTO stickerCreateDTO) { Sticker sticker = Sticker.builder() .stickerNum(currentWeek.getStickerCount() + 1) // 처음에 1L .title(stickerCreateDTO.getTitle()) + .content("") + .impression("") .creationTime(LocalDate.now()) .stickerColor(stickerCreateDTO.getStickerColor()) .stickerShape(stickerCreateDTO.getStickerShape()) @@ -110,11 +113,24 @@ public StickerDetailResDto getSticker(Long stickerId){ .id(stickerId) .title(sticker.getTitle()) .content(sticker.getContent()) + .creationTime(sticker.getCreationTime().toString()) .impression(sticker.getImpression()) - .impressionTime(sticker.getImpressionTime().toString()) .isMine(null) + .stickerColor(sticker.getStickerColor()) + .stickerShape(sticker.getStickerShape()) .build(); + LocalDate impressionTime = sticker.getImpressionTime(); + if (impressionTime != null) { + stickerMyResDto.setImpressionTime(impressionTime.toString()); + } stickerMyResDto.setIsMine(sticker.getMember() == currentMember); return stickerMyResDto; } + + /*// LocalDateTime을 주어진 패턴에 맞게 문자열로 변환하는 메소드 + public static String formatLocalDate(LocalDate date) { + // DateTimeFormatter를 사용하여 LocalDateTime을 문자열로 변환 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + return date.format(formatter); + }*/ } \ No newline at end of file