Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
… into feat/mission
  • Loading branch information
seungueonn committed Dec 20, 2023
2 parents c7fca3c + a8e1a3d commit 67a1373
Show file tree
Hide file tree
Showing 7 changed files with 61 additions and 69 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import com.moing.backend.domain.board.domain.entity.Board;
import com.moing.backend.domain.history.application.dto.response.MemberIdAndToken;
import com.moing.backend.domain.history.application.dto.response.NewUploadInfo;
import com.moing.backend.domain.history.application.mapper.AlarmHistoryMapper;
import com.moing.backend.domain.history.domain.entity.AlarmType;
import com.moing.backend.domain.history.domain.entity.PagePath;
import com.moing.backend.domain.member.domain.entity.Member;
Expand Down Expand Up @@ -35,8 +37,9 @@ public void sendNewUploadAlarm(BaseServiceResponse baseServiceResponse, Board bo
if (board.isNotice()) {
String title = NEW_NOTICE_UPLOAD_MESSAGE.title(team.getName());
String body = NEW_NOTICE_UPLOAD_MESSAGE.body(board.getTitle());
Optional<List<MemberIdAndToken>> memberIdAndTokensByPush = teamMemberGetService.getNewUploadPushInfo(team.getTeamId(), member.getMemberId());
Optional<List<MemberIdAndToken>> memberIdAndTokensBySave = teamMemberGetService.getNewUploadSaveInfo(team.getTeamId(), member.getMemberId());
Optional<List<NewUploadInfo>> newUploadInfos=teamMemberGetService.getNewUploadInfo(team.getTeamId(), member.getMemberId());
Optional<List<MemberIdAndToken>> memberIdAndTokensByPush = AlarmHistoryMapper.getNewUploadPushInfo(newUploadInfos);
Optional<List<MemberIdAndToken>> memberIdAndTokensBySave = AlarmHistoryMapper.getNewUploadSaveInfo(newUploadInfos);
// 알림 보내기
eventPublisher.publishEvent(new MultiFcmEvent(title, body, memberIdAndTokensByPush, memberIdAndTokensBySave, createIdInfo(team.getTeamId(), board.getBoardId()), team.getName(), AlarmType.NEW_UPLOAD, PagePath.NOTICE_PATH.getValue()));
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.moing.backend.domain.history.application.dto.response;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class NewUploadInfo {

private String fcmToken;
private Long memberId;
private boolean isNewUploadPush;
private boolean isSignOut;

}
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package com.moing.backend.domain.history.application.mapper;

import com.moing.backend.domain.history.application.dto.response.MemberIdAndToken;
import com.moing.backend.domain.history.application.dto.response.NewUploadInfo;
import com.moing.backend.domain.history.domain.entity.AlarmHistory;
import com.moing.backend.domain.history.domain.entity.AlarmType;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;

import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;

@Component
Expand Down Expand Up @@ -54,4 +56,22 @@ public List<AlarmHistory> getAlarmHistories(String idInfo, List<Long> memberIds,
.collect(Collectors.toList());
}

public static Optional<List<MemberIdAndToken>> getNewUploadSaveInfo(Optional<List<NewUploadInfo>> optionalNewUploadInfos) {
return optionalNewUploadInfos.map(newUploadInfos ->
newUploadInfos.stream()
.map(info -> new MemberIdAndToken(info.getFcmToken(), info.getMemberId()))
.collect(Collectors.toList())
);
}

public static Optional<List<MemberIdAndToken>> getNewUploadPushInfo(Optional<List<NewUploadInfo>> optionalNewUploadInfos) {
return optionalNewUploadInfos.map(newUploadInfos ->
newUploadInfos.stream()
.filter(NewUploadInfo::isNewUploadPush)
.filter(info -> !info.isSignOut())
.map(info -> new MemberIdAndToken(info.getFcmToken(), info.getMemberId()))
.collect(Collectors.toList())
);
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.moing.backend.domain.mission.application.service;

import com.moing.backend.domain.history.application.dto.response.MemberIdAndToken;
import com.moing.backend.domain.history.application.dto.response.NewUploadInfo;
import com.moing.backend.domain.history.application.mapper.AlarmHistoryMapper;
import com.moing.backend.domain.history.domain.entity.AlarmType;
import com.moing.backend.domain.history.domain.entity.PagePath;
import com.moing.backend.domain.member.domain.entity.Member;
Expand Down Expand Up @@ -36,8 +38,10 @@ public void sendNewMissionUploadAlarm(Member member, Mission mission) {
String type = mission.getType().toString();
String status = mission.getStatus().toString();

Optional<List<MemberIdAndToken>> memberIdAndTokensByPush = teamMemberGetService.getNewUploadPushInfo(team.getTeamId(), member.getMemberId());
Optional<List<MemberIdAndToken>> memberIdAndTokensBySave = teamMemberGetService.getNewUploadSaveInfo(team.getTeamId(), member.getMemberId());
Optional<List<NewUploadInfo>> newUploadInfos=teamMemberGetService.getNewUploadInfo(team.getTeamId(), member.getMemberId());

Optional<List<MemberIdAndToken>> memberIdAndTokensByPush = AlarmHistoryMapper.getNewUploadPushInfo(newUploadInfos);
Optional<List<MemberIdAndToken>> memberIdAndTokensBySave = AlarmHistoryMapper.getNewUploadSaveInfo(newUploadInfos);
// 알림 보내기
eventPublisher.publishEvent(new MultiFcmEvent(title, message, memberIdAndTokensByPush, memberIdAndTokensBySave, createIdInfo(team.getTeamId(), mission.getId(),mission.getType(),mission.getStatus()), team.getName(), AlarmType.NEW_UPLOAD, PagePath.MISSION_PATH.getValue()));
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.moing.backend.domain.teamMember.domain.repository;

import com.moing.backend.domain.history.application.dto.response.MemberIdAndToken;
import com.moing.backend.domain.history.application.dto.response.NewUploadInfo;
import com.moing.backend.domain.member.domain.entity.Member;
import com.moing.backend.domain.team.application.dto.response.TeamMemberInfo;
import com.moing.backend.domain.teamMember.domain.entity.TeamMember;
Expand All @@ -10,10 +11,7 @@

public interface TeamMemberCustomRepository {
List<Long> findMemberIdsByTeamId(Long teamId);
Optional<List<MemberIdAndToken>> findNewUploadPushInfo(Long teamId, Long memberId);
Optional<List<MemberIdAndToken>> findNewUploadSaveInfo(Long teamId, Long memberId);
Optional<List<MemberIdAndToken>> findRemindPushInfo(Long teamId, Long memberId);
Optional<List<MemberIdAndToken>> findRemindSaveInfo(Long teamId, Long memberId);
Optional<List<NewUploadInfo>> findNewUploadInfo(Long teamId, Long memberId);
Optional<List<String>> findFcmTokensByTeamIdAndMemberId(Long teamId, Long memberId);
List<TeamMemberInfo> findTeamMemberInfoByTeamId(Long teamId);
List<TeamMember> findTeamMemberByMemberId(Long memberId);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.moing.backend.domain.teamMember.domain.repository;

import com.moing.backend.domain.history.application.dto.response.MemberIdAndToken;
import com.moing.backend.domain.history.application.dto.response.NewUploadInfo;
import com.moing.backend.domain.team.application.dto.response.QTeamMemberInfo;
import com.moing.backend.domain.team.application.dto.response.TeamMemberInfo;
import com.moing.backend.domain.teamMember.domain.entity.TeamMember;
Expand Down Expand Up @@ -32,55 +33,12 @@ public List<Long> findMemberIdsByTeamId(Long teamId) {
}

@Override
public Optional<List<MemberIdAndToken>> findNewUploadPushInfo(Long teamId, Long memberId) {
List<MemberIdAndToken> result = queryFactory.select(Projections.constructor(MemberIdAndToken.class,
public Optional<List<NewUploadInfo>> findNewUploadInfo(Long teamId, Long memberId) {
List<NewUploadInfo> result = queryFactory.select(Projections.constructor(NewUploadInfo.class,
teamMember.member.fcmToken,
teamMember.member.memberId))
.from(teamMember)
.where(teamMember.team.teamId.eq(teamId)
.and(teamMember.member.isNewUploadPush.eq(true))
.and(teamMember.member.isSignOut.eq(false))
.and(teamMember.member.memberId.ne(memberId))
.and(teamMember.isDeleted.eq(false)))
.fetch();

return result.isEmpty() ? Optional.empty() : Optional.of(result);
}

@Override
public Optional<List<MemberIdAndToken>> findNewUploadSaveInfo(Long teamId, Long memberId) {
List<MemberIdAndToken> result = queryFactory.select(Projections.constructor(MemberIdAndToken.class,
teamMember.member.fcmToken,
teamMember.member.memberId))
.from(teamMember)
.where(teamMember.team.teamId.eq(teamId)
.and(teamMember.member.memberId.ne(memberId))
.and(teamMember.isDeleted.eq(false)))
.fetch();

return result.isEmpty() ? Optional.empty() : Optional.of(result);
}
@Override
public Optional<List<MemberIdAndToken>> findRemindPushInfo(Long teamId, Long memberId) {
List<MemberIdAndToken> result = queryFactory.select(Projections.constructor(MemberIdAndToken.class,
teamMember.member.fcmToken,
teamMember.member.memberId))
.from(teamMember)
.where(teamMember.team.teamId.eq(teamId)
.and(teamMember.member.isRemindPush.eq(true))
.and(teamMember.member.isSignOut.eq(false))
.and(teamMember.member.memberId.ne(memberId))
.and(teamMember.isDeleted.eq(false)))
.fetch();

return result.isEmpty() ? Optional.empty() : Optional.of(result);
}

@Override
public Optional<List<MemberIdAndToken>> findRemindSaveInfo(Long teamId, Long memberId) {
List<MemberIdAndToken> result = queryFactory.select(Projections.constructor(MemberIdAndToken.class,
teamMember.member.fcmToken,
teamMember.member.memberId))
teamMember.member.memberId,
teamMember.member.isNewUploadPush,
teamMember.member.isSignOut))
.from(teamMember)
.where(teamMember.team.teamId.eq(teamId)
.and(teamMember.member.memberId.ne(memberId))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.moing.backend.domain.teamMember.domain.service;

import com.moing.backend.domain.history.application.dto.response.MemberIdAndToken;
import com.moing.backend.domain.history.application.dto.response.NewUploadInfo;
import com.moing.backend.domain.member.domain.entity.Member;
import com.moing.backend.domain.team.application.dto.response.TeamMemberInfo;
import com.moing.backend.domain.team.domain.entity.Team;
Expand Down Expand Up @@ -38,20 +39,9 @@ public List<TeamMember> getNotDeletedTeamMember(Long memberId){
return teamMemberRepository.findTeamMemberByMemberId(memberId);
}

public Optional<List<MemberIdAndToken>> getNewUploadPushInfo(Long teamId, Long memberId) {
return teamMemberRepository.findNewUploadPushInfo(teamId, memberId);
public Optional<List<NewUploadInfo>> getNewUploadInfo(Long teamId, Long memberId) {
return teamMemberRepository.findNewUploadInfo(teamId, memberId);
}

public Optional<List<MemberIdAndToken>> getNewUploadSaveInfo(Long teamId, Long memberId) {
return teamMemberRepository.findNewUploadSaveInfo(teamId, memberId);
}

public Optional<List<MemberIdAndToken>> getRemindPushInfo(Long teamId, Long memberId) {
return teamMemberRepository.findRemindPushInfo(teamId, memberId);
}

public Optional<List<MemberIdAndToken>> getRemindSaveInfo(Long teamId, Long memberId) {
return teamMemberRepository.findRemindSaveInfo(teamId, memberId);
}

}

0 comments on commit 67a1373

Please sign in to comment.