File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package itn.let.module.base;
import java.math.BigDecimal;
import java.math.RoundingMode;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import itn.let.mjo.event.service.MjonEventService;
import itn.let.mjo.event.service.MjonEventVO;
import itn.let.mjo.event.service.impl.MjonEventDAO;
import itn.let.mjo.msg.service.MjonMsgVO;
import itn.let.mjo.msgdata.service.impl.MjonMsgDataDAO;
import itn.let.mjo.pay.service.MjonPayVO;
import itn.let.mjo.pay.service.impl.MjonPayDAO;
import itn.let.uss.umt.service.MberManageVO;
/**
*
* @author : 이호영
* @fileName : PriceAndPoint.java
* @date : 2023.03.27
* @description : 금액 포인트 관련 module
* ===========================================================
* DATE AUTHOR NOTE
* ----------------------------------------------------------- *
* 2023.03.27 이호영 최초 생성
*
*
*
*/
@Component
public class PriceAndPoint {
@Autowired
private MjonMsgDataDAO mjonMsgDataDAO;
@Autowired
private MjonPayDAO mjonPayDAO;
@Autowired
private MjonEventService mjonEventService;
@Resource(name = "egovMjonCashIdGnrService")
private EgovIdGnrService idgenMjonCashId;
/**
* @methodName : getBefCash
* @author : 이호영
* @date : 2023.03.30
* @description : 사용자 보유 잔액
* @param userId
* @return
* @throws Exception
*/
public String getBefCash(String userId) throws Exception {
MjonMsgVO mjonMsgVO = new MjonMsgVO();
mjonMsgVO.setUserId(userId);
return mjonMsgDataDAO.selectBeforeCashData(mjonMsgVO);
}
/**
* @methodName : getBefPoint
* @author : 이호영
* @date : 2023.03.30
* @description : 사용자 보유 포인트
* @param userId
* @return
* @throws Exception
*/
public String getBefPoint(String userId) throws Exception {
MjonMsgVO mjonMsgVO = new MjonMsgVO();
mjonMsgVO.setUserId(userId);
return mjonMsgDataDAO.selectBeforePointData(mjonMsgVO);
}
/**
* @methodName : getUserMoney
* @author : 이호영
* @date : 2023.03.30
* @description : 사용자 보유 잔액
* @param userId
* @return
* @throws Exception
*/
public BigDecimal getUserMoney(String userId) throws Exception {
MberManageVO mberManageVO = mjonMsgDataDAO.selectMberManageInfo(userId);
BigDecimal userMoney = new BigDecimal(mberManageVO.getUserMoney()).setScale(2, RoundingMode.HALF_EVEN);
return userMoney;
}
/**
* @methodName : insertCashAndPoint
* @author : 이호영
* @date : 2024.03.26
* @description :
* @param mjonPayDAO
* @param idgenMjonCashId
* @param userId
* @param totPrice
* @param memo
* @param msgGroupId
* @throws Exception
*/
public void insertCashAndPoint(
String userId
, float totPrice
, String memo
, String msgGroupId
) throws Exception {
MjonPayVO mjonPayVO = new MjonPayVO();
mjonPayVO.setCashId(idgenMjonCashId.getNextStringId());
mjonPayVO.setUserId(userId);
mjonPayVO.setCash(totPrice);
mjonPayVO.setFrstRegisterId(userId);
mjonPayVO.setMemo(memo);
mjonPayVO.setMsgGroupId(msgGroupId);
mjonPayDAO.insertCash(mjonPayVO); //캐시
mjonPayDAO.updateMemberCash(mjonPayVO); //회원정보 업데이트
//이벤트 회원인 경우 이벤트 캐시도 함께 차감.
MjonEventVO mjonEventVO = new MjonEventVO();
mjonEventVO.setMberId(mjonPayVO.getUserId());
mjonEventVO.setEventStatus("Y");
MjonEventVO eventMberInfo = mjonEventService.selectEventMsgMberDefaultInfo(mjonEventVO);
if(eventMberInfo != null) {
float evntRemainCash = (float) eventMberInfo.getEventRemainCash();
totPrice = (float) Math.abs(mjonPayVO.getCash());
float totRemainCash = evntRemainCash - totPrice;
mjonEventVO.setEventInfoId(eventMberInfo.getEventInfoId());
if(totRemainCash <= 0.0) {//차감액이 남아있지 않으면 이벤트를 종료
//이벤트 상태값을 종료로 변경한다.
mjonEventVO.setEventStatus("E");
mjonEventVO.setEventRemainCash(0.0);
mjonEventService.updateEventEndStatus(mjonEventVO);
}else {//이벤트 회원 캐시 차감시킴
mjonEventVO.setEventRemainCash(totRemainCash);
mjonEventService.updateEventRemainCash(mjonEventVO);
}
}
}
}