diff --git a/2026-02-15-예약기능-캘린더-수정.md b/2026-02-15-예약기능-캘린더-수정.md new file mode 100644 index 0000000..a4469bd --- /dev/null +++ b/2026-02-15-예약기능-캘린더-수정.md @@ -0,0 +1,82 @@ +# 작업 요약 (2026-02-14 ~ 2026-02-15) + +> **프로젝트:** madeu_diet_home (마데유 다이어트 홈페이지) +> **기간:** 2026년 2월 14일 ~ 2월 15일 + +--- + +## 2월 13일 (금) ~ 2월 14일 (토) + +### 1. 이벤트 등록 페이지 디자인 적용 +- `ContentsBbsUpd.html` (수정 페이지)의 디자인/기능을 `ContentsBbsReg.html` (등록 페이지)에 적용 +- 이미지 업로드, 텍스트 입력, 시술 선택, 미리보기 버튼 등 전체 기능 통일 + +### 2. 이벤트 목록 그리드 컬럼 수정 +- `ContentsBbsSelectList.js`에서 "이벤트(다이어트)"/"이벤트(쁘띠)" 메뉴의 컬럼 정의 수정 +- `categoryDivCd`에 따라 조건부로 컬럼 변경 +- 이벤트 시작일/종료일 컬럼 추가 + +### 3. 이벤트 날짜 포맷 수정 +- `eventStartDt`, `eventEndDt`가 DB에 "YYYY-MM-" 형식으로 잘못 저장되던 버그 수정 +- `ContentsBbsServiceImpl.java`의 `putContentsBbs`(등록), `modContentsBbs`(수정) 메서드에서 하이픈 제거 처리 + +--- + +## 2월 14일 (토) + +### 4. 병원 휴일 기본값 설정 +- `repeatYn` 필드가 "반복 안함"(`N`)으로 기본 설정되도록 수정 +- 새 휴일 추가 시 반복 옵션을 선택하지 않고 저장하는 문제 해결 + +### 5. 병원 별도 스케줄(운영시간) 기능 구현 +- **DB:** `MU_HOSPITAL_SCHEDULE` 테이블 생성 (날짜별 운영시간, 휴식시간, 운영 여부 관리) +- **SQL:** `WebHospitalSqlMap.xml`에 CRUD 쿼리 추가 +- **DAO/Service/Controller:** 조회, 저장, 삭제 API 전체 구현 +- 날짜별 스케줄이 기본 요일별 운영시간보다 우선 적용되도록 설계 + +### 6. 운영시간 탭 버튼 크기 조정 +- 운영시간 관리 화면의 버튼 크기를 다른 화면과 통일 + +### 7. 예약 시간슬롯 & 캘린더 표시 수정 +- **평일 시간슬롯 버그:** 잘못된 SQL 로직 및 프론트 파라미터 처리 수정 +- **캘린더 공휴일/일요일 표시:** 빨간색 글자로 스타일링하는 Flatpickr `onDayCreate` 로직 구현 +- **캘린더 반응형:** Flatpickr 캘린더가 `calendar-box` div 크기에 맞게 조정되도록 CSS 추가 + +--- + +## 2월 15일 (일) + +### 8. HTML에서 CSS/JS 분리 +- `makeReservation.html` (1,614줄 → 97줄)에서 인라인 CSS와 JS를 외부 파일로 분리 + +| 파일 | 경로 | 내용 | +|------|------|------| +| CSS | `static/css/web/service/makeReservation.css` | 약 600줄 (레이아웃, 반응형, 캘린더 스타일 등) | +| JS | `static/js/web/service/makeReservation.js` | 약 900줄 (폼 검증, Flatpickr, 예약 로직 등) | +| HTML | `templates/web/service/makeReservation.html` | 97줄 (구조만 유지, Thymeleaf 변수 인라인 유지) | + +### 9. 별도 스케줄 날짜 휴무 표시 버그 수정 +- **문제:** 2/18처럼 `MU_HOSPITAL_SCHEDULE`에 `OPEN_YN='Y'`로 스케줄을 넣어도, `holidayYn` 판단은 `MU_HOSPITAL_HOLIDAY`/`MU_PUBLIC_HOLIDAY`만 참조하여 휴무로 표시 +- **수정:** `WebServiceSqlMap.xml`의 `selectHospitalWorkTime` 쿼리에서 `holidayYn` CASE에 스케줄 우선 판단 추가 + +```sql +WHEN MHS.MU_HOSPITAL_SCHEDULE_ID IS NOT NULL AND MHS.OPEN_YN = 'Y' THEN 'N' +WHEN MHS.MU_HOSPITAL_SCHEDULE_ID IS NOT NULL AND MHS.OPEN_YN = 'N' THEN 'Y' +``` + +### 10. 일요일/공휴일 캘린더 비활성화 +- **CSS:** 빨간색(연한) + 회색 배경 + 투명도 60% + `cursor: not-allowed` +- **JS:** `flatpickr-disabled` 클래스 추가로 클릭 차단 +- **SQL:** `selectHospitalHolidayList`에서 스케줄 오버라이드(`OPEN_YN='Y'`)도 반환하도록 변경 +- **예외 처리:** 스케줄에 `OPEN_YN='Y'`로 등록된 날은 일요일/공휴일이라도 클릭 가능 + +--- + +## 수정된 파일 목록 + +| 파일 | 수정 내용 | +|------|-----------| +| `WebServiceSqlMap.xml` | `holidayYn` 스케줄 우선 로직, `selectHospitalHolidayList` 오픈 스케줄 반환 | +| `makeReservation.html` | CSS/JS 분리, 외부 파일 참조로 변경 | +| `makeReservation.css` | 전체 재작성 + 공휴일/일요일 비활성화 스타일 | +| `makeReservation.js` | 전체 재작성 + `openScheduleDates` 추가 + `flatpickr-disabled` 처리 | diff --git a/_Sidebar.md b/_Sidebar.md index 86ae79a..4b6ce81 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -2,3 +2,4 @@ - [Home](Home) ### 📋 Walkthroughs +- [2026-02-15 예약기능 캘린더 수정](2026-02-15-예약기능-캘린더-수정)