Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.slatto.domain.feedback.dto.request.FeedbackDetailRequest.ReplyUpdateReqDTO;
import com.slatto.domain.feedback.dto.response.FeedbackDetailResponse.ReplyUpdateResDTO;
import com.slatto.domain.project.repository.ProjectMemberRepository;
import com.slatto.domain.notification.service.ActivityLogService;
import com.slatto.domain.feedback.dto.request.FeedbackDetailRequest.ReplyStatusReqDTO;
import com.slatto.domain.feedback.dto.response.FeedbackDetailResponse.ReplyStatusResDTO;
import org.springframework.data.domain.PageRequest;
Expand Down Expand Up @@ -38,6 +39,7 @@ public class FeedbackDetailService {
private final GuestRepository guestRepository;
private final FeedbackDetailConverter feedbackDetailConverter;
private final ProjectMemberRepository projectMemberRepository;
private final ActivityLogService activityLogService;

private static final int DEFAULT_PAGE_SIZE = 10;
private static final int MAX_PAGE_SIZE = 50; // 페이지 크기 상한
Expand Down Expand Up @@ -69,6 +71,22 @@ public ReplyCreateResDTO createReply(Long feedbackId, Long userId, ReplyCreateRe
FeedbackDetail reply = feedbackDetailConverter.toFeedbackDetail(feedback, user, guest, req);
FeedbackDetail saved = feedbackDetailRepository.save(reply);

if (user != null) {
activityLogService.createVideoFeedbackCommentedLog(
feedback.getVideo().getProject().getId(),
user.getId(),
feedback.getVideo().getId(),
feedback.getVideo().getTitle()
);
} else {
activityLogService.createGuestVideoFeedbackCommentedLog(
feedback.getVideo().getProject().getId(),
guest,
feedback.getVideo().getId(),
feedback.getVideo().getTitle()
);
}

return feedbackDetailConverter.toCreateResponse(saved);
}

Expand Down Expand Up @@ -224,4 +242,4 @@ public ReplyStatusResDTO changeReplyStatus(Long replyId, Long userId, ReplyStatu

return feedbackDetailConverter.toStatusResponse(reply);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.slatto.domain.feedback.dto.request.FeedbackRequest.FeedbackStatusReqDTO;
import com.slatto.domain.feedback.dto.response.FeedbackResponse.FeedbackStatusResDTO;
import com.slatto.domain.feedback.repository.FeedbackDetailRepository;
import com.slatto.domain.notification.service.ActivityLogService;
import com.slatto.domain.project.repository.ProjectMemberRepository;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
Expand Down Expand Up @@ -45,6 +46,7 @@ public class FeedbackService {
private final ObjectProvider<EntityManager> entityManagerProvider;
private final ProjectMemberRepository projectMemberRepository;
private final FeedbackDetailRepository feedbackDetailRepository;
private final ActivityLogService activityLogService;

private static final int DEFAULT_PAGE_SIZE = 10;
private static final int MAX_PAGE_SIZE = 50; // 페이지 크기 상한
Expand Down Expand Up @@ -80,6 +82,22 @@ public FeedbackCreateResDTO createFeedback(Long videoId, Long userId, FeedbackCr
Feedback feedback = feedbackConverter.toFeedback(video, user, guest, req);
Feedback saved = feedbackRepository.save(feedback);

if (user != null) {
activityLogService.createVideoFeedbackCommentedLog(
video.getProject().getId(),
user.getId(),
video.getId(),
video.getTitle()
);
} else {
activityLogService.createGuestVideoFeedbackCommentedLog(
video.getProject().getId(),
guest,
video.getId(),
video.getTitle()
);
}

return feedbackConverter.toCreateResponse(saved);
}

Expand Down Expand Up @@ -278,4 +296,4 @@ public FeedbackStatusResDTO changeFeedbackStatus(Long feedbackId, Long userId, F

return feedbackConverter.toStatusResponse(feedback);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.slatto.domain.project.service;

import com.slatto.domain.notification.service.ActivityLogService;
import com.slatto.domain.project.dto.ProjectFileDownloadResponse;
import com.slatto.domain.project.dto.ProjectFileResponse;
import com.slatto.domain.project.dto.ProjectFileListResponse;
Expand Down Expand Up @@ -53,6 +54,7 @@ public class ProjectFileService {
private final ProjectFileRepository projectFileRepository;
private final ProjectAccessValidator projectAccessValidator;
private final StorageService storageService;
private final ActivityLogService activityLogService;

public ProjectFileListResponse getProjectFiles(
Long projectId,
Expand Down Expand Up @@ -120,6 +122,7 @@ public ProjectFileResponse uploadProjectFile(
);

ProjectFile savedFile = projectFileRepository.save(projectFile);
activityLogService.createFileUploadedLog(projectId, currentUserId, savedFile.getId(), savedFile.getFileName());

return toResponse(savedFile);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import com.slatto.domain.project.repository.ProjectInvitationRepository;
import com.slatto.domain.project.repository.ProjectMemberRepository;
import com.slatto.domain.project.repository.ProjectUserRoleRepository;
import com.slatto.domain.notification.service.ActivityLogService;
import com.slatto.domain.user.entity.Users;
import com.slatto.domain.user.enums.RoleName;
import com.slatto.domain.user.repository.UserRepository;
Expand Down Expand Up @@ -48,6 +49,7 @@ public class ProjectInvitationService {
private final UserRepository userRepository;
private final ProjectAccessValidator projectAccessValidator;
private final ProjectInvitationProperties projectInvitationProperties;
private final ActivityLogService activityLogService;
private final SecureRandom secureRandom = new SecureRandom();

@Transactional
Expand Down Expand Up @@ -114,6 +116,7 @@ public ProjectInvitationAcceptResponse acceptInvitation(
.toList();
saveProjectRoles(projectMember, roleNames);
projectInvitation.accept(accepter);
activityLogService.createProjectMemberJoinedLog(project.getId(), accepter.getId());

return ProjectInvitationAcceptResponse.builder()
.projectId(project.getId())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.slatto.domain.project.service;

import com.slatto.domain.notification.service.ActivityLogService;
import com.slatto.domain.project.dto.ProjectNoticeCreateRequest;
import com.slatto.domain.project.dto.ProjectNoticeListResponse;
import com.slatto.domain.project.dto.ProjectNoticeReadResponse;
Expand Down Expand Up @@ -35,6 +36,7 @@ public class ProjectNoticeService {
private final ProjectNoticeRepository projectNoticeRepository;
private final ProjectNoticeReadRepository projectNoticeReadRepository;
private final ProjectAccessValidator projectAccessValidator;
private final ActivityLogService activityLogService;

public ProjectNoticeListResponse getProjectNotices(
Long projectId,
Expand Down Expand Up @@ -92,6 +94,7 @@ public ProjectNoticeResponse createProjectNotice(
request.getContent()
);
ProjectNotice savedNotice = projectNoticeRepository.save(projectNotice);
activityLogService.createNoticeCreatedLog(projectId, currentUserId, savedNotice.getId());

return toResponse(savedNotice, false);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import com.slatto.domain.project.repository.ProjectPinRepository;
import com.slatto.domain.project.repository.ProjectRepository;
import com.slatto.domain.project.repository.ProjectUserRoleRepository;
import com.slatto.domain.notification.service.ActivityLogService;
import com.slatto.domain.user.entity.Users;
import com.slatto.domain.user.enums.RoleName;
import com.slatto.domain.user.repository.UserRepository;
Expand Down Expand Up @@ -52,6 +53,7 @@ public class ProjectService {
private final VideoRepository videoRepository;
private final ProjectConverter projectConverter;
private final ProjectAccessValidator projectAccessValidator;
private final ActivityLogService activityLogService;

@Transactional
public ProjectResponse createProject(Long ownerUserId, ProjectCreateRequest request) {
Expand Down Expand Up @@ -167,6 +169,7 @@ public ProjectResponse updateProject(
) {
Project project = projectAccessValidator.getProjectOrThrow(projectId);
projectAccessValidator.getCurrentAdminOrThrow(projectId, currentUserId);
ProjectStatus previousStatus = project.getStatus();

project.updateInfo(
request.getTitle(),
Expand All @@ -182,6 +185,17 @@ public ProjectResponse updateProject(
project.changeStatus(request.getStatus());
}

activityLogService.createProjectUpdatedLog(projectId, currentUserId);

if (request.getStatus() != null && previousStatus != request.getStatus()) {
activityLogService.createProjectStatusChangedLog(
projectId,
currentUserId,
getProjectStatusLabel(previousStatus),
getProjectStatusLabel(request.getStatus())
);
}

return projectConverter.toResponse(project);
}

Expand Down Expand Up @@ -211,6 +225,15 @@ private void validateProjectCreationQuota(Long ownerUserId) {
}
}

private String getProjectStatusLabel(ProjectStatus status) {
return switch (status) {
case PREPARING -> "준비중";
case EDITING -> "편집중";
case REVIEWING -> "검토중";
case COMPLETED -> "완료";
};
}

private void saveProjectRoles(ProjectMember projectMember, List<RoleName> roleNames) {
if (roleNames == null || roleNames.isEmpty()) {
return;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.slatto.domain.schedule.service;

import com.slatto.domain.notification.service.ActivityLogService;
import com.slatto.domain.notification.service.NotificationService;
import com.slatto.domain.project.entity.Project;
import com.slatto.domain.project.entity.ProjectMember;
Expand Down Expand Up @@ -51,6 +52,7 @@ public class ScheduleService {
private final ProjectAccessValidator projectAccessValidator;
private final ScheduleConverter scheduleConverter;
private final NotificationService notificationService;
private final ActivityLogService activityLogService;

@Transactional
public SchedulePrivateMemoResponse upsertPrivateMemo(
Expand Down Expand Up @@ -208,6 +210,14 @@ public ScheduleResponse createSchedule(Long currentUserId, ScheduleCreateRequest
participants,
writer.getId()
);
if (savedSchedule.isProjectSchedule()) {
activityLogService.createScheduleCreatedLog(
project.getId(),
currentUserId,
savedSchedule.getId(),
savedSchedule.getTitle()
);
}

return scheduleConverter.toResponse(savedSchedule);
}
Expand Down Expand Up @@ -249,6 +259,14 @@ public ScheduleResponse updateSchedule(
currentUserId
);
}
if (schedule.isProjectSchedule()) {
activityLogService.createScheduleUpdatedLog(
schedule.getProject().getId(),
currentUserId,
schedule.getId(),
schedule.getTitle()
);
}

return scheduleConverter.toResponse(schedule);
}
Expand Down
Loading
Loading