--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
... | ... | @@ -3241,267 +3241,262 @@ |
| 3241 | 3241 |
@Override |
| 3242 | 3242 |
public StatusResponse sendMsgData_advc(MjonMsgVO mjonMsgVO, HttpServletRequest request) throws Exception {
|
| 3243 | 3243 |
|
| 3244 |
- String resultSts = "0"; |
|
| 3245 |
- String resultBlockSts = "0"; |
|
| 3246 |
- String userId = ""; |
|
| 3247 |
- |
|
| 3248 |
- |
|
| 3249 |
- LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 3250 |
- userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 3251 |
- |
|
| 3252 |
- if(userId.equals("")) {
|
|
| 3253 |
- // Map<String, String> returnMap = new HashMap<>(); |
|
| 3254 |
-// returnMap.put("message", "로그인 후 이용이 가능합니다.");
|
|
| 3255 |
-// returnMap.put("result", "loginFail");
|
|
| 3256 |
-// returnMap.put("resultSts", resultSts);
|
|
| 3257 |
- return new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용이 가능합니다."); |
|
| 3258 |
- } |
|
| 3259 |
- |
|
| 3260 |
- mjonMsgVO.setUserId(userId); |
|
| 3261 |
- |
|
| 3262 |
- //발신번호가 등록된 유효한 번호인지 확인 |
|
| 3263 |
- int sendCallFromCnt = mjonMsgDAO.selectCallFromNumberChk(mjonMsgVO); |
|
| 3264 |
- log.info("sendCallFromCnt :: [{}]", sendCallFromCnt);
|
|
| 3265 |
- if(sendCallFromCnt < 1) {
|
|
| 3266 |
- return new StatusResponse(HttpStatus.BAD_REQUEST, "등록된 발신번호를 찾을 수 없습니다."); |
|
| 3267 |
- } |
|
| 3268 |
- |
|
| 3269 |
- /** |
|
| 3270 |
- * 회원 정지된 상태이면 문자 발송이 안되도록 처리함 |
|
| 3271 |
- * 현재 로그인 세션도 만료 처리함 |
|
| 3272 |
- * */ |
|
| 3273 |
- boolean mberSttus = userManageService.selectUserStatusInfo(userId); |
|
| 3274 |
- if(!mberSttus) {
|
|
| 3275 |
- request.getSession().invalidate(); |
|
| 3276 |
- // UNAUTHORIZED : 인증되지 않은 사용자가 접근하려고 할 때 |
|
| 3277 |
- return new StatusResponse(HttpStatus.UNAUTHORIZED, "현재 고객님께서는 문자온 서비스 이용이 정지된 상태로 문자를 발송하실 수 없습니다. 이용정지 해제를 원하시면 고객센터로 연락주시기 바랍니다."); |
|
| 3278 |
- |
|
| 3279 |
- } |
|
| 3280 |
- |
|
| 3281 |
- /* |
|
| 3282 |
- * 어디에 사용하는지 모르겠음 |
|
| 3283 |
- * //회원정보에서 스미싱 회원 여부 정보 조회 |
|
| 3284 |
- UserManageVO userManageVO = new UserManageVO(); |
|
| 3285 |
- |
|
| 3286 |
- userManageVO.setMberId(userId); |
|
| 3287 |
- UserManageVO resultUserVO = userManageService.selectSmishingYnUserInfo(userManageVO); |
|
| 3288 |
- String smishingYn = resultUserVO.getSmishingYn(); |
|
| 3289 |
- mjonMsgVO.setSmishingYn(smishingYn); |
|
| 3290 |
- */ |
|
| 3291 |
- |
|
| 3292 |
- int smsTxtByte = MsgSendUtils.getSmsTxtBytes(mjonMsgVO.getSmsTxt()); |
|
| 3293 |
- if(smsTxtByte > 2000) {
|
|
| 3294 |
- return new StatusResponse(HttpStatus.BAD_REQUEST, "문자 내용은 2000Byte를 넘을 수 없습니다."); |
|
| 3295 |
- } |
|
| 3296 |
- |
|
| 3297 |
- // MSG_TYPE 설정 |
|
| 3298 |
- String msgType = MsgSendUtils.getMsgType(mjonMsgVO, smsTxtByte); |
|
| 3299 |
- if ("INVALID".equals(msgType)) {
|
|
| 3300 |
- return new StatusResponse(HttpStatus.BAD_REQUEST, "문자 내용은 2000Byte를 넘을 수 없습니다."); |
|
| 3301 |
- } |
|
| 3302 |
- mjonMsgVO.setMsgType(msgType); |
|
| 3244 |
+ String resultSts = "0"; |
|
| 3245 |
+ String resultBlockSts = "0"; |
|
| 3246 |
+ String userId = ""; |
|
| 3247 |
+ |
|
| 3248 |
+ |
|
| 3249 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 3250 |
+ userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 3251 |
+ |
|
| 3252 |
+ if(userId.equals("")) {
|
|
| 3253 |
+ return new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용이 가능합니다."); |
|
| 3254 |
+ } |
|
| 3255 |
+ |
|
| 3256 |
+ mjonMsgVO.setUserId(userId); |
|
| 3257 |
+ |
|
| 3258 |
+ //발신번호가 등록된 유효한 번호인지 확인 |
|
| 3259 |
+ int sendCallFromCnt = mjonMsgDAO.selectCallFromNumberChk(mjonMsgVO); |
|
| 3260 |
+ log.info("sendCallFromCnt :: [{}]", sendCallFromCnt);
|
|
| 3261 |
+ if(sendCallFromCnt < 1) {
|
|
| 3262 |
+ return new StatusResponse(HttpStatus.BAD_REQUEST, "등록된 발신번호를 찾을 수 없습니다."); |
|
| 3263 |
+ } |
|
| 3264 |
+ |
|
| 3265 |
+ /** |
|
| 3266 |
+ * 회원 정지된 상태이면 문자 발송이 안되도록 처리함 |
|
| 3267 |
+ * 현재 로그인 세션도 만료 처리함 |
|
| 3268 |
+ * */ |
|
| 3269 |
+ boolean mberSttus = userManageService.selectUserStatusInfo(userId); |
|
| 3270 |
+ if(!mberSttus) {
|
|
| 3271 |
+ request.getSession().invalidate(); |
|
| 3272 |
+ // UNAUTHORIZED : 인증되지 않은 사용자가 접근하려고 할 때 |
|
| 3273 |
+ return new StatusResponse(HttpStatus.UNAUTHORIZED, "현재 고객님께서는 문자온 서비스 이용이 정지된 상태로 문자를 발송하실 수 없습니다. 이용정지 해제를 원하시면 고객센터로 연락주시기 바랍니다."); |
|
| 3274 |
+ |
|
| 3275 |
+ } |
|
| 3276 |
+ |
|
| 3277 |
+ /* |
|
| 3278 |
+ * 어디에 사용하는지 모르겠음 |
|
| 3279 |
+ * set 후에 사용하는 곳이 없음 |
|
| 3280 |
+ * //회원정보에서 스미싱 회원 여부 정보 조회 |
|
| 3281 |
+ UserManageVO userManageVO = new UserManageVO(); |
|
| 3282 |
+ |
|
| 3283 |
+ userManageVO.setMberId(userId); |
|
| 3284 |
+ UserManageVO resultUserVO = userManageService.selectSmishingYnUserInfo(userManageVO); |
|
| 3285 |
+ String smishingYn = resultUserVO.getSmishingYn(); |
|
| 3286 |
+ mjonMsgVO.setSmishingYn(smishingYn); |
|
| 3287 |
+ */ |
|
| 3288 |
+ |
|
| 3289 |
+ int smsTxtByte = MsgSendUtils.getSmsTxtBytes(mjonMsgVO.getSmsTxt()); |
|
| 3290 |
+ if(smsTxtByte > 2000) {
|
|
| 3291 |
+ return new StatusResponse(HttpStatus.BAD_REQUEST, "문자 내용은 2000Byte를 넘을 수 없습니다."); |
|
| 3292 |
+ } |
|
| 3293 |
+ |
|
| 3294 |
+ // MSG_TYPE 설정 |
|
| 3295 |
+ String msgType = MsgSendUtils.getMsgType(mjonMsgVO, smsTxtByte); |
|
| 3296 |
+ if ("INVALID".equals(msgType)) {
|
|
| 3297 |
+ return new StatusResponse(HttpStatus.BAD_REQUEST, "문자 내용은 2000Byte를 넘을 수 없습니다."); |
|
| 3298 |
+ } |
|
| 3299 |
+ mjonMsgVO.setMsgType(msgType); |
|
| 3303 | 3300 |
|
| 3304 | 3301 |
|
| 3305 | 3302 |
|
| 3306 |
- //장문 메세지일 경우 |
|
| 3307 |
- int fileCount = 0; |
|
| 3308 |
- if(msgType.equals("6")) {
|
|
| 3309 |
- |
|
| 3310 |
- //그림 이미지가 첨부된 경우 |
|
| 3311 |
- if(mjonMsgVO.getImgFilePath() != null || mjonMsgVO.getImgFilePath().length > 0) {
|
|
| 3312 |
- |
|
| 3313 |
- String[] path = mjonMsgVO.getImgFilePath(); |
|
| 3314 |
- String[] fileId = mjonMsgVO.getImgFileId(); |
|
| 3315 |
- String[] templateYn = mjonMsgVO.getTemplateYn(); |
|
| 3316 |
- |
|
| 3317 |
- for(int i=0; i<path.length; i++) {
|
|
| 3318 |
- |
|
| 3319 |
- if("Y".equals(templateYn[i])) {
|
|
| 3320 |
- //템플릿 사용누계 증가 |
|
| 3321 |
- letterDAO.updateTemplateUseCount(fileId[i]); |
|
| 3322 |
- } |
|
| 3323 |
- |
|
| 3324 |
- String imgFilePath = mjonMsgDAO.selectPhotoImgFileRealPath(fileId[i]); |
|
| 3325 |
- |
|
| 3326 |
- // 아이하트, 현대퓨쳐넷 두 중계사는 이미지 경로는 풀패스 경로로 넘겨주면 됨 |
|
| 3327 |
- switch (i) {
|
|
| 3328 |
- case 0: |
|
| 3329 |
- mjonMsgVO.setFileName1(imgFilePath); |
|
| 3330 |
- break; |
|
| 3331 |
- case 1: |
|
| 3332 |
- mjonMsgVO.setFileName2(imgFilePath); |
|
| 3333 |
- break; |
|
| 3334 |
- default: |
|
| 3335 |
- mjonMsgVO.setFileName3(imgFilePath); |
|
| 3336 |
- break; |
|
| 3337 |
- } |
|
| 3303 |
+ //장문 메세지일 경우 |
|
| 3304 |
+ int fileCount = 0; |
|
| 3305 |
+ if(msgType.equals("6")) {
|
|
| 3306 |
+ |
|
| 3307 |
+ //그림 이미지가 첨부된 경우 |
|
| 3308 |
+ if(mjonMsgVO.getImgFilePath() != null || mjonMsgVO.getImgFilePath().length > 0) {
|
|
| 3309 |
+ |
|
| 3310 |
+ String[] path = mjonMsgVO.getImgFilePath(); |
|
| 3311 |
+ String[] fileId = mjonMsgVO.getImgFileId(); |
|
| 3312 |
+ String[] templateYn = mjonMsgVO.getTemplateYn(); |
|
| 3313 |
+ |
|
| 3314 |
+ for(int i=0; i<path.length; i++) {
|
|
| 3315 |
+ |
|
| 3316 |
+ if("Y".equals(templateYn[i])) {
|
|
| 3317 |
+ //템플릿 사용누계 증가 |
|
| 3318 |
+ letterDAO.updateTemplateUseCount(fileId[i]); |
|
| 3319 |
+ } |
|
| 3320 |
+ |
|
| 3321 |
+ String imgFilePath = mjonMsgDAO.selectPhotoImgFileRealPath(fileId[i]); |
|
| 3322 |
+ |
|
| 3323 |
+ // 아이하트, 현대퓨쳐넷 두 중계사는 이미지 경로는 풀패스 경로로 넘겨주면 됨 |
|
| 3324 |
+ switch (i) {
|
|
| 3325 |
+ case 0: |
|
| 3326 |
+ mjonMsgVO.setFileName1(imgFilePath); |
|
| 3327 |
+ break; |
|
| 3328 |
+ case 1: |
|
| 3329 |
+ mjonMsgVO.setFileName2(imgFilePath); |
|
| 3330 |
+ break; |
|
| 3331 |
+ default: |
|
| 3332 |
+ mjonMsgVO.setFileName3(imgFilePath); |
|
| 3333 |
+ break; |
|
| 3334 |
+ } |
|
| 3335 |
+ |
|
| 3336 |
+ |
|
| 3337 |
+ fileCount ++; |
|
| 3338 |
+ } |
|
| 3339 |
+ |
|
| 3340 |
+ //첨부파일 갯수 셋팅해주기 |
|
| 3341 |
+ mjonMsgVO.setFileCnt(Integer.toString(fileCount)); |
|
| 3342 |
+ |
|
| 3343 |
+ } |
|
| 3344 |
+ |
|
| 3345 |
+ } |
|
| 3338 | 3346 |
|
| 3339 | 3347 |
|
| 3340 |
- fileCount ++; |
|
| 3341 |
- } |
|
| 3348 |
+ // 파일 갯수는 있는데 파일 경로가 없는 경우 문자발송이 안되도록 튕겨내도록 함 - 20220520 우영두 |
|
| 3349 |
+ // 리펙토링 20240930 이호영 |
|
| 3350 |
+ if(fileCount > 0) {
|
|
| 3351 |
+ |
|
| 3352 |
+ //if(mjonMsgVO.getFileName1() == null && mjonMsgVO.getFileName2() == null && mjonMsgVO.getFileName3() == null) {
|
|
| 3342 | 3353 |
|
| 3343 |
- //첨부파일 갯수 셋팅해주기 |
|
| 3344 |
- mjonMsgVO.setFileCnt(Integer.toString(fileCount)); |
|
| 3345 |
- |
|
| 3346 |
- } |
|
| 3347 |
- |
|
| 3348 |
- } |
|
| 3349 |
- |
|
| 3350 |
- |
|
| 3351 |
- //파일 갯수는 있는데 파일 경로가 없는 경우 문자발송이 안되도록 튕겨내도록 함 - 20220520 우영두 |
|
| 3352 |
- if(fileCount > 0) {
|
|
| 3353 |
- |
|
| 3354 |
-// if(mjonMsgVO.getFileName1() == null && mjonMsgVO.getFileName2() == null && mjonMsgVO.getFileName3() == null) {
|
|
| 3355 |
- |
|
| 3356 |
- boolean allFilesAreNull = Stream.of( |
|
| 3357 |
- mjonMsgVO.getFileName1(), |
|
| 3358 |
- mjonMsgVO.getFileName2(), |
|
| 3359 |
- mjonMsgVO.getFileName3() |
|
| 3360 |
- ).allMatch(Objects::isNull); |
|
| 3361 |
- |
|
| 3362 |
- |
|
| 3363 |
- if (allFilesAreNull) {
|
|
| 3364 |
- return new StatusResponse(HttpStatus.NO_CONTENT |
|
| 3365 |
- , "문자 메세지 이미지 추가에 오류가 발생하여 문자 발송이 취소 되었습니다." |
|
| 3366 |
- ); |
|
| 3367 |
- |
|
| 3368 |
- } |
|
| 3369 |
- |
|
| 3370 |
- } |
|
| 3354 |
+ boolean allFilesAreNull = Stream.of( |
|
| 3355 |
+ mjonMsgVO.getFileName1(), |
|
| 3356 |
+ mjonMsgVO.getFileName2(), |
|
| 3357 |
+ mjonMsgVO.getFileName3() |
|
| 3358 |
+ ).allMatch(Objects::isNull); |
|
| 3359 |
+ |
|
| 3360 |
+ if (allFilesAreNull) {
|
|
| 3361 |
+ return new StatusResponse(HttpStatus.NO_CONTENT |
|
| 3362 |
+ , "문자 메세지 이미지 추가에 오류가 발생하여 문자 발송이 취소 되었습니다." |
|
| 3363 |
+ ); |
|
| 3364 |
+ } |
|
| 3365 |
+ } |
|
| 3371 | 3366 |
|
| 3372 | 3367 |
|
| 3373 | 3368 |
|
| 3374 |
- /* |
|
| 3375 |
- * 화면에서 넘어오는 단가 금액 및 총 결제 캐시 금액 체크 해주기 |
|
| 3376 |
- * 검증을 위해서 시스템 단가, 회원 협의 단가, 이벤트 단가 정보 조회 |
|
| 3377 |
- * 조회 단가를 이용하여 총 결제 캐시 금액 계산 |
|
| 3378 |
- * 파라미터로 넘어온 개별단가(eachPrice), 총 결제캐시(totPrice)를 비요하여 동일하지 않으면 컨트롤러에서 계산한 금액으로 입력해줌. |
|
| 3379 |
- */ |
|
| 3380 |
- |
|
| 3381 |
- |
|
| 3382 |
- MjonEventVO mjonEventVO = new MjonEventVO(); |
|
| 3383 |
- mjonEventVO.setMberId(userId); |
|
| 3384 |
- |
|
| 3385 |
- //1.시스템 기본 단가 정보 불러오기 |
|
| 3386 |
- JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo(); |
|
| 3387 |
- |
|
| 3388 |
- // 등급제 단가 추출 => 시스템 단가에 적용 |
|
| 3369 |
+ /* |
|
| 3370 |
+ * 화면에서 넘어오는 단가 금액 및 총 결제 캐시 금액 체크 해주기 |
|
| 3371 |
+ * 검증을 위해서 시스템 단가, 회원 협의 단가, 이벤트 단가 정보 조회 |
|
| 3372 |
+ * 조회 단가를 이용하여 총 결제 캐시 금액 계산 |
|
| 3373 |
+ * 파라미터로 넘어온 개별단가(eachPrice), 총 결제캐시(totPrice)를 비요하여 동일하지 않으면 컨트롤러에서 계산한 금액으로 입력해줌. |
|
| 3374 |
+ */ |
|
| 3375 |
+ |
|
| 3376 |
+ |
|
| 3377 |
+ MjonEventVO mjonEventVO = new MjonEventVO(); |
|
| 3378 |
+ mjonEventVO.setMberId(userId); |
|
| 3379 |
+ |
|
| 3380 |
+ //1.시스템 기본 단가 정보 불러오기 |
|
| 3381 |
+ JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo(); |
|
| 3382 |
+ |
|
| 3383 |
+ // 등급제 단가 추출 => 시스템 단가에 적용 |
|
| 3389 | 3384 |
// sysJoinSetVO = mberGrdService.selectMberGrdDefaultInfo(sysJoinSetVO, userId); |
| 3390 |
- |
|
| 3391 |
- //2.사용자 개인 단가 정보 불러오기 |
|
| 3392 |
- MberManageVO mberManageVO = mjonMsgDataDAO.selectMberManageInfo(userId); |
|
| 3393 |
- |
|
| 3394 |
- |
|
| 3395 |
- // 3. 사용자 단가 정보 설정 |
|
| 3396 |
- //협의 단가가 없는 경우 시스템 단가 적용해 주기 |
|
| 3397 |
- float shortPrice = MsgSendUtils.getValidPrice(mberManageVO.getShortPrice(), sysJoinSetVO.getShortPrice()); |
|
| 3398 |
- float longPrice = MsgSendUtils.getValidPrice(mberManageVO.getLongPrice(), sysJoinSetVO.getLongPrice()); |
|
| 3399 |
- float picturePrice = MsgSendUtils.getValidPrice(mberManageVO.getPicturePrice(), sysJoinSetVO.getPicturePrice()); |
|
| 3400 |
- float picture2Price = MsgSendUtils.getValidPrice(mberManageVO.getPicture2Price(), sysJoinSetVO.getPicture2Price()); |
|
| 3401 |
- float picture3Price = MsgSendUtils.getValidPrice(mberManageVO.getPicture3Price(), sysJoinSetVO.getPicture3Price()); |
|
| 3402 |
- |
|
| 3403 |
- |
|
| 3404 |
- // 기존 소수점 2째자리에서 반올림하였으나, 정책 변경으로 소수점 버림 처리함 |
|
| 3385 |
+ |
|
| 3386 |
+ //2.사용자 개인 단가 정보 불러오기 |
|
| 3387 |
+ MberManageVO mberManageVO = mjonMsgDataDAO.selectMberManageInfo(userId); |
|
| 3388 |
+ |
|
| 3389 |
+ |
|
| 3390 |
+ // 3. 사용자 단가 정보 설정 |
|
| 3391 |
+ //협의 단가가 없는 경우 시스템 단가 적용해 주기 |
|
| 3392 |
+ float shortPrice = MsgSendUtils.getValidPrice(mberManageVO.getShortPrice(), sysJoinSetVO.getShortPrice()); |
|
| 3393 |
+ float longPrice = MsgSendUtils.getValidPrice(mberManageVO.getLongPrice(), sysJoinSetVO.getLongPrice()); |
|
| 3394 |
+ float picturePrice = MsgSendUtils.getValidPrice(mberManageVO.getPicturePrice(), sysJoinSetVO.getPicturePrice()); |
|
| 3395 |
+ float picture2Price = MsgSendUtils.getValidPrice(mberManageVO.getPicture2Price(), sysJoinSetVO.getPicture2Price()); |
|
| 3396 |
+ float picture3Price = MsgSendUtils.getValidPrice(mberManageVO.getPicture3Price(), sysJoinSetVO.getPicture3Price()); |
|
| 3397 |
+ |
|
| 3398 |
+ |
|
| 3399 |
+ // 기존 소수점 2째자리에서 반올림하였으나, 정책 변경으로 소수점 버림 처리함 |
|
| 3405 | 3400 |
// boolean compareEndDate = false; |
| 3406 |
- float paramEachPrice = Float.parseFloat(mjonMsgVO.getEachPrice()); |
|
| 3401 |
+ float paramEachPrice = Float.parseFloat(mjonMsgVO.getEachPrice()); |
|
| 3402 |
+ |
|
| 3403 |
+ |
|
| 3404 |
+ MjonEventVO eventMberInfo = mjonEventService.selectEventMsgMberDefaultInfo(mjonEventVO); |
|
| 3405 |
+ // 호출부에서 handleEventStatus를 호출하고 예외 처리를 추가 |
|
| 3406 |
+ |
|
| 3407 |
+ // 기존 컨트롤러 2352 라인 |
|
| 3408 |
+ if (eventMberInfo != null) {
|
|
| 3409 |
+ String eventEndDate = eventMberInfo.getEventEndDate(); |
|
| 3410 |
+ boolean compareEndDate = MJUtil.getCompareDate(eventEndDate); |
|
| 3411 |
+ boolean isSuccess = handleEventStatus(eventMberInfo, paramEachPrice, mjonEventVO, compareEndDate); |
|
| 3412 |
+ |
|
| 3413 |
+ if (!isSuccess) {
|
|
| 3414 |
+ // 예외가 발생했을 때의 리턴 처리 |
|
| 3415 |
+ return new StatusResponse(HttpStatus.INTERNAL_SERVER_ERROR, "이벤트 상태 처리 중 오류가 발생했습니다."); |
|
| 3416 |
+ } |
|
| 3417 |
+ // 이벤트 진행 회원의 발송 단가 처리 |
|
| 3418 |
+ if(eventMberInfo != null && "Y".equals(eventMberInfo.getEventStatus()) && compareEndDate) {
|
|
| 3419 |
+ shortPrice = Float.parseFloat(eventMberInfo.getEventShortPrice()); |
|
| 3420 |
+ longPrice = Float.parseFloat(eventMberInfo.getEventLongPrice()); |
|
| 3421 |
+ picturePrice = Float.parseFloat(eventMberInfo.getEventPicturePrice()); |
|
| 3422 |
+ picture2Price = Float.parseFloat(eventMberInfo.getEventPicture2Price()); |
|
| 3423 |
+ picture3Price = Float.parseFloat(eventMberInfo.getEventPicture3Price()); |
|
| 3424 |
+ } |
|
| 3425 |
+ } |
|
| 3407 | 3426 |
|
| 3408 | 3427 |
|
| 3409 |
- MjonEventVO eventMberInfo = mjonEventService.selectEventMsgMberDefaultInfo(mjonEventVO); |
|
| 3410 |
- // 호출부에서 handleEventStatus를 호출하고 예외 처리를 추가 |
|
| 3411 |
- if (eventMberInfo != null) {
|
|
| 3412 |
- String eventEndDate = eventMberInfo.getEventEndDate(); |
|
| 3413 |
- boolean compareEndDate = MJUtil.getCompareDate(eventEndDate); |
|
| 3414 |
- boolean isSuccess = handleEventStatus(eventMberInfo, paramEachPrice, mjonEventVO, compareEndDate); |
|
| 3428 |
+ // 토탈금액 "," 리플레이스 처리 |
|
| 3429 |
+ mjonMsgVO.setTotPrice(mjonMsgVO.getTotPrice().replaceAll(",", ""));
|
|
| 3430 |
+ |
|
| 3431 |
+ float tmpOrgEachPrice = Float.parseFloat(mjonMsgVO.getEachPrice()); |
|
| 3432 |
+ float tmpOrgTotPrice = Float.parseFloat(mjonMsgVO.getTotPrice()); |
|
| 3433 |
+ |
|
| 3434 |
+ // 각 문자 종류별 단가 설정 |
|
| 3435 |
+ float tmpEachPrice = MsgSendUtils.determinePriceByMsgType(mjonMsgVO, shortPrice, longPrice, picturePrice, picture2Price, picture3Price); |
|
| 3436 |
+ mjonMsgVO.setEachPrice(Float.toString(tmpEachPrice)); |
|
| 3437 |
+ |
|
| 3438 |
+ // 수신자 총 수 * 단가를 통해 총 결제 금액 계산 |
|
| 3439 |
+ int tmpTotCallCnt = mjonMsgVO.getCallToList().length; |
|
| 3440 |
+ float tmpTotPrice = tmpTotCallCnt * tmpEachPrice; |
|
| 3441 |
+ |
|
| 3442 |
+ // 화면에서 넘어온 파라미터 개별 단가와 컨트롤러에서 계산한 단가를 비교하여 맞지 않으면 컨트롤러 계산 단가 입력 |
|
| 3443 |
+ if (tmpOrgEachPrice != tmpEachPrice) {
|
|
| 3444 |
+ mjonMsgVO.setEachPrice(Float.toString(tmpEachPrice)); |
|
| 3445 |
+ log.info("화면 : tmpOrgEachPrice ::: [{}]", tmpOrgEachPrice);
|
|
| 3446 |
+ log.info("컨트롤러 : tmpEachPrice ::: [{}]", tmpEachPrice);
|
|
| 3447 |
+ } else {
|
|
| 3448 |
+ log.info("tmpOrgEachPrice ::: [{}]", tmpOrgEachPrice);
|
|
| 3449 |
+ } |
|
| 3450 |
+ |
|
| 3451 |
+ if (tmpOrgTotPrice != tmpTotPrice) {
|
|
| 3452 |
+ mjonMsgVO.setTotPrice(Float.toString(tmpTotPrice)); |
|
| 3453 |
+ log.info("화면 : tmpOrgTotPrice ::: [{}]", tmpOrgTotPrice);
|
|
| 3454 |
+ log.info("컨트롤러 : tmpTotPrice ::: [{}]", tmpTotPrice);
|
|
| 3455 |
+ } else {
|
|
| 3456 |
+ log.info("tmpOrgTotPrice ::: [{}]", tmpOrgTotPrice);
|
|
| 3457 |
+ } |
|
| 3458 |
+ |
|
| 3459 |
+ |
|
| 3460 |
+ //////////////////////////////////////////////// |
|
| 3461 |
+ // 치환 여부 |
|
| 3462 |
+ //////////////////////////////////////////////// |
|
| 3463 |
+ StatusResponse statusResponse = new StatusResponse(); |
|
| 3464 |
+ if (MsgSendUtils.isReplacementRequired(mjonMsgVO)) {
|
|
| 3465 |
+ |
|
| 3466 |
+ if (!MsgSendUtils.isReplacementDataValid(mjonMsgVO)) {
|
|
| 3467 |
+ return new StatusResponse(HttpStatus.BAD_REQUEST, "특정문구 일괄변환 치환문자 데이터가 없습니다."); |
|
| 3468 |
+ } |
|
| 3469 |
+ |
|
| 3470 |
+ |
|
| 3471 |
+ if (!MsgSendUtils.checkReplacementDataValidity(mjonMsgVO, statusResponse)) {
|
|
| 3472 |
+ return statusResponse; |
|
| 3473 |
+ } |
|
| 3474 |
+ |
|
| 3475 |
+ |
|
| 3476 |
+ |
|
| 3477 |
+ // 치환 문자 리스트 생성 |
|
| 3478 |
+ ReplacementListsVO intiLists = MsgSendUtils.createReplacementLists(mjonMsgVO); |
|
| 3479 |
+ MsgSendUtils.populateReplacementLists(mjonMsgVO ,intiLists, statusResponse); |
|
| 3480 |
+ // 에러가 발생했는지 상태를 확인 |
|
| 3481 |
+ if (statusResponse.getStatus() == HttpStatus.BAD_REQUEST) {
|
|
| 3482 |
+ // 에러 메시지 처리 |
|
| 3483 |
+ return statusResponse; |
|
| 3484 |
+ } |
|
| 3485 |
+ |
|
| 3486 |
+ // 발송 처리 |
|
| 3487 |
+ statusResponse = processMessageSending(mjonMsgVO, intiLists, statusResponse); |
|
| 3488 |
+ } else {
|
|
| 3489 |
+ // 일반 문자 발송 |
|
| 3490 |
+ statusResponse = fncSendMsg(mjonMsgVO); |
|
| 3491 |
+ } |
|
| 3492 |
+ |
|
| 3493 |
+ return statusResponse; |
|
| 3415 | 3494 |
|
| 3416 |
- if (!isSuccess) {
|
|
| 3417 |
- // 예외가 발생했을 때의 리턴 처리 |
|
| 3418 |
- return new StatusResponse(HttpStatus.INTERNAL_SERVER_ERROR, "이벤트 상태 처리 중 오류가 발생했습니다."); |
|
| 3419 |
- } |
|
| 3420 |
- // 이벤트 진행 회원의 발송 단가 처리 |
|
| 3421 |
- if(eventMberInfo != null && "Y".equals(eventMberInfo.getEventStatus()) && compareEndDate) {
|
|
| 3422 |
- shortPrice = Float.parseFloat(eventMberInfo.getEventShortPrice()); |
|
| 3423 |
- longPrice = Float.parseFloat(eventMberInfo.getEventLongPrice()); |
|
| 3424 |
- picturePrice = Float.parseFloat(eventMberInfo.getEventPicturePrice()); |
|
| 3425 |
- picture2Price = Float.parseFloat(eventMberInfo.getEventPicture2Price()); |
|
| 3426 |
- picture3Price = Float.parseFloat(eventMberInfo.getEventPicture3Price()); |
|
| 3427 |
- } |
|
| 3428 |
- } |
|
| 3429 |
- |
|
| 3430 |
- |
|
| 3431 |
- // 토탈금액 "," 리플레이스 처리 |
|
| 3432 |
- mjonMsgVO.setTotPrice(mjonMsgVO.getTotPrice().replaceAll(",", ""));
|
|
| 3433 |
- |
|
| 3434 |
- float tmpOrgEachPrice = Float.parseFloat(mjonMsgVO.getEachPrice()); |
|
| 3435 |
- float tmpOrgTotPrice = Float.parseFloat(mjonMsgVO.getTotPrice()); |
|
| 3436 |
- |
|
| 3437 |
- // 각 문자 종류별 단가 설정 |
|
| 3438 |
- float tmpEachPrice = MsgSendUtils.determinePriceByMsgType(mjonMsgVO, shortPrice, longPrice, picturePrice, picture2Price, picture3Price); |
|
| 3439 |
- mjonMsgVO.setEachPrice(Float.toString(tmpEachPrice)); |
|
| 3440 |
- |
|
| 3441 |
- // 수신자 총 수 * 단가를 통해 총 결제 금액 계산 |
|
| 3442 |
- int tmpTotCallCnt = mjonMsgVO.getCallToList().length; |
|
| 3443 |
- float tmpTotPrice = tmpTotCallCnt * tmpEachPrice; |
|
| 3444 |
- |
|
| 3445 |
- // 화면에서 넘어온 파라미터 개별 단가와 컨트롤러에서 계산한 단가를 비교하여 맞지 않으면 컨트롤러 계산 단가 입력 |
|
| 3446 |
- if (tmpOrgEachPrice != tmpEachPrice) {
|
|
| 3447 |
- mjonMsgVO.setEachPrice(Float.toString(tmpEachPrice)); |
|
| 3448 |
- log.info("화면 : tmpOrgEachPrice ::: [{}]", tmpOrgEachPrice);
|
|
| 3449 |
- log.info("컨트롤러 : tmpEachPrice ::: [{}]", tmpEachPrice);
|
|
| 3450 |
- } else {
|
|
| 3451 |
- log.info("tmpOrgEachPrice ::: [{}]", tmpOrgEachPrice);
|
|
| 3452 |
- } |
|
| 3453 |
- |
|
| 3454 |
- if (tmpOrgTotPrice != tmpTotPrice) {
|
|
| 3455 |
- mjonMsgVO.setTotPrice(Float.toString(tmpTotPrice)); |
|
| 3456 |
- log.info("화면 : tmpOrgTotPrice ::: [{}]", tmpOrgTotPrice);
|
|
| 3457 |
- log.info("컨트롤러 : tmpTotPrice ::: [{}]", tmpTotPrice);
|
|
| 3458 |
- } else {
|
|
| 3459 |
- log.info("tmpOrgTotPrice ::: [{}]", tmpOrgTotPrice);
|
|
| 3460 |
- } |
|
| 3461 |
- |
|
| 3462 |
- |
|
| 3463 |
- //////////////////////////////////////////////// |
|
| 3464 |
- // 치환 여부 |
|
| 3465 |
- //////////////////////////////////////////////// |
|
| 3466 |
- StatusResponse statusResponse = new StatusResponse(); |
|
| 3467 |
- if (MsgSendUtils.isReplacementRequired(mjonMsgVO)) {
|
|
| 3468 |
- |
|
| 3469 |
- if (!MsgSendUtils.isReplacementDataValid(mjonMsgVO)) {
|
|
| 3470 |
- return new StatusResponse(HttpStatus.BAD_REQUEST, "특정문구 일괄변환 치환문자 데이터가 없습니다."); |
|
| 3471 |
- } |
|
| 3472 |
- |
|
| 3473 |
- |
|
| 3474 |
- if (!MsgSendUtils.checkReplacementDataValidity(mjonMsgVO, statusResponse)) {
|
|
| 3475 |
- return statusResponse; |
|
| 3476 |
- } |
|
| 3477 |
- |
|
| 3478 |
- |
|
| 3479 |
- |
|
| 3480 |
- // 치환 문자 리스트 생성 |
|
| 3481 |
- ReplacementListsVO intiLists = MsgSendUtils.createReplacementLists(mjonMsgVO); |
|
| 3482 |
- MsgSendUtils.populateReplacementLists(mjonMsgVO ,intiLists, statusResponse); |
|
| 3483 |
- // 에러가 발생했는지 상태를 확인 |
|
| 3484 |
- if (statusResponse.getStatus() == HttpStatus.BAD_REQUEST) {
|
|
| 3485 |
- // 에러 메시지 처리 |
|
| 3486 |
- return statusResponse; |
|
| 3487 |
- } |
|
| 3488 |
- |
|
| 3489 |
- |
|
| 3490 |
- |
|
| 3491 |
- // 발송 처리 |
|
| 3492 |
- statusResponse = processMessageSending(mjonMsgVO, intiLists, statusResponse); |
|
| 3493 |
- } else {
|
|
| 3494 |
- // 일반 문자 발송 |
|
| 3495 |
- statusResponse = fncSendMsg(mjonMsgVO); |
|
| 3496 |
- } |
|
| 3497 |
- |
|
| 3498 |
- return statusResponse; |
|
| 3499 |
- |
|
| 3500 |
- } |
|
| 3501 |
- |
|
| 3502 |
- |
|
| 3503 |
- // 그림 문자 발송 처리 메서드 |
|
| 3504 |
- private StatusResponse processMessageSending(MjonMsgVO mjonMsgVO, ReplacementListsVO lists, StatusResponse statusResponse) {
|
|
| 3495 |
+ } |
|
| 3496 |
+ |
|
| 3497 |
+ |
|
| 3498 |
+ // 그림 문자 발송 처리 메서드 |
|
| 3499 |
+ private StatusResponse processMessageSending(MjonMsgVO mjonMsgVO, ReplacementListsVO lists, StatusResponse statusResponse) {
|
|
| 3505 | 3500 |
|
| 3506 | 3501 |
Map<String, String> resultMap = new HashMap<String, String>(); |
| 3507 | 3502 |
// 단문 문자 발송 |
... | ... | @@ -3543,10 +3538,6 @@ |
| 3543 | 3538 |
|
| 3544 | 3539 |
statusResponse.setMessage(returnMessage); |
| 3545 | 3540 |
statusResponse.setObject(resultMap); |
| 3546 |
-// modelAndView.addObject("message", returnMessage);
|
|
| 3547 |
-// modelAndView.addObject("result", returnStatus);
|
|
| 3548 |
-// modelAndView.addObject("resultSts", "0");
|
|
| 3549 |
-// modelAndView.addObject("resultBlockSts", "0");
|
|
| 3550 | 3541 |
|
| 3551 | 3542 |
return statusResponse; |
| 3552 | 3543 |
} |
... | ... | @@ -3556,10 +3547,6 @@ |
| 3556 | 3547 |
Map<String, String> returnMap = new HashMap<String, String>(); |
| 3557 | 3548 |
returnMap.put("msgType", mjonMsgVO.getMsgType());
|
| 3558 | 3549 |
returnMap.put("msgGroupId", mjonMsgVO.getMsgGroupId());
|
| 3559 |
-// returnMap.put("message", returnMessage);
|
|
| 3560 |
-// returnMap.put("result", returnStatus);
|
|
| 3561 |
-// returnMap.put("resultSts", resultSts);
|
|
| 3562 |
-// returnMap.put("resultBlockSts", resultBlockSts);
|
|
| 3563 | 3550 |
|
| 3564 | 3551 |
|
| 3565 | 3552 |
statusResponse.setObject(returnMap); |
... | ... | @@ -4273,7 +4260,7 @@ |
| 4273 | 4260 |
// 이벤트 상태를 종료로 변경 |
| 4274 | 4261 |
mjonEventVO.setEventInfoId(eventMberInfo.getEventInfoId()); |
| 4275 | 4262 |
mjonEventVO.setEventStatus("E");
|
| 4276 |
- mjonEventVO.setEventMemo("발송 최소 금액(" + paramEachPrice + ") 부족 혹은 이벤트 종료일 초과로 종료");
|
|
| 4263 |
+ mjonEventVO.setEventMemo("발송 최소 금액("+ paramEachPrice +") 부족 혹은 이벤트 종료일 초과되어 이벤트 종료 시킴");
|
|
| 4277 | 4264 |
mjonEventVO.setEventRemainCash(eventRemainCash); |
| 4278 | 4265 |
mjonEventService.updateEventEndStatus(mjonEventVO); |
| 4279 | 4266 |
eventMberInfo.setEventStatus("E");
|
--- src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
+++ src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
... | ... | @@ -3165,6 +3165,7 @@ |
| 3165 | 3165 |
HttpServletRequest request, |
| 3166 | 3166 |
ModelMap model) throws Exception{
|
| 3167 | 3167 |
|
| 3168 |
+ |
|
| 3168 | 3169 |
return ResponseEntity.ok().body(mjonMsgDataService.sendMsgData_advc(mjonMsgVO, request)) ; |
| 3169 | 3170 |
|
| 3170 | 3171 |
} |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?