Sfoglia il codice sorgente

이미지 등록후 상세화면 버튼명수정

eskim 4 anni fa
parent
commit
e943d6817d

+ 13 - 7
src/main/java/com/style24/admin/biz/dao/TsaGoodsDao.java

@@ -204,7 +204,6 @@ public interface TsaGoodsDao {
 	 */
 	Collection<GagaMap> getGoodsInfoExcelList(GoodsSearch goodsSearch);
 
-
 	/**
 	 * 상품 이미지 필수 항목 입력 여부 조회
 	 *
@@ -862,7 +861,7 @@ public interface TsaGoodsDao {
 	 * @since 2021. 07. 09
 	 */
 	Collection<GagaMap> getGoodsNaverExcelList(GoodsSearch goodsSearch);
-	
+
 	/**
 	 * 상품 네이버 최저가 최종 작업일
 	 *
@@ -1050,6 +1049,15 @@ public interface TsaGoodsDao {
 	 */
 	public void createGoodsImage(GoodsImg goodsImg);
 
+	/**
+	 * 상품기본이미지명 조회
+	 * @param goodsImg - 상품이미지 정보
+	 * @throws
+	 * @author eskim
+	 * @since 2021. 07. 25
+	 */
+	public String getGoodsDefaultImageName(GoodsImg goodsImg);
+
 	/**
 	 * 사은품 목록
 	 *
@@ -1101,7 +1109,7 @@ public interface TsaGoodsDao {
 	 * @since 2021. 01. 05
 	 */
 	public void saveGoodsWmsIncomelot(WmsGoods wmsGoods);
-	
+
 	/**
 	 *  WMS 입고상품  상품 구분 저장
 	 * @param wmsGoods
@@ -1292,7 +1300,7 @@ public interface TsaGoodsDao {
 	 * @since 2021. 07. 04
 	 */
 	int getBrandSupplyCount(Brand brand);
-	
+
 	/**
 	 * 상품 색상, 사이즈 정보 조회
 	 *
@@ -1302,7 +1310,7 @@ public interface TsaGoodsDao {
 	 * @since 2021. 07. 05
 	 */
 	Goods getGoodsColorSize(Goods goods);
-	
+
 	/**
 	 * 상품 대표색상 설정
 	 *
@@ -1353,7 +1361,6 @@ public interface TsaGoodsDao {
 	 */
 	void updateGoodsContents(GoodsContents goodsContents);
 
-	
 	/**
 	 * 상품 상세 컨텐츠 상품 저장
 	 *
@@ -1364,7 +1371,6 @@ public interface TsaGoodsDao {
 	 */
 	void saveGoodsContent(GoodsContentsData goodsContentsData);
 
-	
 	/**
 	 * 상품 상세 컨텐츠 상품 삭제
 	 *

+ 42 - 31
src/main/java/com/style24/admin/biz/service/TsaGoodsService.java

@@ -1116,7 +1116,7 @@ public class TsaGoodsService {
 			goodsSafeNo.setCertType(goods.getCertType());
 			goodsSafeNo.setCertNum(goods.getCertNum());
 			log.info("goodsSafeNo ==>{}", goodsSafeNo);
-			this.saveGoodsDetailCertNum(goodsSafeNo);	
+			this.saveGoodsDetailCertNum(goodsSafeNo);
 		}
 
 		// 상품 구매등급 적용
@@ -2774,7 +2774,7 @@ public class TsaGoodsService {
 			freeGoods.setUpdNo(TsaSession.getInfo().getUserNo());
 			freeGoods.setRegNo(TsaSession.getInfo().getUserNo());
 			goodsDao.saveFreeGoods(freeGoods);
-		
+
 		}
 	}
 
@@ -4071,38 +4071,37 @@ public class TsaGoodsService {
 		goodsContents.setUpdNo(TsaSession.getInfo().getUserNo());
 
 		//신규이미지가 있을 경우
-		if(!StringUtils.isEmpty(goodsContents.getNewImgPath())){
-            String displayUploadPath = env.getProperty("upload.default.target.path");
-            displayUploadPath = GagaFileUtil.getConcatenationPath(displayUploadPath, "goodscontents");
-            File file = new File(GagaFileUtil.getConcatenationPath(displayUploadPath, goodsContents.getNewImgPath()));
-
-            String yearMonth = GagaDateUtil.getToday().substring(0, 6);
-            displayUploadPath = GagaFileUtil.getConcatenationPath(displayUploadPath, yearMonth); 
-            log.info("displayUploadPath {}", displayUploadPath);
-            
-            File contentsPath = new File(displayUploadPath);
+		if (!StringUtils.isEmpty(goodsContents.getNewImgPath())) {
+			String displayUploadPath = env.getProperty("upload.default.target.path");
+			displayUploadPath = GagaFileUtil.getConcatenationPath(displayUploadPath, "goodscontents");
+			File file = new File(GagaFileUtil.getConcatenationPath(displayUploadPath, goodsContents.getNewImgPath()));
+
+			String yearMonth = GagaDateUtil.getToday().substring(0, 6);
+			displayUploadPath = GagaFileUtil.getConcatenationPath(displayUploadPath, yearMonth);
+			log.info("displayUploadPath {}", displayUploadPath);
+
+			File contentsPath = new File(displayUploadPath);
 			if (!contentsPath.exists()) {
 				contentsPath.mkdir();
 			}
-			
-            String newFilename = "GOODSCONTENTS_" + GagaDateUtil.getTodayDateTime() + "." + org.springframework.util.StringUtils.getFilenameExtension(goodsContents.getNewImgPath());
-            File uniqueFile = GagaFileUtil.getUniqueFile(new File(GagaFileUtil.getConcatenationPath(displayUploadPath, newFilename)));
-            
-
-            // 기존이미지 삭제
-            try{
-                GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(displayUploadPath, goodsContents.getImgPath()));
-            }catch (IOException e){
-                //  nothing
-                log.info("[saveGoodsContent 기존 이미지 삭제중 error]");
-                //e.printStackTrace();
-            }
-           
-            // Rename a file
-            file.renameTo(uniqueFile);
-
-            goodsContents.setImgPath("/goodscontents/"+ yearMonth +'/'+ newFilename);
-        }
+
+			String newFilename = "GOODSCONTENTS_" + GagaDateUtil.getTodayDateTime() + "." + org.springframework.util.StringUtils.getFilenameExtension(goodsContents.getNewImgPath());
+			File uniqueFile = GagaFileUtil.getUniqueFile(new File(GagaFileUtil.getConcatenationPath(displayUploadPath, newFilename)));
+
+			// 기존이미지 삭제
+			try {
+				GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(displayUploadPath, goodsContents.getImgPath()));
+			} catch (IOException e) {
+				//  nothing
+				log.info("[saveGoodsContent 기존 이미지 삭제중 error]");
+				//e.printStackTrace();
+			}
+
+			// Rename a file
+			file.renameTo(uniqueFile);
+
+			goodsContents.setImgPath("/goodscontents/" + yearMonth + '/' + newFilename);
+		}
 
 		log.info("saveGoodsContent  =={}", goodsContents);
 		// 신규 일때
@@ -4167,4 +4166,16 @@ public class TsaGoodsService {
 
 	}
 
+	/**
+	 * 상품기본이미지명 조회
+	 *
+	 * @param notice
+	 * @return
+	 * @author eskim
+	 * @since 2021. 07. 25
+	 */
+	public String getGoodsDefaultImageName(GoodsImg goodsImg) {
+		return goodsDao.getGoodsDefaultImageName(goodsImg);
+	}
+
 }

+ 34 - 15
src/main/java/com/style24/admin/biz/web/TsaGoodsController.java

@@ -152,7 +152,7 @@ public class TsaGoodsController extends TsaBaseController {
 	@PostMapping("/itemkind/base/list")
 	@ResponseBody
 	public Collection<Itemkind> getItemkindList(@RequestBody Itemkind itemkind) {
-		
+
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(itemkind.getSearchItemkindCd())) {
 			itemkind.setMultiItemkindCd(itemkind.getSearchItemkindCd().replaceAll("\r", "").trim().split("\n"));
@@ -160,7 +160,7 @@ public class TsaGoodsController extends TsaBaseController {
 		if (!StringUtils.isBlank(itemkind.getSearchItemkindNm())) {
 			itemkind.setMultiItemkindNm(itemkind.getSearchItemkindNm().replaceAll("\r", "").trim().split("\n"));
 		}
-		
+
 		return goodsService.getItemkindList(itemkind);
 	}
 
@@ -559,7 +559,7 @@ public class TsaGoodsController extends TsaBaseController {
 				throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
 			}
 		}
-		
+
 		if (!StringUtils.isBlank(goodsSearch.getItemkindList())) {
 			try {
 				String[] arrItemkind = mapper.readValue(goodsSearch.getItemkindList(), String[].class);
@@ -1591,7 +1591,7 @@ public class TsaGoodsController extends TsaBaseController {
 		if (!StringUtils.isBlank(goodsSupplyPrice.getCondition())) {
 			goodsSupplyPrice.setConditionList(goodsSupplyPrice.getCondition().replaceAll("\r", "").trim().split("\n"));
 		}
-		
+
 		if (!StringUtils.isBlank(goodsSupplyPrice.getBrandList())) {
 			try {
 				String[] arrBrandCd = mapper.readValue(goodsSupplyPrice.getBrandList(), String[].class);
@@ -1611,8 +1611,7 @@ public class TsaGoodsController extends TsaBaseController {
 				throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
 			}
 		}
-		
-		
+
 		return goodsService.getGoodsSupplyPriceList(goodsSupplyPrice);
 	}
 
@@ -1786,7 +1785,7 @@ public class TsaGoodsController extends TsaBaseController {
 	@PostMapping("/video/list")
 	@ResponseBody
 	public Collection<GoodsVideo> getGoodsVideoList(@RequestBody GoodsVideo goodsVideo) {
-		
+
 		// multi row 검색관련 처리
 		if (!StringUtils.isBlank(goodsVideo.getCondition())) {
 			goodsVideo.setConditionList(goodsVideo.getCondition().replaceAll("\r", "").trim().split("\n"));
@@ -1802,7 +1801,7 @@ public class TsaGoodsController extends TsaBaseController {
 				throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
 			}
 		}
-		
+
 		return goodsService.getGoodsVideoList(goodsVideo);
 	}
 
@@ -2429,7 +2428,7 @@ public class TsaGoodsController extends TsaBaseController {
 				throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
 			}
 		}
-		
+
 		if (!StringUtils.isBlank(goodsSearch.getItemkindList())) {
 			try {
 				String[] arrItemkind = mapper.readValue(goodsSearch.getItemkindList(), String[].class);
@@ -2439,7 +2438,7 @@ public class TsaGoodsController extends TsaBaseController {
 				throw new IllegalStateException("품목 검색중 오류로 인해 조회되지 않았습니다.");
 			}
 		}
-		
+
 		//log.info("[getPopupGoodsList] goodsSearch=>{}", goodsSearch);
 		goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
 		goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
@@ -3327,7 +3326,7 @@ public class TsaGoodsController extends TsaBaseController {
 		if (!StringUtils.isBlank(ifIncomelot.getCondition())) {
 			ifIncomelot.setConditionList(ifIncomelot.getCondition().replaceAll("\r", "").trim().split("\n"));
 		}
-		
+
 		ifIncomelot.setPageable(new TscPageRequest(ifIncomelot.getPageNo() - 1, ifIncomelot.getPageSize()));
 		ifIncomelot.getPageable().setTotalCount(goodsService.getGoodsWmsIncomelotSkuListCount(ifIncomelot));
 
@@ -3435,7 +3434,7 @@ public class TsaGoodsController extends TsaBaseController {
 		return result;
 
 	}
-	
+
 	/**
 	 * 상품 상세 컨텐츠 화면
 	 *
@@ -3446,10 +3445,10 @@ public class TsaGoodsController extends TsaBaseController {
 	@GetMapping("/contents/form")
 	public ModelAndView detailContentsForm() {
 		ModelAndView mav = new ModelAndView();
-		
+
 		// 상품상세노출컨텐츠유형
 		mav.addObject("goodsContentsTypeList", rendererService.getAvailCommonCodeList("G086"));
-		
+
 		mav.setViewName("goods/GoodsContentsForm");
 
 		return mav;
@@ -3476,7 +3475,7 @@ public class TsaGoodsController extends TsaBaseController {
 		if (!StringUtils.isBlank(goodsSearch.getCondition())) {
 			goodsSearch.setConditionList(goodsSearch.getCondition().replaceAll("\r", "").trim().split("\n"));
 		}
-		
+
 		if (!StringUtils.isBlank(goodsSearch.getBrandList())) {
 			try {
 				String[] arrBrandCd = mapper.readValue(goodsSearch.getBrandList(), String[].class);
@@ -3561,4 +3560,24 @@ public class TsaGoodsController extends TsaBaseController {
 		return mav;
 	}
 
+	/**
+	 * 상품기본이미지URL 조회
+	 * @param
+	 * @return
+	 * @author eskim
+	 * @since 2021. 07. 25
+	 */
+	@GetMapping("/default/image/url")
+	@ResponseBody
+	public String getGoodsDefaultImageUrl(GoodsImg goodsImg) {
+		// 상품기본이미지명 조회
+		String defaultImgNm = goodsService.getGoodsDefaultImageName(goodsImg);
+
+		if (!StringUtils.isEmpty(defaultImgNm)) {
+			return GagaFileUtil.getConcatenationPath(env.getProperty("upload.goods.view"), defaultImgNm);
+		}
+
+		return "";
+	}
+
 }

+ 12 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -3871,6 +3871,18 @@
 		)
 	</insert>
 	
+	<!-- 상품기본이미지명 조회 -->
+	<select id="getGoodsDefaultImageName" parameterType="GoodsImg" resultType="String">
+		/* AdmGoods.getGoodsDefaultImageName */
+		SELECT SYS_IMG_NM
+		FROM   TB_GOODS_IMG
+		WHERE  GOODS_CD = #{goodsCd}
+		AND    COLOR_CD = #{colorCd}
+		AND    DEFAULT_IMG_YN = 'Y'
+		AND    EXTMALL_IMG_YN = 'N'
+		LIMIT 1
+	</select>
+	
 	<!-- 사은품 목록 -->
 	<select id="getFreeGoodsList" parameterType="GoodsSearch" resultType="FreeGoods">
 		/* TsaGoods.getFreeGoodsList */

+ 2 - 2
src/main/webapp/WEB-INF/views/goods/GoodsDetailSizeStockForm.html

@@ -37,7 +37,7 @@
 			<td class="aC" th:text="${sizeStatus.count}">1</td>
 			<td class="aC"><label class="rdoBtn"><input type="radio" name="basicColor" th:value="${goodsColor.optCd1}"  th:checked="${goodsColor.mainColorYn =='Y'}" /></label></td>
 			<td class="aC">
-				<img width="60" th:src="${uploadGoodsUrl+'/'+goodsColor.sysImgNm+'?RS=60'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/image/no.png'}+'\';'" alt="">
+				<img width="60" id="defaultImg" th:src="${uploadGoodsUrl+'/'+goodsColor.sysImgNm+'?RS=60'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/image/no.png'}+'\';'" alt="">
 				<input type="hidden" name="sysImgNmOrg" id="sysImgNmOrg" th:value="${goodsColor.sysImgNm}"/>
 			</td>	
 			<td class="aC" ><th:block th:text="${goodsColor.optCd1}">BK</th:block> 
@@ -46,7 +46,7 @@
 			<td class="aC" ><th:block th:text="${goodsColor.colorEnm}">BLACK</th:block>  
 				<input type="hidden" name="colorNm" id="colorNm" th:value="${goodsColor.colorEnm}"/>
 			</td>
-			<td><button type="button" class="btn btn-base btn-lg" onclick="fnGoodsDetailImg(this)" th:text="${#strings.isEmpty(goodsColor.sysImgNm) ?'등록':'수정'}">등록</button></td>
+			<td><button type="button" id="btnDefaultImg" class="btn btn-base btn-lg" onclick="fnGoodsDetailImg(this)" th:text="${#strings.isEmpty(goodsColor.sysImgNm) ?'등록':'수정'}">등록</button></td>
 		</tr>
 		</th:block>
 		</tbody>

+ 17 - 11
src/main/webapp/WEB-INF/views/goods/GoodsImageForm.html

@@ -101,7 +101,6 @@
 						<button type="button" class="btn btn-default btn-sm" onclick="gagaDx5.deleteAllFiles();">전체 삭제</button>
 						<button type="button" class="btn btn-info btn-sm" onclick="gagaDx5.moveFile(true);">위로 이동</button>
 						<button type="button" class="btn btn-info btn-sm" onclick="gagaDx5.moveFile(false);">아래로 이동</button>
-						<!-- <button type="button" class="btn btn-base btn-sm" onclick="gagaDx5.previewImage();">이미지 보기</button> -->
 						<button type="button" class="btn btn-base btn-sm" onclick="gagaDx5.uploadFiles();">업로드/수정</button>
 					</li>
 				</ul>
@@ -208,17 +207,24 @@
 	// 콜백함수
 	var fnUploadCallback = function(result) {
 		// 기본이미지명 조회
-		//var actionUrl = '/goods/default/image/url'
-		//		+ '?goodsCd=' + $('#goodsImgForm input[name=goodsCd]').val()
-		//		+ '&colorCd=' + $('#goodsImgForm input[name=colorCd]').val();
+		var actionUrl = '/goods/default/image/url'
+				+ '?goodsCd=' + $('#goodsImgForm input[name=goodsCd]').val()
+				+ '&colorCd=' + $('#goodsImgForm input[name=colorCd]').val();
 
-		//$.get(actionUrl
-		//	, function(url) {
-		//		console.log(url);
-		//		//opener.setImg($('#goodsImgForm input[name=defaultImgOrd]').val(), result.defaultImgNm);
-		//		fnGoodsImgFormClose();
-		//	});
-		fnGoodsImgFormClose();
+		$.get(actionUrl
+			, function(url) {
+				//console.log(url);
+				// 상세메인
+				$("#goodsDetailForm").find("#goodsImgUrl").attr('src', url+"?RS=130");
+				// 상세옵션
+				$("#goodsDetailForm").find("#defaultImg").attr('src', url+"?RS=60");
+				if (gagajf.isNull(url)){
+					$("#goodsDetailForm").find("#btnDefaultImg").text("등록");	
+				}else{
+					$("#goodsDetailForm").find("#btnDefaultImg").text("수정");
+				}
+				fnGoodsImgFormClose();
+			});
 	}
 
 	// 더블클릭시 썸네일 지정 후 첫번째로 이동

+ 1 - 1
src/main/webapp/dx5/dextuploadx5-configuration.js

@@ -6,7 +6,7 @@
 
     var gAuthkey = '';
     if (location.host.indexOf("ld") > -1) {
-    	gAuthkey = "tUOR2fkfazRRQLaqhQxfq5y/4k4Ev0q6qgnp/agZPB4Rih2VuGbntr5tMUPEPjw3t5wilWvIo0RVYGyQ1BtJYGoaFfkFEo725J6GjCWSJFvGG2rhZkyqYd9P7sXU0gI7OSoMWa6IzyKfkbptvMOZLSwUDJ5xkZ/N8ig01dN4QeY=";
+    	gAuthkey = "QpN67O58p2mPJIVSLSyIp3lidy8y/C1tEozgp85UuGSlkWuQSq01FPNohuhISdVLyLYJfEfbWeLDlSFhiYap5W31XN5T0ihwzJdAsmcEslm61ChGk9sJrtvgvjdlWsLsDvuxtXFtKlJY5iOXmewF2Zsj2tSiKdwSMfW3MJ13qeI=";
     } else if (location.host.indexOf("lp") > -1) {
     	gAuthkey = "gx9EHEhXzTpbdxWjty/oHh9cfVi5WA5X4BV71AHaC/ORN/1fcs8nTTd4oUUvC5WhHqEa6Wt8cfmCBJ9w/pJpRhDd+tVu6kPDt9bxZL9n0bvaUn2rrbmJMA+HC9gzahwdEOcjr6ZOmNSEd6N0xN2BDBk55hvfPw02R77XjVuZrQU=";
     } else if (location.host.indexOf("td") > -1) {