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 @@ -88,4 +88,14 @@ public ResponseEntity<ResponseDeleteIngredientBookmark> deleteIngredientBookmark
return ResponseEntity.status(HttpStatus.OK).body(responseDeleteIngredientBookmark);
}

@GetMapping("/alert")
public ResponseEntity<List<ResponseAlertExpirationDate>> alertExpirationDate(
@RequestBody RequestAlertExpirationDate requestAlertExpirationDate
) {
List<ResponseAlertExpirationDate> responseAlertExpirationDate =
ingredientService.alertExpirationDate(requestAlertExpirationDate);

return ResponseEntity.status(HttpStatus.OK).body(responseAlertExpirationDate);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package moja.refrigerator.dto.ingredient.request;

import lombok.Data;

@Data
public class RequestAlertExpirationDate {
private long userPk;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package moja.refrigerator.dto.ingredient.response;

import lombok.Data;
import moja.refrigerator.aggregate.ingredient.IngredientManagement;

@Data
public class ResponseAlertExpirationDate {
private long ingredientMyRefrigeratorPk;
private IngredientManagement ingredientManagement;
private float ingredientAmount;
private String expirationDate;
private int remainDate;

public ResponseAlertExpirationDate(long ingredientMyRefrigeratorPk, IngredientManagement ingredientManagement, float ingredientAmount, String expirationDate, int remainDate) {
this.ingredientMyRefrigeratorPk = ingredientMyRefrigeratorPk;
this.ingredientManagement = ingredientManagement;
this.ingredientAmount = ingredientAmount;
this.expirationDate = expirationDate;
this.remainDate = remainDate;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,6 @@ List<ResponseUsersIngredientBookmarkLists> getUsersIngredientBookmarkLists(
RequestIngredientBookmarkLists requestBookmarkLists);

ResponseDeleteIngredientBookmark deleteIngredientBookmark(RequestDeleteIngredientBookmark requestDeleteBookmark);

List<ResponseAlertExpirationDate> alertExpirationDate(RequestAlertExpirationDate requestAlertExpirationDate);
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,10 @@
import org.springframework.transaction.annotation.Transactional;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.Comparator;
import java.util.List;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.Optional;
import java.util.stream.Collectors;

@Service
Expand Down Expand Up @@ -180,4 +179,42 @@ public ResponseDeleteIngredientBookmark deleteIngredientBookmark(
return response;
}
}

@Override
public List<ResponseAlertExpirationDate> alertExpirationDate(
RequestAlertExpirationDate requestAlertExpirationDate) {
// 1. 현재일 찾기
LocalDate currentDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 원하는 포맷 지정
String dateString = currentDate.format(formatter);

// 2. 내 냉장고 전채 조회
List<IngredientMyRefrigerator> refrigeratorList = ingredientMyRefrigeratorRepository
.findByUserUserPk(requestAlertExpirationDate.getUserPk());

List<ResponseAlertExpirationDate> responseAlertExpirationDates = new ArrayList<>();
// 3. 남은 유통기한 계산
for (IngredientMyRefrigerator ingredientMyRefrigerator : refrigeratorList) {
LocalDate expirationDate = LocalDate.parse(ingredientMyRefrigerator.getExpirationDate(), formatter);

long daysUntilExpiration = ChronoUnit.DAYS.between(currentDate, expirationDate);

if (daysUntilExpiration == 7 || daysUntilExpiration == 3) {
// ResponseAlertExpirationDate 객체 생성
ResponseAlertExpirationDate response = new ResponseAlertExpirationDate(
ingredientMyRefrigerator.getIngredientMyRefrigeratorPk(),
ingredientMyRefrigerator.getIngredientManagement(),
ingredientMyRefrigerator.getIngredientAmount(),
ingredientMyRefrigerator.getExpirationDate(),
(int) daysUntilExpiration // daysUntilExpiration을 int로 변환
);

// 리스트에 추가
responseAlertExpirationDates.add(response);
}

}
// 4. 리턴
return responseAlertExpirationDates;
}
}