+++ src/main/java/itn/com/uss/ion/pwm/service/MainZoneLinkVO.java
... | ... | @@ -0,0 +1,38 @@ |
| 1 | +package itn.com.uss.ion.pwm.service; | |
| 2 | + | |
| 3 | +import itn.com.cmm.ComDefaultVO; | |
| 4 | +import lombok.Getter; | |
| 5 | +import lombok.Setter; | |
| 6 | + | |
| 7 | +import java.io.Serializable; | |
| 8 | + | |
| 9 | + | |
| 10 | +/** | |
| 11 | + * | |
| 12 | + * @author : 이호영 | |
| 13 | + * @fileName : MainPopupLinkVO.java | |
| 14 | + * @date : 2025.02.26 | |
| 15 | + * @description : | |
| 16 | + * =========================================================== | |
| 17 | + * DATE AUTHOR NOTE | |
| 18 | + * ----------------------------------------------------------- * | |
| 19 | + * 2025.02.26 이호영 최초 생성 | |
| 20 | + * | |
| 21 | + * | |
| 22 | + * | |
| 23 | + */ | |
| 24 | +@Getter | |
| 25 | +@Setter | |
| 26 | +public class MainZoneLinkVO extends ComDefaultVO implements Serializable { | |
| 27 | + | |
| 28 | + | |
| 29 | +// /** | |
| 30 | +// * @description : | |
| 31 | +// */ | |
| 32 | +// private static final long serialVersionUID = 1998370534684278351L; | |
| 33 | + | |
| 34 | + private String mazId; // 메인존ID | |
| 35 | + private String mlink; // 링크 | |
| 36 | + private String coords; // 링크좌표 | |
| 37 | + private String linkId; // Auto_Increment PK | |
| 38 | +} |
--- src/main/java/itn/com/uss/ion/pwm/service/MainzoneVO.java
+++ src/main/java/itn/com/uss/ion/pwm/service/MainzoneVO.java
... | ... | @@ -16,6 +16,7 @@ |
| 16 | 16 |
package itn.com.uss.ion.pwm.service; |
| 17 | 17 |
|
| 18 | 18 |
import java.io.Serializable; |
| 19 |
+import java.util.List; |
|
| 19 | 20 |
|
| 20 | 21 |
import itn.com.cmm.ComDefaultVO; |
| 21 | 22 |
import lombok.Getter; |
... | ... | @@ -102,5 +103,8 @@ |
| 102 | 103 |
|
| 103 | 104 |
private String topTxt = ""; |
| 104 | 105 |
private String lowTxt = ""; |
| 105 |
- |
|
| 106 |
+ |
|
| 107 |
+ |
|
| 108 |
+ |
|
| 109 |
+ private List<MainZoneLinkVO> mainZoneLinkList; |
|
| 106 | 110 |
} |
--- src/main/resources/egovframework/sqlmap/let/uss/pwm/PopupManage_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/uss/pwm/PopupManage_SQL_Mysql.xml
... | ... | @@ -41,6 +41,38 @@ |
| 41 | 41 |
<result property="sortNum" column="SORT_NUM" columnIndex="19"/> |
| 42 | 42 |
</resultMap> |
| 43 | 43 |
|
| 44 |
+ |
|
| 45 |
+ <resultMap id="MainZoneLinkResultMap" class="itn.com.uss.ion.pwm.service.MainZoneLinkVO"> |
|
| 46 |
+ <result property="mazId" column="MAZ_ID" /> |
|
| 47 |
+ <result property="mlink" column="MLINK" /> |
|
| 48 |
+ <result property="coords" column="COORDS" /> |
|
| 49 |
+ <result property="linkId" column="LINK_ID" /> |
|
| 50 |
+ </resultMap> |
|
| 51 |
+ |
|
| 52 |
+ <resultMap id="MainzoneResultMap" class="itn.com.uss.ion.pwm.service.MainzoneVO"> |
|
| 53 |
+ <result property="mazId" column="MAZ_ID" /> |
|
| 54 |
+ <result property="upfile" column="UPFILE" /> |
|
| 55 |
+ <result property="upfileUrl" column="UPFILEURL" /> |
|
| 56 |
+ <result property="content" column="CONTENT" /> |
|
| 57 |
+ <result property="mlink" column="MLINK" /> |
|
| 58 |
+ <result property="istarget" column="ISTARGET" /> |
|
| 59 |
+ <result property="regdt" column="REGDT" /> |
|
| 60 |
+ <result property="del" column="DEL" /> |
|
| 61 |
+ <result property="sort" column="SORT" /> |
|
| 62 |
+ <result property="mainzoneImage" column="MAINZONE_IMAGE" /> |
|
| 63 |
+ <result property="mainzoneImageFile" column="MAINZONE_IMAGE_FILE" /> |
|
| 64 |
+ <result property="mazNm" column="MAZ_NM" /> |
|
| 65 |
+ <result property="useYn" column="USE_YN" /> |
|
| 66 |
+ <result property="moddt" column="MODDT" /> |
|
| 67 |
+ <result property="registerId" column="REGISTERID" /> |
|
| 68 |
+ <result property="deviceType" column="DEVICETYPE" /> |
|
| 69 |
+ <result property="ntceBgnde" column="NTCE_BGNDE" /> |
|
| 70 |
+ <result property="ntceEndde" column="NTCE_ENDDE" /> |
|
| 71 |
+ |
|
| 72 |
+ <result property="mainZoneLinkList" column="MAZ_ID" select="MainzoneManage.selectMainZoneVOLink" /> |
|
| 73 |
+ |
|
| 74 |
+ </resultMap> |
|
| 75 |
+ |
|
| 44 | 76 |
<!-- 팝업창관리:: 메인 게시물정보 --> |
| 45 | 77 |
<select id="PopupManage.selectPopupManageMain" resultClass="egovMap"> |
| 46 | 78 |
<![CDATA[ |
... | ... | @@ -1021,25 +1053,52 @@ |
| 1021 | 1053 |
<delete id="SocialManage.deleteSocial" parameterClass="String"> |
| 1022 | 1054 |
DELETE FROM SOCIAL_HUB WHERE SOCIAL_ID=#socialId# |
| 1023 | 1055 |
</delete> |
| 1024 |
- |
|
| 1025 |
- <select id="MainzoneManage.selectMainzoneListRolling" resultClass="mainzoneVO"> |
|
| 1056 |
+ |
|
| 1057 |
+ |
|
| 1058 |
+ <select id="MainzoneManage.selectMainZoneVOLink" parameterClass="String" resultMap="MainZoneLinkResultMap"> |
|
| 1059 |
+ |
|
| 1060 |
+ /* mainPopup.selectMainZoneVOLink */ |
|
| 1061 |
+ SELECT |
|
| 1062 |
+ MAZ_ID |
|
| 1063 |
+ , MLINK |
|
| 1064 |
+ , COORDS |
|
| 1065 |
+ , LINK_ID |
|
| 1066 |
+ FROM MAINZONE_LINK |
|
| 1067 |
+ WHERE MAZ_ID = #mazId# |
|
| 1068 |
+ </select> |
|
| 1069 |
+ |
|
| 1070 |
+ |
|
| 1071 |
+ <select id="MainzoneManage.selectMainzoneListRolling" resultMap="MainzoneResultMap"> |
|
| 1072 |
+ /* MainzoneManage.selectMainzoneListRolling */ |
|
| 1026 | 1073 |
|
| 1027 |
- SELECT MZ.MAZ_ID AS mazId, |
|
| 1028 |
- MZ.CONTENT AS content, |
|
| 1029 |
- MZ.SORT AS sort, |
|
| 1030 |
- MZ.MAINZONE_IMAGE_FILE AS mainzoneImageFile, |
|
| 1031 |
- MZ.MAZ_NM AS mazNm, |
|
| 1032 |
- MZ.MLINK AS mlink |
|
| 1033 |
- FROM MAINZONE MZ |
|
| 1034 |
- WHERE MZ.NTCE_BGNDE IS NOT NULL |
|
| 1035 |
- AND MZ.NTCE_ENDDE IS NOT NULL |
|
| 1074 |
+ SELECT MAZ_ID, |
|
| 1075 |
+ UPFILE, |
|
| 1076 |
+ CONCAT("/UPLOADROOT/POPUPZONE/",UPFILE ) as UPFILEURL,
|
|
| 1077 |
+ CONTENT, |
|
| 1078 |
+ MLINK, |
|
| 1079 |
+ ISTARGET, |
|
| 1080 |
+ REGDT, |
|
| 1081 |
+ DEL, |
|
| 1082 |
+ SORT, |
|
| 1083 |
+ MAINZONE_IMAGE, |
|
| 1084 |
+ MAINZONE_IMAGE_FILE, |
|
| 1085 |
+ MAZ_NM, |
|
| 1086 |
+ USE_YN, |
|
| 1087 |
+ DATE_FORMAT(MODDT, '%Y-%m-%d %T') MODDT , |
|
| 1088 |
+ (SELECT USER_NM FROM LETTNEMPLYRINFO WHERE ESNTL_ID = REGISTER_ID) REGISTERID, |
|
| 1089 |
+ DEVICETYPE, |
|
| 1090 |
+ NTCE_BGNDE, |
|
| 1091 |
+ NTCE_ENDDE |
|
| 1092 |
+ FROM MAINZONE |
|
| 1093 |
+ WHERE NTCE_BGNDE IS NOT NULL |
|
| 1094 |
+ AND NTCE_ENDDE IS NOT NULL |
|
| 1036 | 1095 |
|
| 1037 | 1096 |
<![CDATA[ |
| 1038 |
- AND DATE_FORMAT(SYSDATE(),'%Y%m%d%H%i') >= MZ.NTCE_BGNDE |
|
| 1039 |
- AND DATE_FORMAT(SYSDATE(),'%Y%m%d%H%i') <= MZ.NTCE_ENDDE |
|
| 1097 |
+ AND DATE_FORMAT(SYSDATE(),'%Y%m%d%H%i') >= NTCE_BGNDE |
|
| 1098 |
+ AND DATE_FORMAT(SYSDATE(),'%Y%m%d%H%i') <= NTCE_ENDDE |
|
| 1040 | 1099 |
]]> |
| 1041 |
- AND MZ.USE_YN = 'Y' |
|
| 1042 |
- ORDER BY MZ.SORT |
|
| 1100 |
+ AND USE_YN = 'Y' |
|
| 1101 |
+ ORDER BY SORT |
|
| 1043 | 1102 |
|
| 1044 | 1103 |
</select> |
| 1045 | 1104 |
|
--- src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp
+++ src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp
... | ... | @@ -1229,7 +1229,76 @@ |
| 1229 | 1229 |
<div class="visual"> |
| 1230 | 1230 |
<div class="swiper-container visual_swiper"> |
| 1231 | 1231 |
<div class="swiper-wrapper" id=" "> |
| 1232 |
- |
|
| 1232 |
+ |
|
| 1233 |
+ <%-- 메인 리스트 반복 시작 --%> |
|
| 1234 |
+ <c:choose> |
|
| 1235 |
+ <c:when test="${not empty mainzoneList}">
|
|
| 1236 |
+ <c:forEach var="mainzone" items="${mainzoneList}" varStatus="status">
|
|
| 1237 |
+ <div class="swiper-slide"> |
|
| 1238 |
+ |
|
| 1239 |
+ <c:choose> |
|
| 1240 |
+ <%-- CASE 1 & 2: 이미지맵 상세 좌표 리스트가 존재하는 경우 (1개든 여러개든 동일) --%> |
|
| 1241 |
+ <c:when test="${not empty mainzone.mainZoneLinkList}">
|
|
| 1242 |
+ <img src="/cmm/fms/getImage.do?atchFileId=${mainzone.mainzoneImageFile}"
|
|
| 1243 |
+ usemap="#mainVisual_${status.index}"
|
|
| 1244 |
+ alt="${mainzone.content}" />
|
|
| 1245 |
+ |
|
| 1246 |
+ <map name="mainVisual_${status.index}">
|
|
| 1247 |
+ <%-- 내부 리스트(mainZoneLinkList) 반복 처리 --%> |
|
| 1248 |
+ <c:forEach var="link" items="${mainzone.mainZoneLinkList}">
|
|
| 1249 |
+ <area shape="rect" coords="${link.coords}" href="${link.mlink}" alt="영역 링크" />
|
|
| 1250 |
+ </c:forEach> |
|
| 1251 |
+ |
|
| 1252 |
+ <%-- [중요] 전체 링크(mlink)도 DB에 있다면, 이미지맵 빈 공간 클릭 시 이동하도록 추가 --%> |
|
| 1253 |
+ <c:if test="${not empty mainzone.mlink}">
|
|
| 1254 |
+ <area shape="default" href="${mainzone.mlink}" alt="전체 링크" />
|
|
| 1255 |
+ </c:if> |
|
| 1256 |
+ </map> |
|
| 1257 |
+ </c:when> |
|
| 1258 |
+ |
|
| 1259 |
+ <%-- CASE 3: 이미지맵 리스트는 없지만, 전체 링크(mlink) 필드는 채워진 경우 --%> |
|
| 1260 |
+ <c:when test="${not empty mainzone.mlink}">
|
|
| 1261 |
+ <div class="slideImg"> |
|
| 1262 |
+ <a href="${mainzone.mlink}">
|
|
| 1263 |
+ <img src="/cmm/fms/getImage.do?atchFileId=${mainzone.mainzoneImageFile}" alt="${mainzone.content}">
|
|
| 1264 |
+ </a> |
|
| 1265 |
+ </div> |
|
| 1266 |
+ </c:when> |
|
| 1267 |
+ |
|
| 1268 |
+ <%-- CASE 4: 이미지맵 리스트도 없고, 전체 링크도 없는 경우 (순수 이미지) --%> |
|
| 1269 |
+ <c:otherwise> |
|
| 1270 |
+ <div class="slideImg"> |
|
| 1271 |
+ <img src="/cmm/fms/getImage.do?atchFileId=${mainzone.mainzoneImageFile}" alt="${mainzone.content}" />
|
|
| 1272 |
+ </div> |
|
| 1273 |
+ </c:otherwise> |
|
| 1274 |
+ </c:choose> |
|
| 1275 |
+ |
|
| 1276 |
+ </div> |
|
| 1277 |
+ </c:forEach> |
|
| 1278 |
+ </c:when> |
|
| 1279 |
+ <c:otherwise> |
|
| 1280 |
+ <!-- 이미지맵 여러개인 경우 --> |
|
| 1281 |
+ <div class="swiper-slide"> |
|
| 1282 |
+ <img src="/publish/images/main/main_visual.jpg" usemap="#mainViusal" alt="" /> |
|
| 1283 |
+ <map name="mainViusal"> |
|
| 1284 |
+ <area shape="rect" coords="345,280,570,336" href="/web/mjon/msgdata/selectMsgDataView.do" alt="" /> |
|
| 1285 |
+ <area shape="rect" coords="588,280,810,336" href="/web/info/mjonInfo.do" alt="" /> |
|
| 1286 |
+ </map> |
|
| 1287 |
+ </div> |
|
| 1288 |
+ |
|
| 1289 |
+ <!-- 이미지맵 하나인경우 --> |
|
| 1290 |
+ <div class="swiper-slide"> |
|
| 1291 |
+ <img src="/publish/images/main/main_visual02.jpg" usemap="#mainViusal2" alt="" /> |
|
| 1292 |
+ <map name="mainViusal2"> |
|
| 1293 |
+ <area shape="rect" coords="345,230,569,285" href="/web/mjon/addragency/selectAddrAgencyList.do" alt="" /> |
|
| 1294 |
+ </map> |
|
| 1295 |
+ </div> |
|
| 1296 |
+ </c:otherwise> |
|
| 1297 |
+ </c:choose> |
|
| 1298 |
+ <%-- 메인 배너 이미지 등록된 건이 없는 경우 --%> |
|
| 1299 |
+ |
|
| 1300 |
+ |
|
| 1301 |
+<%-- |
|
| 1233 | 1302 |
<!-- 이미지맵 여러개인 경우 --> |
| 1234 | 1303 |
<div class="swiper-slide"> |
| 1235 | 1304 |
<img src="/publish/images/main/main_visual.jpg" usemap="#mainViusal" alt="" /> |
... | ... | @@ -1262,7 +1331,7 @@ |
| 1262 | 1331 |
<img src="/publish/images/main/f_visual_04_20221116.jpg" alt="문자는 이제, 문자온! 선택은 역시 문자온! 문자사이트 선택의 5가지 기준 1. 가격, 속도, 성능, 기능, 보안이 보장되는가? 2. 결제, 정산, 계산서 발행 등 업무가 자동화 되어 있고 편리한가? 3. 최신 IT 기술과 트렌드가 반영되어 있는가? 4. 회원가입 및 발신번호 인증이 쉽고 빠르며, 대량문자를 전송하기에 사용이 편리한가? 5. 매일 문자샘플이 업데이트 되고, CS 및 기술응대가 실시간적으로 이루어지는가?" /> |
| 1263 | 1332 |
</div> |
| 1264 | 1333 |
</div> |
| 1265 |
- |
|
| 1334 |
+ --%> |
|
| 1266 | 1335 |
<%-- <c:choose> |
| 1267 | 1336 |
<c:when test="${not empty mainzoneList}">
|
| 1268 | 1337 |
<c:forEach var="mainzone" items="${mainzoneList}" varStatus="status">
|
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?