jungheyin / TravelPlans.

0 stars 0 forks source link

일정만들기 해결부분! #8

Open jungheyin opened 2 years ago

jungheyin commented 2 years ago

itinerary/date_list_view부분 (일정만들기)

  1. 가져온 여행 날짜 옆에

만들어주기!!

<c:forEach items="${dateListView}" var="date">
            <div class="d-flex mt-2 ml-4 mb-3">
                <div class="date font-weight-bold mr-3 mt-1">
                    ${date.date}
                </div>
                <div>
                    <c:choose>
                        <c:when test="${empty date.itinerary.title}">
                            <div class="d-flex">
                                <input type="text" class="title form-control" id="${date.date}" placeholder="제목 입력하기">
                                <div class="ml-2">
                                    <button class="titleAddBtn btn d-none">${date.date}</button>
                                    <img src="/static/icons/plus_skyBlue.png" alt="저장하기" data-target="${date.date}"
                                        class="titleAddImg" width="35px">
                                </div>                              
                            </div>
                        </c:when>
                        <c:when test="${!empty date.itinerary.title}">
                            <div class="d-flex">
                                <input type="text" class="titleUpdate form-control"  id="${date.date}" value="${date.itinerary.title}">
                                <div class="ml-3">
                                    <button class="titleUpdateBtn btn d-none" >${date.date}</button>
                                    <img src="/static/icons/change_skyBlue.png" alt="수정하기" data-target="${date.date}"
                                        data-itiner-id="${date.itinerary.id}" class="titleUpdateImg mt-2" width="20px">
                                </div>
                            </div>
                        </c:when>
                    </c:choose>
                </div>
            </div>
        </c:forEach>
jungheyin commented 2 years ago

itinerary/date_list_view 를 위한 BO와 model을 만들어줬음!!

model부분

private Travel travel; // 여행 정보
    private String date;//날짜
    private Itinerary itinerary; // 여행일정 부분
    // 일정(plan)가져오기

    public Travel getTravel() {
        return travel;
    }
    public void setTravel(Travel travel) {
        this.travel = travel;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    public Itinerary getItinerary() {
        return itinerary;
    }
    public void setItinerary(Itinerary itinerary) {
        this.itinerary = itinerary;
    }

여행정보, 날짜리스트, 여행일정 부분을 가져왔음!!

BO부분 itienraryBO에서 날짜리스트를 만드는 것을
DateListViewBO 쪽으로 이동시켜줌!!

        List<DateListView> dateListView = new ArrayList<>();

        List<String> dateList = generateDateListByTravelId(travelId);
        for (String date : dateList) {
            DateListView content = new DateListView();
            // 날짜
            content.setDate(date);
            // 여행정보
             Itinerary itinerary = itineraryBO.getItineraryByTravelIdDate(travelId, date);
            content.setItinerary(itinerary);
            // plan정보 가져오기

            dateListView.add(content);
        }

        return dateListView;

여기서 dateListView 만들어준다.!!!

jungheyin commented 2 years ago

dateList에 plan정보, plan의 총 비용을 같이 넣어줌!

 List<String> dateList = generateDateListByTravelId(travelId);
        for (String date : dateList) {
            DateListView content = new DateListView();
            // 날짜
            content.setDate(date);
            // 제목
             Itinerary itinerary = itineraryBO.getItineraryByTravelIdDate(travelId, date);
            content.setItinerary(itinerary);

            // plan정보 가져오기
            List<Plan> planList = planBO.getPlanListByItineraryId(itineraryId);
            content.setPlan(planList);

            // 날짜의 하루동안의 총 비용
            int pricePlan = generatePlanPrice(itineraryId);
            content.setPlanPrice(pricePlan);

            // 여행 경비

            dateListView.add(content);
        }
jungheyin commented 2 years ago

plan정보를 가져올때 파라미터를 itineraryId로 가져왔더니 null이라고 뜨는 에러가 떠서 파라미터를 date를 가져왔더니 다른 itineraryId의 일정의 plan의 정보를 가져온다!! 다시 itineraryId로 plan정보를 가져와서 로직을 추가하는 방법!!

    int itineraryId = 0;        
    if (itinerary != null) {
        itineraryId = itinerary.getId();
    }

추가했더니 에러가 해결됨!!