소스 검색

Merge branch 'develop' into order

card007 5 년 전
부모
커밋
31d572d311

+ 37 - 39
src/main/java/com/style24/core/biz/dao/TscLookbookDao.java

@@ -6,7 +6,7 @@ import org.springframework.stereotype.Repository;
 
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.Lookbook;
-import com.style24.persistence.domain.LookbookGoods;
+import com.style24.persistence.domain.LookbookPicker;
 
 /**
  * 룩북 Dao
@@ -17,45 +17,43 @@ import com.style24.persistence.domain.LookbookGoods;
 @ShopDs
 @Repository
 public interface TscLookbookDao {
-    /**
-     * 룩북 등록/수정
-     * @return
-     * @author bin2107
-     * @since 2021. 3. 5
-     */
-    void saveLookbook(Lookbook lookbook);
-    
+	/**
+	 * 룩북 등록/수정
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 3. 5
+	 */
+	void saveLookbook(Lookbook lookbook);
+
+	/**
+	 * 룩북 리스트 카운트
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 3. 5
+	 */
+	int getLookbookListCount(Lookbook lookbook);
+
+	/**
+	 * 룩북 리스트
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 3. 5
+	 */
+	Collection<Lookbook> getLookbookList(Lookbook lookbook);
 
-    /**
-     * 룩북 리스트 카운트
-     * @return
-     * @author bin2107
-     * @since 2021. 3. 5
-     */
-    int getLookbookListCount(Lookbook lookbook);
+	/**
+	 * 룩북 삭제
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 3. 5
+	 */
+	void deleteLookbook(Lookbook lookbook);
 
-    /**
-     * 룩북 리스트
-     * @return
-     * @author bin2107
-     * @since 2021. 3. 5
-     */
-    Collection<Lookbook> getLookbookList(Lookbook lookbook);
+	/**
+	 *  front 영역
+	 */
 
-    /**
-     * 룩북 삭제
-     * @return
-     * @author bin2107
-     * @since 2021. 3. 5
-     */
-    void deleteLookbook(Lookbook lookbook);
-    
-    
-    /**
-     *  front 영역
-     */
-    
-    /**
+	/**
 	 * 룩북 베너 목록
 	 *
 	 * @param lookbook
@@ -64,7 +62,7 @@ public interface TscLookbookDao {
 	 * @date 2021. 2. 18
 	 */
 	Collection<Lookbook> getLookbookBannerList(Lookbook lookbook);
-	
+
 	/**
 	 * 룩북 베너별 상품 목록
 	 *
@@ -73,5 +71,5 @@ public interface TscLookbookDao {
 	 * @author eskim
 	 * @date 2021. 2. 18
 	 */
-	Collection<LookbookGoods> getLookbookBannerGoodsList(Lookbook lookbook);
+	Collection<LookbookPicker> getLookbookBannerGoodsList(Lookbook lookbook);
 }

+ 77 - 78
src/main/java/com/style24/core/biz/service/TscLookbookService.java

@@ -26,83 +26,82 @@ import com.gagaframework.web.util.GagaFileUtil;
 @Service
 @Slf4j
 public class TscLookbookService {
-    @Autowired
-    private TscLookbookDao lookbookDao;
-
-    @Autowired
-    private Environment env;
-
-    /**
-     * 팝업관리 저장
-     * @return
-     * @author bin2107
-     * @since 2021. 3. 3
-     */
-    @Transactional("shopTxnManager")
-    public void saveLookbook(Lookbook lookbook) {
-        if(!StringUtils.isEmpty(lookbook.getNewSysTnfileNm())){
-            String bannerUploadPath = env.getProperty("upload.default.target.path");
-            bannerUploadPath = bannerUploadPath + "/display";
-            String yearMonth = GagaDateUtil.getToday().substring(0, 6);
-            bannerUploadPath = GagaFileUtil.getConcatenationPath(bannerUploadPath, "/lookbook/thumbnail");
-            File newFile = new File(GagaFileUtil.getConcatenationPath(bannerUploadPath, lookbook.getNewSysTnfileNm()));
-            bannerUploadPath = GagaFileUtil.getConcatenationPath(bannerUploadPath, yearMonth);
-            String newFilename = "LOOKBOOK_" + GagaDateUtil.getTodayDateTime() + "." + StringUtils.getFilenameExtension(lookbook.getNewSysTnfileNm());
-            File uniqueFile = GagaFileUtil.getUniqueFile(new File(GagaFileUtil.getConcatenationPath(bannerUploadPath, newFilename)));
+	@Autowired
+	private TscLookbookDao lookbookDao;
+
+	@Autowired
+	private Environment env;
+
+	/**
+	 * 팝업관리 저장
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 3. 3
+	 */
+	@Transactional("shopTxnManager")
+	public void saveLookbook(Lookbook lookbook) {
+		if (!StringUtils.isEmpty(lookbook.getNewSysTnfileNm())) {
+			String bannerUploadPath = env.getProperty("upload.default.target.path");
+			bannerUploadPath = bannerUploadPath + "/display";
+			String yearMonth = GagaDateUtil.getToday().substring(0, 6);
+			bannerUploadPath = GagaFileUtil.getConcatenationPath(bannerUploadPath, "/lookbook/thumbnail");
+			File newFile = new File(GagaFileUtil.getConcatenationPath(bannerUploadPath, lookbook.getNewSysTnfileNm()));
+			bannerUploadPath = GagaFileUtil.getConcatenationPath(bannerUploadPath, yearMonth);
+			String newFilename = "LOOKBOOK_" + GagaDateUtil.getTodayDateTime() + "." + StringUtils.getFilenameExtension(lookbook.getNewSysTnfileNm());
+			File uniqueFile = GagaFileUtil.getUniqueFile(new File(GagaFileUtil.getConcatenationPath(bannerUploadPath, newFilename)));
 //          Rename a file
-            File path = new File(bannerUploadPath);
-            if (!path.exists()) {
-                path.mkdir();
-            }
-            newFile.renameTo(uniqueFile);
-
-            lookbook.setOrgTnfileNm("/lookbook/thumbnail/" + yearMonth + "/" + newFilename);
-            lookbook.setSysTnfileNm("/lookbook/thumbnail/" + yearMonth + "/" + newFilename);
-        }
-
-        lookbookDao.saveLookbook(lookbook);
-    }
-
-
-    /**
-     * 룩북 리스트 카운트
-     * @return
-     * @author bin2107
-     * @since 2021. 3. 5
-     */
-    public int getLookbookListCount(Lookbook lookbook) {
-        return lookbookDao.getLookbookListCount(lookbook);
-    }
-
-    /**
-     * 룩북 리스트
-     * @return
-     * @author bin2107
-     * @since 2021. 3. 5
-     */
-    public Collection<Lookbook> getLookbookList(Lookbook lookbook){
-        return lookbookDao.getLookbookList(lookbook);
-    }
-
-    /**
-     * 룩북 삭제
-     * @return
-     * @author bin2107
-     * @since 2021. 3. 5
-     */
-    @Transactional("shopTxnManager")
-    public void deleteLookbook(Lookbook lookbook){
-        for(String lookbookSq : lookbook.getSelectDataArr()){
-            lookbook.setLookbookSq(Integer.parseInt(lookbookSq));
-            lookbookDao.deleteLookbook(lookbook);
-        }
-    }
-    
-    /**
-     * front 영역
-     */
-    
-    /**
+			File path = new File(bannerUploadPath);
+			if (!path.exists()) {
+				path.mkdir();
+			}
+			newFile.renameTo(uniqueFile);
+
+			lookbook.setOrgTnfileNm("/lookbook/thumbnail/" + yearMonth + "/" + newFilename);
+			lookbook.setSysTnfileNm("/lookbook/thumbnail/" + yearMonth + "/" + newFilename);
+		}
+
+		lookbookDao.saveLookbook(lookbook);
+	}
+
+	/**
+	 * 룩북 리스트 카운트
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 3. 5
+	 */
+	public int getLookbookListCount(Lookbook lookbook) {
+		return lookbookDao.getLookbookListCount(lookbook);
+	}
+
+	/**
+	 * 룩북 리스트
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 3. 5
+	 */
+	public Collection<Lookbook> getLookbookList(Lookbook lookbook) {
+		return lookbookDao.getLookbookList(lookbook);
+	}
+
+	/**
+	 * 룩북 삭제
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 3. 5
+	 */
+	@Transactional("shopTxnManager")
+	public void deleteLookbook(Lookbook lookbook) {
+		for (String lookbookSq : lookbook.getSelectDataArr()) {
+			lookbook.setLookbookSq(Integer.parseInt(lookbookSq));
+			lookbookDao.deleteLookbook(lookbook);
+		}
+	}
+
+	/**
+	 * front 영역
+	 */
+
+	/**
 	 * 룩북
 	 *
 	 * @param lookbook
@@ -112,11 +111,11 @@ public class TscLookbookService {
 	 */
 	public Collection<Lookbook> getLookbookListForGoods(Lookbook lookbook) {
 		Collection<Lookbook> lookbookBannerList = lookbookDao.getLookbookBannerList(lookbook);
-		
+
 		for (Lookbook tempLookbook : lookbookBannerList) {
 			tempLookbook.setLookbookGoodsList(lookbookDao.getLookbookBannerGoodsList(tempLookbook));
 		}
-		
+
 		return lookbookBannerList;
 	}
 }

+ 34 - 31
src/main/java/com/style24/persistence/domain/Lookbook.java

@@ -1,10 +1,11 @@
 package com.style24.persistence.domain;
 
 import java.util.Collection;
+
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
-
 import com.style24.persistence.TscPageRequest;
+
 import lombok.Data;
 
 /**
@@ -15,40 +16,42 @@ import lombok.Data;
 @SuppressWarnings("serial")
 @Data
 public class Lookbook extends TscBaseDomain {
-    private Integer lookbookSq;     //룩분일련번호
-    private String  brandCd;        //브랜드
-    private String  fyear;
-    private String  tyear;
-    private String  seasonStr;
-    private String  title;          //타이틀
-    private String  orgTnfileNm;    //원본썸네일명
-    private String  sysTnfileNm;    //시스템썸네일명
-    private String  newSysTnfileNm;
-    private String  dispStdt;       //전시시작일
-    private String  dispStTime;
-    private String  dispEddt;       //전시종료일
-    private String  dispEdTime;
-    private String  dispYn;         //표시여부
-    private Integer dispOrd;        //표시순서
-    private String  mainDispYn;     //메인노출여부
-    
-    private Integer lookbookbSq;	// 룩북배너일련번호
+	private Integer lookbookSq;     //룩분일련번호
+	private String brandCd;        //브랜드
+	private String fyear;
+	private String tyear;
+	private String seasonStr;
+	private String title;          //타이틀
+	private String orgTnfileNm;    //원본썸네일명
+	private String sysTnfileNm;    //시스템썸네일명
+	private String newSysTnfileNm;
+	private String dispStdt;       //전시시작일
+	private String dispStTime;
+	private String dispEddt;       //전시종료일
+	private String dispEdTime;
+	private String dispYn;         //표시여부
+	private Integer dispOrd;        //표시순서
+	private String mainDispYn;     //메인노출여부
+
+	private Integer lookbookbSq;	// 룩북배너일련번호
 	private String orgFileNm;		// 원본파일명
 	private String sysFileNm;		// 시스템파일명
+	private String xlim;			// X좌표
+	private String ylim;			// Y좌표
+
+	Collection<LookbookPicker> lookbookGoodsList;	//베너별 상품목록
 
-	Collection<LookbookGoods> lookbookGoodsList;	//베너별 상품목록
-	
 	private String goodsCd; 		// 상품상세검색용
 	private String frontGb; 		// 상품상세검색용
 	private String custGb; 			// 상품상세검색용
-    
-    @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-    private String[] selectDataArr;
-
-    // Pagination
-    private TscPageRequest pageable;
-    private int pageNo = 1;
-    private int pageSize = 50;
-    private int pageUnit = 10;
-   
+
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] selectDataArr;
+
+	// Pagination
+	private TscPageRequest pageable;
+	private int pageNo = 1;
+	private int pageSize = 50;
+	private int pageUnit = 10;
+
 }

+ 26 - 8
src/main/java/com/style24/persistence/domain/LookbookPicker.java

@@ -1,6 +1,7 @@
 package com.style24.persistence.domain;
 
 import com.style24.persistence.TscBaseDomain;
+
 import lombok.Data;
 
 /**
@@ -11,12 +12,29 @@ import lombok.Data;
 @SuppressWarnings("serial")
 @Data
 public class LookbookPicker extends TscBaseDomain {
-    private Integer lbPickerSq;     //룩북피커일련번호
-    private Integer lookbookbSq;    //룩북배너일련번호
-    private Integer lookbookSq;     //룩북일련번호
-    private float   xlim;           //X좌표
-    private float   ylim;           //Y좌표
-    private String  goodsCd;        //상품코드
-    private int     dispOrd;        //표시순서
-    private String  useYn;          //사용여부
+	private Integer lbPickerSq;     //룩북피커일련번호
+	private Integer lookbookbSq;    //룩북배너일련번호
+	private Integer lookbookSq;     //룩북일련번호
+	private float xlim;           //X좌표
+	private float ylim;           //Y좌표
+	private String goodsCd;        //상품코드
+	private int dispOrd;        //표시순서
+	private String useYn;          //사용여부
+
+	private String goodsNm;
+	private String goodsFullNm;
+	private String goodsStat;
+	private String brandGroupNm;
+	private int listPrice;
+	private int currPrice;
+	private String sysImgNm;
+	private String sysImgNm2;
+	private int stockQty;
+	private String soldoutYn;
+	private float dcRate;
+	private String videoGbM;
+	private String videoValM;
+	private String videoGbS;
+	private String videoValS;
+	private String mainColorCd;
 }

+ 13 - 7
src/main/java/com/style24/persistence/mybatis/shop/TscLookbook.xml

@@ -126,16 +126,18 @@
 	</select>
 	
 	<!-- 룩북 베너 상품 목록 조회 -->
-	<select id="getLookbookBannerGoodsList" parameterType="Lookbook" resultType="Lookbook">
+	<select id="getLookbookBannerGoodsList" parameterType="Lookbook" resultType="LookbookPicker">
 		/* TsfGoods.getLookbookBannerGoodsList */
 		SELECT Z.*
 		     , 100 - ROUND((CURR_PRICE / LIST_PRICE) * 100 ,0) AS DC_RATE
 		FROM (
 		      SELECT A.LOOKBOOK_SQ
 		           , B.LOOKBOOKB_SQ 
-		           , C.GOODS_CD 
-		           , RANK() OVER(PARTITION BY A.LOOKBOOK_SQ, B.LOOKBOOKB_SQ  ORDER BY C.DISP_ORD ) RNUM 
-		           , C.DISP_ORD 
+		           , P.GOODS_CD 
+		           , RANK() OVER(PARTITION BY A.LOOKBOOK_SQ, B.LOOKBOOKB_SQ  ORDER BY P.DISP_ORD ) RNUM 
+		           , P.DISP_ORD 
+		           , P.XLIM
+		           , P.YLIM
 		           , G.GOODS_NM
 		           , CONCAT(IF(IFNULL(G.GOODS_GB,'') IN ('G073_11','G073_15', ''), '',IFNULL(CONCAT('[',FN_GET_CODE_NM('G073',G.GOODS_GB),']'),'') )
 		                   ,IF(G.FOREIGN_BUY_YN='N','[해외구매대행]','' )
@@ -144,7 +146,7 @@
 		                   ,G.GOODS_NM ) AS GOODS_FULL_NM
 		          , G.GOODS_STAT
 		          , G.MIN_ORD_QTY 
-		          , (CASE WHEN D.DISP_NM_LANG = 'EN' THEN D.BRAND_ENM ELSE D.BRAND_KNM END) AS BRAND_NM
+		          , (CASE WHEN E.DISP_NM_LANG = 'EN' THEN E.BRAND_GROUP_ENM ELSE E.BRAND_GROUP_KNM END) AS BRAND_GROUP_NM
 		          , G.LIST_PRICE
 		          , FN_GET_BENEFIT_PRICE(#{frontGb},G.GOODS_CD, G.CURR_PRICE,#{custGb}) AS CURR_PRICE
 		          , G.MAIN_COLOR_CD
@@ -160,11 +162,15 @@
 		      INNER JOIN TB_LOOKBOOK_BANNER B ON A.LOOKBOOK_SQ = B.LOOKBOOK_SQ 
 		                                      AND B.DISP_YN = 'Y'
 		                                      AND B.LOOKBOOKB_SQ = #{lookbookbSq}
-		      INNER JOIN TB_LOOKBOOK_GOODS C ON B.LOOKBOOKB_SQ  = C.LOOKBOOKB_SQ 
-		      INNER JOIN TB_GOODS G ON C.GOODS_CD = G.GOODS_CD
+		      INNER JOIN TB_LOOKBOOK_PICKER P ON B.LOOKBOOKB_SQ  = P.LOOKBOOKB_SQ
+		                                      AND P.USE_YN = 'Y'
+		      INNER JOIN TB_GOODS G ON P.GOODS_CD = G.GOODS_CD
 		                            AND G.GOODS_STAT = 'G008_90'
+		                            AND G.SELF_MALL_YN = 'Y'
 		      INNER JOIN TB_BRAND D ON G.BRAND_CD = D.BRAND_CD
 		                    AND D.USE_YN = 'Y'
+		      INNER JOIN TB_BRAND_GROUP E ON D.BRAND_GROUP_NO = E.BRAND_GROUP_NO
+		                            AND E.USE_YN = 'Y'
 		      LEFT OUTER JOIN (SELECT GOODS_CD
 		                            , SUM(CASE WHEN SOLDOUT_YN = 'Y' THEN 0
 		                                       ELSE CURR_STOCK_QTY