Jelajahi Sumber

Merge remote-tracking branch 'origin/order' into jsh77b

jsh77b 5 tahun lalu
induk
melakukan
e8afea9cac

+ 13 - 4
src/main/java/com/style24/core/biz/dao/TscPointDao.java

@@ -34,12 +34,21 @@ public interface TscPointDao {
 	int createCustomerPointHst(Point point);
 
 	/**
-	 * 구매확정 포인트 조회
-	 * @param Integer
+	 * 구매확정 포인트 생성
+	 * @param Point
 	 * @return int
 	 * @author card007
-	 * @since 2021. 02. 17
+	 * @since 2021. 02. 23
 	 */
-	int getOrderDecisionPoint(Integer ordDtlNo);
+	int createOrderDecisionPoint(Point point);
+
+	/**
+	 * 구매확정 포인트 이력 수정
+	 * @param Point
+	 * @return int
+	 * @author card007
+	 * @since 2021. 02. 23
+	 */
+	int updateOrderDecisionPointHst(Point point);
 
 }

+ 300 - 12
src/main/java/com/style24/core/biz/service/TscEnvsetService.java

@@ -56,6 +56,66 @@ public class TscEnvsetService {
 		return envset;
 	}
 
+	/**
+	 * 탈퇴 후 재가입불가일수 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getRejoinRejectDays(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "C10");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal1());
+	}
+
+	/**
+	 * 휴면회원선정일수 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getDormantMemberSelectDays(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "C10");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal2());
+	}
+
+	/**
+	 * 휴면회원전환일수 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getDormantMemberConvertDays(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "C10");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal3());
+	}
+
+	/**
+	 * 구매포인트소멸기한(일) 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 25
+	 */
+	public int getBuyPointExpireDays(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "C12");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal1());
+	}
+
+	/**
+	 * 상품평포인트소멸기한(일) 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 25
+	 */
+	public int getGoodsReviewPointExpireDays(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "C12");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal2());
+	}
+
 	/**
 	 * 자사상품정상PC포인트율 가져오기
 	 * @param siteCd - 사이트코드
@@ -152,6 +212,30 @@ public class TscEnvsetService {
 		return (envset == null) ? 0.0f : Float.parseFloat(envset.getStrSetVal8());
 	}
 
+	/**
+	 * 상품평등록가능일수 가져오기 (구매일로부터)
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getGoodsReviewRegisterDays(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "C16");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal1());
+	}
+
+	/**
+	 * 텍스트/포토상품평 포인트지급방법 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return 포인트지급방법 (A:승인후지급, D:즉시지급)
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public String getGoodsReviewPointGiveType(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "C16");
+		return (envset == null) ? "A" : envset.getStrSetVal2();
+	}
+
 	/**
 	 * 텍스트상품평포인트 가져오기
 	 * @param siteCd - 사이트코드
@@ -176,40 +260,244 @@ public class TscEnvsetService {
 		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal4());
 	}
 
+//	/**
+//	 * 최초텍스트상품평포인트 가져오기
+//	 * @param siteCd - 사이트코드
+//	 * @return
+//	 * @author gagamel
+//	 * @since 2020. 10. 21
+//	 */
+//	public int getFirstTextReviewPoint(String siteCd) {
+//		Envset envset = this.getEnvset(siteCd, "C16");
+//		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal5());
+//	}
+//
+//	/**
+//	 * 최초포토상품평포인트 가져오기
+//	 * @param siteCd - 사이트코드
+//	 * @return
+//	 * @author gagamel
+//	 * @since 2020. 10. 21
+//	 */
+//	public int getFirstPhotoReviewPoint(String siteCd) {
+//		Envset envset = this.getEnvset(siteCd, "C16");
+//		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal6());
+//	}
+
 	/**
-	 * 최초텍스트상품평포인트 가져오기
+	 * 스트상품평포인트 가져오기
 	 * @param siteCd - 사이트코드
 	 * @return
 	 * @author gagamel
 	 * @since 2020. 10. 21
 	 */
-	public int getFirstTextReviewPoint(String siteCd) {
+	public int getBestReviewPoint(String siteCd) {
 		Envset envset = this.getEnvset(siteCd, "C16");
 		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal5());
 	}
 
 	/**
-	 * 최초포토상품평포인트 가져오기
+	 * 포인트사용기준금액(원) 가져오기 (결제액 기준)
 	 * @param siteCd - 사이트코드
 	 * @return
 	 * @author gagamel
-	 * @since 2020. 10. 21
+	 * @since 2021. 2. 25
 	 */
-	public int getFirstPhotoReviewPoint(String siteCd) {
-		Envset envset = this.getEnvset(siteCd, "C16");
-		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal6());
+	public int getPointUseBaseAmt(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "C17");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal1());
 	}
 
 	/**
-	 * 베스트상품평포인트 가져오기
+	 * 최대사용가능포인트율(%) 가져오기 (결제액 기준)
 	 * @param siteCd - 사이트코드
 	 * @return
 	 * @author gagamel
-	 * @since 2020. 10. 21
+	 * @since 2021. 2. 25
 	 */
-	public int getBestReviewPoint(String siteCd) {
-		Envset envset = this.getEnvset(siteCd, "C16");
-		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal7());
+	public float getMaxUsablePoint(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "C17");
+		return (envset == null) ? 0.0f : Float.parseFloat(envset.getStrSetVal2());
+	}
+
+	/**
+	 * 상품평노출여부 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public String getGoodsReviewDisplayYn(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "G10");
+		return (envset == null) ? "N" : envset.getStrSetVal1();
+	}
+
+	/**
+	 * 품절상품노출여부 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public String getSoldoutGoodsDisplayYn(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "G10");
+		return (envset == null) ? "N" : envset.getStrSetVal2();
+	}
+
+	/**
+	 * 베스트상품노출개수 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getBestGoodsDisplayCount(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "G10");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal3());
+	}
+
+	/**
+	 * 장바구니보관일수 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getCartStoreDays(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "G11");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal1());
+	}
+
+	/**
+	 * 장바구니담기최대상품수 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getCartPutMaxGoodsCount(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "G11");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal2());
+	}
+
+	/**
+	 * 위시리스트보관일수 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getWishlistStoreDays(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "G11");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal3());
+	}
+
+	/**
+	 * 결제단위 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getPayUnit(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "O10");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal1());
+	}
+
+	/**
+	 * 최소결제금액 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getMinPayAmt(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "O10");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal2());
+	}
+
+	/**
+	 * 총알배송주문가능시간 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getShotDeliveryOrderableTimes(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "O10");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal4());
+	}
+
+	/**
+	 * 품절안내방법 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return 품절안내방법(A:자동, M:수동)
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public String getSoldoutGuideMethod(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "O11");
+		return (envset == null) ? "M" : envset.getStrSetVal1();
+	}
+
+	/**
+	 * 자동 품절안내메시지발송일수 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getAutoSoldoutGuideMessageSendDays(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "O11");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal2());
+	}
+
+	/**
+	 * 자동 품절메시지발송일수 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getAutoSoldoutMessageSendDays(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "O11");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal3());
+	}
+
+	/**
+	 * 자동 배송완료처리일수 가져오기 (배송중 상태 기준)
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getAutoDeliveryCompleteDays(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "D10");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal1());
+	}
+
+	/**
+	 * 자동 구매확정처리일수 가져오기 (배송완료일 기준)
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getAutoBuyConfirmDays(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "D10");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal2());
+	}
+
+	/**
+	 * 반품가능기간일수 가져오기 (배송완료일 기준)
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 24
+	 */
+	public int getReturnableDays(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "D10");
+		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal3());
 	}
 
 }

+ 1 - 25
src/main/java/com/style24/core/biz/service/TscOrderService.java

@@ -1131,25 +1131,15 @@ public class TscOrderService {
 		try {
 			for (Integer ordDtlNo : order.getOrdDtlNoArr()) {
 				// 구매확정 포인트 적립
-				int savePntAmt = pointService.getOrderDecisionPoint(ordDtlNo);
-
 				Point point = new Point();
 				point.setCustNo(custNo);
-				point.setGvPntAmt(savePntAmt);
-				point.setUsPntAmt(0);
-				point.setRmPntAmt(savePntAmt);
-				point.setExpBeDt(getExpBeDt());
-				point.setOccurGb(TscConstants.PointOccurGb.EXPECT_POINT.value());
-				point.setOccurDtlDesc("구매확정");
-				point.setPntAmt(savePntAmt);
 				point.setOrdNo(ordNo);
 				point.setOrdDtlNo(ordDtlNo);
 				point.setReviewSq(reviewSq);
-				point.setPntUploadStat(TscConstants.PntUploadStat.APPLY_COMPLETE.value());
 				point.setRegNo(regNo);
 				point.setUpdNo(updNo);
 
-				pointService.saveCustomerPoint(point);
+				pointService.createOrderDecisionPoint(point);
 
 				// 주문상세 상태값 변경
 				order.setOrdDtlStat(TscConstants.OrderDetailStat.PURCHASE_CONFIRM.value());
@@ -1167,20 +1157,6 @@ public class TscOrderService {
 		return result;
 	}
 
-	/**
-	 * 구매확정 만료예정일 계산
-	 *
-	 * @result String
-	 * @author card007
-	 * @since 2021. 02. 17
-	 */
-	private String getExpBeDt() {
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
-		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.YEAR, 1);
-		return sdf.format(cal.getTime()) + "235959";
-	}
-
 	/**
 	 * 장바구니 쿠폰 적용 상품 리스트 조회
 	 * @param Order

+ 5 - 5
src/main/java/com/style24/core/biz/service/TscPointService.java

@@ -35,16 +35,16 @@ public class TscPointService {
 	}
 
 	/**
-	 * 구매확정 포인트 조회
+	 * 구매확정 포인트 생성
 	 * @param Integer
 	 * @return int
 	 * @author card007
 	 * @since 2021. 02. 17
 	 */
-	public int getOrderDecisionPoint(Integer ordDtlNo) {
-		return pointDao.getOrderDecisionPoint(ordDtlNo);
+	public int createOrderDecisionPoint(Point point) {
+		int result = pointDao.createOrderDecisionPoint(point);
+		result += pointDao.updateOrderDecisionPointHst(point);
+		return result;
 	}
 
-
-
 }

+ 39 - 1
src/main/java/com/style24/core/support/env/TscConstants.java

@@ -735,6 +735,7 @@ public class TscConstants {
 		}
 
 	}
+
 	// 고객상태값
 	public enum CustStat {
 		ACTIVE("G104_10"),
@@ -811,8 +812,45 @@ public class TscConstants {
 
 		FrontGb(String value) {this.value = value;}
 
-		public String vale() {return value;}
+		public String value() {return value;}
+	}
+
+	// SNS TYPE
+	public enum SnsType {
+		KAKAO("KK"),
+		NAVER("NV"),
+		YES24("YS");
+
+		private String value;
+
+		SnsType(String value) {
+			this.value = value;
+		}
+		public String value() {return value;}
 	}
 
+	// 쿠폰 발행 사유
+	public enum PubReason {
+		JOIN("G068_10"),
+		BIRTHDAY("G068_11"),
+		WEDDING("G068_12"),
+		CHANGE_CUSTOMER_GRADE("G068_13"),
+		DELAY_CANCEL_INFOMATION("G068_20"),
+		DELAY_DELIVERY("G068_21"),
+		MISDELIVERY("G068_22"),
+		RETURN("G068_23"),
+		DOWNLOAD("G068_30"),
+		CUSTOMER_CLAIM("G068_40"),
+		ADMIN("G068_50"),
+		RANDOM("G068_60"),
+		PROMOTION("G068_90"),
+		ETC("G068_99");
+
+		private String value;
+
+		PubReason(String value) {this.value = value;}
+
+		public String value() {return value;}
+	}
 
 }

+ 1 - 1
src/main/java/com/style24/persistence/mybatis/shop/TscCoupon.xml

@@ -862,7 +862,7 @@
                  , DATE_FORMAT(#{availStdt} , '%Y%m%d%H%i%S')
                  , DATE_FORMAT(#{availEddt} , '%Y%m%d%H%i%S')
                  , #{pubReason}
-                 , #{pubReasonDtl}
+                 , IFNULL(#{pubReasonDtl}, FN_GET_CODE_NM('G068', #{pubReason}))
                  , #{endAlimSendYn}
                  , #{regNo}
                  , CURRENT_TIMESTAMP()

+ 69 - 51
src/main/java/com/style24/persistence/mybatis/shop/TscCustomer.xml

@@ -5,70 +5,88 @@
 	<!-- 회원기본정보 -->
 	<select id="getCustomerInfo" parameterType="Customer" resultType="Customer">
 		/* TscCustomer.getCustomerInfo */
-		SELECT CUST_NO
-		     , CUST_ID
-		     , CUST_NM
-		     , PASSWD
-		     , BIRTH_YMD
-		     , BIRTH_SM
-		     , SEX_GB
-		     , CELL_PHNNO
-		     , APP_AGREE_YN
-		     , DATE_FORMAT(APP_AGREE_DT, '%Y%m%d%H%i%S') AS APP_AGREE_DT
-		     , SMS_AGREE_YN
-		     , DATE_FORMAT(SMS_AGREE_DT, '%Y%m%d%H%i%S') AS SMS_AGREE_DT
-		     , EMAIL
-		     , EMAIL_AGREE_YN
-		     , DATE_FORMAT(EMAIL_AGREE_DT, '%Y%m%d%H%i%S') AS EMAIL_AGREE_DT
-		     , HOME_ZIPCODE
-		     , HOME_BASE_ADDR
-		     , HOME_DTL_ADDR
-		     , SITE_CD
-		     , FRONT_GB
-		     , AF_LINK_CD
-		     , CUST_GB
-		     , CUST_GRADE
-		     , FN_GET_CODE_NM('G110', CUST_GRADE) AS CUST_GRADE_NM
-		     , DATE_FORMAT(JOIN_DT, '%Y%m%d%H%i%S') AS JOIN_DT
-		     , FOREIGNER_YN
-		     , CUST_STAT
-		     , DATE_FORMAT(PASSWD_CHG_DT, '%Y%m%d%H%i%S') AS PASSWD_CHG_DT
-		     , TEMP_PASSWD_YN
-		     , DATE_FORMAT(LOGIN_LDT, '%Y%m%d%H%i%S') AS LOGIN_LDT
-		     , CI
-		     , DATE_FORMAT(AUTH_DT, '%Y%m%d%H%i%S') AS AUTH_DT
-		     , MANAGED_RSN
-		     , MANAGED_DTL_RSN
-		     , DATE_FORMAT(MANAGED_DT, '%Y%m%d%H%i%S') AS MANAGED_DT
-		     , SECEDE_RSN
-		     , SECEDE_DTL_RSN
-		     , DATE_FORMAT(SECEDE_DT, '%Y%m%d%H%i%S') AS SECEDE_DT
-		     , FN_GET_USER_NM(REG_NO)                 AS REG_NM
-		     , DATE_FORMAT(REG_DT, '%Y%m%d%H%i%S')    AS REG_DT
-		     , FN_GET_USER_NM(UPD_NO)                 AS UPD_NM
-		     , DATE_FORMAT(UPD_DT, '%Y%m%d%H%i%S')    AS UPD_DT
-		FROM   TB_CUSTOMER
-		WHERE  SITE_CD = #{siteCd}
+		SELECT C.CUST_NO
+		     , C.CUST_ID
+		     , C.CUST_NM
+		     , C.PASSWD
+		     , C.BIRTH_YMD
+		     , C.BIRTH_SM
+		     , C.SEX_GB
+		     , C.CELL_PHNNO
+		     , C.APP_AGREE_YN
+		     , DATE_FORMAT(C.APP_AGREE_DT, '%Y%m%d%H%i%S') AS APP_AGREE_DT
+		     , C.SMS_AGREE_YN
+		     , DATE_FORMAT(C.SMS_AGREE_DT, '%Y%m%d%H%i%S') AS SMS_AGREE_DT
+		     , C.EMAIL
+		     , C.EMAIL_AGREE_YN
+		     , DATE_FORMAT(C.EMAIL_AGREE_DT, '%Y%m%d%H%i%S') AS EMAIL_AGREE_DT
+		     , C.HOME_ZIPCODE
+		     , C.HOME_BASE_ADDR
+		     , C.HOME_DTL_ADDR
+		     , C.SITE_CD
+		     , C.FRONT_GB
+		     , C.AF_LINK_CD
+		     , C.CUST_GB
+		     , C.CUST_GRADE
+		     , FN_GET_CODE_NM('G110', C.CUST_GRADE) AS CUST_GRADE_NM
+		     , DATE_FORMAT(C.JOIN_DT, '%Y%m%d%H%i%S') AS JOIN_DT
+		     , C.FOREIGNER_YN
+		     , C.CUST_STAT
+		     , DATE_FORMAT(C.PASSWD_CHG_DT, '%Y%m%d%H%i%S') AS PASSWD_CHG_DT
+		     , C.TEMP_PASSWD_YN
+		     , DATE_FORMAT(C.LOGIN_LDT, '%Y%m%d%H%i%S') AS LOGIN_LDT
+		     , C.CI
+		     , DATE_FORMAT(C.AUTH_DT, '%Y%m%d%H%i%S') AS AUTH_DT
+		     , C.MANAGED_RSN
+		     , C.MANAGED_DTL_RSN
+		     , DATE_FORMAT(C.MANAGED_DT, '%Y%m%d%H%i%S') AS MANAGED_DT
+		     , C.SECEDE_RSN
+		     , C.SECEDE_DTL_RSN
+		     , DATE_FORMAT(C.SECEDE_DT, '%Y%m%d%H%i%S')   AS SECEDE_DT
+		     , IFNULL(FN_GET_USER_NM(C.REG_NO), C.REG_NO) AS REG_NM
+		     , DATE_FORMAT(C.REG_DT, '%Y%m%d%H%i%S')      AS REG_DT
+		     , IFNULL(FN_GET_USER_NM(C.UPD_NO), C.UPD_NO) AS UPD_NM
+		     , DATE_FORMAT(C.UPD_DT, '%Y%m%d%H%i%S')      AS UPD_DT
+		     , (
+		        SELECT DATE_FORMAT(REG_DT, '%Y%m%d%H%i%S')
+		        FROM   TB_CUSTOMER_SNS
+		        WHERE  CUST_NO = C.CUST_NO
+		        AND    SNS_TYPE = 'NV'
+		        )                                    AS NV_JOIN_DT
+		     , (
+		        SELECT DATE_FORMAT(REG_DT, '%Y%m%d%H%i%S')
+		        FROM   TB_CUSTOMER_SNS
+		        WHERE  CUST_NO = C.CUST_NO
+		        AND    SNS_TYPE = 'KK'
+		       )                                    AS KK_JOIN_DT
+		     , (
+		        SELECT DATE_FORMAT(REG_DT, '%Y%m%d%H%i%S')
+		        FROM   TB_CUSTOMER_SNS
+		        WHERE  CUST_NO = C.CUST_NO
+		        AND    SNS_TYPE = 'YS'
+		       )                                    AS YS_JOIN_DT
+		FROM   TB_CUSTOMER C
+		WHERE  C.SITE_CD = #{siteCd}
 		<if test="custNo != null and custNo != ''">
-		AND    CUST_NO = #{custNo}
+		AND    C.CUST_NO = #{custNo}
 		</if>
 		<if test="custStat != null and custStat != ''">
-		AND    CUST_STAT = #{custStat}
+		AND    C.CUST_STAT = #{custStat}
 		</if>
 		<if test="encodedEmail != null and encodedEmail != ''">
-		AND    EMAIL = #{encodedEmail}
+		AND    C.EMAIL = #{encodedEmail}
 		</if>
 		<if test="custId != null and custId !=''">
-		AND    CUST_ID = #{custId}
+		AND    C.CUST_ID = #{custId}
 		</if>
 		<if test="encodedCustNm != null and encodedCustNm != ''">
-		AND    CUST_NM = #{encodedCustNm}
+		AND    C.CUST_NM = #{encodedCustNm}
 		</if>
 		<if test="encodedBirthYmd != null and encodedBirthYmd != ''">
-		AND    BIRTH_YMD = #{encodedBirthYmd}
+		AND    C.BIRTH_YMD = #{encodedBirthYmd}
 		</if>
 		<if test="ci != null and ci != ''">
-		AND    CI = #{ci}
+		AND    C.CI = #{ci}
 		</if>
 	</select>
 

+ 52 - 6
src/main/java/com/style24/persistence/mybatis/shop/TscPoint.xml

@@ -80,12 +80,58 @@
 		)
 	</insert>
 
-	<!-- 구매확정 포인트 조회 -->
-	<select id="getOrderDecisionPoint" parameterType="Integer" resultType="int">
+	<!-- 구매확정 포인트 생성 -->
+	<insert id="createOrderDecisionPoint" parameterType="Point" keyProperty="custPntSq">
 		/* TscOrder.createOrderDecisionPoint */
-		SELECT SAVE_PNT_AMT
-		  FROM TB_ORDER_DETAIL
-		 WHERE ORD_DTL_NO = #{ordDtlNo}
-	</select>
+		INSERT INTO TB_CUST_POINT (
+			CUST_NO
+		  , GV_PNT_AMT
+		  , US_PNT_AMT
+		  , RM_PNT_AMT
+		  , EXP_BE_DT
+		  , EXP_CMP_DT
+		  , REG_NO
+		  , REG_DT
+		  , UPD_NO
+		  , UPD_DT
+		)
+		SELECT CUST_NO
+			 , SUM(PNT_AMT) AS GV_POINT_AMT
+			 , 0            AS US_PNT_AMT
+			 , SUM(PNT_AMT) AS RM_POINT_AMT
+			 , CONCAT(CURRENT_DATE + INTERVAL 2 YEAR, ' 23:59:59') AS EXP_BE_DT
+			 , NULL         AS EXP_CMP_DT
+			 , #{regNo}     AS REG_NO
+			 , NOW()        AS REG_DT
+			 , #{updNo}     AS UPD_NO
+			 , NOW()        AS UPD_DT
+		  FROM TB_CUST_POINT_HST
+		 WHERE CUST_NO = #{custNo}
+		   AND ORD_NO = #{ordNo}
+		   AND ORD_DTL_NO = #{ordDtlNo}
+		   AND OCCUR_GB = 'G069_12'              -- 예정포인트적립
+		   AND PNT_UPLOAD_STAT = 'G070_10'       -- 반영예정
+		 GROUP BY CUST_NO
+	</insert>
+	
+	<!-- 구매확정 포인트 이력 수정 -->
+	<update id="updateOrderDecisionPointHst" parameterType="Point">
+		/* TscOrder.updateOrderDecisionPoint */
+		UPDATE TB_CUST_POINT_HST
+		   SET CUST_PNT_SQ = #{custPntSq}
+		<if test="reviewSq != null and reviewSq != ''">
+			 , REVIEW_SQ = #{reviewSq}
+		</if>
+			 , SWITCH_DUE_DT = NOW()
+			 , PNT_UPLOAD_STAT = 'G070_30'
+			 , PNT_UPLOAD_DT = NOW()
+			 , UPD_NO = #{updNo}
+			 , UPD_DT = NOW()
+		 WHERE CUST_NO = #{custNo}
+		   AND ORD_NO = #{ordNo}
+		   AND ORD_DTL_NO = #{ordDtlNo}
+		   AND OCCUR_GB = 'G069_12'
+		   AND PNT_UPLOAD_STAT = 'G070_10'
+	</update>
 
 </mapper>