Skip to content

Commit

Permalink
Merge pull request #37 from How-homework-out/master
Browse files Browse the repository at this point in the history
[feat] 내 운동 루틴, 운동 루틴 상세에 운동 부위 추가
  • Loading branch information
ryulkim authored Nov 12, 2023
2 parents 9469d02 + d3ffa10 commit 941e8ac
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 16 deletions.
9 changes: 3 additions & 6 deletions src/main/java/inha/how/Controller/RoutineController.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
package inha.how.Controller;

import inha.how.Config.BaseResponse;
import inha.how.Domain.dto.routine.RoutineDetailRes;
import inha.how.Domain.dto.routine.RoutineMeDetailMapping;
import inha.how.Domain.dto.routine.RoutineMeSaveReq;
import inha.how.Domain.dto.routine.allRoutineRes;
import inha.how.Domain.dto.routine.*;
import inha.how.Domain.entity.MyRoutine;
import inha.how.Domain.entity.Routine;
import inha.how.Domain.entity.User;
Expand Down Expand Up @@ -52,11 +49,11 @@ public BaseResponse<RoutineDetailRes> RoutineDetails(@PathVariable("id") Long id

@Operation(summary = "내 운동 루틴 목록 조회", description = "내 운동 루틴 목록들을 조회하는 api다. type이 0일 때, 최신순, 1일 때, 운동 횟수순")
@GetMapping("/me")
public BaseResponse<List<RoutineMeDetailMapping>> RoutineMeDetails(@RequestHeader("Authorization") String jws, @RequestParam boolean type){//<allRoutineRes>
public BaseResponse<List<RoutineMeResult>> RoutineMeDetails(@RequestHeader("Authorization") String jws, @RequestParam boolean type){//<allRoutineRes>
//예외 처리 필요
User user = userService.validUser(jws);

List<RoutineMeDetailMapping> res=routineService.findMyRoutine(user, type);
List<RoutineMeResult> res=routineService.findMyRoutine(user, type);

return new BaseResponse<>(res);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Set;

@Getter
@NoArgsConstructor
Expand All @@ -14,5 +15,6 @@ public class RoutineDetailRes {
private Long routId;
private String name;
private Integer hits;
private Set<String> cate;
private List<RoutinneDetailResult> routineDetails;
}
13 changes: 13 additions & 0 deletions src/main/java/inha/how/Domain/dto/routine/RoutineMeResult.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package inha.how.Domain.dto.routine;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Set;

@AllArgsConstructor
@Getter
public class RoutineMeResult {
private RoutineMeDetailMapping routine;
private Set<String> cate;
}
62 changes: 53 additions & 9 deletions src/main/java/inha/how/Service/RoutineService.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,19 +37,26 @@ public allRoutineRes findRountines(Boolean type){
routineList= routineRepository.findAllByOrderByCreateDateDesc();
}


List<RoutinesResult> routinesResults=new ArrayList<>();

routineList.forEach((routine)->{
Set<String> cate=new HashSet<>();

List<RoutineDetailMapping> routineDetails = routineDetailRepository.findRoutineDetailsByRoutineOrderByOrderAsc(routine);
Set<String> cate=findRoutineCate(routineDetails);

/*
RoutineDetailRes routineDetailRes=findRoutineOne(routine.getId());
List<RoutinneDetailResult> routinneDetailResultList= routineDetailRes.getRoutineDetails();
List<RoutinneDetailResult> routinneDetailResultList = routineDetailRes.getRoutineDetails();
routinneDetailResultList.forEach((action)->{
action.getCate().forEach((category)->{
cate.add(category.getExCateIdCategoryName());
});
});
*/


RoutinesResult routinesResult=new RoutinesResult(routine, cate);
routinesResults.add(routinesResult);
});
Expand All @@ -58,39 +65,76 @@ public allRoutineRes findRountines(Boolean type){
return new allRoutineRes(routinesResults);
}

public Set<String> findRoutineCate(List<RoutineDetailMapping> routineDetailMappingList){
Set<String> cate=new HashSet<>();

routineDetailMappingList.forEach((detail)->{
List<CateInfoMapping> cateExInfo=findExCate(detail);

cateExInfo.forEach((category)->{
cate.add(category.getExCateIdCategoryName());
});
});

return cate;
}

public List<CateInfoMapping> findExCate(RoutineDetailMapping routineDetail){
Long exId = routineDetail.getEx().getId();
Excersise excersise = exRepository.findExcersiseById(exId);
List<CateInfoMapping> excersiseList = exCateRepository.findExCateByExCateIdEx(excersise);

return excersiseList;
}

public RoutineDetailRes findRoutineOne(Long id){
Routine routine = findRoutineById(id);
List<RoutineDetailMapping> routineDetails = routineDetailRepository.findRoutineDetailsByRoutineOrderByOrderAsc(routine);
List<RoutinneDetailResult> routineDetailResults = new ArrayList<>();
Set<String> cate=findRoutineCate(routineDetails);

//조회수 올라가는 거 필요

routineDetails.forEach((detail)->{
Long exId = detail.getEx().getId();
Excersise excersise = exRepository.findExcersiseById(exId);
//Long exId = detail.getEx().getId();
//Excersise excersise = exRepository.findExcersiseById(exId);

//이미지

//운동 부위
List<CateInfoMapping> excersiseList = exCateRepository.findExCateByExCateIdEx(excersise);
//List<CateInfoMapping> excersiseList = exCateRepository.findExCateByExCateIdEx(excersise);
List<CateInfoMapping> excersiseList=findExCate(detail);

routineDetailResults.add(new RoutinneDetailResult(detail.getId(), detail.getEx(), detail.getType(), detail.getSet(), detail.getTime(), detail.getCount(), detail.getRest(), detail.getOrder(), excersiseList));


});

return new RoutineDetailRes(routine.getId(), routine.getSubject(), routine.getHits(),routineDetailResults);
return new RoutineDetailRes(routine.getId(), routine.getSubject(), routine.getHits(),cate, routineDetailResults);
}

//findMyRoutine
public List<RoutineMeDetailMapping> findMyRoutine(User user, boolean type){
public List<RoutineMeResult> findMyRoutine(User user, boolean type){
//type 0일때, 최신순 1일 때, 운동횟수 별
List<RoutineMeDetailMapping> meDetailMappingList;
List<RoutineMeResult> res=new ArrayList<>();
if(type){
meDetailMappingList = myRoutineReposiotry.findMyRoutineByUserOrderByCreateDateDesc(user);
}
else{
meDetailMappingList = myRoutineReposiotry.findMyRoutineByUserOrderByCountDesc(user);
}
return meDetailMappingList;

meDetailMappingList.forEach((meRoutine)->{
Routine routine = findRoutineById(meRoutine.getRoutineId());
List<RoutineDetailMapping> routineDetails = routineDetailRepository.findRoutineDetailsByRoutineOrderByOrderAsc(routine);

Set<String> cate = findRoutineCate(routineDetails);

res.add(new RoutineMeResult(meRoutine, cate));
});

return res;
}

public void saveMyRoutine(User user, Long id){
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/inha/how/Service/StompService.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

import java.util.List;
import java.util.Map;
import java.util.Set;

@RequiredArgsConstructor
@Service
Expand All @@ -26,7 +27,8 @@ public RoutineDetailRes modifyRoutine(Long roomId, Map<String, Object> data){
String name=(String) data.get("name");
Integer hits=(Integer) data.get("hits");
List<RoutinneDetailResult> routinneDetailResultList = (List<RoutinneDetailResult>) data.get("routineDetails");
RoutineDetailRes detailRes=new RoutineDetailRes(routId, name, hits, routinneDetailResultList);
Set<String> cate=(Set<String>) data.get("cate");
RoutineDetailRes detailRes=new RoutineDetailRes(routId, name, hits, cate, routinneDetailResultList);

RoutineDetailRes modifiedRoutine = liveRoutine.modifyRoutine(roomId, detailRes);

Expand Down

0 comments on commit 941e8ac

Please sign in to comment.