Compare commits

...

2 Commits

Author SHA1 Message Date
ythong
9ab76a8926 Merge branch 'feature/lcltt-jeonnam-gwangju' — 지방문화원 시.도 '전남광주' 통합 버튼 2026-07-08 15:55:16 +09:00
ythong
08795e225b 지방문화원 시.도 검색에 '전남광주' 통합 버튼 추가
- listLcltt.jsp(관리자)/listLclttFind.jsp(공개 찾기): 광주·전남 개별 버튼 제거,
  서울 뒤에 '전남광주' 통합 버튼 배치(fnAreaCodeBtn에 'gwangjuCode,jeonnamCode' 전달)
- LclttDAO.xml: searchAreaCode 필터를 단일 등호 비교에서
  INSTR(','||#{searchAreaCode}||',', ','||A.AREA_CODE||',') > 0 으로 변경하여
  콤마 구분 다중 지역코드 조회 지원(조회 2곳)

운영(210.181.197.152 webapps/kccf) 반영 완료, Tomcat 재시작으로 매퍼 적용.
주의: 운영 listLclttFind.jsp에는 이 저장소에 없는 서버 전용 변경
(2025.09.08 나혁제 원장 삭제, 네비 진입 시 서울 기본선택 JS)이 존재하여
배포본은 '운영본+본 변경'으로 생성함. 저장소본은 해당 변경 미포함이므로 재배포 시 주의.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 15:49:07 +09:00
3 changed files with 31 additions and 5 deletions

View File

@ -31,7 +31,7 @@
AND A.AREA_SUB_CODE = B.DETAIL_CODE AND A.AREA_SUB_CODE = B.DETAIL_CODE
]]> ]]>
<if test="searchAreaCode != null and searchAreaCode != ''"> <if test="searchAreaCode != null and searchAreaCode != ''">
AND A.AREA_CODE = #{searchAreaCode} AND INSTR(','||#{searchAreaCode}||',', ','||A.AREA_CODE||',') > 0
</if> </if>
<if test="searchLclttNm != null and searchLclttNm != ''"> <if test="searchLclttNm != null and searchLclttNm != ''">
AND A.LCLTT_NM LIKE '%'||#{searchLclttNm}||'%' AND A.LCLTT_NM LIKE '%'||#{searchLclttNm}||'%'
@ -40,7 +40,7 @@
) T ) T
) T1 ) T1
WHERE T1.RN BETWEEN ((#{pageNo} - 1) * #{pageSize} + 1) AND #{pageNo} * #{pageSize} WHERE T1.RN BETWEEN ((#{pageNo} - 1) * #{pageSize} + 1) AND #{pageNo} * #{pageSize}
</select> </select>
<select id="getLclttIdSeq" resultType="string"> <select id="getLclttIdSeq" resultType="string">
@ -193,7 +193,7 @@
WHERE A.DELETE_AT = 'N' WHERE A.DELETE_AT = 'N'
AND A.AREA_SUB_CODE = C.DETAIL_CODE AND A.AREA_SUB_CODE = C.DETAIL_CODE
<if test="searchAreaCode != null and searchAreaCode != ''"> <if test="searchAreaCode != null and searchAreaCode != ''">
AND A.AREA_CODE = #{searchAreaCode} AND INSTR(','||#{searchAreaCode}||',', ','||A.AREA_CODE||',') > 0
</if> </if>
<if test="searchAreaSubCode != null and searchAreaSubCode != ''"> <if test="searchAreaSubCode != null and searchAreaSubCode != ''">
AND A.AREA_SUB_CODE LIKE (SELECT CASE WHEN SUBSTR(#{searchAreaSubCode}, 3) = '000' THEN SUBSTR(#{searchAreaSubCode},0, 2)||'%' ELSE #{searchAreaSubCode}||'%' END FROM dual) AND A.AREA_SUB_CODE LIKE (SELECT CASE WHEN SUBSTR(#{searchAreaSubCode}, 3) = '000' THEN SUBSTR(#{searchAreaSubCode},0, 2)||'%' ELSE #{searchAreaSubCode}||'%' END FROM dual)

View File

@ -59,8 +59,21 @@ li .title-end {
<label class="arrow mr-5" style="text-align: left;">시.도</label> <label class="arrow mr-5" style="text-align: left;">시.도</label>
<div> <div>
<button type="button" id="searchAreaCodeBtn" name="searchAreaCodeBtn" class="btn btn-md btn-min btn-default btn-gray mr-1 mb-1" onclick="fnAreaCodeBtn();">전체</button> <button type="button" id="searchAreaCodeBtn" name="searchAreaCodeBtn" class="btn btn-md btn-min btn-default btn-gray mr-1 mb-1" onclick="fnAreaCodeBtn();">전체</button>
<%-- 광주, 전남 통합: 두 지역 코드 미리 조회 --%>
<c:set var="gwangjuCode" value="" />
<c:set var="jeonnamCode" value="" />
<c:forEach items="${areaCodeList}" var="areaCodeItem">
<c:if test="${areaCodeItem.aditAtrbInfoValue1 == '광주'}"><c:set var="gwangjuCode" value="${areaCodeItem.detailCode}" /></c:if>
<c:if test="${areaCodeItem.aditAtrbInfoValue1 == '전남'}"><c:set var="jeonnamCode" value="${areaCodeItem.detailCode}" /></c:if>
</c:forEach>
<%-- 광주, 전남 버튼은 없애고, '전남광주' 버튼을 서울과 부산 사이에 배치 --%>
<c:forEach items="${areaCodeList}" var="areaCodeList"> <c:forEach items="${areaCodeList}" var="areaCodeList">
<button type="button" id="searchAreaCodeBtn_${areaCodeList.detailCode}" name="searchAreaCodeBtn" class="btn btn-md btn-min btn-default btn-gray mr-1 mb-1" onclick="fnAreaCodeBtn('${areaCodeList.detailCode}');">${areaCodeList.aditAtrbInfoValue1}</button> <c:if test="${areaCodeList.aditAtrbInfoValue1 != '광주' && areaCodeList.aditAtrbInfoValue1 != '전남'}">
<button type="button" id="searchAreaCodeBtn_${areaCodeList.detailCode}" name="searchAreaCodeBtn" class="btn btn-md btn-min btn-default btn-gray mr-1 mb-1" onclick="fnAreaCodeBtn('${areaCodeList.detailCode}');">${areaCodeList.aditAtrbInfoValue1}</button>
</c:if>
<c:if test="${areaCodeList.aditAtrbInfoValue1 == '서울'}">
<button type="button" id="searchAreaCodeBtn_${gwangjuCode}_${jeonnamCode}" name="searchAreaCodeBtn" class="btn btn-md btn-min btn-default btn-gray mr-1 mb-1" onclick="fnAreaCodeBtn('${gwangjuCode},${jeonnamCode}');">전남광주</button>
</c:if>
</c:forEach> </c:forEach>
<input type="hidden" id="searchAreaCode" name="searchAreaCode" value="${searchVO.searchAreaCode}"/> <input type="hidden" id="searchAreaCode" name="searchAreaCode" value="${searchVO.searchAreaCode}"/>
</div> </div>

View File

@ -25,8 +25,21 @@
<label class="arrow">시.도</label> <label class="arrow">시.도</label>
<div class="row-df"> <div class="row-df">
<button type="button" id="searchAreaCodeBtn" name="searchAreaCodeBtn" class="btn btn-sm btn-lclttBtn mr-1 hover" onclick="fnAreaCodeBtn('', this);" style="margin-bottom: 5px; margin-top: 5px;">전체</button> <button type="button" id="searchAreaCodeBtn" name="searchAreaCodeBtn" class="btn btn-sm btn-lclttBtn mr-1 hover" onclick="fnAreaCodeBtn('', this);" style="margin-bottom: 5px; margin-top: 5px;">전체</button>
<%-- 광주, 전남 통합: 두 지역 코드 미리 조회 --%>
<c:set var="gwangjuCode" value="" />
<c:set var="jeonnamCode" value="" />
<c:forEach items="${areaCodeList}" var="areaCodeItem">
<c:if test="${areaCodeItem.aditAtrbInfoValue1 == '광주'}"><c:set var="gwangjuCode" value="${areaCodeItem.detailCode}" /></c:if>
<c:if test="${areaCodeItem.aditAtrbInfoValue1 == '전남'}"><c:set var="jeonnamCode" value="${areaCodeItem.detailCode}" /></c:if>
</c:forEach>
<%-- 광주, 전남 버튼은 없애고, '전남광주' 버튼을 서울과 부산 사이에 배치 --%>
<c:forEach items="${areaCodeList}" var="areaCodeList"> <c:forEach items="${areaCodeList}" var="areaCodeList">
<button type="button" id="searchAreaCodeBtn" name="searchAreaCodeBtn" class="btn btn-sm btn-lclttBtn mr-1" onclick="fnAreaCodeBtn('${areaCodeList.detailCode}', this);" style="margin-bottom: 5px; margin-top: 5px;">${areaCodeList.aditAtrbInfoValue1}</button> <c:if test="${areaCodeList.aditAtrbInfoValue1 != '광주' && areaCodeList.aditAtrbInfoValue1 != '전남'}">
<button type="button" id="searchAreaCodeBtn" name="searchAreaCodeBtn" class="btn btn-sm btn-lclttBtn mr-1" onclick="fnAreaCodeBtn('${areaCodeList.detailCode}', this);" style="margin-bottom: 5px; margin-top: 5px;">${areaCodeList.aditAtrbInfoValue1}</button>
</c:if>
<c:if test="${areaCodeList.aditAtrbInfoValue1 == '서울'}">
<button type="button" id="searchAreaCodeBtn" name="searchAreaCodeBtn" class="btn btn-sm btn-lclttBtn mr-1" onclick="fnAreaCodeBtn('${gwangjuCode},${jeonnamCode}', this);" style="margin-bottom: 5px; margin-top: 5px;">전남광주</button>
</c:if>
</c:forEach> </c:forEach>
<input type="hidden" id="searchAreaCode" name="searchAreaCode" value=""/> <input type="hidden" id="searchAreaCode" name="searchAreaCode" value=""/>
</div> </div>