rosewiper 2024-01-03
후불제 회원 월별 정산 데이터 입력 기능 개선 - 후불제 정산 회원 선정 쿼리 변경 : 기존 남은 금액 기준에서 실제 사용한 금액이 있는지 확인으로 변경 - 1일에 후불 요금청구 데이터 입력시 mj_pg 테이블에 중복데이터가 있는지 확인 후 없으면 데이터 입력
 - 후불제 정산 회원 선정 쿼리 변경 : 기존 남은 금액 기준에서 실제 사용한 금액이 있는지 확인으로 변경
 - 1일에 후불 요금청구 데이터 입력시 mj_pg 테이블에 중복데이터가 있는지 확인 후 없으면 데이터 입력
@fafde9249d6d740e09061e36a5874d13b846f6b3
src/main/java/itn/let/uss/umt/service/UserManageVO.java
--- src/main/java/itn/let/uss/umt/service/UserManageVO.java
+++ src/main/java/itn/let/uss/umt/service/UserManageVO.java
@@ -207,6 +207,7 @@
 	private String atSmishingYn;		// 알림톡 스미싱 의심여부
 	private String spamYn;
 	private String nextPayMethod;
+	private float paymentCash;		//이전달에 실제 사용한 캐시 정보
 	
 	public String getNextPayMethod() {
 		return nextPayMethod;
@@ -731,6 +732,12 @@
 	public void setVipYn(String vipYn) {
 		this.vipYn = vipYn;
 	}
+	public float getPaymentCash() {
+		return paymentCash;
+	}
+	public void setPaymentCash(float paymentCash) {
+		this.paymentCash = paymentCash;
+	}
 	
 	
 	
src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java
--- src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java
+++ src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java
@@ -698,7 +698,12 @@
 	public void updateUserCashByAutoCash() throws Exception {
 		List<UserManageVO> userPrePaymentYnList = userManageDAO.selectUserPrePaymentYnList(new UserManageVO());
 		for (UserManageVO umVO: userPrePaymentYnList) {
-			if (umVO.getNowChargeCash() > 0) {
+			if (umVO.getPaymentCash() > 0) {
+				
+				//이번달에 입력된 후불 결제요청 데이터가 있는지 확인 - 혹시나 중복 입력을 방지하기 위함
+				int paymentCnt = userManageDAO.selectUserPrePaymentPGdataCount(umVO.getMberId());
+				
+				if(paymentCnt > 0) continue;
 				
 				//회원 정보 조회
 				MberManageVO mberManageVO = mberManageDAO.selectMber(umVO.getMberId()); //멤버ID에서 유니크ID로 수정 필요
src/main/java/itn/let/uss/umt/service/impl/UserManageDAO.java
--- src/main/java/itn/let/uss/umt/service/impl/UserManageDAO.java
+++ src/main/java/itn/let/uss/umt/service/impl/UserManageDAO.java
@@ -316,4 +316,9 @@
     	return (List<UserManageVO>) list("userManageDAO.selectUserPrePaymentYnList", userManageVO);
     }	
     
+    // 이번달 입력된 결제요청 정보가 있는지 체크
+    public int selectUserPrePaymentPGdataCount(String userId) throws Exception{
+    	return (int) select("userManageDAO.selectUserPrePaymentPGdataCount", userId);
+    }
+    
 }
(No newline at end of file)
src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Mysql.xml
--- src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Mysql.xml
@@ -1405,6 +1405,29 @@
 		
 	<!-- 후불제 회원 목록 -->
 	<select id="userManageDAO.selectUserPrePaymentYnList" parameterClass="userVO" resultClass="userVO">
+	
+		SELECT   IFNULL(SUM(MC.CASH * -1), 0) AS paymentCash,
+			  	 IFNULL(MB.AUTO_CASH - MB.USER_MONEY, 0) AS nowChargeCash,
+		         MC.USER_ID                                     AS mberId,
+		         MB.AUTO_CASH                                   AS autoCash
+		FROM     MJ_CASH MC
+		         INNER JOIN LETTNGNRLMBER MB
+		         ON       MC.USER_ID         = MB.MBER_ID
+		         AND      MB.PRE_PAYMENT_YN  = 'N'
+		         AND      MB.MBER_STTUS      = 'Y'
+		WHERE    YEAR(MC.FRST_REGIST_PNTTM)  = YEAR(CURRENT_DATE  - INTERVAL 1 MONTH)
+		AND      MONTH(MC.FRST_REGIST_PNTTM) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)
+		AND
+		         (
+		                  MC.MSG_GROUP_ID IS NOT NULL OR MEMO = '맞춤문자 신청'
+		         )
+		GROUP BY MC.USER_ID
+		
+	</select>
+	
+	
+	<!-- 후불제 회원 목록 기존 소스 백업-->
+	<select id="userManageDAO.selectUserPrePaymentYnList_bak" parameterClass="userVO" resultClass="userVO">
 		SELECT 
 			M.mberId,
 			M.autoCash,
@@ -1420,5 +1443,16 @@
 			WHERE PRE_PAYMENT_YN = 'N' AND A.MBER_STTUS = 'Y'
 		) M
 	</select>
+	
+	
+	<select id="userManageDAO.selectUserPrePaymentPGdataCount" parameterClass="String" resultClass="Integer">
+	
+		SELECT COUNT(MOID)
+		FROM   MJ_PG
+		WHERE  USER_ID                     = #userId#
+		AND    YEAR(REG_DATE)  = YEAR(CURRENT_DATE)
+		AND    MONTH(REG_DATE) = MONTH(CURRENT_DATE)
+	
+	</select>
 		
 </sqlMap>
Add a comment
List