Explorar el Código

상품상세 - 안전인증번호 저장 처리

eskim hace 5 años
padre
commit
7d722212ff

+ 9 - 0
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaGoodsDao.java

@@ -13,6 +13,7 @@ import com.style24.persistence.domain.GoodsImg;
 import com.style24.persistence.domain.GoodsNotiInfo;
 import com.style24.persistence.domain.GoodsPriceRes;
 import com.style24.persistence.domain.GoodsResSell;
+import com.style24.persistence.domain.GoodsSafeNo;
 import com.style24.persistence.domain.GoodsSearch;
 import com.style24.persistence.domain.GoodsTnmRes;
 import com.style24.persistence.domain.GoodsVideo;
@@ -281,6 +282,14 @@ public interface TsaGoodsDao {
 	 */
 	Collection<GoodsCompose> getGoodsDetailComposeList(Goods goods);
 
+	/**
+	 * 안전인증대상 상품 저장
+	 *
+	 * @author eskim
+	 * @since 2020. 12. 07
+	 */
+	void saveGoodsSafeNo(GoodsSafeNo goodsSafeNo);
+
 	/**
 	 * 상품 기본 정보 이력 생성
 	 *

+ 46 - 0
style24.admin/src/main/java/com/style24/admin/biz/service/TsaGoodsService.java

@@ -15,6 +15,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.style24.admin.biz.dao.TsaGoodsDao;
 import com.style24.admin.support.env.TsaConstants;
 import com.style24.admin.support.security.session.TsaSession;
+import com.style24.core.biz.thirdparty.SafetyKoreaApi;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.persistence.domain.Brand;
 import com.style24.persistence.domain.Color;
@@ -27,6 +28,7 @@ import com.style24.persistence.domain.GoodsImg;
 import com.style24.persistence.domain.GoodsNotiInfo;
 import com.style24.persistence.domain.GoodsPriceRes;
 import com.style24.persistence.domain.GoodsResSell;
+import com.style24.persistence.domain.GoodsSafeNo;
 import com.style24.persistence.domain.GoodsSearch;
 import com.style24.persistence.domain.GoodsTnmRes;
 import com.style24.persistence.domain.GoodsVideo;
@@ -41,6 +43,8 @@ import com.style24.persistence.domain.WmsColorMapping;
 import com.style24.persistence.domain.WmsSeasonMapping;
 import com.style24.persistence.domain.WmsStyleYearMapping;
 
+import io.netty.util.internal.StringUtil;
+
 import lombok.extern.slf4j.Slf4j;
 
 import com.gagaframework.excel.GagaExcelUtil;
@@ -81,6 +85,9 @@ public class TsaGoodsService {
 	@Autowired
 	private TsaNoticeService noticeService;
 
+	@Autowired
+	private SafetyKoreaApi safetyKoreaApi;
+
 	@Autowired
 	private ObjectMapper mapper;
 
@@ -589,6 +596,45 @@ public class TsaGoodsService {
 		return goodsDao.getGoodsDetailComposeList(goods);
 	}
 
+	/**
+	 * 안전인증번호
+	 *
+	 * @param goods
+	 * @return
+	 * @author eskim
+	 * @since 2020. 12. 07
+	 */
+	public GagaMap getGoodsDetailCertNum(String goodsCd) {
+		GagaMap result = new GagaMap();
+		return result;
+	}
+
+	/**
+	 * 안전인증번호 저장
+	 *
+	 * @param goods
+	 * @return
+	 * @author eskim
+	 * @since 2020. 12. 07
+	 */
+	@Transactional("shopTxnManager")
+	public void saveGoodsDetailCertNum(Goods goods) {
+		try {
+			GagaMap result = safetyKoreaApi.getKoreaCertifyDetail(goods.getCertNum());
+			if (result != null || !StringUtil.isNullOrEmpty(result.get("certNum").toString())) {
+				GoodsSafeNo goodsSafeNo = new GoodsSafeNo();
+				goodsSafeNo.setGoodsCd(goods.getGoodsCd());
+				goodsSafeNo.setCertDt(result.get("certDt").toString());
+				goodsSafeNo.setCertNum(result.get("certNum").toString());
+				goodsSafeNo.setRegNo(TsaSession.getInfo().getUserNo());
+				goodsSafeNo.setUpdNo(TsaSession.getInfo().getUserNo());
+				goodsDao.saveGoodsSafeNo(goodsSafeNo);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
 	/**
 	 * 상품 수정 항목 일괄변경
 	 *

+ 19 - 4
style24.admin/src/main/java/com/style24/admin/biz/web/TsaGoodsController.java

@@ -775,7 +775,7 @@ public class TsaGoodsController extends TsaBaseController {
 	 * @param goods
 	 * @return
 	 * @author eskim
-	 * @since 2019. 12. 11
+	 * @since 2020. 10. 23
 	 */
 	@PostMapping("/detail")
 	@ResponseBody
@@ -789,7 +789,7 @@ public class TsaGoodsController extends TsaBaseController {
 	 * @param goods
 	 * @return
 	 * @author eskim
-	 * @since 2019. 12. 12
+	 * @since 2020. 10. 23
 	 */
 	@GetMapping("/detail/hst/list")
 	@ResponseBody
@@ -826,7 +826,7 @@ public class TsaGoodsController extends TsaBaseController {
 	 * @param goods
 	 * @return
 	 * @author eskim
-	 * @since 2019. 12. 12
+	 * @since 2020. 10. 26
 	 */
 	@PostMapping("/detail/notiInfo/list")
 	@ResponseBody
@@ -846,7 +846,7 @@ public class TsaGoodsController extends TsaBaseController {
 	 * @param notiInfo
 	 * @return
 	 * @author eskim
-	 * @since 2010. 11. 18
+	 * @since 2020. 10. 26
 	 */
 	@PostMapping("/noti/goodsInfo/list")
 	@ResponseBody
@@ -869,6 +869,21 @@ public class TsaGoodsController extends TsaBaseController {
 		return goodsService.getGoodsDetailComposeList(goods);
 	}
 
+	/**
+	 * 상품 안전인증번호 저장
+	 *
+	 * @param goods
+	 * @return
+	 * @author eskim
+	 * @since 2020. 12. 07
+	 */
+	@PostMapping("/detail/certNum/save")
+	@ResponseBody
+	public GagaResponse saveGoodsDetailCertNum(@RequestBody Goods goods) {
+		goodsService.saveGoodsDetailCertNum(goods);
+		return super.ok(message.getMessage("SUCC_0001"));
+	}
+
 	/**
 	 * 상품 상세 저장
 	 *

+ 3 - 0
style24.admin/src/main/java/com/style24/persistence/domain/Goods.java

@@ -100,6 +100,9 @@ public class Goods extends TscBaseDomain {
 	private String niClsfNm;
 	private String goodsTypeNm;
 	private String goodTnmInit;
+	private String certNum;
+	private String certDt;
+
 //
 //	private String goodsRegMsg;
 	private String procJob;

+ 22 - 0
style24.admin/src/main/java/com/style24/persistence/domain/GoodsSafeNo.java

@@ -0,0 +1,22 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * 상품 안전인증 Domain
+ *
+ * @author eskim
+ * @since 2020. 12. 07
+ */
+@SuppressWarnings("serial")
+@Data
+public class GoodsSafeNo extends TscBaseDomain {
+
+	private String goodsCd;
+	private String goodsNum;
+	private String certNum;
+	private String certDt;
+
+}

+ 32 - 1
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -910,13 +910,16 @@
 		       WHERE A.ITEMKIND_CD = G.ITEMKIND_CD 
 		       AND A.NI_CLSF_CD = B.CD 
 		       AND B.CD_GB = 'G004') AS  NI_CLSF_NM
-		     , FN_GET_USER_NM(G.UPD_NO) AS UPD_NM  
+		     , FN_GET_USER_NM(G.UPD_NO) AS UPD_NM
+		     , E.CERT_NUM
+		     , E.CERT_DT
 		FROM TB_GOODS G
 		INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		LEFT OUTER JOIN TB_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
 		                                AND G.MAIN_COLOR_CD = GI.COLOR_CD
 		LEFT OUTER JOIN TB_DELV_FEE_POLICY D ON G.SUPPLY_COMP_CD = D.SUPPLY_COMP_CD
 		                                     AND G.DELV_FEE_CD =  D.DELV_FEE_CD
+		LEFT OUTER JOIN TB_GOODS_SAFE_NO E ON G.GOODS_CD = E.GOODS_CD
 		WHERE 1 = 1 
 		<choose>
 		<when test="goodsCd != null and goodsCd != ''">
@@ -3024,5 +3027,33 @@
 		AND GOODS_PRICE_RES_SQ = #{goodsPriceResSq}
 		AND CFRM_DT IS NULL
 	</update>
+	
+	<!--  상품 안전인증번호 저장 -->
+	<insert id="saveGoodsSafeNo"  parameterType="GoodsSafeNo">
+		/* TsbGoods.saveGoodsSafeNo */
+		INSERT INTO TB_GOODS_SAFE_NO (
+		    GOODS_CD
+		  , CERT_NUM
+		  , CERT_DT
+		  , REG_NO
+		  , REG_DT
+		  , UPD_NO
+		  , UPD_DT
+		)
+		VALUES (
+		    #{goodsCd}
+		  , #{certNum}
+		  , #{certDt}
+		  , #{regNo}
+		  , NOW()
+		  , #{updNo}
+		  , NOW()
+		)
+		ON DUPLICATE KEY UPDATE
+		       CERT_NUM = #{certNum}
+		     , CERT_DT = #{certDt}
+		     , UPD_NO = #{updNo}
+		     , UPD_DT = NOW()
+	</insert>
 	
 </mapper>

+ 36 - 2
style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsDetailForm.html

@@ -314,6 +314,16 @@
 											<input type="hidden" id="dayMaxOrdQtyOrg" name="dayMaxOrdQtyOrg"/>
 										</td>
 									</tr>
+									<tr>
+										<td></td>
+										<th>안전인증번호</th>
+										<td colspan="5">
+											<input type="text" class="w150" id="certNum" name="certNum"  maxlength="20"/>
+											<input type="hidden" id="certNumOrg" name="certNumOrg"/>
+											<button type="button" class="btn btn-success btn-lg" id="btnGoodsSafetyCertNum">안전인증</button>
+										</td>
+										
+									</tr>
 									</tbody>
 								</table>
 							</div>
@@ -798,6 +808,9 @@
 			cfnCreateCombo('/renderer/delvFee/list/' + result.supplyCompCd, $('#goodsDetailForm select[name=delvFeeCd]'), "[선택]", result.delvFeeCd);
 			$('#goodsDetailForm input[name=delvFeeCdOrg]').val(result.delvFeeCd);
 			
+			$('#goodsDetailForm input[name=certNum]').val(result.certNum);
+			$('#goodsDetailForm input[name=certNumOrg]').val(result.certNum);
+			
 			//상품상세
 			// 공지내용. Summernote에 값 세팅
 			gagaSn.setContents('#goodsPcTopDesc', result.goodsPcTopDesc);
@@ -881,7 +894,7 @@
 			params.niClsfCd = result.niClsfCd;
 			params.goodsType = result.goodsType;
 			params.erpPriceLinkYn = result.erpPriceLinkYn;
-
+			
 			//옵셥 재고(ajax html)
 			fnGoodsDetailSizeStockSearch(params);
 			//정보고시
@@ -901,7 +914,7 @@
 			$('#goodsDetailForm').find('.tabs .tabsNav li:eq(0) a').attr("style", "color:red;");
 		});
 	}
-
+	
 	//옵셥 재고
 	var fnGoodsDetailSizeStockSearch = function(params) {
 		cfnAjaxSubmit("/goods/detail/sizeStock/form", "html", "sizeStockArea", params);
@@ -1893,6 +1906,27 @@
 		});
 	});
 	
+	// 안전인증
+	$("#btnGoodsSafetyCertNum").on("click", function(){
+/*
+		if($("#goodsDetailForm  input[name=certNum]").val() == $("#goodsDetailForm  input[name=certNumOrg]").val()){
+			mcxDialog.alert("안전인증번호가 변경되지 않았습니다.");
+			return false;
+		}
+*/
+		mcxDialog.confirm('안전인증번호를 변경 하시겠습니까?', {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function(){
+				var data = {  goodsCd : $('#goodsDetailForm input[name=goodsCd]').val()
+							, certNum : $("#goodsDetailForm input[name=certNum]").val()
+							};
+				var jsonData = JSON.stringify(data);
+				gagajf.ajaxJsonSubmit('/goods/detail/certNum/save', jsonData );  //, fnGoodsDeailSearch
+			}
+		});
+	});
+	
 	// 구성상품 조회 팝업
 	var fnOpenGoodsDetailPopup = function() {
 		cfnOpenGoodsPopup('fnGoodsDetailGoodsDeal');