정리노트/팀프로젝트

[팀 프로젝트] 24.03.18. 노트

망고고래 2024. 3. 18. 19:55

8. 회원정보 페이지 개선 →팀원🎈

12. 키워드별/지역별 검색결과 없으면 없다고 띄우기   ✔

13. 회원가입 id 중복 확인

14. 코스 총합 수정 ❗

- 코스 중간 지점을 경유지로 넣어서 api로 출력하면 경유지를 최적화시켜버림............

- 수동으로 더해야 할 듯

- 경유지 열심히 만들었는데...아깝다...

15. owner member info가 없는 것 같은데.....

→ owner와 user 통합

→ 로그인만 하면 시설 추가 신청 가능 → 관리자가 사업자등록번호 등 검토 후 승인

16. 첫 페이지 home으로 변경 ❗ →팀원🎈

17. 로그인 페이지 정리 →팀원🎈

18. + 코스 짤 때 이동거리, 시간 확인   ❗ ✔

19. map.jsp 자바스크립트 코드 정리

 

 

 

14. 코스 총합 수정

1)자바에서 총합 만들기

- 서비스에서 for문 돌릴 때마다 값 누적해서 저장

- 이렇게 하면 총합 변수(거리, 유류비, 시간)가 코스 안에서 각 스케줄마다 저장됨

- 어쨌든 맞는 값을 얻어올 수는 있음

2)jsp에서 총합 만들기

- c태그로 총합 변수(거리, 유류비, 시간) 선언

- forEach문 안에서 변수에 값 누적 저장

 

덜 익숙한 방식이 c태그니까 연습할 겸 해봐야겠다.

 

그런데 경유지로 안 넣고 따로따로 구할 거면 코스당 스케줄 7개 제한 안 걸어도 되겠다

그래도 무한히 넣을 수 있으면 안 되니까 10개로 제한해야지...

 

자꾸 오류가 생겨서 그냥 총합 정보를 없앴다...

시간은 촉박한데 이게 그렇게까지 필요한 정보는 아닌 것 같다. 코스간 이동거리와 시간이 필요하지 총합으로 보고 싶다는 경우는 별로 없을 테니까...

 

 

 

19. + 코스 짤 때 이동거리, 시간 확인

- ajax 사용...

- 두 번째 스케줄이 추가될 때부터 실행

- 2번 스케줄이 삭제되면 1번 정보 삭제 → 3번 스케줄이 2번이 되고 1번 정보 새로 생성

 

1) contentSeqArray 받아서 courseInfo 객체 리턴하는 컨트롤러 작성 ✔

2) (배열 길이 length) contentSeqArray에서 (length-2), (length-1) 인덱스의 항목 ajax로 전달

2-1): 삭제했을 경우: (삭제 인덱스-1)과 (삭제 인덱스)의 항목 전달, 새로 생성or값 수정 ← 될까?

 

'코스에 추가' 버튼에 ajax 연결 함수 설치

 

필요 함수

-코스에 추가-

(1)ajax 연결, 값 전달, 값 받아옴 ✔

(2)받아온 값으로 출력 부분 추가 ✔

-li 삭제-

(3)삭제

- 삭제하기 전에 인덱스(deletedIndex) 저장

- li 삭제&courseInfo 삭제 → contentSeqArray 항목 삭제(중간에 낀 경우 앞뒤로*) → minicontentSeqArray에 (deletedIndex-1) (deletedIndex)로 contentSeqArray 값 저장 → ajax 연결 함수 호출

(1)ajax 연결(전달할 항목 인덱스가 다름)

(2)받아온 값으로 출력 부분 추가

 

*jQuery로 태그를 선택하는 경우 조건에 맞는 태그가 없으면 넘어감

parentLi.prev('p').remove();
parentLi.next('p').remove(); //뒤에 형제요소 <p>가 없어도 가능
//if문으로 검사할 필요 없음

 

처음 계획부터 잘못됐었다!! 일단 할 수 있는 것부터 해보고 다른 기능들을 추가해보는 방향으로 했더니 구조를 잘못 짜서 꼬여있다고 한다.

추가(create)하는 과정과 삭제(delete)하는 과정에는 일관성이 있어야 한다. 덧셈과 뺄셈의 관계와 같다.

이러한 방식의 ul을 작성하는 경우, 보통 for문을 돌린다고 한다. 나는 다른 사이트에서 <li>로 출력되어있는 것을 보고 그러면 li를 만들어야겠구나, 하고 li를 append하는 함수를 만들었다. 그리고 li들 사이에 이동 정보를 표시하고 싶어서 p를 넣는 함수를 만들었다. 이런 식으로 야금야금 만드는 것이 아니라 전체 정보를 저장하는 리스트를 만들고, 리스트를 li로 출력하면서 for문으로 ajax를 돌려서 이동 정보를 출력해야 한다.

우선 오늘까지 프로젝트를 마무리해야 하니까 구조를 이대로 유지하되 삭제 기능은 없애서 제출해야겠다. 그리고 포트폴리오 준비를 끝낸 뒤에 다시 만들어봐야겠다. 열심히 짠 코드가 처음부터 사상누각이었다는 건 슬프지만 다시 만들 수 있을 때 이런 잘못을 해봐서 다행이다...

 

 

 

13. 회원가입 id 중복 확인

왜 안 될까....??

MemberController.checkId() 도착

id: id

MemberRepository.checkId() 도착

id: id

콘솔에는 잘 도착했다고 나오는데 콘솔에는 404가 뜬다.

    var idFlag = false; 

    $("#id").blur(function() {
        idFlag = false;
        checkId("first");
    });

    function checkId(event) {

        var id = $("#id").val();
        var oMsg = $("#idMsg");
        var oInput = $("#id");

        if (id == "") {
            showErrorMsg(oMsg, "필수 정보입니다.");
            setFocusToInputObject(oInput);
            return false;
        }

        var userId = $('#id').val();
        $.ajax({
            url: "/pet_hug/member/checkId",
            type: "post",
            data: {
                id: id
            },
            dataType: 'text',
            success: function (data) {
                if (data == "duplicated") {
                    showErrorMsg(oMsg, "이미 사용중인 아이디입니다.");
                    setFocusToInputObject(oInput);
                } else {
                    if (data == "unduplicated") {
                        showSuccessMsg(oMsg, "사용 가능한 아이디입니다.");
                    } else {
                        hideMsg(oMsg);
                    }
                    idFlag = true; // Ajax 호출이 성공했을 때만 idFlag를 변경
                }
            },
            error: function () {
                alert("서버 요청 실패");
            }
        });
    }

이것만 하고 마무리하고 싶은데..............................................