기간 조회 방식 (기본: legacy)
- legacy : (기존/호환) 수강기간이 요청한 시작·종료일과 정확히 동일
- exact : legacy와 동일 (명시적 선택)
- overlap: 조회기간과 1일이라도 겹치면 포함(추천)
- within : 수강기간이 조회기간 안에 완전히 포함
- cover : 수강기간이 조회기간을 완전히 덮음
- start : 수강 시작일이 조회기간 사이에 있음
- end : 수강 종료일이 조회기간 사이에 있음
선택
contentsCode
과정코드, 6자리
선택
passOK
수료 여부 (Y/N)
선택
userName
수강생 이름
선택
page
조회 페이지 (기본값: 1)
선택
limit
페이지당 데이터 수 (기본값: 10)
선택
🔶 기간 조회 규칙
dateMode 별 SQL 조건
- legacy : ns.lectureStart = :lectureStart AND ns.lectureEnd = :lectureEnd ← (기존/호환, 기본)
- exact : ns.lectureStart = :lectureStart AND ns.lectureEnd = :lectureEnd
- overlap: ns.lectureStart <= :lectureEnd AND ns.lectureEnd >= :lectureStart ← (추천)
- within : ns.lectureStart >= :lectureStart AND ns.lectureEnd <= :lectureEnd
- cover : ns.lectureStart <= :lectureStart AND ns.lectureEnd >= :lectureEnd
- start : ns.lectureStart BETWEEN :lectureStart AND :lectureEnd
- end : ns.lectureEnd BETWEEN :lectureStart AND :lectureEnd
📍 요청 예시
/* A. 기존 방식 그대로(파라미터 미전달 또는 빈 값) */
POST /api/ex/studyDetail.php
{
"companyCode": "5988200110",
"lectureStart": "2025-01-01",
"lectureEnd": "2025-01-31"
}
/* B. 겹침 기준(추천) */
POST /api/ex/studyDetail.php
{
"companyCode": "5988200110",
"lectureStart": "2025-01-01",
"lectureEnd": "2025-01-31",
"dateMode": "overlap",
"passOK": "N" // 진행중만 보고 싶을 때
}
/* C. 조회기간 내부에 완전히 포함된 수강건만 */
POST /api/ex/studyDetail.php
{
"companyCode": "5988200110",
"lectureStart": "2025-01-01",
"lectureEnd": "2025-01-31",
"dateMode": "within",
"contentsCode": "AZTIYC"
}