Compare commits

..

121 Commits

Author SHA1 Message Date
이대환
09f40f62e2 쇼핑몰 - 활성 환경(Active Profile)에 따른 타이틀 변경 2026-04-01 17:07:03 +09:00
이대환
569d5e8904 통합 관리자 - 활성 환경(Active Profile)에 따른 타이틀 변경 2026-04-01 17:07:03 +09:00
이대환
66df63b232 관리자 - 활성 환경(Active Profile)에 따른 타이틀 변경 2026-04-01 17:07:02 +09:00
이경숙
6c55f53647 결제 - 키움결제 모바일 적용 2026-04-01 17:05:19 +09:00
이경숙
33bb861300 결제 - 키움결제 매출전표에 키움 링크 추가 2026-04-01 15:36:35 +09:00
이대환
784ea1a6aa fix : 쇼핑몰 구독서비스 - 구독서비스 정보 조건부 숨김처리
fix : 관리자 구독서비스 수정 - 기본&판매정보 입력값 0 허용, 재고정책 변경 시 판매가능 재고수량 초기화
2026-04-01 15:14:31 +09:00
이경숙
92a50f7b39 결제 - 키움결제 중간 결제창 삭제 2026-03-31 18:19:13 +09:00
이경숙
6e48c10f60 결제 - 키움결제 sitemid db 연결 2026-03-31 17:53:13 +09:00
이경숙
93a00f0ac6 결제 - 키움결제 무이자할부 수정 2026-03-31 16:38:06 +09:00
이경숙
ed20ff652f 결제 - 키움결제 승인날짜 수정 2026-03-31 16:28:08 +09:00
이경숙
dbaf3d8dfe 결제 - 키움결제 적용 1차 2026-03-31 14:48:23 +09:00
이경숙
7e98b7acfb 결제 - 키움결제 적용 3차 2026-03-31 14:34:47 +09:00
이경숙
0c2be2d1d2 결제 - 키움결제 적용 2차 2026-03-30 18:44:05 +09:00
이대환
1df2a1ab65 개발환경 세팅 수정
(cherry picked from commit 8fd58d80b0)
2026-03-30 17:03:05 +09:00
이대환
3a00e1ab65 fix : 쇼핑몰 주문결제화면 - 배송지 정합성 검사(모바일) 2026-03-30 14:42:06 +09:00
김현욱
f248c38d72 개발환경 세팅 수정(2) 2026-03-27 18:10:17 +09:00
김현욱
8bc5302f4f 개발환경 세팅 수정(1) 2026-03-27 18:06:32 +09:00
김현욱
4b0b0b3c63 개발환경 세팅 수정 2026-03-27 17:58:37 +09:00
이대환
d6927d16a2 fix : 쇼핑몰 주문결제화면 - 배송지 정합성 검사 2026-03-27 14:26:07 +09:00
이대환
d4fc20fcec fix : 쇼핑몰 주문실패 화면 - 구독서비스 주문실패 분기 추가 2026-03-27 11:53:52 +09:00
이대환
5aa87c2526 fix : 쇼핑몰 주문완료 화면 - 구독서비스 주문완료 분기 추가 2026-03-27 11:49:32 +09:00
김현욱
3007f0780d 통합관리자 로그인 문구 수정 2026-03-26 18:05:58 +09:00
이경숙
721e28e4c2 결제 - DBurl 테스트 관련 수정 2026-03-26 16:25:55 +09:00
이경숙
b244579fca 결제관련 수정 2026-03-26 14:38:08 +09:00
김현욱
e1616910cd 마이페이지 > 주문배송 목록, 상세 수정 2026-03-25 17:48:14 +09:00
김현욱
5b483bd3b6 관리자, 통합관리자 로고변경 2026-03-25 17:46:46 +09:00
김현욱
c718b84439 전체주문조회화면(상세)에서 총결제금액 원화 표시 2026-03-25 16:51:02 +09:00
김현욱
eb1085836d 마이페이지 > 반품환불내역 클릭 시 동작 상태 동기화(PC,모바일) 2026-03-25 16:42:34 +09:00
김현욱
75355d63e6 warning 제거 2026-03-25 15:36:25 +09:00
김현욱
7df8d86ecc 주문 등록 주석 제거 2026-03-25 15:22:13 +09:00
이대환
2caa549e23 구독서비스 결제 적용(모바일) 2026-03-25 11:15:09 +09:00
김현욱
3a736fab1b 일반주문 할인 및 배송비 계산 수정(2) 2026-03-24 18:08:00 +09:00
이대환
393fb35802 fix : 구독서비스 결제 적용 2026-03-24 16:22:28 +09:00
이경숙
7b0f7327dc return url 파라미터 출력 추가 2026-03-23 16:31:28 +09:00
이경숙
534a8cf3da 키움결제 테스트 js 부분 수정 2026-03-23 16:16:11 +09:00
이경숙
b0b9ae46be 키움결제 테스트 2026-03-23 16:04:25 +09:00
김현욱
ef4f5f473c 일반주문 할인 및 배송비 계산 수정(1) 2026-03-23 15:35:42 +09:00
이대환
9a7386a08c 구독서비스 결제 적용(모바일) 2026-03-23 15:10:26 +09:00
jazz
1c96c1f1dd fix : 적립마일리지 0원 노출안함 & 구매시 예상적립내용 0원 노출 안함 2026-03-23 13:45:35 +09:00
jazz
0a05ab07d3 fix : 상품준비(35) 결제취소 가능하도록 수정 2026-03-20 18:21:39 +09:00
jazz
0cd6419b0a fix : 전체주문목록 주문구분 조건 추가 2026-03-20 18:04:02 +09:00
jazz
90deed795f fix : 구독서비스 사용자 상세 버튼명 수정 2026-03-20 14:35:44 +09:00
jazz
cf3905016c fix : 카테고리 상품목록 가장위로 2026-03-20 14:05:41 +09:00
jazz
808c124887 Merge remote-tracking branch 'origin/master' 2026-03-20 13:59:02 +09:00
jazz
f8763a0bea fix : 카테고리 상품목록 (모바일) 가장위로 2026-03-20 13:58:57 +09:00
이대환
bf427fcf53 구독서비스 결제 적용 2026-03-20 11:53:44 +09:00
jazz
60ce975739 fix : 화폐단위수정 2026-03-19 17:58:09 +09:00
이대환
a10847214d rollback : 장바구니 상품 목록 조회 쿼리 롤백 2026-03-19 15:46:59 +09:00
이대환
f0e614ee4a fix : 구독서비스 진행 현황 - 이미지 사이즈 조절 2026-03-19 10:38:08 +09:00
jazz
df45947913 Merge remote-tracking branch 'origin/master' 2026-03-19 10:24:22 +09:00
jazz
ac712b3d68 fix : 구독서비스 상세화면 환불금액 수정 2026-03-19 10:24:13 +09:00
이대환
bcc7371b7a 구독서비스 결제 적용 2026-03-19 10:09:51 +09:00
jazz
3e77f9bf31 fix : 쿠폰이미지 2026-03-18 14:59:57 +09:00
jazz
2c1d0425a4 fix : 쿠폰이미지 2026-03-18 14:43:24 +09:00
jazz
1640a89ec2 fix : 사용자 주문상세 반품신청 버튼 변경 2026-03-18 10:21:03 +09:00
jazz
fa337ec3a7 fix : 이메일/sms발송화면 호출개선 2026-03-17 17:57:16 +09:00
jazz
a229a7fec0 Merge remote-tracking branch 'origin/master' 2026-03-17 16:54:39 +09:00
jazz
d1573623a8 fix : 반품환불처리 원화계산로직 수정 2026-03-17 16:54:30 +09:00
김현욱
82f04ec36e 회원가입, 마이페이지에 휴대폰 번호 추가(1) 2026-03-17 15:35:46 +09:00
김현욱
c4d5db482d 회원가입, 마이페이지에 휴대폰 번호 추가 2026-03-17 15:31:12 +09:00
jazz
6f50cacde2 fix : 반품신청 주의사항 사이즈 변경 2026-03-17 15:00:11 +09:00
jazz
a7678b7b5a fix : 주문(구독서비스)상세 문구삭제 2026-03-17 13:34:41 +09:00
jazz
21baeb14b0 fix : 배송지관리 모달사이즈 조절 2026-03-17 12:13:14 +09:00
jazz
4d5f9c0903 fix : 비화원 장바구니 구매하기 화면 접근제어 2026-03-17 11:38:31 +09:00
jazz
b73bd46bd1 fix : 통합관리자 쇼핑몰 수정 - 팔때환율 제거 2026-03-17 10:35:56 +09:00
jazz
aa7b83e331 Merge remote-tracking branch 'origin/master' 2026-03-13 11:46:13 +09:00
jazz
83024e46d0 fix : 관리자 구독서비스 결제취소 2026-03-13 11:45:58 +09:00
김현욱
9336e895b0 환율적용 원화 결제 적용(4) 2026-03-13 10:28:53 +09:00
김현욱
ebe39d5037 환율적용 원화 결제 적용(3) 2026-03-13 10:27:26 +09:00
jazz
fa6371a099 fix : 관리자 결제취소, 환불 원화추가 2026-03-12 17:20:15 +09:00
김현욱
2edb9c30c7 환율적용 원화 결제 적용(2) 2026-03-12 15:37:40 +09:00
jazz
df09e3911d fix : 관리자 결제취소, 환불 원화추가 2026-03-12 14:28:09 +09:00
김현욱
da578da9e0 환율적용 원화 결제 적용(1) 2026-03-11 17:41:19 +09:00
이대환
c0410a82f6 fix : 배송지 관리 팝업 - 배송지 정보 선택 버튼 추가 2026-03-10 16:23:32 +09:00
김현욱
da9076981c 장바구니 및 구매패이지 원화 추가(1) 2026-03-10 15:36:44 +09:00
jazz
89d0978728 Merge remote-tracking branch 'origin/master' 2026-03-10 12:09:49 +09:00
jazz
e7a9499780 fix : 관리자 결제취소, 환불 원화추가 2026-03-10 12:09:42 +09:00
이대환
6114b7648c fix : 배송지 관리 팝업 - 배송지 정보 선택 버튼 추가 2026-03-10 11:15:49 +09:00
김현욱
c82f48966a 개인통관부호 처리 추가(2) 2026-03-06 14:56:19 +09:00
jazz
3dc906cfc6 fix : 결제취소, 환불 원화추가 2026-03-05 17:59:33 +09:00
이대환
1ed4ceafe8 fix : 주문결제 > 배송지 등록/수정 - 일본 주소(일본어) 옵션 추가(모바일) 2026-03-04 15:07:49 +09:00
jazz
066153a36b fix : 결제취소, 환불 원화추가 2026-03-04 14:39:26 +09:00
이대환
fdeb8ae26d 구독서비스 결제 화면 적용(모바일) 2026-03-04 11:20:53 +09:00
김현욱
38f85a7409 개인통관부호 처리 추가(1) 2026-03-03 18:15:11 +09:00
이대환
1b0a6f9624 fix : 쇼핑몰 배송지 관리 - 배송지 등록/수정 정합성 검사 2026-03-03 18:01:38 +09:00
이대환
381a53f332 fix : crm 주문등록 - 상품 추가 시 배송지 초기화 방지 2026-03-03 14:22:23 +09:00
이대환
4064f30bb9 구독서비스 결제 화면 적용(모바일) 2026-03-03 13:26:03 +09:00
jazz
797b36e42f fix : 사용자 마이페이지 일반주문상세내역 결제취소 조건 수정 2026-03-03 10:55:12 +09:00
jazz
7be3cedd31 fix : 관리자 주문목록 / 주문상세 수정 2026-02-27 15:51:58 +09:00
jazz
4512525495 Merge remote-tracking branch 'origin/master' 2026-02-27 15:19:47 +09:00
jazz
e24d0ef704 fix : 관리자 주문목록 / 주문상세 수정 2026-02-27 15:19:35 +09:00
김현욱
3ee3e1964e 개인통관부호 조회 추가 2026-02-27 14:39:45 +09:00
jazz
30cc498633 fix : 마이페이지 구독서비스 목록/상세 수정 2026-02-27 11:33:26 +09:00
jazz
b4d9aeba48 Merge remote-tracking branch 'origin/master' 2026-02-26 14:11:50 +09:00
jazz
f1bbe7b07c fix : 마이페이지 반품환불 원화금액 추가 2026-02-26 14:11:35 +09:00
김현욱
d3438b762f crm 스크립트 path 수정 2026-02-26 14:06:25 +09:00
이대환
43508a858b 구독서비스 결제 화면 적용 2026-02-26 11:07:19 +09:00
이대환
0ca70094c9 fix : 배송지 관리 팝업 - 배송지 정보 세팅 js 개선 2026-02-26 11:05:30 +09:00
jazz
176e0d874e fix : 반품환불 원화금액 추가 2026-02-26 10:41:46 +09:00
김현욱
9b91679ec6 배송그룹 설정에 따른 배송 처리 로직 추가 2026-02-25 18:04:09 +09:00
김현욱
e261fbff7d 안내문구 수정 2026-02-25 15:13:59 +09:00
jazz
2579d5c3f9 fix : 최근검색에 삭제 오류 수정 2026-02-25 11:29:06 +09:00
jazz
e731981a26 fix : ajax 오류 메시지 추출로직변경
as-is
	let message = JSON.parse(JSON.parse(request.responseText).resBody.message);
	alert(message.errorMsg);

to-be
    let message = JSON.parse(request.responseText).resBody.result;
    alert(message);
2026-02-25 10:51:56 +09:00
jazz
048bea431d fix : 마이페이지 반품/교환/취소 상세조회 2026-02-24 16:15:35 +09:00
이대환
dd67ee3b44 구독서비스 결제 화면 2026-02-24 10:28:43 +09:00
이대환
9c52b23fc0 구독서비스 결제 화면 2026-02-24 10:19:05 +09:00
jazz
c7f9910b44 fix : 마이페이지 반품/교환/취소 환불 조회조건 유지 2026-02-23 18:24:07 +09:00
이대환
f5ad9d1eed 비회원 장바구니/결제창 접근 제한 2026-02-20 18:25:52 +09:00
이대환
ae53e18a1e 비회원 장바구니/결제창 접근 제한 테스트 2026-02-20 18:14:41 +09:00
이대환
bdab97c65c fix : 구독서비스 목록 조회 쿼리 개선 2026-02-20 17:39:38 +09:00
jazz
666fef8bef fix : 파일사이즈 변경 2026-02-20 16:57:34 +09:00
이대환
888c02b3f2 fix : 게시글 등록 - 반품 안내문구
fix : 주문/배송조회 > 주문상세 - 무효/취소/반품 내역 제거
2026-02-20 16:45:56 +09:00
jazz
293bb016b8 fix : 구독서비스 상품준비 관리 최종차수 늦어진건 색표시 2026-02-20 11:32:23 +09:00
이대환
4ea4289a85 fix : 쇼핑몰 구독서비스 하단 탭바(모바일) 2026-02-20 10:20:04 +09:00
이대환
1419041bb9 fix : 쇼핑몰 구독서비스 스크롤 상단바 추가 2026-02-19 16:37:57 +09:00
jazz
33f82a1f94 fix : 관리자 전체 주문목록, 엑셀다운로드 2026-02-19 14:39:47 +09:00
jazz
b2a67966ee fix : 관리자 전체 주문목록, 주문->출고처리 출고처리 수정 2026-02-19 13:46:13 +09:00
이대환
3e64dd72a0 fix : 마이페이지 메인 - 최근 주문 (구독서비스) 추가 2026-02-19 10:00:37 +09:00
이대환
40dc7f7c85 fix : 구독서비스 주문/배송 - 적립금 관련 표시 제거
fix : 주문결제 > 배송지 정보 세팅 - 배송지역코드 관련 로직 추가
2026-02-13 17:48:33 +09:00
jazz
2448e856ba fix : 관리자 전체 주문목록, 주문->출고처리 목록조회 2026-02-12 18:23:38 +09:00
jazz
272cd36110 fix : 관리자 전체 주문목록, 주문->출고처리 목록조회 2026-02-12 17:22:05 +09:00
248 changed files with 16333 additions and 3040 deletions

8
Jenkinsfile vendored
View File

@@ -8,7 +8,7 @@ pipeline {
environment { environment {
SERVER_IP = "${DEPLOY_WAS_SERVER_IP}" SERVER_IP = "${DEPLOY_WAS_SERVER_IP}"
SERVER_USER = "tomcat" SERVER_USER = "tomcat"
TOMCAT_HOME = "${ENVIRONMENT == 'dev' ? '/var/lib/tomcat' : '/usr/local/tomcat'}" TOMCAT_HOME = "${ENVIRONMENT == 'dev' ? '/usr/local/tomcat' : '/usr/local/tomcat'}"
APP_NAME = "sakemall" APP_NAME = "sakemall"
ROOT_NAME = "ROOT" ROOT_NAME = "ROOT"
DEPLOY_PATH = "${TOMCAT_HOME}/webapps" DEPLOY_PATH = "${TOMCAT_HOME}/webapps"
@@ -21,7 +21,7 @@ pipeline {
GIT_BRANCH = "${ENVIRONMENT == 'dev' ? 'develop' : 'master'}" GIT_BRANCH = "${ENVIRONMENT == 'dev' ? 'develop' : 'master'}"
NGINX_STATIC_PATH = "/var/www/sopmall" NGINX_STATIC_PATH = "/var/www/sopmall"
NGINX_SERVER_IP = "${DEPLOY_WEB_SERVER_IP}" NGINX_SERVER_IP = "${DEPLOY_WEB_SERVER_IP}"
NGINX_USER = "${ENVIRONMENT == 'dev' ? 'dev1' : 'ubuntu'}" NGINX_USER = "${ENVIRONMENT == 'dev' ? 'ubuntu' : 'ubuntu'}"
// SSH_KEY_PATH = "C:/Users/CHAMDAHAN-41/.ssh/id_rsa" // SSH_KEY_PATH = "C:/Users/CHAMDAHAN-41/.ssh/id_rsa"
} }
@@ -41,8 +41,8 @@ pipeline {
properties([ properties([
parameters([ parameters([
choice(name: 'ENVIRONMENT', choices: ['dev'], description: '배포할 어플리케이션 profile 선택'), choice(name: 'ENVIRONMENT', choices: ['dev'], description: '배포할 어플리케이션 profile 선택'),
choice(name: 'DEPLOY_WAS_SERVER_IP', choices: ['00.00.00.00'], description: 'WAR 배포할 서버IP 선택'), choice(name: 'DEPLOY_WAS_SERVER_IP', choices: ['10.2.0.129'], description: 'WAR 배포할 서버IP 선택'),
choice(name: 'DEPLOY_WEB_SERVER_IP', choices: ['00.00.00.00'], description: 'STATIC RESOURCE 배포할 서버IP 선택'), choice(name: 'DEPLOY_WEB_SERVER_IP', choices: ['10.2.1.226'], description: 'STATIC RESOURCE 배포할 서버IP 선택'),
// choice(name: 'DEPLOY_TARGET', choices: ['ALL', 'WEB_ONLY', 'WAS_ONLY', 'PROPERTY_ONLY'], description: '배포 대상 선택'), // choice(name: 'DEPLOY_TARGET', choices: ['ALL', 'WEB_ONLY', 'WAS_ONLY', 'PROPERTY_ONLY'], description: '배포 대상 선택'),
string(name: 'GIT_REPO', defaultValue: 'http://115.68.207.90:3000/itfirst/sake.git', description: 'Git 레파지토리 URL'), string(name: 'GIT_REPO', defaultValue: 'http://115.68.207.90:3000/itfirst/sake.git', description: 'Git 레파지토리 URL'),
choice(name: 'DEPLOY_TARGET', choices: ['ALL', 'WEB_ONLY', 'WAS_ONLY'], description: '배포 대상 선택') choice(name: 'DEPLOY_TARGET', choices: ['ALL', 'WEB_ONLY', 'WAS_ONLY'], description: '배포 대상 선택')

View File

@@ -286,13 +286,7 @@ public class BOMaMtngController {
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND); return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
} }
} else { } else {
// if (CollectionUtils.isEmpty(multiOrdrDlvylc)) { // 여러곳배송처럼 처리하더라도 주소는 하나이므로 shipping 체크
// log.info("배송지 정보를 찾을 수 없습니다.");
// content.put("result","Y");
// content.put("message", "배송지 정보를 찾을 수 없습니다.");
// // throw new WnbtRestException("주문유형 정보를 찾을 수 없습니다.");
// return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
// }
if (CollectionUtils.isEmpty(shipping)) { if (CollectionUtils.isEmpty(shipping)) {
log.info("배송지 정보를 찾을 수 없습니다."); log.info("배송지 정보를 찾을 수 없습니다.");
content.put("result","Y"); content.put("result","Y");
@@ -329,91 +323,27 @@ public class BOMaMtngController {
String[] receptMbtlnbArray = null; // 배송지 받는이 휴대폰번호 String[] receptMbtlnbArray = null; // 배송지 받는이 휴대폰번호
if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원개인결제, 정기배송 if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원개인결제, 정기배송
if (!CollectionUtils.isEmpty(multiOrdrDlvylc)) { if (
StringUtil.isEmpty((String) shipping.get("dlvylcZip")) ||
// 배송지 리스트 StringUtil.isEmpty((String) shipping.get("dlvylcAdresDvCd")) ||
List<LinkedHashMap<String, Object>> dlvylcListMulti = (List<LinkedHashMap<String, Object>>) multiOrdrDlvylc.get("dlvylc"); ( "01".equals(shipping.get("dlvylcAdresDvCd")) && StringUtil.isEmpty((String) shipping.get("dlvylcRnmAdres")) ) ||
( "02".equals(shipping.get("dlvylcAdresDvCd")) && StringUtil.isEmpty((String) shipping.get("dlvylcLnbAdres")) ) ||
/** ----------------------------------------------- 배송지별 주문 상품 수량 검사 START ----------------------------------------------- */ StringUtil.isEmpty((String) shipping.get("dlvylcAdresDtl"))
content = checkDistributedQyMatchesOrder(goodsList, dlvylcListMulti); ) {
if (!"0".equals(content.get("status"))) {
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
}
/** ----------------------------------------------- 배송지별 주문 상품 수량 검사 END ----------------------------------------------- */
// 부정판매 체크를 위한 배송지 정렬
if (!CollectionUtils.isEmpty(dlvylcListMulti)) {
boolean hasInvalidAddress = dlvylcListMulti.stream().anyMatch(map -> {
String dlvylcZip = StringUtil.isNullToString(map.get("dlvylcZip"));
String adresDvCd = StringUtil.isNullToString(map.get("dlvylcAdresDvCd"));
String dlvylcLnbAdres = StringUtil.isNullToString(map.get("dlvylcLnbAdres"));
String dlvylcRnmAdres = StringUtil.isNullToString(map.get("dlvylcRnmAdres"));
String adresDtl = StringUtil.isNullToString(map.get("dlvylcAdresDtl"));
return StringUtil.isEmpty(dlvylcZip)
|| StringUtil.isEmpty(adresDvCd)
|| ("01".equals(adresDvCd) && StringUtil.isEmpty(dlvylcRnmAdres))
|| ("02".equals(adresDvCd) && StringUtil.isEmpty(dlvylcLnbAdres))
|| StringUtil.isEmpty(adresDtl);
});
if (hasInvalidAddress) {
content.put("result","Y"); content.put("result","Y");
content.put("message", "배송지 정보를 찾을 수 없습니다. 다시 시도해 주세요."); content.put("message", "배송지 정보를 찾을 수 없습니다. 다시 시도해 주세요.");
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND); return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
} }
List<String> adresList = dlvylcListMulti.stream() String dlvylcAdresDvCd = (String) shipping.get("dlvylcAdresDvCd");
.map(map -> { String dlvylcLnbAdres = (String) shipping.get("dlvylcLnbAdres");
String adresDvCd = StringUtil.isNullToString(map.get("dlvylcAdresDvCd")); String dlvylcRnmAdres = (String) shipping.get("dlvylcRnmAdres");
String adresDtl = StringUtil.isNullToString(map.get("dlvylcAdresDtl")); String dlvylcAdresDtl = (String) shipping.get("dlvylcAdresDtl");
String dlvylcLnbAdres = StringUtil.isNullToString(map.get("dlvylcLnbAdres"));
String dlvylcRnmAdres = StringUtil.isNullToString(map.get("dlvylcRnmAdres"));
String adresMulti;
if ("01".equals(adresDvCd)) {
adresMulti = dlvylcRnmAdres + " " + adresDtl;
} else {
adresMulti = dlvylcLnbAdres + " " + adresDtl;
}
return adresMulti; adres = "01".equals(dlvylcAdresDvCd) ? dlvylcRnmAdres + " " + dlvylcAdresDtl : dlvylcLnbAdres + " " + dlvylcAdresDtl;
})
.collect(Collectors.toList());
adresArray = adresList.toArray(new String[0]); String recpntMbtlnb = StringUtil.isNullToString(shipping.get("recpntMbtlnb"));
receptMbtlnbArray = new String[]{recpntMbtlnb};
List<String> receptMbtlnbList = dlvylcListMulti.stream()
.map(map -> {
return StringUtil.isNullToString(map.get("recpntMbtlnb"));
})
.collect(Collectors.toList());
receptMbtlnbArray = receptMbtlnbList.toArray(new String[0]);
}
}
// if (
// StringUtil.isEmpty((String) shipping.get("dlvylcZip")) ||
// StringUtil.isEmpty((String) shipping.get("dlvylcAdresDvCd")) ||
// ( "01".equals(shipping.get("dlvylcAdresDvCd")) && StringUtil.isEmpty((String) shipping.get("dlvylcRnmAdres")) ) ||
// ( "02".equals(shipping.get("dlvylcAdresDvCd")) && StringUtil.isEmpty((String) shipping.get("dlvylcLnbAdres")) ) ||
// StringUtil.isEmpty((String) shipping.get("dlvylcAdresDtl"))
// ) {
// content.put("result","Y");
// content.put("message", "배송지 정보를 찾을 수 없습니다. 다시 시도해 주세요.");
// return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
// }
//
// String dlvylcAdresDvCd = (String) shipping.get("dlvylcAdresDvCd");
// String dlvylcLnbAdres = (String) shipping.get("dlvylcLnbAdres");
// String dlvylcRnmAdres = (String) shipping.get("dlvylcRnmAdres");
// String dlvylcAdresDtl = (String) shipping.get("dlvylcAdresDtl");
//
// adres = "01".equals(dlvylcAdresDvCd) ? dlvylcRnmAdres + " " + dlvylcAdresDtl : dlvylcLnbAdres + " " + dlvylcAdresDtl;
//
// String recpntMbtlnb = StringUtil.isNullToString(shipping.get("recpntMbtlnb"));
// receptMbtlnbArray = new String[]{recpntMbtlnb};
} else if ("05".equals(ordrTyCd)) { // 여러곳 배송 } else if ("05".equals(ordrTyCd)) { // 여러곳 배송
if (!CollectionUtils.isEmpty(multiOrdrDlvylc)) { if (!CollectionUtils.isEmpty(multiOrdrDlvylc)) {

View File

@@ -419,8 +419,15 @@ public class BOMaMtngService {
//상품별 총 구매갯수 합계 //상품별 총 구매갯수 합계
Map<String, Integer> qySums = goodsList.stream() Map<String, Integer> qySums = goodsList.stream()
.collect(Collectors.groupingBy( .collect(Collectors.groupingBy(
goods -> {
// goodsInnb기준 키로 묶음 // goodsInnb기준 키로 묶음
goods -> goods.get("goodsInnb").toString(), Object key = goods.get("goodsInnb");
if(key == null) {
// subsvcInnb기준 키로 묶음
key = goods.get("subsvcInnb");
}
return key.toString();
},
// qy 값을 합산 // qy 값을 합산
Collectors.summingInt(goods -> Integer.parseInt(goods.getOrDefault("qy", "0").toString())) Collectors.summingInt(goods -> Integer.parseInt(goods.getOrDefault("qy", "0").toString()))
)); ));

View File

@@ -28,4 +28,12 @@ public class BOMaEmailSrchVO extends AbstractVO {
/*secretkey*/ /*secretkey*/
private String secretKey; private String secretKey;
/** 셋팅용 파라미터 tab구분
* send : 이메일 수동발송
* search : 이메일 발송내역*/
private String reqTab;
/** 셋팅용 파라미터 받는사람 이메일주소*/
private String email;
} }

View File

@@ -978,9 +978,9 @@ public class BOBbsService {
log.debug("분류 oldDvQesitmInnbs : {}", oldDvQesitmInnbs); log.debug("분류 oldDvQesitmInnbs : {}", oldDvQesitmInnbs);
log.debug("분류 olddvItmInnbs : {}", olddvItmInnbs); log.debug("분류 olddvItmInnbs : {}", olddvItmInnbs);
log.debug("분류 olddvItmInnbsArr : {}", olddvItmInnbsArr); log.debug("분류 olddvItmInnbsArr : {}", (Object) olddvItmInnbsArr);
log.debug("분류 qesitmInnb_d : {}", qesitmInnb_d); log.debug("분류 qesitmInnb_d : {}", (Object) qesitmInnb_d);
log.debug("분류 qesitmNm_d : {}", qesitmNm_d); log.debug("분류 qesitmNm_d : {}", (Object) qesitmNm_d);
log.debug("분류 qesitmInnb : {}", qesitmInnb); log.debug("분류 qesitmInnb : {}", qesitmInnb);
log.debug("분류 itmInnb_del : {}", itmInnb_del); log.debug("분류 itmInnb_del : {}", itmInnb_del);
@@ -1055,8 +1055,8 @@ public class BOBbsService {
} }
log.debug("필수 {}", vo.getOldIpQesitmInnbs()); log.debug("필수 {}", vo.getOldIpQesitmInnbs());
log.debug("필수 {}", vo.getQesitmEssntlAt_i()); log.debug("필수 {}", (Object) vo.getQesitmEssntlAt_i());
log.debug("사용 {}", vo.getQesitmUseAt_i()); log.debug("사용 {}", (Object) vo.getQesitmUseAt_i());
/** 게시판 추가 문항 수정 */ /** 게시판 추가 문항 수정 */
if (!ObjectUtils.isEmpty(vo.getQesitmInnb_i())) { if (!ObjectUtils.isEmpty(vo.getQesitmInnb_i())) {
String[] qesitmNm_i = vo.getQesitmNm_i(); String[] qesitmNm_i = vo.getQesitmNm_i();

View File

@@ -470,6 +470,8 @@ public interface BOPurchsMapper {
*/ */
public String selectRlSetleAmt(DataMap param); public String selectRlSetleAmt(DataMap param);
public String selectWonRlSetleAmt(DataMap param);
/** /**
* 0원 상품 포함시 짜투리 업데이트 ( 장바구니, 마일리지, 애누리 ) * 0원 상품 포함시 짜투리 업데이트 ( 장바구니, 마일리지, 애누리 )
* @param itemOptnVO * @param itemOptnVO

View File

@@ -1837,6 +1837,8 @@ public class BOPurchsService {
public Map<String, Object> selectSetleExpectAmt(DataMap param) { public Map<String, Object> selectSetleExpectAmt(DataMap param) {
Map<String, Object> content = new HashMap<>(); Map<String, Object> content = new HashMap<>();
log.debug("BOPurchsService.selectSetleExpectAmt-param : {}", param);
String sopmalCd = (String) param.get("sopmalCd"); String sopmalCd = (String) param.get("sopmalCd");
LinkedHashMap setleExpectAmtMap = new LinkedHashMap(){{ LinkedHashMap setleExpectAmtMap = new LinkedHashMap(){{
@@ -2296,15 +2298,16 @@ public class BOPurchsService {
BigDecimal goodsQy = new BigDecimal(0); BigDecimal goodsQy = new BigDecimal(0);
// 수량 조건
if ("Y".equals(cntCndUseAt) && cntCndAditAmt.compareTo(BigDecimal.ZERO) > 0) {
for (DataMap goodsMap : goodsByDlvyGroupList) { for (DataMap goodsMap : goodsByDlvyGroupList) {
BigDecimal qy = (BigDecimal) goodsMap.get("qy"); // 수량 BigDecimal qy = (BigDecimal) goodsMap.get("qy"); // 수량
// 수량 조건
if ("Y".equals(cntCndUseAt)) {
qy = (BigDecimal) goodsMap.get("qy"); // 수량 qy = (BigDecimal) goodsMap.get("qy"); // 수량
// cntCndAditAmt(설정수량)보다 qy가 큰 경우
if (qy.compareTo(cntCndAditAmt) > 0) { if (qy.compareTo(cntCndAditAmt) > 0) {
goodsQy = qy.divide(cntCndAditAmt, 0, RoundingMode.CEILING); goodsQy = qy.divide(cntCndAditAmt, 0, RoundingMode.CEILING);
//배송비 합(같은상품 수량당 배송비 책정) //배송비 합(같은상품 수량당 배송비 책정)
@@ -2328,9 +2331,11 @@ public class BOPurchsService {
} }
} }
} }
} //for
} else { } else {
//수량 조건 없는 경우 //수량 조건 없는 경우
paidDlvyAmt = paidDlvyAmt.add(dlvyAmt); // 유료배송비 합 paidDlvyAmt = paidDlvyAmt.add(dlvyAmt); // 유료배송비 합
// 추가배송비 계산 // 추가배송비 계산
if (!StringUtils.isEmpty(dlvyAreaAditAt) && "Y".equals(dlvyAreaAditAt)) { if (!StringUtils.isEmpty(dlvyAreaAditAt) && "Y".equals(dlvyAreaAditAt)) {
if (!StringUtils.isEmpty(defaultAdressAt) && "Y".equals(defaultAdressAt)) { if (!StringUtils.isEmpty(defaultAdressAt) && "Y".equals(defaultAdressAt)) {
@@ -2338,7 +2343,7 @@ public class BOPurchsService {
} }
} }
} }
} //for
} else { } else {
dlvyAmt = new BigDecimal(0); dlvyAmt = new BigDecimal(0);
dftDlvyAmt = new BigDecimal(0); dftDlvyAmt = new BigDecimal(0);

View File

@@ -20,6 +20,8 @@ public class BOOrderSetleVO extends AbstractVO {
private BigDecimal setleAmt; private BigDecimal setleAmt;
private BigDecimal wonSetleAmt;
private String pgCmpnyNm; private String pgCmpnyNm;
private String setleTyCd; private String setleTyCd;

View File

@@ -26,8 +26,14 @@ public class BOOrderShippingVO extends AbstractVO {
private String recpntMbtlnb; private String recpntMbtlnb;
private String dlvylcAreaCd;
private String cstmclerCd;
private String dlvylcZip; private String dlvylcZip;
private String prefcd;
private String dlvylcAdresDvCd; private String dlvylcAdresDvCd;
private String dlvylcLnbAdres; private String dlvylcLnbAdres;

View File

@@ -40,7 +40,11 @@ public class BOOrderVO extends AbstractVO {
private BigDecimal rlSetleAmt = new BigDecimal("0"); private BigDecimal rlSetleAmt = new BigDecimal("0");
private BigDecimal enuriAmt = new BigDecimal("0");; private BigDecimal enuriAmt = new BigDecimal("0");
private BigDecimal wonRlSetleAmt = new BigDecimal("0");
private BigDecimal buyRate = new BigDecimal("0");
private String ordrrNm; private String ordrrNm;
@@ -141,4 +145,6 @@ public class BOOrderVO extends AbstractVO {
private String secretKey; private String secretKey;
private String currOrdrSttusCd; private String currOrdrSttusCd;
private Integer subsvcInnb;
} }

View File

@@ -37,11 +37,13 @@ private static final long serialVersionUID = 1L;
/** 소비자가 */ /** 소비자가 */
private String cnsmrpric; private String cnsmrpric;
/** 판매가 */ /** 판매가 */
private String slepric; private Integer slepric;
/** 재고수량 */ /** 재고수량 */
private String invntryQy; private String invntryQy;
/** 판매재고수량 */ /** 판매재고수량 */
private String usefulInvntryQy; private String usefulInvntryQy;
/** 판매수량 초기화여부*/
private String usefulInvntryQyInit;
/** 재고정책 */ /** 재고정책 */
private String invntryPolicyCd; private String invntryPolicyCd;
/** 가용재고제한수량 */ /** 가용재고제한수량 */
@@ -99,4 +101,60 @@ private static final long serialVersionUID = 1L;
private String sortDv; private String sortDv;
/** 배열 구독서비스고유번호 */ /** 배열 구독서비스고유번호 */
private List<String> arrSubsvcInnb; private List<String> arrSubsvcInnb;
/** 결제정보 */
/** 회원고유번호 */
private Integer mbrInnb;
/** 회원구분코드 */
private String mbrDvCd;
/** 결제상품정보 */
/** 판매상품 고유번호 */
private Integer goodsInnb;
/** 상품옵션 고유번호 */
private Integer goodsOptnInnb;
/** 개수 */
private Integer qy;
/** 입력옵션 텍스트 */
private String inputOptn;
/** 입력옵션 텍스트 */
private String inputOptnText;
/** 배송그룹고유번호 */
private Integer dlvyGroupInnb;
/** 상품상태코드 */
private String goodsSttusCd;
/** 상품상태명 */
private String goodsSttusNm;
/** 상품명 */
private String goodsNm;
/** 상품옵션 타입 */
private String optnTy;
/** 옵션관계번호 */
private String optnRelateNb;
/** 복수할인여부 */
private String compnbDscntAt;
/** 구간할인여부 */
private String sctnDscntAt;
/** 옵션필수여부 */
private String optnEssntlAt;
/** 소비자가 합계 (형식적용) */
private String subCnsmrpricByFormat;
/** 소비자가 합계 */
private Integer subCnsmrpric;
/** 소비자가 (형식적용) */
private String cnsmrpricByFormat;
/** 옵션주문단가 × 옵션주문수량 (형식적용) */
private String subSlepricByFormat;
/** 옵션주문단가 × 옵션주문수량 */
private Integer subSlepric;
/** 할인금액 */
private Integer dscntAmt;
/** 할인적용금액 */
private Integer dscntApplyAmt;
/** 판매가 합계 (형식적용) */
private String slepricByFormat;
/** 상품이미지경로 */
private String goodsImgCours;
} }

View File

@@ -156,4 +156,11 @@ public class BOMssageVO extends AbstractVO {
/** 메세지 취소 구분코드 */ /** 메세지 취소 구분코드 */
private String cancelDvCd; private String cancelDvCd;
/** 셋팅용 파라미터 tab구분
* send : 메시지수동바송
* search : 메시지 발송내역*/
private String reqTab;
/** 셋팅용 파라미터 받는사람 휴대전화번호*/
private String mbtlnb;
} }

View File

@@ -9,6 +9,7 @@ import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOGoodsVO;
import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderItemOptnVO; import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderItemOptnVO;
import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderSetleVO; import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderSetleVO;
import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderVO; import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderVO;
import com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO;
import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrAppnVO; import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrAppnVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.*; import com.wb.domainserver.domain.gcone.ordr.ordr.vo.*;
@@ -335,6 +336,8 @@ public interface BOOrdrMapper {
*/ */
public List<DataMap> selectOrderShippingList(BOOrdrShippingVO ordrShippingVO); public List<DataMap> selectOrderShippingList(BOOrdrShippingVO ordrShippingVO);
public List<DataMap> selectOrderShippingListGrp(BOOrdrShippingVO ordrShippingVO);
/** /**
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문상세 > 배송지정보 상품 목록 조회 * 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문상세 > 배송지정보 상품 목록 조회
* @param paramMap * @param paramMap
@@ -349,6 +352,13 @@ public interface BOOrdrMapper {
*/ */
public List<DataMap> selectRefundShippingGoodsList(DataMap paramMap); public List<DataMap> selectRefundShippingGoodsList(DataMap paramMap);
/**
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문상세 > 배송지정보 수정 > 배송지정보 일치여부 확인
* @param ordrShippingVO
* @return Integer
*/
public Integer selectDlvylcAreaCdInfo(BOOrdrShippingVO ordrShippingVO);
/** /**
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문상세 > 배송지정보 수정 * 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문상세 > 배송지정보 수정
* @param ordrShippingVO * @param ordrShippingVO
@@ -662,6 +672,8 @@ public interface BOOrdrMapper {
*/ */
public DataMap selectBOSpbkGiftMultiDlvyAt(BOSpbkVO spbkVO); public DataMap selectBOSpbkGiftMultiDlvyAt(BOSpbkVO spbkVO);
public BigDecimal selectBuyRate(DataMap param);
/** /**
* 사용자 > 상품 > 장바구니 > 장바구니 상품 삭제 * 사용자 > 상품 > 장바구니 > 장바구니 상품 삭제
* @param goodsVO * @param goodsVO
@@ -982,6 +994,44 @@ public interface BOOrdrMapper {
* @return List<DataMap> * @return List<DataMap>
*/ */
public List<DataMap> selectMbrSubsvcOrdrList(BOOrdrDlvyVO ordrDlvyVO); public List<DataMap> selectMbrSubsvcOrdrList(BOOrdrDlvyVO ordrDlvyVO);
/**
* 사용자 > 주문완료 > 구독서비스 주문 목록 조회
* @param ordrDlvyVO
* @return List<DataMap>
*/
public List<DataMap> selectOrdrSubsvcDtllList(BOOrdrDlvyVO ordrDlvyVO);
/**
* 사용자 > 구독서비스 결제 > 구독서비스 주문 상품 목록 조회
* @param subsvcVO
* @return List<BOSubsvcVO>
*/
public List<BOSubsvcVO> selectSubsvcGoodsList(BOSubsvcVO subsvcVO);
/**
* 최종 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update
* @param refundVO
*/
public void updateBOWonRefundAmt(BOOrdrRefundVO refundVO);
/**
* 결제취소 시 구독서비스 환불금액 조회
* 계산식 : 전체결제금액 - 전체배송비 - 발송및취소된(35~85)상품금액
* @param refundVO
*/
public Integer selectSubsvcRefundAmt(BOOrdrRefundVO refundVO);
/**
* 키움결제 GC_ORDER_PG_API_LOG 결과 조회
* @param payVO
* @return List<DataMap>
*/
public DataMap selectKiwoomPgApiLog(BOPayVO payVO);
} }

View File

@@ -191,7 +191,11 @@ public class BOOrdrLogService {
pgResult = false; pgResult = false;
} else { } else {
if ("kcp".equals(payVO.getPgCmpnyNm())) { if("kiwoom".equals(payVO.getPgCmpnyNm())) {
resCd = "0000";
message = "결제 승인 성공";
//결제실패에 대한 응답은 없음
} else if ("kcp".equals(payVO.getPgCmpnyNm())) {
resCd = StringUtil.isNullToString(resultMap.get("res_cd")); resCd = StringUtil.isNullToString(resultMap.get("res_cd"));
message = StringUtil.isNullToString(resultMap.get("res_msg")); message = StringUtil.isNullToString(resultMap.get("res_msg"));
@@ -227,7 +231,7 @@ public class BOOrdrLogService {
String logDtlCn = ""; String logDtlCn = "";
String operNm = ""; String operNm = "";
String dvCd = payVO.getDvCd(); String dvCd = payVO.getDvCd();
String setleTyCd = payVO.getSetleTyCd(); //String setleTyCd = payVO.getSetleTyCd();
if ("02".equals(dvCd)) { // 관리자 주문 if ("02".equals(dvCd)) { // 관리자 주문
String mbrNm = ""; String mbrNm = "";
if (payVO.getMbrNm() != null) { if (payVO.getMbrNm() != null) {
@@ -311,7 +315,7 @@ public class BOOrdrLogService {
/** /**
* 주문 로그 단순 등록 * 주문 로그 단순 등록
* @param pgApiLogVO * @param logVO
*/ */
@Transactional(propagation = Propagation.REQUIRES_NEW) @Transactional(propagation = Propagation.REQUIRES_NEW)
public void insertBOOrderLogRegist(BOOrderLogVO logVO, boolean result, String message) { public void insertBOOrderLogRegist(BOOrderLogVO logVO, boolean result, String message) {
@@ -336,7 +340,7 @@ public class BOOrdrLogService {
/** /**
* 주문 종기능 로그 등록 * 주문 종기능 로그 등록
* @param pgApiLogVO * @param bellVO
*/ */
@Transactional(propagation = Propagation.REQUIRES_NEW) @Transactional(propagation = Propagation.REQUIRES_NEW)
public void insertBOOrderBellLogRegist(BOOrderLogVO bellVO) { public void insertBOOrderBellLogRegist(BOOrderLogVO bellVO) {

View File

@@ -81,7 +81,8 @@ public class BODwldItmVO extends AbstractVO {
item50("dlvy_amt_setle_mth_nm", "배송비결제방식"), item50("dlvy_amt_setle_mth_nm", "배송비결제방식"),
item51("ordr_ty_nm", "주문유형"), item51("ordr_ty_nm", "주문유형"),
item52("optn_cd_1", "상품코드"), item52("optn_cd_1", "상품코드"),
item53("dlvy_mssage_cn", "배송메시지"); item53("dlvy_mssage_cn", "배송메시지"),
item54("shipping_sttus_nm", "출고상태");
private final String key; private final String key;
private final String value; private final String value;

View File

@@ -36,6 +36,8 @@ public class BOOrdrDlvyVO extends AbstractVO {
private String sysDvCd; // 시스템 구분 코드 private String sysDvCd; // 시스템 구분 코드
private String subsvcAt; // 구독서비스 여부
/** 현재 주문 상태 */ /** 현재 주문 상태 */
private String currOrdrSttusCd; private String currOrdrSttusCd;

View File

@@ -46,10 +46,14 @@ public class BOOrdrRefundVO extends AbstractVO {
private BigDecimal refundAmt; // 환불금액 private BigDecimal refundAmt; // 환불금액
private BigDecimal wonRefundAmt; // 환불금액(원화)
private BigDecimal refundAccmlmnyAmt; // 환불적립금액 private BigDecimal refundAccmlmnyAmt; // 환불적립금액
private BigDecimal refundDlvyAmt; // 환불배송비총금액 private BigDecimal refundDlvyAmt; // 환불배송비총금액
private BigDecimal wonRefundDlvyAmt; // 환불배송비총금액(원화)
private BigDecimal mlgAccmlmnyAmt; // 적립금보정금액 private BigDecimal mlgAccmlmnyAmt; // 적립금보정금액
private String mlgAccmlmnyValidDt; // 적립금유효기간 private String mlgAccmlmnyValidDt; // 적립금유효기간
@@ -90,6 +94,8 @@ public class BOOrdrRefundVO extends AbstractVO {
private BigDecimal returnDlvyAmt; // 반품배송비금액 private BigDecimal returnDlvyAmt; // 반품배송비금액
private BigDecimal wonReturnDlvyAmt; // 반품배송비금액(원화)
private String returnDlvyTrgetCd; // 반품배송비수령대상코드 private String returnDlvyTrgetCd; // 반품배송비수령대상코드
private String returnDlvyRspnsblCd; // 반품배송비지불책임코드 private String returnDlvyRspnsblCd; // 반품배송비지불책임코드

View File

@@ -40,6 +40,9 @@ public class BOOrdrShippingVO extends AbstractVO {
/** 받는자휴대폰번호 */ /** 받는자휴대폰번호 */
private String recpntMbtlnb; private String recpntMbtlnb;
/** 배송지역코드 */
private String dlvylcAreaCd;
/** 배송지우편번호 */ /** 배송지우편번호 */
private String dlvylcZip; private String dlvylcZip;

View File

@@ -105,4 +105,7 @@ public class BOOrdrSrchVO extends AbstractVO{
private String excelCoulms; // 엑셀다운로드 조회 컬럼 private String excelCoulms; // 엑셀다운로드 조회 컬럼
private String ordrInnb; // 주문고유번호 private String ordrInnb; // 주문고유번호
/**주문구분*/
private String srchSubsvcAt;
} }

View File

@@ -151,6 +151,12 @@ public class BOOrdrVO extends AbstractVO {
/** 장바구니 고유번호 배열 */ /** 장바구니 고유번호 배열 */
private String[] cartInnbs; private String[] cartInnbs;
/** 구독서비스 주문여부 */
private String subsvcAt;
/** 구독서비스 고유번호 */
private String subsvcInnb;
/** 주문배송 고유번호 */ /** 주문배송 고유번호 */
private String ordrDlvyInnb; private String ordrDlvyInnb;

View File

@@ -32,6 +32,7 @@ import org.bouncycastle.openssl.jcajce.JceOpenSSLPKCS8DecryptorProviderBuilder;
import org.bouncycastle.operator.InputDecryptorProvider; import org.bouncycastle.operator.InputDecryptorProvider;
import org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo; import org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
import org.json.simple.parser.JSONParser; import org.json.simple.parser.JSONParser;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -103,7 +104,8 @@ public class BOPayService{
put("ordrInnb", OrderInnb); put("ordrInnb", OrderInnb);
}}; }};
return mapper.selectRlSetleAmt(paramMap); // return mapper.selectRlSetleAmt(paramMap);
return mapper.selectWonRlSetleAmt(paramMap);
} }
/* ============================================================================== */ /* ============================================================================== */
@@ -1467,10 +1469,94 @@ public class BOPayService{
} }
/* ============================================================================== */
/* = 여기서 부터 Kiwoom
/* = -------------------------------------------------------------------------- = */
/**
* Kiwoom 결제
* @param BOPayVO
*/
public Map<String, Object> insertKiwoomPay(BOPayVO payVO) throws Exception {
//관련 키값 DB 조회
/*DataMap resultMap = selectPayLink(payVO.getSopmalCd());
String reSetleAmt = StringUtil.isNullToString(selectRlSetleAmt(payVO.getSopmalCd(),payVO.getOrderId()));
reSetleAmt = reSetleAmt.isEmpty()? "10" : reSetleAmt; //0원은 정상거래로 인정되어서 10원으로 지정함*/
log.info("insertKiwoomPay step1 ");
String cpId = f_get_parm( payVO.getCpId());
String payMethod = f_get_parm( payVO.getPayMethod());
String orderNo = f_get_parm( payVO.getOrderId());
String type = f_get_parm( payVO.getType());
String amount = f_get_parm( payVO.getAmount());
JSONObject jsonObj = new JSONObject();
jsonObj.put("CPID", cpId);
jsonObj.put("PAYMETHOD", payMethod);
jsonObj.put("ORDERNO", orderNo);
jsonObj.put("TYPE", type);
jsonObj.put("AMOUNT", amount);
log.info("insertKiwoomPay step2 ::: {}", jsonObj);
//결제등록 요청시 실결제값(good_mny)
/*String payType = getPayMethod(payVO.getPayMethod());
jsonReq.put("ordr_mony", reSetleAmt); // ** 결제금액 유효성 검증 **
jsonReq.put("pay_type", payType); // ** 결제수단 유효성 검증 **
jsonReq.put("ordr_no", payVO.getOrderId()); // ** 주문번호검증 **
*/
String kiwoom_ENC = "";
try {
String url = "https://apitest.kiwoompay.co.kr/pay/hash";
URL goUrl = new URL(url);
HttpURLConnection con = (HttpURLConnection) goUrl.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
con.setUseCaches(false);
con.setDoOutput(true);
con.setDoInput(true);
OutputStream os = con.getOutputStream();
os.write((jsonObj.toString()).getBytes("euc-kr"));
os.flush();
os.close();
int responseCode = con.getResponseCode();
if (responseCode == 200) {
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response1 = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response1.append(inputLine);
}
in.close();
JSONObject jObj = (JSONObject) JSONValue.parse(response1.toString());
kiwoom_ENC = (String) jObj.get("KIWOOM_ENC");
log.info("insertKiwoomPay step3 ::: {}", jObj);
}
con.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
JSONObject resultObj = new JSONObject();
resultObj.put("KIWOOM_ENC", kiwoom_ENC);
log.info("insertKiwoomPay step4 ::: {}", resultObj.get("KIWOOM_ENC"));
return new HashMap<>() {{
put("response", resultObj.toString());
}};
}

View File

@@ -292,6 +292,9 @@ public class BOPayVO extends AbstractVO {
/** 테스트 여부 - 테스트용 */ /** 테스트 여부 - 테스트용 */
private String testAt; private String testAt;
/** 키움 - 상점ID */
private String cpId;
// cookie // cookie
/** 에이전트 ID */ /** 에이전트 ID */

View File

@@ -248,7 +248,7 @@ public interface BORtngudrefndMapper {
* @param boRtngudrefndVO * @param boRtngudrefndVO
* @return * @return
*/ */
public Integer selectBOORderRefundAmtSumInqire(BORtngudrefndVO boRtngudrefndVO); public DataMap selectBOORderRefundAmtSumInqire(BORtngudrefndVO boRtngudrefndVO);
/** /**

View File

@@ -31,6 +31,7 @@ import com.wb.domainserver.domain.gcone.setup.site.mapper.BOSiteMapper;
import com.wb.domainserver.domain.gcone.setup.site.vo.BOSetupContentsItemVO; import com.wb.domainserver.domain.gcone.setup.site.vo.BOSetupContentsItemVO;
import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.util.string.StringUtil; import com.wb.domainserver.util.string.StringUtil;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -249,7 +250,6 @@ public class BORtngudrefndService {
try { try {
if (boRtngudrefndVO.getRefundProcsSttusCd() != null) { if (boRtngudrefndVO.getRefundProcsSttusCd() != null) {
if (boRtngudrefndVO.getReturnCstmrTelnb() != null) { if (boRtngudrefndVO.getReturnCstmrTelnb() != null) {
@@ -278,28 +278,38 @@ public class BORtngudrefndService {
} }
} }
/*한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update를 위한 파라미터 셋팅*/
BOOrdrRefundVO refundVO = new BOOrdrRefundVO();
refundVO.setSopmalCd(boRtngudrefndVO.getSopmalCd());
refundVO.setOrdrInnb(new BigInteger(boRtngudrefndVO.getOrdrInnb()));
refundVO.setOrderRefundInnb(boRtngudrefndVO.getOrderRefundInnb());
if ( "01".equals(boRtngudrefndVO.getRefundTyCd()) ) { // 결제 취소 if ( "01".equals(boRtngudrefndVO.getRefundTyCd()) ) { // 결제 취소
if ("01".equals(boRtngudrefndVO.getRefundProcsSttusCd())) { if ("01".equals(boRtngudrefndVO.getRefundProcsSttusCd())) { // 환불신청
// TODO : 신청일때 로직 // TODO : 신청일때 로직
mapper.updateBOOrderReSttusUpdt(boRtngudrefndVO); // 반품/환불 상태값 수정 mapper.updateBOOrderReSttusUpdt(boRtngudrefndVO); // 반품/환불 상태값 수정
/* 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update */
ordrMapper.updateBOWonRefundAmt(refundVO);
} else if ("02".equals(boRtngudrefndVO.getRefundProcsSttusCd())) { } else if ("02".equals(boRtngudrefndVO.getRefundProcsSttusCd())) { //환불진행중
if ("01".equals(boRtngudrefndVO.getOldRefundProcsSttusCd())) { if ("01".equals(boRtngudrefndVO.getOldRefundProcsSttusCd())) { //이전 환불진행상태 = 환불신청
orderRefundSttusUpdtPorcs(boRtngudrefndVO); // 주문에 환불건 관련 상태 및 수량 업데이트 orderRefundSttusUpdtPorcs(boRtngudrefndVO); // 주문에 환불건 관련 상태 및 수량 업데이트
} }
if ( "02".equals(boRtngudrefndVO.getRefundMthCd()) ) { if ( "02".equals(boRtngudrefndVO.getRefundMthCd()) ) { //환불방법 = 무통장계좌이체
mapper.updateBOOrderReSttusUpdt(boRtngudrefndVO); // 반품/환불 상태값 수정 mapper.updateBOOrderReSttusUpdt(boRtngudrefndVO); // 반품/환불 상태값 수정
/* 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update */
ordrMapper.updateBOWonRefundAmt(refundVO);
} else { } else {
// message = updateBORefundProcsProcess(boRtngudrefndVO); // 완료시에만 환불 처리 // message = updateBORefundProcsProcess(boRtngudrefndVO); // 완료시에만 환불 처리
} }
} else if ("03".equals(boRtngudrefndVO.getRefundProcsSttusCd())) { } else if ("03".equals(boRtngudrefndVO.getRefundProcsSttusCd())) { //환불완료
if ("01".equals(boRtngudrefndVO.getOldRefundProcsSttusCd())) { // 신청에서 완료처리시 if ("01".equals(boRtngudrefndVO.getOldRefundProcsSttusCd())) { // 이전 환불진행상태 = 환불신청 => 신청에서 완료처리시
orderRefundSttusUpdtPorcs(boRtngudrefndVO); // 주문에 환불건 관련 상태 및 수량 업데이트 orderRefundSttusUpdtPorcs(boRtngudrefndVO); // 주문에 환불건 관련 상태 및 수량 업데이트
} }
@@ -313,6 +323,8 @@ public class BORtngudrefndService {
log.debug("상태 업데이트 파라미터 확인 : {}", boRtngudrefndVO); log.debug("상태 업데이트 파라미터 확인 : {}", boRtngudrefndVO);
mapper.updateBOOrderReSttusUpdt(boRtngudrefndVO); // 반품/환불 상태값 수정 mapper.updateBOOrderReSttusUpdt(boRtngudrefndVO); // 반품/환불 상태값 수정
/* 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update */
ordrMapper.updateBOWonRefundAmt(refundVO);
} else if ( "02".equals(boRtngudrefndVO.getRefundProcsSttusCd()) && "02".equals(boRtngudrefndVO.getReturnProcsSttusCd()) ) { // 상품 받은거 확인하고 돈을 입금하지않았을 경우 } else if ( "02".equals(boRtngudrefndVO.getRefundProcsSttusCd()) && "02".equals(boRtngudrefndVO.getReturnProcsSttusCd()) ) { // 상품 받은거 확인하고 돈을 입금하지않았을 경우
@@ -321,6 +333,8 @@ public class BORtngudrefndService {
} }
mapper.updateBOOrderReSttusUpdt(boRtngudrefndVO); // 반품/환불 상태값 수정 mapper.updateBOOrderReSttusUpdt(boRtngudrefndVO); // 반품/환불 상태값 수정
/* 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update */
ordrMapper.updateBOWonRefundAmt(refundVO);
} else if ( "03".equals(boRtngudrefndVO.getRefundProcsSttusCd()) && "02".equals(boRtngudrefndVO.getReturnProcsSttusCd()) ) { // 상품 받은거 확인하고 } else if ( "03".equals(boRtngudrefndVO.getRefundProcsSttusCd()) && "02".equals(boRtngudrefndVO.getReturnProcsSttusCd()) ) { // 상품 받은거 확인하고
@@ -466,21 +480,35 @@ public class BORtngudrefndService {
Long lordrInnb = Long.valueOf(ordrInnb); Long lordrInnb = Long.valueOf(ordrInnb);
BigInteger intOrdrInnb = BigInteger.valueOf(lordrInnb); BigInteger intOrdrInnb = BigInteger.valueOf(lordrInnb);
String sopmalCd = refundVO.getSopmalCd(); String sopmalCd = refundVO.getSopmalCd();
Integer refundAmt = 0; Integer refundAmt = 0; //현재 상품환불금액
Integer wonRefundAmt = 0; //현재 상품환불금액(원화)
if (!CollectionUtils.isEmpty(orderReItemVOList)) { if (!CollectionUtils.isEmpty(orderReItemVOList)) {
refundAmt = orderReItemVOList.stream() refundAmt = orderReItemVOList.stream()
.mapToInt(BOOrderReItemVO::getGoodsRefundAmt) .mapToInt(BOOrderReItemVO::getGoodsRefundAmt)
.sum(); .sum();
} else { } else {
refundAmt = Integer.parseInt(refundVO.getRefundAmt()); // 현재 환불 금액 refundAmt = Integer.parseInt(refundVO.getRefundAmt()); // 현재 상품환불금액
}
wonRefundAmt = Integer.parseInt(refundVO.getWonRefundAmt()); //현재 상품환불금액(원화)
DataMap beforeRefund = mapper.selectBOORderRefundAmtSumInqire(refundVO);
Integer orderRefundAmtSum = 0; // 해당주문의 이전 총환불금액
Integer wonOrderRefundAmtSum = 0; // 해당주문의 이전 총환불금액(원화)
if(!ObjectUtils.isEmpty(beforeRefund)) {
orderRefundAmtSum = ((BigDecimal) beforeRefund.get("orderRefundAmtSum")).intValue(); // 해당주문의 이전 총환불금액
wonOrderRefundAmtSum = ((BigDecimal)beforeRefund.get("wonOrderRefundAmtSum")).intValue(); // 해당주문의 이전 총환불금액(원화)
} }
Integer orderRefundAmtSum = mapper.selectBOORderRefundAmtSumInqire(refundVO); // 해당 주문의 총 환불금액
Integer dlvyAmtRefundAmt = 0; // 최종 배송비 처리 금액 ( 환불 배송비, 반품 배송비 조건에 따라 변동 ) Integer dlvyAmtRefundAmt = 0; // 최종 배송비 처리 금액 ( 환불 배송비, 반품 배송비 조건에 따라 변동 )
Integer wonDlvyAmtRefundAmt = 0; // 최종 배송비 처리 금액 ( 환불 배송비, 반품 배송비 조건에 따라 변동 )
Integer refundDlvyAmt = 0; // 환불 배송비 금액 Integer refundDlvyAmt = 0; // 환불 배송비 금액
Integer wonRefundDlvyAmt = 0; // 환불 배송비 금액
Integer finalRefundAmt = 0; Integer finalRefundAmt = 0;
Integer finalWonRefundAmt = 0;
finalRefundAmt = refundAmt; finalRefundAmt = refundAmt;
finalWonRefundAmt = wonRefundAmt;
try { try {
@@ -506,16 +534,19 @@ public class BORtngudrefndService {
*/ */
refundDlvyAmt = Integer.parseInt(refundVO.getRefundDlvyAmt()); refundDlvyAmt = Integer.parseInt(refundVO.getRefundDlvyAmt());
wonRefundDlvyAmt = Integer.parseInt(refundVO.getWonRefundDlvyAmt());
log.debug("여기 아래부터 배송비랑 환불금액 산정하는데 그전에 refundVO 데이터 확인 : {}", refundVO); log.debug("여기 아래부터 배송비랑 환불금액 산정하는데 그전에 refundVO 데이터 확인 : {}", refundVO);
if ("01".equals(refundVO.getRefundTyCd())) { if ("01".equals(refundVO.getRefundTyCd())) {
refundAmt += refundDlvyAmt; // 환불 배송비 포함 반품 refundAmt += refundDlvyAmt; // 환불 배송비 포함 반품
wonRefundAmt += wonRefundDlvyAmt;
refundVO.setDlvyAmtRefundAmt("0"); refundVO.setDlvyAmtRefundAmt("0");
} else if ("02".equals(refundVO.getRefundTyCd())) { } else if ("02".equals(refundVO.getRefundTyCd())) {
dlvyAmtRefundAmt = Integer.parseInt(refundVO.getReturnDlvyAmt()); dlvyAmtRefundAmt = Integer.parseInt(refundVO.getReturnDlvyAmt());
wonDlvyAmtRefundAmt = Integer.parseInt(refundVO.getWonReturnDlvyAmt());
// 배송비 책임 // 배송비 책임
if ("01".equals(refundVO.getReturnDlvyRspnsblCd())) { // 구매자 책임 if ("01".equals(refundVO.getReturnDlvyRspnsblCd())) { // 구매자 책임
@@ -530,12 +561,14 @@ public class BORtngudrefndService {
if ("02".equals(refundVO.getReturnDlvyPymntTyCd()) && refundVO.getReturnDlvyAmt() != null) { // 환불금액에서 차감 if ("02".equals(refundVO.getReturnDlvyPymntTyCd()) && refundVO.getReturnDlvyAmt() != null) { // 환불금액에서 차감
// refundAmt -= dlvyAmtRefundAmt; // refundAmt -= dlvyAmtRefundAmt;
refundAmt = refundAmt - dlvyAmtRefundAmt > 0 ? refundAmt - dlvyAmtRefundAmt : 0; refundAmt = refundAmt - dlvyAmtRefundAmt > 0 ? refundAmt - dlvyAmtRefundAmt : 0;
wonRefundAmt = wonRefundAmt - wonDlvyAmtRefundAmt > 0 ? wonRefundAmt - wonDlvyAmtRefundAmt : 0;
} }
refundVO.setDlvyAmtRefundAmt(StringUtil.isNullToString(dlvyAmtRefundAmt)); refundVO.setDlvyAmtRefundAmt(StringUtil.isNullToString(dlvyAmtRefundAmt));
} else if ("02".equals(refundVO.getReturnDlvyRspnsblCd())) { // 판매자 } else if ("02".equals(refundVO.getReturnDlvyRspnsblCd())) { // 판매자
refundAmt += refundDlvyAmt; // 환불 배송비 포함 반품 refundAmt += refundDlvyAmt; // 환불 배송비 포함 반품
wonRefundAmt += wonRefundDlvyAmt;
refundVO.setDlvyAmtRefundAmt("0"); refundVO.setDlvyAmtRefundAmt("0");
} }
@@ -568,13 +601,23 @@ public class BORtngudrefndService {
log.info("setle : {}", setle); log.info("setle : {}", setle);
Integer setleAmt = setle.getSetleAmt(); // 결제금액 Integer setleAmt = setle.getSetleAmt(); // 결제금액
Integer wonSetleAmt = setle.getWonSetleAmt(); // 결제금액(원화)
Integer remMnyAmt = setleAmt - orderRefundAmtSum; Integer remMnyAmt = setleAmt - orderRefundAmtSum;
log.info("이번 환불 결제건에서 환불할 금액 확인 remMnyAmt : {}", remMnyAmt); Integer wonRemMnyAmt = wonSetleAmt - wonOrderRefundAmtSum;
log.info("이번 환불 결제건에서 환불할 금액 확인 refundAmt : {}", refundAmt);
log.info("이번 환불 결제건에서 환불할 금액 확인 orderRefundAmtSum : {}", orderRefundAmtSum); log.info("이번 환불 결제건에서 환불할 금액 확인 remMnyAmt : {}, {}", remMnyAmt, wonRemMnyAmt);
log.info("이번 환불 결제건에서 환불할 금액 확인 refundAmt : {}, {}", refundAmt, wonRefundAmt);
log.info("이번 환불 결제건에서 환불할 금액 확인 orderRefundAmtSum : {}, {}", orderRefundAmtSum, wonOrderRefundAmtSum);
Integer cancelAmt = 0; // 취소금액 Integer cancelAmt = 0; // 취소금액
Integer wonCancelAmt = 0; // 취소금액(원화)
// 환불금액, 결제금액 - (이전환불금액 - 환불금액)
cancelAmt = Math.min(refundAmt, setleAmt - (orderRefundAmtSum - refundAmt)); cancelAmt = Math.min(refundAmt, setleAmt - (orderRefundAmtSum - refundAmt));
log.info("이번 환불 결제건에서 환불할 금액 확인 cancelAmt : {}", cancelAmt); wonCancelAmt = Math.min(wonRefundAmt, wonSetleAmt - (wonOrderRefundAmtSum - wonRefundAmt));
log.info("이번 환불 결제건에서 환불할 금액 확인 cancelAmt : {}, {}", cancelAmt, wonCancelAmt);
Integer receiptCancelAmt = cancelAmt; // 현금영수증 취소금액 Integer receiptCancelAmt = cancelAmt; // 현금영수증 취소금액
log.info("이번 환불 결제건에서 환불할 현금영수증 GC 머니 추가 전 금액 확인 receiptCancelAmt : {}", receiptCancelAmt); log.info("이번 환불 결제건에서 환불할 현금영수증 GC 머니 추가 전 금액 확인 receiptCancelAmt : {}", receiptCancelAmt);
@@ -734,6 +777,7 @@ public class BORtngudrefndService {
} }
/************************** KCP 환불 코드 세팅 END *************************/ /************************** KCP 환불 코드 세팅 END *************************/
// 02:무통장계좌이체, 08:마일리지, 13:수동
if ("02".equals(setle.getSetleTyCd()) || "08".equals(setle.getSetleTyCd()) || "13".equals(setle.getSetleTyCd())) { if ("02".equals(setle.getSetleTyCd()) || "08".equals(setle.getSetleTyCd()) || "13".equals(setle.getSetleTyCd())) {
if ("02".equals(setle.getSetleTyCd())) { // 무통장입금 if ("02".equals(setle.getSetleTyCd())) { // 무통장입금
@@ -788,8 +832,6 @@ public class BORtngudrefndService {
// TODO : // TODO :
} else if ("08".equals(setle.getSetleTyCd())) { // 마일리지
// 마일리지 사용취소로 처리
} else if ("09".equals(setle.getSetleTyCd())) { } else if ("09".equals(setle.getSetleTyCd())) {
// 포스 환불은 포스기계쪽에서 처리됌 GCONE 에서는 데이터 처리만 진행 // 포스 환불은 포스기계쪽에서 처리됌 GCONE 에서는 데이터 처리만 진행
} else if ("11".equals(setle.getSetleTyCd())) { // TODO : 복합 결제 취소 로직 확인 필요 } else if ("11".equals(setle.getSetleTyCd())) { // TODO : 복합 결제 취소 로직 확인 필요
@@ -812,9 +854,9 @@ public class BORtngudrefndService {
payVO.setCancelReason(refundVO.getRefundResnCn()); // 취소사유 payVO.setCancelReason(refundVO.getRefundResnCn()); // 취소사유
if ("01".equals(refundVO.getRefundScopeCd())) { if ("01".equals(refundVO.getRefundScopeCd())) {
payVO.setCancelAmount(String.valueOf(cancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 ) payVO.setCancelAmount(String.valueOf(wonCancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 )
} else if ("02".equals(refundVO.getRefundScopeCd())) { } else if ("02".equals(refundVO.getRefundScopeCd())) {
payVO.setCancelAmount(String.valueOf(cancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 ) payVO.setCancelAmount(String.valueOf(wonCancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 )
} }
payVO.setBank(refundVO.getRefundAcntBnnkCd()); // 환불 은행코드 payVO.setBank(refundVO.getRefundAcntBnnkCd()); // 환불 은행코드
@@ -841,10 +883,12 @@ public class BORtngudrefndService {
payVO.setMId(setle.getSetleMid()); // 결제 MID(상점키) payVO.setMId(setle.getSetleMid()); // 결제 MID(상점키)
payVO.setPaymentKey(setle.getDelngNb()); // 거래번호 payVO.setPaymentKey(setle.getDelngNb()); // 거래번호
log.info("토스 취소 파라미터 확인 : {}", payVO); log.info("토스 취소 파라미터 확인 : {}", payVO);
setleCancelResultMessage = payService.cancelTossPay(payVO); setleCancelResultMessage = payService.cancelTossPay(payVO);
log.info("결제 취소 API 결과 확인 : {}", setleCancelResultMessage); log.info("결제 취소 API 결과 확인 : {}", setleCancelResultMessage);
log.info("결제 취소 API 결과 확인 : {}", setleCancelResultMessage.get("response")); log.info("결제 취소 API 결과 확인 : {}", setleCancelResultMessage.get("response"));
String jsonString = (String) setleCancelResultMessage.get("response"); String jsonString = (String) setleCancelResultMessage.get("response");
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
responseMap = objectMapper.readValue(jsonString, Map.class); responseMap = objectMapper.readValue(jsonString, Map.class);
@@ -984,7 +1028,7 @@ public class BORtngudrefndService {
payVO.setSetleTyCd(setle.getSetleTyCd()); // 결제 유형 코드 payVO.setSetleTyCd(setle.getSetleTyCd()); // 결제 유형 코드
payVO.setCancelReason(refundVO.getRefundResnCn()); // 취소사유 payVO.setCancelReason(refundVO.getRefundResnCn()); // 취소사유
payVO.setCancelAmount(String.valueOf(cancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 ) payVO.setCancelAmount(String.valueOf(wonCancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 )
payVO.setBank(refundVO.getRefundAcntBnnkCd()); // 계좌 입금 후 취소시 환불은행코드? payVO.setBank(refundVO.getRefundAcntBnnkCd()); // 계좌 입금 후 취소시 환불은행코드?
payVO.setAccountNumber(refundVO.getRefundAcntnb()); // 환불 계좌번호 payVO.setAccountNumber(refundVO.getRefundAcntnb()); // 환불 계좌번호
@@ -992,8 +1036,8 @@ public class BORtngudrefndService {
payVO.setTno(setle.getDelngNb()); // 거래번호 payVO.setTno(setle.getDelngNb()); // 거래번호
payVO.setModType(refundModeType); // 전체 취소, 부분 취소 payVO.setModType(refundModeType); // 전체 취소, 부분 취소
payVO.setModMny(String.valueOf(cancelAmt)); // 부분취소 요청 금액 payVO.setModMny(String.valueOf(wonCancelAmt)); // 부분취소 요청 금액
payVO.setRemMny(String.valueOf(remMnyAmt)); // 부분취소 가능 금액 payVO.setRemMny(String.valueOf(wonRemMnyAmt)); // 부분취소 가능 금액
payVO.setSubModType(sub_mod_type); // 전체 취소, 부분 취소 payVO.setSubModType(sub_mod_type); // 전체 취소, 부분 취소
@@ -1202,6 +1246,7 @@ public class BORtngudrefndService {
// ########################################### 최종 반품/환불 상태변경 ########################################### // ########################################### 최종 반품/환불 상태변경 ###########################################
boRtngudrefndVO.setRefundAmt(String.valueOf(finalRefundAmt)); boRtngudrefndVO.setRefundAmt(String.valueOf(finalRefundAmt));
boRtngudrefndVO.setWonRefundAmt(String.valueOf(finalWonRefundAmt));
boRtngudrefndVO.setDlvyAmtRefundAmt(refundVO.getDlvyAmtRefundAmt()); boRtngudrefndVO.setDlvyAmtRefundAmt(refundVO.getDlvyAmtRefundAmt());
boRtngudrefndVO.setRefundProcsSttusCd("03"); boRtngudrefndVO.setRefundProcsSttusCd("03");
log.debug("환불 상태값이랑 정보 수정하기 전 boRtngudrefndVO :: {}", boRtngudrefndVO); log.debug("환불 상태값이랑 정보 수정하기 전 boRtngudrefndVO :: {}", boRtngudrefndVO);

View File

@@ -23,6 +23,8 @@ public class BORefundSetleVO extends AbstractVO {
private Integer setleAmt; private Integer setleAmt;
private Integer wonSetleAmt;
private String pgCmpnyNm; private String pgCmpnyNm;
private String pgInnb; private String pgInnb;

View File

@@ -15,7 +15,7 @@ public class BORtngudrefndVO extends AbstractVO{
private String ordrDlvyInnb; private String ordrDlvyInnb;
private String[] ordrDlvyInnbArr; private String[] ordrDlvyInnbArr;
//쇼핑몰코드 /**쇼핑몰코드*/
private String sopmalCd; private String sopmalCd;
//TODO:: 추후 SESSION에서 처리 사용자,관리자 구분 //TODO:: 추후 SESSION에서 처리 사용자,관리자 구분
private String usrDv; private String usrDv;
@@ -25,69 +25,71 @@ public class BORtngudrefndVO extends AbstractVO{
private String orderReInnb; private String orderReInnb;
private String refundCd; // 환불 코드 번호 private String refundCd; // 환불 코드 번호
private String orderRefundInnb; private String orderRefundInnb;
/*주문고유번호*/ /**주문고유번호*/
private String ordrInnb; private String ordrInnb;
/*환불신청일시*/ /**환불신청일시*/
private String refundReqstDt; private String refundReqstDt;
/*환불완료일시*/ /**환불완료일시*/
private String refundComptDt; private String refundComptDt;
/*신청(request), 처리중(ing), 완료(complete)*/ /**신청(request), 처리중(ing), 완료(complete)*/
private String refundProcsSttusCd; private String refundProcsSttusCd;
/*신청(request), 처리중(ing), 완료(complete) 이전 상태 */ /**신청(request), 처리중(ing), 완료(complete) 이전 상태 */
private String oldRefundProcsSttusCd; private String oldRefundProcsSttusCd;
/*결제취소(cancel_payment),반품환불(return),배송비환불(shipping_price)*/ /**결제취소(cancel_payment),반품환불(return),배송비환불(shipping_price)*/
private String refundTyCd; private String refundTyCd;
/*전체취소(full), 부분취소(partial)*/ /**전체취소(full), 부분취소(partial)*/
private String refundScopeCd; private String refundScopeCd;
/*환불사유내용*/ /**환불사유내용*/
private String refundResnCn; private String refundResnCn;
/*계좌이체(account), 무통장(bank), 신용카드(card), 수동(manual), ?(payco_coupon), 포스기기(pos)*/ /**계좌이체(account), 무통장(bank), 신용카드(card), 수동(manual), ?(payco_coupon), 포스기기(pos)*/
private String refundMthCd; private String refundMthCd;
/** 환불계좌은행코드 */ /** 환불계좌은행코드 */
private String refundAcntBnnkCd; // 환불계좌은행코드 private String refundAcntBnnkCd; // 환불계좌은행코드
/*환불계좌은행명*/ /**환불계좌은행명*/
private String refundAcntBnnkNm; private String refundAcntBnnkNm;
/*환불계좌예금주명*/ /**환불계좌예금주명*/
private String refundAcntDpstrNm; private String refundAcntDpstrNm;
/*환불계좌번호*/ /**환불계좌번호*/
private String refundAcntnb; private String refundAcntnb;
/*환불금액*/ /**환불금액*/
private String refundAmt; private String refundAmt;
/*환불적립금액*/ /**환불금액(원화)*/
private String wonRefundAmt;
/**환불적립금액*/
private Integer refundAccmlmnyAmt; private Integer refundAccmlmnyAmt;
/*배송비환불총금액*/ /**배송비환불총금액*/
private Integer dlvyAmtTotRefundAmt; private Integer dlvyAmtTotRefundAmt;
/*쿠폰할인보정금액*/ /**쿠폰할인보정금액*/
private Integer coupDscntRevisnAmt; private Integer coupDscntRevisnAmt;
/*적립금보정금액*/ /**적립금보정금액*/
private Integer accmlmnyRevisnAmt; private Integer accmlmnyRevisnAmt;
/*에누리보정금액*/ /**에누리보정금액*/
private Integer enuriRevisnAmt; private Integer enuriRevisnAmt;
/*적립금유효일자*/ /**적립금유효일자*/
private String accmlmnyValidDe; private String accmlmnyValidDe;
/*다운로드쿠폰 고유번호*/ /**다운로드쿠폰 고유번호*/
private String dwldCouponInnb; private String dwldCouponInnb;
/*상태메모내용*/ /**상태메모내용*/
private String sttusMemoCn; private String sttusMemoCn;
/*관리자메모내용*/ /**관리자메모내용*/
private String mngrMemoCn; private String mngrMemoCn;
/*관리자 고유번호*/ /**관리자 고유번호*/
private String mngrInnb; private String mngrInnb;
/*스마트쇼핑환불신청일시*/ /**스마트쇼핑환불신청일시*/
private String smrtShopngRefndReqstDt; private String smrtShopngRefndReqstDt;
/*스마트쇼핑환불완료일시*/ /**스마트쇼핑환불완료일시*/
private String smrtShopngRefndComptDt; private String smrtShopngRefndComptDt;
/*cancel_done, refund_request*/ /**cancel_done, refund_request*/
private String smrtShopngRefndProcsSttusCd; private String smrtShopngRefndProcsSttusCd;
/*스마트쇼핑클레임발생금액*/ /**스마트쇼핑클레임발생금액*/
private Integer smrtShopngClaimOccrrncAmt; private Integer smrtShopngClaimOccrrncAmt;
/*스마트쇼핑초도배송비금액*/ /**스마트쇼핑초도배송비금액*/
private Integer smrtShopngFrsttmeDlvyAmtAmt; private Integer smrtShopngFrsttmeDlvyAmtAmt;
/*반품환불보류상품번호내용*/ /**반품환불보류상품번호내용*/
private String returnRefndDferGoodsNbCn; private String returnRefndDferGoodsNbCn;
/*사용여부*/ /**사용여부*/
private String useAt; private String useAt;
/*처리대상자 구분*/ /**처리대상자 구분*/
private String procsTargetDv; private String procsTargetDv;
private String returnCd; // 반품 코드 private String returnCd; // 반품 코드
/**신청(request), 완료(complete), 철회(retraction)*/ /**신청(request), 완료(complete), 철회(retraction)*/
@@ -108,6 +110,8 @@ public class BORtngudrefndVO extends AbstractVO{
private String returnCstmrMbtlnb; private String returnCstmrMbtlnb;
/** 반품배송비금액 */ /** 반품배송비금액 */
private String returnDlvyAmt; private String returnDlvyAmt;
/** 반품배송비금액(원화) */
private String wonReturnDlvyAmt;
/** company,provider */ /** company,provider */
private String returnDlvyAmtRecptTrgetCd; private String returnDlvyAmtRecptTrgetCd;
/**구매자(buyer), 판매자(seller)*/ /**구매자(buyer), 판매자(seller)*/
@@ -144,10 +148,14 @@ public class BORtngudrefndVO extends AbstractVO{
private String smrtShopngReturnProcsSttusCd; private String smrtShopngReturnProcsSttusCd;
/** 배송비환불금액 */ /** 배송비환불금액 */
private String dlvyAmtRefundAmt; private String dlvyAmtRefundAmt;
/** 배송비환불금액(원화) */
private String wonDlvyAmtRefundAmt;
/** 지번 or 도로명 주소 */ /** 지번 or 도로명 주소 */
private String lnbOrRnmAdres; private String lnbOrRnmAdres;
/** 환불배송비총금액 */ /** 환불배송비총금액 */
private String refundDlvyAmt; private String refundDlvyAmt;
/** 환불배송비총금액(원화) */
private String wonRefundDlvyAmt;
/** 반품 환불 상품 옵션 리스트 */ /** 반품 환불 상품 옵션 리스트 */
private List<BOOrderReItemVO> orderReItemVOList; private List<BOOrderReItemVO> orderReItemVOList;
/**상세 내용*/ /**상세 내용*/
@@ -167,11 +175,11 @@ public class BORtngudrefndVO extends AbstractVO{
public String endDt; public String endDt;
//날짜 검색 구분 //날짜 검색 구분
private String srchDtDv; private String srchDtDv;
//** 반품처리상태 */ /** 반품처리상태 */
private String[] srchReturnProcsStuusCd; private String[] srchReturnProcsStuusCd;
//** 환불처리상태 */ /** 환불처리상태 */
private String[] srchRefundProcsSttusCd; private String[] srchRefundProcsSttusCd;
//** 회수방법(반품) */ /** 회수방법(반품) */
private String srchReturnMthCd; private String srchReturnMthCd;
/**검색시작일*/ /**검색시작일*/
public String srchStartDate; public String srchStartDate;
@@ -189,9 +197,9 @@ public class BORtngudrefndVO extends AbstractVO{
private String mbtlnb; private String mbtlnb;
/** 회원타입코드 */ /** 회원타입코드 */
private String mbrTyCd; private String mbrTyCd;
/*시크릿 키*/ /**시크릿 키*/
private String secretKey; private String secretKey;
/*회원 사이트정보 갱신용*/ /**회원 사이트정보 갱신용*/
private String siteMbrInnb; private String siteMbrInnb;
private String siteMbrDvCd; private String siteMbrDvCd;
@@ -200,7 +208,7 @@ public class BORtngudrefndVO extends AbstractVO{
/** 실 환불 GC 머니 금액 */ /** 실 환불 GC 머니 금액 */
private String prosbleCancelCashAmt; private String prosbleCancelCashAmt;
//** 반품처리상태 */ /** 반품처리상태 */
private String[] returnProcsStuusCd; private String[] returnProcsStuusCd;
private String serverDv; private String serverDv;

View File

@@ -291,7 +291,7 @@ public class BOPurchsEvtService {
if ("01".equals(purchsEvtVO.getEvtDv())) { if ("01".equals(purchsEvtVO.getEvtDv())) {
if (purchsEvtVO.getDeleteBnefList() != null) { if (purchsEvtVO.getDeleteBnefList() != null) {
log.debug(" 삭제 리스트 확인 purchsEvtVO . get deleteList : {}", purchsEvtVO.getDeleteBnefList()); log.debug(" 삭제 리스트 확인 purchsEvtVO . get deleteList : {}", (Object) purchsEvtVO.getDeleteBnefList());
for (String deleteBnefInnb : purchsEvtVO.getDeleteBnefList()) { for (String deleteBnefInnb : purchsEvtVO.getDeleteBnefList()) {
log.debug("deleteBnefInnb : {}", deleteBnefInnb); log.debug("deleteBnefInnb : {}", deleteBnefInnb);
purchsEvtVO.setDeleteBnefInnb(Integer.parseInt(deleteBnefInnb)); purchsEvtVO.setDeleteBnefInnb(Integer.parseInt(deleteBnefInnb));
@@ -326,7 +326,7 @@ public class BOPurchsEvtService {
if (!StringUtils.isEmpty(Arrays.toString(purchsEvtVO.getDeleteBnefList()))) { if (!StringUtils.isEmpty(Arrays.toString(purchsEvtVO.getDeleteBnefList()))) {
log.debug(" 삭제 리스트 확인 purchsEvtVO . get deleteList : {}", purchsEvtVO.getDeleteBnefList()); log.debug(" 삭제 리스트 확인 purchsEvtVO . get deleteList : {}", (Object) purchsEvtVO.getDeleteBnefList());
for (String deleteBnefInnb : purchsEvtVO.getDeleteBnefList()) { for (String deleteBnefInnb : purchsEvtVO.getDeleteBnefList()) {
log.debug("deleteBnefInnb : {}", deleteBnefInnb); log.debug("deleteBnefInnb : {}", deleteBnefInnb);
purchsEvtVO.setDeleteBnefInnb(Integer.parseInt(deleteBnefInnb)); purchsEvtVO.setDeleteBnefInnb(Integer.parseInt(deleteBnefInnb));

View File

@@ -116,8 +116,8 @@ public class EmailController {
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectEmailPassivSndngManage") @RequestMapping(value="/selectEmailPassivSndngManage")
public String selectEmailPassivSndngManage(){ public String selectEmailPassivSndngManage(ModelMap model, BOMaEmailSrchVO bOMaEmailSrchVO){
model.addAttribute("emailSrchVO", bOMaEmailSrchVO);
return "mngr/ntcn/email/EmailPassivSndngManage"; return "mngr/ntcn/email/EmailPassivSndngManage";
} }

View File

@@ -122,10 +122,11 @@ public class MssageController {
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMssagePassivSndngManage") @RequestMapping(value="/selectMssagePassivSndngManage")
public String selectMessagePassivSndngManage(MssageVO vo, ModelMap model, public String selectMessagePassivSndngManage(BOMssageVO vo, ModelMap model,
@CookieValue(value = "authSopmalCd") String authSopmalCd){ @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
model.addAttribute("mssageVO", vo);
return "mngr/ntcn/mssage/MssagePassivSndngManage"; return "mngr/ntcn/mssage/MssagePassivSndngManage";
} }
@@ -149,6 +150,7 @@ public class MssageController {
} }
DataMap content = new DataMap(); DataMap content = new DataMap();
content.put("mssageVO", vo);
content.put("shopInfoMap", service.selectBOShopInfoInqire(vo)); content.put("shopInfoMap", service.selectBOShopInfoInqire(vo));
content.put("sopmalCd", user.getSopmalCd()); content.put("sopmalCd", user.getSopmalCd());
@@ -178,6 +180,7 @@ public class MssageController {
vo.setSopmalCd(user.getSopmalCd()); vo.setSopmalCd(user.getSopmalCd());
} }
DataMap content = new DataMap(); DataMap content = new DataMap();
content.put("mssageVO", vo);
content.put("shopInfoMap", service.selectBOShopInfoInqire(vo)); content.put("shopInfoMap", service.selectBOShopInfoInqire(vo));
content.put("sopmalCd", user.getSopmalCd()); content.put("sopmalCd", user.getSopmalCd());

View File

@@ -1067,7 +1067,7 @@ public class MyMbrController {
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@PostMapping(value="/updateDlvylcUpdt", produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value="/updateDlvylcUpdt", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateDlvylcUpdt(@Validated DlvylcVO dlvylcVO, BOCrmDlvylcVO crmDlvylcVO, BindingResult bindingResult){ public ResponseEntity<WnbtResponse> updateDlvylcUpdt(@Validated DlvylcVO dlvylcVO, BindingResult bindingResult, BOCrmDlvylcVO crmDlvylcVO){
//입력값 정합성 점검결과 처리 //입력값 정합성 점검결과 처리
if(bindingResult.hasErrors()) { if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
@@ -1078,7 +1078,19 @@ public class MyMbrController {
mbtlnb = mbtlnb.replace("-", ""); mbtlnb = mbtlnb.replace("-", "");
int mbtlnbLen = mbtlnb.length(); int mbtlnbLen = mbtlnb.length();
if (!(mbtlnbLen >= 8 && mbtlnbLen <= 12)) { if (!(mbtlnbLen >= 8 && mbtlnbLen <= 12)) {
throw new WnbtRestException("번호는 8자~12자 입니다."); throw new WnbtRestException("휴대전화번호는 8자 이상 12자 이하만 입력할 수 있습니다.");
}
//개인통관번호 정합성 체크
if("KR".equals(crmDlvylcVO.getDlvylcAreaCd())) {
String cstmclerCd = crmDlvylcVO.getCstmclerCd();
String cstmclerCdReg = "^P\\d{12}$";
if (cstmclerCd == null || cstmclerCd.trim().isEmpty()) {
throw new WnbtRestException("개인통관번호은(는) 필수 입력값입니다.");
}else if (!cstmclerCd.matches(cstmclerCdReg)) {
throw new WnbtRestException("개인통관번호는 P로 시작하는 13자리 부호만 입력할 수 있습니다.");
}
} }
//도로명 지번 분기처리 하여 vo에 set함 //도로명 지번 분기처리 하여 vo에 set함
@@ -1135,7 +1147,7 @@ public class MyMbrController {
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@PostMapping(value="/insertDlvylcRegist", produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value="/insertDlvylcRegist", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> insertDlvylcRegist(@Validated DlvylcVO dlvylcVO, BOCrmDlvylcVO crmDlvylcVO, BindingResult bindingResult){ public ResponseEntity<WnbtResponse> insertDlvylcRegist(@Validated DlvylcVO dlvylcVO, BindingResult bindingResult, BOCrmDlvylcVO crmDlvylcVO){
//입력값 정합성 점검결과 처리 //입력값 정합성 점검결과 처리
if(bindingResult.hasErrors()) { if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
@@ -1146,7 +1158,19 @@ public class MyMbrController {
mbtlnb = mbtlnb.replace("-",""); mbtlnb = mbtlnb.replace("-","");
int mbtlnbLen = mbtlnb.length(); int mbtlnbLen = mbtlnb.length();
if(!(mbtlnbLen >= 8 && mbtlnbLen <= 12)){ if(!(mbtlnbLen >= 8 && mbtlnbLen <= 12)){
throw new WnbtRestException("번호는 8자~12자 입니다."); throw new WnbtRestException("휴대전화번호는 8자 이상 12자 이하만 입력할 수 있습니다.");
}
//개인통관번호 정합성 체크
if("KR".equals(crmDlvylcVO.getDlvylcAreaCd())) {
String cstmclerCd = crmDlvylcVO.getCstmclerCd();
String cstmclerCdReg = "^P\\d{12}$";
if (cstmclerCd == null || cstmclerCd.trim().isEmpty()) {
throw new WnbtRestException("개인통관번호은(는) 필수 입력값입니다.");
}else if (!cstmclerCd.matches(cstmclerCdReg)) {
throw new WnbtRestException("개인통관번호는 P로 시작하는 13자리 부호만 입력할 수 있습니다.");
}
} }
crmDlvylcVO.setServerDv("sopmal"); crmDlvylcVO.setServerDv("sopmal");

View File

@@ -17,9 +17,10 @@ public class DlvylcVO extends AbstractVO{
/**회원구분코드*/ /**회원구분코드*/
private String mbrDvCd; private String mbrDvCd;
/** 배송지설명내용 */ /** 배송지설명내용 */
@NotBlank(message = "배송지 설명") @NotBlank(message = "배송지명")
private String dlvylcDcCn; private String dlvylcDcCn;
/**배송지역코드*/ /**배송지역코드*/
@NotBlank(message = "배송지역코드")
private String dlvylcAreaCd; private String dlvylcAreaCd;
/** 받는사람명 */ /** 받는사람명 */
@NotBlank(message = "받으시는 분") @NotBlank(message = "받으시는 분")
@@ -32,7 +33,7 @@ public class DlvylcVO extends AbstractVO{
private String telnb; private String telnb;
/** 우편번호 */ /** 우편번호 */
@NotBlank(message = "우편번호") @NotBlank(message = "우편번호")
@Length(min=1, max=7) @Length(min=1, max=7, message="우편번호")
private String zip; private String zip;
/** 도로명,지번 구분 */ /** 도로명,지번 구분 */
private String adresDv; private String adresDv;

View File

@@ -171,6 +171,26 @@ public class MyOrdrController {
return Util.getDeviceType(request) + "/mpage/ordr/SubsvcOrdrDlvyListRForm"; return Util.getDeviceType(request) + "/mpage/ordr/SubsvcOrdrDlvyListRForm";
} }
/**
* 마이 페이지 > MY쇼핑 > 마이페이지 > 주문/배송 목록 조회
* @param ordrDlvyVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMbrSubsvcOrdrListInqireMapge")
public String selectMbrSubsvcOrdrListInqireMapge(ModelMap model, BOOrdrDlvyVO ordrDlvyVO) {
Map<String, Object> content = selectBOMbrSubsvcOrdrListInqireAjax(ordrDlvyVO);
model.addAttribute("data", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrListInqireAjax", ordrDlvyVO),
// model,
// "data"
// );
return "sopmal/mpage/ordr/SubsvcOrdrDlvyListMpageRList";
}
/** /**
* 마이 페이지 > MY쇼핑 > 구독서비스 주문/배송 > 구독서비스 주문/배송 목록 조회 * 마이 페이지 > MY쇼핑 > 구독서비스 주문/배송 > 구독서비스 주문/배송 목록 조회
* @param ordrDlvyVO * @param ordrDlvyVO
@@ -208,10 +228,12 @@ public class MyOrdrController {
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMbrSubsvcOrdrDtlInqire") @RequestMapping(value="/selectMbrSubsvcOrdrDtlInqire")
public String selectMbrSubsvcOrdrDtlInqire(HttpServletRequest request, ModelMap model, BOOrdrDlvyVO ordrDlvyVO, BOMbrVO vo) throws Exception { public String selectMbrSubsvcOrdrDtlInqire(HttpServletRequest request, ModelMap model, BOOrdrDlvyVO ordrDlvyVO, BOMbrVO vo, BORtngudrefndVO boRtngudrefndVO) throws Exception {
boRtngudrefndVO.setServerDv("sopmal");
AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) { if ("01".equals(user.getSysDvCd())) {
ordrDlvyVO.setSopmalCd(user.getSopmalCd()); ordrDlvyVO.setSopmalCd(user.getSopmalCd());
boRtngudrefndVO.setSopmalCd(user.getSopmalCd());
} }
Map<String, Object> message = boOrdrService.selectMbrOrdrDtlInqire(ordrDlvyVO); Map<String, Object> message = boOrdrService.selectMbrOrdrDtlInqire(ordrDlvyVO);
/**발급대상구분코드*/ /**발급대상구분코드*/
@@ -228,6 +250,13 @@ public class MyOrdrController {
// ); // );
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrDlvyVO)); model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrDlvyVO));
model.addAttribute("vo", ordrDlvyVO); model.addAttribute("vo", ordrDlvyVO);
/**환불내역이 있으면 정보조회*/
if(message.get("order") != null && ((DataMap)message.get("order")).get("orderReInnb") != null && !"".equals(((DataMap)message.get("order")).get("orderReInnb"))){
boRtngudrefndVO.setOrderReInnb((String)((DataMap)message.get("order")).get("orderReInnb"));
Map<String, Object> refund = new HashMap<String, Object>();
refund.put("result", boRtngudrefndService.selectBORtngudRefndDtlInqire(boRtngudrefndVO));
model.addAttribute("resultMap", refund);
}
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
Map<String, Object> content = selectBOMpageInfoInqire(vo); Map<String, Object> content = selectBOMpageInfoInqire(vo);
@@ -758,7 +787,7 @@ public class MyOrdrController {
// model, // model,
// "resultMap" // "resultMap"
// ); // );
model.addAttribute("paramVO", boRtngudrefndVO); model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(boRtngudrefndVO));
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
Map<String, Object> content2 = selectBOMpageInfoInqire(vo); Map<String, Object> content2 = selectBOMpageInfoInqire(vo);

View File

@@ -2,6 +2,8 @@ package com.wb.domainserver.domain.sopmal.ordr.controller;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.wb.domainserver.common.msg.GconeMessageSource; import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrLogService;
import com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO;
import com.wb.domainserver.domain.sopmal.ordr.vo.OrdrVO; import com.wb.domainserver.domain.sopmal.ordr.vo.OrdrVO;
import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtWebClientResponseHandler; import com.wb.domainserver.response.WnbtWebClientResponseHandler;
@@ -9,17 +11,23 @@ import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.dataaccess.DataMap;
import com.wb.domainserver.util.string.StringUtil;
import com.wb.domainserver.util.util.Util; import com.wb.domainserver.util.util.Util;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList; import java.io.BufferedReader;
import java.util.List; import java.net.URLDecoder;
import java.util.*;
@Slf4j @Slf4j
@Controller @Controller
@@ -34,6 +42,9 @@ public class OrdrApiController {
@Autowired @Autowired
private GconeMessageSource messageSource; private GconeMessageSource messageSource;
@Autowired
private BOOrdrLogService ordrLogService;
private Util utilClass; private Util utilClass;
/* #################################### /* ####################################
@@ -95,4 +106,135 @@ public class OrdrApiController {
return Integer.parseInt(cleanedCode.toString(), 16); return Integer.parseInt(cleanedCode.toString(), 16);
} }
/* ##################################################
사용자 > 결제(키움) > 결제 성공 후 결제값 응답받음
################################################## */
/**
* 키움 결제 연계처리 - 결과통보페이지
* @author 이경숙
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/kiwoomPayWebhook")
@ResponseBody
public ResponseEntity<String> selectPaymentkiwoomWebhook(HttpServletRequest request) throws Exception {
// 0. 키움에서 온 값 로그 출력 (결제실패에 대한 응답은 없음)
printKiwoomRequest(request);
// 1. 주문 로그 남김 (GC_ORDER_LOG)
BOPayVO payVO = new BOPayVO();
DataMap pgApiLogReqVO = new DataMap();
String orderNo = StringUtil.isNullToString(request.getParameter("ORDERNO"));
String orderNm = StringUtil.isNullToString(request.getParameter("USERNAME"));
String resParam = queryStringToJson(request.getQueryString());
payVO.setPgCmpnyNm("kiwoom"); //pg사명
payVO.setDvCd("01"); //사용자
payVO.setOrderId(orderNo); //주문번호
payVO.setSetlerNm(orderNm); //주문자명
pgApiLogReqVO.put("resParam",resParam); //응답전문
ordrLogService.insertSetleOrderPgLog(payVO, pgApiLogReqVO);
// 2. PG API 로그 남김 (GC_ORDER_PG_API_LOG)
pgApiLogReqVO.put("reqParam", ""); //요청전문
pgApiLogReqVO.put("ordrInnb", orderNo); //주문번호
pgApiLogReqVO.put("sopmalCd", "SK"); //쇼핑몰코드
pgApiLogReqVO.put("pgCmpnyNm", "kiwoom"); //pg사명
pgApiLogReqVO.put("mbrInnb", ""); //회원번호
pgApiLogReqVO.put("resParam", resParam); //응답전문
ordrLogService.insertBOPgApiLogReqRegist(pgApiLogReqVO);
String response = "<html><body><RESULT>SUCCESS</RESULT></body></html>";
return ResponseEntity.ok()
.contentType(MediaType.TEXT_HTML)
.body(response);
}
public static void printKiwoomRequest(HttpServletRequest request) {
try {
System.out.println("========== [KIWOOM REQUEST START] ==========");
// 1. 기본 정보
System.out.println("URL : " + request.getRequestURL());
System.out.println("METHOD : " + request.getMethod());
System.out.println("QUERY : " + request.getQueryString());
System.out.println("REMOTE IP : " + request.getRemoteAddr());
// 2. 파라미터 (가장 중요)
System.out.println("---------- PARAM ----------");
request.setCharacterEncoding("EUC-KR");
request.getParameterMap().forEach((key, values) -> {
System.out.println(key + " = " + Arrays.toString(values));
});
// 3. 헤더
System.out.println("---------- HEADER ----------");
Collections.list(request.getHeaderNames()).forEach(header -> {
System.out.println(header + " = " + request.getHeader(header));
});
// 4. Body (JSON 대응)
System.out.println("---------- BODY ----------");
StringBuilder body = new StringBuilder();
BufferedReader reader = request.getReader();
String line;
while ((line = reader.readLine()) != null) {
body.append(line);
}
System.out.println(body.toString());
System.out.println("========== [KIWOOM REQUEST END] ==========");
} catch (Exception e) {
System.out.println("❌ REQUEST LOG ERROR");
e.printStackTrace();
}
}
public String queryStringToJson(String queryString) throws Exception {
Map<String, String> map = new HashMap<>();
if (queryString != null && !queryString.isEmpty()) {
String[] pairs = queryString.split("&");
for (String pair : pairs) {
String[] keyValue = pair.split("=", 2);
String key = URLDecoder.decode(keyValue[0], "UTF-8");
String value = keyValue.length > 1 ? URLDecoder.decode(keyValue[1], "UTF-8") : "";
map.put(key, value);
}
}
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(map);
}
public Map<String, String> queryStringToMap(String queryString) throws Exception {
Map<String, String> map = new HashMap<>();
if (queryString != null) {
for (String param : queryString.split("&")) {
String[] pair = param.split("=", 2);
String key = URLDecoder.decode(pair[0], "EUC-KR");
String value = pair.length > 1 ? URLDecoder.decode(pair[1], "EUC-KR") : "";
map.put(key, value);
}
}
return map;
}
} }

View File

@@ -20,30 +20,27 @@ import com.wb.domainserver.domain.gcone.goods.goods.service.BOGoodsService;
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOOrderService; import com.wb.domainserver.domain.gcone.goods.purchs.service.BOOrderService;
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOPurchsService; import com.wb.domainserver.domain.gcone.goods.purchs.service.BOPurchsService;
import com.wb.domainserver.domain.gcone.goods.purchs.vo.*; import com.wb.domainserver.domain.gcone.goods.purchs.vo.*;
import com.wb.domainserver.domain.gcone.goods.subsvc.service.BOSubsvcService;
import com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO;
import com.wb.domainserver.domain.gcone.mbr.mbr.service.BOMbrService; import com.wb.domainserver.domain.gcone.mbr.mbr.service.BOMbrService;
import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO; import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO;
import com.wb.domainserver.domain.gcone.ordr.dlivy.service.BODlivyService; import com.wb.domainserver.domain.gcone.ordr.dlivy.service.BODlivyService;
import com.wb.domainserver.domain.gcone.ordr.npay.service.BONpayConfigService; import com.wb.domainserver.domain.gcone.ordr.npay.service.BONpayConfigService;
import com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO; import com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrderCommonService;
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrLogService; import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrLogService;
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService; import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOCrmDlvylcVO; import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOCrmDlvylcVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrVO; import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOSpbkVO; import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOSpbkVO;
import com.wb.domainserver.domain.gcone.ordr.pay.service.BOPayService;
import com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO; import com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO;
import com.wb.domainserver.domain.gcone.promtn.coupon.service.BOCouponService; import com.wb.domainserver.domain.gcone.promtn.coupon.service.BOCouponService;
import com.wb.domainserver.domain.gcone.setup.dlvygrp.service.BODlvygrpService; import com.wb.domainserver.domain.gcone.setup.dlvygrp.service.BODlvygrpService;
import com.wb.domainserver.domain.gcone.setup.nbkk.service.BONbkkService; import com.wb.domainserver.domain.gcone.setup.nbkk.service.BONbkkService;
import com.wb.domainserver.domain.gcone.setup.site.vo.BOSiteVO; import com.wb.domainserver.domain.gcone.setup.site.vo.BOSiteVO;
import com.wb.domainserver.domain.sample.vo.PrevewVO;
import com.wb.domainserver.domain.sopmal.goods.vo.GoodsVO;
import com.wb.domainserver.domain.sopmal.ordr.vo.OrdrVO; import com.wb.domainserver.domain.sopmal.ordr.vo.OrdrVO;
import com.wb.domainserver.domain.sopmal.ordr.vo.PayVO;
import com.wb.domainserver.domain.sopmal.ordr.vo.SpbkVO;
import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.exception.code.PurchsValidCode; import com.wb.domainserver.exception.code.PurchsValidCode;
import com.wb.domainserver.response.ApiResponse;
import com.wb.domainserver.response.WnbtResponse; import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler; import com.wb.domainserver.response.WnbtWebClientResponseHandler;
@@ -51,9 +48,6 @@ import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.CookieUtils;
import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.cookie.CookieUtil; import com.wb.domainserver.util.cookie.CookieUtil;
import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.dataaccess.DataMap;
@@ -65,7 +59,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Base64Util; import org.apache.logging.log4j.util.Base64Util;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser; import org.json.simple.parser.JSONParser;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
@@ -74,7 +67,10 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
@@ -136,6 +132,10 @@ public class OrdrController {
private BOMaMtngService boMaMtngService; private BOMaMtngService boMaMtngService;
@Autowired @Autowired
private BOPurchsService boPurchsService; private BOPurchsService boPurchsService;
@Autowired
private BOSubsvcService subsvcService;
@Autowired
private BOPayService payService;
/* #################################### /* ####################################
사용자 > 상품 > 구매/결제 > 회원구매하기 시작 사용자 > 상품 > 구매/결제 > 회원구매하기 시작
@@ -399,6 +399,136 @@ public class OrdrController {
// ); // );
} }
/* ####################################
사용자 > 구독상품 > 구매/결제 > 회원구매하기 시작
#################################### */
/**
* 사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 > 구독서비스 결제 화면 이동
* @return SubsvcPurchsC.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectSubsvcPurchsForm")
public String selectSubsvcSetleInqire(HttpServletRequest request, ModelMap model, BOOrdrVO ordrVO) throws Exception {
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
//결재 플랫폼 구분 코드
ordrVO.setSetlePltfomTyCd("PC".equals(request.getAttribute("env"))?"01":"02");
//약관정보 세팅
BOStplatVO stplatVO = new BOStplatVO();
stplatVO.setPageIndex(1);
stplatVO.setPageUnit(paginationProperties.getPageUnit());
stplatVO.setNmbrPurchsAt("Y");
stplatVO.setSrchSopmalCd(user.getSopmalCd());
DataMap stplat = selectBOStplatListInqire(stplatVO);
//주문 상품정보 세팅
if ("01".equals(user.getSysDvCd())) {
ordrVO.setSopmalCd(user.getSopmalCd());
}
ordrVO.setMbrInnb(user.getUserInnb());
ordrVO.setMbrId(user.getMbrId());
ordrVO.setMbrDvCd(user.getMbrDvCd());
Map<String, Object> content = service.selectSubsvcPurchs(ordrVO);
model.addAttribute("data", content);
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrVO));
model.addAttribute("deviceType", Util.getDeviceType(request));
model.addAttribute("stplat", stplat);
return Util.getDeviceType(request) + "/ordr/SubsvcPurchsC";
}
/**
* 사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 > 구독서비스 조회
* @param param
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectOrderSubsvcList", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectOrderSubsvcOne(@RequestBody HashMap<String, Object> param) {
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
BOSubsvcVO subsvcVO = new BOSubsvcVO();
if ("01".equals(user.getSysDvCd())) {
subsvcVO.setSopmalCd(user.getSopmalCd());
}
subsvcVO.setMbrInnb((Integer) param.get("mbrInnb"));
subsvcVO.setSubsvcInnb(String.valueOf(param.get("subsvcInnb")));
List<DataMap> content = new ArrayList<>();
content.add(subsvcService.selectBOSubsvcDetail(subsvcVO));
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
}
/**
* 사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 > 결제 예정금액 조회
* @param param
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectSubsvcSetleExpectAmt", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectSubsvcSetleExpectAmt(HttpServletRequest request, @RequestBody HashMap<String, Object> param) {
String sesionId ="";
Cookie[] cookies = request.getCookies();
if(cookies != null){
for(Cookie cookie : cookies ){
if(cookie.getName().equals("JSESSIONID")){
sesionId = cookie.getValue();
param.put("sesionId", sesionId);
break;
}
}
}
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
param.put("sopmalCd", user.getSopmalCd());
param.put("mbrDvCd", user.getMbrDvCd());
param.put("mbrInnb", user.getUserInnb());
}
Map<String, Object> content = new HashMap<>();
try {
DataMap datamap = new DataMap();
param.entrySet().forEach(map -> {
datamap.put(map.getKey(), map.getValue());
});
content = service.selectSubsvcSetleExpectAmt(datamap);
} catch (WnbtRestException wre) {
log.debug("결제예정금액 ordr wre");
log.error(wre.getMessage(), wre);
content = new HashMap<>() {{
put("status", "1");
put("message", wre.getMessage());
put("mlgMxmmUseAmt", wre.getCode());
}};
} catch (Exception e) {
log.debug("결제예정금액 ordr e");
log.error(e.getMessage(), e);
content = new HashMap<>() {{
put("status", "1");
put("message", "예기치 못한 오류가 발생하였습니다.\n관리자에게 문의하시기 바랍니다.");
}};
}
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOSetleExpectAmt", param),
// ReplyFromResrc::getReply
// );
}
/** /**
* 관리자 주문 > 브랜드페이 > 토큰발급 * 관리자 주문 > 브랜드페이 > 토큰발급
@@ -663,6 +793,21 @@ public class OrdrController {
paramData.put(map.getKey(), map.getValue()); paramData.put(map.getKey(), map.getValue());
}); });
LinkedHashMap goodsOne = ((List<LinkedHashMap>) paramData.get("goodsList")).get(0);
Boolean subsvcAt = goodsOne.containsKey("subsvcInnb");
if(subsvcAt) {
model.addAttribute("subsvcInnb", goodsOne.get("subsvcInnb"));
BOSubsvcVO subsvcVO = new BOSubsvcVO();
subsvcVO.setSopmalCd((String) goodsOne.get("sopmalCd"));
subsvcVO.setSubsvcInnb(goodsOne.get("subsvcInnb").toString());
subsvcVO.setQy((int) goodsOne.get("qy"));
subsvcVO.setMbrInnb((int) goodsOne.get("mbrInnb"));
paramData.remove("goodsList");
paramData.put("goodsList", service.selectSubsvcGoodsList(subsvcVO));
}
Map<String, Object> resultMap = insertBOOrder(paramData); Map<String, Object> resultMap = insertBOOrder(paramData);
// Map<String, Object> resultMap = responseHandler.handleResponseAsMap( // Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBOOrder", param) // sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBOOrder", param)
@@ -692,7 +837,9 @@ public class OrdrController {
String pgCmpnyNm = setle.getPgCmpnyNm(); String pgCmpnyNm = setle.getPgCmpnyNm();
String setleTyCd = setle.getSetleTyCd(); String setleTyCd = setle.getSetleTyCd();
if ("gcpay".equals(pgCmpnyNm)) { if ("kiwoom".equals(pgCmpnyNm)) {
url = "sopmal/ordr/OrdrReqstKiwoomPayR";
} else if ("gcpay".equals(pgCmpnyNm)) {
url = "sopmal/ordr/OrdrReqstGcpayPayR"; url = "sopmal/ordr/OrdrReqstGcpayPayR";
} else if ("kcp".equals(pgCmpnyNm)) { } else if ("kcp".equals(pgCmpnyNm)) {
if ("sopmal_m".equals(deviceType)) { if ("sopmal_m".equals(deviceType)) {
@@ -922,7 +1069,7 @@ public class OrdrController {
agentId = CookieUtil.getAgentCookieValue(request.getCookies()); agentId = CookieUtil.getAgentCookieValue(request.getCookies());
payVO.setAgentId(agentId); payVO.setAgentId(agentId);
} }
log.debug("=================insertKcpSetle cookies {} ",cookies); log.debug("=================insertKcpSetle cookies {} ",(Object) cookies);
Map<String, String> util = new HashMap<>(); Map<String, String> util = new HashMap<>();
util = utilClass.getRequestInfo(request); util = utilClass.getRequestInfo(request);
@@ -943,6 +1090,12 @@ public class OrdrController {
log.debug("=================insertKcpSetle after "); log.debug("=================insertKcpSetle after ");
model.addAttribute("paramVO", payVO); model.addAttribute("paramVO", payVO);
if ("1".equals(content.get("status"))) { // 에러처리
String subsvcInnb = request.getParameter("subsvc_innb");
if(subsvcInnb != "") {
model.addAttribute("subsvcInnb", subsvcInnb);
}
}
return "sopmal/ordr/OrdrRspnsKcpPayR"; return "sopmal/ordr/OrdrRspnsKcpPayR";
} }
@@ -1034,19 +1187,6 @@ public class OrdrController {
payVO.setSetlerNm(request.getParameter("buyr_name")); payVO.setSetlerNm(request.getParameter("buyr_name"));
//에스크로 정보추가
/*payVO.setEscwUsed(request.getParameter("escw_used"));
payVO.setPayMod(request.getParameter("pay_mod"));
payVO.setRcvrName(request.getParameter("rcvr_name"));
payVO.setRcvrTel1(request.getParameter("rcvr_tel1"));
payVO.setRcvrTel2(request.getParameter("rcvr_tel2"));
payVO.setRcvrZipx(request.getParameter("rcvr_zipx"));
payVO.setRcvrAdd1(request.getParameter("rcvr_add1"));
payVO.setRcvrAdd2(request.getParameter("rcvr_add2"));
payVO.setDeliTerm(request.getParameter("deli_term"));
payVO.setBaskCntx(request.getParameter("bask_cntx"));
payVO.setGoodInfo(request.getParameter("good_info"));*/
log.debug("payVO => {} ", new Gson().toJson(payVO)); log.debug("payVO => {} ", new Gson().toJson(payVO));
String resCd = request.getParameter("res_cd"); String resCd = request.getParameter("res_cd");
@@ -1244,6 +1384,158 @@ public class OrdrController {
return "sopmal/ordr/OrdrRspnsTossPayR"; return "sopmal/ordr/OrdrRspnsTossPayR";
} }
/**
* 키움 결제 연계 전 getEnc 값 받아오기
* @author 이경숙
*/
@Policy(AuthPolicy.RESTRICTED)
@ResponseBody
@RequestMapping(value="/kiwoomPayGetEnc")
public Map<String, Object> selectKiwoomGetEnc(HttpServletRequest request) throws Exception {
BOPayVO payVO = new BOPayVO();
log.debug("kiwoomPayGetEnc = {}");
//String eucKrStr = new String(utf8Str.getBytes("UTF-8"), "EUC-KR");
//String utf8Str = new String(eucKrStr.getBytes("EUC-KR"), "UTF-8");
//request.setCharacterEncoding("EUC-KR");
payVO.setCpId(request.getParameter("CPID"));
payVO.setPayMethod(request.getParameter("PAYMETHOD"));
payVO.setOrderId(request.getParameter("ORDERNO"));
payVO.setType(request.getParameter("TYPE"));
payVO.setAmount(request.getParameter("AMOUNT"));
Map<String, Object> message;
String sopmalCd = payVO.getSopmalCd();
try {
message = payService.insertKiwoomPay(payVO);
} catch (Exception e) {
message = new HashMap<>() {{
put("response", "결제를 실패하였습니다.\n관리자에게 문의하시기 바랍니다.");
}};
}
log.info("insertKiwoomPay step5 ::: {}", message.get("KIWOOM_ENC"));
return message;
}
/**
* 키움 결제 연계처리 - 사전 승인 후 결제요청 페이지 이동
* @return PayKiwoomSucsC.jsp
* @author 이경숙
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/kiwoomPayPreSuccss")
public String confirmKiwoom(HttpServletRequest request, ModelMap model) throws Exception {
return "sopmal/ordr/OrdrReqstKiwoomPreR";
}
/**
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > 키움 결제 정보 등록
* @param model
* @param request
* @return OrdrRspnsKiwoomPayR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/insertKiwoomSetle")
public String insertKiwoomSetle(ModelMap model, HttpServletRequest request) {
log.info("insertKiwoomSetle controller start ::: ");
BOPayVO payVO = new BOPayVO();
payVO.setOrderId(request.getParameter("ordrInnb"));
payVO.setAmount(request.getParameter("setleAmt"));
payVO.setSopmalCd(request.getParameter("sopmalCd"));
payVO.setMbrInnb(request.getParameter("mbrInnb"));
payVO.setMbrId(request.getParameter("mbrId"));
payVO.setSesionId(request.getParameter("sesionId"));
payVO.setPgCmpnyNm(request.getParameter("pgCmpnyNm"));
payVO.setSetleTyCd(request.getParameter("setleTyCd"));
payVO.setSetlerNm(request.getParameter("ordrrNm"));
log.info("insertKiwoomSetle controller payVO ::: {}", payVO);
String agentId = "";
String jSesionId = "";
String ipAdres = "";
// 쿠키를 가져옴
Cookie[] cookies = request.getCookies();
//agentId 쿠키 있을 경우 가져옴
if (cookies != null) {
for (Cookie cookie : cookies) {
if (cookie.getName().equals("JSESSIONID")) {
jSesionId = cookie.getValue();
payVO.setSessionId(jSesionId);
}
}
}
//gc_agent_id 가져옴
if (CookieUtil.hasAgentCookie(request.getCookies())) {
agentId = CookieUtil.getAgentCookieValue(request.getCookies());
payVO.setAgentId(agentId);
}
Map<String, String> util = new HashMap<>();
util = utilClass.getRequestInfo(request);
ipAdres = util.get("XForwardedFor");
payVO.setIpAdres(ipAdres);
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
payVO.setMbrNm(user.getMbrNm()); //회원명(관리자명)
if ("01".equals(user.getSysDvCd())) {
payVO.setDvCd("01");
payVO.setSopmalCd(user.getSopmalCd());
payVO.setMbrDvCd(user.getMbrDvCd());
} else {
payVO.setDvCd("02");
}
Map<String, Object> content;
try {
content = service.insertKiwoomSetle(payVO);
log.info("insertKiwoomSetle controller content ::: {}", content);
} catch (WnbtRestException wre) {
log.info("insertKiwoomSetle : 키움 결제 정보 등록 : 실패 WnbtRestException");
log.error(wre.getMessage(), wre);
content = new HashMap<>() {{
put("status", "1");
put("message", wre.getMessage());
}};
} catch (Exception e) {
log.info("insertKiwoomSetle : 키움 결제 정보 등록 : 실패");
log.error(e.getMessage(), e);
content = new HashMap<>() {{
put("status", "1");
put("message", "키움 결제 정보 등록이 실패하였습니다.\n관리자에게 문의하시기 바랍니다.");
}};
}
if ("0".equals(content.get("status"))) {
commonOrderPostProcess(payVO);
}
model.addAttribute("data", content);
model.addAttribute("paramVO", payVO);
return "sopmal/ordr/OrdrRspnsKiwoomPayR";
}
/** /**
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > 주문완료 화면 이동 * 사용자 > 상품 > 구매/결제 > 회원구매하기 > 주문완료 화면 이동
* @return OrdrComptR.jsp * @return OrdrComptR.jsp
@@ -2981,6 +3273,8 @@ public class OrdrController {
List<LinkedHashMap> goodsList = (List<LinkedHashMap>) param.get("goodsList"); // 상품정보 List<LinkedHashMap> goodsList = (List<LinkedHashMap>) param.get("goodsList"); // 상품정보
LinkedHashMap enuri = null; LinkedHashMap enuri = null;
LinkedHashMap setle = null; LinkedHashMap setle = null;
// 구독서비스 여부
Boolean isSubsvc = goodsList.get(0).containsKey("subsvcInnb");
//회원일 경우에만 enuri정보 존재 //회원일 경우에만 enuri정보 존재
if(user.getUserInnb() > 0){ if(user.getUserInnb() > 0){
@@ -3009,13 +3303,7 @@ public class OrdrController {
return content; return content;
} }
} else { } else {
// if (CollectionUtils.isEmpty(multiOrdrDlvylc)) { // 여러곳배송처럼 처리하더라도 주소는 하나이므로 shipping 체크
// log.info("배송지 정보를 찾을 수 없습니다.");
// content.put("result","Y");
// content.put("message", "배송지 정보를 찾을 수 없습니다.");
// // throw new WnbtRestException("주문유형 정보를 찾을 수 없습니다.");
// return content;
// }
if (CollectionUtils.isEmpty(shipping)) { if (CollectionUtils.isEmpty(shipping)) {
log.info("배송지 정보를 찾을 수 없습니다."); log.info("배송지 정보를 찾을 수 없습니다.");
content.put("result","Y"); content.put("result","Y");
@@ -3032,8 +3320,7 @@ public class OrdrController {
return content; return content;
} }
if (!isSubsvc && CollectionUtils.isEmpty(enuri)) {
if (CollectionUtils.isEmpty(enuri)) {
log.info("할인 또는 결제 정보를 찾을 수 없습니다."); log.info("할인 또는 결제 정보를 찾을 수 없습니다.");
content.put("result","Y"); content.put("result","Y");
content.put("message", "할인 또는 결제 정보를 찾을 수 없습니다."); content.put("message", "할인 또는 결제 정보를 찾을 수 없습니다.");
@@ -3043,7 +3330,7 @@ public class OrdrController {
String sopmalCd = (String) param.get("sopmalCd"); String sopmalCd = (String) param.get("sopmalCd");
String ordrTyCd = (String) param.get("ordrTyCd"); String ordrTyCd = (String) param.get("ordrTyCd");
String mbrInnb = (String) goodsList.get(0).get("mbrInnb"); String mbrInnb = String.valueOf(goodsList.get(0).get("mbrInnb"));
String mbrDvCd = (String) goodsList.get(0).get("mbrDvCd"); String mbrDvCd = (String) goodsList.get(0).get("mbrDvCd");
String ordrrMbtlnb = (String) purchsr.get("mbtlnb"); String ordrrMbtlnb = (String) purchsr.get("mbtlnb");
@@ -3052,70 +3339,6 @@ public class OrdrController {
String[] receptMbtlnbArray = null; // 배송지 받는이 휴대폰번호 String[] receptMbtlnbArray = null; // 배송지 받는이 휴대폰번호
if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원개인결제, 정기배송 if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원개인결제, 정기배송
// if (!CollectionUtils.isEmpty(multiOrdrDlvylc)) {
//
// // 배송지 리스트
// List<LinkedHashMap<String, Object>> dlvylcListMulti = (List<LinkedHashMap<String, Object>>) multiOrdrDlvylc.get("dlvylc");
//
// /** ----------------------------------------------- 배송지별 주문 상품 수량 검사 START ----------------------------------------------- */
// content = checkDistributedQyMatchesOrder(goodsList, dlvylcListMulti);
// if (!"0".equals(content.get("status"))) {
// return content;
// }
// /** ----------------------------------------------- 배송지별 주문 상품 수량 검사 END ----------------------------------------------- */
//
// // 부정판매 체크를 위한 배송지 정렬
// if (!CollectionUtils.isEmpty(dlvylcListMulti)) {
//
// boolean hasInvalidAddress = dlvylcListMulti.stream().anyMatch(map -> {
// String dlvylcZip = StringUtil.isNullToString(map.get("dlvylcZip"));
// String adresDvCd = StringUtil.isNullToString(map.get("dlvylcAdresDvCd"));
// String dlvylcLnbAdres = StringUtil.isNullToString(map.get("dlvylcLnbAdres"));
// String dlvylcRnmAdres = StringUtil.isNullToString(map.get("dlvylcRnmAdres"));
// String adresDtl = StringUtil.isNullToString(map.get("dlvylcAdresDtl"));
//
// return StringUtil.isEmpty(dlvylcZip)
// || StringUtil.isEmpty(adresDvCd)
// || ("01".equals(adresDvCd) && StringUtil.isEmpty(dlvylcRnmAdres))
// || ("02".equals(adresDvCd) && StringUtil.isEmpty(dlvylcLnbAdres))
// || StringUtil.isEmpty(adresDtl);
// });
//
// if (hasInvalidAddress) {
// content.put("result","Y");
// content.put("message", "배송지 정보를 찾을 수 없습니다. 다시 시도해 주세요.");
// return content;
// }
//
// List<String> adresList = dlvylcListMulti.stream()
// .map(map -> {
// String adresDvCd = StringUtil.isNullToString(map.get("dlvylcAdresDvCd"));
// String adresDtl = StringUtil.isNullToString(map.get("dlvylcAdresDtl"));
// String dlvylcLnbAdres = StringUtil.isNullToString(map.get("dlvylcLnbAdres"));
// String dlvylcRnmAdres = StringUtil.isNullToString(map.get("dlvylcRnmAdres"));
// String adresMulti;
// if ("01".equals(adresDvCd)) {
// adresMulti = dlvylcRnmAdres + " " + adresDtl;
// } else {
// adresMulti = dlvylcLnbAdres + " " + adresDtl;
// }
//
// return adresMulti;
// })
// .collect(Collectors.toList());
//
// adresArray = adresList.toArray(new String[0]);
//
// List<String> receptMbtlnbList = dlvylcListMulti.stream()
// .map(map -> {
// return StringUtil.isNullToString(map.get("recpntMbtlnb"));
// })
// .collect(Collectors.toList());
//
// receptMbtlnbArray = receptMbtlnbList.toArray(new String[0]);
//
// }
// }
if ( if (
StringUtil.isEmpty((String) shipping.get("dlvylcZip")) || StringUtil.isEmpty((String) shipping.get("dlvylcZip")) ||
StringUtil.isEmpty((String) shipping.get("dlvylcAdresDvCd")) || StringUtil.isEmpty((String) shipping.get("dlvylcAdresDvCd")) ||
@@ -3241,17 +3464,27 @@ public class OrdrController {
try { try {
//계산결과 총결제금액 //계산결과 총결제금액
String resultSetleAmt = ""; String resultSetleAmt = "";
String resultWonSetleAmt = "";
//주문요청 총결제금액 //주문요청 총결제금액
//회원/비회원 총결제금액 //회원/비회원 총결제금액
String reqSetleAmt = StringUtil.isNullToString(setle.get("rlSetleAmt")); String reqSetleAmt = StringUtil.isNullToString(setle.get("rlSetleAmt"));
String reqWonSetleAmt = StringUtil.isNullToString(setle.get("wonRlSetleAmt"));
//재계산된 총결제금액관련정보 //재계산된 총결제금액관련정보
Map<String, Object> resultAmt = service.selectSetleExpectAmt(param); Map<String, Object> resultAmt;
if(isSubsvc) {
resultAmt = service.selectSubsvcSetleExpectAmt(param);
} else {
resultAmt = service.selectSetleExpectAmt(param);
}
if(resultAmt.containsKey("setleExpectAmt")){ if(resultAmt.containsKey("setleExpectAmt")){
LinkedHashMap setleExpectAmt = (LinkedHashMap) resultAmt.get("setleExpectAmt"); LinkedHashMap setleExpectAmt = (LinkedHashMap) resultAmt.get("setleExpectAmt");
if(setleExpectAmt.containsKey("setleAmt")){ if(setleExpectAmt.containsKey("setleAmt")){
resultSetleAmt = StringUtil.isNullToString(setleExpectAmt.get("setleAmt")); resultSetleAmt = StringUtil.isNullToString(setleExpectAmt.get("setleAmt"));
} }
if(setleExpectAmt.containsKey("setleAmtKr")){
resultWonSetleAmt = StringUtil.isNullToString(setleExpectAmt.get("setleAmtKr"));
}
//주문요청의 총결제금액과 계산된 총결제금액이 서로 다를 경우 //주문요청의 총결제금액과 계산된 총결제금액이 서로 다를 경우
if(!resultSetleAmt.equals(reqSetleAmt) if(!resultSetleAmt.equals(reqSetleAmt)
@@ -3260,6 +3493,13 @@ public class OrdrController {
content.put("result", "Y"); content.put("result", "Y");
content.put("message", PurchsValidCode.purchsValidMsg("setleAmt")); content.put("message", PurchsValidCode.purchsValidMsg("setleAmt"));
} }
if(!resultWonSetleAmt.equals(reqWonSetleAmt)
&& StringUtils.hasText(reqWonSetleAmt)
&& StringUtils.hasText(resultWonSetleAmt)){
content.put("result", "Y");
content.put("message", PurchsValidCode.purchsValidMsg("setleAmt"));
}
} }
} catch (WnbtRestException wre) { } catch (WnbtRestException wre) {
log.error(wre.getMessage()); log.error(wre.getMessage());

View File

@@ -4,9 +4,7 @@ import java.io.*;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.Base64; import java.util.*;
import java.util.HashMap;
import java.util.Map;
import com.wb.domainserver.domain.gcone.ordr.pay.service.BOPayService; import com.wb.domainserver.domain.gcone.ordr.pay.service.BOPayService;
import com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO; import com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO;
@@ -22,9 +20,7 @@ import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.wb.domainserver.domain.sopmal.ordr.vo.PayVO; import com.wb.domainserver.domain.sopmal.ordr.vo.PayVO;
@@ -630,4 +626,127 @@ public class PayController {
return message; return message;
} }
/* *********************************************
* 키움결제
********************************************* */
/**
* 키움 결제 화면
* @return PayKiwoomSucsC.jsp
* @author 이경숙
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectKiwoomSample")
public String selectKiwoonPay(ModelMap model) throws Exception {
log.debug("selectKiwoonPay = {}");
return "sopmal/ordr/PayKiwoomPayC";
}
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectKiwoomSample2")
public String selectKiwoonPay2(ModelMap model) throws Exception {
log.debug("selectKiwoonPay = {}");
return "sopmal/ordr/PayKiwoomPay2C";
}
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectKiwoomTotalSample")
public String selectKiwoonPayTotal(ModelMap model) throws Exception {
log.debug("selectKiwoonPay = {}");
return "sopmal/ordr/PayKiwoomPayTotalC";
}
/**
* 키움 결제 연계 전 getEnc 값 받아오기
* @return PayKiwoomSucsC.jsp
* @author 이경숙
*/
@Policy(AuthPolicy.RESTRICTED)
@ResponseBody
@RequestMapping(value="/kiwoomPayGetEnc")
public Map<String, Object> selectKiwoomGetEnc(HttpServletRequest request) throws Exception {
BOPayVO payVO = new BOPayVO();
log.debug("kiwoomPayGetEnc = {}");
//String eucKrStr = new String(utf8Str.getBytes("UTF-8"), "EUC-KR");
//String utf8Str = new String(eucKrStr.getBytes("EUC-KR"), "UTF-8");
//request.setCharacterEncoding("EUC-KR");
payVO.setCpId(request.getParameter("CPID"));
payVO.setPayMethod(request.getParameter("PAYMETHOD"));
payVO.setOrderId(request.getParameter("ORDERNO"));
payVO.setType(request.getParameter("TYPE"));
payVO.setAmount(request.getParameter("AMOUNT"));
Map<String, Object> message;
String sopmalCd = payVO.getSopmalCd();
try {
message = service.insertKiwoomPay(payVO);
} catch (Exception e) {
message = new HashMap<>() {{
put("response", "결제를 실패하였습니다.\n관리자에게 문의하시기 바랍니다.");
}};
}
log.info("insertKiwoomPay step5 ::: {}", message.get("KIWOOM_ENC"));
//model.addAttribute("message", message);
//return "sopmal/ordr/PayKiwoomSucsC";
return message;
}
/**
* 키움 결제 연계처리 - 성공결과페이지
* @return PayKiwoomSucsC.jsp
* @author 이경숙
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/kiwoomPaySuccss")
public String confirmPaymentkiwoom(HttpServletRequest request, ModelMap model) throws Exception {
System.out.println("콜백 수신 ::: "+request.getQueryString());
BOPayVO payVO = new BOPayVO();
payVO.setCode(request.getParameter("RESULTCODE"));
payVO.setOrderId(request.getParameter("ORDERNO"));
payVO.setAmount(request.getParameter("AMOUNT"));
payVO.setPayMethod(request.getParameter("PAYMETHOD"));
Map<String, Object> message = new HashMap<>();
/*String sopmalCd = payVO.getSopmalCd();
try {
message = service.insertKcpPay(payVO);
} catch (Exception e) {
message = new HashMap<>() {{
put("response", "결제를 실패하였습니다.\n관리자에게 문의하시기 바랍니다.");
}};
}*/
JSONObject jsonObject = new JSONObject();
jsonObject.put("code", payVO.getCode());
jsonObject.put("orderId", payVO.getOrderId());
jsonObject.put("amount", payVO.getAmount());
jsonObject.put("payMethod", payVO.getPayMethod());
message.put("response",jsonObject.toString());
model.addAttribute("message", message);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/pay/kcpPayProc", payVO),
// model,
// "message"
// );
return "sopmal/ordr/PayKiwoomSucsC";
}
} }

View File

@@ -41,9 +41,12 @@ public class OrdrVO extends AbstractVO {
/** 실패 메세지 */ /** 실패 메세지 */
private String message; private String message;
/*결제 플랫폼 타입 코드*/ /** 결제 플랫폼 타입 코드*/
private String setlePltfomTyCd; private String setlePltfomTyCd;
/*주문유형*/ /** 주문유형*/
private String ordrTyCd; private String ordrTyCd;
/** 구독서비스 고유번호*/
private String subsvcInnb;
} }

View File

@@ -57,7 +57,7 @@ import java.util.stream.Collectors;
import static org.springframework.beans.factory.config.BeanDefinition.ROLE_INFRASTRUCTURE; import static org.springframework.beans.factory.config.BeanDefinition.ROLE_INFRASTRUCTURE;
@EnableWebSecurity(debug = true) @EnableWebSecurity
@Configuration @Configuration
//@EnableMethodSecurity //@EnableMethodSecurity
public class ResourceServerConfig { public class ResourceServerConfig {

View File

@@ -58,7 +58,7 @@ spring:
gcone: gcone:
hikari: hikari:
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://115.68.176.232:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false jdbc-url: jdbc:mysql://115.68.231.30:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false
username: sakeone username: sakeone
password: dnlfxjtm13@$ password: dnlfxjtm13@$
minimumIdle: 1 minimumIdle: 1
@@ -66,11 +66,11 @@ spring:
idleTimeout: 30000 #30초 idleTimeout: 30000 #30초
maxLifetime: 1800000 #30분 maxLifetime: 1800000 #30분
connectionTimeout: 30000 connectionTimeout: 30000
poolName: gconedDevPool poolName: SakeDevPool
sure: sure:
hikari: hikari:
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://115.68.176.232:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false jdbc-url: jdbc:mysql://115.68.231.30:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false
username: sakeone username: sakeone
password: dnlfxjtm13@$ password: dnlfxjtm13@$
minimumIdle: 1 minimumIdle: 1
@@ -85,7 +85,7 @@ spring:
show-sql: true show-sql: true
servlet: servlet:
multipart: multipart:
max-file-size: 10MB max-file-size: 15MB
max-request-size: -1 max-request-size: -1
mybatis: mybatis:
@@ -111,7 +111,7 @@ sopmalfo:
rtrn: /data/gcone/rtrnFile rtrn: /data/gcone/rtrnFile
extensions: extensions:
images: .gif,.jpg,.jpeg,.png images: .gif,.jpg,.jpeg,.png
cdnurl: http://dev.img.soju1sake1.com cdnurl: https://19d28cf7178139ad.kinxzone.com
pagination: pagination:
@@ -353,11 +353,11 @@ mngrfo:
fileupload: fileupload:
uploaddirs: uploaddirs:
goods: C:/file/temp goods: C:/file/temp
doc: /docFile doc: /data/gcone/docFile
web: /webFile web: /data/gcone/webFile
extensions: extensions:
images: .gif,.jpg,.jpeg,.png images: .gif,.jpg,.jpeg,.png
cdnurl: http://dev.img.soju1sake1.com cdnurl: https://19d28cf7178139ad.kinxzone.com
subsvc: subsvc:
dft-goods-optn-innb: 5 dft-goods-optn-innb: 5
@@ -367,7 +367,7 @@ secret:
host: host:
img: http://dev.img.soju1sake1.com img: https://19d28cf7178139ad.kinxzone.com
naverpay: naverpay:
order: order:
@@ -380,7 +380,7 @@ naverpay:
real-url: https://pay.naver.com real-url: https://pay.naver.com
mail: mail:
host: mail.sake1jan.com host: 10.2.1.76
port: 587 port: 587
username: custom@sake1jan.com username: custom@sake1jan.com
password: mail13@$ password: mail13@$
@@ -420,7 +420,7 @@ bankda:
css-cours : css/theme/themeAF.css css-cours : css/theme/themeAF.css
#선물하기 URL #선물하기 URL
presenturl : dev.svc.soju1sake1.com presenturl : devsvc.soju1sake1.com
# 출고 택배사 구분 EXPORT, (택배사 구분코드 HDRYCPN) # 출고 택배사 구분 EXPORT, (택배사 구분코드 HDRYCPN)
# 송장번호 %INVCNB% 치환 # 송장번호 %INVCNB% 치환
@@ -449,6 +449,6 @@ api:
DATA_ENCRYPT_AES_KEY: "Z8zKbHyMKn+iwD3O0PLT9g==" DATA_ENCRYPT_AES_KEY: "Z8zKbHyMKn+iwD3O0PLT9g=="
currency-unit: currency-unit:
default: 円(엔) default: 円
JP: 円(엔) JP: 円
KR: 원 KR: 원

View File

@@ -58,7 +58,7 @@ spring:
gcone: gcone:
hikari: hikari:
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://115.68.176.232:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false jdbc-url: jdbc:mysql://115.68.231.30:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false
username: sakeone username: sakeone
password: dnlfxjtm13@$ password: dnlfxjtm13@$
minimumIdle: 1 minimumIdle: 1
@@ -66,11 +66,11 @@ spring:
idleTimeout: 30000 #30초 idleTimeout: 30000 #30초
maxLifetime: 1800000 #30분 maxLifetime: 1800000 #30분
connectionTimeout: 30000 connectionTimeout: 30000
poolName: gconedDevPool poolName: SakeDevPool
sure: sure:
hikari: hikari:
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://115.68.176.232:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false jdbc-url: jdbc:mysql://115.68.231.30:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false
username: sakeone username: sakeone
password: dnlfxjtm13@$ password: dnlfxjtm13@$
minimumIdle: 1 minimumIdle: 1
@@ -85,7 +85,7 @@ spring:
show-sql: true show-sql: true
servlet: servlet:
multipart: multipart:
max-file-size: 10MB max-file-size: 15MB
max-request-size: -1 max-request-size: -1
mybatis: mybatis:
@@ -111,7 +111,7 @@ sopmalfo:
rtrn: /data/gcone/rtrnFile rtrn: /data/gcone/rtrnFile
extensions: extensions:
images: .gif,.jpg,.jpeg,.png images: .gif,.jpg,.jpeg,.png
cdnurl: https://19b0bde6dcdc15ad.kinxzone.com cdnurl: https://19d28cf7178139ad.kinxzone.com
pagination: pagination:
@@ -357,8 +357,8 @@ mngrfo:
web: /data/gcone/webFile web: /data/gcone/webFile
extensions: extensions:
images: .gif,.jpg,.jpeg,.png images: .gif,.jpg,.jpeg,.png
cdnurl: https://19b0bde6dcdc15ad.kinxzone.com cdnurl: https://19d28cf7178139ad.kinxzone.com
upurl: https://www.soju1sake1.com # upurl: https://www.soju1sake1.com
subsvc: subsvc:
dft-goods-optn-innb: 5 dft-goods-optn-innb: 5
@@ -367,7 +367,7 @@ secret:
host: host:
img: https://19b0bde6dcdc15ad.kinxzone.com/ img: https://19d28cf7178139ad.kinxzone.com
naverpay: naverpay:
order: order:
@@ -380,7 +380,7 @@ naverpay:
real-url: https://pay.naver.com real-url: https://pay.naver.com
mail: mail:
host: mail.sake1jan.com host: 10.2.1.76
port: 587 port: 587
username: custom@sake1jan.com username: custom@sake1jan.com
password: mail13@$ password: mail13@$
@@ -420,7 +420,7 @@ bankda:
css-cours : css/theme/themeAF.css css-cours : css/theme/themeAF.css
#선물하기 URL #선물하기 URL
presenturl : dev.svc.gcone.co.kr presenturl : devsvc.soju1sake1.com
# 출고 택배사 구분 EXPORT, (택배사 구분코드 HDRYCPN) # 출고 택배사 구분 EXPORT, (택배사 구분코드 HDRYCPN)
# 송장번호 %INVCNB% 치환 # 송장번호 %INVCNB% 치환
@@ -449,6 +449,6 @@ api:
DATA_ENCRYPT_AES_KEY: "Z8zKbHyMKn+iwD3O0PLT9g==" DATA_ENCRYPT_AES_KEY: "Z8zKbHyMKn+iwD3O0PLT9g=="
currency-unit: currency-unit:
default: 円(엔) default: 円
JP: 円(엔) JP: 円
KR: 원 KR: 원

View File

@@ -85,7 +85,7 @@ spring:
show-sql: true show-sql: true
servlet: servlet:
multipart: multipart:
max-file-size: 10MB max-file-size: 15MB
max-request-size: -1 max-request-size: -1
mybatis: mybatis:
@@ -449,6 +449,6 @@ api:
DATA_ENCRYPT_AES_KEY: "Z8zKbHyMKn+iwD3O0PLT9g==" DATA_ENCRYPT_AES_KEY: "Z8zKbHyMKn+iwD3O0PLT9g=="
currency-unit: currency-unit:
default: 円(엔) default: 円
JP: 円(엔) JP: 円
KR: 원 KR: 원

View File

@@ -24,6 +24,8 @@
, ORDR_TY_CD , ORDR_TY_CD
, RL_SETLE_AMT , RL_SETLE_AMT
, ENURI_AMT , ENURI_AMT
, WON_RL_SETLE_AMT
, BUY_RATE
, ORDRR_NM , ORDRR_NM
, ORDRR_TELNB , ORDRR_TELNB
, ORDRR_MBTLNB , ORDRR_MBTLNB
@@ -64,6 +66,10 @@
, RCIPT_NB , RCIPT_NB
, SLE_EMPL_NM , SLE_EMPL_NM
, DWLD_COUPON_INNB , DWLD_COUPON_INNB
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(subsvcInnb)">
, SUBSVC_INNB
, SUBSVC_AT
</if>
, INDVDL_SETLE_SMS_CN , INDVDL_SETLE_SMS_CN
, INDVDL_SETLE_SMS_MBTLNB , INDVDL_SETLE_SMS_MBTLNB
, INDVDL_SETLE_SMS_AT , INDVDL_SETLE_SMS_AT
@@ -84,6 +90,8 @@
, #{ordrTyCd} , #{ordrTyCd}
, #{rlSetleAmt} , #{rlSetleAmt}
, #{enuriAmt} , #{enuriAmt}
, #{wonRlSetleAmt}
, #{buyRate}
, #{ordrrNm} , #{ordrrNm}
, HEX(AES_ENCRYPT(REPLACE(#{ordrrTelnb}, '-', ''), '1df5be2f7e90ae36')) , HEX(AES_ENCRYPT(REPLACE(#{ordrrTelnb}, '-', ''), '1df5be2f7e90ae36'))
, HEX(AES_ENCRYPT(REPLACE(#{ordrrMbtlnb}, '-', ''), '1df5be2f7e90ae36')) , HEX(AES_ENCRYPT(REPLACE(#{ordrrMbtlnb}, '-', ''), '1df5be2f7e90ae36'))
@@ -128,6 +136,10 @@
, #{rciptNb} , #{rciptNb}
, #{sleEmplNm} , #{sleEmplNm}
, #{dwldCouponInnb} , #{dwldCouponInnb}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(subsvcInnb)">
, #{subsvcInnb}
, 'Y'
</if>
, #{indvdlSetleSmsCn} , #{indvdlSetleSmsCn}
, HEX(AES_ENCRYPT(REPLACE(#{indvdlSetleSmsMbtlnb}, '-', ''), '1df5be2f7e90ae36')) , HEX(AES_ENCRYPT(REPLACE(#{indvdlSetleSmsMbtlnb}, '-', ''), '1df5be2f7e90ae36'))
, #{indvdlSetleSmsAt} , #{indvdlSetleSmsAt}
@@ -386,7 +398,10 @@
, ORDR_STTUS_CD , ORDR_STTUS_CD
, RECPNT_NM , RECPNT_NM
, RECPNT_MBTLNB , RECPNT_MBTLNB
, DLVYLC_AREA_CD
, CSTMCLER_CD
, DLVYLC_ZIP , DLVYLC_ZIP
, PREFCD
, DLVYLC_ADRES_DV_CD , DLVYLC_ADRES_DV_CD
, DLVYLC_LNB_ADRES , DLVYLC_LNB_ADRES
, DLVYLC_RNM_ADRES , DLVYLC_RNM_ADRES
@@ -422,7 +437,10 @@
, #{ordrSttusCd} , #{ordrSttusCd}
, #{recpntNm} , #{recpntNm}
, HEX(AES_ENCRYPT(REPLACE(#{recpntMbtlnb}, '-', ''), '1df5be2f7e90ae36')) , HEX(AES_ENCRYPT(REPLACE(#{recpntMbtlnb}, '-', ''), '1df5be2f7e90ae36'))
, #{dlvylcAreaCd}
, #{cstmclerCd}
, #{dlvylcZip} , #{dlvylcZip}
, #{prefcd}
, #{dlvylcAdresDvCd} , #{dlvylcAdresDvCd}
, #{dlvylcLnbAdres} , #{dlvylcLnbAdres}
, #{dlvylcRnmAdres} , #{dlvylcRnmAdres}
@@ -461,6 +479,7 @@
, SOPMAL_CD , SOPMAL_CD
, ORDR_INNB , ORDR_INNB
, SETLE_AMT , SETLE_AMT
, WON_SETLE_AMT
, PG_CMPNY_NM , PG_CMPNY_NM
, SETLE_TY_CD , SETLE_TY_CD
, PG_INNB , PG_INNB
@@ -485,6 +504,7 @@
, #{sopmalCd} , #{sopmalCd}
, #{ordrInnb} , #{ordrInnb}
, #{setleAmt} , #{setleAmt}
, #{wonSetleAmt}
, #{pgCmpnyNm} , #{pgCmpnyNm}
, #{setleTyCd} , #{setleTyCd}
, #{pgInnb} , #{pgInnb}
@@ -1280,6 +1300,7 @@ FROM (
ELSE FDA.LNB_ADRES ELSE FDA.LNB_ADRES
END ADRES END ADRES
, FDA.DTL_ADRES , FDA.DTL_ADRES
, FDA.CSTMCLER_CD
FROM GC_DELIVERY_ADDRESS FDA FROM GC_DELIVERY_ADDRESS FDA
WHERE FDA.MBR_INNB = #{mbrInnb} WHERE FDA.MBR_INNB = #{mbrInnb}
AND FDA.MBR_DV_CD = #{mbrDvCd} AND FDA.MBR_DV_CD = #{mbrDvCd}
@@ -2673,6 +2694,14 @@ FROM (
AND FO.SOPMAL_CD = #{sopmalCd} AND FO.SOPMAL_CD = #{sopmalCd}
</select> </select>
<!-- 관리자 주문 > 실결제금액조회 -->
<select id="selectWonRlSetleAmt" parameterType="dataMap" resultType="String">
SELECT FLOOR (FO.WON_RL_SETLE_AMT) AS RL_SETLE_AMT
FROM GC_ORDER FO
WHERE FO.ORDR_INNB = #{ordrInnb}
AND FO.SOPMAL_CD = #{sopmalCd}
</select>
<!-- 0원 상품 포함시 짜투리 업데이트 ( 장바구니, 마일리지, 애누리 ) --> <!-- 0원 상품 포함시 짜투리 업데이트 ( 장바구니, 마일리지, 애누리 ) -->
<update id="updateOrdrItemOptnRestAmtUpdt"> <update id="updateOrdrItemOptnRestAmtUpdt">

View File

@@ -20,6 +20,7 @@
THEN NOW() BETWEEN GS.EXPSR_BGN_DT AND GS.EXPSR_END_DT THEN NOW() BETWEEN GS.EXPSR_BGN_DT AND GS.EXPSR_END_DT
ELSE 1=1 ELSE 1=1
END END
AND GS.USE_AT = 'Y'
]]> ]]>
</select> </select>
@@ -60,6 +61,15 @@
, GS.MBL_SUBSVC_DC_PC_SAME_AT /*모바일 구독서비스 설명 PC동일여부*/ , GS.MBL_SUBSVC_DC_PC_SAME_AT /*모바일 구독서비스 설명 PC동일여부*/
, GS.LAST_PROCS_ODR /*최종차수*/ , GS.LAST_PROCS_ODR /*최종차수*/
, GS.DFT_GOODS_OPTN_INNB /*기본상품옵션고유번호*/ , GS.DFT_GOODS_OPTN_INNB /*기본상품옵션고유번호*/
, 1 AS QY /*구독서비스 결제 수량*/
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrInnb)">
, #{mbrInnb} AS mbrInnb /*회원 고유번호*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrDvCd)">
, #{mbrDvCd} AS mbrDvCd /*회원구분코드*/
</if>
<![CDATA[
FROM GC_SUBSVC GS FROM GC_SUBSVC GS
WHERE GS.SOPMAL_CD = #{sopmalCd} WHERE GS.SOPMAL_CD = #{sopmalCd}
AND GS.SUBSVC_INNB = #{subsvcInnb} AND GS.SUBSVC_INNB = #{subsvcInnb}
@@ -74,60 +84,61 @@
, CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM , CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
FROM ( FROM (
SELECT COUNT(*) OVER() AS TOT_CNT SELECT COUNT(*) OVER() AS TOT_CNT
, GC.SUBSVC_INNB , GS.SUBSVC_INNB
, GC.SOPMAL_CD , GS.SOPMAL_CD
, GC.SUBSVC_NM , CONCAT(GS.SUBSVC_NM, ' (', GS.SUBSVC_GNR_NM, ')') AS SUBSVC_CONCAT_NM
, GC.SUBSVC_GNR , GS.SUBSVC_NM
, GC.SUBSVC_GNR_NM , GS.SUBSVC_GNR
, GC.DLVY_CNT , GS.SUBSVC_GNR_NM
, GC.INVNTRY_QY , GS.DLVY_CNT
, GC.INVNTRY_QY - GC.USEFUL_INVNTRY_QY AS AVAIL_QT /*가용제고*/ , GS.INVNTRY_QY
, GC.SUBSVC_STTUS_CD , GS.INVNTRY_QY - GS.USEFUL_INVNTRY_QY AS AVAIL_QT /*가용제고*/
, FN_GET_COMMCODE_NAME('GOODS_STTUS', GC.SUBSVC_STTUS_CD) AS SUBSVC_STTUS /*구독서비스 상태*/ , GS.SUBSVC_STTUS_CD
, FN_GET_COMMCODE_NAME('EXPSR_DV', GC.EXPSR_DV_CD) AS EXPSR_DV /*노출구분*/ , FN_GET_COMMCODE_NAME('GOODS_STTUS', GS.SUBSVC_STTUS_CD) AS SUBSVC_STTUS /*구독서비스 상태*/
, GC.SUBSVC_CT /*구독료*/ , FN_GET_COMMCODE_NAME('EXPSR_DV', GS.EXPSR_DV_CD) AS EXPSR_DV /*노출구분*/
, GC.TME_DLVY_AMT /*1회배송비*/ , GS.SUBSVC_CT /*구독료*/
, GC.CNSMRPRIC /*소비자가*/ , GS.TME_DLVY_AMT /*1회배송비*/
, GC.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT) as SELPRIC /*실판매가=구독료+(1회배송비X배송횟수)*/ , GS.CNSMRPRIC /*소비자가*/
, GC.IMG /*섬네일 이미지*/ , GS.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT) as SELPRIC /*실판매가=구독료+(1회배송비X배송횟수)*/
, GC.LAST_PROCS_ODR /*최종차수*/ , GS.IMG /*섬네일 이미지*/
FROM GC_SUBSVC GC , GS.LAST_PROCS_ODR /*최종차수*/
WHERE GC.USE_AT = 'Y' FROM GC_SUBSVC GS
AND GC.SOPMAL_CD = #{sopmalCd} WHERE GS.USE_AT = 'Y'
AND GS.SOPMAL_CD = #{sopmalCd}
<if test="srchSelSubsvcNm != null and srchSelSubsvcNm != ''"> <if test="srchSelSubsvcNm != null and srchSelSubsvcNm != ''">
AND GC.SUBSVC_NM = #{srchSelSubsvcNm} /*구독서비스 명*/ AND GS.SUBSVC_NM = #{srchSelSubsvcNm} /*구독서비스 명*/
</if> </if>
<if test="srchSelSubsvcGnr != null and srchSelSubsvcGnr != ''"> <if test="srchSelSubsvcGnr != null and srchSelSubsvcGnr != ''">
AND GC.SUBSVC_GNR = #{srchSelSubsvcGnr} /*기수*/ AND GS.SUBSVC_GNR = #{srchSelSubsvcGnr} /*기수*/
</if> </if>
<if test="srchSubsvcNm != null and srchSubsvcNm != ''"> <if test="srchSubsvcNm != null and srchSubsvcNm != ''">
AND GC.SUBSVC_NM LIKE CONCAT('%',#{srchSubsvcNm},'%') /*구독서비스 명*/ AND GS.SUBSVC_NM LIKE CONCAT('%',#{srchSubsvcNm},'%') /*구독서비스 명*/
</if> </if>
<if test="srchSubsvcGnrNm != null and srchSubsvcGnrNm != ''"> <if test="srchSubsvcGnrNm != null and srchSubsvcGnrNm != ''">
AND GC.SUBSVC_GNR_NM LIKE CONCAT('%',#{srchSubsvcGnrNm},'%') /*기수명*/ AND GS.SUBSVC_GNR_NM LIKE CONCAT('%',#{srchSubsvcGnrNm},'%') /*기수명*/
</if> </if>
<choose> <choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchArrSubsvcSttusCd)"> <when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchArrSubsvcSttusCd)">
/*판매상태*/ /*판매상태*/
AND GC.SUBSVC_STTUS_CD IN AND GS.SUBSVC_STTUS_CD IN
<foreach collection="srchArrSubsvcSttusCd" item="subsvcSttusCd" open="(" close=")" separator=","> <foreach collection="srchArrSubsvcSttusCd" item="subsvcSttusCd" open="(" close=")" separator=",">
#{subsvcSttusCd} #{subsvcSttusCd}
</foreach> </foreach>
</when> </when>
</choose> </choose>
<if test="srchExpsrDvCd != null and srchExpsrDvCd != ''"> <if test="srchExpsrDvCd != null and srchExpsrDvCd != ''">
AND GC.EXPSR_DV_CD = #{srchExpsrDvCd} /*노출여부*/ AND GS.EXPSR_DV_CD = #{srchExpsrDvCd} /*노출여부*/
</if> </if>
ORDER BY ORDER BY
<choose> <choose>
<when test="sortDv == 'subsvcGnrAsc'"> <when test="sortDv == 'subsvcGnrAsc'">
GC.SUBSVC_NM ASC, SUBSVC_GNR ASC, GS.SUBSVC_NM ASC, SUBSVC_GNR ASC,
</when> </when>
<otherwise> <otherwise>
GC.SUBSVC_NM DESC, SUBSVC_GNR DESC, GS.SUBSVC_NM DESC, SUBSVC_GNR DESC,
</otherwise> </otherwise>
</choose> </choose>
GC.SUBSVC_INNB ASC GS.SUBSVC_INNB ASC
) TB ) TB
WHERE (@ROWNUM:=0)=0 WHERE (@ROWNUM:=0)=0
) PV ) PV
@@ -190,6 +201,9 @@
, CNSMRPRIC = REPLACE(#{cnsmrpric},',','') , CNSMRPRIC = REPLACE(#{cnsmrpric},',','')
, INVNTRY_QY = REPLACE(#{invntryQy},',','') , INVNTRY_QY = REPLACE(#{invntryQy},',','')
, INVNTRY_POLICY_CD = #{invntryPolicyCd} , INVNTRY_POLICY_CD = #{invntryPolicyCd}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(usefulInvntryQyInit, 'Y')">
, USEFUL_INVNTRY_QY = 0
</if>
, AVLINV_LMTT_QY = #{avlinvLmttQy} , AVLINV_LMTT_QY = #{avlinvLmttQy}
, SUBSVC_STTUS_CD = #{subsvcSttusCd} , SUBSVC_STTUS_CD = #{subsvcSttusCd}
, EXPSR_DV_CD = #{expsrDvCd} , EXPSR_DV_CD = #{expsrDvCd}

View File

@@ -744,6 +744,9 @@
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrNm) and mbrNm != ''"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrNm) and mbrNm != ''">
MBR_NM = #{mbrNm}, MBR_NM = #{mbrNm},
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbtlnb)">
MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{mbtlnb},'-',''), #{secretKey})),
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(zip) and zip != ''"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(zip) and zip != ''">
ZIP = #{zip}, ZIP = #{zip},
ADRES_DV = #{adresDv}, ADRES_DV = #{adresDv},

View File

@@ -13,6 +13,7 @@
<sql id="mbrMlgWhere"> <sql id="mbrMlgWhere">
<![CDATA[ <![CDATA[
WHERE 1=1 WHERE 1=1
AND MLG.ACCMLMNY_AMT != 0
]]> ]]>
<choose> <choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrInnb)"> <when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrInnb)">

View File

@@ -683,6 +683,7 @@
,FMG.MBR_GRAD_NM -- 회원 등급명 ,FMG.MBR_GRAD_NM -- 회원 등급명
,IFNULL(REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(SH.RECPNT_MBTLNB) , '1df5be2f7e90ae36') AS CHAR(50)), '(.{3})(.{4})(.{4})', '$1-$2-$3'), '') AS RECPNT_MBTLNB ,IFNULL(REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(SH.RECPNT_MBTLNB) , '1df5be2f7e90ae36') AS CHAR(50)), '(.{3})(.{4})(.{4})', '$1-$2-$3'), '') AS RECPNT_MBTLNB
,IFNULL(REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(O.ORDRR_MBTLNB) , '1df5be2f7e90ae36') AS CHAR(50)), '(.{3})(.{4})(.{4})', '$1-$2-$3'), '') AS ORDRR_MBTLNB ,IFNULL(REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(O.ORDRR_MBTLNB) , '1df5be2f7e90ae36') AS CHAR(50)), '(.{3})(.{4})(.{4})', '$1-$2-$3'), '') AS ORDRR_MBTLNB
,FN_GET_COMMCODE_NAME('ORDR_STTUS', SH.ORDR_STTUS_CD) AS ORDR_STTUS_NM
]]> ]]>
<include refid="dlivyProcsFrom"/> <include refid="dlivyProcsFrom"/>
<include refid="dlivyProcsWhere"/> <include refid="dlivyProcsWhere"/>

View File

@@ -476,6 +476,9 @@
AND FO.ORDRR_MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{mbtlnb}, '-', ''), #{secretKey})) AND FO.ORDRR_MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{mbtlnb}, '-', ''), #{secretKey}))
AND FO.MBR_INNB = 0 AND FO.MBR_INNB = 0
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSubsvcAt)">
AND FO.SUBSVC_AT = #{srchSubsvcAt}
</if>
</sql> </sql>
<!-- 전체 주문 조회 > 매장 목록 조회 --> <!-- 전체 주문 조회 > 매장 목록 조회 -->
@@ -514,7 +517,10 @@
, DATE_FORMAT(FO.ORDR_RCEPT_DT, '%Y-%m-%d %H:%i') AS ORDR_RCEPT_DT -- 주문접수일 , DATE_FORMAT(FO.ORDR_RCEPT_DT, '%Y-%m-%d %H:%i') AS ORDR_RCEPT_DT -- 주문접수일
, FO.SLE_ENVRN_CD -- 판매환경코드 , FO.SLE_ENVRN_CD -- 판매환경코드
, FN_GET_COMMCODE_NAME('SLE_ENVRN', FO.SLE_ENVRN_CD) AS SLE_ENVRN_NM , FN_GET_COMMCODE_NAME('SLE_ENVRN', FO.SLE_ENVRN_CD) AS SLE_ENVRN_NM
, FN_GET_ORDER_GOODS_NAME(FO.SOPMAL_CD, FO.ORDR_INNB) AS GOODS_NM -- 상품명 , CASE
WHEN FO.SUBSVC_AT = 'Y' THEN CONCAT(GS.SUBSVC_NM,'(', GS.SUBSVC_GNR_NM, ')')
ELSE FN_GET_ORDER_GOODS_NAME(FO.SOPMAL_CD, FO.ORDR_INNB)
END AS GOODS_NM -- 상품명
, FN_GET_ORDER_COUNT(FO.SOPMAL_CD, FO.ORDR_INNB, 'ITEM') AS ITEM_CNT -- 상품 개수 , FN_GET_ORDER_COUNT(FO.SOPMAL_CD, FO.ORDR_INNB, 'ITEM') AS ITEM_CNT -- 상품 개수
, FN_GET_ORDER_COUNT(FO.SOPMAL_CD, FO.ORDR_INNB, 'ORDER') AS ORDER_CNT -- 상품 종수 , FN_GET_ORDER_COUNT(FO.SOPMAL_CD, FO.ORDR_INNB, 'ORDER') AS ORDER_CNT -- 상품 종수
, ( , (
@@ -580,6 +586,7 @@
END END
) )
) BLACK_DV -- 블랙리스트 구분 ) BLACK_DV -- 블랙리스트 구분
, FO.SUBSVC_AT
FROM GC_ORDER FO FROM GC_ORDER FO
LEFT JOIN LATERAL ( LEFT JOIN LATERAL (
SELECT FM.MBR_INNB SELECT FM.MBR_INNB
@@ -600,6 +607,9 @@
LEFT JOIN GC_ORDER_SETLE FOS -- LEFT 로 다시 변경 LEFT JOIN GC_ORDER_SETLE FOS -- LEFT 로 다시 변경
ON FOS.SOPMAL_CD = FO.SOPMAL_CD ON FOS.SOPMAL_CD = FO.SOPMAL_CD
AND FOS.ORDR_INNB = FO.ORDR_INNB AND FOS.ORDR_INNB = FO.ORDR_INNB
LEFT JOIN GC_SUBSVC GS
ON GS.SOPMAL_CD = FO.SOPMAL_CD
AND GS.SUBSVC_INNB = FO.SUBSVC_INNB
WHERE FO.USE_AT = 'Y' WHERE FO.USE_AT = 'Y'
/*AND FO.SUBSVC_AT = 'N'*/ /*AND FO.SUBSVC_AT = 'N'*/
AND FOS.ORDR_INNB IS NOT NULL -- GC_ORDER_SETLE 에 데이터가 있을 때 조건 AND FOS.ORDR_INNB IS NOT NULL -- GC_ORDER_SETLE 에 데이터가 있을 때 조건
@@ -996,6 +1006,7 @@
, IFNULL(FOI.MLG_AMT, 0) AS MLG_AMT , IFNULL(FOI.MLG_AMT, 0) AS MLG_AMT
, IFNULL(FOS.DLVY_AMT, 0) AS DLVY_AMT , IFNULL(FOS.DLVY_AMT, 0) AS DLVY_AMT
, IFNULL(FO.RL_SETLE_AMT, 0) AS SETLE_AMT , IFNULL(FO.RL_SETLE_AMT, 0) AS SETLE_AMT
, ROUND(IFNULL(FO.WON_RL_SETLE_AMT, 0)) AS WON_RL_SETLE_AMT
FROM ( FROM (
SELECT FOI.SOPMAL_CD SELECT FOI.SOPMAL_CD
, FOI.ORDR_INNB , FOI.ORDR_INNB
@@ -1096,6 +1107,7 @@
, FN_GET_COMMCODE_NAME('ORDR_TY', FO.ORDR_TY_CD) AS ordr_ty_nm , FN_GET_COMMCODE_NAME('ORDR_TY', FO.ORDR_TY_CD) AS ordr_ty_nm
, FOI.optn_cd_1 , FOI.optn_cd_1
, FOSH.dlvy_mssage_cn , FOSH.dlvy_mssage_cn
, FN_GET_COMMCODE_NAME('ORDR_STTUS', FOSH.ORDR_STTUS_CD) AS shipping_sttus_nm
FROM GC_ORDER FO FROM GC_ORDER FO
INNER JOIN LATERAL ( INNER JOIN LATERAL (
SELECT GOI.SOPMAL_CD SELECT GOI.SOPMAL_CD
@@ -1482,6 +1494,14 @@
END AS SALES_POSBLE_REGIST_AT /* 현금영수증 신청 가능 여부 */ END AS SALES_POSBLE_REGIST_AT /* 현금영수증 신청 가능 여부 */
, IF(FO.SMRT_SHOPNG_ORDRNB IS NOT NULL AND FO.SMRT_SHOPNG_ORDRNB != '0', FO.SMRT_SHOPNG_ORDRNB, NULL) AS SMRT_SHOPNG_ORDRNB , IF(FO.SMRT_SHOPNG_ORDRNB IS NOT NULL AND FO.SMRT_SHOPNG_ORDRNB != '0', FO.SMRT_SHOPNG_ORDRNB, NULL) AS SMRT_SHOPNG_ORDRNB
, CONCAT(SP.SOPMAL_NM, ' ', STR.STR_NM) AS STR_NM , CONCAT(SP.SOPMAL_NM, ' ', STR.STR_NM) AS STR_NM
, (SELECT MAX(CAST(GOR.ORDER_REFUND_INNB AS CHAR))
FROM GC_ORDER_REFUND GOR
WHERE GOR.SOPMAL_CD = FO.SOPMAL_CD
AND GOR.ORDR_INNB = FO.ORDR_INNB
AND GOR.USE_AT = 'Y'
AND GOR.REFUND_PROCS_STTUS_CD = '03' /*처리상태:환불완료*/) AS ORDER_RE_INNB
, FO.SUBSVC_AT
, FO.SUBSVC_INNB
FROM GC_ORDER FO FROM GC_ORDER FO
INNER JOIN ( INNER JOIN (
SELECT FOI.SOPMAL_CD SELECT FOI.SOPMAL_CD
@@ -1650,8 +1670,10 @@
, REFUND_ACNT_DPSTR_NM , REFUND_ACNT_DPSTR_NM
, REFUND_ACNTNB , REFUND_ACNTNB
, REFUND_AMT , REFUND_AMT
, WON_REFUND_AMT
, REFUND_ACCMLMNY_AMT , REFUND_ACCMLMNY_AMT
, REFUND_DLVY_AMT , REFUND_DLVY_AMT
, WON_REFUND_DLVY_AMT
, MLG_ACCMLMNY_AMT , MLG_ACCMLMNY_AMT
, MLG_ACCMLMNY_VALID_DT , MLG_ACCMLMNY_VALID_DT
, ENURI_REVISN_AMT , ENURI_REVISN_AMT
@@ -1677,6 +1699,7 @@
, RETURN_CSTMR_TELNB , RETURN_CSTMR_TELNB
, RETURN_CSTMR_MBTLNB , RETURN_CSTMR_MBTLNB
, RETURN_DLVY_AMT , RETURN_DLVY_AMT
, WON_RETURN_DLVY_AMT
, RETURN_DLVY_TRGET_CD , RETURN_DLVY_TRGET_CD
, RETURN_DLVY_RSPNSBL_CD , RETURN_DLVY_RSPNSBL_CD
, RETURN_DLVY_PYMNT_TY_CD , RETURN_DLVY_PYMNT_TY_CD
@@ -1714,8 +1737,10 @@
, #{refundAcntDpstrNm} , #{refundAcntDpstrNm}
, REPLACE(#{refundAcntnb}, '-', '') , REPLACE(#{refundAcntnb}, '-', '')
, #{refundAmt} , #{refundAmt}
, ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{refundAmt},0)
, #{refundAccmlmnyAmt} , #{refundAccmlmnyAmt}
, #{refundDlvyAmt} , #{refundDlvyAmt}
, ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{refundDlvyAmt},0)
, #{mlgAccmlmnyAmt} , #{mlgAccmlmnyAmt}
, #{mlgAccmlmnyValidDt} , #{mlgAccmlmnyValidDt}
, #{enuriRevisnAmt} , #{enuriRevisnAmt}
@@ -1741,6 +1766,7 @@
, HEX(AES_ENCRYPT(REPLACE(#{returnCstmrTelnb}, '-', ''), '1df5be2f7e90ae36')) , HEX(AES_ENCRYPT(REPLACE(#{returnCstmrTelnb}, '-', ''), '1df5be2f7e90ae36'))
, HEX(AES_ENCRYPT(REPLACE(#{returnCstmrMbtlnb}, '-', ''), '1df5be2f7e90ae36')) , HEX(AES_ENCRYPT(REPLACE(#{returnCstmrMbtlnb}, '-', ''), '1df5be2f7e90ae36'))
, #{returnDlvyAmt} , #{returnDlvyAmt}
, ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{returnDlvyAmt},0)
, #{returnDlvyTrgetCd} , #{returnDlvyTrgetCd}
, #{returnDlvyRspnsblCd} , #{returnDlvyRspnsblCd}
, #{returnDlvyPymntTyCd} , #{returnDlvyPymntTyCd}
@@ -1992,6 +2018,71 @@
ORDER BY FOS.ORDR_DLVY_INNB ASC ORDER BY FOS.ORDR_DLVY_INNB ASC
</select> </select>
<!-- 배송지정보 목록 조회 그룹 -->
<select id="selectOrderShippingListGrp" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrShippingVO" resultType="dataMap">
SELECT SOPMAL_CD, ORDR_INNB, RECPNT_NM, RECPNT_TELNB, RECPNT_MBTLNB, DLVYLC_ZIP, DLVYLC_ADRES_DV_CD, ADRES, DLVYLC_RNM_ADRES, DLVYLC_LNB_ADRES, DLVYLC_ADRES_DTL, DLVY_MSSAGE_CN, GIFT_MSSAGE_CN, GIFT_STTUS_CD, GIFT_STTUS_CD_NM, ORDR_STTUS_CD, ORDR_STTUS_NM, FREE_DLVY_CND_AMT, DFT_DLVY_AMT
FROM (
SELECT FOS.SOPMAL_CD
, FOS.ORDR_INNB
, FOS.ORDR_DLVY_INNB
, FOS.RECPNT_NM
, CASE
WHEN LENGTH(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50))) = 11 THEN
CONCAT(SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), 1, 3), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), 4, 4), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), 8, 4))
WHEN LENGTH(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50))) = 10 AND CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)) LIKE '02%' THEN
CONCAT(SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), 1, 2), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), 3, 4), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), 7, 4))
WHEN LENGTH(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50))) = 10 AND CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)) NOT LIKE '02%' THEN
CONCAT(SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), 1, 3), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), 4, 3), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), 7, 4))
WHEN LENGTH(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50))) = 9 THEN
CONCAT(SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), 1, 2), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), 3, 3), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), 6, 4))
WHEN LENGTH(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50))) = 8 THEN
CONCAT(SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), 1, 4), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), 5, 4))
ELSE
CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_TELNB), '1df5be2f7e90ae36') AS CHAR(50))
END AS RECPNT_TELNB
, CASE
WHEN LENGTH(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50))) = 11 THEN
CONCAT(SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), 1, 3), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), 4, 4), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), 8, 4))
WHEN LENGTH(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50))) = 10 AND CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)) LIKE '02%' THEN
CONCAT(SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), 1, 2), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), 3, 4), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), 7, 4))
WHEN LENGTH(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50))) = 10 AND CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)) NOT LIKE '02%' THEN
CONCAT(SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), 1, 3), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), 4, 3), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), 7, 4))
WHEN LENGTH(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50))) = 9 THEN
CONCAT(SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), 1, 2), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), 3, 3), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), 6, 4))
WHEN LENGTH(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50))) = 8 THEN
CONCAT(SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), 1, 4), '-', SUBSTR(CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), 5, 4))
ELSE
CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50))
END AS RECPNT_MBTLNB
, FOS.DLVYLC_ZIP
, FOS.DLVYLC_ADRES_DV_CD
, CASE WHEN FOS.DLVYLC_ADRES_DV_CD = '01'
THEN FOS.DLVYLC_RNM_ADRES
ELSE FOS.DLVYLC_LNB_ADRES
END ADRES
, FOS.DLVYLC_RNM_ADRES
, FOS.DLVYLC_LNB_ADRES
, FOS.DLVYLC_ADRES_DTL
, FOS.DLVY_MSSAGE_CN
, FOS.GIFT_MSSAGE_CN
, FOS.GIFT_STTUS_CD
, FN_GET_COMMCODE_NAME('GIFT_STTUS', FOS.GIFT_STTUS_CD) AS GIFT_STTUS_CD_NM
, FOS.ORDR_STTUS_CD
, FN_GET_COMMCODE_NAME('ORDR_STTUS', FOS.ORDR_STTUS_CD) AS ORDR_STTUS_NM
, ROUND(FOS.RL_DLVY_AMT) AS RL_DLVY_AMT
, ROUND(FOS.FREE_DLVY_CND_AMT) AS FREE_DLVY_CND_AMT
, ROUND(FOS.DFT_DLVY_AMT) AS DFT_DLVY_AMT
FROM GC_ORDER_SHIPPING FOS
WHERE FOS.SOPMAL_CD = #{sopmalCd}
AND FOS.ORDR_INNB = #{ordrInnb}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrDlvyInnb)">
AND FOS.ORDR_DLVY_INNB = #{ordrDlvyInnb}
</if>
ORDER BY FOS.ORDR_DLVY_INNB ASC
) AA
GROUP BY SOPMAL_CD, ORDR_INNB, RECPNT_NM, RECPNT_TELNB, RECPNT_MBTLNB, DLVYLC_ZIP, DLVYLC_ADRES_DV_CD, ADRES, DLVYLC_RNM_ADRES, DLVYLC_LNB_ADRES, DLVYLC_ADRES_DTL, DLVY_MSSAGE_CN, GIFT_MSSAGE_CN, GIFT_STTUS_CD, GIFT_STTUS_CD_NM, ORDR_STTUS_CD, ORDR_STTUS_NM, FREE_DLVY_CND_AMT, DFT_DLVY_AMT
</select>
<!-- 배송지별 상품 목록 조회 --> <!-- 배송지별 상품 목록 조회 -->
<select id="selectOrderShippingGoodsList" parameterType="dataMap" resultType="dataMap"> <select id="selectOrderShippingGoodsList" parameterType="dataMap" resultType="dataMap">
<![CDATA[ <![CDATA[
@@ -2233,6 +2324,16 @@
]]> ]]>
</select> </select>
<!-- 배송지정보 일치여부 확인 -->
<select id="selectDlvylcAreaCdInfo" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrShippingVO">
SELECT COUNT(*) AS CNT
FROM GC_ORDER_SHIPPING GOS
WHERE GOS.SOPMAL_CD = #{sopmalCd}
AND GOS.ORDR_INNB = #{ordrInnb}
AND GOS.ORDR_DLVY_INNB = #{ordrDlvyInnb}
AND GOS.DLVYLC_AREA_CD = #{dlvylcAreaCd}
</select>
<!-- 배송지정보 수정 --> <!-- 배송지정보 수정 -->
<update id="updateDlvylcInfo" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrShippingVO"> <update id="updateDlvylcInfo" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrShippingVO">
UPDATE GC_ORDER_SHIPPING FOS UPDATE GC_ORDER_SHIPPING FOS
@@ -2264,6 +2365,7 @@
WHERE FOS.SOPMAL_CD = #{sopmalCd} WHERE FOS.SOPMAL_CD = #{sopmalCd}
AND FOS.ORDR_INNB = #{ordrInnb} AND FOS.ORDR_INNB = #{ordrInnb}
AND FOS.ORDR_DLVY_INNB = #{ordrDlvyInnb} AND FOS.ORDR_DLVY_INNB = #{ordrDlvyInnb}
AND FOS.DLVYLC_AREA_CD = #{dlvylcAreaCd}
</update> </update>
<!-- 주문메모 목록 조회 --> <!-- 주문메모 목록 조회 -->
@@ -2421,6 +2523,7 @@
WHEN FOS.PG_CMPNY_NM = 'kcp' THEN GPL.KCP_MID WHEN FOS.PG_CMPNY_NM = 'kcp' THEN GPL.KCP_MID
ELSE GPL.OLD_TOSS_MID ELSE GPL.OLD_TOSS_MID
END AS MID END AS MID
, ROUND(FOS.WON_SETLE_AMT) AS WON_SETLE_AMT
FROM GC_ORDER_SETLE FOS FROM GC_ORDER_SETLE FOS
INNER JOIN GC_PAY_LINK GPL INNER JOIN GC_PAY_LINK GPL
ON FOS.SOPMAL_CD = GPL.SOPMAL_CD ON FOS.SOPMAL_CD = GPL.SOPMAL_CD
@@ -3821,6 +3924,7 @@
AND FOS.ORDR_INNB = FO.ORDR_INNB AND FOS.ORDR_INNB = FO.ORDR_INNB
WHERE FO.USE_AT = 'Y' WHERE FO.USE_AT = 'Y'
AND FO.SUBSVC_AT = 'N' /*구독서비스 제외*/ AND FO.SUBSVC_AT = 'N' /*구독서비스 제외*/
AND ( ( FO.ORDR_STTUS_CD BETWEEN '15' AND '75' ) OR FO.ORDR_STTUS_CD = '95' )
AND IFNULL(FOS.ORDR_INNB, '') != '' AND IFNULL(FOS.ORDR_INNB, '') != ''
AND FO.SOPMAL_CD = #{sopmalCd} AND FO.SOPMAL_CD = #{sopmalCd}
AND FO.MBR_DV_CD = #{mbrDvCd} AND FO.MBR_DV_CD = #{mbrDvCd}
@@ -4177,6 +4281,7 @@
AND FC.CART_DV_CD = #{cartDvCd} AND FC.CART_DV_CD = #{cartDvCd}
ORDER BY FC.REGIST_DT DESC ORDER BY FC.REGIST_DT DESC
</select> </select>
<!--사용자 > 상품 > 장바구니 목록 > 선물하기,여러곳배송 버튼 활성화 여부 --> <!--사용자 > 상품 > 장바구니 목록 > 선물하기,여러곳배송 버튼 활성화 여부 -->
<select id="selectBOSpbkGiftMultiDlvyAt" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOSpbkVO" resultType="dataMap"> <select id="selectBOSpbkGiftMultiDlvyAt" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOSpbkVO" resultType="dataMap">
SELECT GS.SOPMAL_CD SELECT GS.SOPMAL_CD
@@ -4187,6 +4292,14 @@
AND GS.SOPMAL_CD= #{sopmalCd} AND GS.SOPMAL_CD= #{sopmalCd}
</select> </select>
<!--살때 환율 조회 -->
<select id="selectBuyRate" parameterType="dataMap" resultType="BigDecimal">
SELECT GS.BUY_RATE
FROM GC_SHOP GS
WHERE 1=1
AND GS.SOPMAL_CD= #{sopmalCd}
</select>
<!--장바구니 상태 변경 --> <!--장바구니 상태 변경 -->
<update id="updateBOSpbkCartDvCd" parameterType="dataMap"> <update id="updateBOSpbkCartDvCd" parameterType="dataMap">
UPDATE UPDATE
@@ -4719,19 +4832,51 @@
THEN (IFNULL(OIOP2.ENURI_DSCNT_UNIT, 0) * RI.REFUND_QY) + IFNULL(OIOP2.ENURI_DSCNT_REST, 0) THEN (IFNULL(OIOP2.ENURI_DSCNT_UNIT, 0) * RI.REFUND_QY) + IFNULL(OIOP2.ENURI_DSCNT_REST, 0)
ELSE (IFNULL(OIOP2.ENURI_DSCNT_UNIT, 0) * RI.REFUND_QY) END ) AS SUB_SLEPRIC ELSE (IFNULL(OIOP2.ENURI_DSCNT_UNIT, 0) * RI.REFUND_QY) END ) AS SUB_SLEPRIC
, FSG.DLVY_GROUP_DV_CD , FSG.DLVY_GROUP_DV_CD
, ROUND(IFNULL(FSG.DFT_DLVY_AMT, 0), '0') AS DFT_DLVY_AMT , (CASE
, FSG.AMT_CND_USE_AT WHEN SH.DLVYLC_AREA_CD = 'JP' THEN ROUND(IFNULL(FSG.DFT_DLVY_AMT2, 0), '0')
, ROUND(IFNULL(FSG.AMT_CND_ADIT_AMT, 0), '0') AS AMT_CND_ADIT_AMT ELSE ROUND(IFNULL(FSG.DFT_DLVY_AMT, 0), '0')
, FSG.CNT_CND_USE_AT END) AS DFT_DLVY_AMT
, ROUND(IFNULL(FSG.CNT_CND_ADIT_AMT, 0), '0') AS CNT_CND_ADIT_AMT , (CASE
, FSG.BUNDLE_DLVY_USE_AT WHEN SH.DLVYLC_AREA_CD = 'JP' THEN FSG.AMT_CND_USE_AT2
, ROUND(IFNULL(FSG.BUNDLE_DLVY_CND_AMT, 0), '0') AS BUNDLE_DLVY_CND_AMT ELSE FSG.AMT_CND_USE_AT
, FSG.DLVY_AREA_ADIT_AT END) AS AMT_CND_USE_AT
, ROUND(IFNULL(FSG.AREA_ADIT_DLVY_AMT, 0), '0') AS AREA_ADIT_DLVY_AMT , (CASE
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN ROUND(IFNULL(FSG.AMT_CND_ADIT_AMT2, 0), '0')
ELSE ROUND(IFNULL(FSG.AMT_CND_ADIT_AMT, 0), '0')
END) AS AMT_CND_ADIT_AMT
, (CASE
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN FSG.CNT_CND_USE_AT2
ELSE FSG.CNT_CND_USE_AT
END) AS CNT_CND_USE_AT
, (CASE
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN ROUND(IFNULL(FSG.CNT_CND_ADIT_AMT2, 0), '0')
ELSE ROUND(IFNULL(FSG.CNT_CND_ADIT_AMT, 0), '0')
END) AS CNT_CND_ADIT_AMT
, (CASE
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN FSG.BUNDLE_DLVY_USE_AT2
ELSE FSG.BUNDLE_DLVY_USE_AT
END) AS BUNDLE_DLVY_USE_AT
, (CASE
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN ROUND(IFNULL(FSG.BUNDLE_DLVY_CND_AMT2, 0), '0')
ELSE ROUND(IFNULL(FSG.BUNDLE_DLVY_CND_AMT, 0), '0')
END) AS BUNDLE_DLVY_CND_AMT
, (CASE
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN FSG.DLVY_AREA_ADIT_AT2
ELSE FSG.DLVY_AREA_ADIT_AT
END) AS DLVY_AREA_ADIT_AT
, (CASE
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN ROUND(IFNULL(FSG.AREA_ADIT_DLVY_AMT2, 0), '0')
ELSE ROUND(IFNULL(FSG.AREA_ADIT_DLVY_AMT, 0), '0')
END) AS AREA_ADIT_DLVY_AMT
, (CASE
WHEN OIOP2.ORDR_QY = (OIOP2.STEP85 + RI.REFUND_QY) THEN ROUND(IFNULL(SH.RL_DLVY_AMT, 0), '0')
ELSE 0
END) AS REAL_DLVY_AMT
, ROUND(IFNULL(SH.RL_DLVY_AMT + SH.DLVY_COUPON_DSCNT_AMT, 0), '0') AS RL_DLVY_AMT , ROUND(IFNULL(SH.RL_DLVY_AMT + SH.DLVY_COUPON_DSCNT_AMT, 0), '0') AS RL_DLVY_AMT
, OIOP2.RETURN_DLVY_APPLC_AT , OIOP2.RETURN_DLVY_APPLC_AT
, ROUND(IFNULL(OIOP2.RETURN_DLVY_AMT, 0), '0') AS RETURN_DLVY_AMT , ROUND(IFNULL(OIOP2.RETURN_DLVY_AMT, 0), '0') AS RETURN_DLVY_AMT
, ROUND(IFNULL(OIOP2.EXCHNG_DLVY_AMT, 0), '0') AS EXCHNG_DLVY_AMT , ROUND(IFNULL(OIOP2.EXCHNG_DLVY_AMT, 0), '0') AS EXCHNG_DLVY_AMT
, SH.DLVYLC_AREA_CD
FROM GC_ORDER_ITEM_OPTION OIOP2 FROM GC_ORDER_ITEM_OPTION OIOP2
INNER JOIN GC_ORDER_ITEM OI INNER JOIN GC_ORDER_ITEM OI
ON OIOP2.SOPMAL_CD = OI.SOPMAL_CD ON OIOP2.SOPMAL_CD = OI.SOPMAL_CD
@@ -4767,7 +4912,9 @@
<![CDATA[ <![CDATA[
UPDATE GC_ORDER_REFUND UPDATE GC_ORDER_REFUND
SET RETURN_DLVY_AMT = #{returnDlvyAmt} SET RETURN_DLVY_AMT = #{returnDlvyAmt}
, WON_RETURN_DLVY_AMT = ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{returnDlvyAmt}, 0)
, REFUND_DLVY_AMT = #{refundDlvyAmt} , REFUND_DLVY_AMT = #{refundDlvyAmt}
, WON_REFUND_DLVY_AMT = ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{refundDlvyAmt}, 0)
WHERE SOPMAL_CD = #{sopmalCd} WHERE SOPMAL_CD = #{sopmalCd}
AND ORDER_REFUND_INNB = #{orderRefundInnb} AND ORDER_REFUND_INNB = #{orderRefundInnb}
]]> ]]>
@@ -4861,6 +5008,7 @@
<!-- PG로그 가상계좌 검증키 조회 --> <!-- PG로그 가상계좌 검증키 조회 -->
<select id="selectPglogVirtualKey" parameterType="dataMap" resultType="dataMap"> <select id="selectPglogVirtualKey" parameterType="dataMap" resultType="dataMap">
SELECT ROUND(GOR.RL_SETLE_AMT) AS RL_SETLE_AMT SELECT ROUND(GOR.RL_SETLE_AMT) AS RL_SETLE_AMT
, ROUND(GOR.WON_RL_SETLE_AMT) AS WON_RL_SETLE_AMT
, GOR.ORDRR_NM , GOR.ORDRR_NM
, GOPL.SETLER_NM , GOPL.SETLER_NM
, GOPL.DELNG_NB , GOPL.DELNG_NB
@@ -4883,7 +5031,7 @@
AND GOR.SOPMAL_CD = GOPL.SOPMAL_CD AND GOR.SOPMAL_CD = GOPL.SOPMAL_CD
WHERE GOR.SOPMAL_CD = #{sopmalCd} WHERE GOR.SOPMAL_CD = #{sopmalCd}
AND GOR.ORDR_INNB = #{ordrInnb} AND GOR.ORDR_INNB = #{ordrInnb}
AND GOPL.SETLE_MTH_CD IN ('04','05','06') -- AND GOPL.SETLE_MTH_CD IN ('04','05','06')
ORDER BY GOPL.PG_LOG_INNB ASC ORDER BY GOPL.PG_LOG_INNB ASC
LIMIT 1 LIMIT 1
</select> </select>
@@ -5093,7 +5241,7 @@
<![CDATA[ <![CDATA[
SELECT SELECT
CASE CASE
WHEN O.ORDR_STTUS_CD >= '30' AND O.ORDR_STTUS_CD < '85' AND #{refundTyCd} = '01' THEN 'N' WHEN O.ORDR_STTUS_CD >= '40' AND O.ORDR_STTUS_CD < '85' AND #{refundTyCd} = '01' THEN 'N'
ELSE 'Y' ELSE 'Y'
END AS CANCEL_POSBLE_AT END AS CANCEL_POSBLE_AT
FROM GC_ORDER O FROM GC_ORDER O
@@ -5117,7 +5265,7 @@
WHEN #{pgCmpnyNm} = 'toss' OR #{pgCmpnyNm} = 'tosspay' THEN TOSS_MID -- 토스 WHEN #{pgCmpnyNm} = 'toss' OR #{pgCmpnyNm} = 'tosspay' THEN TOSS_MID -- 토스
WHEN #{pgCmpnyNm} = 'naverpay' OR #{pgCmpnyNm} = 'kakaopay' THEN EASYPAY_MID -- 이지페이 WHEN #{pgCmpnyNm} = 'naverpay' OR #{pgCmpnyNm} = 'kakaopay' THEN EASYPAY_MID -- 이지페이
WHEN #{pgCmpnyNm} = 'gcpay' THEN BPAY_MID -- 브랜드페이 WHEN #{pgCmpnyNm} = 'gcpay' THEN BPAY_MID -- 브랜드페이
WHEN #{pgCmpnyNm} = 'kcp' THEN KCP_MID -- kcp WHEN #{pgCmpnyNm} = 'kcp' OR #{pgCmpnyNm} = 'kiwoom' THEN KCP_MID -- kcp, kiwoom
END END
END, '') AS SETLE_MID END, '') AS SETLE_MID
FROM GC_PAY_LINK FROM GC_PAY_LINK
@@ -5288,7 +5436,14 @@
<!-- 사용자 > 마이페이지 > 구독서비스 주문/배송 목록 조회 --> <!-- 사용자 > 마이페이지 > 구독서비스 주문/배송 목록 조회 -->
<select id="selectMbrSubsvcOrdrList" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrDlvyVO" resultType="dataMap"> <select id="selectMbrSubsvcOrdrList" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrDlvyVO" resultType="dataMap">
<![CDATA[ <![CDATA[
SELECT * SELECT PV.*
, (SELECT MAX('구독취소')
FROM GC_ORDER_REFUND GOR
WHERE GOR.SOPMAL_CD = PV.SOPMAL_CD
AND GOR.ORDR_INNB = PV.ORDR_INNB
AND GOR.USE_AT = 'Y'
AND GOR.REFUND_PROCS_STTUS_CD = '03' /*처리상태:환불완료*/
AND GOR.REFUND_TY_CD != '01' /*환불구분:결제취소가 아님*/) AS REFUND_STTUS_NM
FROM ( FROM (
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
, TB.* , TB.*
@@ -5418,7 +5573,7 @@
AND FOS.ORDR_INNB = FO.ORDR_INNB AND FOS.ORDR_INNB = FO.ORDR_INNB
WHERE FO.USE_AT = 'Y' WHERE FO.USE_AT = 'Y'
AND FO.SUBSVC_AT = 'Y' /*구독서비스*/ AND FO.SUBSVC_AT = 'Y' /*구독서비스*/
AND ( ( FO.ORDR_STTUS_CD BETWEEN '15' AND '75' ) OR FO.ORDR_STTUS_CD = '95' ) AND FO.ORDR_STTUS_CD BETWEEN '15' AND '95'
AND FO.SOPMAL_CD = #{sopmalCd} AND FO.SOPMAL_CD = #{sopmalCd}
AND FO.MBR_DV_CD = #{mbrDvCd} AND FO.MBR_DV_CD = #{mbrDvCd}
AND FO.MBR_INNB = #{mbrInnb} AND FO.MBR_INNB = #{mbrInnb}
@@ -5426,12 +5581,6 @@
) TB ) TB
WHERE (@rownum:=0) = 0 WHERE (@rownum:=0) = 0
]]> ]]>
<include refid="mbrOrdrSubsvcListWhere"/>
) PV
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<sql id="mbrOrdrSubsvcListWhere">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchwrd)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchwrd)">
AND ( AND (
TB.ORDR_INNB LIKE CONCAT('%', #{srchwrd}, '%') OR TB.ORDR_INNB LIKE CONCAT('%', #{srchwrd}, '%') OR
@@ -5441,7 +5590,208 @@
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bgnDt) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(endDt)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bgnDt) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(endDt)">
AND TB.ORDR_RCEPT_DT BETWEEN DATE(#{bgnDt}) AND DATE(#{endDt}) + 1 AND TB.ORDR_RCEPT_DT BETWEEN DATE(#{bgnDt}) AND DATE(#{endDt}) + 1
</if> </if>
</sql> ) PV
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!-- 사용자 > 주문완료 > 구독서비스 주문 목록 조회 -->
<select id="selectOrdrSubsvcDtllList" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrDlvyVO" resultType="dataMap">
<![CDATA[
SELECT GO.SOPMAL_CD
, GS.IMG AS GOODS_IMG_COURS
, GS.SUBSVC_NM AS GOODS_NM
, GS.SUBSVC_GNR_NM AS OPTN_NM
, ITEM.INPUT_OPTN_TEXT
, ITEM.CNT AS ORDR_QY
, GS.SUBSVC_INNB AS GOODS_INNB
, GO.RL_SETLE_AMT AS SLEPRIC
, ITEM.DSCNT_AMT
, ROUND((IFNULL(GO.RL_SETLE_AMT, 0) - IFNULL(ITEM.DSCNT_AMT, 0))) AS APPLY_DSCNT_AMT
, ITEM.MLG_AMT
FROM GC_ORDER GO
INNER JOIN GC_SUBSVC GS ON GO.SUBSVC_INNB = GS.SUBSVC_INNB
INNER JOIN (
SELECT GOI.SOPMAL_CD
, GOI.ORDR_INNB
, MAX(GOI.GOODS_INNB) AS GOODS_INNB
, MAX(GOIO.ORDR_DLVY_INNB) AS ORDR_DLVY_INNB
, COUNT(DISTINCT GOI.ORDR_GOODS_INNB) AS CNT
, SUM(GOIO.ORDR_QY) AS ORDR_QY
, MAX(FN_GET_ORDER_INPUT_OPTN(GOI.SOPMAL_CD, GOI.ORDR_INNB, GOI.ORDR_GOODS_INNB, GOIO.ORDR_GOODS_OPTN_INNB)) AS INPUT_OPTN_TEXT
, MAX(GOI.GOODS_IMG_COURS) AS GOODS_IMG_COURS
, SUM(FN_GET_ORDER_GOODS_DSCNT_AMT_2(GOI.SOPMAL_CD, GOI.ORDR_GOODS_INNB, GOIO.ORDR_GOODS_OPTN_INNB)) AS DSCNT_AMT
, SUM(FN_GET_ORDER_ACCML_MLG_AMT(GOI.SOPMAL_CD, GOI.ORDR_INNB, GOI.ORDR_GOODS_INNB, GOIO.ORDR_GOODS_OPTN_INNB)) AS MLG_AMT
FROM GC_ORDER_ITEM GOI
INNER JOIN GC_ORDER_ITEM_OPTION GOIO ON GOI.SOPMAL_CD = GOIO.SOPMAL_CD
AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB
WHERE GOI.SOPMAL_CD = #{sopmalCd}
AND GOI.ORDR_INNB = #{ordrInnb}
AND GOI.GOODS_KND_CD = '01'
) ITEM ON ITEM.SOPMAL_CD = GO.SOPMAL_CD
AND ITEM.ORDR_INNB = GO.ORDR_INNB
LEFT JOIN GC_ORDER_SETLE GOS ON GOS.SOPMAL_CD = GO.SOPMAL_CD
AND GOS.ORDR_INNB = GO.ORDR_INNB
WHERE GO.USE_AT = 'Y'
AND GO.SUBSVC_AT = 'Y' /*구독서비스*/
AND GO.SOPMAL_CD = #{sopmalCd}
AND GO.ORDR_INNB = #{ordrInnb}
ORDER BY GO.REGIST_DT desc
]]>
</select>
<!-- 사용자 > 구독서비스 결제 > 구독서비스 주문 상품 목록 조회 -->
<select id="selectSubsvcGoodsList" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO" resultType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
WITH RECURSIVE seq AS (
SELECT 1 AS n
UNION ALL
SELECT n + 1 FROM seq WHERE n <![CDATA[<]]> 24
)
SELECT GGO.SOPMAL_CD
, #{mbrInnb} AS MBR_INNB
, (
SELECT GM.MBR_DV_CD
FROM GC_MEMBER GM
INNER JOIN GC_MEMBER_GRAD_MAPPING GMGM
ON GMGM.MBR_INNB = GM.MBR_INNB
AND GMGM.MBR_DV_CD = GM.MBR_DV_CD
WHERE GM.USE_AT = 'Y'
AND GMGM.SOPMAL_CD = #{sopmalCd}
AND GMGM.MBR_INNB = #{mbrInnb}
) AS MBR_DV_CD
, GGO.GOODS_INNB
, GS.DFT_GOODS_OPTN_INNB AS GOODS_OPTN_INNB
, CAST(#{qy} AS UNSIGNED) AS QY
-- , (
-- SELECT CONCAT(
-- GS.SOPMAL_CD, ',',
-- GGO.GOODS_INNB, ',',
-- GS.DFT_GOODS_OPTN_INNB, ',',
-- GGO.OPTN_NM_1, ',',
-- ''#INPUT_OPTN_CN
-- )
-- ) AS INPUT_OPTN
-- , (
-- SELECT CONCAT(
-- GGO.OPTN_NM_1, ':',
-- ''#INPUT_OPTN_CN
-- )
-- ) AS INPUT_OPTN_TEXT
, GG.DLVY_GROUP_INNB
, GG.GOODS_STTUS_CD
, CASE WHEN GG.GOODS_STTUS_CD='03' AND GG.SEL_STPGE_CUSTOM_WORDS_AT ='Y' AND IFNULl(GG.SEL_STPGE_CUSTOM_WORDS, '')!='' THEN GG.SEL_STPGE_CUSTOM_WORDS
ELSE FN_GET_COMMCODE_NAME('GOODS_STTUS', GG.GOODS_STTUS_CD)
END AS GOODS_STTUS_NM
, GG.GOODS_NM
, GGO.OPTN_TY
, GGO.OPTN_RELATE_NB
, GGO.COMPNB_DSCNT_AT
, GGO.SCTN_DSCNT_AT
, NULLIF(GGO.OPTN_ESSNTL_AT, '') AS OPTN_ESSNTL_AT
, FORMAT(IFNULL(GGO.CNSMRPRIC, 0) * #{qy}, 0) AS SUB_CNSMRPRIC_BY_FORMAT
, IFNULL(GGO.CNSMRPRIC, 0) * #{qy} AS SUB_CNSMRPRIC
, FORMAT(IFNULL(GGO.CNSMRPRIC, 0), 0) AS CNSMRPRIC_BY_FORMAT
, IFNULL(GGO.CNSMRPRIC, 0) AS CNSMRPRIC
, FORMAT(IFNULL(GGO.SLEPRIC, 0) * #{qy}, 0) AS SUB_SLEPRIC_BY_FORMAT
, IFNULL(GGO.SLEPRIC, 0) * #{qy} AS SUB_SLEPRIC
, FORMAT(IFNULL(GGO.SLEPRIC, 0), 0) AS SLEPRIC_BY_FORMAT
, IFNULL(GGO.SLEPRIC, 0) AS SLEPRIC
, 0 AS DSCNT_AMT
, IFNULL(GGO.SLEPRIC, 0) * #{qy} AS DSCNT_APPLY_AMT
, CONCAT(GGO.OPTN1, IF(GGO.OPTN2 IS NULL , '', CONCAT('/', GGO.OPTN2))
, IF(GGO.OPTN3 IS NULL , '', CONCAT('/', GGO.OPTN3))
, IF(GGO.OPTN4 IS NULL , '', CONCAT('/', GGO.OPTN4))) AS OPTN
, GGI.IMG AS GOODS_IMG_COURS
FROM GC_SUBSVC GS
INNER JOIN (
SELECT *
, CASE WHEN GGO.OPTN_NM_1 != '' AND GGO.OPTN_VAL_1 != ''
THEN CONCAT(GGO.OPTN_NM_1,':',GGO.OPTN_VAL_1)
END OPTN1
, CASE WHEN GGO.OPTN_NM_2 != '' AND GGO.OPTN_VAL_2 != ''
THEN CONCAT(GGO.OPTN_NM_2,':',GGO.OPTN_VAL_2)
END OPTN2
, CASE WHEN GGO.OPTN_NM_3 != '' AND GGO.OPTN_VAL_3 != ''
THEN CONCAT(GGO.OPTN_NM_3,':',GGO.OPTN_VAL_3)
END OPTN3
, CASE WHEN GGO.OPTN_NM_4 != '' AND GGO.OPTN_VAL_4 != ''
THEN CONCAT(GGO.OPTN_NM_4,':',GGO.OPTN_VAL_4)
END OPTN4 from GC_GOODS_OPTION GGO
)GGO
ON GGO.SOPMAL_CD = GS.SOPMAL_CD
AND GGO.GOODS_OPTN_INNB = GS.DFT_GOODS_OPTN_INNB
INNER JOIN GC_GOODS GG
ON GGO.SOPMAL_CD = GG.SOPMAL_CD
AND GGO.GOODS_INNB = GG.GOODS_INNB
JOIN seq
ON seq.n <![CDATA[<=]]> GS.SUB_PD
LEFT JOIN GC_GOODS_IMAGE GGI ON GG.SOPMAL_CD = GGI.SOPMAL_CD
AND GG.GOODS_INNB = GGI.GOODS_INNB
AND GGI.IMG_KND = '03'
AND GGI.CUT_NB = 1
WHERE GS.SOPMAL_CD = #{sopmalCd}
AND GS.SUBSVC_INNB = #{subsvcInnb}
</select>
<!-- 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update -->
<update id="updateBOWonRefundAmt" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrRefundVO">
<![CDATA[
WITH BF AS (SELECT MAX(O.WON_RL_SETLE_AMT) - IFNULL(SUM(IFNULL(GOR2.WON_REFUND_AMT,0))+SUM(IFNULL(GOR2.WON_REFUND_DLVY_AMT,0)),0) AS WON_REST_AMT
FROM GC_ORDER O
LEFT OUTER JOIN GC_ORDER_REFUND GOR2
ON GOR2.SOPMAL_CD = O.SOPMAL_CD
AND GOR2.ORDR_INNB = O.ORDR_INNB
AND GOR2.USE_AT = 'Y'
AND GOR2.REFUND_PROCS_STTUS_CD = '03'
AND GOR2.ORDER_REFUND_INNB != #{orderRefundInnb}
WHERE O.SOPMAL_CD = #{sopmalCd}
AND O.ORDR_INNB = #{ordrInnb}
)
UPDATE GC_ORDER_REFUND
SET WON_REFUND_AMT = (CASE
WHEN WON_REFUND_AMT + WON_REFUND_DLVY_AMT > (SELECT WON_REST_AMT FROM BF) THEN (SELECT WON_REST_AMT FROM BF) - WON_REFUND_DLVY_AMT
ELSE WON_REFUND_AMT
END)
, UPDT_DT = NOW()
WHERE SOPMAL_CD = #{sopmalCd}
AND ORDER_REFUND_INNB = #{orderRefundInnb}
]]>
</update>
<!--
결제취소 시 구독서비스 환불금액 조회
계산식 : 전체결제금액 - 전체배송비 - 발송및취소된(35~85)상품금액
-->
<select id="selectSubsvcRefundAmt" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrRefundVO" resultType="java.lang.Integer">
SELECT (MAX(O.RL_SETLE_AMT) - SUM(GOS.RL_DLVY_AMT) - SUM(CASE
WHEN GOIO.ORDR_STTUS_CD BETWEEN 35 AND 85 THEN (GOIO.SLEPRIC * GOIO.ORDR_QY)
ELSE 0
END)
) AS REFUND_AMT
FROM GC_ORDER O
INNER JOIN GC_ORDER_SHIPPING GOS
ON GOS.SOPMAL_CD = O.SOPMAL_CD
AND GOS.ORDR_INNB = O.ORDR_INNB
AND GOS.USE_AT = 'Y'
INNER JOIN GC_ORDER_ITEM GOI
ON GOI.SOPMAL_CD = O.SOPMAL_CD
AND GOI.ORDR_INNB = O.ORDR_INNB
INNER JOIN GC_ORDER_ITEM_OPTION GOIO
ON GOIO.SOPMAL_CD = GOI.SOPMAL_CD
AND GOIO.ORDR_GOODS_INNB = GOI.ORDR_GOODS_INNB
AND GOIO.ORDR_DLVY_INNB = GOS.ORDR_DLVY_INNB
WHERE O.SOPMAL_CD = #{sopmalCd}
AND O.ORDR_INNB = #{ordrInnb}
AND O.SUBSVC_AT = 'Y'
</select>
<select id="selectKiwoomPgApiLog"
parameterType="com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO"
resultType="dataMap">
SELECT GOPAL.RSLT_PARAM FROM GC_ORDER_PG_API_LOG GOPAL
WHERE GOPAL.SOPMAL_CD = #{sopmalCd}
AND GOPAL.ORDR_INNB = #{orderId}
</select>
</mapper> </mapper>

View File

@@ -326,12 +326,11 @@
<sql id="mbrRefundListWhere"> <sql id="mbrRefundListWhere">
<![CDATA[ <![CDATA[
WHERE 1=1 WHERE 1=1
]]>
<![CDATA[
AND RE.SOPMAL_CD = #{sopmalCd} AND RE.SOPMAL_CD = #{sopmalCd}
AND O.MBR_DV_CD = #{mbrDvCd} AND O.MBR_DV_CD = #{mbrDvCd}
AND O.MBR_INNB = #{mbrInnb} AND O.MBR_INNB = #{mbrInnb}
AND RE.USE_AT = 'Y' AND RE.USE_AT = 'Y'
AND RE.REFUND_PROCS_STTUS_CD = '03' /*환불완료*/
]]> ]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchwrd)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchwrd)">
AND ( AND (
@@ -364,6 +363,7 @@
INNER JOIN GC_ORDER O INNER JOIN GC_ORDER O
ON RE.SOPMAL_CD = O.SOPMAL_CD -- 쇼핑몰 코드 ON RE.SOPMAL_CD = O.SOPMAL_CD -- 쇼핑몰 코드
AND RE.ORDR_INNB = O.ORDR_INNB -- 주문 고유번호 AND RE.ORDR_INNB = O.ORDR_INNB -- 주문 고유번호
AND O.SUBSVC_AT = 'N' /*구독상품 제외*/
]]> ]]>
</sql> </sql>
@@ -570,8 +570,10 @@
RE.REFUND_ACNT_DPSTR_NM, RE.REFUND_ACNT_DPSTR_NM,
RE.REFUND_ACNTNB, RE.REFUND_ACNTNB,
RE.REFUND_AMT, RE.REFUND_AMT,
RE.WON_REFUND_AMT,
RE.REFUND_ACCMLMNY_AMT, RE.REFUND_ACCMLMNY_AMT,
RE.REFUND_DLVY_AMT, RE.REFUND_DLVY_AMT,
RE.WON_REFUND_DLVY_AMT,
RE.MLG_ACCMLMNY_AMT, RE.MLG_ACCMLMNY_AMT,
RE.MLG_ACCMLMNY_VALID_DT, RE.MLG_ACCMLMNY_VALID_DT,
RE.ENURI_REVISN_AMT, RE.ENURI_REVISN_AMT,
@@ -597,6 +599,7 @@
IFNULL(REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(RE.RETURN_CSTMR_MBTLNB) , '1df5be2f7e90ae36') AS CHAR(50)), '(.{3})(.{4})(.{4})', '$1-$2-$3'), '') AS RETURN_CSTMR_MBTLNB, IFNULL(REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(RE.RETURN_CSTMR_MBTLNB) , '1df5be2f7e90ae36') AS CHAR(50)), '(.{3})(.{4})(.{4})', '$1-$2-$3'), '') AS RETURN_CSTMR_MBTLNB,
IFNULL(CAST(AES_DECRYPT(UNHEX(RE.RETURN_CSTMR_MBTLNB) , '1df5be2f7e90ae36') AS CHAR(50)), '') AS RETURN_CSTMR_MBTLNB_N_UNDER, IFNULL(CAST(AES_DECRYPT(UNHEX(RE.RETURN_CSTMR_MBTLNB) , '1df5be2f7e90ae36') AS CHAR(50)), '') AS RETURN_CSTMR_MBTLNB_N_UNDER,
FORMAT(ROUND(RE.RETURN_DLVY_AMT), 0) AS RETURN_DLVY_AMT, FORMAT(ROUND(RE.RETURN_DLVY_AMT), 0) AS RETURN_DLVY_AMT,
FORMAT(ROUND(RE.WON_RETURN_DLVY_AMT), 0) AS WON_RETURN_DLVY_AMT,
RE.RETURN_DLVY_TRGET_CD, RE.RETURN_DLVY_TRGET_CD,
RE.RETURN_DLVY_RSPNSBL_CD, RE.RETURN_DLVY_RSPNSBL_CD,
RE.RETURN_DLVY_PYMNT_TY_CD, RE.RETURN_DLVY_PYMNT_TY_CD,
@@ -842,7 +845,7 @@
CASE CASE
WHEN RE.RETURN_DLVY_PYMNT_TY_CD = '02' THEN WHEN RE.RETURN_DLVY_PYMNT_TY_CD = '02' THEN
CASE CASE
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN GREATEST(RE.REFUND_AMT - IFNULL(RE.DLVY_AMT_REFUND_AMT, 0), 0) WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN GREATEST(RE.REFUND_AMT - IFNULL(RE.RETURN_DLVY_AMT, 0), 0)
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.REFUND_AMT + IFNULL(RE.REFUND_DLVY_AMT, 0), 0) WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.REFUND_AMT + IFNULL(RE.REFUND_DLVY_AMT, 0), 0)
END END
ELSE ELSE
@@ -851,9 +854,45 @@
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.REFUND_AMT + IFNULL(RE.REFUND_DLVY_AMT, 0), 0) WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.REFUND_AMT + IFNULL(RE.REFUND_DLVY_AMT, 0), 0)
END END
END END
END + (REI.REFUND_MLG_AMT + REI.REFUND_MLG_RMNDR_AMT) + (REI.REFUND_CASH_AMT + REI.REFUND_CASH_RMNDR_AMT))) END + (REI.REFUND_MLG_AMT + REI.REFUND_MLG_RMNDR_AMT) + (REI.REFUND_CASH_AMT + REI.REFUND_CASH_RMNDR_AMT)+ IFNULL((REI.REFUND_GOODS_COUPON_UNIT_AMT + REI.REFUND_GOODS_COUPON_REST_AMT), 0) + IFNULL((REI.REFUND_CART_COUPON_UNIT_AMT + REI.REFUND_CART_COUPON_REST_AMT), 0) ))
, 0) AS RL_REFUND_AMT -- 마일리지, 배송비 제외한 실 환불 금액 , 0) AS RL_REFUND_AMT -- 마일리지, 배송비 제외한 실 환불 금액
, IFNULL( , IFNULL(
ROUND(CASE
WHEN RE.REFUND_TY_CD = '01' THEN RE.REFUND_AMT + RE.REFUND_DLVY_AMT
WHEN RE.REFUND_TY_CD = '02' THEN
CASE
WHEN RE.RETURN_DLVY_PYMNT_TY_CD = '02' THEN
CASE
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN GREATEST(RE.REFUND_AMT - IFNULL(RE.RETURN_DLVY_AMT, 0), 0)
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.REFUND_AMT + IFNULL(RE.REFUND_DLVY_AMT, 0), 0)
END
ELSE
CASE
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN RE.REFUND_AMT
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.REFUND_AMT + IFNULL(RE.REFUND_DLVY_AMT, 0), 0)
END
END
END)
, 0) AS REAL_REFUND_AMT -- 마일리지, 쿠폰, 캐시를 제외한 실 환불 금액
, IFNULL(
ROUND(CASE
WHEN RE.REFUND_TY_CD = '01' THEN RE.WON_REFUND_AMT + RE.WON_REFUND_DLVY_AMT
WHEN RE.REFUND_TY_CD = '02' THEN
CASE
WHEN RE.RETURN_DLVY_PYMNT_TY_CD = '02' THEN
CASE
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN GREATEST(RE.WON_REFUND_AMT - IFNULL(RE.WON_RETURN_DLVY_AMT, 0), 0)
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.WON_REFUND_AMT + IFNULL(RE.WON_REFUND_DLVY_AMT, 0), 0)
END
ELSE
CASE
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN RE.WON_REFUND_AMT
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.WON_REFUND_AMT + IFNULL(RE.WON_REFUND_DLVY_AMT, 0), 0)
END
END
END)
, 0) AS REAL_WON_REFUND_AMT -- 마일리지, 쿠폰, 캐시를 제외한 실 환불 금액
, IFNULL(
ROUND((CASE ROUND((CASE
WHEN RE.REFUND_TY_CD = '01' THEN 0 WHEN RE.REFUND_TY_CD = '01' THEN 0
WHEN RE.REFUND_TY_CD = '02' THEN WHEN RE.REFUND_TY_CD = '02' THEN
@@ -873,6 +912,8 @@
)) ))
, 0) AS RL_DLVY_AMT_REFUND_AMT -- 반품 배송비 , 0) AS RL_DLVY_AMT_REFUND_AMT -- 반품 배송비
, FN_GET_COMMCODE_NAME('SETLE_MTH', ST.SETLE_TY_CD) AS SETLE_TY_CD_NM , FN_GET_COMMCODE_NAME('SETLE_MTH', ST.SETLE_TY_CD) AS SETLE_TY_CD_NM
, ROUND(ST.WON_SETLE_AMT) AS WON_SETLE_AMT
, O.BUY_RATE
FROM (SELECT REI.SOPMAL_CD FROM (SELECT REI.SOPMAL_CD
, REI.ORDER_REFUND_INNB , REI.ORDER_REFUND_INNB
, ROUND(SUM(REI.GOODS_REFUND_AMT)) AS REFUND_AMT -- * REI.REFUND_QY , ROUND(SUM(REI.GOODS_REFUND_AMT)) AS REFUND_AMT -- * REI.REFUND_QY
@@ -1026,7 +1067,8 @@
<![CDATA[RETURN_CSTMR_MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{returnCstmrMbtlnb}, '-', ''), '1df5be2f7e90ae36')),]]> <![CDATA[RETURN_CSTMR_MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{returnCstmrMbtlnb}, '-', ''), '1df5be2f7e90ae36')),]]>
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(returnDlvyAmt)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(returnDlvyAmt)">
<![CDATA[RETURN_DLVY_AMT = REPLACE(#{returnDlvyAmt}, ',', ''),]]> RETURN_DLVY_AMT = REPLACE(#{returnDlvyAmt}, ',', ''),
WON_RETURN_DLVY_AMT = ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * REPLACE(#{returnDlvyAmt}, ',', ''), 0) ,
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(returnDlvyRspnsblCd)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(returnDlvyRspnsblCd)">
<![CDATA[RETURN_DLVY_RSPNSBL_CD = #{returnDlvyRspnsblCd},]]> <![CDATA[RETURN_DLVY_RSPNSBL_CD = #{returnDlvyRspnsblCd},]]>
@@ -1102,11 +1144,20 @@
</when> </when>
</choose> </choose>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dlvyAmtRefundAmt)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dlvyAmtRefundAmt)">
<![CDATA[DLVY_AMT_REFUND_AMT = #{dlvyAmtRefundAmt},]]> DLVY_AMT_REFUND_AMT = #{dlvyAmtRefundAmt},
WON_DLVY_AMT_REFUND_AMT = ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{dlvyAmtRefundAmt}, 0),
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(refundAmt)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(refundAmt)">
<![CDATA[REFUND_AMT = #{refundAmt},]]> REFUND_AMT = #{refundAmt},
</if> </if>
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(refundAmt) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(wonRefundAmt)">
WON_REFUND_AMT = ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{refundAmt}, 0) ,
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(refundAmt) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(wonRefundAmt)">
WON_REFUND_AMT = #{wonRefundAmt},
</when>
</choose>
MNGR_INNB = #{updusr}, MNGR_INNB = #{updusr},
UPDT_DT = SYSDATE() UPDT_DT = SYSDATE()
<![CDATA[ <![CDATA[
@@ -1304,8 +1355,10 @@
RE.REFUND_ACNT_DPSTR_NM, RE.REFUND_ACNT_DPSTR_NM,
RE.REFUND_ACNTNB, RE.REFUND_ACNTNB,
ROUND(RE.REFUND_AMT) AS REFUND_AMT, ROUND(RE.REFUND_AMT) AS REFUND_AMT,
ROUND(RE.WON_REFUND_AMT) AS WON_REFUND_AMT,
RE.REFUND_ACCMLMNY_AMT, RE.REFUND_ACCMLMNY_AMT,
ROUND(RE.REFUND_DLVY_AMT) AS REFUND_DLVY_AMT, ROUND(RE.REFUND_DLVY_AMT) AS REFUND_DLVY_AMT,
ROUND(RE.WON_REFUND_DLVY_AMT) AS WON_REFUND_DLVY_AMT,
RE.MLG_ACCMLMNY_AMT, RE.MLG_ACCMLMNY_AMT,
RE.MLG_ACCMLMNY_VALID_DT, RE.MLG_ACCMLMNY_VALID_DT,
RE.ENURI_REVISN_AMT, RE.ENURI_REVISN_AMT,
@@ -1326,6 +1379,7 @@
REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(RE.RETURN_CSTMR_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), '(.{3})(.{4})(.{4})', '$1-$2-$3') AS RETURN_CSTMR_TELNB, REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(RE.RETURN_CSTMR_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), '(.{3})(.{4})(.{4})', '$1-$2-$3') AS RETURN_CSTMR_TELNB,
REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(RE.RETURN_CSTMR_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), '(.{3})(.{4})(.{4})', '$1-$2-$3') AS RETURN_CSTMR_MBTLNB, REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(RE.RETURN_CSTMR_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), '(.{3})(.{4})(.{4})', '$1-$2-$3') AS RETURN_CSTMR_MBTLNB,
ROUND(RE.RETURN_DLVY_AMT) AS RETURN_DLVY_AMT, ROUND(RE.RETURN_DLVY_AMT) AS RETURN_DLVY_AMT,
ROUND(RE.RETURN_DLVY_AMT * O.BUY_RATE) AS WON_RETURN_DLVY_AMT,
RE.RETURN_DLVY_TRGET_CD, RE.RETURN_DLVY_TRGET_CD,
RE.RETURN_DLVY_RSPNSBL_CD, RE.RETURN_DLVY_RSPNSBL_CD,
RE.RETURN_DLVY_PYMNT_TY_CD, RE.RETURN_DLVY_PYMNT_TY_CD,
@@ -1345,7 +1399,10 @@
RE.REGIST_DT, RE.REGIST_DT,
RE.UPDT_DT, RE.UPDT_DT,
O.MBR_DV_CD, O.MBR_DV_CD,
O.MBR_INNB O.MBR_INNB,
O.BUY_RATE,
ROUND(RE.DLVY_AMT_REFUND_AMT) AS DLVY_AMT_REFUND_AMT,
ROUND(RE.DLVY_AMT_REFUND_AMT * O.BUY_RATE) AS WON_DLVY_AMT_REFUND_AMT
FROM FROM
GC_ORDER_REFUND RE GC_ORDER_REFUND RE
INNER JOIN GC_ORDER O ON RE.SOPMAL_CD = O.SOPMAL_CD INNER JOIN GC_ORDER O ON RE.SOPMAL_CD = O.SOPMAL_CD
@@ -1496,6 +1553,7 @@
,ST.SOPMAL_CD ,ST.SOPMAL_CD
,ST.ORDR_INNB ,ST.ORDR_INNB
,IFNULL(ST.SETLE_AMT, 0) AS SETLE_AMT -- 결제금액 ,IFNULL(ST.SETLE_AMT, 0) AS SETLE_AMT -- 결제금액
,IFNULL(ST.WON_SETLE_AMT, 0) AS WON_SETLE_AMT -- 결제금액
,ST.PG_CMPNY_NM -- pg 회사명 ,ST.PG_CMPNY_NM -- pg 회사명
,ST.PG_INNB -- pg고유번호 ,ST.PG_INNB -- pg고유번호
,ST.SETLE_TY_CD ,ST.SETLE_TY_CD
@@ -1529,28 +1587,52 @@
<!-- 주문 환불 총 금액 --> <!-- 주문 환불 총 금액 -->
<select id="selectBOORderRefundAmtSumInqire" <select id="selectBOORderRefundAmtSumInqire"
parameterType="com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndVO" parameterType="com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndVO"
resultType="Integer"> resultType="dataMap">
<![CDATA[ <![CDATA[
SELECT
IFNULL((
SELECT ROUND( SELECT ROUND(
SUM( SUM(
CASE CASE
WHEN RE.REFUND_TY_CD = '01' THEN RE.REFUND_AMT + RE.REFUND_DLVY_AMT WHEN RE.REFUND_TY_CD = '01' THEN RE.REFUND_AMT + RE.REFUND_DLVY_AMT
WHEN RE.REFUND_TY_CD = '02' THEN WHEN RE.REFUND_TY_CD = '02' THEN
CASE CASE
WHEN RE.RETURN_DLVY_PYMNT_TY_CD = '02' THEN GREATEST(RE.REFUND_AMT - IFNULL(RE.DLVY_AMT_REFUND_AMT, 0), 0) WHEN RE.RETURN_DLVY_PYMNT_TY_CD = '02' THEN
ELSE RE.REFUND_AMT CASE
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN GREATEST(RE.REFUND_AMT - IFNULL(RE.DLVY_AMT_REFUND_AMT, 0), 0)
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.REFUND_AMT + IFNULL(RE.REFUND_DLVY_AMT, 0), 0)
END
ELSE
CASE
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN RE.REFUND_AMT
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.REFUND_AMT + IFNULL(RE.REFUND_DLVY_AMT, 0), 0)
END END
END END
), 0) END
), 0) AS ORDER_REFUND_AMT_SUM
, ROUND(
SUM(
CASE
WHEN RE.REFUND_TY_CD = '01' THEN RE.WON_REFUND_AMT + RE.WON_REFUND_DLVY_AMT
WHEN RE.REFUND_TY_CD = '02' THEN
CASE
WHEN RE.RETURN_DLVY_PYMNT_TY_CD = '02' THEN
CASE
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN GREATEST(RE.WON_REFUND_AMT - IFNULL(RE.WON_DLVY_AMT_REFUND_AMT, 0), 0)
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.WON_REFUND_AMT + IFNULL(RE.WON_REFUND_DLVY_AMT, 0), 0)
END
ELSE
CASE
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN RE.WON_REFUND_AMT
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.WON_REFUND_AMT + IFNULL(RE.WON_REFUND_DLVY_AMT, 0), 0)
END
END
END
), 0) AS WON_ORDER_REFUND_AMT_SUM
FROM GC_ORDER_REFUND RE FROM GC_ORDER_REFUND RE
WHERE RE.SOPMAL_CD = #{sopmalCd} WHERE RE.SOPMAL_CD = #{sopmalCd}
AND RE.ORDR_INNB = #{ordrInnb} AND RE.ORDR_INNB = #{ordrInnb}
AND RE.ORDER_REFUND_INNB != #{orderRefundInnb} AND RE.ORDER_REFUND_INNB != #{orderRefundInnb}
AND RE.USE_AT = 'Y' AND RE.USE_AT = 'Y'
GROUP BY RE.ORDR_INNB, RE.SOPMAL_CD GROUP BY RE.ORDR_INNB, RE.SOPMAL_CD
), 0) AS ORDER_REFUND_AMT_SUM
]]> ]]>
</select> </select>
@@ -1707,6 +1789,9 @@
,SUM(PRI.CASH_DSCNT_UNIT * PRI.REFUND_QY + PRI.CASH_DSCNT_REST) AS P_USE_CANCEL_CASH ,SUM(PRI.CASH_DSCNT_UNIT * PRI.REFUND_QY + PRI.CASH_DSCNT_REST) AS P_USE_CANCEL_CASH
,ROUND(RL_USE_CASH) AS RL_USE_CASH ,ROUND(RL_USE_CASH) AS RL_USE_CASH
,RL_ORDR_ITEM.RL_ORDR_QY ,RL_ORDR_ITEM.RL_ORDR_QY
,SUM(PRE.REFUND_DLVY_AMT) AS P_REFUND_DLVY_AMT
,SUM(PRE.WON_REFUND_DLVY_AMT) AS P_WON_REFUND_DLVY_AMT
,SUM(PRE.WON_REFUND_AMT) AS P_WON_REFUND_AMT
FROM GC_ORDER_REFUND_ITEM PRI FROM GC_ORDER_REFUND_ITEM PRI
INNER JOIN GC_ORDER_REFUND PRE ON PRI.SOPMAL_CD = PRE.SOPMAL_CD INNER JOIN GC_ORDER_REFUND PRE ON PRI.SOPMAL_CD = PRE.SOPMAL_CD
AND PRI.ORDER_REFUND_INNB = PRE.ORDER_REFUND_INNB AND PRI.ORDER_REFUND_INNB = PRE.ORDER_REFUND_INNB

View File

@@ -10,6 +10,9 @@ secured:
- /sopmal/mpage/bnef/** - /sopmal/mpage/bnef/**
- /sopmal/mpage/mbr/** - /sopmal/mpage/mbr/**
- /sopmal/bnft/** - /sopmal/bnft/**
- /sopmal/ordr/selectSpbk
- /sopmal/ordr/selectMbrPurchsForm
- /sopmal/ordr/selectSubsvcPurchsForm
admin: admin:
anonmymous: anonmymous:
# 로그인 없이 접근가능한 uri없음 # 로그인 없이 접근가능한 uri없음

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -39,6 +39,20 @@ const fn_save_dftDlvylcAt = function (msg, adbkInnb) {
}); });
} }
} }
/**********************************************
리턴 formId 세팅
***********************************************/
let formIdSave;
const fn_set_formId = function (formId) {
if (formId !== ''){
formIdSave = formId;
} else {
formId = formIdSave;
}
return formId;
}
/********************************************** /**********************************************
배송지 관리 팝업 () 배송지 관리 팝업 ()
***********************************************/ ***********************************************/
@@ -46,7 +60,9 @@ const fn_move_dlvylc_manage_pop = function (pageIndex,callback, formId = '') {
if (callback == undefined) { if (callback == undefined) {
callback = 'fn_set_dlvylc'; callback = 'fn_set_dlvylc';
} }
formId = fn_set_formId(formId);
console.log("배송지 관리 팝업 : ", formId); console.log("배송지 관리 팝업 : ", formId);
$.ajax({ $.ajax({
type: 'post', type: 'post',
url: '/sopmal/mpage/mbr/selectDlvylcManagePopup', url: '/sopmal/mpage/mbr/selectDlvylcManagePopup',
@@ -77,7 +93,9 @@ const fn_move_dlvylc_manage_full = function (pageIndex, callback, formId = '') {
if (callback == undefined) { if (callback == undefined) {
callback = 'fn_set_dlvylc'; callback = 'fn_set_dlvylc';
} }
formId = fn_set_formId(formId);
console.log("모바일 배송지 팝업 formId : ", formId); console.log("모바일 배송지 팝업 formId : ", formId);
$.ajax({ $.ajax({
type: 'post', type: 'post',
url: '/sopmal/mpage/mbr/selectDlvylcManagePopup', url: '/sopmal/mpage/mbr/selectDlvylcManagePopup',

View File

@@ -72,6 +72,20 @@ const fn_select_recentDlvylcList = function (pageIndex, ordering) {
} }
}); });
} }
/**********************************************
리턴 formId 세팅
***********************************************/
let formIdSave;
const fn_set_formId = function (formId) {
if (formId !== ''){
formIdSave = formId;
} else {
formId = formIdSave;
}
return formId;
}
/********************************************** /**********************************************
배송지 관리 팝업 (처음 호출 할 때) 배송지 관리 팝업 (처음 호출 할 때)
***********************************************/ ***********************************************/
@@ -82,6 +96,8 @@ const fn_move_dlvylc_manage_pop = function (pageIndex, mbrInnb, mbrDvCd, callbac
if (callback == undefined) { if (callback == undefined) {
callback = fn_set_dlvylc; callback = fn_set_dlvylc;
} }
formId = fn_set_formId(formId);
$.ajax({ $.ajax({
type: 'post', type: 'post',
url: '/crm/dlvylc/selectRpuseDlvylcListInqire', url: '/crm/dlvylc/selectRpuseDlvylcListInqire',

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -10239,6 +10239,12 @@ body {
font-weight: 400; font-weight: 400;
color: #495057; color: #495057;
} }
.deliveryInfo__cstmclerCd {
margin-bottom: 10px;
font-size: 14px;
font-weight: 400;
color: #495057;
}
.deliveryInfo__message { .deliveryInfo__message {
display: flex; display: flex;
width: 100%; width: 100%;

View File

@@ -72,6 +72,20 @@ const fn_select_recentDlvylcList = function (pageIndex, ordering) {
} }
}); });
} }
/**********************************************
리턴 formId 세팅
***********************************************/
let formIdSave;
const fn_set_formId = function (formId) {
if (formId !== ''){
formIdSave = formId;
} else {
formId = formIdSave;
}
return formId;
}
/********************************************** /**********************************************
배송지 관리 팝업 (처음 호출 할 때) 배송지 관리 팝업 (처음 호출 할 때)
***********************************************/ ***********************************************/
@@ -82,6 +96,8 @@ const fn_move_dlvylc_manage_pop = function (pageIndex, mbrInnb, mbrDvCd, callbac
if (callback == undefined) { if (callback == undefined) {
callback = fn_set_dlvylc; callback = fn_set_dlvylc;
} }
formId = fn_set_formId(formId);
$.ajax({ $.ajax({
type: 'post', type: 'post',
url: '/crm/dlvylc/selectRpuseDlvylcListInqire', url: '/crm/dlvylc/selectRpuseDlvylcListInqire',

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -1626,6 +1626,19 @@ caption {
fill: #228be6; fill: #228be6;
opacity: 0.9; opacity: 0.9;
} }
.shipping-apply-btn {
background-color: #e0e4e5;
color: #252521;
border: 1px solid #e0e4e5;
padding: 6px 14px;
border-radius: 4px;
margin-left: 4px;
font-weight: 500;
}
.shipping-apply-btn:hover {
background-color: #d8ddde;
}
.shipping-modify-btn { .shipping-modify-btn {
background-color: #ffffff; background-color: #ffffff;
color: #252521; color: #252521;
@@ -7545,7 +7558,7 @@ main {
} }
.priceSum__inner { .priceSum__inner {
display: flex; display: flex;
gap: 24px; gap: 18px;
align-items: center; align-items: center;
} }
.priceSum__item { .priceSum__item {

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -10239,6 +10239,12 @@ body {
font-weight: 400; font-weight: 400;
color: #495057; color: #495057;
} }
.deliveryInfo__cstmclerCd {
margin-bottom: 10px;
font-size: 14px;
font-weight: 400;
color: #495057;
}
.deliveryInfo__message { .deliveryInfo__message {
display: flex; display: flex;
width: 100%; width: 100%;

View File

@@ -1627,6 +1627,19 @@ caption {
fill: #228be6; fill: #228be6;
opacity: 0.9; opacity: 0.9;
} }
.shipping-apply-btn {
background-color: #e0e4e5;
color: #252521;
border: 1px solid #e0e4e5;
padding: 6px 14px;
border-radius: 4px;
margin-left: 4px;
font-weight: 500;
}
.shipping-apply-btn:hover {
background-color: #d8ddde;
}
.shipping-modify-btn { .shipping-modify-btn {
background-color: #ffffff; background-color: #ffffff;
color: #252521; color: #252521;

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>통합관리자</title> <!--<title>통합관리자</title>-->
<!-- CSS --> <!-- CSS -->
<link rel="stylesheet" href="/admin/css/style.css"> <link rel="stylesheet" href="/admin/css/style.css">

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<!-- CSS --> <!-- CSS -->
<link rel="stylesheet" href="/mngr/css/style.css"> <link rel="stylesheet" href="/mngr/css/style.css">

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>통합 관리자</title> <%--<title>통합 관리자</title>--%>
<%-- 공통 include --%> <%-- 공통 include --%>
<%@include file ="/WEB-INF/views/comm/admin/Include.jsp" %> <%@include file ="/WEB-INF/views/comm/admin/Include.jsp" %>

View File

@@ -1675,7 +1675,7 @@
</tr> </tr>
<tr> <tr>
<th>환율(살때) 일본 1円(엔)기준</th> <th>환율(살때) 일본 1円(엔)기준</th>
<td> <td colspan="3">
<div class="td-inner"> <div class="td-inner">
<div class="input-container"> <div class="input-container">
<input type="text" class="input-text sm right" name="buyRate" id="buyRate" title="1엔 환율(살때)" value="${resultMap.sopmalDetailList[0].buyRate }"> <input type="text" class="input-text sm right" name="buyRate" id="buyRate" title="1엔 환율(살때)" value="${resultMap.sopmalDetailList[0].buyRate }">
@@ -1683,7 +1683,7 @@
</div> </div>
</div> </div>
</td> </td>
<th>환율(팔때) 일본 1円(엔)기준</th> <%-- <th>환율(팔때) 일본 1円(엔)기준</th>
<td> <td>
<div class="td-inner"> <div class="td-inner">
<div class="input-container"> <div class="input-container">
@@ -1691,7 +1691,7 @@
<span class="input-unit-text">원</span> <span class="input-unit-text">원</span>
</div> </div>
</div> </div>
</td> </td>--%>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@@ -6,6 +6,7 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %> <%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %> <%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
<%-- <%--
Class Name : include.jsp Class Name : include.jsp
@@ -156,14 +157,28 @@
<c:set var="metaGoodsKwrd" value="${fn:replace(metaGoodsKwrd, '{kwrd}', '')}"/> <c:set var="metaGoodsKwrd" value="${fn:replace(metaGoodsKwrd, '{kwrd}', '')}"/>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<title>${metaGoodsSj}</title> <title>
<c:choose>
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
<c:otherwise></c:otherwise>
</c:choose>
${metaGoodsSj}
</title>
<meta name="description" content="<c:out value="${metaGoodsDc}"/>"> <meta name="description" content="<c:out value="${metaGoodsDc}"/>">
<meta name="keywords" content="<c:out value="${metaGoodsKwrd}"/>"> <meta name="keywords" content="<c:out value="${metaGoodsKwrd}"/>">
<meta property="og:title" content="<c:out value="${metaGoodsSj}"/>"> <meta property="og:title" content="<c:out value="${metaGoodsSj}"/>">
<meta property="og:description" content="<c:out value="${metaGoodsDc}"/>"> <meta property="og:description" content="<c:out value="${metaGoodsDc}"/>">
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<title><c:out value="${meta.metaSj}"/></title> <title>
<c:choose>
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
<c:otherwise></c:otherwise>
</c:choose>
<c:out value="${meta.metaSj}"/>
</title>
<meta name="description" content="<c:out value="${meta.metaDc}"/>"> <meta name="description" content="<c:out value="${meta.metaDc}"/>">
<meta name="keywords" content="<c:out value="${meta.metaKwrd}"/>"> <meta name="keywords" content="<c:out value="${meta.metaKwrd}"/>">
<meta property="og:title" content="<c:out value="${meta.metaSj}"/>"> <meta property="og:title" content="<c:out value="${meta.metaSj}"/>">

View File

@@ -2,7 +2,7 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
<%-- <%--
Class Name : include.jsp Class Name : include.jsp
Description : 통합관리자 CSS 및 JS 공통 include Description : 통합관리자 CSS 및 JS 공통 include
@@ -25,10 +25,16 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="\assets\favicon\gcone.ico"> <link rel="icon" type="image/png" href="\assets\favicon\gcone.ico">
<title>통합관리자</title> <title>
<c:choose>
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
<c:otherwise></c:otherwise>
</c:choose>
통합관리자
</title>
<%--mixed Contents 대응--%> <%--mixed Contents 대응--%>
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
<c:if test="${profiles eq 'stage'}"> <c:if test="${profiles eq 'stage'}">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
</c:if> </c:if>

View File

@@ -48,8 +48,8 @@
<script src="<c:url value='/mngr/vendor/time-picker/timepicker.min.js'/>"></script> <script src="<c:url value='/mngr/vendor/time-picker/timepicker.min.js'/>"></script>
<script src="<c:url value='/mngr/vendor/dropzone/dropzone.min.js'/>"></script> <script src="<c:url value='/mngr/vendor/dropzone/dropzone.min.js'/>"></script>
<script src="<c:url value='/crm/js/script.js'/>" defer></script> <script src="<c:url value='/crm/js/script.js'/>" defer></script>
<script src="<c:url value='/js/gcone.js'/>"></script> <script src="<c:url value='/js/mngr/gcone.js'/>"></script>
<script src="<c:url value='/js/fileupload_comm.js'/>"></script> <script src="<c:url value='/js/mngr/fileupload_comm.js'/>"></script>
<script src="<c:url value='/ckeditor/ckeditor.js'/>"></script> <script src="<c:url value='/ckeditor/ckeditor.js'/>"></script>
<script src="<c:url value='/mngr/vendor/chart.js/chart.umd.min.js'/>"></script> <script src="<c:url value='/mngr/vendor/chart.js/chart.umd.min.js'/>"></script>
<script src="<c:url value='/admin/vendor/jstree/jstree.min.js'/>"></script> <script src="<c:url value='/admin/vendor/jstree/jstree.min.js'/>"></script>

View File

@@ -2,7 +2,7 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
<% response.setHeader("Cache-Control","no-cache"); <% response.setHeader("Cache-Control","no-cache");
response.setHeader("Pragma","no-cache"); response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires",0); response.setDateHeader("Expires",0);
@@ -16,14 +16,20 @@
<%-- CK editor 적용 시 width 설정 --%> <%-- CK editor 적용 시 width 설정 --%>
<%--파비콘, 메타, 타이틀--%> <%--파비콘, 메타, 타이틀--%>
<title>일반 관리자</title> <title>
<c:choose>
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
<c:otherwise></c:otherwise>
</c:choose>
일반 관리자
</title>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="\assets\favicon\gcone.ico"> <link rel="icon" type="image/png" href="\assets\favicon\gcone.ico">
<meta name="robots" content="noindex,nofollow"> <meta name="robots" content="noindex,nofollow">
<%--mixed Contents 대응--%> <%--mixed Contents 대응--%>
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
<c:if test="${profiles eq 'stage'}"> <c:if test="${profiles eq 'stage'}">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
</c:if> </c:if>

View File

@@ -6,7 +6,7 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%> <%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%> <%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
<!-- 모든 사이트 공통 --> <!-- 모든 사이트 공통 -->
<link rel="stylesheet" href="/mobile/css/default.css"> <link rel="stylesheet" href="/mobile/css/default.css">
@@ -165,14 +165,28 @@
<c:set var="metaGoodsKwrd" value="${fn:replace(metaGoodsKwrd, '{kwrd}', '')}"/> <c:set var="metaGoodsKwrd" value="${fn:replace(metaGoodsKwrd, '{kwrd}', '')}"/>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<title>${metaGoodsSj}</title> <title>
<c:choose>
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
<c:otherwise></c:otherwise>
</c:choose>
${metaGoodsSj}
</title>
<meta name="description" content="<c:out value="${metaGoodsDc}"/>"> <meta name="description" content="<c:out value="${metaGoodsDc}"/>">
<meta name="keywords" content="<c:out value="${metaGoodsKwrd}"/>"> <meta name="keywords" content="<c:out value="${metaGoodsKwrd}"/>">
<meta property="og:title" content="<c:out value="${metaGoodsSj}"/>"> <meta property="og:title" content="<c:out value="${metaGoodsSj}"/>">
<meta property="og:description" content="<c:out value="${metaGoodsDc}"/>"> <meta property="og:description" content="<c:out value="${metaGoodsDc}"/>">
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<title><c:out value="${meta.metaSj}"/></title> <title>
<c:choose>
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
<c:otherwise></c:otherwise>
</c:choose>
<c:out value="${meta.metaSj}"/>
</title>
<meta name="description" content="<c:out value="${meta.metaDc}"/>"> <meta name="description" content="<c:out value="${meta.metaDc}"/>">
<meta name="keywords" content="<c:out value="${meta.metaKwrd}"/>"> <meta name="keywords" content="<c:out value="${meta.metaKwrd}"/>">
<meta property="og:title" content="<c:out value="${meta.metaSj}"/>"> <meta property="og:title" content="<c:out value="${meta.metaSj}"/>">

View File

@@ -14,7 +14,7 @@
--%> --%>
<!-- 배송지 모달 --> <!-- 배송지 모달 -->
<!-- 배송지 수정--> <!-- 배송지 수정-->
<div id="dlvylcUpdate" class="modal" style="max-width: 480px;"> <div id="dlvylcUpdate" class="modal" style="max-width: 480px; max-height: 100%;">
<form id="dlvylcUpdtForm" name="dlvylcUpdtForm" action="<c:url value=" /crm/dlvylc/updateDlvylcUpdt" />" method="post"> <form id="dlvylcUpdtForm" name="dlvylcUpdtForm" action="<c:url value=" /crm/dlvylc/updateDlvylcUpdt" />" method="post">
<div class="modal-header"> <div class="modal-header">
<h4>배송지 수정</h4> <h4>배송지 수정</h4>

View File

@@ -523,7 +523,8 @@
$(div).find('#' + id + 'Div').show(); $(div).find('#' + id + 'Div').show();
if ('ordrTy01' === id || 'ordrTy06' === id) { // 일반주문, 정기배송 if ('ordrTy01' === id || 'ordrTy06' === id) { // 일반주문, 정기배송
fn_set_dft_dlvylc(fn_get_mbr('dftDlvylc'), 'dlvylcForm-' + id); // (346361) 상품 추가 or 상품 쿠폰 적용시 배송지 정보가 초기화 되는 문제 방지.
// fn_set_dft_dlvylc(fn_get_mbr('dftDlvylc'), 'dlvylcForm-' + id);
} else if ('ordrTy05' === id) { // 여러곳 배송 } else if ('ordrTy05' === id) { // 여러곳 배송
const mbrInnb = fn_get_mbr_innb(); const mbrInnb = fn_get_mbr_innb();
@@ -2318,6 +2319,12 @@
/* 구매자 > 회원검색(레이어팝업) > 선택 구매자 정보 세팅 */ /* 구매자 > 회원검색(레이어팝업) > 선택 구매자 정보 세팅 */
const fn_set_apply_purchsr = function() { const fn_set_apply_purchsr = function() {
const purchsr = JSON.parse(localStorage.getItem('purchsr')); const purchsr = JSON.parse(localStorage.getItem('purchsr'));
// 회원 정보 세팅
$('#mbrInnb').val(fn_get_mbr_innb());
$('#mbrDvCd').val(String(fn_get_mbr_dv_cd()));
// 기본 배송지로 초기화
$('input[name="dlvylcDvCd"]').first().trigger('click');
let tr = '<tr>'; let tr = '<tr>';

View File

@@ -29,7 +29,7 @@
function create_goodInfo() { function create_goodInfo() {
if(document.order_info.pay_mod.value=='Y') { if(document.order_info.pay_mod.value=='Y') {
var chr31 = String.fromCharCode(31); // ASCII 코드값 31 var chr31 = String.fromCharCode(31); // ASCII 코드값 31
var good_info = "seq=1" + chr31 + "ordr_numb=0001" + chr31 + "good_name=${data.setle.goodsNm}" + chr31 + "good_cntx=2" + chr31 + "good_amtx=${data.setle.setleAmt}"; var good_info = "seq=1" + chr31 + "ordr_numb=0001" + chr31 + "good_name=${data.setle.goodsNm}" + chr31 + "good_cntx=2" + chr31 + "good_amtx=${data.setle.wonSetleAmt}";
document.order_info.good_info.value = good_info; document.order_info.good_info.value = good_info;
} }
} }
@@ -112,7 +112,7 @@
<!-- ========== 에스크로 필수정보 End =============================== --> <!-- ========== 에스크로 필수정보 End =============================== -->
<input type="hidden" name="good_name" value="${data.setle.goodsNm}"/> <!-- 상품명 --> <input type="hidden" name="good_name" value="${data.setle.goodsNm}"/> <!-- 상품명 -->
<input type="hidden" name="good_mny" value="${data.setle.setleAmt}"/> <!-- 결제 금액 --> <input type="hidden" name="good_mny" value="${data.setle.wonSetleAmt}"/> <!-- 결제 금액 -->
<input type="hidden" name="buyr_name" value="${data.ordr.ordrrNm}"/> <!-- 주문자 이름 --> <input type="hidden" name="buyr_name" value="${data.ordr.ordrrNm}"/> <!-- 주문자 이름 -->
<input type="hidden" name="buyr_mail" value="${data.ordr.ordrrEmail}"/> <!-- 주문자 이메일 --> <input type="hidden" name="buyr_mail" value="${data.ordr.ordrrEmail}"/> <!-- 주문자 이메일 -->
<input type="hidden" name="buyr_tel2" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문자 휴대폰번호 --> <input type="hidden" name="buyr_tel2" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문자 휴대폰번호 -->

View File

@@ -6,6 +6,7 @@
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%> <%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%> <%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/> <spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ko"> <html lang="ko">
@@ -13,7 +14,14 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>통합관리자</title> <title>
<c:choose>
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
<c:otherwise></c:otherwise>
</c:choose>
통합관리자
</title>
<!-- CSS --> <!-- CSS -->
<link rel="stylesheet" href="/login/admin/css/style.css"> <link rel="stylesheet" href="/login/admin/css/style.css">
@@ -52,7 +60,7 @@
<img class="login__logo active" src="/login/admin/images/logo_default.png" alt="gcone"> <img class="login__logo active" src="/login/admin/images/logo_default.png" alt="gcone">
</a> </a>
</div> </div>
<%-- <span class="login__pageTitle__text">통합관리자</span>--%> <span class="login__pageTitle__text">통합관리자</span>
</h2> </h2>
<form id="loginForm"> <form id="loginForm">
<input type="hidden" id="realm" value="${realm}"> <input type="hidden" id="realm" value="${realm}">

View File

@@ -6,6 +6,7 @@
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%> <%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%> <%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/> <spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ko"> <html lang="ko">
@@ -13,7 +14,14 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <title>
<c:choose>
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
<c:otherwise></c:otherwise>
</c:choose>
일반 관리자
</title>
<!-- CSS --> <!-- CSS -->
<link rel="stylesheet" href="/login/mngr/css/style.css"> <link rel="stylesheet" href="/login/mngr/css/style.css">

View File

@@ -6,6 +6,8 @@
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %> <%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %> <%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/> <spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ko"> <html lang="ko">
<head> <head>
@@ -34,7 +36,14 @@
</c:if> </c:if>
<!-- 타이틀--> <!-- 타이틀-->
<title>${shopInfo.metaSj}</title> <title>
<c:choose>
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
<c:otherwise></c:otherwise>
</c:choose>
${shopInfo.metaSj}
</title>
<script src="/mobile/vendor/jquery-3.7.1.min.js"></script> <script src="/mobile/vendor/jquery-3.7.1.min.js"></script>
<!--js--> <!--js-->
<script src="/login/sopmall/pc/js/common.js"></script> <script src="/login/sopmall/pc/js/common.js"></script>

View File

@@ -19,7 +19,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
</head> </head>
<style> <style>

View File

@@ -19,7 +19,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
</head> </head>
<style> <style>

View File

@@ -19,7 +19,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
</head> </head>
<style> <style>

View File

@@ -19,7 +19,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
</head> </head>
<style> <style>

View File

@@ -19,7 +19,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
</head> </head>
<style> <style>

View File

@@ -19,7 +19,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
</head> </head>
<style> <style>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

View File

@@ -21,7 +21,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title> <%--<title>일반 관리자</title>--%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<link rel="stylesheet" href="/mngr/css/bnft/style.css"> <link rel="stylesheet" href="/mngr/css/bnft/style.css">
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script> <script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>

Some files were not shown because too many files have changed in this diff Show More