Skip to content

Commit

Permalink
Merge pull request #272 from bankidz/fix/QA
Browse files Browse the repository at this point in the history
fix: 앱 출시 후 QA 사안들 반영 #268
  • Loading branch information
sanbonai06 authored Nov 11, 2022
2 parents e6045cc + 4757848 commit ed41cae
Show file tree
Hide file tree
Showing 7 changed files with 75 additions and 7 deletions.
11 changes: 11 additions & 0 deletions src/main/java/com/ceos/bankids/controller/ChallengeController.java
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,17 @@ public CommonResponse<List<ChallengeDTO>> getListChallenge(
return CommonResponse.onSuccess(challengeDTOList);
}

@ApiOperation(value = "돈길 상세 가져오기")
@GetMapping(value = "/{challengeId}", produces = "application/json; charset=utf-8")
public CommonResponse<ChallengeDTO> getChallengeDetail(@AuthenticationPrincipal User authUser,
@PathVariable Long challengeId) {

log.info("api = 돈길 상세 가져오기, user = {}, challenge = {}", authUser.getUsername(),
challengeId);

return CommonResponse.onSuccess(challengeMapper.readChallengeDetail(authUser, challengeId));
}

@ApiOperation(value = "자녀의 돈길 리스트 가져오기")
@GetMapping(value = "/kid/{kidId}", produces = "application/json; charset=utf-8")
public CommonResponse<KidChallengeListDTO> getListKidChallenge(
Expand Down
16 changes: 15 additions & 1 deletion src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,13 @@ public ChallengeDTO deleteChallengeMapper(User authUser, Long challengeId) {
}
if (deleteChallenge.getChallengeStatus() == ChallengeStatus.WALKING) {
kidService.checkKidDeleteChallenge(authUser, deleteChallenge);
return challengeService.deleteWalkingChallenge(
ChallengeDTO challengeDTO = challengeService.deleteWalkingChallenge(
authUser,
challengeUser);
kidService.updateKidDecreaseTotalChallenge(authUser);
notificationService.deleteChallengeNotification(authUser,
deleteChallenge.getContractUser(), deleteChallenge);
return challengeDTO;
} else if (deleteChallenge.getChallengeStatus() == ChallengeStatus.FAILED) {
return challengeService.deleteWalkingChallenge(
authUser,
Expand Down Expand Up @@ -156,6 +160,16 @@ public List<ChallengeDTO> readChallengeListMapper(User authUser, String status)
return challengeDTOList;
}

// 돈길 상세 가져오기 API Mapper
@Transactional
public ChallengeDTO readChallengeDetail(User authUser, Long challengeId) {
ChallengeUser challengeUser = challengeUserService.readChallengeUser(challengeId);
if (authUser.getId() != challengeUser.getUser().getId()) {
throw new ForbiddenException(ErrorCode.NOT_MATCH_CHALLENGE_USER.getErrorCode());
}
return challengeService.readChallengeDetail(challengeId);
}

// 자녀의 돈길 리스트 가져오기 API Mapper
@Transactional
public KidChallengeListDTO readKidChallengeListMapper(User authUser, Long kidId,
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/ceos/bankids/service/ChallengeService.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,6 @@ public ChallengeCompleteDeleteByKidMapperDTO challengeCompleteDeleteByKid(
List<Challenge> challengeList);

public List<ChallengeDTO> readChallengeHistory(String status);

public ChallengeDTO readChallengeDetail(Long challengeId);
}
10 changes: 10 additions & 0 deletions src/main/java/com/ceos/bankids/service/ChallengeServiceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,16 @@ public ChallengeListMapperDTO readPendingChallenge(Challenge challenge) {
return new ChallengeListMapperDTO(challenge, null, false);
}

@Transactional
@Override
public ChallengeDTO readChallengeDetail(Long challengeId) {
Challenge challenge = challengeRepository.findById(challengeId).orElseThrow(
() -> new BadRequestException(ErrorCode.NOT_EXIST_CHALLENGE.getErrorCode()));
return new ChallengeDTO(challenge, challenge.getProgressList().stream()
.map(progress -> new ProgressDTO(progress, challenge)).collect(
Collectors.toList()), challenge.getComment());
}

// 돈길 수락 / 거절 API
@Transactional
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -226,10 +226,10 @@ public void createPendingChallengeNotification(User contractUser, ChallengeUser
newMap.put("challenge", challengeUser.getChallenge().getId());
NotificationCategory notificationCategory = NotificationCategory.CHALLENGE;
Boolean checkServiceOptIn = checkServiceOptIn(contractUser, title, notificationBody,
notificationCategory, "");
notificationCategory, "/");
if (checkServiceOptIn) {
this.sendMessage(contractUser, title, notificationBody, newMap,
notificationCategory, "");
notificationCategory, "/");
}
log.info("부모 유저 id = {}에게 유저 id = {} 돈길 id = {} 의 돈길 제안", contractUser.getId(),
challengeUser.getUser().getId(), challengeUser.getChallenge().getId());
Expand Down Expand Up @@ -288,10 +288,10 @@ public void kidLevelUpNotification(User contractUser, User user, Long level, Lon
newMap.put("user", user.getId());
NotificationCategory notificationCategory = NotificationCategory.LEVEL;
Boolean checkServiceOptIn = checkServiceOptIn(contractUser, title, notificationBody,
notificationCategory, "");
notificationCategory, "/");
if (checkServiceOptIn) {
this.sendMessage(contractUser, title, notificationBody, newMap,
notificationCategory, "");
notificationCategory, "/");
}
log.info("부모 유저 id = {}에게 유저 id = {}의 레벨업 알림 전송", contractUser.getId(), user.getId());
}
Expand Down Expand Up @@ -380,6 +380,26 @@ public void runProgressNotification(User user, User contractUser, Challenge chal
user.getId(), challenge.getId());
}

@Async
@ApiOperation(value = "자녀가 돈길을 포기했을 때 부모 알림")
public void deleteChallengeNotification(User user, User contractUser, Challenge challenge) {

String title = "🚨자녀가 돈길을 포기했어요";
String notificationBody = "포기한 돈길은 무엇인지 확인해볼까요?\uD83D\uDE1F\n포기한 돈길들은 마이페이지 - 돈길 기록에서 확인가능해요";
HashMap<String, Object> newMap = new HashMap<>();
newMap.put("user", user.getId());
newMap.put("challenge", challenge.getId());
NotificationCategory notificationCategory = NotificationCategory.CHALLENGE;
Boolean checkServiceOptIn = checkServiceOptIn(contractUser, title, notificationBody,
notificationCategory, "/");
if (checkServiceOptIn) {
this.sendMessage(contractUser, title, notificationBody, newMap, notificationCategory,
"/");
}
log.info("부모 유저 id = {}에게 유저 id = {}의 돈길 id = {} 돈길 포기 알림 전송", contractUser.getId(),
user.getId(), challenge.getId());
}

@Async
public void newFamilyUserNotification(User newFamilyUser, List<FamilyUser> familyUserList) {

Expand All @@ -391,10 +411,10 @@ public void newFamilyUserNotification(User newFamilyUser, List<FamilyUser> famil
familyUserList.forEach(familyUser -> {
User user = familyUser.getUser();
Boolean checkServiceOptIn = checkServiceOptIn(user, title, notificationBody,
notificationCategory, "");
notificationCategory, "/newFamily");
if (checkServiceOptIn) {
this.sendMessage(user, title, notificationBody, newMap,
notificationCategory, "");
notificationCategory, "/newFamily");
}
log.info("기존 가족 구성원 id = {}에게 유저 id = {}의 가족 참여 알림 전송", familyUser.getUser().getId(),
newFamilyUser.getId());
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/ceos/bankids/service/KidService.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,6 @@ public interface KidService {
public void updateInitKid(User user);

public void updateKidByPatchProgress(User user, Challenge challenge);

public void updateKidDecreaseTotalChallenge(User user);
}
9 changes: 9 additions & 0 deletions src/main/java/com/ceos/bankids/service/KidServiceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,15 @@ public void updateKidTotalChallenge(User user) {
kidRepository.save(kid);
}

@Transactional
@Override
public void updateKidDecreaseTotalChallenge(User user) {
Kid kid = user.getKid();
Long totalChallenge = kid.getTotalChallenge();
kid.setTotalChallenge(totalChallenge - 1L);
kidRepository.save(kid);
}

@Transactional
@Override
public void updateInitKid(User user) {
Expand Down

0 comments on commit ed41cae

Please sign in to comment.