itn 2023-07-04
회원 등급, 히스토리 VO 추가
@589e436e13dc432095d23671453a766b11df6b44
src/main/java/itn/let/sym/grd/service/MberGrdService.java
--- src/main/java/itn/let/sym/grd/service/MberGrdService.java
+++ src/main/java/itn/let/sym/grd/service/MberGrdService.java
@@ -4,8 +4,24 @@
 
 public interface MberGrdService {
 	
-	List<MberGrdVO> selectMberGrdSettingList(MberGrdVO mberGrdVO) throws Exception ;
+	List<MberGrdVO> selectMberGrdSettingList(MberGrdVO mberGrdVO) throws Exception;
 
 	// 등급제 설정 일괄변경
 	public int updateGrdSettingList(MberGrdVO mberGrdVO) throws Exception;
+	
+	// 회원별 등급 상세
+	public MberGrdVO selectMberGrdDetail(MberGrdVO mberGrdVO) throws Exception;
+
+	// 회원별 등급 등록
+	public void insertMberGrd(MberGrdVO mberGrdVO)  throws Exception;
+	
+	// 회원별 등급 수정
+	public void updateMberGrd(MberGrdVO mberGrdVO)  throws Exception;		
+	
+	// 회원별 등급 진행여부
+	int selectMberGrdPrgCnt(String userId) throws Exception;
+	
+	
+	// 회원별 등급 히스토리 등록
+	public void insertMberGrdHist(MberGrdVO mberGrdVO)  throws Exception ;	
 }
src/main/java/itn/let/sym/grd/service/MberGrdVO.java
--- src/main/java/itn/let/sym/grd/service/MberGrdVO.java
+++ src/main/java/itn/let/sym/grd/service/MberGrdVO.java
@@ -5,9 +5,10 @@
 public class MberGrdVO {
 
 	private int grdSetNo;				// 등급설정번호
-	private String grdSetNm;				// 등급설정명	
+	private String grdSetNm;				// 등급설정명
+	private long stdAmt;					// 기준결제액
+	private String stdAmtComma;				// 기준결제액(콤마)
 	private long totAmt;					// 누적결제액
-	private String totAmtComma;				// 누적결제액(콤마)
 	private float shortPrice; 				// 단문 단가
 	private float longPrice; 				//장문 단가
 	private float picturePrice; 			// 그림 단가
@@ -19,12 +20,20 @@
 	private String editDate;				// 수정등록 일자
 	
 	private List<String> grdSetNos;
-	private List<String> totAmts;
+	private List<String> stdAmts;
 	private List<String> shortPrices;
 	private List<String> longPrices;
 	private List<String> picturePrices;
 	private List<String> picture2Prices;
 	private List<String> picture3Prices;
+
+	private String mberId;
+	private String amt;
+	private String grdStartDate;
+	private String grd_endDate;
+	private String grdStatus;
+	private int mberGrdHistNo;
+
 
 	public int getGrdSetNo() {
 		return grdSetNo;
@@ -38,18 +47,24 @@
 	public void setGrdSetNm(String grdSetNm) {
 		this.grdSetNm = grdSetNm;
 	}
+	public long getStdAmt() {
+		return stdAmt;
+	}
+	public void setStdAmt(long stdAmt) {
+		this.stdAmt = stdAmt;
+	}
+	public String getStdAmtComma() {
+		return stdAmtComma;
+	}
+	public void setStdAmtComma(String totAmtComma) {
+		this.stdAmtComma = totAmtComma;
+	}	
 	public long getTotAmt() {
 		return totAmt;
 	}
 	public void setTotAmt(long totAmt) {
 		this.totAmt = totAmt;
 	}
-	public String getTotAmtComma() {
-		return totAmtComma;
-	}
-	public void setTotAmtComma(String totAmtComma) {
-		this.totAmtComma = totAmtComma;
-	}	
 	public float getShortPrice() {
 		return shortPrice;
 	}
@@ -111,11 +126,11 @@
 	public void setGrdSetNos(List<String> grdSetNos) {
 		this.grdSetNos = grdSetNos;
 	}
-	public List<String> getTotAmts() {
-		return totAmts;
+	public List<String> getStdAmts() {
+		return stdAmts;
 	}
-	public void setTotAmts(List<String> totAmts) {
-		this.totAmts = totAmts;
+	public void setStdAmts(List<String> totAmts) {
+		this.stdAmts = totAmts;
 	}
 	public List<String> getShortPrices() {
 		return shortPrices;
@@ -148,4 +163,40 @@
 		this.picture3Prices = picture3Prices;
 	}
 	
+	public String getMberId() {
+		return mberId;
+	}
+	public void setMberId(String mberId) {
+		this.mberId = mberId;
+	}
+	public String getAmt() {
+		return amt;
+	}
+	public void setAmt(String amt) {
+		this.amt = amt;
+	}
+	public String getGrdStartDate() {
+		return grdStartDate;
+	}
+	public void setGrdStartDate(String grdStartDate) {
+		this.grdStartDate = grdStartDate;
+	}
+	public String getGrd_endDate() {
+		return grd_endDate;
+	}
+	public void setGrd_endDate(String grd_endDate) {
+		this.grd_endDate = grd_endDate;
+	}
+	public String getGrdStatus() {
+		return grdStatus;
+	}
+	public void setGrdStatus(String grdStatus) {
+		this.grdStatus = grdStatus;
+	}
+	public int getMberGrdHistNo() {
+		return mberGrdHistNo;
+	}
+	public void setMberGrdHistNo(int mberGrdHistNo) {
+		this.mberGrdHistNo = mberGrdHistNo;
+	}	
 }
src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
--- src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
+++ src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
@@ -20,4 +20,29 @@
 		return update("mberGrdDAO.updateGrdSetting", mberGrdVO);
 	}	
 	
+	// 회원별 등급 상세
+	public MberGrdVO selectMberGrdDetail(MberGrdVO mberGrdVO) throws Exception{
+		return (MberGrdVO) select("mberGrdDAO.selectMberGrdDetail", mberGrdVO);
+	}
+
+	// 회원별 등급 등록
+	public void insertMberGrd(MberGrdVO mberGrdVO) throws Exception{
+		insert("mberGrdDAO.insertMberGrd", mberGrdVO);
+	}
+	
+	// 회원별 등급 수정
+	public void updateMberGrd(MberGrdVO mberGrdVO) throws Exception{
+		update("mberGrdDAO.updateMberGrd", mberGrdVO);
+	}		
+	
+	// 회원별 등급 진행여부
+	public int selectMberGrdPrgCnt(String userId) throws Exception{
+		return (int) select("mberGrdDAO.selectMberGrdPrgCnt", userId);
+	}	
+	
+	
+	// 회원별 등급 히스토리 등록
+	public void insertMberGrdHist(MberGrdVO mberGrdVO) throws Exception{
+		insert("mberGrdDAO.insertMberGrdHist", mberGrdVO);
+	}	
 }
src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
--- src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
+++ src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
@@ -29,7 +29,7 @@
 	    	System.out.println("getGrdSetNos : " + mberGrdVO.getGrdSetNos().get(i));
 	    	
 	    	mberGrdVO.setGrdSetNo(Integer.parseInt(mberGrdVO.getGrdSetNos().get(i)));
-	    	mberGrdVO.setTotAmt(Long.parseLong(mberGrdVO.getTotAmts().get(i)));
+	    	mberGrdVO.setStdAmt(Long.parseLong(mberGrdVO.getStdAmts().get(i)));
 	    	mberGrdVO.setShortPrice(Float.parseFloat(mberGrdVO.getShortPrices().get(i)));
 	    	mberGrdVO.setLongPrice(Float.parseFloat(mberGrdVO.getLongPrices().get(i)));
 	    	mberGrdVO.setPicturePrice(Float.parseFloat(mberGrdVO.getPicturePrices().get(i)));
@@ -44,4 +44,34 @@
 	}		
 
 	
+	// 회원별 등급 상세
+	@Override
+	public MberGrdVO selectMberGrdDetail(MberGrdVO mberGrdVO) throws Exception {
+		return mberGrdDAO.selectMberGrdDetail(mberGrdVO);
+	}	
+	
+	// 회원별 등급 등록
+	@Override
+	public void insertMberGrd(MberGrdVO mberGrdVO) throws Exception {
+		mberGrdDAO.insertMberGrd(mberGrdVO);
+	}
+	
+	// 회원별 등급 수정
+	@Override
+	public void updateMberGrd(MberGrdVO mberGrdVO) throws Exception {
+		mberGrdDAO.updateMberGrd(mberGrdVO);
+	}	
+	
+	// 회원별 등급 진행여부
+	@Override
+	public int selectMberGrdPrgCnt(String userId) throws Exception{
+		return mberGrdDAO.selectMberGrdPrgCnt(userId);
+	}
+	
+	
+	// 회원별 등급 히스토리 등록
+	@Override
+	public void insertMberGrdHist(MberGrdVO mberGrdVO) throws Exception {
+		mberGrdDAO.insertMberGrdHist(mberGrdVO);
+	}	
 }
src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
--- src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
@@ -9,8 +9,8 @@
 		SELECT 
 			A.GRD_SET_NO AS grdSetNo
 			, A.GRD_SET_NM AS grdSetNm
-			, FLOOR(A.TOT_AMT) AS totAmt
-			, FORMAT(FLOOR(A.TOT_AMT),0) AS totAmtComma 
+			, FLOOR(A.STD_AMT) AS stdAmt
+			, FORMAT(FLOOR(A.STD_AMT),0) AS stdAmtComma 
 			, A.SHORT_PRICE AS shortPrice 
 			, A.LONG_PRICE AS longPrice 
 			, A.PICTURE_PRICE AS picturePrice 
@@ -29,7 +29,7 @@
 	<update id="mberGrdDAO.updateGrdSetting" parameterClass="mberGrdVO">
 		UPDATE mj_mber_grd_setting A 
 		SET 
-			A.TOT_AMT = #totAmt#
+			A.STD_AMT = #stdAmt#
 			, A.SHORT_PRICE = #shortPrice# 
 			, A.LONG_PRICE = #longPrice#
 			, A.PICTURE_PRICE = #picturePrice# 
@@ -40,4 +40,140 @@
 		WHERE A.GRD_SET_NO = #grdSetNo#
 	</update>	
 
+	<!-- 회원별 등급 상세 -->
+	<select id="mberGrdDAO.selectMberGrdDetail" parameterClass="mberGrdVO" resultClass="mberGrdVO">
+		SELECT
+			MBER_ID					AS mberId
+			, GRD_SET_NO			AS grdSetNo
+			, SHORT_PRICE			AS shortPrice
+			, LONG_PRICE			AS longPrice
+			, PICTURE_PRICE			AS picturePrice
+			, PICTURE2_PRICE		AS picture2Price
+			, PICTURE3_PRICE		AS picture3Price
+			, AMT						AS amt
+			, TOT_AMT				AS totAmt
+			, GRD_START_DATE		AS grdStartDate
+			, GRD_END_DATE		AS grd_endDate
+			, GRD_STATUS			AS grdStatus
+			, REG_ID					AS regId
+			, REG_DATE				AS regDate
+			, EDIT_ID					AS editId
+			, EDIT_DATE				AS editDate
+		FROM
+			mj_mber_grd_info
+		WHERE 
+			MBER_ID = #mberId#
+	</select>
+
+	<!-- 회원별 등급 등록 -->
+	<insert id="mberGrdDAO.insertMberGrd" parameterClass="mberGrdVO">
+		INSERT INTO mj_mber_grd_info 
+		(
+			MBER_ID
+			, GRD_SET_NO
+			, SHORT_PRICE
+			, LONG_PRICE
+			, PICTURE_PRICE
+			, PICTURE2_PRICE
+			, PICTURE3_PRICE
+			, AMT
+			, TOT_AMT
+			, GRD_START_DATE
+			, GRD_END_DATE
+			, GRD_STATUS
+			, REG_ID
+			, REG_DATE
+			, EDIT_ID
+			, EDIT_DATE
+		)
+		VALUES
+		(
+			#mberId#
+			, #grdSetNo#
+			, #shortPrice#
+			, #longPrice#
+			, #picturePrice#
+			, #picture2Price#
+			, #picture3Price#
+			, #amt#
+			, #totAmt#
+			, #grdStartDate#
+			, #grd_endDate#
+			, #grdStatus#
+			, #regId#
+			, NOW()
+			, #editId#
+			, NOW()
+		)
+	</insert>
+
+	<!-- 회원별 등급 수정 -->
+	<update id="mberGrdDAO.updateMberGrd" parameterClass="mberGrdVO">
+		UPDATE mj_mber_grd_info SET
+			MBER_ID					= #mberId#
+			, GRD_SET_NO			= #grdSetNo#
+			, SHORT_PRICE			= #shortPrice#
+			, LONG_PRICE			= #longPrice#
+			, PICTURE_PRICE			= #picturePrice#
+			, PICTURE2_PRICE		= #picture2Price#
+			, PICTURE3_PRICE		= #picture3Price#
+			, AMT						= #amt#
+			, TOT_AMT				= #totAmt#
+			, GRD_START_DATE		= #grdStartDate#
+			, GRD_END_DATE		= #grd_endDate#
+			, GRD_STATUS			= #grdStatus#
+			, EDIT_ID					= #editId#
+			, EDIT_DATE				= NOW()
+		WHERE 
+			MBER_ID = #mberId#
+	</update>	
+	
+	<!-- 회원별 등급 진행여부 -->
+	<select id="mberGrdDAO.selectMberGrdPrgCnt" parameterClass="String" resultClass="Integer">
+		SELECT
+			COUNT(0)
+		FROM MJ_MBER_GRD_INFO A 
+		WHERE A.MBER_ID = #mberId#
+			AND GRD_STATUS NOT IN ('N', 'E')
+			AND NOW() BETWEEN GRD_START_DATE AND GRD_END_DATE
+		LIMIT 1
+	</select>
+
+	
+	<!-- 회원별 등급 히스토리 등록 -->
+	<insert id="mberGrdDAO.insertMberGrdHist" parameterClass="mberGrdVO">
+		INSERT INTO mj_mber_grd_hist
+		(
+			MBER_ID
+			, GRD_SET_NO
+			, SHORT_PRICE
+			, LONG_PRICE
+			, PICTURE_PRICE
+			, PICTURE2_PRICE
+			, PICTURE3_PRICE
+			, AMT
+			, TOT_AMT
+			, REG_ID
+			, REG_DATE
+			, EDIT_ID
+			, EDIT_DATE
+		)
+		VALUES
+		(
+			#mberId#
+			, #grdSetNo#
+			, #shortPrice#
+			, #longPrice#
+			, #picturePrice#
+			, #picture2Price#
+			, #picture3Price#
+			, #amt#
+			, #totAmt#
+			, #regId#
+			, NOW()
+			, #editId#
+			, NOW()
+		)
+	</insert>
+		
 </sqlMap>
src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp
--- src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp
+++ src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp
@@ -21,7 +21,7 @@
 		}
 
 		// 콤마 제거
-		$('input[name=totAmts]').each(function(index,item){
+		$('input[name=stdAmts]').each(function(index,item){
 			$(this).val($(this).val().replace(/,/gi, ""));
 		});
 		
@@ -85,7 +85,7 @@
     					<input type="hidden" name="grdSetNos" value="${result.grdSetNo}"/>
 						<tr>
 							<td><c:out value="${result.grdSetNm}"/></td>
-							<td><input type="text" name="totAmts" value="<c:out value="${result.totAmtComma}"/>" style="height: 20px; width: 150px; padding: 5px 5px 5px 5px;" /></td>
+							<td><input type="text" name="stdAmts" value="<c:out value="${result.stdAmtComma}"/>" style="height: 20px; width: 150px; padding: 5px 5px 5px 5px;" /></td>
 							<td><input type="text" name="shortPrices" value="<c:out value="${result.shortPrice}"/>" style="height: 20px; width: 100px; padding: 5px 5px 5px 5px;" /></td>
 							<td><input type="text" name="longPrices" value="<c:out value="${result.longPrice}"/>" style="height: 20px; width: 100px; padding: 5px 5px 5px 5px;" /></td>
 							<td><input type="text" name="picturePrices" value="<c:out value="${result.picturePrice}"/>" style="height: 20px; width: 100px; padding: 5px 5px 5px 5px;" /></td>
Add a comment
List