Explorar el Código

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

eskim hace 4 años
padre
commit
a8702eba9b

+ 13 - 0
src/main/java/com/style24/persistence/mybatis/shop/TssGoods.xml

@@ -1942,6 +1942,19 @@
 		)
 	</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>
+	
+	
 	<!-- wms 상품정보 조회 -->
 	<select  id="getWmsGoodsInfo" parameterType="Goods" resultType="WmsGoods" >
 		/* TssGoods.getWmsGoodsInfo */

+ 9 - 0
src/main/java/com/style24/scm/biz/dao/TssGoodsDao.java

@@ -419,6 +419,15 @@ public interface TssGoodsDao {
 	 */
 	public void createGoodsImage(GoodsImg goodsImg);
 
+	/**
+	 * 상품기본이미지명 조회
+	 * @param goodsImg - 상품이미지 정보
+	 * @throws
+	 * @author eskim
+	 * @since 2021. 07. 25
+	 */
+	public String getGoodsDefaultImageName(GoodsImg goodsImg);
+
 	/**
 	 * wms 상품정보 조회
 	 *

+ 25 - 15
src/main/java/com/style24/scm/biz/service/TssGoodsService.java

@@ -689,9 +689,9 @@ public class TssGoodsService {
 		// 신규가입기간
 		if (!StringUtils.isEmpty(goods.getNewCustOrdStdt())) {
 			goods.setNewCustOrdStdt(goods.getNewCustOrdStdt().replaceAll("-", "") + "000000");
-			goods.setNewCustOrdEddt(goods.getNewCustOrdEddt().replaceAll("-", "") + "235959");	
+			goods.setNewCustOrdEddt(goods.getNewCustOrdEddt().replaceAll("-", "") + "235959");
 		}
-		
+
 		// 기본정보 변경
 		if ("Y".equals(goods.getChDataYn())) {
 			goodsDao.createGoodsHst(goods);
@@ -725,7 +725,7 @@ public class TssGoodsService {
 
 		// 상품 정보고시 변경
 		this.saveGoodsNotiInfo(goods);
-		
+
 		// 안전인증정보
 		// 안전안증작업
 		if (!StringUtils.isEmpty(goods.getCertTargetGb())) {
@@ -737,7 +737,7 @@ public class TssGoodsService {
 			goodsSafeNo.setCertNum(goods.getCertNum());
 			this.saveGoodsDetailCertNum(goodsSafeNo);
 		}
-		
+
 		// 상품 구매등급 적용 - SCM 미적용
 		//		if (goods.getGoodsOrderGrade() != null && goods.getGoodsOrderGrade().length > 0) {
 		//			Goods goodsOrderGrade = new Goods();
@@ -2583,10 +2583,9 @@ public class TssGoodsService {
 				goods.setCertNum(goodsMass.getCertNum().trim()); //안전인증번호
 			}
 
-		}
-		else {
-			if (!StringUtils.isBlank(goodsMass.getCertFormGb()) || 
-				!StringUtils.isBlank(goodsMass.getCertType()) || 
+		} else {
+			if (!StringUtils.isBlank(goodsMass.getCertFormGb()) ||
+				!StringUtils.isBlank(goodsMass.getCertType()) ||
 				!StringUtils.isBlank(goodsMass.getCertNum())) {
 				goods.setGoodsRegMsg("인증대상 오류");
 				goods.setGoodsStat("10");
@@ -3805,7 +3804,7 @@ public class TssGoodsService {
 		goods.setSelfGoodsYn("N");
 		goods.setGoodsType("G056_N");
 		goods.setTobeFormYn("N");
-		
+
 		// <,> replace 처리
 		goods.setRegNo(TssSession.getInfo().getUserNo());
 		goods.setUpdNo(TssSession.getInfo().getUserNo());
@@ -3823,11 +3822,11 @@ public class TssGoodsService {
 		// 판매기간설정 eskim
 		goods.setSellStdt(goods.getSellStYMD().replaceAll("-", "") + goods.getSellStHH() + "0000");
 		goods.setSellEddt(goods.getSellEdYMD().replaceAll("-", "") + goods.getSellEdHH() + "5959");
-		
+
 		if (goods.getListPrice() < goods.getCurrPrice()) {
 			throw new IllegalStateException("판매가를 올바르게 입력해주세요.");
 		}
-		
+
 		// 판매수수료율
 		SupplyCompany supplyCompany = new SupplyCompany();
 		supplyCompany.setSupplyCompCd(goods.getSupplyCompCd());
@@ -4153,7 +4152,7 @@ public class TssGoodsService {
 	 * @since 2021. 06. 17
 	 */
 	public Collection<Itemkind> getItemkindList(Itemkind itemkind) {
-		log.info("itemkind ={}" , itemkind);
+		log.info("itemkind ={}", itemkind);
 		return goodsDao.getItemkindList(itemkind);
 	}
 
@@ -4194,7 +4193,7 @@ public class TssGoodsService {
 		goods.setSelfGoodsYn("Y");
 		goods.setGoodsType("G056_N");
 		goods.setTobeFormYn("Y");
-		
+
 		// <,> replace 처리
 		goods.setRegNo(TssSession.getInfo().getUserNo());
 		goods.setUpdNo(TssSession.getInfo().getUserNo());
@@ -4223,7 +4222,7 @@ public class TssGoodsService {
 		goods.setCurrPrice(0);	// 기본처리
 		// 원가
 		goods.setCostPrice(0);	// 기본처리	
-		
+
 		// 판매수수료율
 		SupplyCompany supplyCompany = new SupplyCompany();
 		supplyCompany.setSupplyCompCd(goods.getSupplyCompCd());
@@ -4337,7 +4336,7 @@ public class TssGoodsService {
 			goodsColorSize.setUpdNo(TssSession.getInfo().getUserNo());
 			goodsDao.updateGoodsMainColorCd(goodsColorSize); // 대표색상 설정
 		}
-		
+
 		// 상품상세정보 저장
 		this.saveGoodsDetailDesc(goods);
 
@@ -4349,4 +4348,15 @@ public class TssGoodsService {
 
 	}
 
+	/**
+	 * 상품기본이미지명 조회
+	 *
+	 * @param notice
+	 * @return
+	 * @author eskim
+	 * @since 2021. 07. 25
+	 */
+	public String getGoodsDefaultImageName(GoodsImg goodsImg) {
+		return goodsDao.getGoodsDefaultImageName(goodsImg);
+	}
 }

+ 32 - 12
src/main/java/com/style24/scm/biz/web/TssGoodsController.java

@@ -93,7 +93,7 @@ public class TssGoodsController extends TssBaseController {
 
 	@Autowired
 	private TssCommonService commonService;
-	
+
 	@Autowired
 	private ObjectMapper mapper;
 
@@ -192,7 +192,7 @@ public class TssGoodsController extends TssBaseController {
 				throw new IllegalStateException("품목 검색중 오류로 인해 조회되지 않았습니다.");
 			}
 		}
-		
+
 		goodsSearch.setRegNo(TssSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
 		goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
 		goodsSearch.getPageable().setTotalCount(goodsService.getGoodsListCount(goodsSearch));
@@ -585,17 +585,17 @@ public class TssGoodsController extends TssBaseController {
 	@PostMapping("/detail/save")
 	@ResponseBody
 	public GagaResponse saveGoodsDetail(@RequestBody Goods goods) {
-		
+
 		Goods goodsOrg = goodsService.getGoodsInfo(goods);
-		
+
 		if (goodsOrg == null) {
 			throw new IllegalStateException("상품코드를 확인해 주세요.");
 		}
-		
+
 		if ("G008_90".equals(goods.getGoodsStat()) && ("G008_20".equals(goodsOrg.getGoodsStat()) || "G008_40".equals(goodsOrg.getGoodsStat()))) {
 			throw new IllegalStateException("상품의 [승인완료]상태는 담당 MD에게 요청하세요.");
 		}
-		
+
 		// 상품상태에 따른 이미지 정보 확인 - 상품상태가 승인대기일 경우
 		if ("G008_40".equals(goods.getGoodsStat())) {
 			Collection<Goods> goodsList = goodsService.getGoodsImgsYn(goods);
@@ -982,7 +982,7 @@ public class TssGoodsController extends TssBaseController {
 						deleteErrorFileList(errorFileDextList);
 						throw new IllegalStateException(goodsImg.getSysImgNm() + " 의 " + comGoodsCd + " 상품코드를 확인해주세요.(입점상품만 등록 가능)");
 					}
-					
+
 					// 같은 업체여부 확인
 					if (!TssSession.getInfo().getSupplyCompCd().equals(goodsInfo.getSupplyCompCd())) {
 						deleteErrorFileList(errorFileList);
@@ -1559,7 +1559,7 @@ public class TssGoodsController extends TssBaseController {
 				throw new IllegalStateException("품목 검색중 오류로 인해 조회되지 않았습니다.");
 			}
 		}
-		
+
 		goodsSearch.setRegNo(TssSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
 		goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
 		goodsSearch.getPageable().setTotalCount(goodsService.getGoodsListCount(goodsSearch));
@@ -1901,7 +1901,7 @@ public class TssGoodsController extends TssBaseController {
 	public Collection<Itemkind> getItemkind(Itemkind itemkind) {
 		return goodsService.getItemkindList(itemkind);
 	}
-	
+
 	/**
 	 * 자사 상품  화면
 	 *
@@ -2013,7 +2013,7 @@ public class TssGoodsController extends TssBaseController {
 		mav.setViewName("goods/ItemkindPopupForm");
 		return mav;
 	}
-	
+
 	/**
 	 * 품목 목록
 	 *
@@ -2025,7 +2025,7 @@ public class TssGoodsController extends TssBaseController {
 	@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"));
@@ -2033,7 +2033,27 @@ public class TssGoodsController extends TssBaseController {
 		if (!StringUtils.isBlank(itemkind.getSearchItemkindNm())) {
 			itemkind.setMultiItemkindNm(itemkind.getSearchItemkindNm().replaceAll("\r", "").trim().split("\n"));
 		}
-		
+
 		return goodsService.getItemkindList(itemkind);
 	}
+
+	/**
+	 * 상품기본이미지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 "";
+	}
 }

+ 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

@@ -102,7 +102,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>
@@ -210,17 +209,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();
+			});
 	}
 
 	// 더블클릭시 썸네일 지정 후 첫번째로 이동