Przeglądaj źródła

회원상세 개발 중

jsshin 5 lat temu
rodzic
commit
fbee85cc9f

+ 39 - 2
src/main/java/com/style24/core/biz/dao/TscCustomerDao.java

@@ -21,7 +21,7 @@ public interface TscCustomerDao {
 	 *
 	 * @param custContactHst - 고객접촉이력
 	 * @author jsshin
-	 * @since 2020. 01. 20
+	 * @since 2020. 1. 20
 	 */
 	void createCustomerContactHistory(CustContactHst custContactHst);
 
@@ -39,9 +39,46 @@ public interface TscCustomerDao {
 	 * 회원 비밀번호 수정
 	 * @param customer - 고객정보
 	 * @author jsshin
-	 * @since 2020. 01. 20
+	 * @since 2021. 1. 20
 	 */
 	void updateCustomerPassword(Customer customer);
 
+	/**
+	 * 고객정보 조회
+	 *
+	 * @param customer - 고객
+	 * @return TsfCustomer
+	 * @author jsshin
+	 * @since 2021. 1. 26
+	 */
+	Customer getCustomerInfo(Customer customer);
+
+	/**
+	 * 탈퇴 정보 생성
+	 *
+	 * @param customer - 고객정보
+	 * @return int
+	 * @author jsshin
+	 * @since 2021. 1. 26
+	 */
+	int createCustomerSecede(Customer customer);
+
+	/**
+	 * 회원정보 탈퇴처리
+	 *
+	 * @param customer- 고객정보
+	 * @return int
+	 * @author jsshin
+	 * @since 2021. 1. 26
+	 */
+	int updateCustomerSecedeInfo(Customer customer);
 
+	/**
+	 * 회원정보 마케팅수신동의이력
+	 *
+	 * @param customer- 고객정보
+	 * @author jsshin
+	 * @since 2021. 1. 26
+	 */
+	void createCustomerMarketHst(Customer customer);
 }

+ 71 - 0
src/main/java/com/style24/core/biz/service/TscCustomerService.java

@@ -1,5 +1,6 @@
 package com.style24.core.biz.service;
 
+import com.gagaframework.web.parameter.GagaMap;
 import com.style24.core.biz.dao.TscCustomerDao;
 import com.style24.persistence.domain.CustContactHst;
 import com.style24.persistence.domain.Customer;
@@ -49,6 +50,7 @@ public class TscCustomerService {
 
 	/**
 	 * 회원 비밀번호 수정
+	 *
 	 * @param customer - 고객정보
 	 * @author jsshin
 	 * @since 2020. 01. 20
@@ -58,4 +60,73 @@ public class TscCustomerService {
 		customerDao.updateCustomerPassword(customer);
 	}
 
+	/**
+	 * 회원 탈퇴처리
+	 *
+	 * @param customer - 고객정보
+	 * @author jsshin
+	 * @since 2020. 01. 26
+	 */
+	@Transactional("shopTxnManager")
+	public GagaMap saveCustomerSecede(Customer customer) {
+		GagaMap result = new GagaMap();
+
+		// 1. 이미 탈퇴처리 되었는지 확인
+//		Customer customerInfo = customerDao.getCustomerInfo(customer);
+//		if (customerInfo == null) {
+//			result.setBoolean("isSuccess", false);
+//			result.setString("resultMessage", "이미 탈퇴 처리되었습니다.");
+//			return result;
+//		}
+
+		// TODO: 2021.1.26 주문 서비스 붙으면 - jsshin
+		// 2. 진행중인 주문건 있는지 확인
+		boolean progressOrder = false;
+		//boolean progressOrder = orderService.getOrderProgress(custNo);
+
+		if (progressOrder) {
+			result.setBoolean("isSuccess", false);
+			result.setString("resultMessage", "진행중인 거래가 있습니다. 진행중인 거래를 완료 후 탈퇴 신청을 해주세요.");
+			return result;
+		}
+
+		// 3.고객정보 이력 생성
+		customerDao.createCustomerHistory(customer);
+
+		// 4.탈퇴정보생성
+		int custSecedeCnt = customerDao.createCustomerSecede(customer);
+
+		// 5.고객테이블 탈퇴처리
+		customerDao.updateCustomerSecedeInfo(customer);
+
+		// TODO: 2021.1.26 프론트 개발 시에 나머지 작업
+		// 6.위시테이블 삭제
+
+		// TODO: 2021.1.26 프론트 개발 시에 나머지 작업
+		// 7. 장바구니테이블 삭제
+
+		if (custSecedeCnt > 0) {
+			result.setBoolean("isSuccess", true);
+			result.setString("resultMessage", "정상적으로 탈퇴되었습니다.");
+		} else {
+			result.setBoolean("isSuccess", false);
+			result.setString("resultMessage", "탈퇴가 정상적으로 처리되지 않았습니다. 다시 시도해 주세요.");
+		}
+
+		return result;
+	}
+
+	/**
+	 * 회원정보 마케팅수신동의이력
+	 *
+	 * @param customer - 고객정보
+	 * @author jsshin
+	 * @since 2020. 01. 26
+	 */
+	@Transactional("shopTxnManager")
+	public void createCustomerMarketHst(Customer customer) {
+		customerDao.createCustomerMarketHst(customer);
+	}
+
+
 }

+ 72 - 0
src/main/java/com/style24/core/support/env/TscConstants.java

@@ -59,6 +59,7 @@ public class TscConstants {
 		}
 	}
 
+	// 접촉유형
 	public enum ContactType {
 		PROMOTION("G054_100"),					// 회원-프로모션
 		CONGRATULATIONS("G054_201"),				// 회원-회원가입축하
@@ -526,4 +527,75 @@ public class TscConstants {
 		}
 	}
 
+	// 성별
+	public enum Gender {
+		FEMALE("G007_F"),	// 여성
+		MALE("G007_M"),		// 남성
+		COMMON ("G007_Z");	// 공통
+
+		private String value;
+
+		Gender (String value) {
+			this.value = value;
+		}
+
+		public String value() {
+			return value;
+		}
+
+	}
+	// 고객상태값
+	public enum CustStat {
+		ACTIVE("G104_10"),
+		DORMANT("G104_20"),
+		SECEDE("G104_30");
+
+		private String value;
+
+		CustStat(String value) {
+			this.value = value;
+		}
+
+		public String value() {
+			return value;
+		}
+	}
+
+	// 고객구분
+	public enum CustGb {
+		ALL("G100_00"),
+		NORMAL("G100_10"),
+		EMPLOYEE("G100_20"),
+		NOMEMBER("G100_99");
+
+		private String value;
+
+		CustGb(String value) {
+			this.value = value;
+		}
+
+		public String value() {
+			return value;
+		}
+	}
+
+	// 고객등급코드값
+	public enum CustGrade {
+		VIP("G110_10"),
+		GOLD("G110_20"),
+		SILVER("G110_30"),
+		BRONZE("G110_40"),
+		WELCOME("G110_50");
+
+		private String value;
+
+		CustGrade(String value) {
+			this.value = value;
+		}
+
+		public String value() {
+			return value;
+		}
+	}
+
 }

+ 165 - 2
src/main/java/com/style24/persistence/mybatis/shop/TscCustomer.xml

@@ -136,15 +136,178 @@
 		WHERE  CUST_NO = #{custNo}
 	</insert>
 
-	<!-- 회원 비밀번호 수정 -->
+	<!-- 회원 비밀번호 수정(임시비밀번호)-->
 	<update id="updateCustomerPassword" parameterType="Customer">
 		/* TscCustomer.updateCustomerPassword */
 		UPDATE TB_CUSTOMER
 		SET    PASSWD = #{encodedPasswd}
 		     , PASSWD_CHG_DT = NOW()
+		<if test="tempPasswdYn == 'Y'">
+		     , TEMP_PASSWD_YN = #{tempPasswdYn}
+		</if>
 		     , UPD_NO = #{updNo}
 		     , UPD_DT = NOW()
-		WHERE CUST_NO = #{custNo}
+		WHERE  CUST_NO = #{custNo}
 	</update>
 
+	<!--탈퇴회원 정보 생성-->
+	<insert id="createCustomerSecede" parameterType="Customer">
+		/* TscCustomer.createCustomerSecede */
+		INSERT INTO TB_SECEDE_CUST (
+		       CUST_NO
+		     , CUST_ID
+		     , CUST_NM
+		     , PASSWD
+		     , BIRTH_YMD
+		     , BIRTH_SM
+		     , SEX_GB
+		     , CELL_PHNNO
+		     , APP_AGREE_YN
+		     , APP_AGREE_DT
+		     , SMS_AGREE_YN
+		     , SMS_AGREE_DT
+		     , EMAIL
+		     , EMAIL_AGREE_YN
+		     , EMAIL_AGREE_DT
+		     , HOME_ZIPCODE
+		     , HOME_BASE_ADDR
+		     , HOME_DTL_ADDR
+		     , SITE_CD
+		     , FRONT_GB
+		     , AF_LINK_CD
+		     , CUST_GB
+		     , CUST_GRADE
+		     , JOIN_DT
+		     , FOREIGNER_YN
+		     , CUST_STAT
+		     , PASSWD_CHG_DT
+		     , TEMP_PASSWD_YN
+		     , LOGIN_LDT
+		     , NV_JOIN_ID
+		     , NV_ACCESS_TOKEN
+		     , NV_JOIN_DT
+		     , KK_JOIN_ID
+		     , KK_ACCESS_TOKEN
+		     , KK_JOIN_DT
+		     , YS_JOIN_ID
+		     , YS_ACCESS_TOKEN
+		     , YS_JOIN_DT
+		     , CI
+		     , AUTH_DT
+		     , MANAGED_RSN
+		     , MANAGED_DTL_RSN
+		     , MANAGED_DT
+		     , SECEDE_RSN
+		     , SECEDE_DTL_RSN
+		     , SECEDE_DT
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		)
+		SELECT CUST_NO
+		     , CUST_ID
+		     , CUST_NM
+		     , PASSWD
+		     , BIRTH_YMD
+		     , BIRTH_SM
+		     , SEX_GB
+		     , CELL_PHNNO
+		     , APP_AGREE_YN
+		     , APP_AGREE_DT
+		     , SMS_AGREE_YN
+		     , SMS_AGREE_DT
+		     , EMAIL
+		     , EMAIL_AGREE_YN
+		     , EMAIL_AGREE_DT
+		     , HOME_ZIPCODE
+		     , HOME_BASE_ADDR
+		     , HOME_DTL_ADDR
+		     , SITE_CD
+		     , FRONT_GB
+		     , AF_LINK_CD
+		     , CUST_GB
+		     , CUST_GRADE
+		     , JOIN_DT
+		     , FOREIGNER_YN
+		     , #{custStat}         AS CUST_STAT -- G104_30
+		     , PASSWD_CHG_DT
+		     , TEMP_PASSWD_YN
+		     , LOGIN_LDT
+		     , NV_JOIN_ID
+		     , NV_ACCESS_TOKEN
+		     , NV_JOIN_DT
+		     , KK_JOIN_ID
+		     , KK_ACCESS_TOKEN
+		     , KK_JOIN_DT
+		     , YS_JOIN_ID
+		     , YS_ACCESS_TOKEN
+		     , YS_JOIN_DT
+		     , CI
+		     , AUTH_DT
+		     , MANAGED_RSN
+		     , MANAGED_DTL_RSN
+		     , MANAGED_DT
+		     , #{secedeRsn}        AS SECEDE_RSN
+		     , #{secedeDtlRsn}     AS SECEDE_DTL_RSN
+		     , NOW()               AS SECEDE_DT
+		     , #{regNo}            AS REG_NO
+		     , NOW()               AS REG_DT
+		     , #{updNo}            AS UPD_NO
+		     , NOW()               AS UPD_DT
+		FROM   TB_CUSTOMER
+		WHERE  CUST_NO = #{custNo}
+	</insert>
+
+	<!-- 회원 탈퇴 개인정보 공백 처리 -->
+	<update id="updateCustomerSecedeInfo" parameterType="Customer">
+		/* TscCustomer.updateCustomerSecedeInfo */
+		UPDATE TB_CUSTOMER
+		SET    CUST_ID = 'secede_cust'
+		     , CUST_STAT = #{custStat}
+		     , SECEDE_RSN = #{secedeRsn}
+		     , SECEDE_DTL_RSN = #{secedeDtlRsn}
+		     , SECEDE_DT = NOW()
+		     , BIRTH_YMD = NULL
+		     , BIRTH_SM = NULL
+		     , SEX_GB = NULL
+		     , CELL_PHNNO = NULL
+		     , EMAIL = NULL
+		     , HOME_ZIPCODE = NULL
+		     , HOME_BASE_ADDR = NULL
+		     , HOME_DTL_ADDR = NULL
+		     , NV_JOIN_ID = NULL
+		     , NV_ACCESS_TOKEN = NULL
+		     , NV_JOIN_DT = NULL
+		     , KK_JOIN_ID = NULL
+		     , KK_ACCESS_TOKEN = NULL
+		     , KK_JOIN_DT = NULL
+		     , YS_JOIN_ID = NULL
+		     , YS_ACCESS_TOKEN = NULL
+		     , YS_JOIN_DT = NULL
+		WHERE  CUST_NO = #{custNo}
+	</update>
+
+	<!--회원 마케팅수신동의 이력-->
+	<insert id="createCustomerMarketHst" parameterType="Customer">
+		/* TscCustomer.createCustomerMarketHst */
+		INSERT INTO TB_CUST_MARKET_HST (
+		       CUST_NO
+		     , APP_AGREE_YN
+		     , SMS_AGREE_YN
+		     , EMAIL_AGREE_YN
+		     , REG_NO
+		     , REG_DT
+		)
+		SELECT CUST_NO
+		     , IFNULL(#{appAgreeYn}, APP_AGREE_YN)     AS APP_AGREE_YN
+		     , IFNULL(#{smsAgreeYn}, SMS_AGREE_YN)     AS SMS_AGREE_YN
+		     , IFNULL(#{emailAgreeYn}, EMAIL_AGREE_YN) AS EMAIL_AGREE_YN
+		     , #{regNo}                                AS REG_NO
+		     , NOW()                                   AS REG_DT
+		FROM   TB_CUSTOMER
+		WHERE  CUST_NO = #{custNo}
+	</insert>
+
+
 </mapper>