Skip to content

Commit

Permalink
Merge pull request #28 from sikcal/service
Browse files Browse the repository at this point in the history
Update Calendar Logic && Fix Token Error : Remove setToken
  • Loading branch information
jeomxon authored Jul 20, 2022
2 parents ca7988a + 37cd754 commit 07be0cf
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,15 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

import javax.persistence.EntityManager;
import java.time.LocalDate;
import java.util.ArrayList;

@EnableScheduling
@SpringBootApplication
@RequiredArgsConstructor
public class SikcalAppApplication {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse
filterChain.doFilter(request,response); //아직 인증이 진행중임
}catch (Exception exception){ //토큰이 valid 만료되었거나 무슨일이 생길때
LOGGER.error("토큰 varify 과정중 error발생:{} ",exception.getMessage() );
response.setHeader("token error",exception.getMessage());
// response.sendError(FORBIDDEN.value()); //403 forbidden 코드
response.setStatus(FORBIDDEN.value());
//에러시 json형태로 보내기
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@
package com.prob_jr.sikcal_app.domain.controller;

import com.prob_jr.sikcal_app.domain.CalendarStatus;
import com.prob_jr.sikcal_app.domain.controller.dto.CalendarStateInfo;
import com.prob_jr.sikcal_app.domain.controller.dto.CheckTargetRequest;
import com.prob_jr.sikcal_app.domain.service.CalendarService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.web.bind.annotation.*;


@RestController
@RequiredArgsConstructor
@RequestMapping("/api/user")
public class CalendarController {

private final CalendarService calendarService;

@Scheduled(cron = "0 0 0 * * *")
@GetMapping("/calendar-goal")
public ResponseEntity<Void> checkTargetWeight(@RequestBody CheckTargetRequest checkTargetRequest) {
calendarService.checkTargetKcal(checkTargetRequest.toServiceDto());
@GetMapping("/calendar")
public ResponseEntity<CalendarStateInfo> checkTargetWeight(@ModelAttribute CheckTargetRequest checkTargetRequest) {
CalendarStateInfo calendarStateInfo = calendarService.checkTargetKcal(checkTargetRequest.toServiceDto());

return ResponseEntity.ok().build();
return ResponseEntity.ok(calendarStateInfo);
}



}
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,6 @@ public ResponseEntity<Void> deleteRecord(@PathVariable(value = "recordId") Long

return ResponseEntity.ok().build();
}
/*@PostMapping("/")
public ResponseEntity<?>*/


public ResponseEntity<List<RecipeDto>> getFavorites(HttpServletRequest request){
String authorizationHeader = request.getHeader(AUTHORIZATION); //REFRESHTOKEN잉 있다면
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.prob_jr.sikcal_app.domain.controller.dto;

import com.prob_jr.sikcal_app.domain.CalendarStatus;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;

@Getter
@AllArgsConstructor
public class CalendarStateInfo {

@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate yesterday;

private CalendarStatus status;
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
public class FoodInfoResponse {

private String foodName;

private int carbohydrate;
private int protein;
private int fat;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.prob_jr.sikcal_app.domain.CalendarStatus;
import com.prob_jr.sikcal_app.domain.Member;
import com.prob_jr.sikcal_app.domain.Record;
import com.prob_jr.sikcal_app.domain.controller.dto.CalendarStateInfo;
import com.prob_jr.sikcal_app.domain.repository.CalendarRepository;
import com.prob_jr.sikcal_app.domain.repository.MemberRepository;
import com.prob_jr.sikcal_app.domain.repository.RecordRepository;
Expand Down Expand Up @@ -31,36 +32,38 @@ public class CalendarService {
* 날짜별 목표 칼로리 달성 표시
*/
@Transactional
public void checkTargetKcal(TargetKcalCheckDto targetKcalCheckDto) {

public CalendarStateInfo checkTargetKcal(TargetKcalCheckDto targetKcalCheckDto) {
String memberId = targetKcalCheckDto.getMemberId();
LocalDate yesterday = LocalDate.now().minusDays(1);

//멤버 조회
Member member = memberRepository.findById(memberId).orElseThrow();
//하루 전날의 식단 조회
List<Record> recordList = recordRepository.findAllByRecordDateEquals(LocalDate.now().minusDays(1));
List<Record> recordList = recordRepository.findAllByRecordDateEquals(yesterday);
//캘린더 생성
Calendar calendar = Calendar.createCalendar(member);

int exTotalKcal = 0;

//인자로 오는 멤버의 식단만 새로운 리스트에 삽입
//인자로 오는 멤버의 식단의 총 칼로리만 새로운 변수에 더함
for (Record record : recordList) {
if (member.equals(record.getMember())) {
exTotalKcal += record.getTotalKcal();
}
}

//인자로 오는 멤버의 목표 섭취 칼로리를 가져옴
InfoDto infoDto = memberService.searchInfoById(memberId);
int requiredTotalKcal = infoDto.getRequiredTotal();

//목표 섭취 칼로리와 전날의 총 섭취 칼로리를 비교
if (requiredTotalKcal <= exTotalKcal) {
Calendar successCalendar = Calendar.checkTarget(calendar, CalendarStatus.SUCCESS);
calendarRepository.save(successCalendar);
return new CalendarStateInfo(yesterday, CalendarStatus.SUCCESS);
} else {
Calendar failCalendar = Calendar.checkTarget(calendar, CalendarStatus.FAIL);
calendarRepository.save(failCalendar);
return new CalendarStateInfo(yesterday, CalendarStatus.FAIL);
}
}

Expand Down

0 comments on commit 07be0cf

Please sign in to comment.