코스 정보 출력
코스 도메인에는 contentSeq 배열이 있다.
①페이지 이동할 때 컨트롤러에 1일차/2일차/3일차 contentSeq 배열 전달(페이지에서 1일차/2일차/3일차 선택할 때마다 ajax 실행, body onload시 1일차 실행)
- ajax로 컨트롤러 요청하면 그 페이지에 있는 model 사용할 수 있나? ← x
- 일차별로 배열 전달하지 말고 전부 전달하고 다 가져와서 탭 방식으로 보여주는 것만 제한하자
- 여기서 막힘.....배열 값이 전달이 안 된다
- 배열 값을 전달하지 말고 DB에서 새로 가져올까
― ― ― ― ― ― ― ― ― ― ― 03.12. ― ― ― ― ― ― ― ― ― ―
①페이지 이동할 때 파라미터인 courseNum으로 contentSeq 배열 취득
②Repository에서 contentSeq별 정보, 코스 정보 가져옴
③JSON 객체에 저장, JSON 객체 배열 만들기
④JSON 객체 배열 페이지에 전달
⑤배열에서 정보 꺼내서 출력
열심히 짠 코드...개선할 점이 있어서 많이 바꿨다.
public List<List<CourseInfo>> getInterCourseInfo(String courseNum) {
System.out.println("courseService.getCourseInfo() 도착");
Course course = courseRepository.getCourseByCourseNum(courseNum);
List<CourseInfo> course1InfoList = new ArrayList<CourseInfo>();
List<CourseInfo> course2InfoList = new ArrayList<CourseInfo>();
List<CourseInfo> course3InfoList = new ArrayList<CourseInfo>();
List<LatLng> latLngArray1 = new ArrayList<LatLng>();
List<LatLng> latLngArray2 = new ArrayList<LatLng>();
List<LatLng> latLngArray3 = new ArrayList<LatLng>();
CourseInfo courseInfo = new CourseInfo();
LatLng latLng = new LatLng();
String startLongitude;
String startLatitude;
String goalLongitude;
String goalLatitude;
List<List<CourseInfo>> allCourseInfoLists = new ArrayList<>();
//코스에서 contentSeq로 경도 위도 획득, 배열에 저장
String[] course1Array = course.getCourse1Array();
for(int i = 0; i<course1Array.length; i++) {
latLng = courseRepository.getAddrObjectByContentSeq(course1Array[i]);
latLngArray1.add(latLng);
}
//latLng 안의 위도 경도로 api 연결
for(int i = 1; i<latLngArray1.size(); i++) {
startLongitude = latLngArray1.get(i - 1).getLng();
startLatitude = latLngArray1.get(i - 1).getLat();
goalLongitude = latLngArray1.get(i).getLng();
goalLatitude = latLngArray1.get(i).getLat();
courseInfo = getCourseInfoByLatLng(startLongitude, startLatitude, goalLongitude, goalLatitude);
course1InfoList.add(courseInfo);
}
String[] course2Array = course.getCourse2Array();
for(int i = 0; i<course2Array.length; i++) {
latLng = courseRepository.getAddrObjectByContentSeq(course2Array[i]);
latLngArray2.add(latLng);
}
for(int i = 1; i<latLngArray2.size(); i++) {
startLongitude = latLngArray2.get(i - 1).getLng();
startLatitude = latLngArray2.get(i - 1).getLat();
goalLongitude = latLngArray2.get(i).getLng();
goalLatitude = latLngArray2.get(i).getLat();
courseInfo = getCourseInfoByLatLng(startLongitude, startLatitude, goalLongitude, goalLatitude);
course2InfoList.add(courseInfo);
}
String[] course3Array = course.getCourse2Array();
for(int i = 0; i<course3Array.length; i++) {
latLng = courseRepository.getAddrObjectByContentSeq(course3Array[i]);
latLngArray3.add(latLng);
}
for(int i = 1; i<latLngArray3.size(); i++) {
startLongitude = latLngArray3.get(i - 1).getLng();
startLatitude = latLngArray3.get(i - 1).getLat();
goalLongitude = latLngArray3.get(i).getLng();
goalLatitude = latLngArray3.get(i).getLat();
courseInfo = getCourseInfoByLatLng(startLongitude, startLatitude, goalLongitude, goalLatitude);
course3InfoList.add(courseInfo);
}
allCourseInfoLists.add(course1InfoList);
allCourseInfoLists.add(course2InfoList);
allCourseInfoLists.add(course3InfoList);
return allCourseInfoLists;
}
일차별로 나눠서 호출하도록 바꾸고 기능별로 분리해서 기능 하나는 Repository로 보냈다.
테스트 중에 다음과 같은 오류가 나왔다.
org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0
테스트용으로 댕댕여지도의 코스별 여행에 있는 컨텐츠들을 넣어놨는데 코스 페이지에는 남아있지만 API에서는 컨텐츠가 삭제된 것 같다. 덕분에 2시간동안 헤맸다...
하지만 디버그 기술이 더 좋았더라면 금방 해결했을 것이다. 경험이라고 생각해야겠다.
코스 상세 페이지에 파라미터로 이동하는데 이러면 남의 코스도 볼 수 있는 거 아닌가...?
window.location.href = "myCourse?courseNum=" + courseNum;
+뷰 조정
+전체 코스 정보 출력: 중간 스케줄을 경유지로 포함, 총 이동 소요 시간 및 이동 거리, 예상 유류비 ✔
+코스 스케줄 클릭하면 해당 상세보기 페이지로 이동✔

왜.....
내일 할일
1. 뷰 조정↑
2. 코스 만들기
'정리노트 > 팀프로젝트' 카테고리의 다른 글
[팀 프로젝트] 24.03.15. 노트 (0) | 2024.03.15 |
---|---|
[팀 프로젝트] 24.03.13. 노트 (0) | 2024.03.13 |
[팀 프로젝트] 24.03.11. 노트 (0) | 2024.03.11 |
[팀 프로젝트] 24.03.08. 노트 (0) | 2024.03.08 |
[팀 프로젝트] 24.03.07. 노트 (0) | 2024.03.07 |