Просмотр исходного кода

마스킹 처리 로직 추가 및 이미지 처리 추가

gagamel 5 лет назад
Родитель
Сommit
20bbc0759a

+ 19 - 0
style24.scm/src/main/java/com/style24/persistence/domain/Counsel.java

@@ -1,6 +1,8 @@
 package com.style24.persistence.domain;
 
+import com.style24.core.support.util.MaskingUtils;
 import com.style24.persistence.TscBaseDomain;
+import com.style24.scm.support.security.session.TssSession;
 
 import lombok.Data;
 
@@ -33,6 +35,7 @@ public class Counsel extends TscBaseDomain {
 //	private String emailSendYn;		// 이메일발송여부
 	private String relGoodsCd;		// 관련상품코드(상품문의에서만 사용)
 	private String goodsNm;			// 상품명(상품문의에서만 사용)
+	private String goodsImg;		// 상품이미지
 	private String selfGoodsYn;		// 자사상품여부(상품문의에서만 사용)
 	private String questTitle;		// 문의제목
 	private String questContent;	// 문의내용
@@ -63,4 +66,20 @@ public class Counsel extends TscBaseDomain {
 	private String termStdt;		// 검색시작날짜
 	private String termEddt;		// 검색끝날짜
 
+	public String getMaskingCustId() {
+		return TssSession.getInfo().getMaskingYn().equals("Y") ? MaskingUtils.id(custId) : custId;
+	}
+
+	public String getMaskingCustNm() {
+		return TssSession.getInfo().getMaskingYn().equals("Y") ? MaskingUtils.name(custNm) : custNm;
+	}
+
+	public String getMaskingCellPhnno() {
+		return TssSession.getInfo().getMaskingYn().equals("Y") ? MaskingUtils.phoneNo(cellPhnno) : cellPhnno;
+	}
+
+	public String getMaskingEmail() {
+		return TssSession.getInfo().getMaskingYn().equals("Y") ? MaskingUtils.email(email) : email;
+	}
+
 }

+ 1 - 0
style24.scm/src/main/java/com/style24/persistence/domain/User.java

@@ -41,6 +41,7 @@ public class User extends TscBaseDomain {
 	private String loginLdt;
 	private String passwdChgDt;
 	private String useYn;
+	private String maskingYn;		// 마스킹여부
 	private int loginFailCnt;
 	private String loginFailYn;
 

+ 14 - 4
style24.scm/src/main/java/com/style24/persistence/mybatis/shop/TssCounsel.xml

@@ -16,10 +16,15 @@
 		     , A.SMS_REQ_YN                                                        /*SMS요청여부*/
 		     , A.SMS_SEND_YN                                                       /*SMS발송여부*/
 		     , A.EMAIL                                                             /*이메일*/
-		     -- , A.EMAIL_REQ_YN                                                      /*이메일요청여부*/
-		     -- , A.EMAIL_SEND_YN                                                     /*이메일발송여부*/
 		     , A.REL_GOODS_CD                                                      /*관련상품코드*/
 		     , G.GOODS_NM                                                          /*상품명*/
+		     , (SELECT SYS_IMG_NM
+		        FROM   TB_GOODS_IMG
+		        WHERE  GOODS_CD = G.GOODS_CD
+		        AND    COLOR_CD = G.MAIN_COLOR_CD
+		        AND    DEFAULT_IMG_YN = 'Y' /*디폴트이미지*/
+		        LIMIT 1
+		       )                                               AS GOODS_IMG        /*상품이미지*/
 		     , A.ANS_STAT                                                          /*답변상태*/
 		     , A.ANS_TRANS_YN                                                      /*답변의뢰여부*/
 		     , DATE_FORMAT(A.ANS_TRANS_DT,'%Y-%m-%d %H:%i:%S') AS ANS_TRANS_DT     /*답변의뢰일시*/
@@ -87,10 +92,15 @@
 		     , A.SMS_REQ_YN                                                        /*SMS요청여부*/
 		     , A.SMS_SEND_YN                                                       /*SMS발송여부*/
 		     , A.EMAIL                                                             /*이메일*/
-		     -- , A.EMAIL_REQ_YN                                                      /*이메일요청여부*/
-		     -- , A.EMAIL_SEND_YN                                                     /*이메일발송여부*/
 		     , A.REL_GOODS_CD                                                      /*관련상품코드*/
 		     , G.GOODS_NM                                                          /*상품명*/
+		     , (SELECT SYS_IMG_NM
+		        FROM   TB_GOODS_IMG
+		        WHERE  GOODS_CD = G.GOODS_CD
+		        AND    COLOR_CD = G.MAIN_COLOR_CD
+		        AND    DEFAULT_IMG_YN = 'Y' /*디폴트이미지*/
+		        LIMIT 1
+		       )                                               AS GOODS_IMG        /*상품이미지*/
 		     , G.SELF_GOODS_YN                                                     /*자사상품여부*/
 		     , DATE_FORMAT(A.QUEST_DT,'%Y-%m-%d %H:%i:%S')     AS QUEST_DT         /*문의일시*/
 		     , A.SECRET_YN                                                         /*비밀글여부*/

+ 1 - 0
style24.scm/src/main/java/com/style24/persistence/mybatis/shop/TssLogin.xml

@@ -32,6 +32,7 @@
 		     , IP_ADDR                                                     /*IP주소*/
 		     , IP_CHK_YN                                                   /*IP체크여부*/
 		     , DATE_FORMAT(PASSWD_CHG_DT,'%Y%m%d%H%i%S') AS PASSWD_CHG_DT  /*비밀번호변경일시*/
+		     , MASKING_YN                                                  /*마스킹여부*/
 		FROM   TB_USER A
 		WHERE  USER_ID = #{userId}
 		AND    (ROLE_CD LIKE 'G001_B%' OR ROLE_CD LIKE 'G001_E%') /*입점업체담당자, 촬영업체담당자*/

+ 3 - 8
style24.scm/src/main/webapp/WEB-INF/views/customer/GoodsQnaDetailForm.html

@@ -79,7 +79,9 @@
 							<th>상품코드</th>
 							<td colspan="3" th:text="*{relGoodsCd}"></td>
 							<th rowspan="3">상품이미지</th>
-							<td rowspan="3" class="userImg" id="onetooneImg"></td>
+							<td rowspan="3" class="userImg">
+								<img style="height: 100px;" th:src="${@environment.getProperty('upload.goods.view') + '/' + counselInfo.goodsImg}" alt="" onerror='this.src="/image/no.gif"'/>
+							</td>
 						</tr>
 						<tr>
 							<th>상품명</th>
@@ -221,13 +223,6 @@
 	});
 	
 	$(document).ready(function() {
-// 		var counsel = [[${counsel}]];
-
-// 		if (!gagajf.isNull(counselInfo.sysFileNm)) {
-// 			var imgTag = '<img style="height: 100px;" onclick="cfnOpenImagePreViewPopup(\'goodsImgView\', \'' + _imgUrl + '/counsel/' + counselInfo.sysFileNm + '\')" src="' + _imgUrl + '/counsel/' + counselInfo.sysFileNm + '">';
-// 			$('#onetooneImg').append(imgTag);
-// 		}
-
 		cfnGetTextLength($('textarea[name=ansContent]'), 4000, $('#dpLocAnsContent'));
 	});
 /*]]>*/

+ 15 - 6
style24.scm/src/main/webapp/WEB-INF/views/customer/GoodsQnaForm.html

@@ -92,7 +92,7 @@
 		
 		<!-- 리스트 영역 -->
 		<div class="panelStyle">
-			<div id="gridList" style="width: 100%; height: 570px" class="ag-theme-balham"></div>
+			<div id="gridList" style="width: 100%; height: 570px" class="ag-theme-balham lh60"></div>
 		</div>
 		<!-- //리스트 영역 -->
 	</div>
@@ -116,6 +116,12 @@
 			headerName: "문의일시", field: "questDt", width: 150, cellClass: 'text-center',
 			cellRenderer: function (params) { return gagaAgGrid.toDateTimeFormat(params.value); }
 		},
+		{
+			headerName: "이미지", field: "goodsImg", width: 100, cellClass: 'text-center',
+			cellRenderer: function(params) {
+				return '<img width="60" src="' + _goodsUrl +  "/" + params.value + '" alt="" onerror="this.src=\'/image/no.gif\';"/>';
+			}
+		},
 		{
 			headerName: "상품코드", field: "relGoodsCd", width: 100, cellClass: 'text-center',
 			cellRenderer: function(params) { return '<a href="javascript:void(0);">' + params.value + '</a>'; }
@@ -126,12 +132,12 @@
 			cellRenderer: function(params) { return params.value == 'Y' ? 'Yes' : 'No'; }
 		},
 		{headerName: "고객번호", field: "custNo", width: 100, cellClass: 'text-center', hide: true},
-		{headerName: "고객ID", field: "custId", width: 100, cellClass: 'text-center', hide: true},
+		{headerName: "고객ID", field: "maskingCustId", width: 100, cellClass: 'text-center', hide: true},
 		{
-			headerName: "고객명", field: "custNm", width: 150, cellClass: 'text-center',
-			cellRenderer: function(params) { return '<a href="javascript:void(0);">' + params.value + '(' + params.data.custId + ')</a>'; }
+			headerName: "고객명", field: "maskingCustNm", width: 150, cellClass: 'text-center',
+			cellRenderer: function(params) { return '<a href="javascript:void(0);">' + params.value + '(' + params.data.maskingCustId + ')</a>'; }
 		},
-		{headerName: "휴대전화번호", field: "cellPhnno", width: 120, cellClass: 'text-center'},
+		{headerName: "휴대전화번호", field: "maskingCellPhnno", width: 120, cellClass: 'text-center'},
 		{
 			headerName: "SMS답변요청", field: "smsReqYn", width: 120, cellClass: 'text-center',
 			cellRenderer: function(params) { return params.value == 'Y' ? 'Yes' : 'No'; }
@@ -140,7 +146,7 @@
 			headerName: "SMS답변발송", field: "smsSendYn", width: 120, cellClass: 'text-center',
 			cellRenderer: function(params) { return params.value == 'Y' ? 'Yes' : 'No'; }
 		},
-		{headerName: "이메일", field: "email", width: 200},
+		{headerName: "이메일", field: "maskingEmail", width: 200},
 // 		{
 // 			headerName: "이메일답변요청", field: "emailReqYn", width: 120, cellClass: 'text-center',
 // 			cellRenderer: function(params) { return params.value == 'Y' ? 'Yes' : 'No'; }
@@ -170,6 +176,9 @@
 	// Get GridOptions
 	let gridOptions = gagaAgGrid.getGridOptions(columnDefs);
 	
+	// 이미지가 있을 경우 높이 지정
+	gridOptions.rowHeight = 60;
+	
 	// 셀 클릭 이벤트
 	gridOptions.onCellClicked = function(event) {
 		if (event.colDef.field == 'counselSq') {