Compare commits

..

1 Commits

Author SHA1 Message Date
김현욱
305d5d226c 배송비 계산 수정(4) 2026-02-12 15:15:07 +09:00
346 changed files with 6732 additions and 27383 deletions

42
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' ? '/usr/local/tomcat' : '/usr/local/tomcat'}" TOMCAT_HOME = "${ENVIRONMENT == 'dev' ? '/var/lib/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' ? 'ubuntu' : 'ubuntu'}" NGINX_USER = "${ENVIRONMENT == 'dev' ? 'dev1' : '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: ['10.2.0.129'], description: 'WAR 배포할 서버IP 선택'), choice(name: 'DEPLOY_WAS_SERVER_IP', choices: ['00.00.00.00'], description: 'WAR 배포할 서버IP 선택'),
choice(name: 'DEPLOY_WEB_SERVER_IP', choices: ['10.2.1.226'], description: 'STATIC RESOURCE 배포할 서버IP 선택'), choice(name: 'DEPLOY_WEB_SERVER_IP', choices: ['00.00.00.00'], 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: '배포 대상 선택')
@@ -84,26 +84,6 @@ pipeline {
} }
} }
stage('Web Server block activate') {
when {
expression { params.DEPLOY_TARGET in ['ALL', 'WAS_ONLY'] }
}
steps {
script {
// Nginx 서버에 점검 페이지로 블록 설정
sshCommand remote: [
name: 'Nginx Server',
host: "${env.NGINX_SERVER_IP}",
user: "${env.NGINX_USER}",
identityFile: "${env.SSH_KEY_PATH}",
allowAnyHosts: true
], command: "/etc/nginx/weboff.sh"
echo "점검 web서버 config 구동"
}
}
}
stage('Prepare and Deploy Static Resources') { stage('Prepare and Deploy Static Resources') {
when { when {
expression { params.DEPLOY_TARGET in ['ALL', 'WEB_ONLY'] } expression { params.DEPLOY_TARGET in ['ALL', 'WEB_ONLY'] }
@@ -274,20 +254,6 @@ pipeline {
${env.TOMCAT_HOME}/bin/startup.sh ${env.TOMCAT_HOME}/bin/startup.sh
""" """
// Nginx 서버에 정상 페이지로 블록 해제
sshCommand remote: [
name: 'Nginx Server',
host: "${env.NGINX_SERVER_IP}",
user: "${env.NGINX_USER}",
identityFile: "${env.SSH_KEY_PATH}",
allowAnyHosts: true
], command: """
sleep 30
/etc/nginx/webon.sh
"""
echo "점검 web서버 config 구동"
echo "Deploy 완료 (${params.ENVIRONMENT} 환경, ${env.GIT_BRANCH} 브랜치)" echo "Deploy 완료 (${params.ENVIRONMENT} 환경, ${env.GIT_BRANCH} 브랜치)"
} }
} }

View File

@@ -286,7 +286,13 @@ 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 {
// 여러곳배송처럼 처리하더라도 주소는 하나이므로 shipping 체크 // if (CollectionUtils.isEmpty(multiOrdrDlvylc)) {
// 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");
@@ -323,27 +329,91 @@ 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 ( if (!CollectionUtils.isEmpty(multiOrdrDlvylc)) {
StringUtil.isEmpty((String) shipping.get("dlvylcZip")) ||
StringUtil.isEmpty((String) shipping.get("dlvylcAdresDvCd")) || // 배송지 리스트
( "01".equals(shipping.get("dlvylcAdresDvCd")) && StringUtil.isEmpty((String) shipping.get("dlvylcRnmAdres")) ) || List<LinkedHashMap<String, Object>> dlvylcListMulti = (List<LinkedHashMap<String, Object>>) multiOrdrDlvylc.get("dlvylc");
( "02".equals(shipping.get("dlvylcAdresDvCd")) && StringUtil.isEmpty((String) shipping.get("dlvylcLnbAdres")) ) ||
StringUtil.isEmpty((String) shipping.get("dlvylcAdresDtl")) /** ----------------------------------------------- 배송지별 주문 상품 수량 검사 START ----------------------------------------------- */
) { content = checkDistributedQyMatchesOrder(goodsList, dlvylcListMulti);
content.put("result","Y"); if (!"0".equals(content.get("status"))) {
content.put("message", "배송지 정보를 찾을 수 없습니다. 다시 시도해 주세요."); return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
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("message", "배송지 정보를 찾을 수 없습니다. 다시 시도해 주세요.");
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
}
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 (
String dlvylcAdresDvCd = (String) shipping.get("dlvylcAdresDvCd"); // StringUtil.isEmpty((String) shipping.get("dlvylcZip")) ||
String dlvylcLnbAdres = (String) shipping.get("dlvylcLnbAdres"); // StringUtil.isEmpty((String) shipping.get("dlvylcAdresDvCd")) ||
String dlvylcRnmAdres = (String) shipping.get("dlvylcRnmAdres"); // ( "01".equals(shipping.get("dlvylcAdresDvCd")) && StringUtil.isEmpty((String) shipping.get("dlvylcRnmAdres")) ) ||
String dlvylcAdresDtl = (String) shipping.get("dlvylcAdresDtl"); // ( "02".equals(shipping.get("dlvylcAdresDvCd")) && StringUtil.isEmpty((String) shipping.get("dlvylcLnbAdres")) ) ||
// StringUtil.isEmpty((String) shipping.get("dlvylcAdresDtl"))
adres = "01".equals(dlvylcAdresDvCd) ? dlvylcRnmAdres + " " + dlvylcAdresDtl : dlvylcLnbAdres + " " + dlvylcAdresDtl; // ) {
// content.put("result","Y");
String recpntMbtlnb = StringUtil.isNullToString(shipping.get("recpntMbtlnb")); // content.put("message", "배송지 정보를 찾을 수 없습니다. 다시 시도해 주세요.");
receptMbtlnbArray = new String[]{recpntMbtlnb}; // 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

@@ -52,9 +52,6 @@ public interface BOMaMtngMapper {
/** 주문 전 쿠폰정보 재확인*/ /** 주문 전 쿠폰정보 재확인*/
public List<String> selectBOPreOrderValidationCouponList(BOPreOrderValidVO goods); public List<String> selectBOPreOrderValidationCouponList(BOPreOrderValidVO goods);
/** 구독서비스 주문 전 주문정보 재확인*/
public List<DataMap> selectBOSubsvcPreOrderValidation(BOPreOrderValidVO goods);
/*쇼핑몰 구매요청 재검증 확인 여부*/ /*쇼핑몰 구매요청 재검증 확인 여부*/
public String selectPurchsValidUseAt(String sopmalCd); public String selectPurchsValidUseAt(String sopmalCd);
} }

View File

@@ -306,12 +306,8 @@ public class BOMaMtngService {
} }
for(BOPreOrderValidVO goods : goodsList) { for(BOPreOrderValidVO goods : goodsList) {
List<DataMap> resultValid = new ArrayList<>();
if(goods.getSubsvcInnb() != "") { List<DataMap> resultValid = mapper.selectBOPreOrderValidation(goods);
resultValid = mapper.selectBOSubsvcPreOrderValidation(goods);
} else {
resultValid = mapper.selectBOPreOrderValidation(goods);
}
//구매정보 변경대상 필터링 //구매정보 변경대상 필터링
// 값이 1인 항목 == 변경항목 // 값이 1인 항목 == 변경항목
@@ -423,15 +419,8 @@ 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()))
)); ));
@@ -477,14 +466,12 @@ public class BOMaMtngService {
goodsList.forEach(goods -> { goodsList.forEach(goods -> {
String goodsInnb = StringUtil.isNullToString(goods.get("goodsInnb")); String goodsInnb = StringUtil.isNullToString(goods.get("goodsInnb"));
String subsvcInnb = StringUtil.isNullToString(goods.get("subsvcInnb"));
//상품별 수량합계 //상품별 수량합계
int goodsTotalQy = 0; int goodsTotalQy = 0;
if(qySums.containsKey(goodsInnb)){ if(qySums.containsKey(goodsInnb)){
goodsTotalQy = qySums.getOrDefault(goodsInnb, 0); goodsTotalQy = qySums.getOrDefault(goodsInnb, 0);
} else if (qySums.containsKey(subsvcInnb)) {
goodsTotalQy = qySums.getOrDefault(subsvcInnb, 0);
} }
@@ -520,7 +507,6 @@ public class BOMaMtngService {
.sopmalCd(StringUtil.isNullToString(goods.get("sopmalCd"))) .sopmalCd(StringUtil.isNullToString(goods.get("sopmalCd")))
.goodsInnb(StringUtil.isNullToString(goods.get("goodsInnb"))) .goodsInnb(StringUtil.isNullToString(goods.get("goodsInnb")))
.goodsOptnInnb(StringUtil.isNullToString(goods.get("goodsOptnInnb"))) .goodsOptnInnb(StringUtil.isNullToString(goods.get("goodsOptnInnb")))
.subsvcInnb(StringUtil.isNullToString(goods.get("subsvcInnb")))
.mbrInnb(StringUtil.isNullToString(goods.get("mbrInnb"))) .mbrInnb(StringUtil.isNullToString(goods.get("mbrInnb")))
.mbrDvCd(StringUtil.isNullToString(goods.get("mbrDvCd"))) .mbrDvCd(StringUtil.isNullToString(goods.get("mbrDvCd")))
.qy(StringUtil.isNullToString(goods.get("qy"))) .qy(StringUtil.isNullToString(goods.get("qy")))

View File

@@ -24,9 +24,6 @@ public class BOPreOrderValidVO {
/*상품옵션고유번호*/ /*상품옵션고유번호*/
private String goodsOptnInnb; private String goodsOptnInnb;
/*구독서비스고유번호*/
private String subsvcInnb;
/*회원고유번호*/ /*회원고유번호*/
private String mbrInnb; private String mbrInnb;

View File

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

View File

@@ -9,6 +9,7 @@ import org.springframework.stereotype.Repository;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO; import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOShopSetupVO; import com.wb.domainserver.domain.admin.store.sopmal.vo.BOShopSetupVO;
import com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO;
import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.dataaccess.DataMap;
/** /**
@@ -80,10 +81,6 @@ public interface BOMaSopmalMapper {
public int updateBOSopmalUpdt(BOMaSopmalVO vo); public int updateBOSopmalUpdt(BOMaSopmalVO vo);
public int updateBOExchngrtSetup(BOMaSopmalVO vo);
public int updateBOGuidanceSetup(BOMaSopmalVO vo);
public int deteteBOShopFamilySite(BOMaSopmalVO vo); public int deteteBOShopFamilySite(BOMaSopmalVO vo);
public int deteteBOShopClause(BOMaSopmalVO vo); public int deteteBOShopClause(BOMaSopmalVO vo);

View File

@@ -437,12 +437,39 @@ public class BOMaSopmalService {
log.debug("masopmal {}", vo); log.debug("masopmal {}", vo);
// update payLink // update payLink
mapper.updateBOShopPayLink(vo); mapper.updateBOShopPayLink(vo);
// PC 결제 정보
String pcSetleType = vo.getPcSetleTypeList();
String[] pcSetleTypeArr = null;
DataMap pcSetleInfoDm = new DataMap();
if (!StringUtil.isEmpty(pcSetleType)) {
pcSetleTypeArr = StringUtil.split(pcSetleType, "$");
pcSetleInfoDm = ynSetParam(pcSetleTypeArr);
pcSetleInfoDm.put("updusr", vo.getUpdusr());
pcSetleInfoDm.put("setleInfoInnb", vo.getPcSetleInfoInnb());
mapper.updateBOShopPayInfo(pcSetleInfoDm);
} else {
pcSetleInfoDm = ynSetParam(pcSetleTypeArr);
pcSetleInfoDm.put("updusr", vo.getUpdusr());
pcSetleInfoDm.put("setleInfoInnb", vo.getPcSetleInfoInnb());
mapper.updateBOShopPayInfo(pcSetleInfoDm);
}
// 결제 정보 업데이트 // MOBILE 결제 정보
updateSetleInfo(vo.getPcSetleTypeList(), vo.getPcSetleInfoInnb(), vo.getUpdusr()); // PC String mobileSetleType = vo.getMobileSetleTypeList();
updateSetleInfo(vo.getMobileSetleTypeList(), vo.getMobileSetleInfoInnb(), vo.getUpdusr()); // MOBILE String[] mobileSetleTypeArr = null;
updateSetleInfo(vo.getPcSubsvcSetleTypeList(), vo.getPcSubsvcSetleInfoInnb(), vo.getUpdusr()); // 구독서비스 PC DataMap mobileSetleInfoDm = new DataMap();
updateSetleInfo(vo.getMobileSubsvcSetleTypeList(), vo.getMobileSubsvcSetleInfoInnb(), vo.getUpdusr()); // 구독서비스 MOBILE if (!StringUtil.isEmpty(mobileSetleType)) {
mobileSetleTypeArr = StringUtil.split(mobileSetleType, "$");
mobileSetleInfoDm = ynSetParam(mobileSetleTypeArr);
mobileSetleInfoDm.put("updusr", vo.getUpdusr());
mobileSetleInfoDm.put("setleInfoInnb", vo.getMobileSetleInfoInnb());
mapper.updateBOShopPayInfo(mobileSetleInfoDm);
} else {
mobileSetleInfoDm = ynSetParam(mobileSetleTypeArr);
mobileSetleInfoDm.put("updusr", vo.getUpdusr());
mobileSetleInfoDm.put("setleInfoInnb", vo.getMobileSetleInfoInnb());
mapper.updateBOShopPayInfo(mobileSetleInfoDm);
}
if (!ObjectUtils.isEmpty(vo.getFamilySiteNmArr())) { if (!ObjectUtils.isEmpty(vo.getFamilySiteNmArr())) {
String[] siteNm = vo.getFamilySiteNmArr(); String[] siteNm = vo.getFamilySiteNmArr();
@@ -496,26 +523,6 @@ public class BOMaSopmalService {
return message; return message;
} }
/**
* 결제정보 업데이트
* @param setleType 결제정보 List
* @param setleInfoInnb 결제정보 고유번호
* @param updusr 수정자 고유번호
*/
private void updateSetleInfo(String setleType, String setleInfoInnb, int updusr) {
String[] setleTypeArr = null;
if (!StringUtil.isEmpty(setleType)) {
setleTypeArr = StringUtil.split(setleType, "$");
}
DataMap dm = ynSetParam(setleTypeArr);
dm.put("updusr", updusr);
dm.put("setleInfoInnb", setleInfoInnb);
mapper.updateBOShopPayInfo(dm);
}
private void setBOMaSopmalVO(BOMaSopmalVO vo) { private void setBOMaSopmalVO(BOMaSopmalVO vo) {
if(!StringUtil.isEmpty(vo.getSmsAtmcSndngLmttBgntme())) if(!StringUtil.isEmpty(vo.getSmsAtmcSndngLmttBgntme()))

View File

@@ -483,24 +483,12 @@ public class BOMaSopmalVO extends AbstractVO {
/** mobile 결제정보 List */ /** mobile 결제정보 List */
private String mobileSetleTypeList; private String mobileSetleTypeList;
/** 구독서비스 pc 결제정보 List */
private String pcSubsvcSetleTypeList;
/** 구독서비스 mobile 결제정보 List */
private String mobileSubsvcSetleTypeList;
/** pc 결제정보 Innb */ /** pc 결제정보 Innb */
private String pcSetleInfoInnb; private String pcSetleInfoInnb;
/** mobile 결제정보 Innb */ /** mobile 결제정보 Innb */
private String mobileSetleInfoInnb; private String mobileSetleInfoInnb;
/** 구독서비스 pc 결제정보 Innb */
private String pcSubsvcSetleInfoInnb;
/** 구독서비스 mobile 결제정보 Innb */
private String mobileSubsvcSetleInfoInnb;
/** 회원가입 안내 타이틀 */ /** 회원가입 안내 타이틀 */
private String joinGuidanceSj; private String joinGuidanceSj;

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 : {}", (Object) olddvItmInnbsArr); log.debug("분류 olddvItmInnbsArr : {}", olddvItmInnbsArr);
log.debug("분류 qesitmInnb_d : {}", (Object) qesitmInnb_d); log.debug("분류 qesitmInnb_d : {}", qesitmInnb_d);
log.debug("분류 qesitmNm_d : {}", (Object) qesitmNm_d); log.debug("분류 qesitmNm_d : {}", 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("필수 {}", (Object) vo.getQesitmEssntlAt_i()); log.debug("필수 {}", vo.getQesitmEssntlAt_i());
log.debug("사용 {}", (Object) vo.getQesitmUseAt_i()); log.debug("사용 {}", 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

@@ -232,9 +232,6 @@ public class BOGnrlbbscttService {
BOGnrlbbscttVO resultCnt = new BOGnrlbbscttVO(); BOGnrlbbscttVO resultCnt = new BOGnrlbbscttVO();
switch (bbsTyCd) { switch (bbsTyCd) {
case "01": //일반게시글 조회 case "01": //일반게시글 조회
log.debug("일반게시글 getServerDv : {}",bbsctt.getServerDv());
log.debug("일반게시글 getMbrDvCd : {}",bbsctt.getMbrDvCd());
log.debug("일반게시글 getSopmalCd : {}",bbsctt.getSopmalCd());
resultCnt = mapper.selectBOGnrlBbscttListCnt(bbsctt); resultCnt = mapper.selectBOGnrlBbscttListCnt(bbsctt);
totCnt = resultCnt.getTotCnt(); totCnt = resultCnt.getTotCnt();
if (StringUtil.isEmpty(bbsctt.getNtcAt())) {/*공지 제외 검색 조건*/ if (StringUtil.isEmpty(bbsctt.getNtcAt())) {/*공지 제외 검색 조건*/

View File

@@ -46,9 +46,6 @@ public class BOCommonService {
@Value("${secret.key}") @Value("${secret.key}")
private String secretKey; private String secretKey;
@Value("${aciexpress.apikey}")
private String aciApiKey;
/** /**
* <p>비밀번호를 암호화 한다</p> * <p>비밀번호를 암호화 한다</p>
@@ -290,10 +287,4 @@ public class BOCommonService {
return secretKey; return secretKey;
} }
/**
* aci Api키 조회
* @return String
*/
public String selectAciApiKey() {return aciApiKey;}
} }

View File

@@ -85,8 +85,6 @@ public interface BOGoodsMapper {
public void updateBOGoodsAdditionDtl(BOGoodsAdditionVO vo); public void updateBOGoodsAdditionDtl(BOGoodsAdditionVO vo);
// 일반 상품 > 추가정보 삭제 // 일반 상품 > 추가정보 삭제
public void deleteBOGoodsAddition(BOGoodsAdditionVO vo); public void deleteBOGoodsAddition(BOGoodsAdditionVO vo);
// 사용자 - 검색 - 검색어 로그 저장
public int insertBOSrchwrdLog(BOGoodsVO vo);
// 사용자 - 검색 - 상품명 검색어 조회 // 사용자 - 검색 - 상품명 검색어 조회
public List<DataMap> selectBOSrchGoodsNm(BOGoodsVO vo); public List<DataMap> selectBOSrchGoodsNm(BOGoodsVO vo);
// 일반 상품 > 일괄 업데이트 // 일반 상품 > 일괄 업데이트

View File

@@ -7,7 +7,6 @@ import com.wb.domainserver.domain.gcone.common.service.BOCommonService;
import com.wb.domainserver.domain.gcone.goods.goods.mapper.BOGoodsMapper; import com.wb.domainserver.domain.gcone.goods.goods.mapper.BOGoodsMapper;
import com.wb.domainserver.domain.gcone.goods.goods.vo.*; import com.wb.domainserver.domain.gcone.goods.goods.vo.*;
import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.exception.code.ErrorCode;
import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.dataaccess.DataMap;
import com.wb.domainserver.util.string.StringUtil; import com.wb.domainserver.util.string.StringUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -17,7 +16,6 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import java.io.File; import java.io.File;
import java.math.BigInteger; import java.math.BigInteger;
@@ -1507,27 +1505,6 @@ public class BOGoodsService {
return mapper.selectBOGoodsCategoryLink(vo); return mapper.selectBOGoodsCategoryLink(vo);
} }
/**
* 검색어 로그 저장
* @param vo
* @return
*/
public DataMap insertBOSrchwrdLog(BOGoodsVO vo){
DataMap message = new DataMap();
try {
mapper.insertBOSrchwrdLog(vo);
message.put("result", "success");
} catch (WnbtRestException wre) {
throw new WnbtRestException(wre.getMessage());
} catch (Exception e) {
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
}
return message;
}
/** /**
* 상품명 검색어 조회 * 상품명 검색어 조회
* @param vo * @param vo

View File

@@ -47,10 +47,6 @@ public class BOGoodsOptionVO extends AbstractVO {
private String optnCd4; private String optnCd4;
/** 옵션정보 */ /** 옵션정보 */
private String optnInfo; private String optnInfo;
/** HS Code */
private String hscode;
/** 실무게(KG) */
private String realWt;
/** 재고수량 */ /** 재고수량 */
private String invntryQy; private String invntryQy;
/** 가용재고수량 */ /** 가용재고수량 */

View File

@@ -41,9 +41,6 @@ public class BOGoodsVO extends AbstractVO {
/** 상품명 */ /** 상품명 */
@NotBlank(message = "상품명") @NotBlank(message = "상품명")
private String goodsNm; private String goodsNm;
/** 상품명(영문) */
@NotBlank(message = "상품명(영문)")
private String goodsNmEn;
/** 입점상품명 */ /** 입점상품명 */
private String tentMarktGoodsNm; private String tentMarktGoodsNm;
/** ? */ /** ? */
@@ -223,10 +220,6 @@ public class BOGoodsVO extends AbstractVO {
private String optnCd4; private String optnCd4;
/** 옵션정보 */ /** 옵션정보 */
private String optnInfo; private String optnInfo;
/** HS Code */
private String hscode;
/** 실무게(KG) */
private String realWt;
/** 재고수량 */ /** 재고수량 */
private Integer invntryQy; private Integer invntryQy;
/** 가용재고수량 */ /** 가용재고수량 */
@@ -485,10 +478,6 @@ public class BOGoodsVO extends AbstractVO {
private String srchType; private String srchType;
/** 검색어 */ /** 검색어 */
private String srchStr; private String srchStr;
/** 유입경로 */
private String conectUrl;
/** 유입경로 도메인 */
private String conectDomn;
/** 선택 삭제 */ /** 선택 삭제 */
private List<HashMap<String, Object>> delInnbArr; private List<HashMap<String, Object>> delInnbArr;
/** 이미지 파일 업로드 */ /** 이미지 파일 업로드 */

View File

@@ -470,8 +470,6 @@ 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,8 +1837,6 @@ 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(){{
@@ -2215,7 +2213,7 @@ public class BOPurchsService {
// BigDecimal amtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt"); // 금액조건 추가금액 // BigDecimal amtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt"); // 금액조건 추가금액
BigDecimal slepric = (BigDecimal) goodsMap.get("subSlepric"); // 판매가 * 수량 BigDecimal slepric = (BigDecimal) goodsMap.get("subSlepric"); // 판매가 * 수량
if (slepric.compareTo(amtCndAditAmt) >= 0) { if (slepric.compareTo(amtCndAditAmt) > 0) {
dlvyAmt = new BigDecimal(0); dlvyAmt = new BigDecimal(0);
} }
// else { // else {
@@ -2229,7 +2227,7 @@ public class BOPurchsService {
// BigDecimal cntCndAditAmt = (BigDecimal) shippingGrouping.get("cntCndAditAmt"); // 금액조건 추가금액 // BigDecimal cntCndAditAmt = (BigDecimal) shippingGrouping.get("cntCndAditAmt"); // 금액조건 추가금액
BigDecimal qy = (BigDecimal) goodsMap.get("qy"); // 수량 BigDecimal qy = (BigDecimal) goodsMap.get("qy"); // 수량
if (qy.compareTo(cntCndAditAmt) >= 0) { if (qy.compareTo(cntCndAditAmt) > 0) {
dlvyAmt = new BigDecimal(0); dlvyAmt = new BigDecimal(0);
} }
// else { // else {
@@ -2298,16 +2296,15 @@ public class BOPurchsService {
BigDecimal goodsQy = new BigDecimal(0); BigDecimal goodsQy = new BigDecimal(0);
// 수량 조건 for (DataMap goodsMap : goodsByDlvyGroupList) {
if ("Y".equals(cntCndUseAt) && cntCndAditAmt.compareTo(BigDecimal.ZERO) > 0) {
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);
//배송비 합(같은상품 수량당 배송비 책정) //배송비 합(같은상품 수량당 배송비 책정)
@@ -2331,19 +2328,17 @@ public class BOPurchsService {
} }
} }
} }
} //for } else {
} else { //수량 조건 없는 경우
//수량 조건 없는 경우 paidDlvyAmt = paidDlvyAmt.add(dlvyAmt); // 유료배송비 합
paidDlvyAmt = paidDlvyAmt.add(dlvyAmt); // 유료배송비 합 // 추가배송비 계산
if (!StringUtils.isEmpty(dlvyAreaAditAt) && "Y".equals(dlvyAreaAditAt)) {
// 추가배송비 계산 if (!StringUtils.isEmpty(defaultAdressAt) && "Y".equals(defaultAdressAt)) {
if (!StringUtils.isEmpty(dlvyAreaAditAt) && "Y".equals(dlvyAreaAditAt)) { addPaidDlvyAmt = addPaidDlvyAmt.add(areaAditDlvyAmt); // 유료 배송 도서산간 추가 배송비
if (!StringUtils.isEmpty(defaultAdressAt) && "Y".equals(defaultAdressAt)) { }
addPaidDlvyAmt = addPaidDlvyAmt.add(areaAditDlvyAmt); // 유료 배송 도서산간 추가 배송비
} }
} }
} } //for
} else { } else {
dlvyAmt = new BigDecimal(0); dlvyAmt = new BigDecimal(0);
dftDlvyAmt = new BigDecimal(0); dftDlvyAmt = new BigDecimal(0);
@@ -2519,7 +2514,7 @@ public class BOPurchsService {
BigDecimal amtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt"); // 금액조건 추가금액 BigDecimal amtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt"); // 금액조건 추가금액
BigDecimal slepric = (BigDecimal) goodsMap.get("subSlepric"); // 판매가 * 수량 BigDecimal slepric = (BigDecimal) goodsMap.get("subSlepric"); // 판매가 * 수량
if (slepric.compareTo(amtCndAditAmt) >= 0) { if (slepric.compareTo(amtCndAditAmt) > 0) {
dlvyAmt = new BigDecimal(0); dlvyAmt = new BigDecimal(0);
} }
} }
@@ -2528,7 +2523,7 @@ public class BOPurchsService {
BigInteger cntCndAditAmt = (BigInteger) shippingGrouping.get("cntCndAditAmt"); // 금액조건 추가금액 BigInteger cntCndAditAmt = (BigInteger) shippingGrouping.get("cntCndAditAmt"); // 금액조건 추가금액
BigInteger qy = (BigInteger) goodsMap.get("qy"); // 수량 BigInteger qy = (BigInteger) goodsMap.get("qy"); // 수량
if (cntCndAditAmt.intValue() <= qy.intValue()) { if (cntCndAditAmt.intValue() < qy.intValue()) {
dlvyAmt = new BigDecimal(0); dlvyAmt = new BigDecimal(0);
} }
} }
@@ -2544,7 +2539,7 @@ public class BOPurchsService {
if (bundleDlvyCndAmt != null && bundleDlvyCndAmt.intValue() > 0) { if (bundleDlvyCndAmt != null && bundleDlvyCndAmt.intValue() > 0) {
BigDecimal subSlepric = goodsByDlvyGroupList.stream().map(o -> (BigDecimal) o.get("subSlepric")).reduce(BigDecimal.ZERO, BigDecimal::add); // 합 (판매가 * 수량) BigDecimal subSlepric = goodsByDlvyGroupList.stream().map(o -> (BigDecimal) o.get("subSlepric")).reduce(BigDecimal.ZERO, BigDecimal::add); // 합 (판매가 * 수량)
if (subSlepric.compareTo(bundleDlvyCndAmt) >= 0) { if (subSlepric.compareTo(bundleDlvyCndAmt) > 0) {
dlvyAmt = new BigDecimal(0); dlvyAmt = new BigDecimal(0);
} }
} }

View File

@@ -142,14 +142,6 @@ public class BOOrderItemOptnVO extends AbstractVO {
private BigDecimal step85 = new BigDecimal(0); private BigDecimal step85 = new BigDecimal(0);
private String hscode;
private BigDecimal realWt;
private BigInteger volWt;
private Integer packageCnt;
private String restUpdtDv; private String restUpdtDv;
private BigDecimal updtRestAmt = new BigDecimal(0); private BigDecimal updtRestAmt = new BigDecimal(0);

View File

@@ -23,8 +23,6 @@ public class BOOrderItemVO extends AbstractVO {
private String goodsNm; private String goodsNm;
private String goodsNmEn;
private String goodsKndCd; private String goodsKndCd;
private String taxtTrgetAt; private String taxtTrgetAt;

View File

@@ -20,8 +20,6 @@ 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,14 +26,8 @@ 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,11 +40,7 @@ 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;
@@ -145,6 +141,4 @@ public class BOOrderVO extends AbstractVO {
private String secretKey; private String secretKey;
private String currOrdrSttusCd; private String currOrdrSttusCd;
private Integer subsvcInnb;
} }

View File

@@ -30,13 +30,4 @@ public interface BOSubsvcMapper {
void insertBOMngrSubsvc(BOSubsvcVO vo); void insertBOMngrSubsvc(BOSubsvcVO vo);
/** 관리자 구독서비스 명 중복체크*/ /** 관리자 구독서비스 명 중복체크*/
int selectBOMngrSubsvcNmDupCheck(BOSubsvcVO vo); int selectBOMngrSubsvcNmDupCheck(BOSubsvcVO vo);
/** 구독서비스 주문에 따른 판매재고수량 수정*/
public void updateSubsvcOrdrUsefulInvntryQy(BOSubsvcVO vo);
/** 구독서비스 환불에 따른 판매재고수량 수정*/
public void updateSubsvcRefundUsefulInvntryQy(BOSubsvcVO vo);
/** 구독서비스 주문취소에 따른 판매재고수량 수정*/
public void updateSubsvcCancelOrderUsefulInvntryQy(BOSubsvcVO vo);
/** 판매재고수량 변경에 따른 구독서비스 상태 수정*/
public void updateInvntryPolicySubsvcSttusChng(BOSubsvcVO vo);
} }

View File

@@ -1,15 +1,13 @@
package com.wb.domainserver.domain.gcone.goods.subsvc.service; package com.wb.domainserver.domain.gcone.goods.subsvc.service;
import com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO;
import com.wb.domainserver.domain.gcone.goods.subsvc.mapper.BOSubsvcMapper; import com.wb.domainserver.domain.gcone.goods.subsvc.mapper.BOSubsvcMapper;
import com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO; import com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrVO;
import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.dataaccess.DataMap;
import io.micrometer.common.util.StringUtils; import io.micrometer.common.util.StringUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -139,51 +137,4 @@ public class BOSubsvcService {
return message; return message;
} }
/**
* 주문에 따른 판매재고수량 수정
* @param ordrVO
* @return
*/
@Transactional
public void updateSubsvcOrdrUsefulInvntryQy(BOOrdrVO ordrVO) throws Exception {
BOSubsvcVO subsvcVO = new BOSubsvcVO();
BeanUtils.copyProperties(ordrVO, subsvcVO);
//판매수량 수정
mapper.updateSubsvcOrdrUsefulInvntryQy(subsvcVO);
//구독서비스 상태 수정
mapper.updateInvntryPolicySubsvcSttusChng(subsvcVO);
}
/**
* 환불에 따른 판매재고수량 수정
* @param ordrVO
* @return
*/
@Transactional
public void updateSubsvcRefundUsefulInvntryQy(BOOrdrVO ordrVO) throws Exception {
BOSubsvcVO subsvcVO = new BOSubsvcVO();
BeanUtils.copyProperties(ordrVO, subsvcVO);
//판매수량 수정
mapper.updateSubsvcRefundUsefulInvntryQy(subsvcVO);
//구독서비스 상태 수정
mapper.updateInvntryPolicySubsvcSttusChng(subsvcVO);
}
/**
* 주문취소에 따른 판매재고수량 수정
* @param ordrVO
* @return
*/
@Transactional
public void updateSubsvcCancelOrderUsefulInvntryQy(BOOrdrVO ordrVO) throws Exception {
BOSubsvcVO subsvcVO = new BOSubsvcVO();
BeanUtils.copyProperties(ordrVO, subsvcVO);
//판매수량 수정
mapper.updateSubsvcCancelOrderUsefulInvntryQy(subsvcVO);
//구독서비스 상태 수정
mapper.updateInvntryPolicySubsvcSttusChng(subsvcVO);
}
} }

View File

@@ -4,7 +4,6 @@ import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.math.BigInteger;
import java.util.List; import java.util.List;
@Data @Data
@@ -13,14 +12,14 @@ public class BOSubsvcVO extends AbstractVO {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 구독서비스고유번호 */
private String subsvcInnb;
/** 쇼핑몰코드 */ /** 쇼핑몰코드 */
private String sopmalCd; private String sopmalCd;
/** 구독서비스명 */ /** 구독서비스명 */
private String subsvcNm; private String subsvcNm;
/** 구독기간 */ /** 구독기간 */
private String subPd; private String subPd;
/** 구독서비스고유번호 */
private String subsvcInnb;
/** 구독서비스기수 */ /** 구독서비스기수 */
private String subsvcGnr; private String subsvcGnr;
/** 구독서비스명 다음기수 */ /** 구독서비스명 다음기수 */
@@ -38,13 +37,11 @@ private static final long serialVersionUID = 1L;
/** 소비자가 */ /** 소비자가 */
private String cnsmrpric; private String cnsmrpric;
/** 판매가 */ /** 판매가 */
private Integer slepric; private String slepric;
/** 재고수량 */ /** 재고수량 */
private String invntryQy; private String invntryQy;
/** 판매재고수량 */ /** 판매재고수량 */
private String usefulInvntryQy; private String usefulInvntryQy;
/** 판매수량 초기화여부*/
private String usefulInvntryQyInit;
/** 재고정책 */ /** 재고정책 */
private String invntryPolicyCd; private String invntryPolicyCd;
/** 가용재고제한수량 */ /** 가용재고제한수량 */
@@ -102,62 +99,4 @@ 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 String ordrInnb;
/** 결제상품정보 */
/** 판매상품 고유번호 */
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

@@ -101,11 +101,6 @@ public class BOMbrService {
List<DataMap> resultList = null; List<DataMap> resultList = null;
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
BOMaComncdVO comncdVO = new BOMaComncdVO();
comncdVO.setGroupCd("SRCH_DV");
bOMbrSrchVO.setSrchDv((String) selectCommCode(comncdVO).get(0).get("cd"));
// 건수 조회 // 건수 조회
Integer totCnt = mapper.selectBOMbrListTotCnt(bOMbrSrchVO); Integer totCnt = mapper.selectBOMbrListTotCnt(bOMbrSrchVO);
// 건수 갯수 페이징vo에 set // 건수 갯수 페이징vo에 set

View File

@@ -26,38 +26,35 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class BOMbrSrchVO extends AbstractVO { public class BOMbrSrchVO extends AbstractVO {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**검색어 구분*/ /**검색어 구분*/
private String srchKywordDv; private String srchKywordDv;
/**검색어 키워드*/ /**검색어 키워드*/
private String srchKyword; private String srchKyword;
/*검색어 이름*/ /*검색어 이름*/
private String srchMbrNm; private String srchMbrNm;
/*검색어 아이디*/ /*검색어 아이디*/
private String srchKywordID; private String srchKywordID;
/*검색어 이메일*/ /*검색어 이메일*/
private String srchKywordEmail; private String srchKywordEmail;
/*검색어 휴대폰번호*/ /*검색어 휴대폰번호*/
private String srchKywordMb; private String srchKywordMb;
/*회원고유번호*/ /*회원고유번호*/
private String srchMbrInnb; private String srchMbrInnb;
/**검색조건 비교 방식*/ /**정렬 방식*/
private String srchDv; private String sortDv;
/**정렬 방식*/
private String sortDv;
/**쇼핑몰코드*/ /**쇼핑몰코드*/
private String sopmalCd; private String sopmalCd;
/*회원 구분 코드*/ /*회원 구분 코드*/
private String srchMbrDvCd; private String srchMbrDvCd;
/*요청 페이지 구분 mngr인지 integ인지*/ /*요청 페이지 구분 mngr인지 integ인지*/
@@ -196,7 +193,4 @@ public class BOMbrSrchVO extends AbstractVO {
/*회원구분코드*/ /*회원구분코드*/
private String mbrDvCd; private String mbrDvCd;
/*마케팅 동의 팝업 읽기모드 여부*/
private String readonlyAt;
} }

View File

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

View File

@@ -161,14 +161,6 @@ public interface BODlivyMapper {
public List<BODlivyVO> selectBOOrdrDlvyDtlsInqireGroupOrdr(BODlivyVO boDlivyVO); public List<BODlivyVO> selectBOOrdrDlvyDtlsInqireGroupOrdr(BODlivyVO boDlivyVO);
/**
* 주문 배송 추적 조회 : 송장번호 조회
* @param boDlivyVO
* @return
*/
public String selectBOOrdrInvcnb(BODlivyVO boDlivyVO);
/** /**
* 출고 상태 '상품 준비' or '배송중' 되돌리기 / 출고 상태 변경 단건 * 출고 상태 '상품 준비' or '배송중' 되돌리기 / 출고 상태 변경 단건
* @param dlivyVO * @param dlivyVO

View File

@@ -1,40 +1,59 @@
package com.wb.domainserver.domain.gcone.ordr.dlivy.service; package com.wb.domainserver.domain.gcone.ordr.dlivy.service;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.stream.Collectors;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.wb.domainserver.domain.admin.store.sopmal.vo.BOShopSetupVO;
import com.wb.domainserver.domain.gcone.common.service.BOCommonService;
import com.wb.domainserver.domain.gcone.goods.purchs.mapper.BOPurchsMapper; import com.wb.domainserver.domain.gcone.goods.purchs.mapper.BOPurchsMapper;
import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderLogVO; import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderLogVO;
import com.wb.domainserver.domain.gcone.mbr.mlg.service.BOMlgService; import com.wb.domainserver.domain.gcone.mbr.mlg.service.BOMlgService;
import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOMlgVO; import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOMlgVO;
import com.wb.domainserver.domain.gcone.ntcn.mssage.service.BOMssageService; import com.wb.domainserver.domain.gcone.ntcn.mssage.service.BOMssageService;
import com.wb.domainserver.domain.gcone.ordr.dlivy.mapper.BODlivyMapper; import com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO;
import com.wb.domainserver.domain.gcone.ordr.dlivy.vo.*; import com.wb.domainserver.domain.gcone.ordr.dlivy.vo.*;
import com.wb.domainserver.domain.gcone.ordr.ordr.mapper.BOOrdrMapper; import com.wb.domainserver.domain.gcone.ordr.ordr.mapper.BOOrdrMapper;
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.BOOrdrLogVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrShippingVO; import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrShippingVO;
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.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;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.service.BORtngudrefndService; import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.service.BORtngudrefndService;
import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.exception.code.ErrorCode;
import com.wb.domainserver.util.dataaccess.DataMap;
import com.wb.domainserver.util.string.StringUtil; import com.wb.domainserver.util.string.StringUtil;
import io.micrometer.common.util.StringUtils; import io.micrometer.common.util.StringUtils;
import lombok.extern.slf4j.Slf4j; import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.JAXBException;
import jakarta.xml.bind.Marshaller;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wb.domainserver.domain.gcone.ordr.dlivy.mapper.BODlivyMapper;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.web.client.RestTemplate; import org.springframework.util.ObjectUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import java.io.IOException; import javax.xml.parsers.DocumentBuilder;
import java.math.BigDecimal; import javax.xml.parsers.DocumentBuilderFactory;
import java.math.BigInteger;
import java.util.*;
import java.util.stream.Collectors;
@Service @Service
@Slf4j @Slf4j
@@ -64,9 +83,6 @@ public class BODlivyService {
@Autowired @Autowired
BORtngudrefndService boRtngudrefndService; BORtngudrefndService boRtngudrefndService;
@Autowired
private BOCommonService boCommonService;
/* #################################### /* ####################################
출고 리스트 서비스 시작 출고 리스트 서비스 시작
@@ -478,167 +494,6 @@ public class BODlivyService {
return contents; return contents;
} }
/**
* ACI Key 발급 API
* @param
* @return List<DataMap>
*/
public DataMap selectBOAciKey() throws WnbtRestException {
String apiKey = boCommonService.selectAciApiKey();
DataMap message = new DataMap();
try {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("USERID", "UNIHAN");
headers.set("APIKEY", apiKey);
Map<String, Object> body = new HashMap<>();
HttpEntity<String> apiRequest =
new HttpEntity<>("{}", headers);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.exchange(
"https://acieshop.com/api/kr/pod/v1.5/",
HttpMethod.POST,
apiRequest,
String.class
);
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(response.getBody());
message.put("status", jsonNode.get("Status").asText());
message.put("aciKey", jsonNode.get("ACIKey").asText());
message.put("errMsg", jsonNode.get("ErrMsg").asText());
}catch (WnbtRestException wre){
log.error(wre.getMessage());
throw wre;
}catch (RuntimeException re){
log.error(re.getMessage());
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
}catch (Exception e) {
log.error(e.getMessage(), e);
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
}
return message;
}
/**
* 화물 추적 - 운송장 조회 API
* @param boDlivyVO
* @return List<DataMap>
*/
public DataMap updateBOAciDelivery(BODlivyVO boDlivyVO) throws WnbtRestException {
DataMap aciMap = selectBOAciKey();
String aciKey = String.valueOf(aciMap.get("aciKey"));
DataMap message = new DataMap();
try {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("USERID", "UNIHAN");
headers.set("ACIKey", aciKey);
Map<String, Object> body = new HashMap<>();
body.put("BLNO", mapper.selectBOOrdrInvcnb(boDlivyVO));
HttpEntity<Map<String, Object>> apiRequest =
new HttpEntity<>(body, headers);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.exchange(
"ex",
HttpMethod.POST,
apiRequest,
String.class
);
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(response.getBody());
message.put("status", jsonNode.get("Status").asText());
JsonNode podInfoNode = jsonNode.get("PODInfo");
if(!podInfoNode.isNull()) {
List<DataMap> podInfoList = new ArrayList<>();
for(JsonNode podInfoItem : podInfoNode) {
DataMap PODInfo = new DataMap();
PODInfo.put("blno", podInfoItem.get("BLNO").asText());
PODInfo.put("dateLocalwhin", podInfoItem.get("DATE_LOCALWHIN").asText());
PODInfo.put("dateLocaldeparture", podInfoItem.get("DATE_LOCALDEPARTURE").asText());
PODInfo.put("dateIcnarrival", podInfoItem.get("DATE_ICNARRIVAL").asText());
PODInfo.put("dateCustomes", podInfoItem.get("DATE_CUSTOMES").asText());
PODInfo.put("dateDelivery", podInfoItem.get("DATE_DELIVERY").asText());
PODInfo.put("recipient", podInfoItem.get("RECIPIENT").asText());
PODInfo.put("wta", podInfoItem.get("WTA").asText());
PODInfo.put("wtdan", podInfoItem.get("WTDAN").asText());
List<DataMap> volumeList = new ArrayList<>();
for(JsonNode volumeItem : podInfoItem.get("VOLUME")) {
DataMap volume = new DataMap();
volume.put("width", volumeItem.get("WIDTH").asText());
volume.put("length", volumeItem.get("LENGTH").asText());
volume.put("height", volumeItem.get("HEIGHT").asText());
volumeList.add(volume);
}
PODInfo.put("volume", volumeList);
List<List> customsList = new ArrayList<>();
for(JsonNode customsItem : podInfoItem.get("CUSTOMS")) {
List<DataMap> customDetail = new ArrayList<>();
for(JsonNode customItem : customsItem) {
DataMap Custom = new DataMap();
Custom.put("dateEvent", customItem.get("DATE_EVENT").asText());
Custom.put("traceStatus", customItem.get("TRACE_STATUS").asText());
customDetail.add(Custom);
}
customsList.add(customDetail);
}
PODInfo.put("customs", customsList);
List<DataMap> localPodList = new ArrayList<>();
for(JsonNode localPodItem : podInfoItem.get("LOCAL_POD")) {
DataMap localPod = new DataMap();
localPod.put("traceStatus", localPodItem.get("TRACE_STATUS").asText());
localPod.put("dateEvent", localPodItem.get("DATE_EVENT").asText());
localPod.put("position", localPodItem.get("POSITION").asText());
localPodList.add(localPod);
}
PODInfo.put("localPod", localPodList);
podInfoList.add(PODInfo);
}
message.put("podInfo", podInfoList);
} else {
message.put("errMsg", jsonNode.get("ErrMsg").asText());
}
}catch (WnbtRestException wre){
log.error(wre.getMessage());
throw wre;
}catch (RuntimeException re){
log.error(re.getMessage());
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
}catch (Exception e) {
log.error(e.getMessage(), e);
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
}
return message;
}
/**
* 송장번호 조회
* @param boDlivyVO
* @return List<DataMap>
*/
public String selectBOOrdrInvcnb(BODlivyVO boDlivyVO) throws WnbtRestException {
return mapper.selectBOOrdrInvcnb(boDlivyVO);
}
/** /**

View File

@@ -9,7 +9,6 @@ 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.*;
@@ -238,13 +237,6 @@ public interface BOOrdrMapper {
* @return List<LinkedHashMap> * @return List<LinkedHashMap>
*/ */
public List<LinkedHashMap> selectExcelListByOrder(BOOrdrSrchVO ordrSrchVO); public List<LinkedHashMap> selectExcelListByOrder(BOOrdrSrchVO ordrSrchVO);
/**
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 > 엑셀다운로드 발주서
* @param ordrSrchVO
* @return List<LinkedHashMap>
*/
public List<DataMap> selectExcelListPurchOrder(BOOrdrSrchVO ordrSrchVO);
/* #################################### /* ####################################
관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 종료 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 종료
#################################### */ #################################### */
@@ -343,8 +335,6 @@ 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
@@ -359,13 +349,6 @@ 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
@@ -679,8 +662,6 @@ public interface BOOrdrMapper {
*/ */
public DataMap selectBOSpbkGiftMultiDlvyAt(BOSpbkVO spbkVO); public DataMap selectBOSpbkGiftMultiDlvyAt(BOSpbkVO spbkVO);
public BigDecimal selectBuyRate(DataMap param);
/** /**
* 사용자 > 상품 > 장바구니 > 장바구니 상품 삭제 * 사용자 > 상품 > 장바구니 > 장바구니 상품 삭제
* @param goodsVO * @param goodsVO
@@ -1001,44 +982,6 @@ 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,11 +191,7 @@ public class BOOrdrLogService {
pgResult = false; pgResult = false;
} else { } else {
if("kiwoom".equals(payVO.getPgCmpnyNm())) { if ("kcp".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"));
@@ -231,7 +227,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) {
@@ -315,7 +311,7 @@ public class BOOrdrLogService {
/** /**
* 주문 로그 단순 등록 * 주문 로그 단순 등록
* @param logVO * @param pgApiLogVO
*/ */
@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) {
@@ -340,7 +336,7 @@ public class BOOrdrLogService {
/** /**
* 주문 종기능 로그 등록 * 주문 종기능 로그 등록
* @param bellVO * @param pgApiLogVO
*/ */
@Transactional(propagation = Propagation.REQUIRES_NEW) @Transactional(propagation = Propagation.REQUIRES_NEW)
public void insertBOOrderBellLogRegist(BOOrderLogVO bellVO) { public void insertBOOrderBellLogRegist(BOOrderLogVO bellVO) {

View File

@@ -29,66 +29,59 @@ public class BODwldItmVO extends AbstractVO {
private String[] selItems; private String[] selItems;
public enum items { public enum items {
exportGroupInnb("export_group_innb", "출고그룹"), item01("export_group_innb", "출고그룹"),
ordrInnbWithExportGroupInnb("ordr_innb_with_export_group_innb", "주문번호+출고그룹"), item02("ordr_innb_with_export_group_innb", "주문번호+출고그룹"),
ordrInnb("ordr_innb", "주문번호"), item03("ordr_innb", "주문번호"),
smrtShopngOrdrnb("smrt_shopng_ordrnb", "npay주문번호"), item04("smrt_shopng_ordrnb", "npay주문번호"),
ordrRceptDt("ordr_rcept_dt", "주문일"), item05("ordr_rcept_dt", "주문일"),
ordrrNm("ordrr_nm", "주문자명"), item06("ordrr_nm", "주문자명"),
mbrId("mbr_id", "주문자아이디"), item07("mbr_id", "주문자아이디"),
ordrrMbtlnb("ordrr_mbtlnb", "주문자휴대폰"), item08("ordrr_mbtlnb", "주문자휴대폰"),
ordrrEmail("ordrr_email", "주문자이메일"), item09("ordrr_email", "주문자이메일"),
orderMemo("order_memo", "사용자메모"), item10("order_memo", "사용자메모"),
lgstcAdmMemo("lgstc_adm_memo", "물류담당자메모"), item11("lgstc_adm_memo", "물류담당자메모"),
inflowCoursUrl("inflow_cours_url", "주문경로"), item12("inflow_cours_url", "주문경로"),
dlivyDt("dlivy_dt", "출고일"), item13("dlivy_dt", "출고일"),
dlvyMthNm("dlvy_mth_nm", "받는방법"), item14("dlvy_mth_nm", "받는방법"),
hdrycpnNm("hdrycpn_nm", "택배사"), item15("hdrycpn_nm", "택배사"),
invcnb("invcnb", "운송장번호"), item16("invcnb", "운송장번호"),
dlvylcAdresInfo("dlvylc_adres_info", "받는정보"), item17("dlvylc_adres_info", "받는정보"),
recpntNm("recpnt_nm", "수령인"), item18("recpnt_nm", "수령인"),
recpntMbtlnb("recpnt_mbtlnb", "수령인휴대폰"), item19("recpnt_mbtlnb", "수령인휴대폰"),
dlvylcZip("dlvylc_zip", "우편번호"), item20("dlvylc_zip", "우편번호"),
dlvylcRnmAdres("dlvylc_rnm_adres", "전체주소(도로명)"), item21("dlvylc_rnm_adres", "전체주소(도로명)"),
dlvyAmt("dlvy_amt", "배송비"), item22("dlvy_amt", "배송비"),
ordrGoodsInnb("ordr_goods_innb", "상품고유번호"), item23("ordr_goods_innb", "상품고유번호"),
npayGoodsOrdrnb("npay_goods_ordrnb", "npay상품주문번호"), item24("npay_goods_ordrnb", "npay상품주문번호"),
goodsNm("goods_nm", "상품명"), item25("goods_nm", "상품명"),
goodsNmEn("goods_nm_en", "상품명(영문)"), item26("invntry_qy", "현재고"),
invntryQy("invntry_qy", "현재고"), item27("prchspric", "매입가"),
prchspric("prchspric", "매입가"), item28("cnsmrpric", "정가"),
cnsmrpric("cnsmrpric", "정가"), item29("dscntpric", "할인가"),
dscntpric("dscntpric", "할인가"), item30("pric_by_ordr_qy", "할인가x수량"),
pricByOrdrQy("pric_by_ordr_qy", "할인가x수량"), item31("taxt_trget_at", "과세여부"),
taxtTrgetAt("taxt_trget_at", "과세여부"), item32("input_optn", "추가입력옵션"),
inputOptn("input_optn", "추가입력옵션"), item33("ordr_qy", "주문수량"),
ordrQy("ordr_qy", "주문수량"), item34("refnd_qy", "취소수량"),
refndQy("refnd_qy", "취소수량"), item35("bfr_sndng_qy", "보낸수량"),
bfrSndngQy("bfr_sndng_qy", "보낸수량"), item36("aftr_sndng_qy", "보낼수량"),
aftrSndngQy("aftr_sndng_qy", "보낼수량"), item37("ordr_sttus_nm", "주문상품상태"),
ordrSttusNm("ordr_sttus_nm", "주문상품상태"), item38("goods_dscnt_amt", "상품쿠폰할인"),
goodsDscntAmt("goods_dscnt_amt", "상품쿠폰할인"), item39("event_dscnt_amt", "이벤트할인"),
eventDscntAmt("event_dscnt_amt", "이벤트할인"), item40("mlt_dscnt_amt", "복수구매할인"),
mltDscntAmt("mlt_dscnt_amt", "복수구매할인"), item41("dlvy_dscnt_amt", "배송비쿠폰"),
dlvyDscntAmt("dlvy_dscnt_amt", "배송비쿠폰"), item42("mlg_dscnt_amt", "마일리지사용"),
mlgDscntAmt("mlg_dscnt_amt", "마일리지사용"), item43("spbk_dscnt_amt", "장바구니할인쿠폰"),
spbkDscntAmt("spbk_dscnt_amt", "장바구니할인쿠폰"), item44("enuri_dscnt_amt", "에누리"),
enuriDscntAmt("enuri_dscnt_amt", "에누리"), item45("setle_amt", "결제금액"),
setleAmt("setle_amt", "결제금액"), item46("setle_dt", "결제일"),
setleDt("setle_dt", "결제일"), item47("setle_mth_nm", "결제방법"),
setleMthNm("setle_mth_nm", "결제방법"), item48("snggds_accml_mlg_amt", "지급마일리지"),
snggdsAccmlMlgAmt("snggds_accml_mlg_amt", "지급마일리지"), item49("dlvylc_group_nb", "배송그룹번호"),
dlvylcGroupNb("dlvylc_group_nb", "배송그룹번호"), item50("dlvy_amt_setle_mth_nm", "배송비결제방식"),
dlvyAmtSetleMthNm("dlvy_amt_setle_mth_nm", "배송비결제방식"), item51("ordr_ty_nm", "주문유형"),
ordrTyNm("ordr_ty_nm", "주문유형"), item52("optn_cd_1", "상품코드"),
optnCd_1("optn_cd_1", "상품코드"), item53("dlvy_mssage_cn", "배송메시지");
hscode("hscode", "HS Code"),
realWt("realWt", "실무게"),
volWt("volWt", "부피무게"),
packageCnt("packageCnt", "포장개수"),
dlvyMssageCn("dlvy_mssage_cn", "배송메시지"),
shippingSttusNm("shipping_sttus_nm", "출고상태"),
subsvcAt("subsvc_at", "주문구분");
private final String key; private final String key;
private final String value; private final String value;

View File

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

View File

@@ -46,14 +46,10 @@ 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; // 적립금유효기간
@@ -94,8 +90,6 @@ 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,9 +40,6 @@ public class BOOrdrShippingVO extends AbstractVO {
/** 받는자휴대폰번호 */ /** 받는자휴대폰번호 */
private String recpntMbtlnb; private String recpntMbtlnb;
/** 배송지역코드 */
private String dlvylcAreaCd;
/** 배송지우편번호 */ /** 배송지우편번호 */
private String dlvylcZip; private String dlvylcZip;

View File

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

View File

@@ -151,12 +151,6 @@ 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,7 +32,6 @@ 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;
@@ -104,8 +103,7 @@ public class BOPayService{
put("ordrInnb", OrderInnb); put("ordrInnb", OrderInnb);
}}; }};
// return mapper.selectRlSetleAmt(paramMap); return mapper.selectRlSetleAmt(paramMap);
return mapper.selectWonRlSetleAmt(paramMap);
} }
/* ============================================================================== */ /* ============================================================================== */
@@ -300,7 +298,7 @@ public class BOPayService{
/** /**
* KCP 결제 * KCP 결제
* @param payVO * @param BOPayVO
*/ */
public Map<String, Object> insertKcpPay(BOPayVO payVO) throws Exception { public Map<String, Object> insertKcpPay(BOPayVO payVO) throws Exception {
@@ -359,7 +357,7 @@ public class BOPayService{
/** /**
* KCP 수기결제 * KCP 수기결제
* @param payVO * @param BOPayVO
*/ */
public Map<String, Object> insertKcpPayKeyin(BOPayVO payVO) throws Exception { public Map<String, Object> insertKcpPayKeyin(BOPayVO payVO) throws Exception {
@@ -432,7 +430,7 @@ public class BOPayService{
/** /**
* KCP 결제 취소 * KCP 결제 취소
* @param payVO * @param BOPayVO
*/ */
public Map<String, Object> cancelKcpPay(BOPayVO payVO) throws Exception { public Map<String, Object> cancelKcpPay(BOPayVO payVO) throws Exception {
Map<String, Object> resParam = new HashMap<>(); Map<String, Object> resParam = new HashMap<>();
@@ -639,7 +637,7 @@ public class BOPayService{
/** /**
* KCP 에스크로 상태변경 : 배송정보전송 * KCP 에스크로 상태변경 : 배송정보전송
* @param payVO * @param BOPayVO
*/ */
public Map<String, Object> updateEscwKcpPay(BOPayVO payVO) throws Exception { public Map<String, Object> updateEscwKcpPay(BOPayVO payVO) throws Exception {
@@ -758,7 +756,7 @@ public class BOPayService{
/** /**
* KCP 현금영수증 발급 * KCP 현금영수증 발급
* @param payVO * @param BOPayVO
*/ */
public Map<String, Object> insertKcpCashReceipt(BOPayVO payVO) throws Exception { public Map<String, Object> insertKcpCashReceipt(BOPayVO payVO) throws Exception {
@@ -819,7 +817,7 @@ public class BOPayService{
/** /**
* KCP 현금영수증 취소 * KCP 현금영수증 취소
* @param payVO * @param BOPayVO
*/ */
public Map<String, Object> cancelKcpCashReceipt(BOPayVO payVO) throws Exception { public Map<String, Object> cancelKcpCashReceipt(BOPayVO payVO) throws Exception {
@@ -869,7 +867,7 @@ public class BOPayService{
/** /**
* KCP 현금영수증 조회 * KCP 현금영수증 조회
* @param payVO * @param BOPayVO
*/ */
public Map<String, Object> selectKcpCashReceipt(BOPayVO payVO) throws Exception { public Map<String, Object> selectKcpCashReceipt(BOPayVO payVO) throws Exception {
@@ -912,7 +910,7 @@ public class BOPayService{
/** /**
* 토스 현금영수증 발급 * 토스 현금영수증 발급
* @param payVO * @param BOPayVO
*/ */
public Map<String, Object> insertTossCashReceipt(BOPayVO payVO) throws Exception { public Map<String, Object> insertTossCashReceipt(BOPayVO payVO) throws Exception {
@@ -952,7 +950,7 @@ public class BOPayService{
/** /**
* 토스 현금영수증 취소 * 토스 현금영수증 취소
* @param payVO * @param BOPayVO
*/ */
public Map<String, Object> cancelTossCashReceipt(BOPayVO payVO) throws Exception { public Map<String, Object> cancelTossCashReceipt(BOPayVO payVO) throws Exception {
@@ -983,7 +981,7 @@ public class BOPayService{
/** /**
* 토스 결제 * 토스 결제
* 일반결제(toss), 토스페이(tossPay), 브랜드페이(brandPay) 같이 들어옴 * 일반결제(toss), 토스페이(tossPay), 브랜드페이(brandPay) 같이 들어옴
* @param payVO * @param BOPayVO
*/ */
public Map<String, Object> insertTossPay(BOPayVO payVO) throws Exception { public Map<String, Object> insertTossPay(BOPayVO payVO) throws Exception {
@@ -1020,7 +1018,7 @@ public class BOPayService{
/** /**
* 토스 수기결제 * 토스 수기결제
* @param payVO * @param BOPayVO
*/ */
public Map<String, Object> insertTossPayKeyin(BOPayVO payVO) throws Exception { public Map<String, Object> insertTossPayKeyin(BOPayVO payVO) throws Exception {
@@ -1059,7 +1057,7 @@ public class BOPayService{
/** /**
* 토스 결제취소 * 토스 결제취소
* @param payVO * @param BOPayVO
*/ */
public Map<String, Object> cancelTossPay(BOPayVO payVO) throws Exception { public Map<String, Object> cancelTossPay(BOPayVO payVO) throws Exception {
@@ -1076,6 +1074,17 @@ public class BOPayService{
obj.put("refundReceiveAccount", refundReceiveAccount); obj.put("refundReceiveAccount", refundReceiveAccount);
} }
/* 취소 호출 시 setModGubun을 하기로 함
String memorSetleAt = StringUtil.isNullToString(payVO.getMemorSetleAt());
if("Y".equals(memorSetleAt)){
payVO.setModGubun("keyIn");
}else if("G".equals(memorSetleAt)){ //이부분에 대한 처리 필요
payVO.setModGubun("brandPay");
}else{
payVO.setModGubun("toss");
}
// easyPay 추가되어야 함
*/
payVO.setType("cancel"); payVO.setType("cancel");
URL url = new URL("https://api.tosspayments.com/v1/payments/" + payVO.getPaymentKey() + "/cancel"); URL url = new URL("https://api.tosspayments.com/v1/payments/" + payVO.getPaymentKey() + "/cancel");
@@ -1266,7 +1275,7 @@ public class BOPayService{
/** /**
* 토스 에스크로 상태변경 : 배송정보전송 * 토스 에스크로 상태변경 : 배송정보전송
* @param payVO * @param BOPayVO
*/ */
public Map<String, Object> updateEscwTossPay(BOPayVO payVO) throws Exception { public Map<String, Object> updateEscwTossPay(BOPayVO payVO) throws Exception {
//관련 키값 DB 조회 //관련 키값 DB 조회
@@ -1322,6 +1331,7 @@ public class BOPayService{
rcvname = payVO.getRcvName(); // 실수령인명 rcvname = payVO.getRcvName(); // 실수령인명
boolean resp = false; //응답결과 boolean resp = false; //응답결과
// mertkey = resultMap.get("tossPublicKey").toString(); //토스페이먼츠에서 발급한 상점키로 변경해 주시기 바랍니다. //TODO : 확인필요
mertkey = payVO.getMertkey(); // 머트키(퍼블릭키) mertkey = payVO.getMertkey(); // 머트키(퍼블릭키)
// mertkey = "9fd0de8489b4dc4af0dc40459958cd70"; //토스페이먼츠에서 발급한 상점키로 변경해 주시기 바랍니다. // mertkey = "9fd0de8489b4dc4af0dc40459958cd70"; //토스페이먼츠에서 발급한 상점키로 변경해 주시기 바랍니다.
@@ -1457,292 +1467,12 @@ public class BOPayService{
} }
/* ============================================================================== */
/* = 여기서 부터 Kiwoom
/* = -------------------------------------------------------------------------- = */
/**
* Kiwoom 결제
* @param payVO
*/
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 targetURL = "";
if(cpId.equals("CTS18056")) {
targetURL = "https://apitest.kiwoompay.co.kr/pay/hash"; //개발서버
}else{
targetURL = "https://api.kiwoompay.co.kr/pay/hash"; //운영서버
}
log.info("insertKiwoomPay targetURL :::{} ",targetURL);
URL goUrl = new URL(targetURL);
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());
}};
}
/**
* 키움 결제취소
* @param payVO
*/
public Map<String, Object> cancelKiwoomPay(BOPayVO payVO) throws Exception {
log.debug("cancelKiwoomPay step1 payVO :::> {}", payVO);
//관련 키값 DB 조회
DataMap resultMap = selectPayLink(payVO.getSopmalCd());
log.debug("cancelKiwoomPay step2 resultMap :::> {}", resultMap);
//요청코드
String authKey = resultMap.get("kcpSecretKey").toString();
String cpId = resultMap.get("kcpMid").toString();
// 개발서버 네이버페이 CPID 관련 적용 취소
// if ("naverpay".equals(payVO.getModGubun())) {
// authKey = resultMap.get("bpaySecretKey").toString();
// cpId = resultMap.get("bpayMid").toString();
// }
String amount = payVO.getCancelAmount(); //취소금액
String trxId = payVO.getTno(); //거래번호
String cancelReason = payVO.getCancelReason(); //취소사유
String payMethod = payVO.getPayMethod(); //취소결제수단
String cancelReq = "Y"; //취소URL 요청여부
//String TAXFREEAMT = nullCheck(request.getParameter("TAXFREEAMT")); //비과세 취소금액
//1차 요청코드
JSONObject obj = new JSONObject();
obj.put("cancelReason", cancelReason); //취소사유
obj.put("cancelAmount", amount); //취소금액 (금액이 없으면 전체취소)
JSONObject jsonObj = new JSONObject();
jsonObj.put("CPID", cpId);
jsonObj.put("PAYMETHOD", payMethod);
jsonObj.put("AMOUNT",amount);
jsonObj.put("CANCELREQ",cancelReq);
jsonObj.put("TRXID",trxId);
jsonObj.put("CANCELREASON",cancelReason);
//jsonObj.put("TAXFREEAMT",TAXFREEAMT);
log.debug("cancelKiwoomPay step3 JSONObject ::: {}", jsonObj.toString());
//로그 저장 셋팅
JSONObject finalJObj = new JSONObject();
DataMap pgApiLogReqVO = new DataMap();
pgApiLogReqVO.put("reqParam", jsonObj.toString());
pgApiLogReqVO.put("ordrInnb", StringUtil.isNullToString(payVO.getOrderId()));
pgApiLogReqVO.put("sopmalCd", StringUtil.isNullToString(payVO.getSopmalCd()));
pgApiLogReqVO.put("pgCmpnyNm", StringUtil.isNullToString(payVO.getPgCmpnyNm()));
pgApiLogReqVO.put("mbrInnb", StringUtil.isNullToString(payVO.getMbrInnb()));
log.debug("cancelKiwoomPay step4 pgApiLogReqVO ::: {}", pgApiLogReqVO);
// ====== step 1. 취소URL 요청 ======
try{
//결제 API URL
String targetURL = "";
if(cpId.equals("CTS18056")) {
targetURL = "https://apitest.kiwoompay.co.kr/pay/ready"; //개발서버
}else{
targetURL = "https://api.kiwoompay.co.kr/pay/ready"; //운영서버
}
log.info("cancelKiwoomPay targetURL :::{} ",targetURL);
URL goUrl = new URL(targetURL);
HttpURLConnection con = (HttpURLConnection) goUrl.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Authorization", authKey);
con.setUseCaches(false);
con.setDoOutput(true);
con.setDoInput(true);
OutputStream os = con.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os));
writer.write("");
os.write((jsonObj.toString()).getBytes("UTF-8"));
writer.flush();
writer.close();
os.close();
con.connect();
//호출 결과 값
int responseCode = con.getResponseCode();
String responseMsg = con.getResponseMessage();
log.debug("cancelKiwoom STEP1 승인전 responseCode ====={}",responseCode);
log.debug("cancelKiwoom STEP1 승인전 responseMsg ====={}",responseMsg);
String token = "";
String returnUrl = "";
//정상 수신 했을경우 (응답코드:200)
if(responseCode == 200){
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine = null;
StringBuffer response1 = new StringBuffer();
while((inputLine = in.readLine()) != null){
response1.append(inputLine);
}
in.close();
//응답 데이터 처리
String responseBody = response1.toString();
JSONObject jObj = (JSONObject)JSONValue.parse(responseBody);
token = jObj.get("TOKEN").toString();
returnUrl = jObj.get("RETURNURL").toString();
log.debug("cancelKiwoom STEP1 승인 responseBody ====={}", responseBody);
log.debug("cancelKiwoom STEP1 승인 TOKEN200 ====={}",token);
log.debug("cancelKiwoom STEP1 승인 URL200 ====={}",returnUrl);
}
con.disconnect();
log.debug("cancelKiwoom STEP1 승인 TOKEN ====={}",token);
log.debug("cancelKiwoom STEP1 승인 URL ====={}",returnUrl);
// ====== step 2. 취소 승인 요청 ======
targetURL = returnUrl;
goUrl = new URL(targetURL);
con = (HttpURLConnection) goUrl.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Authorization", authKey);
con.setRequestProperty("TOKEN", token);//TOKEN
con.setUseCaches(false);
con.setDoOutput(true);
con.setDoInput(true);
os = con.getOutputStream();
writer = new BufferedWriter(new OutputStreamWriter(os));
writer.write("");
os.write((jsonObj.toString()).getBytes("EUC-KR"));
writer.flush();
writer.close();
os.close();
con.connect();
//호출 결과 값
responseCode = con.getResponseCode();
responseMsg = con.getResponseMessage();
//정상 수신 했을경우 (응답코드:200)
if(responseCode == 200){
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
String inputLine = null;
StringBuffer response1 = new StringBuffer();
while((inputLine = in.readLine()) != null){
response1.append(inputLine);
}
in.close();
//응답 데이터 처리
String responseBody = response1.toString();
finalJObj = (JSONObject)JSONValue.parse(responseBody);
}
con.disconnect();
log.debug("Kiwoom 결제취소 jObj::: {}", finalJObj.toString());
pgApiLogReqVO.put("resParam", finalJObj.toString());
}catch(Exception e){
e.printStackTrace();
} finally {
log.debug("cancelKiwoomPay finally pgApiLogReqVO ::: {}", pgApiLogReqVO);
ordrLogService.insertSetleOrderPgLog(payVO, pgApiLogReqVO);
ordrLogService.insertBOPgApiLogReqRegist(pgApiLogReqVO);
}
Map<String, Object> result = new HashMap<>();
result.put("response", finalJObj.toString());
return result;
}
} }

View File

@@ -292,9 +292,6 @@ 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 DataMap selectBOORderRefundAmtSumInqire(BORtngudrefndVO boRtngudrefndVO); public Integer selectBOORderRefundAmtSumInqire(BORtngudrefndVO boRtngudrefndVO);
/** /**

View File

@@ -1,45 +1,52 @@
package com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.service; package com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.service;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.wb.domainserver.domain.gcone.goods.goods.service.BOGoodsService; import com.wb.domainserver.domain.gcone.goods.goods.service.BOGoodsService;
import com.wb.domainserver.domain.gcone.goods.purchs.mapper.BOPurchsMapper; import com.wb.domainserver.domain.gcone.goods.purchs.mapper.BOPurchsMapper;
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.vo.BOOrderLogVO; import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderLogVO;
import com.wb.domainserver.domain.gcone.goods.subsvc.service.BOSubsvcService;
import com.wb.domainserver.domain.gcone.mbr.mlg.service.BOMlgService; import com.wb.domainserver.domain.gcone.mbr.mlg.service.BOMlgService;
import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOCashVO; import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOCashVO;
import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOMlgVO; import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOMlgVO;
import com.wb.domainserver.domain.gcone.ntcn.mssage.service.BOMssageService; import com.wb.domainserver.domain.gcone.ntcn.mssage.service.BOMssageService;
import com.wb.domainserver.domain.gcone.ordr.ordr.mapper.BOOrdrMapper; import com.wb.domainserver.domain.gcone.ordr.ordr.mapper.BOOrdrMapper;
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrDlvyVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrRefundVO; import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrRefundVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrVO;
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;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.mapper.BORtngudrefndMapper;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BOOrderReItemVO; import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BOOrderReItemVO;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORefundSetleVO; import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORefundSetleVO;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndSrchVO;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndVO;
import com.wb.domainserver.domain.gcone.ordr.selngpruf.service.BOSelngprufService; import com.wb.domainserver.domain.gcone.ordr.selngpruf.service.BOSelngprufService;
import com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO; import com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO;
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.promtn.coupon.vo.BODwldCouponVO; import com.wb.domainserver.domain.gcone.promtn.coupon.vo.BODwldCouponVO;
import com.wb.domainserver.domain.gcone.setup.site.mapper.BOSiteMapper; import com.wb.domainserver.domain.gcone.setup.site.mapper.BOSiteMapper;
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.dataaccess.DataMap;
import com.wb.domainserver.util.string.StringUtil; import com.wb.domainserver.util.string.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.mapper.BORtngudrefndMapper;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndSrchVO;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndVO;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.bind.support.WebExchangeBindException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.SimpleDateFormat;
import java.util.*;
/** /**
* *
@@ -79,9 +86,6 @@ public class BORtngudrefndService {
@Autowired @Autowired
private BOOrderService orderService; private BOOrderService orderService;
@Autowired
private BOSubsvcService subsvcService;
@Autowired @Autowired
private BORtngudrefndMapper mapper; private BORtngudrefndMapper mapper;
@@ -245,6 +249,7 @@ public class BORtngudrefndService {
try { try {
if (boRtngudrefndVO.getRefundProcsSttusCd() != null) { if (boRtngudrefndVO.getRefundProcsSttusCd() != null) {
if (boRtngudrefndVO.getReturnCstmrTelnb() != null) { if (boRtngudrefndVO.getReturnCstmrTelnb() != null) {
@@ -273,38 +278,28 @@ 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); // 주문에 환불건 관련 상태 및 수량 업데이트
} }
@@ -318,8 +313,6 @@ 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()) ) { // 상품 받은거 확인하고 돈을 입금하지않았을 경우
@@ -328,8 +321,6 @@ 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()) ) { // 상품 받은거 확인하고
@@ -475,35 +466,21 @@ 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 {
@@ -529,19 +506,16 @@ 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())) { // 구매자 책임
@@ -556,14 +530,12 @@ 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");
} }
@@ -596,23 +568,13 @@ 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;
Integer wonRemMnyAmt = wonSetleAmt - wonOrderRefundAmtSum; log.info("이번 환불 결제건에서 환불할 금액 확인 remMnyAmt : {}", remMnyAmt);
log.info("이번 환불 결제건에서 환불할 금액 확인 refundAmt : {}", refundAmt);
log.info("이번 환불 결제건에서 환불할 금액 확인 remMnyAmt : {}, {}", remMnyAmt, wonRemMnyAmt); log.info("이번 환불 결제건에서 환불할 금액 확인 orderRefundAmtSum : {}", orderRefundAmtSum);
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));
wonCancelAmt = Math.min(wonRefundAmt, wonSetleAmt - (wonOrderRefundAmtSum - wonRefundAmt)); log.info("이번 환불 결제건에서 환불할 금액 확인 cancelAmt : {}", cancelAmt);
log.info("이번 환불 결제건에서 환불할 금액 확인 cancelAmt : {}, {}", cancelAmt, wonCancelAmt);
Integer receiptCancelAmt = cancelAmt; // 현금영수증 취소금액 Integer receiptCancelAmt = cancelAmt; // 현금영수증 취소금액
log.info("이번 환불 결제건에서 환불할 현금영수증 GC 머니 추가 전 금액 확인 receiptCancelAmt : {}", receiptCancelAmt); log.info("이번 환불 결제건에서 환불할 현금영수증 GC 머니 추가 전 금액 확인 receiptCancelAmt : {}", receiptCancelAmt);
@@ -772,7 +734,6 @@ 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())) { // 무통장입금
@@ -827,7 +788,9 @@ public class BORtngudrefndService {
// TODO : // TODO :
} else if ("09".equals(setle.getSetleTyCd())) { } else if ("08".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 : 복합 결제 취소 로직 확인 필요
@@ -839,8 +802,8 @@ public class BORtngudrefndService {
} else { // 일반결제 } else { // 일반결제
// 토스페이 || "naverpay".equals(setle.getPgCmpnyNm()) >> 네이버페이는 토스에서 분리해서 키움으로 이동 // 토스페이
if ("tosspay".equals(setle.getPgCmpnyNm()) || "gcpay".equals(setle.getPgCmpnyNm()) || "toss".equals(setle.getPgCmpnyNm()) || "kakaopay".equals(setle.getPgCmpnyNm())) { if ("tosspay".equals(setle.getPgCmpnyNm()) || "gcpay".equals(setle.getPgCmpnyNm()) || "toss".equals(setle.getPgCmpnyNm()) || "naverpay".equals(setle.getPgCmpnyNm()) || "kakaopay".equals(setle.getPgCmpnyNm())) {
log.debug("toss 취소 진입"); log.debug("toss 취소 진입");
BOPayVO payVO = new BOPayVO(); BOPayVO payVO = new BOPayVO();
payVO.setOrderId(ordrInnb); // 주문 고유번호 payVO.setOrderId(ordrInnb); // 주문 고유번호
@@ -849,9 +812,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(wonCancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 ) payVO.setCancelAmount(String.valueOf(cancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 )
} else if ("02".equals(refundVO.getRefundScopeCd())) { } else if ("02".equals(refundVO.getRefundScopeCd())) {
payVO.setCancelAmount(String.valueOf(wonCancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 ) payVO.setCancelAmount(String.valueOf(cancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 )
} }
payVO.setBank(refundVO.getRefundAcntBnnkCd()); // 환불 은행코드 payVO.setBank(refundVO.getRefundAcntBnnkCd()); // 환불 은행코드
@@ -878,12 +841,10 @@ 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);
@@ -1023,7 +984,7 @@ public class BORtngudrefndService {
payVO.setSetleTyCd(setle.getSetleTyCd()); // 결제 유형 코드 payVO.setSetleTyCd(setle.getSetleTyCd()); // 결제 유형 코드
payVO.setCancelReason(refundVO.getRefundResnCn()); // 취소사유 payVO.setCancelReason(refundVO.getRefundResnCn()); // 취소사유
payVO.setCancelAmount(String.valueOf(wonCancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 ) payVO.setCancelAmount(String.valueOf(cancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 )
payVO.setBank(refundVO.getRefundAcntBnnkCd()); // 계좌 입금 후 취소시 환불은행코드? payVO.setBank(refundVO.getRefundAcntBnnkCd()); // 계좌 입금 후 취소시 환불은행코드?
payVO.setAccountNumber(refundVO.getRefundAcntnb()); // 환불 계좌번호 payVO.setAccountNumber(refundVO.getRefundAcntnb()); // 환불 계좌번호
@@ -1031,8 +992,8 @@ public class BORtngudrefndService {
payVO.setTno(setle.getDelngNb()); // 거래번호 payVO.setTno(setle.getDelngNb()); // 거래번호
payVO.setModType(refundModeType); // 전체 취소, 부분 취소 payVO.setModType(refundModeType); // 전체 취소, 부분 취소
payVO.setModMny(String.valueOf(wonCancelAmt)); // 부분취소 요청 금액 payVO.setModMny(String.valueOf(cancelAmt)); // 부분취소 요청 금액
payVO.setRemMny(String.valueOf(wonRemMnyAmt)); // 부분취소 가능 금액 payVO.setRemMny(String.valueOf(remMnyAmt)); // 부분취소 가능 금액
payVO.setSubModType(sub_mod_type); // 전체 취소, 부분 취소 payVO.setSubModType(sub_mod_type); // 전체 취소, 부분 취소
@@ -1099,58 +1060,6 @@ public class BORtngudrefndService {
} }
// kiwoom
} else if ("kiwoom".equals(setle.getPgCmpnyNm()) || "naverpay".equals(setle.getPgCmpnyNm())) {
log.debug("kiwoom 취소 진입");
BOPayVO payVO = new BOPayVO();
payVO.setOrderId(ordrInnb); // 주문 고유번호
payVO.setSopmalCd(sopmalCd); // 쇼핑몰 코드
payVO.setMId(setle.getSetleMid()); // 결제 MID(상점키)
payVO.setSetleTyCd(setle.getSetleTyCd()); // 결제 유형 코드
payVO.setCancelReason(refundVO.getRefundResnCn()); // 취소사유
payVO.setTno(setle.getDelngNb()); // 거래번호
//부분 취소 처리 경우 승인금액보다 취소요청금액이 적으면 부분 취소 처리
payVO.setCancelAmount(String.valueOf(wonCancelAmt)); // 취소금액
if ("Y".equals(setle.getMemorSetleAt())) {
payVO.setMemorSetleAt("Y");
}
// 개발서버 네이버페이 CPID 구분 적용 취소
// payVO.setModGubun(setle.getPgCmpnyNm()); //결제키 구분용
if ("kiwoom".equals(setle.getPgCmpnyNm())) {
payVO.setPayMethod("CARD");
} else if ("naverpay".equals(setle.getPgCmpnyNm())) {
payVO.setPayMethod("NAVERPAY");
}
log.info("kiwoom api 전달 파라미터 확인 : {}", payVO);
setleCancelResultMessage = payService.cancelKiwoomPay(payVO);
log.info("결제 취소 API 결과 확인 : {}", setleCancelResultMessage);
log.info("결제 취소 API 결과 확인 response : {}", setleCancelResultMessage.get("response"));
String jsonString = (String) setleCancelResultMessage.get("response");
ObjectMapper objectMapper = new ObjectMapper();
responseMap = objectMapper.readValue(jsonString, Map.class);
log.debug("리스펀스 결과 : {}", responseMap);
log.info("리스펀스 결과 값 : {}", responseMap.get("RESULTCODE"));
if ("0000".equals(responseMap.get("RESULTCODE"))) {
// 0000 : 취소성공
log.debug("0000");
message.put("setleStatus", responseMap.get("RESULTCODE"));
message.put("setleMessage", responseMap.get("ERRORMESSAGE"));
} else {
log.debug("1111");
message.put("setleStatus", responseMap.get("RESULTCODE"));
message.put("setleMessage", responseMap.get("ERRORMESSAGE"));
logDtlCn = "잘못된 요청입니다. 관리자에게 문의하세요.";
throw new WnbtRestException("잘못된 요청입니다. 관리자에게 문의하세요.");
}
} }
} }
@@ -1293,7 +1202,6 @@ 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);
@@ -1378,21 +1286,7 @@ public class BORtngudrefndService {
if ("0".equals(message.get("status"))) { if ("0".equals(message.get("status"))) {
// ########################################### 상품 재고 ########################################### // ########################################### 상품 재고 ###########################################
BOOrdrVO ordrVO = new BOOrdrVO(); boGoodsService.updateRefundUsefulInvntryQy(refundVO);
ordrVO.setOrdrInnb(refundVO.getOrdrInnb());
ordrVO.setSopmalCd(refundVO.getSopmalCd());
DataMap ordrDtl = ordrMapper.selectOrdrDtl(ordrVO);
boolean subsvcAt = "Y".equals(ordrDtl.get("subsvcAt"));
// 구독서비스 여부(subsvcAt)에 따라 재고 처리 로직을 분기
if(subsvcAt) {
// 구독서비스
ordrVO.setSubsvcInnb(ordrDtl.get("subsvcInnb").toString());
subsvcService.updateSubsvcRefundUsefulInvntryQy(ordrVO);
} else {
// 일반 주문
boGoodsService.updateRefundUsefulInvntryQy(refundVO);
}
// ########################################### 쿠폰 복원 ########################################### // ########################################### 쿠폰 복원 ###########################################
@@ -1547,21 +1441,7 @@ public class BORtngudrefndService {
// ########################################### 상품 재고 ########################################### // ########################################### 상품 재고 ###########################################
BOOrdrVO boOrdrVO = new BOOrdrVO(); boGoodsService.updateCancelOrderUsefulInvntryQy(ordrVO, ordrVO.getOrdrInnb());
boOrdrVO.setOrdrInnb(ordrVO.getOrdrInnb());
boOrdrVO.setSopmalCd(ordrVO.getSopmalCd());
DataMap ordrDtl = ordrMapper.selectOrdrDtl(boOrdrVO);
boolean subsvcAt = "Y".equals(ordrDtl.get("subsvcAt"));
// 구독서비스 여부(subsvcAt)에 따라 재고 처리 로직을 분기
if(subsvcAt) {
// 구독서비스
boOrdrVO.setSubsvcInnb(ordrDtl.get("subsvcInnb").toString());
subsvcService.updateSubsvcCancelOrderUsefulInvntryQy(boOrdrVO);
} else {
// 일반 주문
boGoodsService.updateCancelOrderUsefulInvntryQy(ordrVO, ordrVO.getOrdrInnb());
}
resotreResult.put("restoreResult", "0"); resotreResult.put("restoreResult", "0");
} catch (Exception e) { } catch (Exception e) {

View File

@@ -23,8 +23,6 @@ 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,71 +25,69 @@ 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)*/
@@ -110,8 +108,6 @@ 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)*/
@@ -148,14 +144,10 @@ 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;
/**상세 내용*/ /**상세 내용*/
@@ -175,11 +167,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;
@@ -197,9 +189,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;
@@ -208,7 +200,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 : {}", (Object) purchsEvtVO.getDeleteBnefList()); log.debug(" 삭제 리스트 확인 purchsEvtVO . get deleteList : {}", 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));
@@ -309,10 +309,24 @@ public class BOPurchsEvtService {
} }
} }
// 사은품 이벤트 // 사은품 이벤트
} else if ("02".equals(purchsEvtVO.getEvtDv())) { } else if ("02".equals(purchsEvtVO.getEvtDv())) {
/*
if (!StringUtils.isEmpty(Arrays.toString(purchsEvtVO.getDeleteGiftList()))) {
log.debug(" 삭제 리스트 확인 purchsEvtVO . get getDeleteGiftList : {}", purchsEvtVO.getDeleteGiftList());
for (String deleteGiftInnb : purchsEvtVO.getDeleteGiftList()) {
log.debug("deleteGiftInnb : {}", deleteGiftInnb);
purchsEvtVO.setDeleteGiftInnb(Integer.parseInt(deleteGiftInnb));
mapper.deleteBOPurchsEvtGiftDel(purchsEvtVO);
}
}
*/
if (!StringUtils.isEmpty(Arrays.toString(purchsEvtVO.getDeleteBnefList()))) { if (!StringUtils.isEmpty(Arrays.toString(purchsEvtVO.getDeleteBnefList()))) {
log.debug(" 삭제 리스트 확인 purchsEvtVO . get deleteList : {}", (Object) purchsEvtVO.getDeleteBnefList()); log.debug(" 삭제 리스트 확인 purchsEvtVO . get deleteList : {}", 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));
@@ -320,6 +334,7 @@ public class BOPurchsEvtService {
} }
} }
if (purchsEvtVO.getDiscountBnefVOList() != null && !purchsEvtVO.getDiscountBnefVOList().isEmpty()) { if (purchsEvtVO.getDiscountBnefVOList() != null && !purchsEvtVO.getDiscountBnefVOList().isEmpty()) {
log.debug("사은품 혜택 진입"); log.debug("사은품 혜택 진입");
for (BOPurchsEvtDiscountBnefVO tempVO : purchsEvtVO.getDiscountBnefVOList()) { for (BOPurchsEvtDiscountBnefVO tempVO : purchsEvtVO.getDiscountBnefVOList()) {

View File

@@ -1,34 +0,0 @@
package com.wb.domainserver.domain.gcone.setup.cost.mapper;
import com.wb.domainserver.domain.gcone.setup.cost.vo.BOCostVO;
import com.wb.domainserver.util.dataaccess.DataMap;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface BOCostMapper {
/**
* 원가 설정 목록 조회
* @param vo
* @return
*/
public List<DataMap> selectBOCostPriceList(BOCostVO vo);
/**
* 원가 설정 삭제
* @param vo
* @return
*/
public int deleteBOCostPrice(BOCostVO vo);
/**
* 원가 설정 추가
* @param dm
* @return
*/
public int insertBOCostPrice(DataMap dm);
}

View File

@@ -1,94 +0,0 @@
package com.wb.domainserver.domain.gcone.setup.cost.service;
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
import com.wb.domainserver.domain.gcone.setup.cost.mapper.BOCostMapper;
import com.wb.domainserver.domain.gcone.setup.cost.vo.BOCostVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.exception.code.ErrorCode;
import com.wb.domainserver.util.dataaccess.DataMap;
import com.wb.domainserver.util.string.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
/**
* 원가 설정 BO Serivce
*
* @author 이대환
* @version 1.0
* @see <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2026-05-29 이대환 최초 생성
*
* </pre>
* @since 2026-05-29
*/
@Slf4j
@Service
public class BOCostService {
@Autowired
private BOMaComncdService bOMaComncdService;
@Autowired
private BOCostMapper mapper;
/**
* 원가 설정 목록 조회
* @param vo
* @return List<DataMap>
*/
public List<DataMap> selectBOCostPriceList(BOCostVO vo) {
List<DataMap> costList = new ArrayList<>();
costList = mapper.selectBOCostPriceList(vo);
return costList;
}
/**
* 원가 설정 수정
* @param vo
*/
@Transactional
public DataMap updateBOCostPriceSetup(BOCostVO vo) {
DataMap message = new DataMap();
try {
mapper.deleteBOCostPrice(vo);
DataMap paramMap = new DataMap();
paramMap.put("regusr", vo.getRegusr());
int[] ctInnbArr = vo.getCtInnbArr();
if (!ObjectUtils.isEmpty(ctInnbArr)) {
for (int i = 0; i < ctInnbArr.length; i++) {
paramMap.put("stdrDe", vo.getStdrDeArr()[i]);
paramMap.put("usdRate", vo.getUsdRateArr()[i]);
paramMap.put("jpDlvyCt", vo.getJpDlvyCtArr()[i]);
paramMap.put("intlDlvyAmt", vo.getIntlDlvyAmtArr()[i]);
paramMap.put("pltfomFee", vo.getPltfomFeeArr()[i]);
paramMap.put("expctTax", vo.getExpctTaxArr()[i]);
paramMap.put("cstmsFee", vo.getCstmsFeeArr()[i]);
paramMap.put("krDlvyCt", vo.getKrDlvyCtArr()[i]);
mapper.insertBOCostPrice(paramMap);
}
}
message.put("result", "success");
} catch (WnbtRestException wre) {
throw new WnbtRestException(wre.getMessage());
} catch (Exception e) {
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
}
return message;
}
}

View File

@@ -1,39 +0,0 @@
package com.wb.domainserver.domain.gcone.setup.cost.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
@Data
@EqualsAndHashCode(callSuper=false)
public class BOCostVO extends AbstractVO {
/** 원가 고유번호 */
private int[] ctInnbArr;
/** 기준일자 */
private String[] stdrDeArr;
/** USD 환율 (1,000 円) */
private BigDecimal[] usdRateArr;
/** 일본 내 물류비 */
private int[] jpDlvyCtArr;
/** 운임비용(JP) */
private int[] intlDlvyAmtArr;
/** 플랫폼 수수료율 */
private BigDecimal[] pltfomFeeArr;
/** 예상세율 */
private BigDecimal[] expctTaxArr;
/** 통관수수료 */
private int[] cstmsFeeArr;
/** 운임비용(KR) */
private int[] krDlvyCtArr;
}

View File

@@ -1,56 +0,0 @@
package com.wb.domainserver.domain.gcone.setup.exchngrt.service;
import com.wb.domainserver.domain.admin.store.sopmal.mapper.BOMaSopmalMapper;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO;
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.exception.code.ErrorCode;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 환율 설정 BO Serivce
*
* @author 이대환
* @version 1.0
* @see <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2026-04-27 이대환 최초 생성
*
* </pre>
* @since 2026-04-27
*/
@Slf4j
@Service
public class BOExchngrtService {
@Autowired
private BOMaComncdService bOMaComncdService;
@Autowired
private BOMaSopmalMapper mapper;
/**
* 환율 설정 수정
* @param boMaSopmalVO
*/
@Transactional
public DataMap updateBOExchngrtSetup(BOMaSopmalVO boMaSopmalVO) {
DataMap message = new DataMap();
try {
mapper.updateBOExchngrtSetup(boMaSopmalVO);
message.put("result", "success");
} catch (WnbtRestException wre) {
throw new WnbtRestException(wre.getMessage());
} catch (Exception e) {
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
}
return message;
}
}

View File

@@ -1,32 +0,0 @@
package com.wb.domainserver.domain.gcone.setup.exchngrt.vo;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper=false)
public class BOExchngrtVO extends AbstractVO {
/** 쇼핑몰 코드 */
private String sopmalCd;
/** 1엔 환율(살때) */
private String buyRate;
/** 1엔 환율(팔때) */
private String sellRate;
/** BOMaSopmalVO로 변환 */
public BOMaSopmalVO setBOMaSopmalVO() {
BOMaSopmalVO boMaSopmalVO = new BOMaSopmalVO();
boMaSopmalVO.setSopmalCd(this.getSopmalCd());
boMaSopmalVO.setBuyRate(this.getBuyRate());
boMaSopmalVO.setSellRate(this.getSellRate());
boMaSopmalVO.setRegusr(this.getRegusr());
boMaSopmalVO.setUpdusr(this.getUpdusr());
return boMaSopmalVO;
}
}

View File

@@ -1,76 +0,0 @@
package com.wb.domainserver.domain.gcone.setup.family.service;
import com.wb.domainserver.domain.admin.store.sopmal.mapper.BOMaSopmalMapper;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO;
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.exception.code.ErrorCode;
import com.wb.domainserver.util.dataaccess.DataMap;
import com.wb.domainserver.util.string.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
/**
* 패밀리사이트 설정 BO Serivce
*
* @author 이대환
* @version 1.0
* @see <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2026-04-27 이대환 최초 생성
*
* </pre>
* @since 2026-04-27
*/
@Slf4j
@Service
public class BOFamilyService {
@Autowired
private BOMaComncdService bOMaComncdService;
@Autowired
private BOMaSopmalMapper mapper;
/**
* 패밀리사이트 설정 수정
* @param boMaSopmalVO
*/
@Transactional
public DataMap updateBOFamilySetup(BOMaSopmalVO boMaSopmalVO) {
DataMap message = new DataMap();
try {
mapper.deteteBOShopFamilySite(boMaSopmalVO);
DataMap paramMap = new DataMap();
paramMap.put("sopmalCd", boMaSopmalVO.getSopmalCd());
paramMap.put("regusr", boMaSopmalVO.getRegusr());
if (!ObjectUtils.isEmpty(boMaSopmalVO.getFamilySiteNmArr())) {
String[] siteNm = boMaSopmalVO.getFamilySiteNmArr();
String[] siteUrl = boMaSopmalVO.getFamilySiteUrlArr();
for (int i = 0; i < siteNm.length; i++) {
if (!StringUtil.isEmpty(siteNm[i])) {
paramMap.put("familySiteNm", siteNm[i]);
paramMap.put("familySiteUrl", siteUrl[i]);
mapper.insertBOShopFamilySite(paramMap);
}
}
}
message.put("result", "success");
} catch (WnbtRestException wre) {
throw new WnbtRestException(wre.getMessage());
} catch (Exception e) {
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
}
return message;
}
}

View File

@@ -1,32 +0,0 @@
package com.wb.domainserver.domain.gcone.setup.family.vo;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper=false)
public class BOFamilyVO extends AbstractVO {
/** 쇼핑몰 코드 */
private String sopmalCd;
/** 패밀리사이트명 */
private String[] familySiteNmArr;
/** 패밀리사이트URL */
private String[] familySiteUrlArr;
/** BOMaSopmalVO로 변환 */
public BOMaSopmalVO setBOMaSopmalVO() {
BOMaSopmalVO boMaSopmalVO = new BOMaSopmalVO();
boMaSopmalVO.setSopmalCd(this.getSopmalCd());
boMaSopmalVO.setFamilySiteNmArr(this.getFamilySiteNmArr());
boMaSopmalVO.setFamilySiteUrlArr(this.getFamilySiteUrlArr());
boMaSopmalVO.setRegusr(this.getRegusr());
boMaSopmalVO.setUpdusr(this.getUpdusr());
return boMaSopmalVO;
}
}

View File

@@ -1,56 +0,0 @@
package com.wb.domainserver.domain.gcone.setup.guidance.service;
import com.wb.domainserver.domain.admin.store.sopmal.mapper.BOMaSopmalMapper;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO;
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.exception.code.ErrorCode;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 안내문구 설정 BO Serivce
*
* @author 이대환
* @version 1.0
* @see <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2026-04-27 이대환 최초 생성
*
* </pre>
* @since 2026-04-27
*/
@Slf4j
@Service
public class BOGuidanceService {
@Autowired
private BOMaComncdService bOMaComncdService;
@Autowired
private BOMaSopmalMapper mapper;
/**
* 안내문구 설정 수정
* @param boMaSopmalVO
*/
@Transactional
public DataMap updateBOGuidanceSetup(BOMaSopmalVO boMaSopmalVO) {
DataMap message = new DataMap();
try {
mapper.updateBOGuidanceSetup(boMaSopmalVO);
message.put("result", "success");
} catch (WnbtRestException wre) {
throw new WnbtRestException(wre.getMessage());
} catch (Exception e) {
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
}
return message;
}
}

View File

@@ -1,44 +0,0 @@
package com.wb.domainserver.domain.gcone.setup.guidance.vo;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper=false)
public class BOGuidanceVO extends AbstractVO {
/** 쇼핑몰 코드 */
private String sopmalCd;
/** 회원가입 안내 타이틀 */
private String joinGuidanceSj;
/** 회원가입 안내문구 */
private String joinGuidanceWords;
/** 회원가입 주요혜택 */
private String joinBnef;
/** 회원가입 주요문구 */
private String joinComptWords;
/** 구독서비스 안내문구 */
private String subsvcGuidanceWords;
/** BOMaSopmalVO로 변환 */
public BOMaSopmalVO setBOMaSopmalVO() {
BOMaSopmalVO boMaSopmalVO = new BOMaSopmalVO();
boMaSopmalVO.setSopmalCd(this.getSopmalCd());
boMaSopmalVO.setJoinGuidanceSj(this.getJoinGuidanceSj());
boMaSopmalVO.setJoinGuidanceWords(this.getJoinGuidanceWords());
boMaSopmalVO.setJoinBnef(this.getJoinBnef());
boMaSopmalVO.setJoinComptWords(this.getJoinComptWords());
boMaSopmalVO.setSubsvcGuidanceWords(this.getSubsvcGuidanceWords());
boMaSopmalVO.setRegusr(this.getRegusr());
boMaSopmalVO.setUpdusr(this.getUpdusr());
return boMaSopmalVO;
}
}

View File

@@ -28,48 +28,28 @@ import lombok.EqualsAndHashCode;
public class BOSetupOrdrVO extends AbstractVO { public class BOSetupOrdrVO extends AbstractVO {
/** 쇼핑몰 코드 */ /** 쇼핑몰 코드 */
private String sopmalCd; private String sopmalCd;
/**마일리지 지급 사용여부*/
// 여러 곳 배송
/** 여러곳배송여부 */
private String multiDlvyAt;
/** 정기배송여부 */
private String fdrmDlvyAt;
// 선물하기
/** 선물하기여부 */
private String giftDlvyAt;
/** 선물하기자동취소기간 */
private String giftDlvyAtmcCanclPd;
// GC 머니
/** 충전형마일리지 사용여부 */
private String cashAt;
// 마일리지 지급
/** 마일리지 지급 사용여부 */
private String mlgPymntAt; private String mlgPymntAt;
/** 마일리지 지급 구분코드 */ /**마일리지 지급 구분코드*/
private String mlgPymntDvCd; private String mlgPymntDvCd;
/** 마일리지 지급 비율 */ /**마일리지 지급 비율*/
private String mlgPymntRt; private String mlgPymntRt;
/** 마일리지 최대 지급 금액 */ /**마일리지 최대 지급 금액*/
private String mlgMxmmPymntAmt; private String mlgMxmmPymntAmt;
/** 마일리지 최대 지급 금액 사용여부 */ /**마일리지 최대 지급 금액 사용여부*/
private String mlgMxmmPymntAmtAt; private String mlgMxmmPymntAmtAt;
/** 마일리지 유효기간 */ /**마일리지 유효기간*/
private String mlgValidPd; private String mlgValidPd;
/** 마일리지 유효기간 사용여부 */ /**마일리지 유효기간 사용여부*/
private String mlgValidPdAt; private String mlgValidPdAt;
/**여러곳배송여부*/
// 마일리지 사용 조건 private String multiDlvyAt;
/** 마일리지 보유 사용 금액 */ /**정기배송여부*/
private String mlgHoldUseAmt; private String fdrmDlvyAt;
/** 마일리지 결제금액 사용 금액 */ /**선물하기여부*/
private String mlgSetleAmtUseAmt; private String giftDlvyAt;
/** 마일리지 최소 사용 금액 */ /**선물하기자동취소기간*/
private String mlgMummUseAmt; private String giftDlvyAtmcCanclPd;
/** 마일리지 최대 사용 구분(MLG_MXMM_USE_DV) */ /*충전형마일리지 사용여부*/
private String mlgMxmmUseDv; private String cashAt;
/** 마일리지 최대 사용 금액 */
private String mlgMxmmUseAmt;
} }

View File

@@ -76,26 +76,16 @@ public class MngrMainController {
// public String selectMngrMainInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, ModelMap model, HttpServletRequest request) { // public String selectMngrMainInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, ModelMap model, HttpServletRequest request) {
public String selectMngrMainInqire(String authSopmalCd, ModelMap model, HttpServletRequest request, HttpServletResponse response ) { public String selectMngrMainInqire(String authSopmalCd, ModelMap model, HttpServletRequest request, HttpServletResponse response ) {
BOBbsVO vo = new BOBbsVO(); BOBbsVO vo = new BOBbsVO();
vo.setSopmalCd(authSopmalCd);
// 작성자 정보 할당 // 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){ if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd()); vo.setSopmalCd(user.getSopmalCd());
} }
// 쇼핑몰코드
vo.setRegusr(user.getUserInnb()); // 등록자 vo.setRegusr(user.getUserInnb()); // 등록자
vo.setUpdusr(user.getUserInnb()); // 수정자 vo.setUpdusr(user.getUserInnb()); // 수정자
// 쇼핑몰코드
if(StringUtil.isEmpty(authSopmalCd)) {
if(request.getCookies()!=null) {
for(Cookie cookie : request.getCookies()){
if("authSopmalCd".equals(cookie.getName())){
authSopmalCd = cookie.getValue();
break;
}
}
}
}
vo.setSopmalCd(authSopmalCd);
DataMap resultMap = new DataMap(); DataMap resultMap = new DataMap();
resultMap = bbsService.selectBOBbscttDshboardInqireForm(vo); resultMap = bbsService.selectBOBbscttDshboardInqireForm(vo);

View File

@@ -677,8 +677,6 @@ public class MngrMbrController {
content.put("sex", sex); content.put("sex", sex);
content.put("grad", grad); content.put("grad", grad);
log.debug("BOMbrSrchVO : {}", vo);
model.addAttribute("resultMap", content); model.addAttribute("resultMap", content);
// responseHandler.handleResponse( // responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/mbr/mbr/selectBOMarketingTrgetSrchPopupForm", vo), // sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/mbr/mbr/selectBOMarketingTrgetSrchPopupForm", vo),

View File

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

View File

@@ -122,11 +122,10 @@ public class MssageController {
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMssagePassivSndngManage") @RequestMapping(value="/selectMssagePassivSndngManage")
public String selectMessagePassivSndngManage(BOMssageVO vo, ModelMap model, public String selectMessagePassivSndngManage(MssageVO 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";
} }
@@ -150,7 +149,6 @@ 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());
@@ -180,7 +178,6 @@ 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());
@@ -191,7 +188,7 @@ public class MssageController {
// "resultMap" // "resultMap"
// ); // );
return "mngr/ntcn/mssage/MssageSndngPopupC"; return "mngr/ntcn/mssage/MssageSndngPopupC";
} }

View File

@@ -38,7 +38,6 @@ import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
@@ -608,24 +607,6 @@ public class DlivyController {
// ); // );
} }
/**
* 배치 > 출고 상태 변경 ( 배송중, 배송완료 )
* @param boDlivyVO
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/updateDlivySttusGetbackBatchUpdt", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateDlivySttusGetbackBatchUpdt(@RequestBody BODlivyVO boDlivyVO) {
Map<String, Object> message = new HashMap<>();
message = service.updateBODlivySttusGetbackUpdt(boDlivyVO);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
}
/** /**
* 다운로드 항목 조회 * 다운로드 항목 조회

View File

@@ -48,10 +48,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import java.io.IOException; import java.io.IOException;
import java.math.BigInteger; import java.math.BigInteger;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
/** /**
@@ -626,138 +622,6 @@ public class OrdrmngrController {
} }
} }
/**
* 발주서 엑셀다운로드
* @param response
* @param ordrSrchVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectExcelPoDwldListInqire")
public void selectPurchOrderExcelList(HttpServletResponse response, BOOrdrSrchVO ordrSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
String secretKey = commonService.selectSecretkey();
ordrSrchVO.setSecretKey(secretKey);
ordrSrchVO.setSopmalCd(authSopmalCd);
//엑셀 항목별 제목에 출력될 내용 설정
LinkedHashMap<String, String> headerMap = new LinkedHashMap<String, String>();
List<String> headerValues = List.of(
"날짜",
"업체코드",
"업체명",
"업체TEL",
"업체주소",
"특별통관업체명",
"특별통관번호",
"주문번호",
"용도구분",
"수취인",
"수취인TEL",
"수취인HP",
"개인통관고유부호",
"우편번호",
"주소",
"나머지주소",
"메모",
"고객 구입사이트",
"무게",
"포장개수",
"HS CODE",
"상거래유형",
"내용물",
"Unit Value",
"상품개수",
"Value",
"Brand",
"사전식품신고 종류",
"제조국",
"제조회사명",
"중문상품명",
"Shipper 구입사이트",
"판매중개업체명",
"판매중개업체 등록부호",
"구매(배송)대행업체명",
"구매(배송)대행업체 등록부호",
"해외판매자명",
"해외판매자 등록부호",
"사이트 주문번호"
);
for (int i = 0; i < headerValues.size(); i++) {
headerMap.put(String.format("item%02d", i + 1), headerValues.get(i));
}
//엑셀 항목에 출력될 내용 설정
List<DataMap> resultList = service.selectExcelListPurchOrder(ordrSrchVO);
List<Map<String, Object>> excelList = new ArrayList<>();
if (resultList != null) {
for (int i = 0; i < resultList.size(); i++) {
HashMap<String, Object> dataMap = new HashMap<>();
// int cellInt = 1; // 셀 타입 = 숫자
List<Object> dataValues = Arrays.asList(
resultList.get(i).get("ordrRceptDt"),
resultList.get(i).get("entrpsCd"),
resultList.get(i).get("entrpsNm"),
resultList.get(i).get("entrpsTel"),
resultList.get(i).get("entrpsAdres"),
resultList.get(i).get("spclCstmclerEntrps"),
resultList.get(i).get("spclCstmclerCd"),
resultList.get(i).get("ordrInnb"),
resultList.get(i).get("purpsDv"),
resultList.get(i).get("recpntNm"),
resultList.get(i).get("recpntMbtlnb"),
resultList.get(i).get("recpntHp"),
resultList.get(i).get("cstmclerCd"),
resultList.get(i).get("dlvylcZip"),
resultList.get(i).get("dlvylcRnmLnbAdres"),
resultList.get(i).get("dlvylcAdresDtl"),
resultList.get(i).get("dlvyMssageCn"),
resultList.get(i).get("cstmrPurchsSite"),
resultList.get(i).get("realWt"),
resultList.get(i).get("packageCnt"),
resultList.get(i).get("hscode"),
resultList.get(i).get("cmmrcTy"),
resultList.get(i).get("cn"),
resultList.get(i).get("unitValue"),
resultList.get(i).get("ordrQy"),
resultList.get(i).get("value"),
resultList.get(i).get("brand"),
resultList.get(i).get("preFoodDcl"),
resultList.get(i).get("provdNation"),
resultList.get(i).get("provdCmpnyNm"),
resultList.get(i).get("chnlngGoodsNm"),
resultList.get(i).get("shipperPurchsSite"),
resultList.get(i).get("sleAgntEntrpsNm"),
resultList.get(i).get("sleAgntEntrpsRegistCd"),
resultList.get(i).get("purchsDlvyAgencyNm"),
resultList.get(i).get("purchsDlvyAgencyRegistCd"),
resultList.get(i).get("ovseaSelerNm"),
resultList.get(i).get("ovseaSelerRegistCd"),
resultList.get(i).get("siteOrdrInnb")
);
for (int j = 0; j < dataValues.size(); j++) {
dataMap.put(String.format("item%02d", j + 1), dataValues.get(j));
}
excelList.add(dataMap);
}
}
/******************************************************************/
try {
//엑셀생성 및 다운로드
LocalDateTime now = LocalDateTime.now();
String excelFileName = "발주서_";
excelFileName += String.format("%s~%s", ordrSrchVO.getSrchStartDate(), ordrSrchVO.getSrchEndDate()); // 엑셀 다운로드 파일명
String encodedFileName = URLEncoder.encode(excelFileName, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20");
ExcelDownloadUtil.createExcel(encodedFileName, headerMap, excelList, response);
} catch (IOException ioe) {
log.error("엑셀다운로드 중 오류가 발생하였습니다.", ioe);
throw new WnbtRestException("엑셀다운로드 중 오류가 발생하였습니다.");
}
}
/** /**
* 주문내역서 팝업 화면 이동 * 주문내역서 팝업 화면 이동
* @param model * @param model

View File

@@ -393,6 +393,14 @@ public class PurchsEvtController {
tempVO.setEndAmt(null); tempVO.setEndAmt(null);
} }
if ("01".equals(purchsEvtVO.getDscntBnefDvCd())) {
tempVO.setBgnAmt("0");
tempVO.setEndAmt("0");
} else if ("02".equals(purchsEvtVO.getDscntBnefDvCd())) {
tempVO.setBgnCnt("0");
tempVO.setEndCnt("0");
}
} }
for (BOPurchsEvtDiscountBnefVO tempVO : purchsEvtVO.getDiscountBnefVOList()) { for (BOPurchsEvtDiscountBnefVO tempVO : purchsEvtVO.getDiscountBnefVOList()) {

View File

@@ -1,103 +0,0 @@
package com.wb.domainserver.domain.mngr.setup.cost;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.gcone.setup.cost.service.BOCostService;
import com.wb.domainserver.domain.gcone.setup.cost.vo.BOCostVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j;
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.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* 원가 설정 Controller
*
* @author 이대환
* @version 1.0
* @see <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2026-05-29 이대환 최초 생성
*
* </pre>
* @since 2026-05-29
*/
@Controller
@RequestMapping("/mngr/setup/cost")
@Slf4j
public class CostController {
/** WebClient 호출을 위한 wrapper */
@Autowired
WnbtWebClientResponseHandler responseHandler;
@Autowired
private SendToResrc sendToResrc;
/** 공통 메시지 처리를 위한 메시지 객체 */
@Autowired
private GconeMessageSource gconeMessageSource;
@Autowired
private BOCostService service;
/**
* 원가 설정 페이지 이동
*
* @param vo
* @return CostPriceUpdtU.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectCostPriceSetup")
public String selectCostPriceSetup(BOCostVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
DataMap content = new DataMap();
content.put("costList", service.selectBOCostPriceList(vo));
model.addAttribute("resultMap", content);
return "mngr/setup/cost/CostPriceUpdtU";
}
/**
* 원가 설정 수정
*
* @param vo
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping(value = "/updateCostPriceSetup", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateCostPriceSetup(@Validated BOCostVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
DataMap message = service.updateBOCostPriceSetup(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
}
}

View File

@@ -1,116 +0,0 @@
package com.wb.domainserver.domain.mngr.setup.exchngrt;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO;
import com.wb.domainserver.domain.gcone.setup.exchngrt.service.BOExchngrtService;
import com.wb.domainserver.domain.gcone.setup.exchngrt.vo.BOExchngrtVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j;
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.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* 환율 설정 Controller
*
* @author 이대환
* @version 1.0
* @see <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2026-04-27 이대환 최초 생성
*
* </pre>
* @since 2026-04-27
*/
@Controller
@RequestMapping("/mngr/setup/exchngrt")
@Slf4j
public class ExchngrtController {
/** WebClient 호출을 위한 wrapper */
@Autowired
WnbtWebClientResponseHandler responseHandler;
@Autowired
private SendToResrc sendToResrc;
/** 공통 메시지 처리를 위한 메시지 객체 */
@Autowired
private GconeMessageSource gconeMessageSource;
@Autowired
private BOExchngrtService service;
@Autowired
private BOMaSopmalService bOMaSopmalService;
/**
* 환율 설정 페이지 이동
*
* @param boMaSopmalVO
* @return NbkkSetupListR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectExchngrtSetup")
public String selectExchngrtSetup(BOMaSopmalVO boMaSopmalVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
DataMap content = new DataMap();
boMaSopmalVO.setSopmalCd(authSopmalCd);
content.put("sopmalDetailList", bOMaSopmalService.selectBOSopmalUpdtForm(boMaSopmalVO));
model.addAttribute("resultMap", content);
return "mngr/setup/exchngrt/ExchngrtUpdtU";
}
/**
* 환율 설정 수정
*
* @param boExchngrtVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping(value = "/updateExchngrtSetup", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateExchngrtSetup(@Validated BOExchngrtVO boExchngrtVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
//등록자 수정자 set
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
boExchngrtVO.setRegusr(user.getUserInnb());
boExchngrtVO.setUpdusr(user.getUserInnb());
boExchngrtVO.setSopmalCd(authSopmalCd);
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
DataMap message = service.updateBOExchngrtSetup(boExchngrtVO.setBOMaSopmalVO());
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
}
}

View File

@@ -1,115 +0,0 @@
package com.wb.domainserver.domain.mngr.setup.family;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO;
import com.wb.domainserver.domain.gcone.setup.family.service.BOFamilyService;
import com.wb.domainserver.domain.gcone.setup.family.vo.BOFamilyVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j;
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.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* 패밀리사이트 설정 Controller
*
* @author 이대환
* @version 1.0
* @see <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2026-04-27 이대환 최초 생성
*
* </pre>
* @since 2026-04-27
*/
@Controller
@RequestMapping("/mngr/setup/family")
@Slf4j
public class FamilyController {
/** WebClient 호출을 위한 wrapper */
@Autowired
WnbtWebClientResponseHandler responseHandler;
@Autowired
private SendToResrc sendToResrc;
/** 공통 메시지 처리를 위한 메시지 객체 */
@Autowired
private GconeMessageSource gconeMessageSource;
@Autowired
private BOFamilyService service;
@Autowired
private BOMaSopmalService bOMaSopmalService;
/**
* 패밀리사이트 설정 페이지 이동
*
* @param boMaSopmalVO
* @return NbkkSetupListR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectFamilySiteSetup")
public String selectFamilySiteSetup(BOMaSopmalVO boMaSopmalVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
DataMap content = new DataMap();
boMaSopmalVO.setSopmalCd(authSopmalCd);
content.put("siteList", bOMaSopmalService.selectBOSopmalUpdtFormSitelList(boMaSopmalVO));
model.addAttribute("resultMap", content);
return "mngr/setup/family/FamilySiteUpdtU";
}
/**
* 패밀리사이트 설정 수정
*
* @param boFamilyVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping(value = "/updateFamilySiteSetup", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateNbkkSetup(@Validated BOFamilyVO boFamilyVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
//등록자 수정자 set
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
boFamilyVO.setRegusr(user.getUserInnb());
boFamilyVO.setUpdusr(user.getUserInnb());
boFamilyVO.setSopmalCd(authSopmalCd);
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
DataMap message = service.updateBOFamilySetup(boFamilyVO.setBOMaSopmalVO());
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
}
}

View File

@@ -1,117 +0,0 @@
package com.wb.domainserver.domain.mngr.setup.guidance;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO;
import com.wb.domainserver.domain.gcone.setup.guidance.service.BOGuidanceService;
import com.wb.domainserver.domain.gcone.setup.guidance.vo.BOGuidanceVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j;
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.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* 안내문구 설정 Controller
*
* @author 이대환
* @version 1.0
* @see <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2026-04-27 이대환 최초 생성
*
* </pre>
* @since 2026-04-27
*/
@Controller
@RequestMapping("/mngr/setup/guidance")
@Slf4j
public class GuidanceController {
/** WebClient 호출을 위한 wrapper */
@Autowired
WnbtWebClientResponseHandler responseHandler;
@Autowired
private SendToResrc sendToResrc;
/** 공통 메시지 처리를 위한 메시지 객체 */
@Autowired
private GconeMessageSource gconeMessageSource;
@Autowired
private BOGuidanceService service;
@Autowired
private BOMaSopmalService bOMaSopmalService;
/**
* 안내문구 설정 페이지 이동
*
* @param boMaSopmalVO
* @return NbkkSetupListR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectGuidanceSetup")
public String selectNbkkSetupList(BOMaSopmalVO boMaSopmalVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
DataMap content = new DataMap();
boMaSopmalVO.setSopmalCd(authSopmalCd);
content.put("sopmalDetailList", bOMaSopmalService.selectBOSopmalUpdtForm(boMaSopmalVO));
model.addAttribute("resultMap", content);
model.addAttribute("sopmalCd", authSopmalCd);
return "mngr/setup/guidance/GuidanceUpdtU";
}
/**
* 안내문구 설정 수정
*
* @param boGuidanceVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping(value = "/updateGuidanceSetup", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateGuidanceSetup(@Validated BOGuidanceVO boGuidanceVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
//등록자 수정자 set
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
boGuidanceVO.setRegusr(user.getUserInnb());
boGuidanceVO.setUpdusr(user.getUserInnb());
boGuidanceVO.setSopmalCd(authSopmalCd);
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
DataMap message = service.updateBOGuidanceSetup(boGuidanceVO.setBOMaSopmalVO());
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
}
}

View File

@@ -1,8 +1,6 @@
package com.wb.domainserver.domain.mngr.setup.ordr.controller; package com.wb.domainserver.domain.mngr.setup.ordr.controller;
import com.wb.domainserver.common.msg.GconeMessageSource; import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO;
import com.wb.domainserver.domain.gcone.setup.ordrmngr.service.BOOrdrMngrService; import com.wb.domainserver.domain.gcone.setup.ordrmngr.service.BOOrdrMngrService;
import com.wb.domainserver.domain.gcone.setup.ordrmngr.vo.BOSetupOrdrVO; import com.wb.domainserver.domain.gcone.setup.ordrmngr.vo.BOSetupOrdrVO;
import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.exception.WnbtRestException;
@@ -15,7 +13,6 @@ 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.SendToResrc; import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter; import com.wb.domainserver.util.communicate.ValidateResultConverter;
import com.wb.domainserver.util.dataaccess.DataMap;
import com.wb.domainserver.util.string.StringUtil; import com.wb.domainserver.util.string.StringUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -66,8 +63,6 @@ public class SetupOrdrController {
@Autowired @Autowired
private BOOrdrMngrService service; private BOOrdrMngrService service;
@Autowired
private BOMaSopmalService bOMaSopmalService;
/** /**
@@ -78,14 +73,15 @@ public class SetupOrdrController {
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectOrdrSetupList") @RequestMapping(value="/selectOrdrSetupList")
public String selectOrdrSetupList(ModelMap model, BOSetupOrdrVO boOrdrVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { public String selectOrdrSetupList(ModelMap model, BOSetupOrdrVO boOrdrVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
DataMap content = new DataMap();
boOrdrVO.setSopmalCd(authSopmalCd); boOrdrVO.setSopmalCd(authSopmalCd);
content.put("ordrSetupList", service.selectBOOrdrSetupList(boOrdrVO));
BOMaSopmalVO boMaSopmalVO = new BOMaSopmalVO(); AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
boMaSopmalVO.setSopmalCd(authSopmalCd); if("01".equals(user.getSysDvCd())){
content.put("sopmalDetailList", bOMaSopmalService.selectBOSopmalUpdtForm(boMaSopmalVO)); boOrdrVO.setSopmalCd(user.getSopmalCd());
}
Map<String, Object> content = service.selectBOOrdrSetupList(boOrdrVO);
model.addAttribute("resultMap", content); model.addAttribute("resultMap", content);
// responseHandler.handleResponse( // responseHandler.handleResponse(
@@ -158,19 +154,6 @@ public class SetupOrdrController {
vo.setMlgMxmmPymntAmt(null); vo.setMlgMxmmPymntAmt(null);
} }
//마일리지 사용 조건 파라미터 정제
if(!StringUtil.isEmpty(vo.getMlgHoldUseAmt()))
vo.setMlgHoldUseAmt(StringUtil.removeCommaChar(vo.getMlgHoldUseAmt()));
if(!StringUtil.isEmpty(vo.getMlgSetleAmtUseAmt()))
vo.setMlgSetleAmtUseAmt(StringUtil.removeCommaChar(vo.getMlgSetleAmtUseAmt()));
if(!StringUtil.isEmpty(vo.getMlgMummUseAmt()))
vo.setMlgMummUseAmt(StringUtil.removeCommaChar(vo.getMlgMummUseAmt()));
if(!StringUtil.isEmpty(vo.getMlgMxmmUseAmt()))
vo.setMlgMxmmUseAmt(StringUtil.removeCommaChar(vo.getMlgMxmmUseAmt()));
//등록자 수정자 set //등록자 수정자 set
AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){ if("01".equals(user.getSysDvCd())){

View File

@@ -21,7 +21,6 @@ import com.wb.domainserver.domain.gcone.setup.dlvygrp.service.BODlvygrpService;
import com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO; import com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO;
import com.wb.domainserver.domain.gcone.setup.ordrmngr.service.BOOrdrMngrService; import com.wb.domainserver.domain.gcone.setup.ordrmngr.service.BOOrdrMngrService;
import com.wb.domainserver.domain.gcone.setup.ordrmngr.vo.BOSetupOrdrVO; import com.wb.domainserver.domain.gcone.setup.ordrmngr.vo.BOSetupOrdrVO;
import com.wb.domainserver.realm.util.UrlExtractor;
import com.wb.domainserver.response.ApiResponse; 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;
@@ -211,42 +210,6 @@ public class GoodsController {
return Util.getDeviceType(request)+"/goods/GoodsSrchR"; return Util.getDeviceType(request)+"/goods/GoodsSrchR";
} }
/**
* 검색어 로그 저장
* @param vo
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/insertSrchwrdLog", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> insertSrchwrdLog(HttpServletRequest request, BOGoodsVO vo) {
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
vo.setMbrInnb(String.valueOf(user.getUserInnb()));
}
//요청 URL
String url = request.getRequestURI();
vo.setConectUrl(url);
//host 정보
String host = request.getHeader("X-Original-Host") != null ? request.getHeader("X-Original-Host") : UrlExtractor.getOriginalHost(request);
vo.setConectDomn(host);
DataMap message = service.insertBOSrchwrdLog(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOSrchGoodsNm", vo),
// ReplyFromResrc::getReply
// );
}
/** /**
* 상품명 검색어 조회 * 상품명 검색어 조회
* @param vo * @param vo

View File

@@ -1015,14 +1015,4 @@ public class MainController {
); );
} }
/**
* 연령확인 팝업
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/sopmal/main/selectAgeChkPopup", produces = MediaType.APPLICATION_JSON_VALUE)
public String selectAgeChkPopup(HttpServletRequest request) {
return Util.getDeviceType(request)+"/main/AgeChkPopupR";
}
} }

View File

@@ -48,22 +48,22 @@ import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* MyActController Class (back) * MyActController Class (back)
* *
* @author 홍길동 * @author 홍길동
* @since 2024-02-05 * @since 2024-02-05
* @version 1.0 * @version 1.0
* @see * @see
* *
* <pre> * <pre>
* == (Modification Information) == 개정이력 * == (Modification Information) == 개정이력
* *
* 수정일 수정자 수정내용 * 수정일 수정자 수정내용
* ------- -------- --------------------------- * ------- -------- ---------------------------
* 2024-03-05 김혜인 최초 생성 * 2024-03-05 김혜인 최초 생성
* *
* </pre> * </pre>
*/ */
@Controller @Controller
@RequestMapping("/sopmal/mpage/act") @RequestMapping("/sopmal/mpage/act")
@@ -72,7 +72,7 @@ public class MyActController {
/** WebClient 호출을 위한 wrapper */ /** WebClient 호출을 위한 wrapper */
@Autowired @Autowired
private WnbtWebClientResponseHandler responseHandler; private WnbtWebClientResponseHandler responseHandler;
@Autowired @Autowired
private SendToResrc sendToResrc; private SendToResrc sendToResrc;
/** 공통 메시지 처리를 위한 메시지 객체 */ /** 공통 메시지 처리를 위한 메시지 객체 */
@@ -102,10 +102,10 @@ public class MyActController {
/** /**
* 상품 Q&A 조회 * 상품 Q&A 조회
* @param bbsctt * @param bbsctt
* @return String * @return String
*/ */
@Policy(AuthPolicy.PUBLIC) @Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectGoodsQnaInqire") @RequestMapping(value="/selectGoodsQnaInqire")
public String selectGoodsQnaInqire(HttpServletRequest request, ModelMap model, BOGnrlbbscttVO bbsctt, BOMbrVO vo){ public String selectGoodsQnaInqire(HttpServletRequest request, ModelMap model, BOGnrlbbscttVO bbsctt, BOMbrVO vo){
@@ -115,127 +115,35 @@ public class MyActController {
DataMap content = selectBOBbscttListInqire(bbsctt); DataMap content = selectBOBbscttListInqire(bbsctt);
model.addAttribute("resultMap", content); model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
// model,
// "resultMap"
// );
Map<String, Object> content2 = selectBOMpageInfoInqire(vo); Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
model.addAttribute("mpageResultMap", content2); model.addAttribute("mpageResultMap", content2);
// responseHandler.handleResponse(
return Util.getDeviceType(request)+"/mpage/act/MyGoodsQaR"; // sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
// model,
// "mpageResultMap"
// );
return Util.getDeviceType(request)+"/mpage/act/MyGoodsQaR";
} }
/**
/** * 상품 Q&A ajax 조회
* 일반문의 조회 * @param bbsctt
* @param bbsctt * @return String
* @return String */
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectNormalQnaInqire")
public String selectNormalQnaInqire(HttpServletRequest request, ModelMap model, BOGnrlbbscttVO bbsctt, BOMbrVO vo){
bbsctt.setBbsTyCd("01");
bbsctt.setServerDv("sopmal");
bbsctt.setReqUrl("mpage");
DataMap content = selectBOBbscttListInqire(bbsctt);
model.addAttribute("resultMap", content);
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
model.addAttribute("mpageResultMap", content2);
return Util.getDeviceType(request)+"/mpage/act/MyNormalQaR";
}
/**
* 일반문의 수정 폼 이동
* @param bbsctt
* @return String
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectNormalQnaDtlUpdtForm")
public String selectNormalQnaDtlUpdtForm(HttpServletRequest request, ModelMap model,BOGnrlbbscttVO bbsctt, BOMbrVO vo){
bbsctt.setServerDv("sopmal");
bbsctt.setBbsTyCd("01");
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
bbsctt.setSopmalCd(user.getSopmalCd());
}
;
if (user.getUserInnb() > 0) {
if ("mngr".equals(bbsctt.getServerDv())) {
bbsctt.setRegusrDvCd("02"); //관리자
} else {
bbsctt.setRegusrDvCd("01"); //회원
bbsctt.setAnswMbtlnb(user.getMbtlnb());
}
} else {
bbsctt.setRegusrDvCd("99");//비회원
}
bbsctt.setSecretKey(boCommonService.selectSecretkey());
BOBbsVO bbsVO = new BOBbsVO();
bbsVO.setSopmalCd(bbsctt.getSopmalCd());
bbsVO.setBbsId(bbsctt.getBbsId());
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
DataMap bbsInfo = new DataMap();
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
Map<String, Object> bbscttInfo = new HashMap<String, Object>();
bbscttInfo = service.selectBOBbscttUpdt(bbsctt);
List<DataMap> itmList = new ArrayList<>();
itmList = service.selectBOBbscttItmInqire(bbsctt);
Map<String, Object> qesitmList = new HashMap<String, Object>();
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
rvwQesitmList = service.selectBOStarItm(bbsctt);
Map<String, Object> content = new HashMap<String, Object>();
content.put("bbsInfo", bbsInfo);
content.put("bbscttVO", bbsctt);
content.put("bbscttInfo", bbscttInfo);
content.put("itmList", itmList);
content.put("qesitmList", qesitmList);
content.put("rvwQesitmList", rvwQesitmList);
model.addAttribute("resultMap", content);
model.addAttribute("bbsctt", bbsctt);
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
model.addAttribute("mpageResultMap", content2);
return Util.getDeviceType(request)+"/mpage/act/MyNormalQnaDtlUpdtU";
}
/**
* 일반문의 ajax 조회
* @param bbsctt
* @return String
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectNormalQnaInqireAjax", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> selectNormalQnaInqireAjax(BOGnrlbbscttVO bbsctt){
bbsctt.setBbsTyCd("01");
bbsctt.setServerDv("sopmal");
bbsctt.setReqUrl("mpage");
DataMap content = selectBOBbscttListInqire(bbsctt);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
}
/**
* 상품 Q&A ajax 조회
* @param bbsctt
* @return String
*/
@Policy(AuthPolicy.PUBLIC) @Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectGoodsQnaInqireAjax", produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value="/selectGoodsQnaInqireAjax", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> selectGoodsQnaInqireAjax(BOGnrlbbscttVO bbsctt){ public ResponseEntity<?> selectGoodsQnaInqireAjax(BOGnrlbbscttVO bbsctt){
bbsctt.setBbsTyCd("05"); bbsctt.setBbsTyCd("05");
bbsctt.setServerDv("sopmal"); bbsctt.setServerDv("sopmal");
bbsctt.setReqUrl("mpage"); bbsctt.setReqUrl("mpage");
//게시글 노출 항목 설정값과 게시판 목록 조회
DataMap content = selectBOBbscttListInqire(bbsctt); DataMap content = selectBOBbscttListInqire(bbsctt);
return ResponseEntity.ok( return ResponseEntity.ok(
@@ -243,6 +151,10 @@ public class MyActController {
.resBody(new WnbtResponseBody(content)) .resBody(new WnbtResponseBody(content))
.build() .build()
); );
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
// ReplyFromResrc::getReply
// );
} }
/** /**
@@ -266,8 +178,12 @@ public class MyActController {
.resBody(new WnbtResponseBody(content)) .resBody(new WnbtResponseBody(content))
.build() .build()
); );
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOFileInfo",bbsctt),
// ReplyFromResrc::getReply
// );
} }
/** /**
* 상품 Q&A 수정 폼 이동 * 상품 Q&A 수정 폼 이동
* @param bbsctt * @param bbsctt
@@ -293,22 +209,28 @@ public class MyActController {
bbsctt.setRegusrDvCd("99");//비회원 bbsctt.setRegusrDvCd("99");//비회원
} }
bbsctt.setSecretKey(boCommonService.selectSecretkey()); bbsctt.setSecretKey(boCommonService.selectSecretkey());
// 게시판 설정 정보
BOBbsVO bbsVO = new BOBbsVO(); BOBbsVO bbsVO = new BOBbsVO();
// bbsVO에 쇼핑몰코드, 해당 게시판 set
bbsVO.setSopmalCd(bbsctt.getSopmalCd()); bbsVO.setSopmalCd(bbsctt.getSopmalCd());
bbsVO.setBbsId(bbsctt.getBbsId()); bbsVO.setBbsId(bbsctt.getBbsId());
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd()); bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
DataMap bbsInfo = new DataMap(); DataMap bbsInfo = new DataMap();
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO); bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
// 게시글 상세 조회
Map<String, Object> bbscttInfo = new HashMap<String, Object>(); Map<String, Object> bbscttInfo = new HashMap<String, Object>();
bbscttInfo = service.selectBOBbscttUpdt(bbsctt); bbscttInfo = service.selectBOBbscttUpdt(bbsctt);
// 분류 조회
List<DataMap> itmList = new ArrayList<>(); List<DataMap> itmList = new ArrayList<>();
itmList = service.selectBOBbscttItmInqire(bbsctt); itmList = service.selectBOBbscttItmInqire(bbsctt);
//추가 항목 조회, 추가항목 항목 조회
Map<String, Object> qesitmList = new HashMap<String, Object>(); Map<String, Object> qesitmList = new HashMap<String, Object>();
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt); qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
//리뷰항목 리스트, 리뷰항목 항목 리스트
Map<String, Object> rvwQesitmList = new HashMap<String, Object>(); Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
rvwQesitmList = service.selectBOStarItm(bbsctt); rvwQesitmList = service.selectBOStarItm(bbsctt);
@@ -321,14 +243,24 @@ public class MyActController {
content.put("rvwQesitmList", rvwQesitmList); content.put("rvwQesitmList", rvwQesitmList);
model.addAttribute("resultMap", content); model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttUpdtPopupForm",bbsctt),
// model,
// "resultMap"
// );
model.addAttribute("bbsctt", bbsctt); model.addAttribute("bbsctt", bbsctt);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
Map<String, Object> content2 = selectBOMpageInfoInqire(vo); Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
model.addAttribute("mpageResultMap", content2); model.addAttribute("mpageResultMap", content2);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
// model,
// "mpageResultMap"
// );
return Util.getDeviceType(request)+"/mpage/act/MyGoodsQnaDtlUpdtU"; return Util.getDeviceType(request)+"/mpage/act/MyGoodsQnaDtlUpdtU";
} }
/** /**
* 1:1 문의 조회 * 1:1 문의 조회
* @param bbsctt * @param bbsctt
@@ -343,13 +275,23 @@ public class MyActController {
DataMap content = selectBOBbscttListInqire(bbsctt); DataMap content = selectBOBbscttListInqire(bbsctt);
model.addAttribute("resultMap", content); model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
// model,
// "resultMap"
// );
Map<String, Object> content2 = selectBOMpageInfoInqire(vo); Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
model.addAttribute("mpageResultMap", content2); model.addAttribute("mpageResultMap", content2);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
// model,
// "mpageResultMap"
// );
return Util.getDeviceType(request)+"/mpage/act/MyM2mQaR"; return Util.getDeviceType(request)+"/mpage/act/MyM2mQaR";
} }
/** /**
* 1:1 문의 ajax 조회 * 1:1 문의 ajax 조회
* @param bbsctt * @param bbsctt
@@ -361,6 +303,7 @@ public class MyActController {
bbsctt.setBbsTyCd("12"); bbsctt.setBbsTyCd("12");
bbsctt.setServerDv("sopmal"); bbsctt.setServerDv("sopmal");
bbsctt.setReqUrl("mpage"); bbsctt.setReqUrl("mpage");
//게시글 노출 항목 설정값과 게시판 목록 조회
DataMap content = selectBOBbscttListInqire(bbsctt); DataMap content = selectBOBbscttListInqire(bbsctt);
return ResponseEntity.ok( return ResponseEntity.ok(
@@ -368,6 +311,10 @@ public class MyActController {
.resBody(new WnbtResponseBody(content)) .resBody(new WnbtResponseBody(content))
.build() .build()
); );
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
// ReplyFromResrc::getReply
// );
} }
/** /**
@@ -396,22 +343,28 @@ public class MyActController {
bbsctt.setRegusrDvCd("99");//비회원 bbsctt.setRegusrDvCd("99");//비회원
} }
bbsctt.setSecretKey(boCommonService.selectSecretkey()); bbsctt.setSecretKey(boCommonService.selectSecretkey());
// 게시판 설정 정보
BOBbsVO bbsVO = new BOBbsVO(); BOBbsVO bbsVO = new BOBbsVO();
// bbsVO에 쇼핑몰코드, 해당 게시판 set
bbsVO.setSopmalCd(bbsctt.getSopmalCd()); bbsVO.setSopmalCd(bbsctt.getSopmalCd());
bbsVO.setBbsId(bbsctt.getBbsId()); bbsVO.setBbsId(bbsctt.getBbsId());
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd()); bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
DataMap bbsInfo = new DataMap(); DataMap bbsInfo = new DataMap();
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO); bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
// 게시글 상세 조회
Map<String, Object> bbscttInfo = new HashMap<String, Object>(); Map<String, Object> bbscttInfo = new HashMap<String, Object>();
bbscttInfo = service.selectBOBbscttUpdt(bbsctt); bbscttInfo = service.selectBOBbscttUpdt(bbsctt);
// 분류 조회
List<DataMap> itmList = new ArrayList<>(); List<DataMap> itmList = new ArrayList<>();
itmList = service.selectBOBbscttItmInqire(bbsctt); itmList = service.selectBOBbscttItmInqire(bbsctt);
//추가 항목 조회, 추가항목 항목 조회
Map<String, Object> qesitmList = new HashMap<String, Object>(); Map<String, Object> qesitmList = new HashMap<String, Object>();
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt); qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
//리뷰항목 리스트, 리뷰항목 항목 리스트
Map<String, Object> rvwQesitmList = new HashMap<String, Object>(); Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
rvwQesitmList = service.selectBOStarItm(bbsctt); rvwQesitmList = service.selectBOStarItm(bbsctt);
@@ -424,10 +377,21 @@ public class MyActController {
content.put("rvwQesitmList", rvwQesitmList); content.put("rvwQesitmList", rvwQesitmList);
model.addAttribute("resultMap", content); model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttUpdtPopupForm",bbsctt),
// model,
// "resultMap"
// );
model.addAttribute("bbsctt", bbsctt); model.addAttribute("bbsctt", bbsctt);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
Map<String, Object> content2 = selectBOMpageInfoInqire(vo); Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
model.addAttribute("mpageResultMap", content2); model.addAttribute("mpageResultMap", content2);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
// model,
// "mpageResultMap"
// );
return Util.getDeviceType(request)+"/mpage/act/MyM2mQnaDtlUpdtU"; return Util.getDeviceType(request)+"/mpage/act/MyM2mQnaDtlUpdtU";
} }
@@ -443,17 +407,28 @@ public class MyActController {
AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
bbsctt.setSopmalCd(user.getSopmalCd()); bbsctt.setSopmalCd(user.getSopmalCd());
/*리뷰 조회 폼*/
DataMap rvwBnefInfo = new DataMap(); DataMap rvwBnefInfo = new DataMap();
rvwBnefInfo = service.selectBORvwBnefInfo(bbsctt); rvwBnefInfo = service.selectBORvwBnefInfo(bbsctt);
model.addAttribute("mlgAccmlNtc", rvwBnefInfo); model.addAttribute("mlgAccmlNtc", rvwBnefInfo);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBORvwBnefInfo",bbsctt),
// model,
// "mlgAccmlNtc"
// );
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
Map<String, Object> content2 = selectBOMpageInfoInqire(vo); Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
model.addAttribute("mpageResultMap", content2); model.addAttribute("mpageResultMap", content2);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
// model,
// "mpageResultMap"
// );
model.addAttribute("vo",bbsctt); model.addAttribute("vo",bbsctt);
return Util.getDeviceType(request)+"/mpage/act/MyRvwRForm"; return Util.getDeviceType(request)+"/mpage/act/MyRvwRForm";
} }
/** /**
* 나의 리뷰 조회 작성 가능한 리뷰 * 나의 리뷰 조회 작성 가능한 리뷰
* @param rvwVO * @param rvwVO
@@ -467,9 +442,13 @@ public class MyActController {
Map<String, Object> content = selectBOWritPosblRvw(rvwVO); Map<String, Object> content = selectBOWritPosblRvw(rvwVO);
model.addAttribute("resultMap", content); model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOWritPosblRvw",rvwVO),
// model,
// "resultMap"
// );
return Util.getDeviceType(request)+"/mpage/act/WritngPosblRvwR"; return Util.getDeviceType(request)+"/mpage/act/WritngPosblRvwR";
} }
/** /**
* 나의 리뷰 조회 작성 가능한 리뷰 ajax(인피니트스크롤) * 나의 리뷰 조회 작성 가능한 리뷰 ajax(인피니트스크롤)
* @param rvwVO * @param rvwVO
@@ -487,6 +466,10 @@ public class MyActController {
.resBody(new WnbtResponseBody(content)) .resBody(new WnbtResponseBody(content))
.build() .build()
); );
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOWritPosblRvw",rvwVO),
// ReplyFromResrc::getReply
// );
} }
/** /**
@@ -503,6 +486,11 @@ public class MyActController {
DataMap content = selectBOMyRvwListInqire(rvwVO); DataMap content = selectBOMyRvwListInqire(rvwVO);
model.addAttribute("resultMap", content); model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMyRvwListInqire",rvwVO),
// model,
// "resultMap"
// );
return Util.getDeviceType(request)+"/mpage/act/MyRvwR"; return Util.getDeviceType(request)+"/mpage/act/MyRvwR";
} }
@@ -524,6 +512,10 @@ public class MyActController {
.resBody(new WnbtResponseBody(content)) .resBody(new WnbtResponseBody(content))
.build() .build()
); );
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMyRvwListInqire",rvwVO),
// ReplyFromResrc::getReply
// );
} }
/** /**
@@ -536,9 +528,15 @@ public class MyActController {
public String selectRvwWritngPopupForm(HttpServletRequest request, ModelMap model, BOGnrlbbscttVO rvwVO){ public String selectRvwWritngPopupForm(HttpServletRequest request, ModelMap model, BOGnrlbbscttVO rvwVO){
rvwVO.setRvwBbscttDv("rvw"); rvwVO.setRvwBbscttDv("rvw");
rvwVO.setServerDv("sopmal"); rvwVO.setServerDv("sopmal");
//리뷰 등록 가능 여부 true시 등록폼 호출
Map<String, Object> content = selectBOBbscttRegistPopupForm(rvwVO); Map<String, Object> content = selectBOBbscttRegistPopupForm(rvwVO);
model.addAttribute("resultMap", content); model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttRegistPopupForm",rvwVO),
// model,
// "resultMap"
// );
return Util.getDeviceType(request)+"/mpage/act/RvwWritngPopupC"; return Util.getDeviceType(request)+"/mpage/act/RvwWritngPopupC";
} }
@@ -558,24 +556,30 @@ public class MyActController {
bbsctt.setSopmalCd(user.getSopmalCd()); bbsctt.setSopmalCd(user.getSopmalCd());
} }
if (user.getUserInnb() > 0) { // 작성자 정보 추출
if (user.getUserInnb() > 0) { //회원 , 관리자
bbsctt.setUpdusr(user.getUserInnb()); bbsctt.setUpdusr(user.getUserInnb());
} else { } else { // 비회원
bbsctt.setUpdusr(0); bbsctt.setUpdusr(0);
} }
Map<String, Object> content = new HashMap<>(); Map<String, Object> content = new HashMap<>();
/*게시글 삭제*/
DataMap bbscttDelResult = service.updateBOBbscttDel(bbsctt); DataMap bbscttDelResult = service.updateBOBbscttDel(bbsctt);
content.put("result", bbscttDelResult); content.put("result", bbscttDelResult);
/*삭제 성공 시*/
if ("success".equals(bbscttDelResult.get("result"))) { if ("success".equals(bbscttDelResult.get("result"))) {
//리뷰 관련 처리
if ("06".equals(bbsctt.getBbsTyCd()) || "07".equals(bbsctt.getBbsTyCd())) { if ("06".equals(bbsctt.getBbsTyCd()) || "07".equals(bbsctt.getBbsTyCd())) {
if (!CollectionUtils.isEmpty(bbsctt.getDelInfoArr())) { if (!CollectionUtils.isEmpty(bbsctt.getDelInfoArr())) {
/*해당 정보로 마일리지 금액 조회하기*/
List<Object> accmlmnyAmtInfoArr = new ArrayList<>(); List<Object> accmlmnyAmtInfoArr = new ArrayList<>();
BOMlgVO mlgVo = new BOMlgVO(); BOMlgVO mlgVo = new BOMlgVO();
for (BODelInfoVO delInfo : bbsctt.getDelInfoArr()) { for (BODelInfoVO delInfo : bbsctt.getDelInfoArr()) {
if ("01".equals(delInfo.getRegusrDvCd())) { if ("01".equals(delInfo.getRegusrDvCd())) {
if ("03".equals(user.getSysDvCd())) { if ("03".equals(user.getSysDvCd())) { //관리자 삭제시 마일리지 회수
/*공통 파라미터*/
mlgVo.setMbrInnb(String.valueOf(delInfo.getRegusr())); mlgVo.setMbrInnb(String.valueOf(delInfo.getRegusr()));
mlgVo.setMbrDvCd(delInfo.getMbrDvCd()); mlgVo.setMbrDvCd(delInfo.getMbrDvCd());
mlgVo.setSopmalCd(bbsctt.getSopmalCd()); mlgVo.setSopmalCd(bbsctt.getSopmalCd());
@@ -587,7 +591,8 @@ public class MyActController {
mlgVo.setRegusr(user.getUserInnb()); mlgVo.setRegusr(user.getUserInnb());
mlgVo.setUpdusr(user.getUserInnb()); mlgVo.setUpdusr(user.getUserInnb());
if ("N".equals(bbsctt.getMlgPassivRtrvlAt())) { /*마일리지 수동 회수 여부*/
if ("N".equals(bbsctt.getMlgPassivRtrvlAt())) { // 선택 삭제시
DataMap accmlmnyAmtInfo = new DataMap(); DataMap accmlmnyAmtInfo = new DataMap();
accmlmnyAmtInfo = mlgService.selectBOMlgByBbscttInnb(mlgVo); accmlmnyAmtInfo = mlgService.selectBOMlgByBbscttInnb(mlgVo);
if (accmlmnyAmtInfo != null) { if (accmlmnyAmtInfo != null) {
@@ -598,7 +603,7 @@ public class MyActController {
mlgVo.setAccmlmnyAmt((BigDecimal) accmlmnyAmtInfo.get("accmlmnyAmt")); mlgVo.setAccmlmnyAmt((BigDecimal) accmlmnyAmtInfo.get("accmlmnyAmt"));
mlgService.insertBOMngrMlgDn(mlgVo); mlgService.insertBOMngrMlgDn(mlgVo);
} }
} else { } else { //단독 삭제시*/
if (delInfo.getRtrvlMlgAmt() != null) { if (delInfo.getRtrvlMlgAmt() != null) {
if (delInfo.getRtrvlMlgAmt().compareTo(BigDecimal.valueOf(0)) > 0) { if (delInfo.getRtrvlMlgAmt().compareTo(BigDecimal.valueOf(0)) > 0) {
mlgVo.setAccmlmnyAmt(delInfo.getRtrvlMlgAmt()); mlgVo.setAccmlmnyAmt(delInfo.getRtrvlMlgAmt());
@@ -607,6 +612,7 @@ public class MyActController {
} }
} }
} }
//회원 관련
if (delInfo.getRegusr() != null) { if (delInfo.getRegusr() != null) {
BOGnrlbbscttVO mbrSite = new BOGnrlbbscttVO(); BOGnrlbbscttVO mbrSite = new BOGnrlbbscttVO();
mbrSite.setSopmalCd(bbsctt.getSopmalCd()); mbrSite.setSopmalCd(bbsctt.getSopmalCd());
@@ -621,20 +627,26 @@ public class MyActController {
} }
} }
//상품관련 집계와 회원관련 집계는 관리자혹은 사용자가 모두 삭제 시 처리가 되어야해
//상품 관련
if (delInfo.getGoodsInnb() != null) { if (delInfo.getGoodsInnb() != null) {
BOGoodsVO goodsVO = new BOGoodsVO(); BOGoodsVO goodsVO = new BOGoodsVO();
goodsVO.setGoodsInnb(String.valueOf(delInfo.getGoodsInnb())); goodsVO.setGoodsInnb(String.valueOf(delInfo.getGoodsInnb()));
goodsVO.setSopmalCd(bbsctt.getSopmalCd()); goodsVO.setSopmalCd(bbsctt.getSopmalCd());
/*상품정보 > 상품후기건수 차감*/
goodsService.updateRvwRelateSm(goodsVO); goodsService.updateRvwRelateSm(goodsVO);
} }
} }
} }
} else if ("05".equals(bbsctt.getBbsTyCd())) { } else if ("05".equals(bbsctt.getBbsTyCd())) {//상품qna는 상품문의 집계만
//상품 관련
if (!CollectionUtils.isEmpty(bbsctt.getGoodsInnbArr())) { if (!CollectionUtils.isEmpty(bbsctt.getGoodsInnbArr())) {
for (String goodsInnb : bbsctt.getGoodsInnbArr()) { for (String goodsInnb : bbsctt.getGoodsInnbArr()) {
BOGoodsVO goodsVO = new BOGoodsVO(); BOGoodsVO goodsVO = new BOGoodsVO();
goodsVO.setGoodsInnb(goodsInnb); goodsVO.setGoodsInnb(goodsInnb);
goodsVO.setSopmalCd(bbsctt.getSopmalCd()); goodsVO.setSopmalCd(bbsctt.getSopmalCd());
/*상품정보 > 상품후기건수 차감*/
goodsService.updateGoodsInqryCnt(goodsVO); goodsService.updateGoodsInqryCnt(goodsVO);
} }
} }
@@ -646,6 +658,10 @@ public class MyActController {
.resBody(new WnbtResponseBody(content)) .resBody(new WnbtResponseBody(content))
.build() .build()
); );
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttDel",bbsctt),
// ReplyFromResrc::getReply
// );
} }
/** /**
@@ -661,6 +677,11 @@ public class MyActController {
Map<String, Object> content = selectBOBbscttRegistPopupForm(vo); Map<String, Object> content = selectBOBbscttRegistPopupForm(vo);
model.addAttribute("resultMap", content); model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttRegistPopupForm", vo),
// model,
// "resultMap"
// );
return Util.getDeviceType(request)+"/mpage/act/RvwEasyRegistC"; return Util.getDeviceType(request)+"/mpage/act/RvwEasyRegistC";
} }
@@ -672,7 +693,7 @@ public class MyActController {
public DataMap selectBOBbscttListInqire(BOGnrlbbscttVO bbsctt) { public DataMap selectBOBbscttListInqire(BOGnrlbbscttVO bbsctt) {
AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) { if ("01".equals(user.getSysDvCd())) {//사용자 조회 일 경우
bbsctt.setSopmalCd(user.getSopmalCd()); bbsctt.setSopmalCd(user.getSopmalCd());
} }
@@ -689,6 +710,7 @@ public class MyActController {
bbsctt.setRegusrDvCd("99"); bbsctt.setRegusrDvCd("99");
} }
} }
// pagination
PaginationInfo paginationInfo = new PaginationInfo(); PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(bbsctt.getPageIndex()); paginationInfo.setCurrentPageNo(bbsctt.getPageIndex());
paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit()); paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit());
@@ -699,10 +721,13 @@ public class MyActController {
bbsctt.setLastIndex(paginationInfo.getLastRecordIndex()); bbsctt.setLastIndex(paginationInfo.getLastRecordIndex());
bbsctt.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); bbsctt.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// 게시글 목록조회
Map<String, Object> resultList = new HashMap<String, Object>(); Map<String, Object> resultList = new HashMap<String, Object>();
resultList = service.selectBOBbscttListInqire(bbsctt); resultList = service.selectBOBbscttListInqire(bbsctt);
// 게시판 설정 정보 조회
BOBbsVO bbsVO = new BOBbsVO(); BOBbsVO bbsVO = new BOBbsVO();
// bbsVO에 쇼핑몰코드, 해당 게시판 set
bbsVO.setSopmalCd(bbsctt.getSopmalCd()); bbsVO.setSopmalCd(bbsctt.getSopmalCd());
bbsVO.setBbsId(bbsctt.getBbsId()); bbsVO.setBbsId(bbsctt.getBbsId());
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd()); bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
@@ -722,11 +747,13 @@ public class MyActController {
* *
*/ */
public Map<String, Object> selectBOMpageInfoInqire(BOMbrVO vo) { public Map<String, Object> selectBOMpageInfoInqire(BOMbrVO vo) {
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
vo.setSopmalCd(user.getSopmalCd()); vo.setSopmalCd(user.getSopmalCd());
vo.setMbrInnb(String.valueOf(user.getUserInnb())); vo.setMbrInnb(String.valueOf(user.getUserInnb()));
vo.setMbrDvCd(user.getMbrDvCd()); vo.setMbrDvCd(user.getMbrDvCd());
// 상품 옵션 조회
Map<String, Object> message = new HashMap<>(); Map<String, Object> message = new HashMap<>();
message = boMbrService.selectBOMpageInfoInqire(vo); message = boMbrService.selectBOMpageInfoInqire(vo);
@@ -751,6 +778,7 @@ public class MyActController {
bbsctt.setSopmalCd(user.getSopmalCd()); bbsctt.setSopmalCd(user.getSopmalCd());
bbsctt.setRegusr(user.getUserInnb()); bbsctt.setRegusr(user.getUserInnb());
bbsctt.setMbrDvCd(user.getMbrDvCd()); bbsctt.setMbrDvCd(user.getMbrDvCd());
// pagination
PaginationInfo paginationInfo = new PaginationInfo(); PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(bbsctt.getPageIndex()); paginationInfo.setCurrentPageNo(bbsctt.getPageIndex());
paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit()); paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit());
@@ -783,6 +811,7 @@ public class MyActController {
if (!"crm".equals(bbsctt.getReqUrl())) { if (!"crm".equals(bbsctt.getReqUrl())) {
bbsctt.setRegusr(user.getUserInnb()); bbsctt.setRegusr(user.getUserInnb());
} }
// pagination
PaginationInfo paginationInfo = new PaginationInfo(); PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(bbsctt.getPageIndex()); paginationInfo.setCurrentPageNo(bbsctt.getPageIndex());
paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit()); paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit());
@@ -792,7 +821,7 @@ public class MyActController {
bbsctt.setFirstIndex(paginationInfo.getFirstRecordIndex()); bbsctt.setFirstIndex(paginationInfo.getFirstRecordIndex());
bbsctt.setLastIndex(paginationInfo.getLastRecordIndex()); bbsctt.setLastIndex(paginationInfo.getLastRecordIndex());
bbsctt.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); bbsctt.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// 게시글 목록조회
Map<String, Object> resultList = new HashMap<String, Object>(); Map<String, Object> resultList = new HashMap<String, Object>();
resultList = service.selectBOMyRvwListInqire(bbsctt); resultList = service.selectBOMyRvwListInqire(bbsctt);
@@ -808,6 +837,7 @@ public class MyActController {
*/ */
public Map<String, Object> selectBOBbscttRegistPopupForm(BOGnrlbbscttVO bbsctt) { public Map<String, Object> selectBOBbscttRegistPopupForm(BOGnrlbbscttVO bbsctt) {
Map<String, Object> content = new HashMap<String, Object>(); Map<String, Object> content = new HashMap<String, Object>();
// 작성자 정보 추출
AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) { if ("01".equals(user.getSysDvCd())) {
@@ -820,9 +850,9 @@ public class MyActController {
if (user.getUserInnb() > 0) { if (user.getUserInnb() > 0) {
bbsctt.setRegusr(user.getUserInnb()); bbsctt.setRegusr(user.getUserInnb());
if (!"01".equals(user.getSysDvCd())) { if (!"01".equals(user.getSysDvCd())) {
bbsctt.setRegusrDvCd("02"); bbsctt.setRegusrDvCd("02"); //관리자
} else { } else {
bbsctt.setRegusrDvCd("01"); bbsctt.setRegusrDvCd("01"); //회원
bbsctt.setMbrDvCd(user.getMbrDvCd()); bbsctt.setMbrDvCd(user.getMbrDvCd());
DataMap mbr = new DataMap(); DataMap mbr = new DataMap();
mbr.put("mbrInnb", String.valueOf(bbsctt.getRegusr())); mbr.put("mbrInnb", String.valueOf(bbsctt.getRegusr()));
@@ -838,25 +868,31 @@ public class MyActController {
regusrInfo.setRegusrDvCd(bbsctt.getRegusrDvCd()); regusrInfo.setRegusrDvCd(bbsctt.getRegusrDvCd());
} else { } else {
regusrInfo.setRegusr(0); regusrInfo.setRegusr(0);
regusrInfo.setRegusrDvCd("99"); regusrInfo.setRegusrDvCd("99");//비회원
} }
// 게시판 설정 정보
BOBbsVO bbsVO = new BOBbsVO(); BOBbsVO bbsVO = new BOBbsVO();
// bbsVO에 쇼핑몰코드, 해당 게시판 set
bbsVO.setSopmalCd(bbsctt.getSopmalCd()); bbsVO.setSopmalCd(bbsctt.getSopmalCd());
bbsVO.setBbsId(bbsctt.getBbsId()); bbsVO.setBbsId(bbsctt.getBbsId());
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd()); bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
DataMap bbsInfo = new DataMap(); DataMap bbsInfo = new DataMap();
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO); bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
// 분류
List<DataMap> itmList = new ArrayList<>(); List<DataMap> itmList = new ArrayList<>();
itmList = service.selectBOBbscttItmInqire(bbsctt); itmList = service.selectBOBbscttItmInqire(bbsctt);
//리뷰항목 리스트, 리뷰항목 항목 리스트
Map<String, Object> rvwQesitmList = new HashMap<String, Object>(); Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
rvwQesitmList = service.selectBOStarItm(bbsctt); rvwQesitmList = service.selectBOStarItm(bbsctt);
//추가항목 리스트, 추가항목 항목 리스트
Map<String, Object> qesitmList = new HashMap<String, Object>(); Map<String, Object> qesitmList = new HashMap<String, Object>();
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt); qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
//사용자 > 리뷰 상품 조회
DataMap rvwGoodsInfo = new DataMap(); DataMap rvwGoodsInfo = new DataMap();
DataMap mlgInfo = new DataMap(); DataMap mlgInfo = new DataMap();
if ("sopmal".equals(bbsctt.getServerDv())) { if ("sopmal".equals(bbsctt.getServerDv())) {
@@ -868,6 +904,7 @@ public class MyActController {
List<DataMap> rvwItmList = new ArrayList<>(); List<DataMap> rvwItmList = new ArrayList<>();
List<DataMap> starItmList = new ArrayList<>(); List<DataMap> starItmList = new ArrayList<>();
//사용자 별표 평점 역으로 리스트 set(퍼블리싱으로 인한 역처리)
if (rvwQesitmList.get("starItmCnList") != null) { if (rvwQesitmList.get("starItmCnList") != null) {
rvwItmList = (List<DataMap>) rvwQesitmList.get("starItmCnList"); rvwItmList = (List<DataMap>) rvwQesitmList.get("starItmCnList");
for (int i = rvwItmList.size() - 1; i >= 0; i--) { for (int i = rvwItmList.size() - 1; i >= 0; i--) {
@@ -878,6 +915,7 @@ public class MyActController {
} }
} }
//사용자 > 상품q&a 상품 조회
DataMap qnaGoodsInfo = new DataMap(); DataMap qnaGoodsInfo = new DataMap();
if ("sopmal".equals(bbsctt.getServerDv())) { if ("sopmal".equals(bbsctt.getServerDv())) {
if ("modal".equals(bbsctt.getReqUrl())) { if ("modal".equals(bbsctt.getReqUrl())) {
@@ -893,4 +931,4 @@ public class MyActController {
content.put("rvwQesitmList", rvwQesitmList); content.put("rvwQesitmList", rvwQesitmList);
return content; return content;
} }
} }

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, BindingResult bindingResult, BOCrmDlvylcVO crmDlvylcVO){ public ResponseEntity<WnbtResponse> updateDlvylcUpdt(@Validated DlvylcVO dlvylcVO, BOCrmDlvylcVO crmDlvylcVO, BindingResult bindingResult){
//입력값 정합성 점검결과 처리 //입력값 정합성 점검결과 처리
if(bindingResult.hasErrors()) { if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
@@ -1078,19 +1078,7 @@ 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함
@@ -1147,7 +1135,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, BindingResult bindingResult, BOCrmDlvylcVO crmDlvylcVO){ public ResponseEntity<WnbtResponse> insertDlvylcRegist(@Validated DlvylcVO dlvylcVO, BOCrmDlvylcVO crmDlvylcVO, BindingResult bindingResult){
//입력값 정합성 점검결과 처리 //입력값 정합성 점검결과 처리
if(bindingResult.hasErrors()) { if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
@@ -1158,19 +1146,7 @@ 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,10 +17,9 @@ 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 = "받으시는 분")
@@ -33,7 +32,7 @@ public class DlvylcVO extends AbstractVO{
private String telnb; private String telnb;
/** 우편번호 */ /** 우편번호 */
@NotBlank(message = "우편번호") @NotBlank(message = "우편번호")
@Length(min=1, max=7, message="우편번호") @Length(min=1, max=7)
private String zip; private String zip;
/** 도로명,지번 구분 */ /** 도로명,지번 구분 */
private String adresDv; private String adresDv;

View File

@@ -36,7 +36,6 @@ import com.wb.domainserver.domain.sopmal.mpage.ordr.vo.MyOrdrDlvyVO;
import com.wb.domainserver.domain.sopmal.mpage.ordr.vo.MyOrdrShippingVO; import com.wb.domainserver.domain.sopmal.mpage.ordr.vo.MyOrdrShippingVO;
import com.wb.domainserver.domain.sopmal.mpage.ordr.vo.MyRefundVO; import com.wb.domainserver.domain.sopmal.mpage.ordr.vo.MyRefundVO;
import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.exception.WnbtRestException;
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;
@@ -55,7 +54,6 @@ import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Base64Util; import org.apache.logging.log4j.util.Base64Util;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; 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;
@@ -67,7 +65,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import java.math.BigInteger; import java.math.BigInteger;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -174,26 +171,6 @@ 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
@@ -231,12 +208,10 @@ 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, BORtngudrefndVO boRtngudrefndVO) throws Exception { public String selectMbrSubsvcOrdrDtlInqire(HttpServletRequest request, ModelMap model, BOOrdrDlvyVO ordrDlvyVO, BOMbrVO vo) 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);
/**발급대상구분코드*/ /**발급대상구분코드*/
@@ -253,13 +228,6 @@ 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);
@@ -728,26 +696,26 @@ public class MyOrdrController {
* @return * @return
*/ */
@Policy(AuthPolicy.PUBLIC) @Policy(AuthPolicy.PUBLIC)
// @RequestMapping(value="/selectDlvyInqire") @RequestMapping(value="/selectDlvyInqire")
// public String selectDlvyInqire(BODlivyVO boDlivyVO, ModelMap model, HttpServletRequest request){ public String selectDlvyInqire(BODlivyVO boDlivyVO, ModelMap model, HttpServletRequest request){
@RequestMapping(value="/selectDlvyInqire", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectDlvyInqire(BODlivyVO boDlivyVO){
// 작성자 정보 할당 // 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){ if("01".equals(user.getSysDvCd())){
boDlivyVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 boDlivyVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드
} }
// model.addAttribute("resultMap", dlivyService.updateBOAciDelivery(boDlivyVO)); Map<String, Object> content = new HashMap<>();
// return Util.getDeviceType(request) + "/mpage/ordr/DlvyInqireR"; content = dlivyService.selectBOOrdrDlvyDtlsInqire(boDlivyVO);
DataMap content = new DataMap(); model.addAttribute("resultMap", content);
content.put("invcnb", dlivyService.selectBOOrdrInvcnb(boDlivyVO)); // responseHandler.handleResponse(
return ResponseEntity.ok( // sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBOOrdrDlvyDtlsInqire", dlivyVO),
WnbtResponse.builder() // model,
.resBody(new WnbtResponseBody(content)) // "resultMap"
.build() // );
);
// return "sopmal/mpage/ordr/DlvyInqireR";
return Util.getDeviceType(request) + "/mpage/ordr/DlvyInqireR";
} }
@@ -790,7 +758,7 @@ public class MyOrdrController {
// model, // model,
// "resultMap" // "resultMap"
// ); // );
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(boRtngudrefndVO)); model.addAttribute("paramVO", boRtngudrefndVO);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
Map<String, Object> content2 = selectBOMpageInfoInqire(vo); Map<String, Object> content2 = selectBOMpageInfoInqire(vo);

View File

@@ -2,8 +2,6 @@ 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;
@@ -11,23 +9,17 @@ 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.io.BufferedReader; import java.util.ArrayList;
import java.net.URLDecoder; import java.util.List;
import java.util.*;
@Slf4j @Slf4j
@Controller @Controller
@@ -42,9 +34,6 @@ public class OrdrApiController {
@Autowired @Autowired
private GconeMessageSource messageSource; private GconeMessageSource messageSource;
@Autowired
private BOOrdrLogService ordrLogService;
private Util utilClass; private Util utilClass;
/* #################################### /* ####################################
@@ -106,135 +95,4 @@ 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

@@ -3,7 +3,7 @@ package com.wb.domainserver.domain.sopmal.ordr.controller;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.nimbusds.jose.shaded.gson.Gson; import com.nimbusds.jose.shaded.gson.Gson;
import com.wb.domainserver.common.msg.GconeMessageSource; import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
import com.wb.domainserver.common.prop.PaginationProperties; import com.wb.domainserver.common.prop.PaginationProperties;
import com.wb.domainserver.domain.admin.instcSle.mtng.service.BOMaMtngService; import com.wb.domainserver.domain.admin.instcSle.mtng.service.BOMaMtngService;
@@ -20,46 +20,52 @@ 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.sopmal.ordr.vo.OrdrVO; 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.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.WnbtResponse; import com.wb.domainserver.response.ApiResponse;
import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtWebClientResponseHandler; import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.security.authentication.AnonymousUser; import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.cookie.CookieUtil; import com.wb.domainserver.util.CookieUtils;
import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.string.StringUtil; import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.util.Util; import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.cookie.CookieUtil;
import com.wb.domainserver.util.dataaccess.DataMap;
import com.wb.domainserver.util.string.StringUtil;
import com.wb.domainserver.util.util.Util;
import jakarta.servlet.http.Cookie; import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.text.StringEscapeUtils;
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;
@@ -68,15 +74,11 @@ 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.RequestBody; import org.springframework.web.bind.annotation.*;
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;
import java.io.Reader; import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.math.BigInteger; import java.math.BigInteger;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.*; import java.util.*;
@@ -134,10 +136,6 @@ 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;
/* #################################### /* ####################################
사용자 > 상품 > 구매/결제 > 회원구매하기 시작 사용자 > 상품 > 구매/결제 > 회원구매하기 시작
@@ -401,136 +399,6 @@ 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"))?"03":"04");
//약관정보 세팅
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
// );
}
/** /**
* 관리자 주문 > 브랜드페이 > 토큰발급 * 관리자 주문 > 브랜드페이 > 토큰발급
@@ -795,22 +663,6 @@ 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)
@@ -840,9 +692,7 @@ public class OrdrController {
String pgCmpnyNm = setle.getPgCmpnyNm(); String pgCmpnyNm = setle.getPgCmpnyNm();
String setleTyCd = setle.getSetleTyCd(); String setleTyCd = setle.getSetleTyCd();
if ("kiwoom".equals(pgCmpnyNm)||"naverpay".equals(pgCmpnyNm)) { if ("gcpay".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)) {
@@ -852,7 +702,7 @@ public class OrdrController {
} }
} else if ("toss".equals(pgCmpnyNm)) { } else if ("toss".equals(pgCmpnyNm)) {
url = "sopmal/ordr/OrdrReqstTossPayR"; url = "sopmal/ordr/OrdrReqstTossPayR";
} else if ("tosspay".equals(pgCmpnyNm)||"kakaopay".equals(pgCmpnyNm)) { //||"naverpay".equals(pgCmpnyNm) 키움으로 이동 } else if ("tosspay".equals(pgCmpnyNm)||"naverpay".equals(pgCmpnyNm)||"kakaopay".equals(pgCmpnyNm)) {
url = "sopmal/ordr/OrdrReqstTosspayPayR"; url = "sopmal/ordr/OrdrReqstTosspayPayR";
} else if ("02".equals(setleTyCd)||"08".equals(setleTyCd)||"12".equals(setleTyCd)) { // 무통장, 마일리지, 충전형마일리지 } else if ("02".equals(setleTyCd)||"08".equals(setleTyCd)||"12".equals(setleTyCd)) { // 무통장, 마일리지, 충전형마일리지
url = "sopmal/ordr/OrdrReqstPayR"; url = "sopmal/ordr/OrdrReqstPayR";
@@ -1072,7 +922,7 @@ public class OrdrController {
agentId = CookieUtil.getAgentCookieValue(request.getCookies()); agentId = CookieUtil.getAgentCookieValue(request.getCookies());
payVO.setAgentId(agentId); payVO.setAgentId(agentId);
} }
log.debug("=================insertKcpSetle cookies {} ",(Object) cookies); log.debug("=================insertKcpSetle cookies {} ",cookies);
Map<String, String> util = new HashMap<>(); Map<String, String> util = new HashMap<>();
util = utilClass.getRequestInfo(request); util = utilClass.getRequestInfo(request);
@@ -1093,12 +943,6 @@ 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";
} }
@@ -1190,6 +1034,19 @@ 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");
@@ -1387,176 +1244,6 @@ 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";
}
/**
* 키움 결제 연계처리 - 결제창 취소버튼 클릭 시 페이지 이동
* @return PayKiwoomSucsC.jsp
* @author 이경숙
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/kiwoomPayCancelUrl")
public String cancelUrlKiwoom(HttpServletRequest request, ModelMap model) throws Exception {
return "sopmal/ordr/OrdrReqstKiwoomCnclR";
}
/**
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > 키움 결제 정보 등록
* @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"));
String ordrrNm = request.getParameter("ordrrNm");
try {
payVO.setSetlerNm(new String(Base64.getDecoder().decode(ordrrNm), "UTF-8"));
}catch(Exception e){
log.debug("throws UnsupportedEncodingException:::::");
}
log.info("insertKiwoomSetle controller payVO 3 ::: {}", 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
@@ -2926,21 +2613,7 @@ public class OrdrController {
// 2.가용재고수량 수정 ============================================================== // 2.가용재고수량 수정 ==============================================================
try { try {
BOOrdrVO ordrVO = new BOOrdrVO(); boGoodsService.updateOrdrUsefulInvntryQy(orderVO);
ordrVO.setOrdrInnb(orderVO.getOrdrInnb().toString());
ordrVO.setSopmalCd(orderVO.getSopmalCd());
DataMap ordrDtl = (DataMap) service.selectOrdrDtlInqire(ordrVO).get("dtl");
boolean subsvcAt = "Y".equals(ordrDtl.get("subsvcAt"));
// 구독서비스 여부(subsvcAt)에 따라 재고 처리 로직을 분기
if(subsvcAt) {
// 구독서비스
ordrVO.setSubsvcInnb(ordrDtl.get("subsvcInnb").toString());
subsvcService.updateSubsvcOrdrUsefulInvntryQy(ordrVO);
} else {
// 일반 주문
boGoodsService.updateOrdrUsefulInvntryQy(orderVO);
}
} catch (Exception e) { } catch (Exception e) {
logVO.setFailContent("상품 재고수량 업데이트 실패"); logVO.setFailContent("상품 재고수량 업데이트 실패");
log.error("{} 상품 재고수량 업데이트 실패!", payVO.getOrderId()); log.error("{} 상품 재고수량 업데이트 실패!", payVO.getOrderId());
@@ -3308,8 +2981,6 @@ 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){
@@ -3338,7 +3009,13 @@ public class OrdrController {
return content; return content;
} }
} else { } else {
// 여러곳배송처럼 처리하더라도 주소는 하나이므로 shipping 체크 // if (CollectionUtils.isEmpty(multiOrdrDlvylc)) {
// 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");
@@ -3355,7 +3032,8 @@ 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", "할인 또는 결제 정보를 찾을 수 없습니다.");
@@ -3365,7 +3043,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.valueOf(goodsList.get(0).get("mbrInnb")); String mbrInnb = (String) 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");
@@ -3374,6 +3052,70 @@ 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")) ||
@@ -3499,27 +3241,17 @@ 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; Map<String, Object> resultAmt = service.selectSetleExpectAmt(param);
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)
@@ -3528,13 +3260,6 @@ 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,7 +4,9 @@ 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.*; import java.util.Base64;
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;
@@ -20,7 +22,9 @@ 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.*; import org.springframework.web.bind.annotation.PostMapping;
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;
@@ -626,173 +630,4 @@ 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="/selectKiwoomApiSample")
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<>();
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);
return "sopmal/ordr/PayKiwoomSucsC";
}
/**
* 키움 결제취소 화면
* @return PayKiwoomModC.jsp
* @author 이경숙
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectKiwoomCancelSample")
public String selectKiwoomCancel(ModelMap model) throws Exception {
log.debug("selectKiwoomCancel = {}");
return "sopmal/ordr/PayKiwoomModC";
}
/**
* 키움 결제 연계처리 - 결체취소결과페이지
* @return PayKiwoomSucsC.jsp
* @author 이경숙
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/kiwoomPayCancel")
public String confirmCancelKiwoom(HttpServletRequest request, ModelMap model) throws Exception {
System.out.println("취소데이터 수신 ::: "+request.getQueryString());
Map<String, Object> setleCancelResultMessage = new HashMap<>();
Map<String, Object> responseMap = new HashMap<>();
BOPayVO payVO = new BOPayVO();
payVO.setSopmalCd("SK");
payVO.setOrderId(request.getParameter("ORDERNO"));
payVO.setCancelAmount(request.getParameter("AMOUNT"));
payVO.setPayMethod(request.getParameter("PAYMETHOD"));
payVO.setTno(request.getParameter("TRXID"));
payVO.setCancelReason(request.getParameter("CANCELREASON"));
payVO.setSetleTyCd("01");
payVO.setPgCmpnyNm("kiwoom");
log.debug("confirmCancelKiwoom step1 payVO :::> {}", payVO);
Map<String, Object> message = new HashMap<>();
setleCancelResultMessage = service.cancelKiwoomPay(payVO);
String responseStr = (String) setleCancelResultMessage.get("response");
JSONParser parser = new JSONParser();
JSONObject jsonObject = (JSONObject) parser.parse(responseStr);
jsonObject.put("orderId", payVO.getOrderId());
jsonObject.put("amount", payVO.getAmount());
jsonObject.put("payMethod", payVO.getPayMethod());
jsonObject.put("code", jsonObject.get("RESULTCODE"));
message.put("response",jsonObject.toString());
model.addAttribute("message", message);
return "sopmal/ordr/PayKiwoomSucsC";
}
} }

View File

@@ -41,12 +41,9 @@ 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 @EnableWebSecurity(debug = true)
@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.231.30: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.176.232: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: SakeDevPool poolName: gconedDevPool
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.231.30: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.176.232: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: 15MB max-file-size: 10MB
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://19d28cf7178139ad.kinxzone.com cdnurl: http://dev.img.soju1sake1.com
pagination: pagination:
@@ -353,11 +353,11 @@ mngrfo:
fileupload: fileupload:
uploaddirs: uploaddirs:
goods: C:/file/temp goods: C:/file/temp
doc: /data/gcone/docFile doc: /docFile
web: /data/gcone/webFile web: /webFile
extensions: extensions:
images: .gif,.jpg,.jpeg,.png images: .gif,.jpg,.jpeg,.png
cdnurl: https://19d28cf7178139ad.kinxzone.com cdnurl: http://dev.img.soju1sake1.com
subsvc: subsvc:
dft-goods-optn-innb: 5 dft-goods-optn-innb: 5
@@ -365,12 +365,9 @@ mngrfo:
secret: secret:
key: 1df5be2f7e90ae36 key: 1df5be2f7e90ae36
aciexpress:
apikey: DC94F29AFD5399F54AAE7FAA46045B65
host: host:
img: https://19d28cf7178139ad.kinxzone.com img: http://dev.img.soju1sake1.com
naverpay: naverpay:
order: order:
@@ -383,7 +380,7 @@ naverpay:
real-url: https://pay.naver.com real-url: https://pay.naver.com
mail: mail:
host: 10.2.1.76 host: mail.sake1jan.com
port: 587 port: 587
username: custom@sake1jan.com username: custom@sake1jan.com
password: mail13@$ password: mail13@$
@@ -423,7 +420,7 @@ bankda:
css-cours : css/theme/themeAF.css css-cours : css/theme/themeAF.css
#선물하기 URL #선물하기 URL
presenturl : devsvc.soju1sake1.com presenturl : dev.svc.soju1sake1.com
# 출고 택배사 구분 EXPORT, (택배사 구분코드 HDRYCPN) # 출고 택배사 구분 EXPORT, (택배사 구분코드 HDRYCPN)
# 송장번호 %INVCNB% 치환 # 송장번호 %INVCNB% 치환
@@ -452,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.231.30: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.176.232: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: SakeDevPool poolName: gconedDevPool
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.231.30: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.176.232: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: 15MB max-file-size: 10MB
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://19d28cf7178139ad.kinxzone.com cdnurl: https://19b0bde6dcdc15ad.kinxzone.com
pagination: pagination:
@@ -357,20 +357,17 @@ mngrfo:
web: /data/gcone/webFile web: /data/gcone/webFile
extensions: extensions:
images: .gif,.jpg,.jpeg,.png images: .gif,.jpg,.jpeg,.png
cdnurl: https://19d28cf7178139ad.kinxzone.com cdnurl: https://19b0bde6dcdc15ad.kinxzone.com
# upurl: https://www.soju1sake1.com upurl: https://www.soju1sake1.com
subsvc: subsvc:
dft-goods-optn-innb: 5 dft-goods-optn-innb: 5
secret: secret:
key: 1df5be2f7e90ae36 key: 1df5be2f7e90ae36
aciexpress:
apikey: DC94F29AFD5399F54AAE7FAA46045B65
host: host:
img: https://19d28cf7178139ad.kinxzone.com img: https://19b0bde6dcdc15ad.kinxzone.com/
naverpay: naverpay:
order: order:
@@ -383,7 +380,7 @@ naverpay:
real-url: https://pay.naver.com real-url: https://pay.naver.com
mail: mail:
host: 10.2.1.76 host: mail.sake1jan.com
port: 587 port: 587
username: custom@sake1jan.com username: custom@sake1jan.com
password: mail13@$ password: mail13@$
@@ -423,7 +420,7 @@ bankda:
css-cours : css/theme/themeAF.css css-cours : css/theme/themeAF.css
#선물하기 URL #선물하기 URL
presenturl : devsvc.soju1sake1.com presenturl : dev.svc.gcone.co.kr
# 출고 택배사 구분 EXPORT, (택배사 구분코드 HDRYCPN) # 출고 택배사 구분 EXPORT, (택배사 구분코드 HDRYCPN)
# 송장번호 %INVCNB% 치환 # 송장번호 %INVCNB% 치환
@@ -452,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: 15MB max-file-size: 10MB
max-request-size: -1 max-request-size: -1
mybatis: mybatis:
@@ -359,15 +359,12 @@ mngrfo:
images: .gif,.jpg,.jpeg,.png images: .gif,.jpg,.jpeg,.png
cdnurl: https://19b0bde6dcdc15ad.kinxzone.com cdnurl: https://19b0bde6dcdc15ad.kinxzone.com
subsvc: subsvc:
dft-goods-optn-innb: 1 dft-goods-optn-innb: 5
secret: secret:
key: 1df5be2f7e90ae36 key: 1df5be2f7e90ae36
aciexpress:
apikey: DC94F29AFD5399F54AAE7FAA46045B65
host: host:
img: https://19b0bde6dcdc15ad.kinxzone.com/ img: https://19b0bde6dcdc15ad.kinxzone.com/
@@ -452,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

@@ -769,122 +769,4 @@
SELECT PURCHS_REVALID_AT FROM GC_SHOP WHERE 1=1 AND SOPMAL_CD = #{sopmalCd} SELECT PURCHS_REVALID_AT FROM GC_SHOP WHERE 1=1 AND SOPMAL_CD = #{sopmalCd}
</select> </select>
<!-- 구독서비스 주문 전 주문정보 재확인 -->
<select id="selectBOSubsvcPreOrderValidation" parameterType="com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOPreOrderValidVO" resultType="dataMap">
<![CDATA[
SELECT
CASE
WHEN GOODS.SUBSVC_STTUS_CD = '01' THEN 0
ELSE 1
END AS GOODS_STTUS, -- 상품상태 정상 확인
CASE
WHEN GOODS.PURCHS_QY_LMTT_DV_CD = '01' OR GOODS.PURCHS_QY_LMTT_DV_CD IS NULL THEN 0
ELSE
CASE
WHEN #{goodsTotalQy} BETWEEN GOODS.MUMM_PURCHS_QY AND GOODS.MXMM_PURCHS_QY THEN 0
ELSE 1
END
END AS PURCHS_QY_LMTT, -- 상품별 최소 최대 구매수량제한여부
CASE
WHEN GOODS.INVNTRY_POLICY_CD = '02' THEN 0
ELSE
CASE
WHEN (GOODS.INVNTRY_QY - IFNULL(GOODS.USEFUL_INVNTRY_QY, 0)) >= #{qy} THEN 0
ELSE 1
END
END AS INVNTRY, -- 각 옵션별 재고 유무
CASE
WHEN GOODS.INVNTRY_POLICY_CD = '02' THEN 0
ELSE
CASE
WHEN (IFNULL(GOODS.REST_INVNTRY_QY, 0) - IFNULL(GOODS.AVLINV_LMTT_QY, 0)) >= #{goodsTotalQy} THEN 0
ELSE 1
END
END AS INVNTRY_POLICY, -- 상품별 옵션 수량합산 재고유무
CASE
WHEN IFNULL(GOODS.SUBSVC_CT, 0) = #{slepric} THEN 0
ELSE 1
END AS SELPRIC, -- 판매가 변경여부
0 AS DSCNT_AT, -- 구간,복수할인 정보 변경 여부
0 AS DLVY_GROUP, -- 배송그룹 변경여부
0 AS PURCHS_TRGTER_LMTT, -- 구매대상자 제한
0 AS COUPON_STTUS, -- 쿠폰 상태 확인
0 AS COUPON_USE_AT, -- 쿠폰 회수여부 확인
0 AS COUPON_VALIDPD_DT, -- 쿠폰 유효기간 확인
0 AS EVT_TRGET_AT, -- 이벤트 진행여부 이벤트 대상일경우 1을 반환함 = 정상 처리 0 이벤트 대상 아닐경우 1
0 AS DPLCT_LMTT_COUPON, -- 이벤트 중복제한 쿠폰 존재여부
0 AS OPTN_EXPSR_AT -- 상품옵션 노출여부
FROM (
SELECT
GS.SUBSVC_INNB, -- 구독서비스 고유번호
GG.GOODS_INNB, -- 상품 고유번호
GS.SOPMAL_CD, -- 쇼핑몰코드
GS.SUBSVC_CT, -- 구독료
GG.DLVY_GROUP_INNB, -- 배송그룹고유번호
GG.GOODS_KND_CD, -- 상품구분 01 상품
GS.SUBSVC_STTUS_CD, -- 상품상태 01 정상
GS.PURCHS_QY_LMTT_DV_CD, -- 구매수량제한여부 02 제한
GS.MUMM_PURCHS_QY, -- 최소구매수량
GS.MXMM_PURCHS_QY, -- 최대구매수량
GS.INVNTRY_POLICY_CD, -- 재고정책 01 재고가 있으면 판매 02 재고없어도 판매
GS.AVLINV_LMTT_QY, -- 가용재고제한수량
GG.PURCHS_TRGTER_LMTT_DV_CD, -- 구매 대상자 제한 02 제한
SUM(IFNULL(GS.INVNTRY_QY, 0)) AS INVNTRY_QY, -- 상품 재고수량 합계
SUM(IFNULL(GS.USEFUL_INVNTRY_QY, 0)) AS USEFUL_INVNTRY_QY, -- 상품 사용 재고수량 합계
SUM(IFNULL(GS.INVNTRY_QY, 0)) - SUM(IFNULL(GS.USEFUL_INVNTRY_QY, 0)) AS REST_INVNTRY_QY -- 잔여 재고수량 합계
FROM GC_SUBSVC GS
INNER JOIN GC_GOODS_OPTION GGO
ON GS.SOPMAL_CD = GGO.SOPMAL_CD
AND GS.DFT_GOODS_OPTN_INNB = GGO.GOODS_OPTN_INNB
AND GS.USE_AT = 'Y'
AND GGO.USE_AT = 'Y'
INNER JOIN GC_GOODS GG
ON GS.SOPMAL_CD = GG.SOPMAL_CD
AND GGO.GOODS_INNB = GG.GOODS_INNB
AND GG.USE_AT = 'Y'
WHERE 1 = 1
AND GS.SOPMAL_CD = #{sopmalCd}
AND GS.SUBSVC_INNB = #{subsvcInnb}
GROUP BY
GG.GOODS_INNB
) GOODS
LEFT JOIN (
SELECT
GM.MBR_INNB,
GM.MBR_DV_CD,
GMGM.SOPMAL_CD,
GMG.MBR_GRAD_INNB
FROM
GC_MEMBER GM
INNER JOIN GC_MEMBER_GRAD_MAPPING GMGM
ON GM.MBR_INNB = GMGM.MBR_INNB
AND GM.MBR_DV_CD = GMGM.MBR_DV_CD
AND GM.USE_AT = 'Y'
INNER JOIN GC_MEMBER_GRAD GMG
ON GMGM.MBR_GRAD_INNB = GMG.MBR_GRAD_INNB
AND GMGM.SOPMAL_CD = GMG.SOPMAL_CD
AND GMG.USE_AT = 'Y'
WHERE 1 = 1
AND GMGM.SOPMAL_CD = #{sopmalCd}
AND GM.MBR_INNB = #{mbrInnb}
) MBR
ON MBR.SOPMAL_CD = GOODS.SOPMAL_CD
WHERE 1 = 1
GROUP BY
GOODS_STTUS,
PURCHS_QY_LMTT,
INVNTRY,
INVNTRY_POLICY,
SELPRIC,
DSCNT_AT,
DLVY_GROUP,
PURCHS_TRGTER_LMTT,
COUPON_STTUS,
COUPON_USE_AT,
COUPON_VALIDPD_DT,
EVT_TRGET_AT,
DPLCT_LMTT_COUPON
]]>
</select>
</mapper> </mapper>

View File

@@ -947,37 +947,6 @@
SOPMAL_CD = #{sopmalCd} SOPMAL_CD = #{sopmalCd}
</update> </update>
<!-- 쇼핑몰 환율 설정 수정 -->
<update id="updateBOExchngrtSetup" parameterType="com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO" >
UPDATE
GC_SHOP
SET BUY_RATE = #{buyRate},
SELL_RATE = #{sellRate},
UPDUSR = #{updusr},
UPDT_DT = SYSDATE()
WHERE
1=1
AND
SOPMAL_CD = #{sopmalCd}
</update>
<!-- 쇼핑몰 안내문구 설정 수정 -->
<update id="updateBOGuidanceSetup" parameterType="com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO" >
UPDATE
GC_SHOP
SET JOIN_GUIDANCE_SJ = #{joinGuidanceSj},
JOIN_GUIDANCE_WORDS = #{joinGuidanceWords},
JOIN_BNEF = #{joinBnef},
JOIN_COMPT_WORDS = #{joinComptWords},
SUBSVC_GUIDANCE_WORDS = #{subsvcGuidanceWords},
UPDUSR = #{updusr},
UPDT_DT = SYSDATE()
WHERE
1=1
AND
SOPMAL_CD = #{sopmalCd}
</update>
<!-- 쇼핑몰 사업자 정보 삭제 --> <!-- 쇼핑몰 사업자 정보 삭제 -->
<delete id="deteteBOShopCompany" parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO"> <delete id="deteteBOShopCompany" parameterType="com.wb.domainserver.domain.admin.sys.author.vo.BOMaAuthorVO">

View File

@@ -224,7 +224,6 @@
AND (FB.NTC_AT = 'N' OR (FB.NTC_AT = 'Y' AND FB.NTC_PD_SETUP_AT = 'N')) AND (FB.NTC_AT = 'N' OR (FB.NTC_AT = 'Y' AND FB.NTC_PD_SETUP_AT = 'N'))
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(serverDv, 'sopmal')"> <if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(serverDv, 'sopmal')">
<include refid="selectSopmalNtceWhere"/> <include refid="selectSopmalNtceWhere"/>
AND FB.USE_AT = 'Y'
</if> </if>
AND FB.SOPMAL_CD = #{sopmalCd} AND FB.SOPMAL_CD = #{sopmalCd}
AND FB.BBS_ID = #{bbsId} AND FB.BBS_ID = #{bbsId}
@@ -461,7 +460,6 @@
</if> </if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(serverDv, 'sopmal')"> <if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(serverDv, 'sopmal')">
<include refid="selectSopmalNtceWhere"/> <include refid="selectSopmalNtceWhere"/>
AND FB.USE_AT = 'Y'
</if> </if>
AND FB.DEPTH = 0 AND FB.DEPTH = 0
AND FB.SOPMAL_CD = #{sopmalCd} AND FB.SOPMAL_CD = #{sopmalCd}

View File

@@ -503,7 +503,6 @@
FG.REPRSNT_GOODS_CD, FG.REPRSNT_GOODS_CD,
FG.BRAND_CD, FG.BRAND_CD,
FG.GOODS_NM, FG.GOODS_NM,
FG.GOODS_NM_EN,
FG.TAX_AT, FG.TAX_AT,
FG.GOODS_STTUS_CD, FG.GOODS_STTUS_CD,
FG.SEL_STPGE_CUSTOM_WORDS_AT, FG.SEL_STPGE_CUSTOM_WORDS_AT,
@@ -1945,8 +1944,6 @@
,GROUP_CONCAT(CASE WHEN IFNULL(FGO.OPTN_CD_4, '') = '' THEN ' ' ELSE FGO.OPTN_CD_4 END ORDER BY FGO.OPTN_ORDR ASC SEPARATOR '|') AS OPTN_CD_4 -- 옵션코드 1 ,GROUP_CONCAT(CASE WHEN IFNULL(FGO.OPTN_CD_4, '') = '' THEN ' ' ELSE FGO.OPTN_CD_4 END ORDER BY FGO.OPTN_ORDR ASC SEPARATOR '|') AS OPTN_CD_4 -- 옵션코드 1
,GROUP_CONCAT( CASE WHEN IFNULL(FGO.OPTN_INFO, '') = '' THEN ' ' ELSE FGO.OPTN_INFO END ORDER BY FGO.OPTN_ORDR ASC SEPARATOR '|') AS OPTN_INFO -- 옵션정보 ,GROUP_CONCAT( CASE WHEN IFNULL(FGO.OPTN_INFO, '') = '' THEN ' ' ELSE FGO.OPTN_INFO END ORDER BY FGO.OPTN_ORDR ASC SEPARATOR '|') AS OPTN_INFO -- 옵션정보
,GROUP_CONCAT(FGO.MLG_POLICY_CD ORDER BY FGO.OPTN_ORDR ASC SEPARATOR '|') AS MLG_POLICY_CD -- 마일리지정책코드 ,GROUP_CONCAT(FGO.MLG_POLICY_CD ORDER BY FGO.OPTN_ORDR ASC SEPARATOR '|') AS MLG_POLICY_CD -- 마일리지정책코드
,GROUP_CONCAT(FGO.HSCODE ORDER BY FGO.OPTN_ORDR ASC SEPARATOR '|') AS HSCODE -- HS Code
,GROUP_CONCAT(FGO.REAL_WT ORDER BY FGO.OPTN_ORDR ASC SEPARATOR '|') AS REAL_WT -- 실무게(KG)
,GROUP_CONCAT(FGO.INVNTRY_QY ORDER BY FGO.OPTN_ORDR ASC SEPARATOR '|') AS INVNTRY_QY -- 재고수량 ,GROUP_CONCAT(FGO.INVNTRY_QY ORDER BY FGO.OPTN_ORDR ASC SEPARATOR '|') AS INVNTRY_QY -- 재고수량
,GROUP_CONCAT(CASE WHEN FG.INVNTRY_POLICY_CD = '01' THEN FGO.INVNTRY_QY - IFNULL(FGO.USEFUL_INVNTRY_QY, 0) ELSE FGO.INVNTRY_QY END ORDER BY FGO.OPTN_ORDR ASC SEPARATOR '|') AS USEFUL_INVNTRY -- 가용재고수량 ,GROUP_CONCAT(CASE WHEN FG.INVNTRY_POLICY_CD = '01' THEN FGO.INVNTRY_QY - IFNULL(FGO.USEFUL_INVNTRY_QY, 0) ELSE FGO.INVNTRY_QY END ORDER BY FGO.OPTN_ORDR ASC SEPARATOR '|') AS USEFUL_INVNTRY -- 가용재고수량
,GROUP_CONCAT(ROUND(IFNULL(FGO.USEFUL_INVNTRY_QY, 0), 0) ORDER BY FGO.OPTN_ORDR ASC SEPARATOR '|') AS USEFUL_INVNTRY_QY -- 판매재고수량 ,GROUP_CONCAT(ROUND(IFNULL(FGO.USEFUL_INVNTRY_QY, 0), 0) ORDER BY FGO.OPTN_ORDR ASC SEPARATOR '|') AS USEFUL_INVNTRY_QY -- 판매재고수량
@@ -2014,7 +2011,6 @@
GOODS_CD, GOODS_CD,
REPRSNT_GOODS_CD, REPRSNT_GOODS_CD,
GOODS_NM, GOODS_NM,
GOODS_NM_EN,
TAX_AT, TAX_AT,
GOODS_STTUS_CD, GOODS_STTUS_CD,
SEL_STPGE_CUSTOM_WORDS_AT, SEL_STPGE_CUSTOM_WORDS_AT,
@@ -2083,7 +2079,6 @@
#{goodsCd}, #{goodsCd},
#{reprsntGoodsCd}, #{reprsntGoodsCd},
#{goodsNm}, #{goodsNm},
#{goodsNmEn},
#{taxAt}, #{taxAt},
#{goodsSttusCd}, #{goodsSttusCd},
#{selStpgeCustomWordsAt}, #{selStpgeCustomWordsAt},
@@ -2193,7 +2188,6 @@
GC_GOODS FG GC_GOODS FG
set set
GOODS_NM = #{goodsNm} -- 상품명 GOODS_NM = #{goodsNm} -- 상품명
, GOODS_NM_EN = #{goodsNmEn} -- 상품명(영문)
, SRT_DC = #{srtDc} -- 간략설명 , SRT_DC = #{srtDc} -- 간략설명
, REPRSNT_DC = #{reprsntDc} -- 대표설명 , REPRSNT_DC = #{reprsntDc} -- 대표설명
, BRAND_CD = #{brandCd} -- 브랜드 , BRAND_CD = #{brandCd} -- 브랜드
@@ -2540,8 +2534,6 @@
OPTN_CD_3, OPTN_CD_3,
OPTN_CD_4, OPTN_CD_4,
OPTN_INFO, OPTN_INFO,
HSCODE,
REAL_WT,
INVNTRY_QY, INVNTRY_QY,
USEFUL_INVNTRY_QY, USEFUL_INVNTRY_QY,
CNSMRPRIC, CNSMRPRIC,
@@ -2580,8 +2572,6 @@
#{optnCd3}, #{optnCd3},
#{optnCd4}, #{optnCd4},
#{optnInfo}, #{optnInfo},
#{hscode},
#{realWt},
#{invntryQy}, #{invntryQy},
#{usefulInvntryQy}, #{usefulInvntryQy},
#{cnsmrpric}, #{cnsmrpric},
@@ -2696,8 +2686,6 @@
OPTN_CD_3 = #{optnCd3}, OPTN_CD_3 = #{optnCd3},
OPTN_CD_4 = #{optnCd4}, OPTN_CD_4 = #{optnCd4},
OPTN_INFO = #{optnInfo}, OPTN_INFO = #{optnInfo},
HSCODE = #{hscode},
REAL_WT = #{realWt},
INVNTRY_QY = #{invntryQy}, INVNTRY_QY = #{invntryQy},
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(usefulInvntryQy)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(usefulInvntryQy)">
USEFUL_INVNTRY_QY = #{usefulInvntryQy}, USEFUL_INVNTRY_QY = #{usefulInvntryQy},
@@ -3609,23 +3597,6 @@
]]> ]]>
</select> </select>
<!-- 검색어 로그 저장 -->
<insert id="insertBOSrchwrdLog" parameterType="com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO" >
INSERT INTO GC_SRCHWRD_LOG (
SRCHWRD,
MBR_INNB,
CONECT_DOMN,
CONECT_URL,
SRCH_DT
) VALUES (
#{srchStr},
#{mbrInnb},
#{conectDomn},
#{conectUrl},
SYSDATE()
)
</insert>
<!-- 사용자 - 검색 - 상품명 검색어 조회--> <!-- 사용자 - 검색 - 상품명 검색어 조회-->
<select id="selectBOSrchGoodsNm" parameterType="com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO" resultType="dataMap"> <select id="selectBOSrchGoodsNm" parameterType="com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO" resultType="dataMap">
SELECT SELECT

View File

@@ -24,8 +24,6 @@
, 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
@@ -66,10 +64,6 @@
, 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
@@ -90,8 +84,6 @@
, #{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'))
@@ -136,10 +128,6 @@
, #{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}
@@ -202,7 +190,6 @@
, GOODS_INNB , GOODS_INNB
, GOODS_IMG_COURS , GOODS_IMG_COURS
, GOODS_NM , GOODS_NM
, GOODS_NM_EN
, SUBSCRPT_WTHDRAW_POSBL_AT , SUBSCRPT_WTHDRAW_POSBL_AT
, INDVDLZ_CANCL_POSBL_AT , INDVDLZ_CANCL_POSBL_AT
, INDVDLZ_DLIVY_POSBL_AT , INDVDLZ_DLIVY_POSBL_AT
@@ -217,7 +204,6 @@
, #{goodsInnb} , #{goodsInnb}
, #{goodsImgCours} , #{goodsImgCours}
, #{goodsNm} , #{goodsNm}
, #{goodsNmEn}
, #{subscrptWthdrawPosblAt} , #{subscrptWthdrawPosblAt}
, #{indvdlzCanclPosblAt} , #{indvdlzCanclPosblAt}
, #{indvdlzDlivyPosblAt} , #{indvdlzDlivyPosblAt}
@@ -307,10 +293,6 @@
, STEP85 , STEP85
, COMPNB_DSCNT_AT , COMPNB_DSCNT_AT
, SCTN_DSCNT_AT , SCTN_DSCNT_AT
, HSCODE
, REAL_WT
, VOL_WT
, PACKAGE_CNT
, PURCHS_DCSN_AT , PURCHS_DCSN_AT
, PURCHS_DCSN_QY , PURCHS_DCSN_QY
, RETURN_DLVY_APPLC_AT , RETURN_DLVY_APPLC_AT
@@ -340,8 +322,8 @@
, #{relateOrdrGoodsOptnInnb} , #{relateOrdrGoodsOptnInnb}
, #{ordrQy} , #{ordrQy}
, #{mlgAccmlCn} , #{mlgAccmlCn}
, SP.MLG_VALID_PD ,SP.MLG_VALID_PD
, SP.MLG_VALID_PD_AT ,SP.MLG_VALID_PD_AT
, #{npayGoodsOrdrnb} , #{npayGoodsOrdrnb}
, #{npayBundleDlvyNb} , #{npayBundleDlvyNb}
, #{posGoodsCd} , #{posGoodsCd}
@@ -374,12 +356,8 @@
, #{step65} , #{step65}
, #{step75} , #{step75}
, #{step85} , #{step85}
, GI.COMPNB_DSCNT_AT ,GI.COMPNB_DSCNT_AT
, GI.SCTN_DSCNT_AT ,GI.SCTN_DSCNT_AT
, #{hscode}
, #{realWt}
, #{volWt}
, #{packageCnt}
, 'N' , 'N'
, 0 , 0
, SG.RETURN_DLVY_APPLC_AT , SG.RETURN_DLVY_APPLC_AT
@@ -408,10 +386,7 @@
, 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
@@ -447,10 +422,7 @@
, #{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}
@@ -489,7 +461,6 @@
, 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
@@ -514,7 +485,6 @@
, #{sopmalCd} , #{sopmalCd}
, #{ordrInnb} , #{ordrInnb}
, #{setleAmt} , #{setleAmt}
, #{wonSetleAmt}
, #{pgCmpnyNm} , #{pgCmpnyNm}
, #{setleTyCd} , #{setleTyCd}
, #{pgInnb} , #{pgInnb}
@@ -1310,7 +1280,6 @@ 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}
@@ -1509,7 +1478,6 @@ FROM (
SELECT FG.SOPMAL_CD SELECT FG.SOPMAL_CD
, FG.GOODS_INNB , FG.GOODS_INNB
, FG.GOODS_NM , FG.GOODS_NM
, FG.GOODS_NM_EN
, FG.GOODS_KND_CD , FG.GOODS_KND_CD
, FG.GOODS_STTUS_CD , FG.GOODS_STTUS_CD
, FN_GET_COMMCODE_NAME('GOODS_STTUS', FG.GOODS_STTUS_CD) AS GOODS_STTUS_NM , FN_GET_COMMCODE_NAME('GOODS_STTUS', FG.GOODS_STTUS_CD) AS GOODS_STTUS_NM
@@ -1520,9 +1488,9 @@ FROM (
, FORMAT(IFNULL(FGO.CNSMRPRIC, 0), 0) AS CNSMRPRIC , FORMAT(IFNULL(FGO.CNSMRPRIC, 0), 0) AS CNSMRPRIC
, FORMAT(IFNULL(FGO.SLEPRIC, 0), 0) AS SLEPRIC , FORMAT(IFNULL(FGO.SLEPRIC, 0), 0) AS SLEPRIC
, CONCAT(OPTN1, IF(FGO.OPTN2 IS NULL , '', CONCAT('/', OPTN2)) , CONCAT(OPTN1, IF(FGO.OPTN2 IS NULL , '', CONCAT('/', OPTN2))
, IF(FGO.OPTN3 IS NULL , '', CONCAT('/', OPTN3)) , IF(FGO.OPTN3 IS NULL , '', CONCAT('/', OPTN3))
, IF(FGO.OPTN4 IS NULL , '', CONCAT('/', OPTN4))) AS OPTN , IF(FGO.OPTN4 IS NULL , '', CONCAT('/', OPTN4))) AS OPTN
, IMG.IMG AS GOODS_IMG_COURS ,IMG.IMG AS GOODS_IMG_COURS
, ( , (
SELECT FGI.IMG AS GOODS_IMG SELECT FGI.IMG AS GOODS_IMG
FROM GC_GOODS_IMAGE FGI FROM GC_GOODS_IMAGE FGI
@@ -1568,17 +1536,17 @@ FROM (
, FGO.CNSMRPRIC , FGO.CNSMRPRIC
, FGO.SLEPRIC , FGO.SLEPRIC
, CASE WHEN FGO.OPTN_NM_1 != '' AND FGO.OPTN_VAL_1 != '' , CASE WHEN FGO.OPTN_NM_1 != '' AND FGO.OPTN_VAL_1 != ''
THEN CONCAT(FGO.OPTN_NM_1,':',FGO.OPTN_VAL_1) THEN CONCAT(FGO.OPTN_NM_1,':',FGO.OPTN_VAL_1)
END OPTN1 END OPTN1
, CASE WHEN FGO.OPTN_NM_2 != '' AND FGO.OPTN_VAL_2 != '' , CASE WHEN FGO.OPTN_NM_2 != '' AND FGO.OPTN_VAL_2 != ''
THEN CONCAT(FGO.OPTN_NM_2,':',FGO.OPTN_VAL_2) THEN CONCAT(FGO.OPTN_NM_2,':',FGO.OPTN_VAL_2)
END OPTN2 END OPTN2
, CASE WHEN FGO.OPTN_NM_3 != '' AND FGO.OPTN_VAL_3 != '' , CASE WHEN FGO.OPTN_NM_3 != '' AND FGO.OPTN_VAL_3 != ''
THEN CONCAT(FGO.OPTN_NM_3,':',FGO.OPTN_VAL_3) THEN CONCAT(FGO.OPTN_NM_3,':',FGO.OPTN_VAL_3)
END OPTN3 END OPTN3
, CASE WHEN FGO.OPTN_NM_4 != '' AND FGO.OPTN_VAL_4 != '' , CASE WHEN FGO.OPTN_NM_4 != '' AND FGO.OPTN_VAL_4 != ''
THEN CONCAT(FGO.OPTN_NM_4,':',FGO.OPTN_VAL_4) THEN CONCAT(FGO.OPTN_NM_4,':',FGO.OPTN_VAL_4)
END OPTN4 END OPTN4
FROM GC_GOODS_OPTION FGO FROM GC_GOODS_OPTION FGO
WHERE FGO.OPTN_EXPSR_AT = 'Y' WHERE FGO.OPTN_EXPSR_AT = 'Y'
AND FGO.STDR_DV_AT = 'Y' AND FGO.STDR_DV_AT = 'Y'
@@ -1950,10 +1918,6 @@ FROM (
, FGO.OPTN_CD_2 , FGO.OPTN_CD_2
, FGO.OPTN_CD_3 , FGO.OPTN_CD_3
, FGO.OPTN_CD_4 , FGO.OPTN_CD_4
, FGO.HSCODE
, FGO.REAL_WT
, FGO.VOL_WT
, FGO.PACKAGE_CNT
, FGO.OPTN_INFO , FGO.OPTN_INFO
, FGO.OPTN_RELATE_NB , FGO.OPTN_RELATE_NB
FROM ( FROM (
@@ -1989,10 +1953,6 @@ FROM (
, FGO.OPTN_CD_2 , FGO.OPTN_CD_2
, FGO.OPTN_CD_3 , FGO.OPTN_CD_3
, FGO.OPTN_CD_4 , FGO.OPTN_CD_4
, FGO.HSCODE
, FGO.REAL_WT
, FGO.VOL_WT
, FGO.PACKAGE_CNT
, FGO.OPTN_INFO , FGO.OPTN_INFO
, FGO.OPTN_RELATE_NB , FGO.OPTN_RELATE_NB
FROM GC_GOODS_OPTION FGO FROM GC_GOODS_OPTION FGO
@@ -2019,16 +1979,11 @@ FROM (
ELSE FN_GET_COMMCODE_NAME('GOODS_STTUS', FG.GOODS_STTUS_CD) ELSE FN_GET_COMMCODE_NAME('GOODS_STTUS', FG.GOODS_STTUS_CD)
END AS GOODS_STTUS_NM END AS GOODS_STTUS_NM
, FG.GOODS_NM , FG.GOODS_NM
, FG.GOODS_NM_EN
, FGO.GOODS_OPTN_INNB , FGO.GOODS_OPTN_INNB
, FGO.OPTN_TY , FGO.OPTN_TY
, FGO.OPTN_RELATE_NB , FGO.OPTN_RELATE_NB
, FGO.COMPNB_DSCNT_AT , FGO.COMPNB_DSCNT_AT
, FGO.SCTN_DSCNT_AT , FGO.SCTN_DSCNT_AT
, FGO.HSCODE
, FGO.REAL_WT
, FGO.VOL_WT
, FGO.PACKAGE_CNT
, NULLIF(FGO.OPTN_ESSNTL_AT, '') AS OPTN_ESSNTL_AT , NULLIF(FGO.OPTN_ESSNTL_AT, '') AS OPTN_ESSNTL_AT
, FORMAT(IFNULL(FGO.CNSMRPRIC, 0) * #{qy}, 0) AS SUB_CNSMRPRIC_BY_FORMAT , FORMAT(IFNULL(FGO.CNSMRPRIC, 0) * #{qy}, 0) AS SUB_CNSMRPRIC_BY_FORMAT
, IFNULL(FGO.CNSMRPRIC, 0) * #{qy} AS SUB_CNSMRPRIC , IFNULL(FGO.CNSMRPRIC, 0) * #{qy} AS SUB_CNSMRPRIC
@@ -2089,10 +2044,6 @@ FROM (
, FGO.OPTN_RELATE_NB , FGO.OPTN_RELATE_NB
, FGO.COMPNB_DSCNT_AT , FGO.COMPNB_DSCNT_AT
, FGO.SCTN_DSCNT_AT , FGO.SCTN_DSCNT_AT
, HSCODE
, REAL_WT
, VOL_WT
, PACKAGE_CNT
FROM GC_GOODS_OPTION FGO FROM GC_GOODS_OPTION FGO
WHERE FGO.GOODS_OPTN_INNB = #{goodsOptnInnb} WHERE FGO.GOODS_OPTN_INNB = #{goodsOptnInnb}
) FGO ON FGO.GOODS_INNB = FG.GOODS_INNB ) FGO ON FGO.GOODS_INNB = FG.GOODS_INNB
@@ -2722,14 +2673,6 @@ 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

@@ -8,8 +8,8 @@
resultType="dataMap"> resultType="dataMap">
<![CDATA[ <![CDATA[
SELECT GS.SUBSVC_INNB SELECT GS.SUBSVC_INNB
, SUBSVC_STTUS_CD , SUBSVC_STTUS_CD
, CONCAT(GS.SUBSVC_NM, ' (', GS.SUBSVC_GNR_NM, ')') AS SUBSVC_CONCAT_NM , CONCAT(GS.SUBSVC_NM, ' (', GS.SUBSVC_GNR_NM, ')') AS SUBSVC_CONCAT_NM
FROM GC_SUBSVC GS FROM GC_SUBSVC GS
WHERE GS.SOPMAL_CD = 'SK' WHERE GS.SOPMAL_CD = 'SK'
AND GS.SUBSVC_STTUS_CD != '03' AND GS.SUBSVC_STTUS_CD != '03'
@@ -20,7 +20,6 @@
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>
@@ -34,7 +33,7 @@
, GS.SUBSVC_NM , GS.SUBSVC_NM
, GS.SUB_PD /*구독기간*/ , GS.SUB_PD /*구독기간*/
, GS.SUBSVC_GNR /*기수*/ , GS.SUBSVC_GNR /*기수*/
, (SELECT MAX(A.SUBSVC_GNR) + 1 FROM GC_SUBSVC A WHERE A.SOPMAL_CD = GS.SOPMAL_CD AND A.SUBSVC_NM = GS.SUBSVC_NM) AS SUBSVC_NEXT_GNR /*다음기수*/ , (SELECT MAX(A.SUBSVC_GNR) + 1 FROM GC_SUBSVC A WHERE A.SOPMAL_CD = GS.SOPMAL_CD AND A.SUBSVC_NM = GS.SUBSVC_NM) AS SUBSVC_NEXT_GNR /*다음기수*/
, GS.SUBSVC_GNR_NM /*기수명*/ , GS.SUBSVC_GNR_NM /*기수명*/
, CONCAT(GS.SUBSVC_NM, ' (', GS.SUBSVC_GNR_NM, ')') AS SUBSVC_CONCAT_NM , CONCAT(GS.SUBSVC_NM, ' (', GS.SUBSVC_GNR_NM, ')') AS SUBSVC_CONCAT_NM
, GS.DLVY_CNT /*배송횟수*/ , GS.DLVY_CNT /*배송횟수*/
@@ -42,7 +41,7 @@
, GS.SUBSVC_CT /*구독료*/ , GS.SUBSVC_CT /*구독료*/
, GS.TME_DLVY_AMT /*1회배송비*/ , GS.TME_DLVY_AMT /*1회배송비*/
, GS.CNSMRPRIC /*소비자가*/ , GS.CNSMRPRIC /*소비자가*/
, GS.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT) as SLEPRIC /*실판매가=구독료+(1회배송비X배송횟수)*/ , GS.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT) as SELPRIC /*실판매가=구독료+(1회배송비X배송횟수)*/
, ROUND((GS.CNSMRPRIC - (GS.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT))) / NULLIF(GS.CNSMRPRIC, 0) * 100, 0) AS DSCNT_RAITO , ROUND((GS.CNSMRPRIC - (GS.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT))) / NULLIF(GS.CNSMRPRIC, 0) * 100, 0) AS DSCNT_RAITO
, GS.INVNTRY_QY /*재고수량*/ , GS.INVNTRY_QY /*재고수량*/
, GS.USEFUL_INVNTRY_QY /*판매재고수량*/ , GS.USEFUL_INVNTRY_QY /*판매재고수량*/
@@ -61,15 +60,6 @@
, 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}
@@ -84,61 +74,60 @@
, 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
, GS.SUBSVC_INNB , GC.SUBSVC_INNB
, GS.SOPMAL_CD , GC.SOPMAL_CD
, CONCAT(GS.SUBSVC_NM, ' (', GS.SUBSVC_GNR_NM, ')') AS SUBSVC_CONCAT_NM , GC.SUBSVC_NM
, GS.SUBSVC_NM , GC.SUBSVC_GNR
, GS.SUBSVC_GNR , GC.SUBSVC_GNR_NM
, GS.SUBSVC_GNR_NM , GC.DLVY_CNT
, GS.DLVY_CNT , GC.INVNTRY_QY
, GS.INVNTRY_QY , GC.INVNTRY_QY - GC.USEFUL_INVNTRY_QY AS AVAIL_QT /*가용제고*/
, GS.INVNTRY_QY - GS.USEFUL_INVNTRY_QY AS AVAIL_QT /*가용제고*/ , GC.SUBSVC_STTUS_CD
, GS.SUBSVC_STTUS_CD , FN_GET_COMMCODE_NAME('GOODS_STTUS', GC.SUBSVC_STTUS_CD) AS SUBSVC_STTUS /*구독서비스 상태*/
, FN_GET_COMMCODE_NAME('GOODS_STTUS', GS.SUBSVC_STTUS_CD) AS SUBSVC_STTUS /*구독서비스 상태*/ , FN_GET_COMMCODE_NAME('EXPSR_DV', GC.EXPSR_DV_CD) AS EXPSR_DV /*노출구분*/
, FN_GET_COMMCODE_NAME('EXPSR_DV', GS.EXPSR_DV_CD) AS EXPSR_DV /*노출구분*/ , GC.SUBSVC_CT /*구독료*/
, GS.SUBSVC_CT /*구독료*/ , GC.TME_DLVY_AMT /*1회배송비*/
, GS.TME_DLVY_AMT /*1회배송비*/ , GC.CNSMRPRIC /*소비자가*/
, GS.CNSMRPRIC /*소비자가*/ , GC.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT) as SELPRIC /*실판매가=구독료+(1회배송비X배송횟수)*/
, GS.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT) as SELPRIC /*실판매가=구독료+(1회배송비X배송횟수)*/ , GC.IMG /*섬네일 이미지*/
, GS.IMG /*섬네일 이미지*/ , GC.LAST_PROCS_ODR /*최종차수*/
, GS.LAST_PROCS_ODR /*최종차수*/ FROM GC_SUBSVC GC
FROM GC_SUBSVC GS WHERE GC.USE_AT = 'Y'
WHERE GS.USE_AT = 'Y' AND GC.SOPMAL_CD = #{sopmalCd}
AND GS.SOPMAL_CD = #{sopmalCd}
<if test="srchSelSubsvcNm != null and srchSelSubsvcNm != ''"> <if test="srchSelSubsvcNm != null and srchSelSubsvcNm != ''">
AND GS.SUBSVC_NM = #{srchSelSubsvcNm} /*구독서비스 명*/ AND GC.SUBSVC_NM = #{srchSelSubsvcNm} /*구독서비스 명*/
</if> </if>
<if test="srchSelSubsvcGnr != null and srchSelSubsvcGnr != ''"> <if test="srchSelSubsvcGnr != null and srchSelSubsvcGnr != ''">
AND GS.SUBSVC_GNR = #{srchSelSubsvcGnr} /*기수*/ AND GC.SUBSVC_GNR = #{srchSelSubsvcGnr} /*기수*/
</if> </if>
<if test="srchSubsvcNm != null and srchSubsvcNm != ''"> <if test="srchSubsvcNm != null and srchSubsvcNm != ''">
AND GS.SUBSVC_NM LIKE CONCAT('%',#{srchSubsvcNm},'%') /*구독서비스 명*/ AND GC.SUBSVC_NM LIKE CONCAT('%',#{srchSubsvcNm},'%') /*구독서비스 명*/
</if> </if>
<if test="srchSubsvcGnrNm != null and srchSubsvcGnrNm != ''"> <if test="srchSubsvcGnrNm != null and srchSubsvcGnrNm != ''">
AND GS.SUBSVC_GNR_NM LIKE CONCAT('%',#{srchSubsvcGnrNm},'%') /*기수명*/ AND GC.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 GS.SUBSVC_STTUS_CD IN AND GC.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 GS.EXPSR_DV_CD = #{srchExpsrDvCd} /*노출여부*/ AND GC.EXPSR_DV_CD = #{srchExpsrDvCd} /*노출여부*/
</if> </if>
ORDER BY ORDER BY
<choose> <choose>
<when test="sortDv == 'subsvcGnrAsc'"> <when test="sortDv == 'subsvcGnrAsc'">
GS.SUBSVC_NM ASC, SUBSVC_GNR ASC, GC.SUBSVC_NM ASC, SUBSVC_GNR ASC,
</when> </when>
<otherwise> <otherwise>
GS.SUBSVC_NM DESC, SUBSVC_GNR DESC, GC.SUBSVC_NM DESC, SUBSVC_GNR DESC,
</otherwise> </otherwise>
</choose> </choose>
GS.SUBSVC_INNB ASC GC.SUBSVC_INNB ASC
) TB ) TB
WHERE (@ROWNUM:=0)=0 WHERE (@ROWNUM:=0)=0
) PV ) PV
@@ -172,7 +161,6 @@
<update id="deleteBOMngrSubsvc" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO"> <update id="deleteBOMngrSubsvc" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
UPDATE GC_SUBSVC UPDATE GC_SUBSVC
SET USE_AT = 'N' SET USE_AT = 'N'
,SUBSVC_NM = CONCAT('*', SUBSVC_NM)
,UPDUSR = #{updusr} ,UPDUSR = #{updusr}
,UPDT_DT = NOW() ,UPDT_DT = NOW()
WHERE SOPMAL_CD = #{sopmalCd} WHERE SOPMAL_CD = #{sopmalCd}
@@ -202,20 +190,17 @@
, 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}
<choose> <choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrBgnDt)"> <when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrBgnDt)">
, EXPSR_BGN_DT = #{expsrBgnDt} , EXPSR_BGN_DT = #{expsrBgnDt}
</when> </when>
<otherwise> <otherwise>
, EXPSR_BGN_DT = null , EXPSR_BGN_DT = null
</otherwise> </otherwise>
</choose> </choose>
<choose> <choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrEndDt)"> <when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(expsrEndDt)">
, EXPSR_END_DT = #{expsrEndDt} , EXPSR_END_DT = #{expsrEndDt}
@@ -227,9 +212,9 @@
, SUBSVC_DC = #{subsvcDc} , SUBSVC_DC = #{subsvcDc}
, MBL_SUBSVC_DC = #{mblSubsvcDc} , MBL_SUBSVC_DC = #{mblSubsvcDc}
, MBL_SUBSVC_DC_PC_SAME_AT = #{mblSubsvcDcPcSameAt} , MBL_SUBSVC_DC_PC_SAME_AT = #{mblSubsvcDcPcSameAt}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(img)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(img)">
, IMG = #{img} , IMG = #{img}
</if> </if>
, UPDUSR = #{updusr} , UPDUSR = #{updusr}
, UPDT_DT = NOW() , UPDT_DT = NOW()
WHERE SUBSVC_INNB = #{subsvcInnb} WHERE SUBSVC_INNB = #{subsvcInnb}
@@ -263,7 +248,7 @@
, USE_AT , USE_AT
, REGUSR , REGUSR
, REGIST_DT) , REGIST_DT)
VALUES (#{sopmalCd} VALUES (#{sopmalCd}
, #{subsvcNm} , #{subsvcNm}
, #{subPd} , #{subPd}
, #{subsvcGnr} , #{subsvcGnr}
@@ -313,89 +298,4 @@
WHERE GS.SOPMAL_CD = #{sopmalCd} WHERE GS.SOPMAL_CD = #{sopmalCd}
AND GS.SUBSVC_NM = #{subsvcNm} AND GS.SUBSVC_NM = #{subsvcNm}
</select> </select>
<!-- 구독서비스 주문에 따른 판매재고수량 수정 -->
<update id="updateSubsvcOrdrUsefulInvntryQy" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
<![CDATA[
UPDATE GC_SUBSVC GS
INNER JOIN (
SELECT
GO.SUBSVC_INNB,
COUNT(*) AS ORDR_QY
FROM GC_ORDER GO
WHERE GO.SOPMAL_CD = #{sopmalCd}
AND GO.ORDR_INNB = #{ordrInnb}
GROUP BY
GO.SUBSVC_INNB
) SUBQUERY
ON GS.SUBSVC_INNB = SUBQUERY.SUBSVC_INNB
SET GS.USEFUL_INVNTRY_QY = IFNULL(GS.USEFUL_INVNTRY_QY, 0) + SUBQUERY.ORDR_QY
WHERE GS.SUBSVC_INNB = SUBQUERY.SUBSVC_INNB
]]>
</update>
<!-- 구독서비스 환불에 따른 판매재고수량 수정 -->
<update id="updateSubsvcRefundUsefulInvntryQy" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
<![CDATA[
UPDATE GC_SUBSVC GS
INNER JOIN (
SELECT
GO.SUBSVC_INNB,
SUM(CASE WHEN GOR.REFUND_TY_CD = '01' THEN 1 ELSE 0 END) AS REFUND_QY
FROM GC_ORDER GO
INNER JOIN GC_ORDER_REFUND GOR
ON GO.ORDR_INNB = GOR.ORDR_INNB
WHERE GO.SOPMAL_CD = #{sopmalCd}
AND GO.ORDR_INNB = #{ordrInnb}
GROUP BY
GO.SUBSVC_INNB
) SUBQUERY
ON GS.SUBSVC_INNB = SUBQUERY.SUBSVC_INNB
SET GS.USEFUL_INVNTRY_QY = IFNULL(GS.USEFUL_INVNTRY_QY, 0) - SUBQUERY.REFUND_QY
WHERE GS.SUBSVC_INNB = SUBQUERY.SUBSVC_INNB
]]>
</update>
<!-- 구독서비스 주문무효에 따른 판매재고수량 수정 -->
<update id="updateSubsvcCancelOrderUsefulInvntryQy" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
<![CDATA[
UPDATE GC_SUBSVC GS
INNER JOIN (
SELECT
GO.SUBSVC_INNB,
COUNT(*) AS ORDR_QY
FROM GC_ORDER GO
WHERE GO.SOPMAL_CD = #{sopmalCd}
AND GO.ORDR_INNB = #{ordrInnb}
GROUP BY
GO.SUBSVC_INNB
) SUBQUERY
ON GS.SUBSVC_INNB = SUBQUERY.SUBSVC_INNB
SET GS.USEFUL_INVNTRY_QY = IFNULL(GS.USEFUL_INVNTRY_QY, 0) - SUBQUERY.ORDR_QY
WHERE GS.SUBSVC_INNB = SUBQUERY.SUBSVC_INNB
]]>
</update>
<!-- 판매재고수량 변경에 따른 구독서비스 상태 수정 -->
<update id="updateInvntryPolicySubsvcSttusChng" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
<![CDATA[
UPDATE GC_SUBSVC
SET SUBSVC_STTUS_CD =
CASE
WHEN INVNTRY_POLICY_CD = '02' THEN SUBSVC_STTUS_CD
ELSE
CASE
WHEN (INVNTRY_QY - IFNULL(USEFUL_INVNTRY_QY, 0)) > IFNULL(AVLINV_LMTT_QY, 0)
AND SUBSVC_STTUS_CD <> '03' THEN '01'
WHEN (INVNTRY_QY - IFNULL(USEFUL_INVNTRY_QY, 0)) <= IFNULL(AVLINV_LMTT_QY, 0)
AND SUBSVC_STTUS_CD <> '03' THEN '02'
ELSE SUBSVC_STTUS_CD
END
END
WHERE SUBSVC_INNB = #{subsvcInnb}
AND SOPMAL_CD = #{sopmalCd}
AND USE_AT = 'Y'
]]>
</update>
</mapper> </mapper>

View File

@@ -11,44 +11,24 @@
AND FM.USE_AT = 'Y' AND FM.USE_AT = 'Y'
]]> ]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchMbrNm)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchMbrNm)">
<choose> <![CDATA[
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '0')"> AND FM.MBR_NM = #{srchMbrNm}
AND FM.MBR_NM LIKE CONCAT('%', #{srchMbrNm}, '%') ]]>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '1')">
AND FM.MBR_NM = #{srchMbrNm}
</when>
</choose>
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKywordID)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKywordID)">
<choose> <![CDATA[
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '0')"> AND FM.MBR_ID = #{srchKywordID}
AND FM.MBR_ID LIKE CONCAT('%', #{srchKywordID}, '%') ]]>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '1')">
AND FM.MBR_ID = #{srchKywordID}
</when>
</choose>
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKywordEmail)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKywordEmail)">
<choose> <![CDATA[
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '0')"> AND FM.EMAIL = (select HEX(AES_ENCRYPT(#{srchKywordEmail} , #{secretKey})))
AND AES_DECRYPT(UNHEX(FM.EMAIL), #{secretKey}) LIKE CONCAT('%', #{srchKywordEmail}, '%') ]]>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '1')">
AND FM.EMAIL = (select HEX(AES_ENCRYPT(#{srchKywordEmail} , #{secretKey})))
</when>
</choose>
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKywordMb)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKywordMb)">
<choose> <![CDATA[
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '0')"> AND FM.MBTLNB = (select HEX(AES_ENCRYPT(REPLACE(#{srchKywordMb},'-',''), #{secretKey})))
AND AES_DECRYPT(UNHEX(FM.MBTLNB), #{secretKey}) LIKE CONCAT('%', #{srchKywordMb}, '%') ]]>
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '1')">
AND FM.MBTLNB = (select HEX(AES_ENCRYPT(REPLACE(#{srchKywordMb},'-',''), #{secretKey})))
</when>
</choose>
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(actionDv)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(actionDv)">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(eventYn)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(eventYn)">
@@ -764,9 +744,6 @@
<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},
@@ -3691,11 +3668,9 @@
AND GMP.SOPMAL_CD = #{sopmalCd} AND GMP.SOPMAL_CD = #{sopmalCd}
LEFT JOIN GC_MEMBER_GRAD MG ON GMP.MBR_GRAD_INNB = MG.MBR_GRAD_INNB LEFT JOIN GC_MEMBER_GRAD MG ON GMP.MBR_GRAD_INNB = MG.MBR_GRAD_INNB
AND GMP.SOPMAL_CD = MG.SOPMAL_CD AND GMP.SOPMAL_CD = MG.SOPMAL_CD
AND MG.USE_AT = 'Y'
LEFT JOIN GC_MEMBER_GRAD MG_NEXT LEFT JOIN GC_MEMBER_GRAD MG_NEXT
ON MG.MBR_GRAD_ORDR + 1 = MG_NEXT.MBR_GRAD_ORDR ON MG.MBR_GRAD_ORDR + 1 = MG_NEXT.MBR_GRAD_ORDR
AND MG.SOPMAL_CD = MG_NEXT.SOPMAL_CD AND MG.SOPMAL_CD = MG_NEXT.SOPMAL_CD
AND MG_NEXT.USE_AT = 'Y'
LEFT JOIN GC_ORDER O ON MBR.MBR_DV_CD = O.MBR_DV_CD LEFT JOIN GC_ORDER O ON MBR.MBR_DV_CD = O.MBR_DV_CD
AND MBR.MBR_INNB = O.MBR_INNB AND MBR.MBR_INNB = O.MBR_INNB
AND O.USE_AT = 'Y' AND O.USE_AT = 'Y'

View File

@@ -13,7 +13,6 @@
<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,7 +683,6 @@
,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"/>
@@ -1332,20 +1331,6 @@
</select> </select>
<!-- 주문 배송 추적 조회 : 송장번호 조회 -->
<select id = "selectBOOrdrInvcnb"
parameterType="com.wb.domainserver.domain.gcone.ordr.dlivy.vo.BODlivyVO"
resultType = "String">
<![CDATA[
SELECT
GGE.INVCNB
FROM GC_GOODS_EXPORT GGE
WHERE GGE.SOPMAL_CD = #{sopmalCd}
AND GGE.ORDR_DLVY_INNB = #{ordrDlvyInnb}
]]>
</select>
<!-- 주문 배송 추적 받는사람, 보내는사람 조회 --> <!-- 주문 배송 추적 받는사람, 보내는사람 조회 -->
<select id = "selectBOOrdrDlvyDtlInqire" <select id = "selectBOOrdrDlvyDtlInqire"
parameterType="com.wb.domainserver.domain.gcone.ordr.dlivy.vo.BODlivyVO" parameterType="com.wb.domainserver.domain.gcone.ordr.dlivy.vo.BODlivyVO"

View File

@@ -476,9 +476,6 @@
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>
<!-- 전체 주문 조회 > 매장 목록 조회 --> <!-- 전체 주문 조회 > 매장 목록 조회 -->
@@ -517,10 +514,7 @@
, 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
, CASE , FN_GET_ORDER_GOODS_NAME(FO.SOPMAL_CD, FO.ORDR_INNB) AS GOODS_NM -- 상품명
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 -- 상품 종수
, ( , (
@@ -586,7 +580,6 @@
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
@@ -604,12 +597,9 @@
AND FMGM.SOPMAL_CD = FO.SOPMAL_CD -- 주문의 회원번호만 등급을 조회하면 되므로 조건을 추가함. AND FMGM.SOPMAL_CD = FO.SOPMAL_CD -- 주문의 회원번호만 등급을 조회하면 되므로 조건을 추가함.
WHERE FM.USE_AT = 'Y' WHERE FM.USE_AT = 'Y'
) MBR ON 1=1 ) MBR ON 1=1
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 에 데이터가 있을 때 조건
@@ -1006,7 +996,6 @@
, 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
@@ -1073,13 +1062,9 @@
, FOI.ORDR_GOODS_INNB AS ordr_goods_innb , FOI.ORDR_GOODS_INNB AS ordr_goods_innb
, FO.SMRT_SHOPNG_ORDRNB AS npay_goods_ordrnb , FO.SMRT_SHOPNG_ORDRNB AS npay_goods_ordrnb
, CASE , CASE
WHEN FOI.OPTN_NM IS NOT NULL THEN CONCAT(FOI.GOODS_NM, ' ', FOI.OPTN_NM) WHEN FOI.OPTN_NM IS NOT NULL THEN FOI.OPTN_NM
ELSE FOI.GOODS_NM ELSE FOI.GOODS_NM
END AS goods_nm END AS goods_nm
, CASE
WHEN FOI.OPTN_NM IS NOT NULL THEN CONCAT(FOI.GOODS_NM_EN, ' ', FOI.OPTN_NM)
ELSE FOI.GOODS_NM_EN
END AS goods_nm_en
, FOI.INVNTRY_QY AS invntry_qy , FOI.INVNTRY_QY AS invntry_qy
, 0 AS prchspric , 0 AS prchspric
, FOI.SLEPRIC AS cnsmrpric , FOI.SLEPRIC AS cnsmrpric
@@ -1110,16 +1095,7 @@
, '선불' AS dlvy_amt_setle_mth_nm , '선불' AS dlvy_amt_setle_mth_nm
, 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
, FOI.hscode
, FOI.real_wt
, FOI.VOL_TW
, FOI.package_cnt
, FOSH.dlvy_mssage_cn , FOSH.dlvy_mssage_cn
, FN_GET_COMMCODE_NAME('ORDR_STTUS', FOSH.ORDR_STTUS_CD) AS shipping_sttus_nm
, CASE WHEN FO.SUBSVC_AT = 'Y'
THEN '구독'
ELSE '일반'
END AS subsvc_at
FROM GC_ORDER FO FROM GC_ORDER FO
INNER JOIN LATERAL ( INNER JOIN LATERAL (
SELECT GOI.SOPMAL_CD SELECT GOI.SOPMAL_CD
@@ -1128,16 +1104,11 @@
, GOI.ORDR_GOODS_INNB , GOI.ORDR_GOODS_INNB
, GOI.ORDR_GOODS_OPTN_INNB , GOI.ORDR_GOODS_OPTN_INNB
, GOI.OPTN_CD_1 , GOI.OPTN_CD_1
, GOI.HSCODE
, GOI.REAL_WT
, GOI.VOL_TW
, GOI.PACKAGE_CNT
, GOI.ORDR_STTUS_CD , GOI.ORDR_STTUS_CD
, LAG(GOI.ORDR_INNB) OVER(ORDER BY GOI.ORDR_INNB) AS REV_ORDR_INNB , LAG(GOI.ORDR_INNB) OVER(ORDER BY GOI.ORDR_INNB) AS REV_ORDR_INNB
, LAG(GOI.ORDR_DLVY_INNB) OVER(ORDER BY GOI.ORDR_INNB) AS REV_ORDR_DLVY_INNB , LAG(GOI.ORDR_DLVY_INNB) OVER(ORDER BY GOI.ORDR_INNB) AS REV_ORDR_DLVY_INNB
, MAX(FN_GET_GOODS_IMAGE(GOI.SOPMAL_CD, GOI.GOODS_INNB, '03')) AS GOODS_IMG_COURS , MAX(FN_GET_GOODS_IMAGE(GOI.SOPMAL_CD, GOI.GOODS_INNB, '03')) AS GOODS_IMG_COURS
, MAX(GOI.GOODS_NM) AS GOODS_NM , MAX(GOI.GOODS_NM) AS GOODS_NM
, MAX(GOI.GOODS_NM_EN) AS GOODS_NM_EN
, MAX(FN_GET_ORDER_GOODS_OPTN_NAME(GOI.SOPMAL_CD, GOI.ORDR_INNB, GOI.ORDR_GOODS_OPTN_INNB)) AS OPTN_NM , MAX(FN_GET_ORDER_GOODS_OPTN_NAME(GOI.SOPMAL_CD, GOI.ORDR_INNB, GOI.ORDR_GOODS_OPTN_INNB)) AS OPTN_NM
, SUM(GOI.ORDR_QY) AS ORDR_QY , SUM(GOI.ORDR_QY) AS ORDR_QY
, SUM(GOI.SLEPRIC) AS SLEPRIC , SUM(GOI.SLEPRIC) AS SLEPRIC
@@ -1167,10 +1138,6 @@
, GOI.ORDR_GOODS_INNB , GOI.ORDR_GOODS_INNB
, GOI.ORDR_GOODS_OPTN_INNB , GOI.ORDR_GOODS_OPTN_INNB
, GOI.OPTN_CD_1 , GOI.OPTN_CD_1
, GOI.HSCODE
, GOI.REAL_WT
, GOI.VOL_TW
, GOI.PACKAGE_CNT
, GOI.ORDR_STTUS_CD , GOI.ORDR_STTUS_CD
) FOI ) FOI
ON FOI.SOPMAL_CD = FO.SOPMAL_CD ON FOI.SOPMAL_CD = FO.SOPMAL_CD
@@ -1237,7 +1204,6 @@
, GROUP_CONCAT(A.ORDR_GOODS_INNB ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS ORDR_GOODS_INNB , GROUP_CONCAT(A.ORDR_GOODS_INNB ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS ORDR_GOODS_INNB
, GROUP_CONCAT(A.NPAY_GOODS_ORDRNB ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS NPAY_GOODS_ORDRNB , GROUP_CONCAT(A.NPAY_GOODS_ORDRNB ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS NPAY_GOODS_ORDRNB
, GROUP_CONCAT(A.GOODS_NM ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS GOODS_NM , GROUP_CONCAT(A.GOODS_NM ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS GOODS_NM
, GROUP_CONCAT(A.GOODS_NM_EN ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS GOODS_NM_EN
, GROUP_CONCAT(A.INVNTRY_QY ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS INVNTRY_QY , GROUP_CONCAT(A.INVNTRY_QY ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS INVNTRY_QY
, GROUP_CONCAT(A.PRCHSPRIC ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS PRCHSPRIC , GROUP_CONCAT(A.PRCHSPRIC ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS PRCHSPRIC
, GROUP_CONCAT(A.CNSMRPRIC ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS CNSMRPRIC , GROUP_CONCAT(A.CNSMRPRIC ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS CNSMRPRIC
@@ -1265,13 +1231,7 @@
, GROUP_CONCAT(A.DLVY_AMT_SETLE_MTH_NM ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS DLVY_AMT_SETLE_MTH_NM , GROUP_CONCAT(A.DLVY_AMT_SETLE_MTH_NM ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS DLVY_AMT_SETLE_MTH_NM
, GROUP_CONCAT(A.ORDR_TY_NM ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS ORDR_TY_NM , GROUP_CONCAT(A.ORDR_TY_NM ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS ORDR_TY_NM
, GROUP_CONCAT(A.OPTN_CD_1 ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS OPTN_CD_1 , GROUP_CONCAT(A.OPTN_CD_1 ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS OPTN_CD_1
, GROUP_CONCAT(A.HSCODE ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS HSCODE
, GROUP_CONCAT(A.REAL_WT ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS REAL_WT
, GROUP_CONCAT(A.VOL_TW ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS VOL_TW
, GROUP_CONCAT(A.PACKAGE_CNT ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS PACKAGE_CNT
, GROUP_CONCAT(A.DLVY_MSSAGE_CN ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS DLVY_MSSAGE_CN , GROUP_CONCAT(A.DLVY_MSSAGE_CN ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS DLVY_MSSAGE_CN
, GROUP_CONCAT(A.SHIPPING_STTUS_NM ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS SHIPPING_STTUS_NM
, GROUP_CONCAT(A.SUBSVC_AT ORDER BY A.ORDR_GOODS_INNB ASC SEPARATOR '\n') AS SUBSVC_AT
FROM ( FROM (
SELECT FOI.ORDR_DLVY_INNB AS EXPORT_GROUP_INNB SELECT FOI.ORDR_DLVY_INNB AS EXPORT_GROUP_INNB
, CONCAT(FO.ORDR_INNB, '-', FOI.ORDR_DLVY_INNB) AS ORDR_INNB_WITH_EXPORT_GROUP_INNB , CONCAT(FO.ORDR_INNB, '-', FOI.ORDR_DLVY_INNB) AS ORDR_INNB_WITH_EXPORT_GROUP_INNB
@@ -1304,13 +1264,9 @@
, FOI.ORDR_GOODS_INNB , FOI.ORDR_GOODS_INNB
, FO.SMRT_SHOPNG_ORDRNB AS NPAY_GOODS_ORDRNB , FO.SMRT_SHOPNG_ORDRNB AS NPAY_GOODS_ORDRNB
, CASE , CASE
WHEN FOI.OPTN_NM IS NOT NULL THEN CONCAT(FOI.GOODS_NM, ' ', FOI.OPTN_NM) WHEN FOI.OPTN_NM IS NOT NULL THEN FOI.OPTN_NM
ELSE FOI.GOODS_NM ELSE FOI.GOODS_NM
END AS GOODS_NM END AS GOODS_NM
, CASE
WHEN FOI.OPTN_NM IS NOT NULL THEN CONCAT(FOI.GOODS_NM_EN, ' ', FOI.OPTN_NM)
ELSE FOI.GOODS_NM_EN
END AS GOODS_NM_EN
, FOI.INVNTRY_QY , FOI.INVNTRY_QY
, 0 AS PRCHSPRIC , 0 AS PRCHSPRIC
, FOI.SLEPRIC AS CNSMRPRIC , FOI.SLEPRIC AS CNSMRPRIC
@@ -1341,16 +1297,7 @@
, '선불' AS DLVY_AMT_SETLE_MTH_NM , '선불' AS DLVY_AMT_SETLE_MTH_NM
, 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
, FOI.HSCODE
, FOI.REAL_WT
, FOI.VOL_TW
, FOI.PACKAGE_CNT
, FOSH.DLVY_MSSAGE_CN , FOSH.DLVY_MSSAGE_CN
, FN_GET_COMMCODE_NAME('ORDR_STTUS', FOSH.ORDR_STTUS_CD) AS SHIPPING_STTUS_NM
, CASE WHEN FO.SUBSVC_AT = 'Y'
THEN '구독'
ELSE '일반'
END AS SUBSVC_AT
FROM GC_ORDER FO FROM GC_ORDER FO
INNER JOIN LATERAL ( INNER JOIN LATERAL (
SELECT GOI.SOPMAL_CD SELECT GOI.SOPMAL_CD
@@ -1359,16 +1306,11 @@
, GOI.ORDR_GOODS_INNB , GOI.ORDR_GOODS_INNB
, GOI.ORDR_GOODS_OPTN_INNB , GOI.ORDR_GOODS_OPTN_INNB
, GOI.OPTN_CD_1 , GOI.OPTN_CD_1
, GOI.HSCODE
, GOI.REAL_WT
, GOI.VOL_TW
, GOI.PACKAGE_CNT
, GOI.ORDR_STTUS_CD , GOI.ORDR_STTUS_CD
, LAG(GOI.ORDR_INNB) OVER(ORDER BY GOI.ORDR_INNB) AS REV_ORDR_INNB , LAG(GOI.ORDR_INNB) OVER(ORDER BY GOI.ORDR_INNB) AS REV_ORDR_INNB
, LAG(GOI.ORDR_DLVY_INNB) OVER(ORDER BY GOI.ORDR_INNB) AS REV_ORDR_DLVY_INNB , LAG(GOI.ORDR_DLVY_INNB) OVER(ORDER BY GOI.ORDR_INNB) AS REV_ORDR_DLVY_INNB
, MAX(FN_GET_GOODS_IMAGE(GOI.SOPMAL_CD, GOI.GOODS_INNB, '03')) AS GOODS_IMG_COURS , MAX(FN_GET_GOODS_IMAGE(GOI.SOPMAL_CD, GOI.GOODS_INNB, '03')) AS GOODS_IMG_COURS
, MAX(GOI.GOODS_NM) AS GOODS_NM , MAX(GOI.GOODS_NM) AS GOODS_NM
, MAX(GOI.GOODS_NM_EN) AS GOODS_NM_EN
, MAX(FN_GET_ORDER_GOODS_OPTN_NAME(GOI.SOPMAL_CD, GOI.ORDR_INNB, GOI.ORDR_GOODS_OPTN_INNB)) AS OPTN_NM , MAX(FN_GET_ORDER_GOODS_OPTN_NAME(GOI.SOPMAL_CD, GOI.ORDR_INNB, GOI.ORDR_GOODS_OPTN_INNB)) AS OPTN_NM
, SUM(GOI.ORDR_QY) AS ORDR_QY , SUM(GOI.ORDR_QY) AS ORDR_QY
, SUM(GOI.SLEPRIC) AS SLEPRIC , SUM(GOI.SLEPRIC) AS SLEPRIC
@@ -1398,10 +1340,6 @@
, GOI.ORDR_GOODS_INNB , GOI.ORDR_GOODS_INNB
, GOI.ORDR_GOODS_OPTN_INNB , GOI.ORDR_GOODS_OPTN_INNB
, GOI.OPTN_CD_1 , GOI.OPTN_CD_1
, GOI.HSCODE
, GOI.REAL_WT
, GOI.VOL_TW
, GOI.PACKAGE_CNT
, GOI.ORDR_STTUS_CD , GOI.ORDR_STTUS_CD
) FOI ) FOI
ON FOI.SOPMAL_CD = FO.SOPMAL_CD ON FOI.SOPMAL_CD = FO.SOPMAL_CD
@@ -1440,125 +1378,6 @@
GROUP BY A.ORDR_INNB GROUP BY A.ORDR_INNB
) EXCEL ) EXCEL
</select> </select>
<!-- 전체 주문 조회 > 엑셀다운로드 발주서 -->
<select id="selectExcelListPurchOrder" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrSrchVO" resultType="dataMap">
SELECT
GO.ORDR_RCEPT_DT,
'UNIHAN' AS ENTRPS_CD,
'UNIHAN CO.,LTD.' AS ENTRPS_NM,
'03-5990-2880' AS ENTRPS_TEL,
'RM.302,YOTSUYA-AKEBONOBASHI BLDG.,2-14, SUMIYOSHI-CHO, SHINJUKU-KU, TOKYO, 162-0065, JAPAN' AS ENTRPS_ADRES,
NULL AS SPCL_CSTMCLER_ENTRPS,
NULL AS SPCL_CSTMCLER_CD,
GO.ORDR_INNB,
1 AS PURPS_DV,
GOS.RECPNT_NM,
CAST(AES_DECRYPT(UNHEX(GOS.RECPNT_MBTLNB) , #{secretKey}) AS CHAR(50)) AS RECPNT_MBTLNB,
NULL AS RECPNT_HP,
GOS.CSTMCLER_CD,
GOS.DLVYLC_ZIP,
CASE
WHEN GOS.DLVYLC_ADRES_DV_CD = '01'
THEN GOS.DLVYLC_RNM_ADRES
ELSE GOS.DLVYLC_LNB_ADRES
END DLVYLC_RNM_LNB_ADRES,
GOS.DLVYLC_ADRES_DTL,
GOS.DLVY_MSSAGE_CN,
'www.sake1jan.com' AS CSTMR_PURCHS_SITE,
GOIO.REAL_WT,
GOIO.PACKAGE_CNT,
GOIO.HSCODE,
'A' AS CMMRC_TY,
CONCAT(GOI.GOODS_NM_EN, ' ', GOIO.OPTN_NM_1, '-', GOIO.OPTN_VAL_1) AS CN,
/*원가 관리 시작*/
GOIO.SLEPRIC,
GOS.DFT_DLVY_AMT,
GGC.CSTMS_FEE,
(
(GOIO.SLEPRIC + GOS.DFT_DLVY_AMT)
* GGC.PLTFOM_FEE
* GGC.EXPCT_TAX
) AS EXPCT_TAX_AMT,
GGC.EXPCT_TAX,
GGC.KR_DLVY_CT,
GGC.PLTFOM_FEE,
GGC.USD_RATE,
TRUNCATE(
(
(
(GOIO.SLEPRIC + GOS.DFT_DLVY_AMT)
- (
GGC.CSTMS_FEE
+ (GOIO.SLEPRIC + GOS.DFT_DLVY_AMT)
* GGC.PLTFOM_FEE
* GGC.EXPCT_TAX
+ GGC.KR_DLVY_CT
)
) * GGC.USD_RATE / 1000
), 2
) AS UNIT_VALUE,
/*원가 관리 종료*/
GOIO.ORDR_QY,
(
TRUNCATE(
(
(
(GOIO.SLEPRIC + GOS.DFT_DLVY_AMT)
- (
GGC.CSTMS_FEE
+ (GOIO.SLEPRIC + GOS.DFT_DLVY_AMT)
* GGC.PLTFOM_FEE
* GGC.EXPCT_TAX
+ GGC.KR_DLVY_CT
)
) * GGC.USD_RATE / 1000
), 2
) * GOIO.ORDR_QY
) AS VALUE,
NULL AS BRAND,
NULL AS PRE_FOOD_DCL,
NULL AS PROVD_NATION,
NULL AS PROVD_CMPNY_NM,
NULL AS CHNLNG_GOODS_NM,
NULL AS SHIPPER_PURCHS_SITE,
NULL AS SLE_AGNT_ENTRPS_NM,
NULL AS SLE_AGNT_ENTRPS_REGIST_CD,
NULL AS PURCHS_DLVY_AGENCY_NM,
NULL AS PURCHS_DLVY_AGENCY_REGIST_CD,
NULL AS OVSEA_SELER_NM,
GOS.ORDR_DLVY_INNB AS OVSEA_SELER_REGIST_CD,
CONCAT(GO.SUBSVC_AT, GOS.DLVYLC_AREA_CD, GOS.ORDR_DLVY_INNB) AS SITE_ORDR_INNB,
/*아래부터는 발주서에 포함되지 않음*/
GO.ORDR_STTUS_CD,
GOI.ORDR_GOODS_INNB,
GOI.GOODS_INNB,
GOI.GOODS_NM,
GOIO.ORDR_GOODS_OPTN_INNB,
GOIO.GOODS_OPTN_INNB,
GOS.DLVYLC_AREA_CD,
GGC.STDR_DE
FROM GC_ORDER GO
INNER JOIN GC_ORDER_ITEM GOI
ON GOI.ORDR_INNB = GO.ORDR_INNB
AND GOI.SOPMAL_CD = GO.SOPMAL_CD
INNER JOIN GC_ORDER_ITEM_OPTION GOIO
ON GOIO.ORDR_GOODS_INNB = GOI.ORDR_GOODS_INNB
AND GOIO.SOPMAL_CD = GOI.SOPMAL_CD
INNER JOIN GC_ORDER_SHIPPING GOS
ON GOS.ORDR_DLVY_INNB = GOIO.ORDR_DLVY_INNB
AND GOS.SOPMAL_CD = GOIO.SOPMAL_CD
LEFT JOIN GC_GOODS_COST GGC
ON GGC.STDR_DE = (
SELECT MAX(GGC.STDR_DE)
FROM GC_GOODS_COST GGC
WHERE GGC.STDR_DE <![CDATA[<=]]> GO.ORDR_RCEPT_DT
)
WHERE 1 = 1
AND GO.ORDR_RCEPT_DT BETWEEN #{srchStartDate} AND #{srchEndDate} ' 23:59:59'
AND GOIO.ORDR_STTUS_CD = #{srchOrdrSttusCd}
AND GO.SOPMAL_CD = #{sopmalCd}
</select>
<!-- <!--
#################################### ####################################
전체주문 조회 서비스 종료 전체주문 조회 서비스 종료
@@ -1663,14 +1482,6 @@
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
@@ -1839,10 +1650,8 @@
, 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
@@ -1868,7 +1677,6 @@
, 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
@@ -1906,10 +1714,8 @@
, #{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}
@@ -1935,7 +1741,6 @@
, 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}
@@ -2187,71 +1992,6 @@
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[
@@ -2493,16 +2233,6 @@
]]> ]]>
</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
@@ -2534,7 +2264,6 @@
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>
<!-- 주문메모 목록 조회 --> <!-- 주문메모 목록 조회 -->
@@ -2692,7 +2421,6 @@
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
@@ -2768,13 +2496,7 @@
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(procsDtlsDvCd)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(procsDtlsDvCd)">
AND FOL.ADIT_INFO_CN = #{procsDtlsDvCd} AND FOL.ADIT_INFO_CN = #{procsDtlsDvCd}
</if> </if>
ORDER BY ORDER BY FOL.PROCS_DT ASC
FOL.PROCS_DT ASC,
CASE
WHEN FOL.LOG_SJ LIKE '%결제취소 신청%' THEN 1
WHEN FOL.LOG_SJ LIKE '%결제취소 완료%' THEN 2
ELSE 3
END ASC
) DTLS ) DTLS
</select> </select>
@@ -4099,7 +3821,6 @@
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}
@@ -4456,7 +4177,6 @@
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
@@ -4467,14 +4187,6 @@
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
@@ -5007,51 +4719,19 @@
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
, (CASE , ROUND(IFNULL(FSG.DFT_DLVY_AMT, 0), '0') AS DFT_DLVY_AMT
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN ROUND(IFNULL(FSG.DFT_DLVY_AMT2, 0), '0') , FSG.AMT_CND_USE_AT
ELSE ROUND(IFNULL(FSG.DFT_DLVY_AMT, 0), '0') , ROUND(IFNULL(FSG.AMT_CND_ADIT_AMT, 0), '0') AS AMT_CND_ADIT_AMT
END) AS DFT_DLVY_AMT , FSG.CNT_CND_USE_AT
, (CASE , ROUND(IFNULL(FSG.CNT_CND_ADIT_AMT, 0), '0') AS CNT_CND_ADIT_AMT
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN FSG.AMT_CND_USE_AT2 , FSG.BUNDLE_DLVY_USE_AT
ELSE FSG.AMT_CND_USE_AT , ROUND(IFNULL(FSG.BUNDLE_DLVY_CND_AMT, 0), '0') AS BUNDLE_DLVY_CND_AMT
END) AS AMT_CND_USE_AT , FSG.DLVY_AREA_ADIT_AT
, (CASE , ROUND(IFNULL(FSG.AREA_ADIT_DLVY_AMT, 0), '0') AS AREA_ADIT_DLVY_AMT
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
@@ -5087,9 +4767,7 @@
<![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}
]]> ]]>
@@ -5183,7 +4861,6 @@
<!-- 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
@@ -5206,7 +4883,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>
@@ -5416,7 +5093,7 @@
<![CDATA[ <![CDATA[
SELECT SELECT
CASE CASE
WHEN O.ORDR_STTUS_CD >= '40' AND O.ORDR_STTUS_CD < '85' AND #{refundTyCd} = '01' THEN 'N' WHEN O.ORDR_STTUS_CD >= '30' 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
@@ -5440,7 +5117,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' OR #{pgCmpnyNm} = 'kiwoom' THEN KCP_MID -- kcp, kiwoom WHEN #{pgCmpnyNm} = 'kcp' THEN KCP_MID -- kcp
END END
END, '') AS SETLE_MID END, '') AS SETLE_MID
FROM GC_PAY_LINK FROM GC_PAY_LINK
@@ -5611,14 +5288,7 @@
<!-- 사용자 > 마이페이지 > 구독서비스 주문/배송 목록 조회 --> <!-- 사용자 > 마이페이지 > 구독서비스 주문/배송 목록 조회 -->
<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 PV.* SELECT *
, (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.*
@@ -5748,7 +5418,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 '95' AND ( ( FO.ORDR_STTUS_CD BETWEEN '15' AND '75' ) OR FO.ORDR_STTUS_CD = '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}
@@ -5756,6 +5426,12 @@
) 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
@@ -5765,208 +5441,7 @@
<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>
) PV </sql>
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,11 +326,12 @@
<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 (
@@ -363,7 +364,6 @@
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,10 +570,8 @@
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,
@@ -599,7 +597,6 @@
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,
@@ -845,7 +842,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.RETURN_DLVY_AMT, 0), 0) 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) WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.REFUND_AMT + IFNULL(RE.REFUND_DLVY_AMT, 0), 0)
END END
ELSE ELSE
@@ -854,45 +851,9 @@
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)+ 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) )) END + (REI.REFUND_MLG_AMT + REI.REFUND_MLG_RMNDR_AMT) + (REI.REFUND_CASH_AMT + REI.REFUND_CASH_RMNDR_AMT)))
, 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
@@ -912,8 +873,6 @@
)) ))
, 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
@@ -1067,8 +1026,7 @@
<![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)">
RETURN_DLVY_AMT = REPLACE(#{returnDlvyAmt}, ',', ''), <![CDATA[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},]]>
@@ -1144,20 +1102,11 @@
</when> </when>
</choose> </choose>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dlvyAmtRefundAmt)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dlvyAmtRefundAmt)">
DLVY_AMT_REFUND_AMT = #{dlvyAmtRefundAmt}, <![CDATA[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)">
REFUND_AMT = #{refundAmt}, <![CDATA[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[
@@ -1355,10 +1304,8 @@
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,
@@ -1379,7 +1326,6 @@
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,
@@ -1399,10 +1345,7 @@
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
@@ -1553,7 +1496,6 @@
,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
@@ -1587,52 +1529,28 @@
<!-- 주문 환불 총 금액 --> <!-- 주문 환불 총 금액 -->
<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="dataMap"> resultType="Integer">
<![CDATA[ <![CDATA[
SELECT ROUND( SELECT
SUM( IFNULL((
CASE SELECT ROUND(
WHEN RE.REFUND_TY_CD = '01' THEN RE.REFUND_AMT + RE.REFUND_DLVY_AMT SUM(
WHEN RE.REFUND_TY_CD = '02' THEN CASE
CASE WHEN RE.REFUND_TY_CD = '01' THEN RE.REFUND_AMT + RE.REFUND_DLVY_AMT
WHEN RE.RETURN_DLVY_PYMNT_TY_CD = '02' THEN WHEN RE.REFUND_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_PYMNT_TY_CD = '02' 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) ELSE RE.REFUND_AMT
END END
ELSE END
CASE ), 0)
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN RE.REFUND_AMT FROM GC_ORDER_REFUND RE
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.REFUND_AMT + IFNULL(RE.REFUND_DLVY_AMT, 0), 0) WHERE RE.SOPMAL_CD = #{sopmalCd}
END AND RE.ORDR_INNB = #{ordrInnb}
END AND RE.ORDER_REFUND_INNB != #{orderRefundInnb}
END AND RE.USE_AT = 'Y'
), 0) AS ORDER_REFUND_AMT_SUM GROUP BY RE.ORDR_INNB, RE.SOPMAL_CD
, ROUND( ), 0) AS ORDER_REFUND_AMT_SUM
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
WHERE RE.SOPMAL_CD = #{sopmalCd}
AND RE.ORDR_INNB = #{ordrInnb}
AND RE.ORDER_REFUND_INNB != #{orderRefundInnb}
AND RE.USE_AT = 'Y'
GROUP BY RE.ORDR_INNB, RE.SOPMAL_CD
]]> ]]>
</select> </select>
@@ -1789,9 +1707,6 @@
,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

@@ -374,103 +374,106 @@
SOPMAL_CD, SOPMAL_CD,
EVT_INNB, EVT_INNB,
]]> ]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bgnCnt)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bgnCnt)">
BGN_CNT, BGN_CNT,
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(endCnt)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(endCnt)">
END_CNT, END_CNT,
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bgnAmt)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bgnAmt)">
BGN_AMT, BGN_AMT,
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(endAmt)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(endAmt)">
END_AMT, END_AMT,
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(provdCnt)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(provdCnt)">
PROVD_CNT, PROVD_CNT,
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(aditDscntCd)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(aditDscntCd)">
ADIT_DSCNT_CD, ADIT_DSCNT_CD,
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(aditDscntAmt)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(aditDscntAmt)">
ADIT_DSCNT_AMT, ADIT_DSCNT_AMT,
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dscntMxmmAmt)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dscntMxmmAmt)">
DSCNT_MXMM_AMT, DSCNT_MXMM_AMT,
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mlgAccmlCd)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mlgAccmlCd)">
MLG_ACCML_CD, MLG_ACCML_CD,
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mlgAccmlAmt)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mlgAccmlAmt)">
MLG_ACCML_AMT, MLG_ACCML_AMT,
</if> </if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mlgValidMtCnt)"> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mlgValidMtCnt)">
MLG_VALID_MT_CNT, MLG_VALID_MT_CNT,
</if> </if>
<![CDATA[ <![CDATA[
USE_AT, USE_AT,
REGUSR, REGUSR,
REGIST_DT, REGIST_DT,
UPDUSR, UPDUSR,
UPDT_DT UPDT_DT
) VALUES ( ) SELECT
#{seq}, #{seq},
#{sopmalCd}, #{sopmalCd},
#{evtInnb}, #{evtInnb},
]]> ]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bgnCnt)">REPLACE(#{bgnCnt}, ',', ''), <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bgnCnt)">
</if> REPLACE(#{bgnCnt}, ',', ''),
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(endCnt)">REPLACE(#{endCnt}, ',', ''), </if>
</if> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(endCnt)">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bgnAmt)"> REPLACE(#{endCnt}, ',', ''),
REPLACE(#{bgnAmt}, ',', ''), </if>
</if> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bgnAmt)">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(endAmt)"> REPLACE(#{bgnAmt}, ',', ''),
REPLACE(#{endAmt}, ',', ''), </if>
</if> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(endAmt)">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(provdCnt)"> REPLACE(#{endAmt}, ',', ''),
#{provdCnt}, </if>
</if> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(provdCnt)">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(aditDscntCd)"> #{provdCnt},
#{aditDscntCd}, </if>
</if> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(aditDscntCd)">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(aditDscntAmt)"> #{aditDscntCd},
REPLACE(#{aditDscntAmt}, ',', ''), </if>
</if> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(aditDscntAmt)">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dscntMxmmAmt)"> REPLACE(#{aditDscntAmt}, ',', ''),
REPLACE(#{dscntMxmmAmt}, ',', ''), </if>
</if> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dscntMxmmAmt)">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mlgAccmlCd)"> REPLACE(#{dscntMxmmAmt}, ',', ''),
#{mlgAccmlCd}, </if>
</if> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mlgAccmlCd)">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mlgAccmlAmt)"> #{mlgAccmlCd},
REPLACE(#{mlgAccmlAmt}, ',', ''), </if>
</if> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mlgAccmlAmt)">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mlgValidMtCnt)"> REPLACE(#{mlgAccmlAmt}, ',', ''),
REPLACE(#{mlgValidMtCnt}, ',', ''), </if>
</if> <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mlgValidMtCnt)">
REPLACE(#{mlgValidMtCnt}, ',', ''),
</if>
<![CDATA[ <![CDATA[
'Y', 'Y',
#{regusr}, #{regusr},
SYSDATE(), SYSDATE(),
#{updusr}, #{updusr},
SYSDATE() SYSDATE()
) FROM
ON DUPLICATE KEY UPDATE GC_EVENT_BENEFITS
BGN_CNT = VALUES(BGN_CNT), ON DUPLICATE KEY UPDATE
END_CNT = VALUES(END_CNT), BGN_CNT = VALUES(BGN_CNT),
BGN_AMT = VALUES(BGN_AMT), END_CNT = VALUES(END_CNT),
END_AMT = VALUES(END_AMT), BGN_AMT = VALUES(BGN_AMT),
PROVD_CNT = VALUES(PROVD_CNT), END_AMT = VALUES(END_AMT),
ADIT_DSCNT_CD = VALUES(ADIT_DSCNT_CD), PROVD_CNT = VALUES(PROVD_CNT),
ADIT_DSCNT_AMT = VALUES(ADIT_DSCNT_AMT), ADIT_DSCNT_CD = VALUES(ADIT_DSCNT_CD),
DSCNT_MXMM_AMT = VALUES(DSCNT_MXMM_AMT), ADIT_DSCNT_AMT = VALUES(ADIT_DSCNT_AMT),
MLG_ACCML_CD = VALUES(MLG_ACCML_CD), DSCNT_MXMM_AMT = VALUES(DSCNT_MXMM_AMT),
MLG_ACCML_AMT = VALUES(MLG_ACCML_AMT), MLG_ACCML_CD = VALUES(MLG_ACCML_CD),
MLG_VALID_MT_CNT = VALUES(MLG_VALID_MT_CNT), MLG_ACCML_AMT = VALUES(MLG_ACCML_AMT),
REGUSR = VALUES(REGUSR), MLG_VALID_MT_CNT = VALUES(MLG_VALID_MT_CNT),
UPDUSR = VALUES(UPDUSR), REGUSR = VALUES(REGUSR),
UPDT_DT = VALUES(UPDT_DT) UPDUSR = VALUES(UPDUSR),
UPDT_DT = VALUES(UPDT_DT)
]]> ]]>
</insert> </insert>

View File

@@ -1,57 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.domain.gcone.setup.cost.mapper.BOCostMapper">
<!--원가 설정 목록 조회-->
<select id="selectBOCostPriceList"
parameterType="com.wb.domainserver.domain.gcone.setup.cost.vo.BOCostVO"
resultType="dataMap">
SELECT CT_INNB
, STDR_DE
, USD_RATE
, JP_DLVY_CT
, INTL_DLVY_AMT
, PLTFOM_FEE
, EXPCT_TAX
, CSTMS_FEE
, KR_DLVY_CT
FROM GC_GOODS_COST
</select>
<!-- 원가 설정 삭제 -->
<delete id="deleteBOCostPrice"
parameterType="com.wb.domainserver.domain.gcone.setup.cost.vo.BOCostVO" >
DELETE FROM
GC_GOODS_COST
WHERE 1=1
</delete>
<!-- 원가 설정 등록 -->
<insert id="insertBOCostPrice"
parameterType="DataMap" >
<selectKey order="BEFORE" keyProperty="ctInnb" resultType="integer">
SELECT IFNULL(MAX(CT_INNB), 0) + 1
FROM GC_GOODS_COST
</selectKey>
INSERT INTO GC_GOODS_COST (
CT_INNB,
STDR_DE,
USD_RATE,
JP_DLVY_CT,
INTL_DLVY_AMT,
PLTFOM_FEE,
EXPCT_TAX,
CSTMS_FEE,
KR_DLVY_CT
) VALUES (
#{ctInnb},
#{stdrDe},
#{usdRate},
#{jpDlvyCt},
#{intlDlvyAmt},
#{pltfomFee},
#{expctTax},
#{cstmsFee},
#{krDlvyCt}
)
</insert>
</mapper>

View File

@@ -42,12 +42,7 @@
<!--주문 설정 수정--> <!--주문 설정 수정-->
<update id="updateBOOrdrSetup"> <update id="updateBOOrdrSetup">
UPDATE GC_SHOP UPDATE GC_SHOP
SET CASH_AT = IFNULL(#{cashAt},'N'), SET MLG_PYMNT_AT = #{mlgPymntAt},
MULTI_DLVY_AT = IFNULL(#{multiDlvyAt},'N'),
FDRM_DLVY_AT = IFNULL(#{fdrmDlvyAt},'N'),
GIFT_DLVY_AT = IFNULL(#{giftDlvyAt},'N'),
GIFT_DLVY_ATMC_CANCL_PD = #{giftDlvyAtmcCanclPd},
MLG_PYMNT_AT = #{mlgPymntAt},
MLG_PYMNT_DV_CD = #{mlgPymntDvCd}, MLG_PYMNT_DV_CD = #{mlgPymntDvCd},
MLG_PYMNT_RT = REPLACE(#{mlgPymntRt},',',''), MLG_PYMNT_RT = REPLACE(#{mlgPymntRt},',',''),
MLG_MXMM_PYMNT_AMT = REPLACE(#{mlgMxmmPymntAmt},',',''), MLG_MXMM_PYMNT_AMT = REPLACE(#{mlgMxmmPymntAmt},',',''),
@@ -68,13 +63,11 @@
MLG_VALID_PD_AT = 'Y', MLG_VALID_PD_AT = 'Y',
</otherwise> </otherwise>
</choose> </choose>
MLG_HOLD_USE_AMT = #{mlgHoldUseAmt}, CASH_AT = IFNULL(#{cashAt},'N'),
MLG_SETLE_AMT_USE_AMT = #{mlgSetleAmtUseAmt}, MULTI_DLVY_AT = IFNULL(#{multiDlvyAt},'N'),
MLG_MUMM_USE_AMT = #{mlgMummUseAmt}, FDRM_DLVY_AT = IFNULL(#{fdrmDlvyAt},'N'),
MLG_MXMM_USE_DV = #{mlgMxmmUseDv}, GIFT_DLVY_AT = IFNULL(#{giftDlvyAt},'N'),
MLG_MXMM_USE_AMT = #{mlgMxmmUseAmt}, GIFT_DLVY_ATMC_CANCL_PD = #{giftDlvyAtmcCanclPd}
UPDUSR = #{updusr},
UPDT_DT = SYSDATE()
WHERE SOPMAL_CD = #{sopmalCd} WHERE SOPMAL_CD = #{sopmalCd}
</update> </update>

View File

@@ -10,9 +10,6 @@ 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: 3.7 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

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