Skip to content

Commit

Permalink
Merge pull request #116 from Leets-Official/refactor/#93/일정-생성-로직-수정
Browse files Browse the repository at this point in the history
Refactor #116 일정 생성 로직 수정
  • Loading branch information
hyxklee authored Feb 10, 2025
2 parents 030e4f0 + 58581b8 commit 24ce2fd
Show file tree
Hide file tree
Showing 30 changed files with 160 additions and 228 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@ public record Detail(
public record Response(
Long id,
Status status,
Integer weekNumber,

String title,
LocalDateTime start,
LocalDateTime end,
Expand All @@ -43,7 +41,6 @@ public record CheckIn(
public record AttendanceInfo(
Long id,
Status status,
Integer weekNumber,
String name,
String position,
String department,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ public interface AttendanceMapper {
AttendanceDTO.Detail toDetailDto(User user, List<AttendanceDTO.Response> attendances);

@Mappings({
@Mapping(target = "weekNumber", source = "attendance.meeting.weekNumber"),
@Mapping(target = "title", source = "attendance.meeting.title"),
@Mapping(target = "start", source = "attendance.meeting.start"),
@Mapping(target = "end", source = "attendance.meeting.end"),
Expand All @@ -37,7 +36,6 @@ public interface AttendanceMapper {
@Mappings({
@Mapping(target = "id", source = "attendance.id"),
@Mapping(target = "status", source = "attendance.status"),
@Mapping(target = "weekNumber", source = "attendance.meeting.weekNumber"),
@Mapping(target = "name", source = "attendance.user.name"),
@Mapping(target = "position", source = "attendance.user.position"),
@Mapping(target = "department", source = "attendance.user.department"),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
package leets.weeth.domain.schedule.application.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

public class EventDTO {
Expand All @@ -15,30 +11,10 @@ public record Response(
String location,
String requiredItem,
String name,
String memberCount,
LocalDateTime start,
LocalDateTime end,
LocalDateTime createdAt,
LocalDateTime modifiedAt
) {}

public record Save(
@NotBlank String title,
@NotBlank String content,
@NotBlank String location,
@NotBlank String requiredItem,
@NotNull String memberCount,
@NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime start,
@NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime end
) {}

public record Update(
@NotBlank String title,
@NotBlank String content,
@NotBlank String location,
@NotBlank String requiredItem,
@NotNull String memberCount,
@NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime start,
@NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime end
) {}
}

Original file line number Diff line number Diff line change
@@ -1,60 +1,24 @@
package leets.weeth.domain.schedule.application.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonInclude;

import java.time.LocalDateTime;

public class MeetingDTO {

public record ResponseAll(
Long id,
String title,
String content,
String location,
LocalDateTime start,
LocalDateTime end,
Integer weekNumber,
Integer cardinal,
Integer code,
String name,
Integer memberCount,
LocalDateTime createdAt,
LocalDateTime modifiedAt
) {}

@JsonInclude(JsonInclude.Include.NON_NULL)
public record Response(
Long id,
String title,
String content,
String location,
String requiredItem,
String name,
Integer code,
LocalDateTime start,
LocalDateTime end,
String name,
Integer memberCount,
String requiredItem,
LocalDateTime createdAt,
LocalDateTime modifiedAt
) {}

public record Save(
@NotBlank String title,
@NotBlank String content,
@NotBlank String location,
@NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime start,
@NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime end,
@NotNull Integer weekNumber,
@NotNull Integer cardinal
) {}

public record Update(
@NotBlank String title,
@NotBlank String content,
@NotBlank String location,
@NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime start,
@NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime end,
@NotNull Integer weekNumber,
@NotNull Integer cardinal
) {}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package leets.weeth.domain.schedule.application.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import leets.weeth.domain.schedule.domain.entity.enums.Type;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
Expand All @@ -19,4 +21,25 @@ public record Time(
@NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime start,
@NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime end
) {}

public record Save(
@NotBlank String title,
@NotBlank String content,
@NotBlank String location,
@NotBlank String requiredItem,
@NotNull Type type,
@NotNull Integer cardinal,
@NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime start,
@NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime end
) {}

public record Update(
@NotBlank String title,
@NotBlank String content,
@NotBlank String location,
@NotBlank String requiredItem,
@NotNull Type type,
@NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime start,
@NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime end
) {}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package leets.weeth.domain.schedule.application.mapper;

import leets.weeth.domain.schedule.application.dto.ScheduleDTO;
import leets.weeth.domain.schedule.domain.entity.Event;
import leets.weeth.domain.user.domain.entity.User;
import org.mapstruct.*;
Expand All @@ -16,8 +17,5 @@ public interface EventMapper {
@Mapping(target = "id", ignore = true),
@Mapping(target = "user", source = "user")
})
Event from(Save dto, User user);

@Mapping(target = "user", source = "user")
Event update(Long id, Update dto, User user);
Event from(ScheduleDTO.Save dto, User user);
}
Original file line number Diff line number Diff line change
@@ -1,35 +1,31 @@
package leets.weeth.domain.schedule.application.mapper;

import leets.weeth.domain.schedule.application.dto.MeetingDTO;
import leets.weeth.domain.schedule.application.dto.ScheduleDTO;
import leets.weeth.domain.schedule.domain.entity.Meeting;
import leets.weeth.domain.user.domain.entity.User;
import leets.weeth.domain.user.domain.entity.enums.Status;
import org.mapstruct.*;

import java.util.Random;

import static leets.weeth.domain.schedule.application.dto.MeetingDTO.*;
import static leets.weeth.domain.schedule.application.dto.MeetingDTO.Response;

@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface MeetingMapper {

// @Mapping(target = "memberCount", expression = "java( getMemberCount(meeting) )")
@Mapping(target = "requiredItem", expression = "java(\"노트북\")")
@Mapping(target = "name", source = "user.name")
@Mapping(target = "code", ignore = true)
Response to(Meeting meeting);

// @Mapping(target = "memberCount", expression = "java( getMemberCount(meeting) )")
@Mapping(target = "name", source = "user.name")
ResponseAll toAll(Meeting meeting);
MeetingDTO.Response toAdminResponse(Meeting meeting);

@Mappings({
@Mapping(target = "id", ignore = true),
@Mapping(target = "code", expression = "java( generateCode() )"),
@Mapping(target = "user", source = "user")
})
Meeting from(Save dto, User user);

@Mapping(target = "user", source = "user")
Meeting update(Long id, Update dto, User user);
Meeting from(ScheduleDTO.Save dto, User user);

default Integer generateCode() {
return new Random().nextInt(9000) + 1000;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
package leets.weeth.domain.schedule.application.usecase;

import leets.weeth.domain.schedule.application.dto.ScheduleDTO;

import static leets.weeth.domain.schedule.application.dto.EventDTO.*;

public interface EventUseCase {

Response find(Long eventId);

void save(Save dto, Long userId);
void save(ScheduleDTO.Save dto, Long userId);

void update(Long eventId, Update dto, Long userId);
void update(Long eventId, ScheduleDTO.Update dto, Long userId);

void delete(Long eventId);
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
package leets.weeth.domain.schedule.application.usecase;

import leets.weeth.domain.schedule.application.dto.ScheduleDTO;
import leets.weeth.domain.schedule.application.mapper.EventMapper;
import leets.weeth.domain.schedule.domain.entity.Event;
import leets.weeth.domain.schedule.domain.service.EventDeleteService;
import leets.weeth.domain.schedule.domain.service.EventGetService;
import leets.weeth.domain.schedule.domain.service.EventSaveService;
import leets.weeth.domain.schedule.domain.service.EventUpdateService;
import leets.weeth.domain.user.domain.entity.User;
import leets.weeth.domain.user.domain.service.CardinalGetService;
import leets.weeth.domain.user.domain.service.UserGetService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import static leets.weeth.domain.schedule.application.dto.EventDTO.*;
import static leets.weeth.domain.schedule.application.dto.EventDTO.Response;

@Service
@RequiredArgsConstructor
Expand All @@ -23,6 +25,7 @@ public class EventUseCaseImpl implements EventUseCase {
private final EventSaveService eventSaveService;
private final EventUpdateService eventUpdateService;
private final EventDeleteService eventDeleteService;
private final CardinalGetService cardinalGetService;
private final EventMapper mapper;

@Override
Expand All @@ -32,14 +35,16 @@ public Response find(Long eventId) {

@Override
@Transactional
public void save(Save dto, Long userId) {
public void save(ScheduleDTO.Save dto, Long userId) {
User user = userGetService.find(userId);
cardinalGetService.find(dto.cardinal());

eventSaveService.save(mapper.from(dto, user));
}

@Override
@Transactional
public void update(Long eventId, Update dto, Long userId) {
public void update(Long eventId, ScheduleDTO.Update dto, Long userId) {
User user = userGetService.find(userId);
Event event = eventGetService.find(eventId);
eventUpdateService.update(event, dto, user);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,16 @@
package leets.weeth.domain.schedule.application.usecase;

import java.util.List;
import leets.weeth.domain.schedule.application.dto.ScheduleDTO;

import static leets.weeth.domain.schedule.application.dto.MeetingDTO.*;
import static leets.weeth.domain.schedule.application.dto.MeetingDTO.Response;

public interface MeetingUseCase {

Response find(Long eventId);
Response find(Long userId, Long eventId);

void save(Save dto, Long userId);
void save(ScheduleDTO.Save dto, Long userId);

void update(Update dto, Long userId, Long meetingId);
void update(ScheduleDTO.Update dto, Long userId, Long meetingId);

void delete(Long meetingId);

List<ResponseAll> findAll(Integer cardinal);

List<ResponseAll> findAll();
}
Loading

0 comments on commit 24ce2fd

Please sign in to comment.