[관리자] 기간 경과 포인트 현금 전환 처리내역 상태값 변경 요청

http://pms.iten.co.kr:9999/issues/5370?issue_count=28&issue_position=5&next_issue_id=5314&prev_issue_id=5372
This commit is contained in:
leejunho 2025-08-08 11:18:40 +09:00
parent 4081be815c
commit 8cc292a258
4 changed files with 143 additions and 94 deletions

View File

@ -74,7 +74,7 @@ public interface MjonPayService {
void updatePointUse(MjonPayVO mjonPayVO) throws Exception;
void updatePointUseByCase(MjonPayVO mjonPayVO) throws Exception;
String updatePointUseByCase(MjonPayVO mjonPayVO, String msg) throws Exception;
String selectSumPayMoney(String userId) throws Exception;

View File

@ -2438,7 +2438,7 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP
}
@Override
public void updatePointUseByCase(MjonPayVO mjonPayVO) throws Exception {
public String updatePointUseByCase(MjonPayVO mjonPayVO, String msg) throws Exception {
MjonMsgVO mjonMsgVO = new MjonMsgVO();
mjonMsgVO.setUserId(mjonPayVO.getUserId());
@ -2450,7 +2450,9 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP
mjonPayVO.setRemainPoint(Integer.parseInt(mjonMsgDataService.selectBeforePointData(mjonMsgVO)));
// Step2. 상태값 변경
updatePointUse(mjonPayVO);
updatePointUse(mjonPayVO);
msg = "송금완료 처리되었습니다.";
}
else if (mjonPayVO.getCmpltYn().equals("X")) {
// 전환불가
@ -2469,7 +2471,11 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP
// Step4. 상태값 변경
updatePointUse(mjonPayVO);
msg = "전환불가 처리되었습니다.";
}
return msg;
}
@Override

View File

@ -1226,79 +1226,14 @@ public class MjonPayController {
String adminUserId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
boolean isSuccess = true;
String msg = "전환불가 처리되었습니다.";
String msg = "";
try {
mjonPayVO.setAdminRegisterId(adminUserId);
mjonPayVO.setFrstRegisterId(mjonPayVO.getUserId());
mjonPayVO.setUserId(mjonPayVO.getUserId());
mjonPayService.updatePointUseByCase(mjonPayVO);
msg = mjonPayService.updatePointUseByCase(mjonPayVO, msg);
//완료 처리 사용자에게 알림 문자 전송
if("Y".equals(mjonPayVO.getCmpltYn())){
msg = "송금완료 처리되었습니다.";
MjonCommon mjCommon = new MjonCommon();
MjonMsgVO mjonMsgVO = new MjonMsgVO();
mjonMsgVO.setCallFrom("15518011");
//포인트 3자리수 콤마 처리
NumberFormat numberFormat = NumberFormat.getInstance();
String point = numberFormat.format(mjonPayVO.getPoint());
//발송 문자 타입(/장문) 등록
//문자열 길이 체크 해주기
String charset = "euc-kr"; //문자 바이트 계산에 필요한 캐릭터 : 한글 2Byte로 계산
String smsTxt = "[문자온] 고객님, 요청하신 포인트 현금 전환("+point+"원) 처리가 완료되었습니다. 감사합니다.";
mjonMsgVO.setSmsTxt(smsTxt);
smsTxt = smsTxt.replace("\r\n", "\n");
int FrBytes = smsTxt.getBytes(charset).length;
String msgType = "4";
//90바이트를 초과하는 경우 장문으로 발송
if(FrBytes > 90){
msgType = "6";
}
mjonMsgVO.setMsgType(msgType);
//그림이미지 첨부파일 갯수 0으로 셋팅
mjonMsgVO.setFileCnt("0");
// 문자타입 구분
if (mjonMsgVO.getMsgType().equals("4")) {
mjonMsgVO.setMsgDiv("S"); // 단문
}
else if (mjonMsgVO.getMsgType().equals("6")) {
if (mjonMsgVO.getFileCnt().equals("0")) {
mjonMsgVO.setMsgDiv("L"); // 장문
}
else {
mjonMsgVO.setMsgDiv("P"); // 그림
}
}
// 문자타입별 대표전송사 정보
MjonMsgVO mjonMsgVO2 = new MjonMsgVO();
mjonMsgVO2 = mjonMsgService.selectRepMsgAgetnInfo(mjonMsgVO);
// 전송사 구분 코드 - 01 : 아이하트, 02 : 현대 퓨쳐넷, 03 : 아이엠오, 04 : 다우기술
mjonMsgVO.setAgentCode(mjonMsgVO2.getAgentCode()); //전송사 선택
// 전송금액
mjonMsgVO.setTotPrice(mjonMsgVO2.getAgentPrice().toString()); //총금액
mjonMsgVO.setEachPrice(mjonMsgVO2.getAgentPrice().toString()); //한건 금액
mjonMsgVO.setCallTo(mjonPayVO.getMbtlNum());
//문자발송을 위한 데이터 셋팅 함수 호출해주기
MjonMsgVO resultCom = mjCommon.getAdminToMberPhoneSendMsgDataComm(mjonMsgVO);
//발신으로 문자 발송 처리
mjonMsgDataService.insertAdmToMberMsgDataInfo(resultCom);
msg = msg += (System.lineSeparator()+"안내문자 발송 성공했습니다.");
}
}
catch(Exception e) {
isSuccess = false;
@ -2022,6 +1957,111 @@ public class MjonPayController {
return "/uss/ion/pay/cashPointSendList";
}
/**
* 포인트 사용 완료처리 변경
*/
@RequestMapping(value="/uss/ion/pay/pointUseCashUpdateSendSmsAjax.do")
public ModelAndView pointUseCashUpdateSendSmsAjax(@ModelAttribute("searchVO") MjonPayVO mjonPayVO,
HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
try {
MjonCommon mjCommon = new MjonCommon();
MjonMsgVO mjonMsgVO = new MjonMsgVO();
mjonMsgVO.setCallFrom("15518011");
//포인트 3자리수 콤마 처리
NumberFormat numberFormat = NumberFormat.getInstance();
String point = numberFormat.format(mjonPayVO.getPoint());
//발송 문자 타입(/장문) 등록
//문자열 길이 체크 해주기
String charset = "euc-kr"; //문자 바이트 계산에 필요한 캐릭터 : 한글 2Byte로 계산
String smsTxt = "[문자온] 고객님, 요청하신 포인트 현금 전환("+point+"원) 처리가 완료되었습니다. 감사합니다.";
mjonMsgVO.setSmsTxt(smsTxt);
smsTxt = smsTxt.replace("\r\n", "\n");
int FrBytes = smsTxt.getBytes(charset).length;
String msgType = "4";
//90바이트를 초과하는 경우 장문으로 발송
if(FrBytes > 90){
msgType = "6";
}
mjonMsgVO.setMsgType(msgType);
//그림이미지 첨부파일 갯수 0으로 셋팅
mjonMsgVO.setFileCnt("0");
// 문자타입 구분
if (mjonMsgVO.getMsgType().equals("4")) {
mjonMsgVO.setMsgDiv("S"); // 단문
}
else if (mjonMsgVO.getMsgType().equals("6")) {
if (mjonMsgVO.getFileCnt().equals("0")) {
mjonMsgVO.setMsgDiv("L"); // 장문
}
else {
mjonMsgVO.setMsgDiv("P"); // 그림
}
}
// 문자타입별 대표전송사 정보
MjonMsgVO mjonMsgVO2 = new MjonMsgVO();
mjonMsgVO2 = mjonMsgService.selectRepMsgAgetnInfo(mjonMsgVO);
// 전송사 구분 코드 - 01 : 아이하트, 02 : 현대 퓨쳐넷, 03 : 아이엠오, 04 : 다우기술
mjonMsgVO.setAgentCode(mjonMsgVO2.getAgentCode()); //전송사 선택
// 전송금액
mjonMsgVO.setTotPrice(mjonMsgVO2.getAgentPrice().toString()); //총금액
mjonMsgVO.setEachPrice(mjonMsgVO2.getAgentPrice().toString()); //한건 금액
mjonMsgVO.setCallTo(mjonPayVO.getMbtlNum());
//문자발송을 위한 데이터 셋팅 함수 호출해주기
MjonMsgVO resultCom = mjCommon.getAdminToMberPhoneSendMsgDataComm(mjonMsgVO);
//발신으로 문자 발송 처리
mjonMsgDataService.insertAdmToMberMsgDataInfo(resultCom);
msg = "안내문자 발송 성공했습니다.";
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
//배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"}
private String[][] sendPayExcelValue ={
{"0" ,"번호" , "1" , "" },

View File

@ -51,19 +51,22 @@ function fn_update(pType){
//송금완료 버튼 클릭 후 처리완료 되면 문자 전송 여부 선택
if(pType == "Y"){
sendSms();
}else{
location.reload();
}
}
else {
alert(data.msg);
location.reload();
}
},
error: function (e) {
alert("업데이트에 실패하였습니다.");
console.log("ERROR : ", e);
}
});
}else{
location.reload();
}
}
@ -86,28 +89,28 @@ function fnSelectMber(mberId) {
}
function sendSms(){
$.ajax({
cache : false,
url : "<c:url value='/uss/ion/pay/pointUseCashUpdateSendSmsAjax.do'/>",
type : 'POST',
data : $("#writeForm").serialize(),
dataType:'json',
success : function(data){
if(data.isSuccess == true) {
/* location.reload(); */
alert(data.msg);
}
else {
alert(data.msg);
}
},
error: function (e) {
alert("문자전송에 실패했습니다.");
console.log("ERROR : ", e);
}
});
if (confirm("문자를 발송하시겠습니까?")) {
$.ajax({
cache : false,
url : "<c:url value='/uss/ion/pay/pointUseCashUpdateSendSmsAjax.do'/>",
type : 'POST',
data : $("#writeForm").serialize(),
dataType:'json',
success : function(data){
if(data.isSuccess == true) {
location.reload();
alert(data.msg);
}
else {
alert(data.msg);
}
},
error: function (e) {
alert("문자전송에 실패했습니다.");
console.log("ERROR : ", e);
}
});
}
}
</script>