Ver código fonte

Merge branch 'develop' into bin2107

bin2107 5 anos atrás
pai
commit
2fd06ac8da

+ 9 - 0
src/main/java/com/style24/front/biz/dao/TsfGiftcardDao.java

@@ -59,5 +59,14 @@ public interface TsfGiftcardDao {
 	 */
 	 void saveGiftcardApi(GiftCard giftcard);
 	 
+	 /**
+	 * 상품권 최근 12개월 년 월
+	 *
+	 * @param 
+	 * @author sowon
+	 * @since 2021. 3. 30
+	 */
+	 Collection<GiftCard> getRecentlyDate();
+	 
 	 
 }

+ 10 - 0
src/main/java/com/style24/front/biz/dao/TsfPointDao.java

@@ -3,6 +3,7 @@ package com.style24.front.biz.dao;
 import java.util.Collection;
 
 import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.GiftCard;
 import com.style24.persistence.domain.Point;
 
 /**
@@ -83,5 +84,14 @@ public interface TsfPointDao {
 	 * @since 2021. 03. 23
 	 */
 	Point getCustomerPoint(Point point);
+	
+	/**
+	 * 포인트 최근 12개월 년 월
+	 *
+	 * @param 
+	 * @author sowon
+	 * @since 2021. 3. 30
+	 */
+	 Collection<Point> getRecentlyDate();
 
 }

+ 11 - 0
src/main/java/com/style24/front/biz/service/TsfGiftcardService.java

@@ -133,5 +133,16 @@ public class TsfGiftcardService {
 		}
 
 	}
+	
+	 /**
+	 * 상품권 최근 12개월 년 월
+	 *
+	 * @param GiftCard
+	 * @author sowon
+	 * @since 2021. 3. 30
+	 */
+	 public Collection<GiftCard> getRecentlyDate(){
+		 return giftcardDao.getRecentlyDate();
+	 }
 
 }

+ 11 - 1
src/main/java/com/style24/front/biz/service/TsfPointService.java

@@ -6,7 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.style24.front.biz.dao.TsfPointDao;
-
+import com.style24.persistence.domain.GiftCard;
 import com.style24.persistence.domain.Point;
 
 import lombok.extern.slf4j.Slf4j;
@@ -109,5 +109,15 @@ public class TsfPointService {
 		return pointDao.getCustomerPoint(point);
 	}
 
+	/**
+	 * 포인트 최근 12개월 년 월
+	 *
+	 * @param GiftCard
+	 * @author sowon
+	 * @since 2021. 3. 30
+	 */
+	 public Collection<Point> getRecentlyDate(){
+		 return pointDao.getRecentlyDate();
+	 }
 
 }

+ 5 - 1
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -660,7 +660,8 @@ public class TsfMypageController extends TsfBaseController {
 		mav.addObject("accumulatePointList", pointService.getAccumulatePointList(point));
 		// 사용내역 조회
 		mav.addObject("usePointList", pointService.getUsePointList(point));
-
+		// 최근 12개월
+		mav.addObject("date", pointService.getRecentlyDate());
 		mav.setViewName(super.getDeviceViewName("mypage/MypagePointForm2"));
 		return mav;
 	}
@@ -770,6 +771,9 @@ public class TsfMypageController extends TsfBaseController {
 		ModelAndView mav = new ModelAndView();
 		// 상품권 기본정보
 		mav.addObject("giftcardInfo", giftcardService.getGiftcardInfo(giftcard));
+		
+		// 최근 12개월 년,월
+		mav.addObject("date", giftcardService.getRecentlyDate());
 		mav.setViewName(super.getDeviceViewName("mypage/MypageGiftcardForm"));
 
 		return mav;

+ 2 - 46
src/main/java/com/style24/front/support/controller/TsfBaseController.java

@@ -3,7 +3,6 @@ package com.style24.front.support.controller;
 import java.util.Collection;
 import java.util.Set;
 
-import javax.servlet.http.HttpServletRequest;
 import javax.validation.ConstraintViolation;
 import javax.validation.Validation;
 import javax.validation.Validator;
@@ -12,25 +11,17 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.propertyeditors.StringTrimmerEditor;
 import org.springframework.core.env.Environment;
-import org.springframework.mobile.device.Device;
-import org.springframework.mobile.device.DeviceUtils;
-import org.springframework.mobile.device.site.SitePreference;
-import org.springframework.mobile.device.site.SitePreferenceUtils;
-import org.springframework.mobile.device.util.ResolverUtils;
-import org.springframework.util.Assert;
 import org.springframework.web.bind.WebDataBinder;
 import org.springframework.web.bind.annotation.ControllerAdvice;
 import org.springframework.web.bind.annotation.InitBinder;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.context.request.RequestAttributes;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
 
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.front.support.env.TsfConstants;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.front.support.startup.TsfEnvsetInfo;
+import com.style24.front.support.util.ViewUtils;
 import com.style24.persistence.domain.Cate1;
 import com.style24.persistence.domain.Login;
 import com.style24.persistence.domain.Meta;
@@ -40,7 +31,6 @@ import lombok.extern.slf4j.Slf4j;
 import com.gagaframework.web.rest.exception.GagaRestException;
 import com.gagaframework.web.rest.server.GagaResponse;
 import com.gagaframework.web.rest.server.GagaResponseStatus;
-import com.gagaframework.web.util.GagaCookieUtil;
 
 /**
  * Controller Advice
@@ -277,41 +267,7 @@ public class TsfBaseController {
 	}
 
 	public String getDeviceViewName(String viewName) {
-		RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
-		Assert.isInstanceOf(ServletRequestAttributes.class, attrs);
-		HttpServletRequest request = ((ServletRequestAttributes)attrs).getRequest();
-
-		Device device = DeviceUtils.getCurrentDevice(request);
-		SitePreference sitePreference = SitePreferenceUtils.getCurrentSitePreference(request);
-		String resolvedViewName = viewName;
-
-		if (ResolverUtils.isNormal(device, sitePreference)) {
-			resolvedViewName = "web/" + viewName + "Web";
-		} else if (ResolverUtils.isMobile(device, sitePreference)) {
-			if (GagaCookieUtil.getCookie(request, TsfConstants.CK_PREFIX + "_site_preference").equals("normal")) {
-				resolvedViewName = "web/" + viewName + "Web";
-			} else {
-				resolvedViewName = "mob/" + viewName + "Mob";
-			}
-		} else if (ResolverUtils.isTablet(device, sitePreference)) {
-			if (GagaCookieUtil.getCookie(request, TsfConstants.CK_PREFIX + "_site_preference").equals("normal")) {
-				resolvedViewName = "web/" + viewName + "Web";
-			} else {
-				resolvedViewName = "mob/" + viewName + "Mob";
-			}
-		}
-
-		log.info("resolvedViewName: {}", resolvedViewName);
-
-		return stripTrailingSlash(resolvedViewName);
-	}
-
-	private String stripTrailingSlash(String viewName) {
-		if (viewName.endsWith("//")) {
-			return viewName.substring(0, viewName.length() - 1);
-		}
-
-		return viewName;
+		return ViewUtils.getDeviceViewName(viewName);
 	}
 
 }

+ 7 - 4
src/main/java/com/style24/front/support/controller/TsfCustomErrorController.java

@@ -13,10 +13,13 @@ import org.springframework.boot.web.servlet.error.ErrorAttributes;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
+import org.springframework.mobile.device.Device;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.servlet.ModelAndView;
 
+import com.style24.front.support.util.ViewUtils;
+
 import lombok.extern.slf4j.Slf4j;
 
 /**
@@ -51,7 +54,7 @@ public class TsfCustomErrorController extends AbstractErrorController {
 	 * @throws IOException
 	 */
 	@RequestMapping(produces = MediaType.TEXT_HTML_VALUE)
-	public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response) throws IOException {
+	public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response, Device device) throws IOException {
 		HttpStatus status = this.getStatus(request);
 		log.error("status.value(): {}", status.value());
 
@@ -61,7 +64,7 @@ public class TsfCustomErrorController extends AbstractErrorController {
 		ModelAndView mav = this.resolveErrorView(request, response, status, model);
 
 		if (status.value() == HttpStatus.NOT_FOUND.value()) {
-			return (mav != null) ? mav : new ModelAndView("mob/error/404Mob", model);
+			return (mav != null) ? mav : new ModelAndView(ViewUtils.getDeviceViewName("error/404"), model);
 		}
 
 		Object oExceptionType = request.getAttribute(RequestDispatcher.ERROR_EXCEPTION_TYPE);
@@ -71,11 +74,11 @@ public class TsfCustomErrorController extends AbstractErrorController {
 
 			// Thymeleaf의 HTML 파일을 못 찾는 에러는 "org.thymeleaf.exceptions.TemplateInputException"임.
 			if (exceptionType.endsWith("org.thymeleaf.exceptions.TemplateInputException")) {
-				return (mav != null) ? mav : new ModelAndView("mob/error/404Mob", model);
+				return (mav != null) ? mav : new ModelAndView(ViewUtils.getDeviceViewName("error/404"), model);
 			}
 		}
 
-		return (mav != null) ? mav : new ModelAndView("mob/error/500Mob", model);
+		return (mav != null) ? mav : new ModelAndView(ViewUtils.getDeviceViewName("error/500"), model);
 	}
 
 	/**

+ 68 - 0
src/main/java/com/style24/front/support/util/ViewUtils.java

@@ -0,0 +1,68 @@
+package com.style24.front.support.util;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.mobile.device.Device;
+import org.springframework.mobile.device.DeviceUtils;
+import org.springframework.mobile.device.site.SitePreference;
+import org.springframework.mobile.device.site.SitePreferenceUtils;
+import org.springframework.mobile.device.util.ResolverUtils;
+import org.springframework.util.Assert;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import com.style24.front.support.env.TsfConstants;
+
+import lombok.extern.slf4j.Slf4j;
+
+import com.gagaframework.web.util.GagaCookieUtil;
+
+/**
+ * 디바이스 뷰 관련 Util Class
+ * 
+ * @author gagamel
+ * @since 2021. 3. 30
+ */
+@Slf4j
+public class ViewUtils {
+
+	public static String getDeviceViewName(String viewName) {
+		RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
+		Assert.isInstanceOf(ServletRequestAttributes.class, attrs);
+		HttpServletRequest request = ((ServletRequestAttributes)attrs).getRequest();
+
+		Device device = DeviceUtils.getCurrentDevice(request);
+		SitePreference sitePreference = SitePreferenceUtils.getCurrentSitePreference(request);
+		String resolvedViewName = viewName;
+
+		if (ResolverUtils.isNormal(device, sitePreference)) {
+			resolvedViewName = "web/" + viewName + "Web";
+		} else if (ResolverUtils.isMobile(device, sitePreference)) {
+			if (GagaCookieUtil.getCookie(request, TsfConstants.CK_PREFIX + "_site_preference").equals("normal")) {
+				resolvedViewName = "web/" + viewName + "Web";
+			} else {
+				resolvedViewName = "mob/" + viewName + "Mob";
+			}
+		} else if (ResolverUtils.isTablet(device, sitePreference)) {
+			if (GagaCookieUtil.getCookie(request, TsfConstants.CK_PREFIX + "_site_preference").equals("normal")) {
+				resolvedViewName = "web/" + viewName + "Web";
+			} else {
+				resolvedViewName = "mob/" + viewName + "Mob";
+			}
+		}
+
+		log.info("resolvedViewName: {}", resolvedViewName);
+
+		return stripTrailingSlash(resolvedViewName);
+	}
+
+	private static String stripTrailingSlash(String viewName) {
+		if (viewName.endsWith("//")) {
+			return viewName.substring(0, viewName.length() - 1);
+		}
+
+		return viewName;
+	}
+
+}

+ 29 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfGiftcard.xml

@@ -134,6 +134,35 @@
 	        )
 	</insert>
 	
+	<select id="getRecentlyDate" resultType="GiftCard">
+		SELECT A.*
+		FROM
+		    (		
+		      SELECT DATE_FORMAT( NOW(), '%Y') AS YEAR ,DATE_FORMAT( NOW(), '%m') AS MONTH
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 1 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 1 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 2 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 2 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 3 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 3 MONTH), '%m')      
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 4 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 4 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 5 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 5 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 6 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 6 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 7 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 7 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 8 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 8 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 9 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 9 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 10 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 10 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 11 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 11 MONTH), '%m')
+		    )A	
+	</select>
 	
 	<!-- 페이징을 위한 select절 상단 -->
 	<sql id="selectForPagingHeader">

+ 17 - 21
src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml

@@ -942,24 +942,19 @@
 		)
 		, TAB_GOODS_IMG AS (
 		    /* 상품의 이미지 */
-		    SELECT G.BRAND_GROUP_NM
-		         , G.GOODS_CD
-		         , G.GOODS_NM
-		         , G.GOODS_GB
-		         , G.FOREIGN_BUY_YN
-		         , G.PARALLEL_IMPORT_YN
-		         , G.ORDER_MADE_YN
-		         , G.GOODS_TNM
-		         , G.MAIN_COLOR_CD
-		         , G.LIST_PRICE
-		         , G.CURR_PRICE
-		         , G.REG_DT
-		         , CASE WHEN GI.DEFAULT_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END   AS SYS_IMG_NM
-		         , CASE WHEN GI.MOUSEOVER_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END AS SYS_IMG_NM2
-		    FROM   TAB_GOODS G
-		         , TB_GOODS_IMG GI
-		    WHERE  G.GOODS_CD = GI.GOODS_CD
-		    AND    G.MAIN_COLOR_CD = GI.COLOR_CD
+		    SELECT GOODS_CD
+		          ,MAX(SYS_IMG_NM) AS SYS_IMG_NM
+		          ,MAX(SYS_IMG_NM2) AS SYS_IMG_NM2
+		    FROM (
+		          SELECT G.GOODS_CD
+		               , CASE WHEN GI.DEFAULT_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END   AS SYS_IMG_NM
+		               , CASE WHEN GI.MOUSEOVER_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END AS SYS_IMG_NM2
+		          FROM   TAB_GOODS G
+		               , TB_GOODS_IMG GI
+		          WHERE  G.GOODS_CD = GI.GOODS_CD
+		          AND    G.MAIN_COLOR_CD = GI.COLOR_CD
+		          ) Z
+		     GROUP BY GOODS_CD
 		)
 		, TAB_GOODS_VIDEO AS (
 		    /* 상품의 동영상 목록 */
@@ -992,8 +987,8 @@
 		     , G.MAIN_COLOR_CD
 		     , G.LIST_PRICE
 		     , FN_GET_BENEFIT_PRICE(#{frontGb},G.GOODS_CD,G.CURR_PRICE,#{custGb})                           AS CURR_PRICE    /*현재판매가*/
-		     , G.SYS_IMG_NM
-		     , G.SYS_IMG_NM2
+		     , GI.SYS_IMG_NM
+		     , GI.SYS_IMG_NM2
 		     , GV.VIDEO_GB_M
 		     , GV.VIDEO_VAL_M
 		     , GV.VIDEO_GB_S
@@ -1006,7 +1001,8 @@
 		     , ''                                                                                           AS LIKE_IT       /*위시리스트담긴상품*/
 		         </otherwise>
 		     </choose>
-		FROM   TAB_GOODS_IMG G
+		FROM TAB_GOODS G  
+		LEFT OUTER JOIN TAB_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
 		LEFT OUTER JOIN TAB_GOODS_VIDEO GV ON G.GOODS_CD = GV.GOODS_CD
 		<if test="custNo != null and custNo > 0"> <!-- 로그인 했으면 -->
 		LEFT OUTER JOIN TB_WISHLIST W ON G.GOODS_CD = W.GOODS_CD

+ 5 - 25
src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml

@@ -27,12 +27,7 @@
 		AND    P.PLAN_GB = 'P' /*기획전*/
 		AND    P.SITE_CD = #{siteCd}
 		<if test="frontGb != null and frontGb != ''">
-		    <if test='frontGb == "P"'> <!-- PC웹 -->
-		AND    P.FRONT_GB IN ('A','P')
-		    </if>
-		    <if test='frontGb == "A" or frontGb == "M"'> <!-- 모바일 -->
-		AND    P.FRONT_GB IN ('A','M')
-		    </if>
+		AND    P.FRONT_GB LIKE CONCAT('%',#{frontGb},'%')
 		</if>
 		AND    NOW() BETWEEN P.DISP_STDT AND P.DISP_EDDT
 		AND    P.DEL_YN = 'N' /*삭제안된 기획전*/
@@ -90,12 +85,7 @@
 		        WHERE  P.PLAN_GB = 'P' /*기획전*/
 		        AND    P.SITE_CD = #{siteCd}
 		        <if test="frontGb != null and frontGb != ''">
-		            <if test='frontGb == "P"'> <!-- PC웹 -->
-		        AND    P.FRONT_GB IN ('A','P')
-		            </if>
-		            <if test='frontGb == "A" or frontGb == "M"'> <!-- 모바일 -->
-		        AND    P.FRONT_GB IN ('A','M')
-		            </if>
+		        AND    P.FRONT_GB LIKE CONCAT('%',#{frontGb},'%')
 		        </if>
 		        AND    NOW() BETWEEN P.DISP_STDT AND P.DISP_EDDT
 		        AND    P.DEL_YN = 'N' /*삭제안된 기획전*/
@@ -163,12 +153,7 @@
 		    AND    P.PLAN_GB = 'P' /*기획전*/
 		    AND    P.SITE_CD = #{siteCd}
 		    <if test="frontGb != null and frontGb != ''">
-		        <if test='frontGb == "P"'> <!-- PC웹 -->
-		    AND    P.FRONT_GB IN ('A','P')
-		        </if>
-		        <if test='frontGb == "A" or frontGb == "M"'> <!-- 모바일 -->
-		    AND    P.FRONT_GB IN ('A','M')
-		        </if>
+		    AND    P.FRONT_GB LIKE CONCAT('%',#{frontGb},'%')
 		    </if>
 		    AND    NOW() BETWEEN P.DISP_STDT AND P.DISP_EDDT
 		    AND    P.DEL_YN = 'N' /*삭제안된 기획전*/
@@ -285,7 +270,7 @@
 		AND    NOW() BETWEEN A.DISP_STDT AND A.DISP_EDDT
 		</if>
 		<if test="frontGb != null and frontGb != ''">
-		AND    (A.FRONT_GB = 'A' OR A.FRONT_GB = #{frontGb})
+		AND    A.FRONT_GB LIKE CONCAT('%',#{frontGb},'%')
 		</if>
 	</select>
 	
@@ -330,12 +315,7 @@
 		        WHERE  P.PLAN_GB = 'E' /*이벤트*/
 		        AND    P.SITE_CD = #{siteCd}
 		        <if test="frontGb != null and frontGb != ''">
-		            <if test='frontGb == "P"'> <!-- PC웹 -->
-		        AND    P.FRONT_GB IN ('A','P')
-		            </if>
-		            <if test='frontGb == "A" or frontGb == "M"'> <!-- 모바일 -->
-		        AND    P.FRONT_GB IN ('A','M')
-		            </if>
+		        AND    P.FRONT_GB LIKE CONCAT('%',#{frontGb},'%')
 		        </if>
 		        AND    NOW() BETWEEN P.DISP_STDT AND P.DISP_EDDT
 		        AND    P.DEL_YN = 'N' /*삭제안된 기획전*/

+ 30 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfPoint.xml

@@ -256,4 +256,34 @@
 		FROM   TB_CUSTOMER C
 		WHERE  C.CUST_NO = #{custNo}
 	</select>
+	
+	<select id="getRecentlyDate" resultType="Point">
+		SELECT A.*
+		FROM
+		    (		
+		      SELECT DATE_FORMAT( NOW(), '%Y') AS YEAR ,DATE_FORMAT( NOW(), '%m') AS MONTH
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 1 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 1 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 2 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 2 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 3 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 3 MONTH), '%m')      
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 4 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 4 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 5 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 5 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 6 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 6 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 7 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 7 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 8 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 8 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 9 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 9 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 10 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 10 MONTH), '%m')
+		      UNION
+		      SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 11 MONTH), '%Y'),DATE_FORMAT( DATE_ADD(NOW(), INTERVAL - 11 MONTH), '%m')
+		    )A	
+	</select>
 </mapper>

+ 8 - 1
src/main/webapp/WEB-INF/views/mob/error/404Mob.html

@@ -57,10 +57,17 @@
 				</p>
 			</div>
 			<div class="btn_group">
-				<button class="btn btn_dark" onclick="cfnGoToPage(_PAGE_MAIN);"><span>홈으로 이동</span></button>
+				<button class="btn btn_dark" onclick="fnGoToHome();"><span>홈으로 이동</span></button>
 			</div>
 		</div>
 	</div>
 	<!-- // container -->
+
+<script type="text/javascript">
+	let fnGoToHome = function() {
+		document.location.href = '/';
+	}
+</script>
+
 </body>
 </html>

+ 9 - 2
src/main/webapp/WEB-INF/views/web/error/404Web.html

@@ -51,16 +51,23 @@
 			<div class="contGrp">
 				<h2>죄송합니다.<br/> 요청하신 페이지를 찾을 수 없습니다.</h2>
 				<p class="none_m">방문하시려는 페이지의 주소가 잘못 입력되었거나,<br/>페이지의 주소가 변경 혹은 삭제되어 요청하신 페이지를 찾을 수 없습니다. </p>
-				<p>입력하신 주소가 정확한지 다시한번 확인해주시기 바랍니다</p>
+				<p>입력하신 주소가 정확한지 다시  번 확인해 주시기 바랍니다.</p>
 				<p class="none_m">
 					서비스 이용 중 문의사항이나 불편하셨던 점은 <a class="none_m"  href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_FAQ);">고객센터</a>를 이용해주세요. 감사합니다.
 				</p>
 			</div>
 			<div class="btn_group">
-				<button class="btn btn_dark" onclick="cfnGoToPage(_PAGE_MAIN);"><span>홈으로 이동</span></button>
+				<button class="btn btn_dark" onclick="fnGoToHome();"><span>홈으로 이동</span></button>
 			</div>
 		</div>
 	</div>
 	<!-- // container -->
+
+<script type="text/javascript">
+	let fnGoToHome = function() {
+		document.location.href = '/';
+	}
+</script>
+
 </body>
 </html>

+ 8 - 17
src/main/webapp/WEB-INF/views/web/mypage/MypageGiftcardFormWeb.html

@@ -123,26 +123,17 @@
 		</div>
 	</div>
 <script th:inline="javascript">
-	var date = new Date();
-	var year = date.getFullYear();
-	var month = date.getMonth() + 1;
+	let date = [[${date}]];
+	var year = date[0].year;
+	var month = date[0].month;
 
 	//동적으로 날짜 년도 append
 	function appendYear() {
-
-		for (var i = year; i <= year; i++) {
-			for (var j = 1; j <= month; j++) {
-				$("#searchDt").prepend(
-						"<li onclick='fnChangeDate(this.value)' value='"
-								+ year + "" + j + "'>" + i
-								+ "년" + j + "월 </li>");
-			}
+		for (var i = 0; i < date.length; i++) {
+			$("#searchDt").append(	"<li onclick='fnChangeDate(this.value)' value='"+ date[i].year + "" + date[i].month + "'>" + date[i].year	+ "년" + date[i].month + "월 </li>")
 		}
-		$(".select").append(
-				"<li class='selected' value='"+year+""+month+"'>"
-						+ year + "년" + month + "월 </li>"); // 현재년도 선택 */
+		$(".select").append("<li class='selected' value='"+date[0].year+""+date[0].month+"'>"+ date[0].year + "년" + date[0].month + "월 </li>"); // 현재년도 선택 */ 
 	}
-
 	appendYear($("#searchDt"));
 
 	// 사용내역 조회
@@ -203,7 +194,7 @@
 			tmtbHtml += '</div>';
 			tmtbHtml += '<div class="nodata">';
 			tmtbHtml += '<div class="txt_box">';
-			tmtbHtml += '<p>현재 노출 할 수 있는 이용내역이 없습니다.<br></p>';
+			tmtbHtml += '<p>상품권 사용내역이 없습니다.<br></p>';
 			tmtbHtml += '</div>';
 			tmtbHtml += '</div>';
 
@@ -269,7 +260,7 @@
 		if (giftcardOwnList == null) {
 			tmtbHtml2 += '<div class="nodata">';
 			tmtbHtml2 += '<div class="txt_box">';
-			tmtbHtml2 += '<p>현재 노출 할 수 있는 상품권이 없습니다.<br></p>';
+			tmtbHtml2 += '<p>보유한 상품권이 없습니다.<br></p>';
 			tmtbHtml2 += '</div>';
 			tmtbHtml2 += '</div>';
 		} else {

+ 18 - 39
src/main/webapp/WEB-INF/views/web/mypage/MypagePointForm2Web.html

@@ -66,7 +66,7 @@
 							<div class="form_field">
 								<div class="select_custom month">
 									<div class="combo">
-										<input type="hidden" name="pointDate" value="0"/>
+										<input type="hidden" name="pointDate" value="0" id="pointDate"/>
 										<div class="select"></div>
 										<ul id="searchDt" class="list">
 											
@@ -121,57 +121,36 @@
 	let accumulatePointList = [[${accumulatePointList}]];
 	let usePointList = [[${usePointList}]];
 	let allPointList = [[${allPointList}]];
-
-	// select 날짜 생성
-	var date = new Date();
-	var year = date.getFullYear();
-	var month = date.getMonth() +1;
-
+	let date = [[${date}]];
+	var year = date[0].year;
+	var month = date[0].month;
 	// TODO - 퍼블확정시
-	var oneYearAgo = year -1;
-	var twoYearAgo = year -2;
 	
 	// 이번년도
-	for(var i = 1;i <= 12; i++){
-		if(i < 10 && i != month){
-			$("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ year + "" + 0 + i +"'>"+ year + "년" + " " + i + "월" +"</li>");
-		}
-		else if(i < 10 && i == month){
-			//셀렉트박스 이번 달 표시설정
-			$('.select').append("<li style='pointer-events: none' onclick='fnChangeDate(this);' class='selected' value='"+ year + "" + 0 + i +"'>" + year + "년" + " " + i + "월" +"</li>");
-			$("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ year + "" + 0 + i +"'>" + year + "년" + " " + i + "월" +"</li>");
-		}
-		else if(i > 9 && i != month){
-			$("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ year + "" + i +"'>"+ year + "년" + " " + i + "월" +"</li>");
-		}
-		else if(i > 9 && i == month){
-			$('.select').append("<li onclick='fnChangeDate(this);' class='selected' value='"+ year + ""  + i +"'>" + year + "년" + " " + i + "월" +"</li>");
-			$("#searchDt").append("<li onclick='fnChangeDate(this);' class='selected' value='"+ year + "" + i +"'>"+ year + "년" + " " + i + "월" +"</li>");
+	//동적으로 날짜 년도 append
+	function appendYear() {
+		for (var i = 0; i < date.length; i++) {
+			$("#searchDt").append(	"<li onclick='fnChangeDate(this.value)' value='"+ date[i].year + "" + date[i].month + "'>" + date[i].year	+ "년" + date[i].month + "월 </li>")
 		}
+		$(".select").append("<li class='selected' value='"+date[0].year+""+date[0].month+"'>"+ date[0].year + "년" + date[0].month + "월 </li>"); // 현재년도 선택 */ 
 	}
+	appendYear($("#searchDt"));
 
 	// 날짜변경 이벤트
 	var fnChangeDate = function(param) {
 		let url = '/mypage/allpoint/list';
 		
- 		$(param).parent().parent().find('input[name=pointDate]').val($(param).val());
- 		var pointData = $(param).parent().parent().find('input[name=pointDate]').val();
- 		
- 		if(10 > month){
- 			month = "0" + month;
- 		}
+		
+ 		//$(param).parent().parent().find('input[name=pointDate]').val($(param).val());
+ 		//var pointData = $(param).parent().parent().find('input[name=pointDate]').val();
  		
  		// 포인트화면 로딩시 이번달 설정 리스트 표시하기 위함
- 		if(pointData == null){
- 			pointData = year + "" + month;
+ 		var data = {};
+ 		if(typeof param == 'undefined'){
+ 			data.searchDt = year.toString() + "" + month.toString();
+ 		}else{
+ 			data.searchDt = param;
  		}
- 		
-		let data = {};
-		
-		data.searchDt = pointData;
-		
- 		console.log(data);
-		
 		var jsonData = JSON.stringify(data);
 		
 		gagajf.ajaxJsonSubmit('/mypage/allpoint/list', jsonData, function(result){

+ 6 - 4
src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html

@@ -515,10 +515,12 @@ var reviewUpdate = function() {
 }
 var fnSaveCallback = function (result) {
 	if(result.status == "200"){
-		//포인트 예정금액 고지해야함
-		cfnGoToPage(_PAGE_MYPAGE_REVIEW);
-		
-		//mcxDialog.alert("상품 리뷰를 등록하였습니다.");
+		mcxDialog.confirm("상품리뷰를 등록 하였습니다.리뷰 등록으로 STYLE포인트 XXXP가 적립예정입니다. / 첨부파일이 업로드 된 후 등록이 가능합니다.", {
+			sureBtnText: "확인",
+			sureBtnClick: function() { 
+				cfnGoToPage(_PAGE_MYPAGE_REVIEW);
+			}
+		});
 	}
 }