Browse Source

Merge branch 'develop' of http://112.172.147.34:4936/style24/style24.admin into develop

jsshin 5 years ago
parent
commit
ce475360db

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

@@ -1120,4 +1120,13 @@ public interface TsaGoodsDao {
 	 */
 	GoodsNotiInfo getNotiClsfColumnInfo(String niClsfCd);
 
+	/**
+	 * 상품 품목별 매핑 카테고리 저장
+	 *
+	 * @param goods
+	 * @author eskim
+	 * @since 2021. 01. 24
+	 */
+	void createCategoryGoods(Goods goods);
+
 }

+ 25 - 65
src/main/java/com/style24/admin/biz/service/TsaGoodsService.java

@@ -24,6 +24,7 @@ import com.style24.persistence.domain.Brand;
 import com.style24.persistence.domain.Color;
 import com.style24.persistence.domain.FreeGoods;
 import com.style24.persistence.domain.Goods;
+import com.style24.persistence.domain.GoodsCategory;
 import com.style24.persistence.domain.GoodsCompose;
 import com.style24.persistence.domain.GoodsDesc;
 import com.style24.persistence.domain.GoodsEpSkip;
@@ -88,10 +89,10 @@ public class TsaGoodsService {
 	private TsaCommonService commonService;
 
 	@Autowired
-	private TsaRendererService rendererService;
+	private TsaNoticeService noticeService;
 
 	@Autowired
-	private TsaNoticeService noticeService;
+	private TsaDisplayService displayService;
 
 	@Autowired
 	private SafetyKoreaApi safetyKoreaApi;
@@ -228,8 +229,9 @@ public class TsaGoodsService {
 	 */
 	@Transactional("shopTxnManager")
 	public void saveNotiInfoItem(Collection<NotiInfo> notiInfoList) {
-		if (notiInfoList == null || notiInfoList.isEmpty())
+		if (notiInfoList == null || notiInfoList.isEmpty()) {
 			throw new IllegalStateException(message.getMessage("FAIL_1001"));
+		}
 
 		for (NotiInfo notiInfo : notiInfoList) {
 			if (!StringUtils.isBlank(notiInfo.getNiContent())) {
@@ -871,72 +873,29 @@ public class TsaGoodsService {
 			}
 			goodsDao.updateGoodsSnm(goods);
 
-			Collection<GoodsNotiInfo> goodsNotiInfoList = goodsDao.getNewNotiInfo(goods);
-			goodsDao.deleteGoodsNotiInfo(goods);
+			//상품 등록후에는 고시정보는 품목과 상관없이 변경처리 가능하게 
+//			Collection<GoodsNotiInfo> goodsNotiInfoList = goodsDao.getNewNotiInfo(goods);
+//			goodsDao.deleteGoodsNotiInfo(goods);
+//
+//			for (GoodsNotiInfo goodsNotiInfo : goodsNotiInfoList) {
+//				goodsNotiInfo.setRegNo(TsaSession.getInfo().getUserNo());
+//				goodsNotiInfo.setUpdNo(TsaSession.getInfo().getUserNo());
+//				goodsNotiInfo.setGoodsCd(goods.getGoodsCd());
+//				goodsDao.saveGoodsNotiInfo(goodsNotiInfo);
+//			}
 
-			for (GoodsNotiInfo goodsNotiInfo : goodsNotiInfoList) {
-				goodsNotiInfo.setRegNo(TsaSession.getInfo().getUserNo());
-				goodsNotiInfo.setUpdNo(TsaSession.getInfo().getUserNo());
-				goodsNotiInfo.setGoodsCd(goods.getGoodsCd());
-				goodsDao.saveGoodsNotiInfo(goodsNotiInfo);
-			}
+			// 품목변경시 카테고리 전시카테고리 변경
+			GoodsCategory goodsCategory = new GoodsCategory();
+			goodsCategory.setRegNo(TsaSession.getInfo().getUserNo());
+			goodsCategory.setUpdNo(TsaSession.getInfo().getUserNo());
+			goodsCategory.setGoodsCd(goods.getGoodsCd());
+			goodsCategory.setCateType("G031_10");	//상품분류카테고리
+			displayService.deleteGoodsCategory(goodsCategory);
+			goodsDao.createCategoryGoods(goods);
 
-			this.saveGoodsCategory(goods);
 		}
 	}
 
-	/**
-	 * 상품 품목 기준 카테고리 저장
-	 *
-	 * @param goods
-	 * @author eskim
-	 * @since 2020. 4. 21.
-	 */
-	private void saveGoodsCategory(Goods goods) {
-
-//		GoodsCategory goodsCategory = new GoodsCategory();
-//		goodsCategory.setRegNo(TsaSession.getInfo().getUserNo());
-//		goodsCategory.setUpdNo(TsaSession.getInfo().getUserNo());
-//		goodsCategory.setGoodsCd(goods.getGoodsCd());
-//		displayService.deleteGoodsCategory(goodsCategory);
-//
-//		Collection<ItemkindCategory> itemkindCategoryList = displayService.getItemkindCategoryList(goods.getItemkindCd());
-//		for ItemkindCategory itemkindCategory : itemkindCategoryList) {
-//			Category category = new Category();
-//			category.setCateGb(itemkindCategory.getCateGb());
-//			category.setCateCd(itemkindCategory.getCateCd());
-//			category = displayService.getCategory4srch(category);
-//
-//			CategoryGoods categoryGoods = new CategoryGoods();
-//			categoryGoods.setRegNo(TsaSession.getInfo().getUserNo());
-//			categoryGoods.setUpdNo(TsaSession.getInfo().getUserNo());
-//			String[] goodsCdArr = {goods.getGoodsCd()};
-//			categoryGoods.setGoodsCdArr(goodsCdArr);
-//			if (category.getCateGb() != null) {
-//				categoryGoods.setNcateGb(String.valueOf(category.getCateGb()));
-//			}
-//			if (category.getCateType() != null) {
-//				categoryGoods.setNcateType(String.valueOf(category.getCateType()));
-//			}
-//			if (category.getCateCd() != null) {
-//				categoryGoods.setNcateCd(String.valueOf(category.getCateCd()));
-//			}
-//			if (category.getTcateCd() != null) {
-//				categoryGoods.setNtcateCd(String.valueOf(category.getTcateCd()));
-//			}
-//			if (category.getMcateCd() != null) {
-//				categoryGoods.setNmcateCd(String.valueOf(category.getMcateCd()));
-//			}
-//			if (category.getScateCd() != null) {
-//				categoryGoods.setNscateCd(String.valueOf(category.getScateCd()));
-//			}
-//			if (category.getDcateCd() != null) {
-//				categoryGoods.setNdcateCd(String.valueOf(category.getDcateCd()));
-//			}
-//			displayService.moveCategoryGoods(categoryGoods);
-//		}
-	}
-
 	/**
 	 * 상품 저장
 	 *
@@ -2489,8 +2448,9 @@ public class TsaGoodsService {
 
 			int idx = 0;
 			for (AdKeywordGoods adKeywordGoods : adKeywordGoodsList) {
-				if (idx == 0)
+				if (idx == 0) {
 					goodsDao.deleteAdKeywordGoods(adKeywordGoods); // 전체 상품 삭제
+				}
 				adKeywordGoods.setAdKeywordSq(adKeyword.getAdKeywordSq());
 				adKeywordGoods.setRegNo(TsaSession.getInfo().getUserNo());
 				adKeywordGoods.setUpdNo(TsaSession.getInfo().getUserNo());

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

@@ -627,11 +627,9 @@ public class TsaGoodsController extends TsaBaseController {
 						returnGoods += tmpGoods.getGoodsCd() + ",";
 					} else {
 						for (GoodsNotiInfo tmpGoodsNotiInfo : goodsNotiInfoList) {
-							if ("Y".equals(tmpGoodsNotiInfo.getReqYn()) || "Y".equals(tmpGoodsNotiInfo.getDispYn())) {
-								if (StringUtils.isBlank(tmpGoodsNotiInfo.getNiContent())) {
-									returnGoods += tmpGoods.getGoodsCd() + ",";
-									break;
-								}
+							if (StringUtils.isBlank(tmpGoodsNotiInfo.getNiContent())) {
+								returnGoods += tmpGoods.getGoodsCd() + ",";
+								break;
 							}
 						}
 					}
@@ -1005,8 +1003,9 @@ public class TsaGoodsController extends TsaBaseController {
 	@RequestMapping(value = "/thumbnail/image/save", method = RequestMethod.POST)
 	@ResponseBody
 	public GagaResponse saveGoodsThumbnailImageList(@RequestBody Collection<GoodsImg> goodsImgList) throws Exception {
-		if (goodsImgList == null || goodsImgList.isEmpty())
+		if (goodsImgList == null || goodsImgList.isEmpty()) {
 			throw new IllegalStateException(message.getMessage("FAIL_1001"));
+		}
 
 		String dextUploadPath = env.getProperty("upload.dext.target.path");
 		String goodsTargetPath = env.getProperty("upload.goods.target.path");
@@ -1029,8 +1028,9 @@ public class TsaGoodsController extends TsaBaseController {
 				Goods goods = new Goods();
 				goods.setGoodsCd(goodsImg.getGoodsCd());
 				Goods goodsInfo = goodsService.getGoods(goods);
-				if (goodsInfo == null || goodsInfo.getGoodsCd().isEmpty())
+				if (goodsInfo == null || goodsInfo.getGoodsCd().isEmpty()) {
 					throw new IllegalStateException(message.getMessage("FAIL_1001"));
+				}
 
 				strBrandNo = String.valueOf(goodsInfo.getBrandNo());
 			}

+ 0 - 2
src/main/java/com/style24/persistence/domain/GoodsNotiInfo.java

@@ -20,8 +20,6 @@ public class GoodsNotiInfo extends TscBaseDomain {
 	private String niItemCd;
 	private String niContent;
 	private int dispOrd;
-	private String dispYn;
-	private String reqYn;
 
 	private String niItemNm;
 	private String supplyVendorCd;

+ 0 - 2
src/main/java/com/style24/persistence/domain/NotiInfo.java

@@ -22,8 +22,6 @@ public class NotiInfo extends TscBaseDomain {
 	private String niItemNm;
 	private String niContent;
 	private Integer dispOrd;
-	private String reqYn;
-	private String dispYn;
 
 	private String crud;
 	private String goodsCd;

+ 102 - 6
src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -150,8 +150,6 @@
 		     , FN_GET_CODE_NM('G005', B.NI_ITEM_CD) AS NI_ITEM_NM
 		     , B.NI_CONTENT
 		     , B.DISP_ORD
-		     , B.REQ_YN
-		     , B.DISP_YN
 		FROM TB_NOTI_INFO B
 		WHERE B.SUPPLY_VENDOR_CD = CASE #{supplyVendorCd} 
 		                         WHEN 'SV0001' THEN 'SV0001'
@@ -952,8 +950,6 @@
 		     , C.NI_ITEM_CD
 		     , C.NI_CONTENT
 		     , C.DISP_ORD
-		     , A.DISP_YN
-		     , A.REQ_YN
 		FROM TB_GOODS_NOTI_INFO C
 		INNER JOIN TB_GOODS B ON C.GOODS_CD = B.GOODS_CD
         INNER JOIN TB_SUPPLY_COMPANY D ON B.SUPPLY_COMP_CD = D.SUPPLY_COMP_CD
@@ -986,8 +982,6 @@
 		        END
 		        AS  NI_CONTENT
 		      , N.DISP_ORD
-		      , N.REQ_YN
-		      , N.DISP_YN
 		 FROM (
 		     SELECT G.GOODS_CD
 		         , G.ITEMKIND_CD
@@ -3851,4 +3845,106 @@
 		       ) A
 	</select>
 	
+	<!-- 상품 품목별 매핑 카테고리 저장 (LEAF 상위카테고리까지)-->
+	<insert id="createCategoryGoods_ORG" parameterType="Goods">
+		/* TsaGoods.createCategoryGoods */
+		INSERT INTO TB_CATE_GOODS
+		    (CATE_NO
+		   , GOODS_CD
+		   , DISP_ORD
+		   , REG_NO
+		   , REG_DT
+		    )
+		WITH RECURSIVE TAB_GOODS AS (
+		    SELECT A.GOODS_CD
+		         , A.ITEMKIND_CD
+		         , B.CATE_NO
+		    FROM TB_GOODS A
+		    INNER JOIN TB_ITEMKIND_CATE  B ON A.ITEMKIND_CD = B.ITEMKIND_CD
+		    WHERE A.GOODS_CD = #{goodsCd}
+		)
+		, TAB_4SCRH AS (
+		    SELECT  LEAF_CATE_NO
+		          , CATE1_NO
+		          , CATE2_NO
+		          , CATE3_NO
+		          , CATE4_NO
+		          , CATE5_NO
+		    FROM  TB_CATE_4SRCH
+		    WHERE SITE_CD = 'G000_10'
+		    AND CATE_TYPE = 'G031_10' -- 상품타입
+		)
+		, TAB_CATE AS (
+		    SELECT LEAF_CATE_NO 
+		         , CATE_LVL 
+		         , CATE_NO
+		    FROM (
+		          SELECT LEAF_CATE_NO ,
+		                 CASE WHEN X = 1 THEN 'CATE1_NO'  -- 컬럼과 매핑(컬럼명)
+		                      WHEN X = 2 THEN 'CATE2_NO'
+		                      WHEN X = 3 THEN 'CATE3_NO'
+		                      WHEN X = 4 THEN 'CATE4_NO'
+		                      ELSE  'CATE5_NO' 
+		                 END CATE_LVL,
+		                 CASE WHEN X = 1 THEN CATE1_NO  -- 컬럼과 매핑(컬럼 데이터)
+		                      WHEN X = 2 THEN CATE2_NO
+		                      WHEN X = 3 THEN CATE3_NO
+		                      WHEN X = 4 THEN CATE4_NO
+		                      ELSE  CATE5_NO 
+		                 END CATE_NO
+		          FROM (
+		                 SELECT * FROM TAB_4SCRH A,
+		                 (SELECT 1 AS X                -- UNPIVOT 컬럼 수 만큼 선언
+		                  UNION ALL SELECT 2 AS X
+		                  UNION ALL SELECT 3 AS X
+		                  UNION ALL SELECT 4 AS X
+		                  UNION ALL SELECT 5 AS X
+		                ) B
+		         ) A
+		    ORDER BY LEAF_CATE_NO, CATE_LVL
+		) C
+		WHERE CATE_NO IS NOT NULL
+		)
+		SELECT DISTINCT B.CATE_NO
+		     , A.GOODS_CD
+		     , 9999
+		     , #{regNo}
+		     , NOW()
+		FROM TAB_GOODS A, TAB_CATE B
+		WHERE 1 = 1 
+		AND A.CATE_ NO = B.LEAF_CATE_NO
+		AND NOT EXISTS (SELECT 1
+		                FROM TB_CATE_GOODS
+		                WHERE CATE_NO = B.CATE_NO
+		                AND GOODS_CD = A.GOODS_CD
+		                )
+	</insert>
+	
+	<!-- 상품 품목별 매핑 카테고리 저장 (LEAF CATE에만 상품 적용 )-->
+	<insert id="createCategoryGoods" parameterType="Goods">
+		/* TsaGoods.createCategoryGoods */
+		INSERT INTO TB_CATE_GOODS
+		    (CATE_NO
+		   , GOODS_CD
+		   , DISP_ORD
+		   , REG_NO
+		   , REG_DT
+		    )
+		 SELECT B.CATE_NO
+		      , A.GOODS_CD
+		      , 9999
+		      , #{regNo}
+		      , NOW()
+		FROM TB_GOODS A
+		INNER JOIN TB_ITEMKIND_CATE  B ON A.ITEMKIND_CD = B.ITEMKIND_CD
+		INNER JOIN TB_CATE_4SRCH C ON B.CATE_NO = C.LEAF_CATE_NO
+		                   AND C.SITE_CD = 'G000_10'
+		                   AND C.CATE_TYPE = 'G031_10' -- 상품타입
+		WHERE A.GOODS_CD = #{goodsCd}
+		AND NOT EXISTS (SELECT 1
+		                FROM TB_CATE_GOODS
+		                WHERE CATE_NO = B.CATE_NO
+		                AND GOODS_CD = A.GOODS_CD
+		                )
+	</insert>
 </mapper>