Add walkthrough: 2026-02-15 reservation calendar fix
82
2026-02-15-예약기능-캘린더-수정.md
Normal file
82
2026-02-15-예약기능-캘린더-수정.md
Normal file
@@ -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` 처리 |
|
||||||
@@ -2,3 +2,4 @@
|
|||||||
- [Home](Home)
|
- [Home](Home)
|
||||||
|
|
||||||
### 📋 Walkthroughs
|
### 📋 Walkthroughs
|
||||||
|
- [2026-02-15 예약기능 캘린더 수정](2026-02-15-예약기능-캘린더-수정)
|
||||||
|
|||||||
Reference in New Issue
Block a user