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.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import egovframework.rte.fdl.cmmn.exception.FdlException;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import itn.let.kakao.kakaoComm.KakaoSendAdvcVO;
import itn.let.kakao.kakaoComm.KakaoSendUtil;
import itn.let.kakao.kakaoComm.KakaoVO;
import itn.let.kakao.user.kakaoAt.service.impl.KakaoAlimTalkDAO;
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.MjonMsgDataService;
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.sym.site.service.JoinSettingVO;
import itn.let.uss.umt.service.MberManageVO;
import lombok.extern.slf4j.Slf4j;
/**
*
* @author : 이호영
* @fileName : PriceAndPoint.java
* @date : 2023.03.27
* @description : 금액 포인트 관련 module
* ===========================================================
* DATE AUTHOR NOTE
* ----------------------------------------------------------- *
* 2023.03.27 이호영 최초 생성
*
*
*
*/
@Slf4j
@Component
public class PriceAndPoint {
@Autowired
private MjonMsgDataDAO mjonMsgDataDAO;
@Autowired
private MjonPayDAO mjonPayDAO;
@Autowired
private MjonEventService mjonEventService;
@Resource(name = "egovMjonCashIdGnrService")
private EgovIdGnrService idgenMjonCashId;
@Resource(name="kakaoAlimTalkDAO")
private KakaoAlimTalkDAO kakaoAlimTalkDAO;
/**
* @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);
// System.out.println(" + totPrice :: "+ totPrice);
// mjonPayVO.setCash(totPrice);
// mjonPayVO.setFrstRegisterId(userId);
// mjonPayVO.setMemo(memo);
// mjonPayVO.setMsgGroupId(msgGroupId);
insertCashAndPoint(userId, totPrice, memo, msgGroupId, null);
// mjonPayDAO.insertCash(mjonPayVO); //캐시
// mjonPayDAO.updateMemberCash(mjonPayVO); //회원정보 업데이트
}
/**
* @methodName : insertCashAndPoint
* @author : 이호영
* @date : 2025. 7. 17.
* @description : insertCashAndPoint 에서 환불으로 인해 userData 추가
* @return : void
* @param userId
* @param totPrice
* @param memo
* @param msgGroupId
* @param userData
* @throws Exception
*
*/
public void insertCashAndPoint(
String userId
, float totPrice
, String memo
, String msgGroupId
, String userData
) throws Exception {
MjonPayVO mjonPayVO = buildPayVO(userId, totPrice, memo, msgGroupId);
// 환불로 인해 userData가 추후 사용될 경우 여기에 처리
if (StringUtils.isNotEmpty(userData)) { mjonPayVO.setOrderId(userData); }
mjonPayDAO.insertCash(mjonPayVO); //캐시
mjonPayDAO.updateMemberCash(mjonPayVO); //회원정보 업데이트
}
private MjonPayVO buildPayVO(String userId, float totPrice, String memo, String msgGroupId) throws FdlException {
MjonPayVO vo = new MjonPayVO();
vo.setCashId(idgenMjonCashId.getNextStringId());
vo.setUserId(userId);
vo.setCash(totPrice);
vo.setFrstRegisterId(userId);
vo.setMemo(memo);
vo.setMsgGroupId(msgGroupId);
System.out.println(" + totPrice :: " + totPrice);
return vo;
}
public void insertBizFtKakaoPrice(String userId, String msgGroupId) throws Exception {
KakaoVO kakaoVO = new KakaoVO();
System.out.println("=======================");
// 사용자 개인 단가 정보 불러오기
MberManageVO mberManageVO = mjonMsgDataDAO.selectMberManageInfo(userId);
// 시스템 기본 단가 정보 불러오기
JoinSettingVO sysJoinSetVO = mjonMsgDataDAO.selectJoinSettingInfo();
KakaoSendUtil.getValidPrice(mberManageVO.getShortPrice(), sysJoinSetVO.getShortPrice());
// TODO Auto-generated method stub
kakaoVO.setMsgGroupId(msgGroupId);
kakaoVO.setSmsPrice(KakaoSendUtil.getValidPrice(mberManageVO.getShortPrice(), sysJoinSetVO.getShortPrice()));
kakaoVO.setMmsPrice(KakaoSendUtil.getValidPrice(mberManageVO.getLongPrice(), sysJoinSetVO.getLongPrice()));
kakaoVO.setPicturePrice(KakaoSendUtil.getValidPrice(mberManageVO.getPicturePrice(), sysJoinSetVO.getPicturePrice()));
kakaoVO.setKakaoFtPrice(KakaoSendUtil.getValidPrice(mberManageVO.getKakaoFtPrice(), sysJoinSetVO.getKakaoFtPrice()));
kakaoVO.setKakaoFtImgPrice(KakaoSendUtil.getValidPrice(mberManageVO.getKakaoFtImgPrice(), sysJoinSetVO.getKakaoFtImgPrice()));
kakaoVO.setKakaoFtWideImgPrice(KakaoSendUtil.getValidPrice(mberManageVO.getKakaoFtWideImgPrice(), sysJoinSetVO.getKakaoFtWideImgPrice()));
kakaoAlimTalkDAO.insertKakaoSendPrice(kakaoVO);
}
/**
* @methodName : insertCashAndPoint
* @author : 이지우
* @date : 2025. 8. 14.
* @description : insertCashAndPoint 에서 updateMemberCash 제외
* @return : void
* @param userId
* @param totPrice
* @param memo
* @param msgGroupId
* @param userData
* @throws Exception
*
*/
public void insertCashAndPointNoUpdate(
String userId
, float totPrice
, String memo
, String msgGroupId
, String userData
) throws Exception {
MjonPayVO mjonPayVO = buildPayVO(userId, totPrice, memo, msgGroupId);
// 환불로 인해 userData가 추후 사용될 경우 여기에 처리
if (StringUtils.isNotEmpty(userData)) { mjonPayVO.setOrderId(userData); }
mjonPayDAO.insertCash(mjonPayVO); //캐시
}
}