Compare commits
129 Commits
master_ord
...
657ecc9d2e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
657ecc9d2e | ||
|
|
21c074500d | ||
|
|
3e430345ab | ||
|
|
e24049ae22 | ||
|
|
b54c127330 | ||
|
|
946f1f9a95 | ||
|
|
e567b3bbbc | ||
|
|
105da88530 | ||
|
|
cb4c9e6d97 | ||
|
|
497545f730 | ||
|
|
8d4aa4277f | ||
|
|
936bfcb6a7 | ||
|
|
92347d3304 | ||
|
|
eac94e1e2b | ||
|
|
e4fc054a78 | ||
|
|
9207d58b04 | ||
|
|
113bc9ffcc | ||
|
|
371f1fa471 | ||
|
|
2e2bf59021 | ||
|
|
63b675f435 | ||
|
|
8fd58d80b0 | ||
|
|
955979b7d6 | ||
|
|
085ae7f2b4 | ||
|
|
03193351cc | ||
|
|
8573a3e7a4 | ||
|
|
87efc0362e | ||
|
|
d6927d16a2 | ||
|
|
d4fc20fcec | ||
|
|
5aa87c2526 | ||
|
|
3007f0780d | ||
|
|
721e28e4c2 | ||
|
|
b244579fca | ||
|
|
e1616910cd | ||
|
|
5b483bd3b6 | ||
|
|
c718b84439 | ||
|
|
eb1085836d | ||
|
|
75355d63e6 | ||
|
|
7df8d86ecc | ||
|
|
2caa549e23 | ||
|
|
3a736fab1b | ||
|
|
393fb35802 | ||
|
|
7b0f7327dc | ||
|
|
534a8cf3da | ||
|
|
b0b9ae46be | ||
|
|
ef4f5f473c | ||
|
|
9a7386a08c | ||
|
|
1c96c1f1dd | ||
|
|
0a05ab07d3 | ||
|
|
0cd6419b0a | ||
|
|
90deed795f | ||
|
|
cf3905016c | ||
|
|
808c124887 | ||
|
|
f8763a0bea | ||
|
|
bf427fcf53 | ||
|
|
60ce975739 | ||
|
|
a10847214d | ||
|
|
f0e614ee4a | ||
|
|
df45947913 | ||
|
|
ac712b3d68 | ||
|
|
bcc7371b7a | ||
|
|
3e77f9bf31 | ||
|
|
2c1d0425a4 | ||
|
|
1640a89ec2 | ||
|
|
fa337ec3a7 | ||
|
|
a229a7fec0 | ||
|
|
d1573623a8 | ||
|
|
82f04ec36e | ||
|
|
c4d5db482d | ||
|
|
6f50cacde2 | ||
|
|
a7678b7b5a | ||
|
|
21baeb14b0 | ||
|
|
4d5f9c0903 | ||
|
|
b73bd46bd1 | ||
|
|
aa7b83e331 | ||
|
|
83024e46d0 | ||
|
|
9336e895b0 | ||
|
|
ebe39d5037 | ||
|
|
fa6371a099 | ||
|
|
2edb9c30c7 | ||
|
|
df09e3911d | ||
|
|
da578da9e0 | ||
|
|
c0410a82f6 | ||
|
|
da9076981c | ||
|
|
89d0978728 | ||
|
|
e7a9499780 | ||
|
|
6114b7648c | ||
|
|
c82f48966a | ||
|
|
3dc906cfc6 | ||
|
|
1ed4ceafe8 | ||
|
|
066153a36b | ||
|
|
fdeb8ae26d | ||
|
|
38f85a7409 | ||
|
|
1b0a6f9624 | ||
|
|
381a53f332 | ||
|
|
4064f30bb9 | ||
|
|
797b36e42f | ||
|
|
7be3cedd31 | ||
|
|
4512525495 | ||
|
|
e24d0ef704 | ||
|
|
3ee3e1964e | ||
|
|
30cc498633 | ||
|
|
b4d9aeba48 | ||
|
|
f1bbe7b07c | ||
|
|
d3438b762f | ||
|
|
43508a858b | ||
|
|
0ca70094c9 | ||
|
|
176e0d874e | ||
|
|
9b91679ec6 | ||
|
|
e261fbff7d | ||
|
|
2579d5c3f9 | ||
|
|
e731981a26 | ||
|
|
048bea431d | ||
|
|
dd67ee3b44 | ||
|
|
9c52b23fc0 | ||
|
|
c7f9910b44 | ||
|
|
f5ad9d1eed | ||
|
|
ae53e18a1e | ||
|
|
bdab97c65c | ||
|
|
666fef8bef | ||
|
|
888c02b3f2 | ||
|
|
293bb016b8 | ||
|
|
4ea4289a85 | ||
|
|
1419041bb9 | ||
|
|
33f82a1f94 | ||
|
|
b2a67966ee | ||
|
|
3e64dd72a0 | ||
|
|
40dc7f7c85 | ||
|
|
2448e856ba | ||
|
|
272cd36110 |
42
Jenkinsfile
vendored
@@ -8,7 +8,7 @@ pipeline {
|
||||
environment {
|
||||
SERVER_IP = "${DEPLOY_WAS_SERVER_IP}"
|
||||
SERVER_USER = "tomcat"
|
||||
TOMCAT_HOME = "${ENVIRONMENT == 'dev' ? '/var/lib/tomcat' : '/usr/local/tomcat'}"
|
||||
TOMCAT_HOME = "${ENVIRONMENT == 'dev' ? '/usr/local/tomcat' : '/usr/local/tomcat'}"
|
||||
APP_NAME = "sakemall"
|
||||
ROOT_NAME = "ROOT"
|
||||
DEPLOY_PATH = "${TOMCAT_HOME}/webapps"
|
||||
@@ -21,7 +21,7 @@ pipeline {
|
||||
GIT_BRANCH = "${ENVIRONMENT == 'dev' ? 'develop' : 'master'}"
|
||||
NGINX_STATIC_PATH = "/var/www/sopmall"
|
||||
NGINX_SERVER_IP = "${DEPLOY_WEB_SERVER_IP}"
|
||||
NGINX_USER = "${ENVIRONMENT == 'dev' ? 'dev1' : 'ubuntu'}"
|
||||
NGINX_USER = "${ENVIRONMENT == 'dev' ? 'ubuntu' : 'ubuntu'}"
|
||||
// SSH_KEY_PATH = "C:/Users/CHAMDAHAN-41/.ssh/id_rsa"
|
||||
}
|
||||
|
||||
@@ -41,8 +41,8 @@ pipeline {
|
||||
properties([
|
||||
parameters([
|
||||
choice(name: 'ENVIRONMENT', choices: ['dev'], description: '배포할 어플리케이션 profile 선택'),
|
||||
choice(name: 'DEPLOY_WAS_SERVER_IP', choices: ['00.00.00.00'], description: 'WAR 배포할 서버IP 선택'),
|
||||
choice(name: 'DEPLOY_WEB_SERVER_IP', choices: ['00.00.00.00'], description: 'STATIC RESOURCE 배포할 서버IP 선택'),
|
||||
choice(name: 'DEPLOY_WAS_SERVER_IP', choices: ['10.2.0.129'], description: 'WAR 배포할 서버IP 선택'),
|
||||
choice(name: 'DEPLOY_WEB_SERVER_IP', choices: ['10.2.1.226'], description: 'STATIC RESOURCE 배포할 서버IP 선택'),
|
||||
// choice(name: 'DEPLOY_TARGET', choices: ['ALL', 'WEB_ONLY', 'WAS_ONLY', 'PROPERTY_ONLY'], description: '배포 대상 선택'),
|
||||
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: '배포 대상 선택')
|
||||
@@ -84,6 +84,26 @@ 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') {
|
||||
when {
|
||||
expression { params.DEPLOY_TARGET in ['ALL', 'WEB_ONLY'] }
|
||||
@@ -254,6 +274,20 @@ pipeline {
|
||||
${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} 브랜치)"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -286,6 +286,7 @@ public class BOMaMtngController {
|
||||
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
|
||||
}
|
||||
} else {
|
||||
// 여러곳배송처럼 처리하더라도 주소는 하나이므로 shipping 체크
|
||||
if (CollectionUtils.isEmpty(shipping)) {
|
||||
log.info("배송지 정보를 찾을 수 없습니다.");
|
||||
content.put("result","Y");
|
||||
|
||||
@@ -406,6 +406,8 @@ public class BOMaMtngService {
|
||||
List<LinkedHashMap> goodsList = (List<LinkedHashMap>) param.get("goodsList"); // 상품정보
|
||||
LinkedHashMap enuri = (LinkedHashMap) param.get("enuri"); // 할인정보
|
||||
|
||||
log.debug("selectBOPreOrderValidationList-goodsList: {}",goodsList);
|
||||
|
||||
//사용한 장바구니 쿠폰
|
||||
//비회원의 경우 enuri 자체가 없어서 isEmpty 확인
|
||||
List<LinkedHashMap> usedCartCouponList = new ArrayList<>();
|
||||
@@ -417,8 +419,15 @@ public class BOMaMtngService {
|
||||
//상품별 총 구매갯수 합계
|
||||
Map<String, Integer> qySums = goodsList.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
goods -> {
|
||||
// goodsInnb기준 키로 묶음
|
||||
goods -> goods.get("goodsInnb").toString(),
|
||||
Object key = goods.get("goodsInnb");
|
||||
if(key == null) {
|
||||
// subsvcInnb기준 키로 묶음
|
||||
key = goods.get("subsvcInnb");
|
||||
}
|
||||
return key.toString();
|
||||
},
|
||||
// qy 값을 합산
|
||||
Collectors.summingInt(goods -> Integer.parseInt(goods.getOrDefault("qy", "0").toString()))
|
||||
));
|
||||
|
||||
@@ -28,4 +28,12 @@ public class BOMaEmailSrchVO extends AbstractVO {
|
||||
|
||||
/*secretkey*/
|
||||
private String secretKey;
|
||||
|
||||
/** 셋팅용 파라미터 tab구분
|
||||
* send : 이메일 수동발송
|
||||
* search : 이메일 발송내역*/
|
||||
private String reqTab;
|
||||
|
||||
/** 셋팅용 파라미터 받는사람 이메일주소*/
|
||||
private String email;
|
||||
}
|
||||
|
||||
@@ -978,9 +978,9 @@ public class BOBbsService {
|
||||
|
||||
log.debug("분류 oldDvQesitmInnbs : {}", oldDvQesitmInnbs);
|
||||
log.debug("분류 olddvItmInnbs : {}", olddvItmInnbs);
|
||||
log.debug("분류 olddvItmInnbsArr : {}", olddvItmInnbsArr);
|
||||
log.debug("분류 qesitmInnb_d : {}", qesitmInnb_d);
|
||||
log.debug("분류 qesitmNm_d : {}", qesitmNm_d);
|
||||
log.debug("분류 olddvItmInnbsArr : {}", (Object) olddvItmInnbsArr);
|
||||
log.debug("분류 qesitmInnb_d : {}", (Object) qesitmInnb_d);
|
||||
log.debug("분류 qesitmNm_d : {}", (Object) qesitmNm_d);
|
||||
log.debug("분류 qesitmInnb : {}", qesitmInnb);
|
||||
log.debug("분류 itmInnb_del : {}", itmInnb_del);
|
||||
|
||||
@@ -1055,8 +1055,8 @@ public class BOBbsService {
|
||||
|
||||
}
|
||||
log.debug("필수 {}", vo.getOldIpQesitmInnbs());
|
||||
log.debug("필수 {}", vo.getQesitmEssntlAt_i());
|
||||
log.debug("사용 {}", vo.getQesitmUseAt_i());
|
||||
log.debug("필수 {}", (Object) vo.getQesitmEssntlAt_i());
|
||||
log.debug("사용 {}", (Object) vo.getQesitmUseAt_i());
|
||||
/** 게시판 추가 문항 수정 */
|
||||
if (!ObjectUtils.isEmpty(vo.getQesitmInnb_i())) {
|
||||
String[] qesitmNm_i = vo.getQesitmNm_i();
|
||||
|
||||
@@ -470,6 +470,8 @@ public interface BOPurchsMapper {
|
||||
*/
|
||||
public String selectRlSetleAmt(DataMap param);
|
||||
|
||||
public String selectWonRlSetleAmt(DataMap param);
|
||||
|
||||
/**
|
||||
* 0원 상품 포함시 짜투리 업데이트 ( 장바구니, 마일리지, 애누리 )
|
||||
* @param itemOptnVO
|
||||
|
||||
@@ -2,16 +2,15 @@ package com.wb.domainserver.domain.gcone.goods.purchs.service;
|
||||
|
||||
import com.nimbusds.jose.shaded.gson.Gson;
|
||||
import com.wb.domainserver.domain.admin.instcSle.mtng.service.BOMaMtngService;
|
||||
import com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOInstcSleVO;
|
||||
import com.wb.domainserver.domain.gcone.bbs.cnslt.service.BOCnsltService;
|
||||
import com.wb.domainserver.domain.gcone.bbs.cnslt.vo.BOCnsltVO;
|
||||
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.vo.*;
|
||||
import com.wb.domainserver.domain.gcone.ordr.ordr.mapper.BOOrdrMapper;
|
||||
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrderRestAmtVO;
|
||||
import com.wb.domainserver.exception.WnbtRestException;
|
||||
import com.wb.domainserver.security.authentication.AnonymousUser;
|
||||
import com.wb.domainserver.security.authentication.MemberJwtToken;
|
||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||
import com.wb.domainserver.util.string.StringUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -24,8 +23,8 @@ import org.springframework.util.StringUtils;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@@ -33,6 +32,9 @@ public class BOOrderService {
|
||||
@Autowired
|
||||
private BOPurchsMapper mapper;
|
||||
|
||||
@Autowired
|
||||
private BOOrdrMapper boOrdrMapper;
|
||||
|
||||
@Autowired
|
||||
private BOMaMtngService maMtngService;
|
||||
|
||||
@@ -74,6 +76,11 @@ public class BOOrderService {
|
||||
LinkedHashMap setle = (LinkedHashMap) param.get("setle"); // 결제정보
|
||||
List<LinkedHashMap> prsntList = (List<LinkedHashMap>) param.get("prsnt"); // 사은품 정보
|
||||
|
||||
Boolean subsvcAt = param.containsKey("subsvcInnb"); // 구독서비스 여부
|
||||
if(subsvcAt) {
|
||||
setle.put("subsvcInnb", param.get("subsvcInnb"));
|
||||
}
|
||||
|
||||
log.debug("구매자정보 => {} ", new Gson().toJson(purchsr));
|
||||
log.debug("상품정보 => {} ", new Gson().toJson(goodsList));
|
||||
log.debug("배송정보 => {} ", new Gson().toJson(shipping));
|
||||
@@ -81,19 +88,6 @@ public class BOOrderService {
|
||||
log.debug("결제정보 => {} ", new Gson().toJson(setle));
|
||||
log.debug("사은품 => {} ", new Gson().toJson(prsntList));
|
||||
|
||||
/** 여러곳 배송 배송지 세팅 시작 */
|
||||
LinkedHashMap<String, Object> multiOrdrDlvylcMap = new LinkedHashMap<>();
|
||||
List<LinkedHashMap<String, Object>> dlvylcListMulti = new ArrayList<>();
|
||||
|
||||
multiOrdrDlvylcMap = (LinkedHashMap) param.get("multiOrdrDlvylc");
|
||||
log.debug("multiOrdrDlvylcMap : {}", multiOrdrDlvylcMap);
|
||||
if (!CollectionUtils.isEmpty(multiOrdrDlvylcMap)) {
|
||||
// 배송지 리스트
|
||||
dlvylcListMulti = (List<LinkedHashMap<String, Object>>) multiOrdrDlvylcMap.get("dlvylc");
|
||||
log.debug("dlvylcListMulti : {}", dlvylcListMulti);
|
||||
}
|
||||
/** 여러곳 배송 배송지 세팅 종료 */
|
||||
|
||||
String sopmalCd = "";
|
||||
if("01".equals(user.getSysDvCd())){
|
||||
sopmalCd = user.getSopmalCd();
|
||||
@@ -102,6 +96,457 @@ public class BOOrderService {
|
||||
}
|
||||
|
||||
String ordrTyCd = (String) param.get("ordrTyCd");
|
||||
String bfOrdrTyCd = (String) param.get("ordrTyCd");
|
||||
|
||||
log.debug("insertMngrOrdrRegist-param : {}", param);
|
||||
|
||||
/* *****************************
|
||||
0. 배송 정책에 따른 배송지 세팅
|
||||
***************************** */
|
||||
|
||||
/** 여러곳 배송 배송지 세팅 시작 */
|
||||
LinkedHashMap<String, Object> multiOrdrDlvylcMap = new LinkedHashMap<>();
|
||||
List<LinkedHashMap<String, Object>> dlvylcListMulti = new ArrayList<>();
|
||||
|
||||
multiOrdrDlvylcMap = (LinkedHashMap) param.get("multiOrdrDlvylc");
|
||||
log.debug("multiOrdrDlvylcMap : {}", multiOrdrDlvylcMap);
|
||||
|
||||
String dlvylcAreaCd = (String) shipping.get("dlvylcAreaCd");
|
||||
String ordrAdressZip = StringUtil.isNullToString(shipping.get("dlvylcZip"));
|
||||
String prefcd = (String) shipping.get("prefcd");
|
||||
String defaultAdressAt = "N";
|
||||
String sopmalCode = sopmalCd;
|
||||
|
||||
DataMap defaultAdressVO = new DataMap() {{ //
|
||||
put("sopmalCd", sopmalCode); // 쇼핑몰 코드
|
||||
put("zip", ordrAdressZip); // 우편번호
|
||||
put("prefcd", prefcd); // 도도부현코드
|
||||
}};
|
||||
|
||||
// 추가 배송비 여부 조회
|
||||
if("KR".equals(dlvylcAreaCd)){
|
||||
defaultAdressAt = boOrdrMapper.selectBODefaultAdressAtInqire(defaultAdressVO);
|
||||
}
|
||||
if("JP".equals(dlvylcAreaCd)){
|
||||
defaultAdressAt = boOrdrMapper.selectBODefaultAdressAtInqire2(defaultAdressVO);
|
||||
}
|
||||
|
||||
// DlvyGroupList 조회
|
||||
List<DataMap> DlvyGroupList = new ArrayList<>();
|
||||
|
||||
goodsList.forEach(goods -> {
|
||||
DataMap item = new DataMap();
|
||||
|
||||
item.put("goodsInnb", new BigInteger(String.valueOf(goods.get("goodsInnb"))));
|
||||
item.put("goodsOptnInnb", new BigInteger(String.valueOf(goods.get("goodsOptnInnb"))));
|
||||
item.put("dlvyGroupInnb", new BigInteger(String.valueOf(goods.get("dlvyGroupInnb"))));
|
||||
item.put("qy", new BigInteger(String.valueOf((int) goods.get("qy"))));
|
||||
|
||||
item.put("dscntApplyAmt", new BigInteger(String.valueOf((int) goods.get("dscntApplyAmt"))));
|
||||
item.put("slepric", new BigInteger(String.valueOf((int) goods.get("slepric"))));
|
||||
item.put("subSlepric", new BigInteger(String.valueOf((int) goods.get("subSlepric"))));
|
||||
item.put("dscntAmt", new BigInteger(String.valueOf((int) goods.get("dscntAmt"))));
|
||||
|
||||
// dscntApplyAmt 4500
|
||||
// slepric 5000
|
||||
// subSlepric 5000
|
||||
// dscntAmt 500
|
||||
|
||||
item.put("mbrInnb", new BigInteger(String.valueOf(goods.get("mbrInnb"))));
|
||||
item.put("mbrDvCd", String.valueOf(goods.get("mbrDvCd")));
|
||||
item.put("sopmalCd", String.valueOf(goods.get("sopmalCd")));
|
||||
|
||||
DlvyGroupList.add(item);
|
||||
});
|
||||
|
||||
BigDecimal bundleDlvyAmtYSlepricSum = new BigDecimal(0); // 조건부 무료배송 묶음 O : 상품금액 합
|
||||
|
||||
DlvyGroupList.sort(Comparator.comparing((DataMap map) -> (BigInteger) map.get("goodsInnb")).thenComparing((DataMap map) -> (BigInteger) map.get("goodsOptnInnb")) .thenComparing((DataMap map) -> (BigInteger) map.get("dlvyGroupInnb"))); // 정렬
|
||||
|
||||
// 배송그룹고유번호별 상품목록
|
||||
Map<BigInteger, List<DataMap>> goodsByDlvyGroupMap = DlvyGroupList.stream().collect(Collectors.groupingBy(m -> ((BigInteger) m.get("dlvyGroupInnb")), HashMap::new, Collectors.toList()));
|
||||
|
||||
List<DataMap> dlvyAmtByDlvyGroupList = new ArrayList<>();
|
||||
|
||||
if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "04".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원 개인결제, 정기배송
|
||||
for (Map.Entry<BigInteger, List<DataMap>> dlvyGroupEtry : goodsByDlvyGroupMap.entrySet()) {
|
||||
int dlvyGroupInnb = dlvyGroupEtry.getKey().intValue();
|
||||
List<DataMap> goodsByDlvyGroupList = dlvyGroupEtry.getValue();
|
||||
|
||||
DataMap shippingParam = new DataMap() {{
|
||||
put("dlvyGroupInnb", dlvyGroupInnb);
|
||||
put("sopmalCd", sopmalCode);
|
||||
}};
|
||||
|
||||
DataMap shippingGrouping = mapper.selectShippingGrouping(shippingParam);
|
||||
|
||||
// "KR".equals(dlvylcAreaCd)인 경우
|
||||
String itemDlvyGroupDvCd = (String) shippingGrouping.get("dlvyGroupDvCd");
|
||||
BigDecimal itemDftDlvyAmt = (BigDecimal) shippingGrouping.get("dftDlvyAmt"); // 기본배송비
|
||||
BigDecimal itemDlvyAmt = itemDftDlvyAmt; // 배송비
|
||||
String itemDlvyAreaAditAt = (String) shippingGrouping.get("dlvyAreaAditAt"); // 도서산간 추가 배송비 조건
|
||||
BigDecimal itemAreaAditDlvyAmt = (BigDecimal) shippingGrouping.get("areaAditDlvyAmt"); // 도서산간 추가 배송비
|
||||
String itemBundleDlvyUseAt = (String) shippingGrouping.get("bundleDlvyUseAt"); // 묶음배송 사용여부
|
||||
BigDecimal itemBundleDlvyCndAmt = (BigDecimal) shippingGrouping.get("bundleDlvyCndAmt"); // 묶음배송 사용금액
|
||||
String itemAmtCndUseAt = (String) shippingGrouping.get("amtCndUseAt"); // 금액조건
|
||||
BigDecimal itemAmtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt");
|
||||
String itemCntCndUseAt = (String) shippingGrouping.get("cntCndUseAt"); // 수량조건
|
||||
BigDecimal itemCntCndAditAmt = (BigDecimal) shippingGrouping.get("cntCndAditAmt"); // 수량
|
||||
|
||||
if("JP".equals(dlvylcAreaCd)){
|
||||
itemDftDlvyAmt = (BigDecimal) shippingGrouping.get("dftDlvyAmt2"); // 기본배송비
|
||||
itemDlvyAmt = itemDftDlvyAmt; // 배송비
|
||||
itemDlvyAreaAditAt = (String) shippingGrouping.get("dlvyAreaAditAt2"); // 도서산간 추가 배송비 조건
|
||||
itemAreaAditDlvyAmt = (BigDecimal) shippingGrouping.get("areaAditDlvyAmt2"); // 도서산간 추가 배송비
|
||||
itemBundleDlvyUseAt = (String) shippingGrouping.get("bundleDlvyUseAt2"); // 묶음배송 사용여부
|
||||
itemBundleDlvyCndAmt = (BigDecimal) shippingGrouping.get("bundleDlvyCndAmt2"); // 묶음배송 사용금액
|
||||
itemAmtCndUseAt = (String) shippingGrouping.get("amtCndUseAt2"); // 금액조건
|
||||
itemAmtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt");
|
||||
itemCntCndUseAt = (String) shippingGrouping.get("cntCndUseAt2"); // 수량조건
|
||||
itemCntCndAditAmt = (BigDecimal) shippingGrouping.get("cntCndAditAmt2"); // 수량
|
||||
}
|
||||
|
||||
// else if ("03".equals(itemDlvyGroupDvCd)) { // 유료배송
|
||||
if ("02".equals(itemDlvyGroupDvCd) || "03".equals(itemDlvyGroupDvCd) || subsvcAt) { // 유료배송
|
||||
|
||||
// 추가배송비 계산 (MUL)
|
||||
if (!StringUtils.isEmpty(itemDlvyAreaAditAt) && "Y".equals(itemDlvyAreaAditAt)) {
|
||||
if (!StringUtils.isEmpty(defaultAdressAt) && "Y".equals(defaultAdressAt)) {
|
||||
itemDlvyAmt = itemDlvyAmt.add(itemAreaAditDlvyAmt); // 유료 배송 도서산간 추가 배송비
|
||||
}
|
||||
}
|
||||
|
||||
// 무료 or 유료배송 + 수량 조건
|
||||
if (("Y".equals(itemCntCndUseAt) && itemCntCndAditAmt.compareTo(BigDecimal.ZERO) > 0) || subsvcAt) {
|
||||
// 수량 조건 있을 경우
|
||||
for (DataMap goodsMap : goodsByDlvyGroupList) {
|
||||
|
||||
BigDecimal qy = new BigDecimal(String.valueOf(goodsMap.get("qy"))); // 수량
|
||||
BigDecimal unitQy = subsvcAt ? qy : qy.divide(itemCntCndAditAmt, 0, RoundingMode.CEILING); // 단위수량
|
||||
BigDecimal goodsDscntAmt = new BigDecimal(String.valueOf(goodsMap.get("dscntAmt")));
|
||||
BigInteger unitDscntAmt = BigInteger.valueOf(goodsDscntAmt.intValue());
|
||||
|
||||
int goodsQy = unitQy.intValue();
|
||||
|
||||
// cntCndAditAmt(설정수량)으로 배송 나누기
|
||||
for (int j = 0; j < goodsQy; j++) {
|
||||
|
||||
goodsMap.put("goodsInnb", new BigInteger(String.valueOf(goodsMap.get("goodsInnb"))).intValue());
|
||||
goodsMap.put("goodsOptnInnb", new BigInteger(String.valueOf(goodsMap.get("goodsOptnInnb"))).intValue());
|
||||
goodsMap.put("dlvyGroupInnb", new BigInteger(String.valueOf(goodsMap.get("dlvyGroupInnb"))).intValue());
|
||||
goodsMap.put("slepric", new BigInteger(String.valueOf(goodsMap.get("slepric"))).intValue());
|
||||
goodsMap.put("mbrInnb", new BigInteger(String.valueOf(goodsMap.get("mbrInnb"))).intValue());
|
||||
|
||||
// cntCndAditAmt(설정수량)단위로 으로 goodsList qy(수량) 설정
|
||||
if ((goodsQy - j) > 1) {
|
||||
goodsMap.put("qy", itemCntCndAditAmt.intValue());
|
||||
} else {
|
||||
goodsMap.put("qy", qy.intValue() - (itemCntCndAditAmt.intValue() * j));
|
||||
}
|
||||
|
||||
// goodsDscntAmt(할인금액)이 있을 경우
|
||||
if (goodsDscntAmt.compareTo(BigDecimal.ZERO) > 0) {
|
||||
unitDscntAmt = new BigInteger(String.valueOf(goodsDscntAmt.divide(qy, 0, RoundingMode.DOWN))); // 소수점이하 나머지 버림
|
||||
goodsMap.put("dscntAmt", unitDscntAmt.intValueExact());
|
||||
goodsMap.put("subSlepric", new BigInteger(String.valueOf(((int) goodsMap.get("slepric") * (int) goodsMap.get("qy")))).intValueExact());
|
||||
goodsMap.put("dscntApplyAmt", new BigInteger(String.valueOf(((int) goodsMap.get("slepric") * (int) goodsMap.get("qy")) - (int) goodsMap.get("dscntAmt"))).intValueExact());
|
||||
|
||||
} else {
|
||||
// goodsDscntAmt(할인금액)이 0일 경우
|
||||
goodsMap.put("dscntAmt", unitDscntAmt.intValueExact());
|
||||
goodsMap.put("subSlepric", new BigInteger(String.valueOf(((int) goodsMap.get("slepric") * (int) goodsMap.get("qy")))).intValueExact());
|
||||
goodsMap.put("dscntApplyAmt", new BigInteger(String.valueOf(((int) goodsMap.get("slepric") * (int) goodsMap.get("qy")) - (int) goodsMap.get("dscntAmt"))).intValueExact());
|
||||
}
|
||||
|
||||
// item.put("subSlepric", new BigDecimal(String.valueOf(( (int) goods.get("slepric") * (int) goods.get("qy")) - (int) goods.get("dscntAmt") )));
|
||||
|
||||
// GoodsList에 추가
|
||||
List<LinkedHashMap> itemGoodsList = new ArrayList<>();
|
||||
itemGoodsList.add(new LinkedHashMap<>(goodsMap));
|
||||
|
||||
List<LinkedHashMap> itempPrsntList = new ArrayList<>();
|
||||
// if(!prsntList.isEmpty()){
|
||||
// itempPrsntList.add(prsntList.get(i));
|
||||
// for (LinkedHashMap<String, Object> itemPrsntMap : itempPrsntList) {
|
||||
// if((goodsQy-j) > 1){
|
||||
// itemPrsntMap.put("qy", itemCntCndAditAmt.intValue());
|
||||
// } else {
|
||||
// itemPrsntMap.put("qy", qy.intValue() - (itemCntCndAditAmt.intValue() * j));
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
LinkedHashMap<String, Object> dlvyMap = new LinkedHashMap<>();
|
||||
|
||||
dlvyMap.put("dftDlvyAmt", itemDftDlvyAmt.intValue());
|
||||
dlvyMap.put("dlvyAmt", itemDlvyAmt.intValue());
|
||||
dlvyMap.put("couponInnb", 0);
|
||||
dlvyMap.put("dwldCouponInnb", 0);
|
||||
dlvyMap.put("dplctDscntAt", "");
|
||||
dlvyMap.put("otrCouponSmtmUseAt", "");
|
||||
dlvyMap.put("mngrFreeDlvyUseAt", "N");
|
||||
dlvyMap.put("dlvylcAreaCd", shipping.get("dlvylcAreaCd"));
|
||||
dlvyMap.put("cstmclerCd", shipping.get("cstmclerCd"));
|
||||
dlvyMap.put("dlvylcZip", shipping.get("dlvylcZip"));
|
||||
dlvyMap.put("prefcd", shipping.get("prefcd"));
|
||||
dlvyMap.put("recpntNm", shipping.get("recpntNm"));
|
||||
dlvyMap.put("recpntMbtlnb", shipping.get("recpntMbtlnb"));
|
||||
dlvyMap.put("dlvylcAdresDvCd", shipping.get("dlvylcAdresDvCd"));
|
||||
dlvyMap.put("dlvylcLnbAdres", shipping.get("dlvylcLnbAdres"));
|
||||
dlvyMap.put("dlvylcRnmAdres", shipping.get("dlvylcRnmAdres"));
|
||||
dlvyMap.put("dlvylcAdresDtl", shipping.get("dlvylcAdresDtl"));
|
||||
dlvyMap.put("dlvyMssageCn", shipping.get("dlvyMssageCn"));
|
||||
dlvyMap.put("goodsList", itemGoodsList);
|
||||
dlvyMap.put("prsntList", itempPrsntList); //prsntList.get(i));
|
||||
|
||||
dlvylcListMulti.add(dlvyMap);
|
||||
} // for j
|
||||
|
||||
} // for goodsByDlvyGroupList
|
||||
|
||||
} else {
|
||||
// 수량 조건 없을 경우
|
||||
|
||||
List<LinkedHashMap> itemGoodsList = new ArrayList<>();
|
||||
|
||||
for (DataMap goodsMap : goodsByDlvyGroupList) {
|
||||
// BigDecimal qy = (BigDecimal) goodsMap.get("qy"); // 수량
|
||||
goodsMap.put("goodsInnb", new BigInteger(String.valueOf(goodsMap.get("goodsInnb"))).intValue());
|
||||
goodsMap.put("goodsOptnInnb", new BigInteger(String.valueOf(goodsMap.get("goodsOptnInnb"))).intValue());
|
||||
goodsMap.put("dlvyGroupInnb", new BigInteger(String.valueOf(goodsMap.get("dlvyGroupInnb"))).intValue());
|
||||
goodsMap.put("qy", new BigInteger(String.valueOf(goodsMap.get("qy"))).intValue());
|
||||
|
||||
goodsMap.put("dscntApplyAmt", new BigInteger(String.valueOf(goodsMap.get("dscntApplyAmt"))).intValue());
|
||||
goodsMap.put("slepric", new BigInteger(String.valueOf(goodsMap.get("slepric"))).intValue());
|
||||
goodsMap.put("subSlepric", new BigInteger(String.valueOf(goodsMap.get("subSlepric"))).intValue());
|
||||
goodsMap.put("dscntAmt", new BigInteger(String.valueOf(goodsMap.get("dscntAmt"))).intValue());
|
||||
goodsMap.put("mbrInnb", new BigInteger(String.valueOf(goodsMap.get("mbrInnb"))).intValue());
|
||||
|
||||
|
||||
itemGoodsList.add(new LinkedHashMap<>(goodsMap));
|
||||
|
||||
}
|
||||
|
||||
List<LinkedHashMap> itempPrsntList = new ArrayList<>();
|
||||
// if(!prsntList.isEmpty()){
|
||||
// itempPrsntList.add(prsntList.get(i));
|
||||
// for (LinkedHashMap<String, Object> itemPrsntMap : itempPrsntList) {
|
||||
// itemPrsntMap.put("qy", qy.intValue());
|
||||
// }
|
||||
// }
|
||||
|
||||
LinkedHashMap<String, Object> dlvyMap = new LinkedHashMap<>();
|
||||
|
||||
dlvyMap.put("dftDlvyAmt", itemDftDlvyAmt.intValue());
|
||||
dlvyMap.put("dlvyAmt", itemDlvyAmt.intValue());
|
||||
dlvyMap.put("couponInnb", 0);
|
||||
dlvyMap.put("dwldCouponInnb", 0);
|
||||
dlvyMap.put("dplctDscntAt", "");
|
||||
dlvyMap.put("otrCouponSmtmUseAt", "");
|
||||
dlvyMap.put("mngrFreeDlvyUseAt", "N");
|
||||
dlvyMap.put("dlvylcAreaCd", shipping.get("dlvylcAreaCd"));
|
||||
dlvyMap.put("cstmclerCd", shipping.get("cstmclerCd"));
|
||||
dlvyMap.put("dlvylcZip", shipping.get("dlvylcZip"));
|
||||
dlvyMap.put("prefcd", shipping.get("prefcd"));
|
||||
dlvyMap.put("recpntNm", shipping.get("recpntNm"));
|
||||
dlvyMap.put("recpntMbtlnb", shipping.get("recpntMbtlnb"));
|
||||
dlvyMap.put("dlvylcAdresDvCd", shipping.get("dlvylcAdresDvCd"));
|
||||
dlvyMap.put("dlvylcLnbAdres", shipping.get("dlvylcLnbAdres"));
|
||||
dlvyMap.put("dlvylcRnmAdres", shipping.get("dlvylcRnmAdres"));
|
||||
dlvyMap.put("dlvylcAdresDtl", shipping.get("dlvylcAdresDtl"));
|
||||
dlvyMap.put("dlvyMssageCn", shipping.get("dlvyMssageCn"));
|
||||
dlvyMap.put("goodsList", itemGoodsList);
|
||||
dlvyMap.put("prsntList", itempPrsntList); //prsntList.get(i));
|
||||
|
||||
dlvylcListMulti.add(dlvyMap);
|
||||
}
|
||||
|
||||
// } // DlvyGroupDvCd 무료배송, 유료배송
|
||||
} else { // 조건부 무료 or 무료 배송일 경우
|
||||
|
||||
// 무료배송(조건부)
|
||||
if ("01".equals(itemDlvyGroupDvCd)) {
|
||||
|
||||
List<LinkedHashMap> itemGoodsList = new ArrayList<>();
|
||||
|
||||
for (DataMap goodsMap : goodsByDlvyGroupList) {
|
||||
|
||||
BigDecimal subSlepric = new BigDecimal(String.valueOf(goodsMap.get("subSlepric"))); // 판매가 * 수량
|
||||
|
||||
// 금액 조건
|
||||
if ("Y".equals(itemAmtCndUseAt)) {
|
||||
// subSlepric(금액)이 무료배송 금액조건보다 크거나 같을 경우 [상품 기준]
|
||||
if (subSlepric.compareTo(itemAmtCndAditAmt) >= 0) {
|
||||
itemDlvyAmt = new BigDecimal(0);
|
||||
}
|
||||
}
|
||||
|
||||
// 수량 조건
|
||||
if ("Y".equals(itemCntCndUseAt)) {
|
||||
BigDecimal qy = new BigDecimal(String.valueOf(goodsMap.get("qy"))); // 수량
|
||||
|
||||
// qy(수량)이 무료배송 수량조건보다 크거나 같을 경우 [상품 기준]
|
||||
if (qy.compareTo(itemCntCndAditAmt) >= 0) {
|
||||
itemDlvyAmt = new BigDecimal(0);
|
||||
}
|
||||
}
|
||||
|
||||
// 묶음배송 조건 사용여부 [상품리스트 전체 기준]
|
||||
if ("Y".equals(itemBundleDlvyUseAt)) { // 묶음 O
|
||||
|
||||
// 묶음배송 사용여부 Y && 상품건수 1개 이상
|
||||
if (goodsByDlvyGroupList.size() > 0) {
|
||||
// 묶음배송 조건금액이 있으면
|
||||
if (itemBundleDlvyCndAmt != null && itemBundleDlvyCndAmt.compareTo(BigDecimal.ZERO) > 0) {
|
||||
|
||||
bundleDlvyAmtYSlepricSum = bundleDlvyAmtYSlepricSum.add(subSlepric);
|
||||
|
||||
// bundleDlvyAmtYSlepricSum 값이 itemBundleDlvyCndAmt 보다 크거나 같으면( 묶음배송 무료조건을 만족하면)
|
||||
if (bundleDlvyAmtYSlepricSum.compareTo(itemBundleDlvyCndAmt) >= 0) {
|
||||
itemDlvyAmt = new BigDecimal(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// multi shipping -> goodsList int값으로 변환
|
||||
goodsMap.put("goodsInnb", new BigInteger(String.valueOf(goodsMap.get("goodsInnb"))).intValue());
|
||||
goodsMap.put("goodsOptnInnb", new BigInteger(String.valueOf(goodsMap.get("goodsOptnInnb"))).intValue());
|
||||
goodsMap.put("dlvyGroupInnb", new BigInteger(String.valueOf(goodsMap.get("dlvyGroupInnb"))).intValue());
|
||||
goodsMap.put("qy", new BigInteger(String.valueOf(goodsMap.get("qy"))).intValue());
|
||||
|
||||
goodsMap.put("dscntApplyAmt", new BigInteger(String.valueOf(goodsMap.get("dscntApplyAmt"))).intValue());
|
||||
goodsMap.put("slepric", new BigInteger(String.valueOf(goodsMap.get("slepric"))).intValue());
|
||||
goodsMap.put("subSlepric", new BigInteger(String.valueOf(goodsMap.get("subSlepric"))).intValue());
|
||||
goodsMap.put("dscntAmt", new BigInteger(String.valueOf(goodsMap.get("dscntAmt"))).intValue());
|
||||
goodsMap.put("mbrInnb", new BigInteger(String.valueOf(goodsMap.get("mbrInnb"))).intValue());
|
||||
|
||||
itemGoodsList.add(new LinkedHashMap<>(goodsMap));
|
||||
|
||||
}
|
||||
|
||||
List<LinkedHashMap> itempPrsntList = new ArrayList<>();
|
||||
// if(!prsntList.isEmpty()){
|
||||
// itempPrsntList.add(prsntList.get(i));
|
||||
// for (LinkedHashMap<String, Object> itemPrsntMap : itempPrsntList) {
|
||||
// itemPrsntMap.put("qy", qy.intValue());
|
||||
// }
|
||||
// }
|
||||
|
||||
// 추가배송비 계산 (MUL)
|
||||
if (!StringUtils.isEmpty(itemDlvyAreaAditAt) && "Y".equals(itemDlvyAreaAditAt)) {
|
||||
if (!StringUtils.isEmpty(defaultAdressAt) && "Y".equals(defaultAdressAt)) {
|
||||
itemDlvyAmt = itemDlvyAmt.add(itemAreaAditDlvyAmt); // 유료 배송 도서산간 추가 배송비
|
||||
}
|
||||
}
|
||||
|
||||
LinkedHashMap<String, Object> dlvyMap = new LinkedHashMap<>();
|
||||
|
||||
dlvyMap.put("dftDlvyAmt", itemDftDlvyAmt.intValue());
|
||||
dlvyMap.put("dlvyAmt", itemDlvyAmt.intValue());
|
||||
dlvyMap.put("couponInnb", 0);
|
||||
dlvyMap.put("dwldCouponInnb", 0);
|
||||
dlvyMap.put("dplctDscntAt", "");
|
||||
dlvyMap.put("otrCouponSmtmUseAt", "");
|
||||
dlvyMap.put("mngrFreeDlvyUseAt", "N");
|
||||
dlvyMap.put("dlvylcAreaCd", shipping.get("dlvylcAreaCd"));
|
||||
dlvyMap.put("cstmclerCd", shipping.get("cstmclerCd"));
|
||||
dlvyMap.put("dlvylcZip", shipping.get("dlvylcZip"));
|
||||
dlvyMap.put("prefcd", shipping.get("prefcd"));
|
||||
dlvyMap.put("recpntNm", shipping.get("recpntNm"));
|
||||
dlvyMap.put("recpntMbtlnb", shipping.get("recpntMbtlnb"));
|
||||
dlvyMap.put("dlvylcAdresDvCd", shipping.get("dlvylcAdresDvCd"));
|
||||
dlvyMap.put("dlvylcLnbAdres", shipping.get("dlvylcLnbAdres"));
|
||||
dlvyMap.put("dlvylcRnmAdres", shipping.get("dlvylcRnmAdres"));
|
||||
dlvyMap.put("dlvylcAdresDtl", shipping.get("dlvylcAdresDtl"));
|
||||
dlvyMap.put("dlvyMssageCn", shipping.get("dlvyMssageCn"));
|
||||
dlvyMap.put("goodsList", itemGoodsList);
|
||||
dlvyMap.put("prsntList", itempPrsntList); //prsntList.get(i));
|
||||
|
||||
dlvylcListMulti.add(dlvyMap);
|
||||
|
||||
} else { //if ("02".equals(itemDlvyGroupDvCd)) { // 무료 배송일 경우
|
||||
|
||||
// 추가배송비 계산 (MUL)
|
||||
if (!StringUtils.isEmpty(itemDlvyAreaAditAt) && "Y".equals(itemDlvyAreaAditAt)) {
|
||||
if (!StringUtils.isEmpty(defaultAdressAt) && "Y".equals(defaultAdressAt)) {
|
||||
itemDlvyAmt = itemDlvyAmt.add(itemAreaAditDlvyAmt); // 유료 배송 도서산간 추가 배송비
|
||||
}
|
||||
}
|
||||
|
||||
List<LinkedHashMap> itemGoodsList = new ArrayList<>();
|
||||
|
||||
for (DataMap goodsMap : goodsByDlvyGroupList) {
|
||||
// BigDecimal qy = (BigDecimal) goodsMap.get("qy"); // 수량
|
||||
|
||||
goodsMap.put("goodsInnb", new BigInteger(String.valueOf(goodsMap.get("goodsInnb"))).intValue());
|
||||
goodsMap.put("goodsOptnInnb", new BigInteger(String.valueOf(goodsMap.get("goodsOptnInnb"))).intValue());
|
||||
goodsMap.put("dlvyGroupInnb", new BigInteger(String.valueOf(goodsMap.get("dlvyGroupInnb"))).intValue());
|
||||
goodsMap.put("qy", new BigInteger(String.valueOf(goodsMap.get("qy"))).intValue());
|
||||
|
||||
goodsMap.put("dscntApplyAmt", new BigInteger(String.valueOf(goodsMap.get("dscntApplyAmt"))).intValue());
|
||||
goodsMap.put("slepric", new BigInteger(String.valueOf(goodsMap.get("slepric"))).intValue());
|
||||
goodsMap.put("subSlepric", new BigInteger(String.valueOf(goodsMap.get("subSlepric"))).intValue());
|
||||
goodsMap.put("dscntAmt", new BigInteger(String.valueOf(goodsMap.get("dscntAmt"))).intValue());
|
||||
goodsMap.put("mbrInnb", new BigInteger(String.valueOf(goodsMap.get("mbrInnb"))).intValue());
|
||||
|
||||
itemGoodsList.add(new LinkedHashMap<>(goodsMap));
|
||||
|
||||
}
|
||||
|
||||
List<LinkedHashMap> itempPrsntList = new ArrayList<>();
|
||||
// if(!prsntList.isEmpty()){
|
||||
// itempPrsntList.add(prsntList.get(i));
|
||||
// for (LinkedHashMap<String, Object> itemPrsntMap : itempPrsntList) {
|
||||
// itemPrsntMap.put("qy", qy.intValue());
|
||||
// }
|
||||
// }
|
||||
|
||||
LinkedHashMap<String, Object> dlvyMap = new LinkedHashMap<>();
|
||||
|
||||
dlvyMap.put("dftDlvyAmt", itemDftDlvyAmt.intValue());
|
||||
dlvyMap.put("dlvyAmt", itemDlvyAmt.intValue());
|
||||
dlvyMap.put("couponInnb", 0);
|
||||
dlvyMap.put("dwldCouponInnb", 0);
|
||||
dlvyMap.put("dplctDscntAt", "");
|
||||
dlvyMap.put("otrCouponSmtmUseAt", "");
|
||||
dlvyMap.put("mngrFreeDlvyUseAt", "N");
|
||||
dlvyMap.put("dlvylcAreaCd", shipping.get("dlvylcAreaCd"));
|
||||
dlvyMap.put("cstmclerCd", shipping.get("cstmclerCd"));
|
||||
dlvyMap.put("dlvylcZip", shipping.get("dlvylcZip"));
|
||||
dlvyMap.put("prefcd", shipping.get("prefcd"));
|
||||
dlvyMap.put("recpntNm", shipping.get("recpntNm"));
|
||||
dlvyMap.put("recpntMbtlnb", shipping.get("recpntMbtlnb"));
|
||||
dlvyMap.put("dlvylcAdresDvCd", shipping.get("dlvylcAdresDvCd"));
|
||||
dlvyMap.put("dlvylcLnbAdres", shipping.get("dlvylcLnbAdres"));
|
||||
dlvyMap.put("dlvylcRnmAdres", shipping.get("dlvylcRnmAdres"));
|
||||
dlvyMap.put("dlvylcAdresDtl", shipping.get("dlvylcAdresDtl"));
|
||||
dlvyMap.put("dlvyMssageCn", shipping.get("dlvyMssageCn"));
|
||||
dlvyMap.put("goodsList", itemGoodsList);
|
||||
dlvyMap.put("prsntList", itempPrsntList); //prsntList.get(i));
|
||||
|
||||
dlvylcListMulti.add(dlvyMap);
|
||||
|
||||
}
|
||||
|
||||
} // 조건부 무료 or 무료 배송일 경우
|
||||
// dlvyAmtByDlvyGroupList.add(dlvyGroupMap); // 배송그룹별 배송비 목록
|
||||
} // for : dlvyGroupEtry
|
||||
|
||||
// 배송지가 1개 이상이면 여러곳 배송으로 변경
|
||||
if(dlvylcListMulti.size() > 1) {
|
||||
ordrTyCd = "05";
|
||||
}
|
||||
|
||||
} else if ("05".equals(ordrTyCd)) { // 여러곳 배송, 선물하기
|
||||
if (!CollectionUtils.isEmpty(multiOrdrDlvylcMap)) {
|
||||
// 배송지 리스트
|
||||
dlvylcListMulti = (List<LinkedHashMap<String, Object>>) multiOrdrDlvylcMap.get("dlvylc");
|
||||
log.debug("dlvylcListMulti : {}", dlvylcListMulti);
|
||||
}
|
||||
}
|
||||
/** 여러곳 배송 배송지 세팅 종료 */
|
||||
|
||||
|
||||
/* *****************************
|
||||
1. 주문등록(GC_ORDER)
|
||||
@@ -128,6 +573,7 @@ public class BOOrderService {
|
||||
|
||||
BOOrderShippingVO shippingEscrowVO = new BOOrderShippingVO();
|
||||
if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "04".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원 개인결제, 정기배송
|
||||
|
||||
BOOrderShippingVO shippingVO = new BOOrderShippingVO();
|
||||
|
||||
shippingVO.setSopmalCd(sopmalCd);
|
||||
@@ -487,7 +933,7 @@ public class BOOrderService {
|
||||
inputOptnVO.setOptnVal4(optns[3]);
|
||||
}
|
||||
|
||||
itemOptnVO.setOrdrGoodsOptnInnb(orderNoService.generateOrderItemOptnNo());
|
||||
inputOptnVO.setOrdrGoodsOptnInnb(orderNoService.generateOrderItemOptnNo());
|
||||
mapper.insertOrdrGoodsOption(inputOptnVO); // 주문 상품 입력 옵션 정보 등록
|
||||
}
|
||||
}
|
||||
@@ -509,154 +955,6 @@ public class BOOrderService {
|
||||
|
||||
}
|
||||
|
||||
// LinkedHashMap prsntMapByOrdrShpping = new LinkedHashMap();
|
||||
// LinkedHashMap tmpQyMap = new LinkedHashMap();
|
||||
//
|
||||
// int totOrdrQy = goodsList.stream().mapToInt(obj -> (int) obj.get("qy")).sum();
|
||||
//
|
||||
// if ("05".equals(ordrTyCd)) {
|
||||
// int mngrFreeDlvyUseAmt = shipping.values().stream().map(obj-> (LinkedHashMap) obj).mapToInt(obj -> (int) obj.get("mngrFreeDlvyUseAmt")).sum();
|
||||
//
|
||||
// if (0 < mngrFreeDlvyUseAmt) {
|
||||
// BigDecimal dscntAmt = new BigDecimal(StringUtils.hasText((String) enuri.get("enuriAmt")) ? (String) enuri.get("enuriAmt") : "0");
|
||||
//
|
||||
// // enuri.put("enuriAmt", dscntAmt.add(BigDecimal.valueOf(mngrFreeDlvyUseAmt)).toString()); // (2025-02-28) 무료배송시 할인 금액을 애누리에 넣지않고 무료 배송비 여부만 gc_order_shipping 마킹함.
|
||||
// }
|
||||
// }
|
||||
|
||||
// for (String adbkInnb : shipping.keySet()) {
|
||||
// LinkedHashMap shippingMap = (LinkedHashMap) shipping.get(adbkInnb);
|
||||
//
|
||||
// BOOrderShippingVO shippingVO = new BOOrderShippingVO();
|
||||
//
|
||||
// shippingVO.setSopmalCd(sopmalCd);
|
||||
// shippingVO.setOrdrInnb(ordrInnb);
|
||||
// shippingVO.setAdbkInnb(adbkInnb);
|
||||
// shippingVO.setMngrInnb(orderVO.getMngrInnb());
|
||||
// shippingVO.setMbrInnb(orderVO.getMbrInnb());
|
||||
// shippingVO.setOrdrSttusCd(orderVO.getOrdrSttusCd());
|
||||
// // shippingVO.setMngrFreeDlvyUseAt(StringUtil.isNullToString(shipping.get("mngrFreeDlvyUseAt")) != "" ? StringUtil.isNullToString(shipping.get("mngrFreeDlvyUseAt")) : "N"); // TODO : 여러곳 배송일 경우 모료배송비 여부 일반주문과 같이 고려 필요 (2025-02-28)
|
||||
//
|
||||
// /* *****************************************
|
||||
// 4. 주문배송 정보 등록(GC_ORDER_SHIPPING)
|
||||
// ***************************************** */
|
||||
// insertShipping(ordrTyCd, shippingMap, shippingVO); // 주문배송 정보 등록
|
||||
// shippingEscrowVO = shippingVO; //에스크로에 보낼 배송정보 (TODO :: 여러곳배송은 배송지가 여러곳이라 어느 정보일지 결정해야 함. 현재는 1번으로)
|
||||
//
|
||||
// BigInteger ordrDlvyInnb = shippingVO.getOrdrDlvyInnb();
|
||||
//
|
||||
// List<LinkedHashMap> dlvylcByGoodsList = (List<LinkedHashMap>) shippingMap.get("goodsList");
|
||||
//
|
||||
// // 분배된 할인 금액 누적
|
||||
// BOOrderRestAmtVO discountInfo = new BOOrderRestAmtVO();
|
||||
//
|
||||
// /* ***********************************************
|
||||
// 5. 주문 상품 옵션 정보 등록(GC_ORDER_ITEM_OPTION)
|
||||
// 주문 상품 입력 옵션 정보 등록
|
||||
// *********************************************** */
|
||||
// if (!CollectionUtils.isEmpty(dlvylcByGoodsList)) {
|
||||
// for (int i = 0; i < dlvylcByGoodsList.size(); i++) {
|
||||
// LinkedHashMap goods = dlvylcByGoodsList.get(i);
|
||||
//
|
||||
// if (!CollectionUtils.isEmpty(goods)) {
|
||||
// int goodsInnb = (int) goods.get("goodsInnb");
|
||||
// int goodsOptnInnb = (int) goods.get("goodsOptnInnb");
|
||||
// int qy = (int) goods.get("qy");
|
||||
// int ordrQy = (int) goods.get("ordrQy");
|
||||
//
|
||||
// BOOrderItemVO orderItemVO = insertedGoodsList.stream().filter(obj -> Objects.equals(ordrInnb, obj.getOrdrInnb()) &&
|
||||
// Objects.equals(BigInteger.valueOf(goodsInnb), obj.getGoodsInnb())).findAny().orElse(null);
|
||||
//
|
||||
// if (orderItemVO != null) {
|
||||
// int preQy = tmpQyMap.get(String.valueOf(goodsOptnInnb)) != null ? (int) tmpQyMap.get(String.valueOf(goodsOptnInnb)) : 0;
|
||||
// int subTotQy = (qy + preQy);
|
||||
//
|
||||
// boolean isSubLast = (subTotQy == ordrQy);
|
||||
// boolean isLast = false;
|
||||
//
|
||||
// if (isSubLast) {
|
||||
// int preOrderGoodsQy = tmpQyMap.get(String.valueOf(ordrInnb)) != null ? (int) tmpQyMap.get(String.valueOf(ordrInnb)) : 0;
|
||||
// int orderGoodsQy = (subTotQy + preOrderGoodsQy);
|
||||
//
|
||||
// isLast = (orderGoodsQy == totOrdrQy);
|
||||
//
|
||||
// tmpQyMap.put(String.valueOf(ordrInnb), subTotQy);
|
||||
// }
|
||||
//
|
||||
// BOOrderItemOptnVO itemOptnVO = new BOOrderItemOptnVO();
|
||||
//
|
||||
// itemOptnVO.setSopmalCd(sopmalCd);
|
||||
// itemOptnVO.setOrdrGoodsInnb(orderItemVO.getOrdrGoodsInnb());
|
||||
// itemOptnVO.setOrdrDlvyInnb(ordrDlvyInnb);
|
||||
// itemOptnVO.setOrdrSttusCd(orderVO.getOrdrSttusCd());
|
||||
//
|
||||
// setGoodsOptn(sopmalCd, goodsInnb, goodsOptnInnb, qy, itemOptnVO); // 상품 옵션정보 세팅
|
||||
//
|
||||
// setDscntDtls(goodsInnb, goodsOptnInnb, adbkInnb, goodsList, shipping, enuri, itemOptnVO, isSubLast, isLast, discountInfo); // 상품 할인내역 세팅
|
||||
//
|
||||
// if (StringUtils.hasText((String) purchsr.get("mbrId"))) { // 회원
|
||||
// setMlgAmt(ordrTyCd, goodsInnb, goodsOptnInnb, qy, goodsList, itemOptnVO); // 상품 마일리지 정보 세팅
|
||||
// } else {
|
||||
// itemOptnVO.setMlgAccmlUnit(new BigDecimal(0)); // 마일리지적립금액(개당)
|
||||
// itemOptnVO.setMlgAccmlRest(new BigDecimal(0)); // 마일리지적립금액(짜투리)
|
||||
// }
|
||||
//
|
||||
// mapper.insertOrdrGoodsOption(itemOptnVO); // 주문 상품 옵션 정보 등록
|
||||
//
|
||||
// tmpQyMap.put(String.valueOf(goodsOptnInnb), qy);
|
||||
//
|
||||
// String inputOptn = (String) goods.get("inputOptn");
|
||||
//
|
||||
// if (StringUtils.hasText(inputOptn)) {
|
||||
// String[] inputOptns = inputOptn.split("/");
|
||||
//
|
||||
// for (int j = 0; j < inputOptns.length; j++) {
|
||||
// String optn = inputOptns[j];
|
||||
// String[] optns = optn.split(",");
|
||||
//
|
||||
// BOOrderItemOptnVO inputOptnVO = new BOOrderItemOptnVO();
|
||||
//
|
||||
// inputOptnVO.setSopmalCd(sopmalCd);
|
||||
// inputOptnVO.setOrdrGoodsInnb(orderItemVO.getOrdrGoodsInnb());
|
||||
// inputOptnVO.setOrdrDlvyInnb(ordrDlvyInnb);
|
||||
// inputOptnVO.setOrdrSttusCd("0"); // 주문상태(99:결제실패)
|
||||
// inputOptnVO.setRelateOrdrGoodsOptnInnb(itemOptnVO.getOrdrGoodsOptnInnb());
|
||||
//
|
||||
// setGoodsOptn(optns[0], Integer.parseInt(optns[1]), Integer.parseInt(optns[2]), 0, inputOptnVO); // 상품 옵션정보 세팅
|
||||
//
|
||||
// if (i == 0) {
|
||||
// inputOptnVO.setOptnVal1(optns[3]);
|
||||
// } else if (i == 1) {
|
||||
// inputOptnVO.setOptnVal2(optns[3]);
|
||||
// } else if (i == 2) {
|
||||
// inputOptnVO.setOptnVal3(optns[3]);
|
||||
// } else if (i == 3) {
|
||||
// inputOptnVO.setOptnVal4(optns[3]);
|
||||
// }
|
||||
//
|
||||
// mapper.insertOrdrGoodsOption(inputOptnVO); // 주문 상품 입력 옵션 정보 등록
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// List<LinkedHashMap> prsntListByOrdrShpping = (List<LinkedHashMap>) shippingMap.get("prsntList");
|
||||
//
|
||||
// if (!CollectionUtils.isEmpty(prsntListByOrdrShpping)) {
|
||||
// prsntMapByOrdrShpping.put(ordrDlvyInnb.toString(), prsntListByOrdrShpping); // 주문배송 별 사은품 정보 등록
|
||||
// }
|
||||
// } else {
|
||||
// throw new WnbtRestException("배송지별 주문상품정보를 찾을 수 없습니다.");
|
||||
// }
|
||||
// }
|
||||
|
||||
/* *****************************************************
|
||||
6. 주문 상품 옵션(사은품) 정보 등록(GC_ORDER_ITEM_OPTION)
|
||||
***************************************************** */
|
||||
// if (!CollectionUtils.isEmpty(prsntMapByOrdrShpping)) {
|
||||
// insertPrsntByOrdrShpping(sopmalCd, ordrInnb, prsntMapByOrdrShpping);
|
||||
// }
|
||||
}
|
||||
|
||||
// mapper.updateUsefulInvntryQy(orderVO); // 가용제고수량 수정 ( 주석 처리자 : 추지훈 :: 주문 등록할때 재고떨고 결제될때 또 재고 떨어서 주석처리함 )
|
||||
@@ -668,6 +966,9 @@ public class BOOrderService {
|
||||
***************************************** */
|
||||
BOOrderSetleVO setleVO = insertSetle(orderVO, setle, insertedGoodsList, enuri, purchsr); // 결제 정보 등록
|
||||
|
||||
// 결제금액 원화로 변경
|
||||
// setleVO.setSetleAmt(setleVO.getWonSetleAmt());
|
||||
|
||||
content.put("ordr", orderVO);
|
||||
content.put("setle", setleVO);
|
||||
content.put("shipping", shippingEscrowVO);
|
||||
@@ -924,11 +1225,13 @@ public class BOOrderService {
|
||||
BOOrderSetleVO setleVO = new BOOrderSetleVO();
|
||||
|
||||
BigDecimal rlSetleAmt = new BigDecimal((String) setle.get("rlSetleAmt"));
|
||||
BigDecimal wonRlSetleAmt = new BigDecimal((String) setle.get("wonRlSetleAmt"));
|
||||
|
||||
setleVO.setSopmalCd(sopmalCd);
|
||||
setleVO.setOrdrInnb(ordrInnb);
|
||||
setleVO.setGoodsNm(goodsNm);
|
||||
setleVO.setSetleAmt(rlSetleAmt);
|
||||
setleVO.setWonSetleAmt(wonRlSetleAmt);
|
||||
|
||||
String pgCmpnyNm = (String) setle.get("pgCmpnyNm");
|
||||
String setleTyCd = (String) setle.get("setleTyCd");
|
||||
@@ -949,7 +1252,7 @@ public class BOOrderService {
|
||||
setleVO.setPgCmpnyNm("");
|
||||
}
|
||||
|
||||
if (StringUtils.hasText((String) purchsr.get("mbrId"))) { // GC머니는 회원만 적용
|
||||
if (StringUtils.hasText((String) purchsr.get("mbrId")) && orderVO.getSubsvcInnb() == null) { // GC머니는 회원만 적용
|
||||
// GC 머니 사용했을 경우 여부, 금액 세팅 ( 결제유형과는 무관 )
|
||||
Object useCashMlgAmt = enuri.get("useCashMlgAmt"); // 사용 GC 머니
|
||||
if (useCashMlgAmt != null) {
|
||||
@@ -1223,6 +1526,9 @@ public class BOOrderService {
|
||||
shippingVO.setRecpntTelnb((String) shipping.get("recpntTelnb"));
|
||||
shippingVO.setRecpntMbtlnb((String) shipping.get("recpntMbtlnb"));
|
||||
|
||||
shippingVO.setDlvylcAreaCd((String) shipping.get("dlvylcAreaCd"));
|
||||
shippingVO.setCstmclerCd((String) shipping.get("cstmclerCd"));
|
||||
shippingVO.setPrefcd((String) shipping.get("prefcd"));
|
||||
shippingVO.setDlvylcZip((String) shipping.get("dlvylcZip"));
|
||||
shippingVO.setDlvylcAdresDvCd((String) shipping.get("dlvylcAdresDvCd"));
|
||||
shippingVO.setDlvylcLnbAdres((String) shipping.get("dlvylcLnbAdres"));
|
||||
@@ -1261,6 +1567,9 @@ public class BOOrderService {
|
||||
shippingVO.setRecpntTelnb(StringUtil.isNullToString(shipping.get("recpntTelnb")));
|
||||
shippingVO.setRecpntMbtlnb(StringUtil.isNullToString(shipping.get("recpntMbtlnb")));
|
||||
|
||||
shippingVO.setDlvylcAreaCd(StringUtil.isNullToString(shipping.get("dlvylcAreaCd")));
|
||||
shippingVO.setCstmclerCd(StringUtil.isNullToString(shipping.get("cstmclerCd")));
|
||||
shippingVO.setPrefcd(StringUtil.isNullToString(shipping.get("prefcd")));
|
||||
shippingVO.setDlvylcZip(StringUtil.isNullToString(shipping.get("dlvylcZip")));
|
||||
shippingVO.setDlvylcAdresDvCd(StringUtil.isNullToString(shipping.get("dlvylcAdresDvCd")));
|
||||
shippingVO.setDlvylcLnbAdres(StringUtil.isNullToString(shipping.get("dlvylcLnbAdres")));
|
||||
@@ -1486,6 +1795,17 @@ public class BOOrderService {
|
||||
orderVO.setRlSetleAmt(new BigDecimal(rlSetleAmt));
|
||||
}
|
||||
|
||||
String wonRlSetleAmt = (String) setle.get("wonRlSetleAmt"); // 실결제금액(원화)
|
||||
|
||||
if (StringUtils.hasText(wonRlSetleAmt)) {
|
||||
orderVO.setWonRlSetleAmt(new BigDecimal(wonRlSetleAmt));
|
||||
}
|
||||
|
||||
DataMap paramMap = new DataMap();
|
||||
paramMap.put("sopmalCd", orderVO.getSopmalCd());
|
||||
BigDecimal buyRate = boOrdrMapper.selectBuyRate(paramMap); // 살때환율
|
||||
orderVO.setBuyRate(buyRate);
|
||||
|
||||
String setleTyCd = (String) setle.get("setleTyCd");
|
||||
|
||||
if ("02".equals(setleTyCd)) { //|| "04".equals(setleTyCd) || "05".equals(setleTyCd)) { // KCP 무통장, 가상계좌, 가상계좌(에스크로) leeks
|
||||
@@ -1506,6 +1826,11 @@ public class BOOrderService {
|
||||
orderVO.setMngrId((String) setle.get("mngrId")); // 관리자ID
|
||||
orderVO.setMngrNm((String) setle.get("mngrNm")); // 관리자명
|
||||
}
|
||||
|
||||
if (setle.containsKey("subsvcInnb")) { // 구독서비스 고유번호
|
||||
int subsvcInnb = (Integer) setle.get("subsvcInnb");
|
||||
orderVO.setSubsvcInnb(subsvcInnb);
|
||||
}
|
||||
} else {
|
||||
orderVO.setOrdrSttusCd("0");
|
||||
orderVO.setUseAt("Y");
|
||||
|
||||
@@ -1837,6 +1837,8 @@ public class BOPurchsService {
|
||||
public Map<String, Object> selectSetleExpectAmt(DataMap param) {
|
||||
Map<String, Object> content = new HashMap<>();
|
||||
|
||||
log.debug("BOPurchsService.selectSetleExpectAmt-param : {}", param);
|
||||
|
||||
String sopmalCd = (String) param.get("sopmalCd");
|
||||
|
||||
LinkedHashMap setleExpectAmtMap = new LinkedHashMap(){{
|
||||
@@ -1925,7 +1927,7 @@ public class BOPurchsService {
|
||||
if (dlvylc.get("dlvyAmt") != null) {
|
||||
dlvyAmtBydlvylc = dlvyAmtBydlvylc + castAmt(dlvylc, "dlvyAmt");
|
||||
} else {
|
||||
dlvyAmtMap = getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd, prefcd);
|
||||
dlvyAmtMap = getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd);
|
||||
|
||||
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
|
||||
dlvyAmtBydlvylc = ((BigDecimal) dlvyAmtMap.get("dlvyAmt")).intValue();
|
||||
@@ -1950,7 +1952,7 @@ public class BOPurchsService {
|
||||
if (dlvylcMap.get("dlvyAmt") != null) {
|
||||
dlvyAmtBydlvylc = dlvyAmtBydlvylc + castAmt(dlvylcMap, "dlvyAmt");
|
||||
} else {
|
||||
dlvyAmtMap = getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd, prefcd);
|
||||
dlvyAmtMap = getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd);
|
||||
|
||||
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
|
||||
dlvyAmtBydlvylc = ((BigDecimal) dlvyAmtMap.get("dlvyAmt")).intValue();
|
||||
@@ -1961,7 +1963,7 @@ public class BOPurchsService {
|
||||
dlvyAmt = new BigDecimal(dlvyAmtBydlvylc);
|
||||
}
|
||||
} else {
|
||||
dlvyAmtMap = getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd, prefcd);
|
||||
dlvyAmtMap = getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd);
|
||||
|
||||
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
|
||||
dlvyAmt = (BigDecimal) dlvyAmtMap.get("dlvyAmt");
|
||||
@@ -2107,7 +2109,7 @@ public class BOPurchsService {
|
||||
* @param goodsList
|
||||
* @return List<DataMap>
|
||||
*/
|
||||
public DataMap getDlvyAmt(List<LinkedHashMap> goodsList, String sopmalCd, String defaultAdressAt, String dlvylcAreaCd, String prefcd) {
|
||||
public DataMap getDlvyAmt(List<LinkedHashMap> goodsList, String sopmalCd, String defaultAdressAt, String dlvylcAreaCd) {
|
||||
DataMap dlvyAmtMap = null;
|
||||
log.debug("우편번호 확인 : {}", defaultAdressAt);
|
||||
log.debug("getDlvyAmt-goodsList : {}", goodsList);
|
||||
@@ -2213,7 +2215,7 @@ public class BOPurchsService {
|
||||
// BigDecimal amtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt"); // 금액조건 추가금액
|
||||
BigDecimal slepric = (BigDecimal) goodsMap.get("subSlepric"); // 판매가 * 수량
|
||||
|
||||
if (slepric.compareTo(amtCndAditAmt) > 0) {
|
||||
if (slepric.compareTo(amtCndAditAmt) >= 0) {
|
||||
dlvyAmt = new BigDecimal(0);
|
||||
}
|
||||
// else {
|
||||
@@ -2227,7 +2229,7 @@ public class BOPurchsService {
|
||||
// BigDecimal cntCndAditAmt = (BigDecimal) shippingGrouping.get("cntCndAditAmt"); // 금액조건 추가금액
|
||||
BigDecimal qy = (BigDecimal) goodsMap.get("qy"); // 수량
|
||||
|
||||
if (qy.compareTo(cntCndAditAmt) > 0) {
|
||||
if (qy.compareTo(cntCndAditAmt) >= 0) {
|
||||
dlvyAmt = new BigDecimal(0);
|
||||
}
|
||||
// else {
|
||||
@@ -2296,15 +2298,16 @@ public class BOPurchsService {
|
||||
|
||||
BigDecimal goodsQy = new BigDecimal(0);
|
||||
|
||||
// 수량 조건
|
||||
if ("Y".equals(cntCndUseAt) && cntCndAditAmt.compareTo(BigDecimal.ZERO) > 0) {
|
||||
|
||||
for (DataMap goodsMap : goodsByDlvyGroupList) {
|
||||
|
||||
BigDecimal qy = (BigDecimal) goodsMap.get("qy"); // 수량
|
||||
|
||||
// 수량 조건
|
||||
if ("Y".equals(cntCndUseAt)) {
|
||||
|
||||
qy = (BigDecimal) goodsMap.get("qy"); // 수량
|
||||
|
||||
// cntCndAditAmt(설정수량)보다 qy가 큰 경우
|
||||
if (qy.compareTo(cntCndAditAmt) > 0) {
|
||||
goodsQy = qy.divide(cntCndAditAmt, 0, RoundingMode.CEILING);
|
||||
//배송비 합(같은상품 수량당 배송비 책정)
|
||||
@@ -2328,9 +2331,11 @@ public class BOPurchsService {
|
||||
}
|
||||
}
|
||||
}
|
||||
} //for
|
||||
} else {
|
||||
//수량 조건 없는 경우
|
||||
paidDlvyAmt = paidDlvyAmt.add(dlvyAmt); // 유료배송비 합
|
||||
|
||||
// 추가배송비 계산
|
||||
if (!StringUtils.isEmpty(dlvyAreaAditAt) && "Y".equals(dlvyAreaAditAt)) {
|
||||
if (!StringUtils.isEmpty(defaultAdressAt) && "Y".equals(defaultAdressAt)) {
|
||||
@@ -2338,7 +2343,7 @@ public class BOPurchsService {
|
||||
}
|
||||
}
|
||||
}
|
||||
} //for
|
||||
|
||||
} else {
|
||||
dlvyAmt = new BigDecimal(0);
|
||||
dftDlvyAmt = new BigDecimal(0);
|
||||
@@ -2514,7 +2519,7 @@ public class BOPurchsService {
|
||||
BigDecimal amtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt"); // 금액조건 추가금액
|
||||
BigDecimal slepric = (BigDecimal) goodsMap.get("subSlepric"); // 판매가 * 수량
|
||||
|
||||
if (slepric.compareTo(amtCndAditAmt) > 0) {
|
||||
if (slepric.compareTo(amtCndAditAmt) >= 0) {
|
||||
dlvyAmt = new BigDecimal(0);
|
||||
}
|
||||
}
|
||||
@@ -2523,7 +2528,7 @@ public class BOPurchsService {
|
||||
BigInteger cntCndAditAmt = (BigInteger) shippingGrouping.get("cntCndAditAmt"); // 금액조건 추가금액
|
||||
BigInteger qy = (BigInteger) goodsMap.get("qy"); // 수량
|
||||
|
||||
if (cntCndAditAmt.intValue() < qy.intValue()) {
|
||||
if (cntCndAditAmt.intValue() <= qy.intValue()) {
|
||||
dlvyAmt = new BigDecimal(0);
|
||||
}
|
||||
}
|
||||
@@ -2539,7 +2544,7 @@ public class BOPurchsService {
|
||||
if (bundleDlvyCndAmt != null && bundleDlvyCndAmt.intValue() > 0) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@ public class BOOrderSetleVO extends AbstractVO {
|
||||
|
||||
private BigDecimal setleAmt;
|
||||
|
||||
private BigDecimal wonSetleAmt;
|
||||
|
||||
private String pgCmpnyNm;
|
||||
|
||||
private String setleTyCd;
|
||||
|
||||
@@ -26,8 +26,14 @@ public class BOOrderShippingVO extends AbstractVO {
|
||||
|
||||
private String recpntMbtlnb;
|
||||
|
||||
private String dlvylcAreaCd;
|
||||
|
||||
private String cstmclerCd;
|
||||
|
||||
private String dlvylcZip;
|
||||
|
||||
private String prefcd;
|
||||
|
||||
private String dlvylcAdresDvCd;
|
||||
|
||||
private String dlvylcLnbAdres;
|
||||
|
||||
@@ -40,7 +40,11 @@ public class BOOrderVO extends AbstractVO {
|
||||
|
||||
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;
|
||||
|
||||
@@ -141,4 +145,6 @@ public class BOOrderVO extends AbstractVO {
|
||||
private String secretKey;
|
||||
|
||||
private String currOrdrSttusCd;
|
||||
|
||||
private Integer subsvcInnb;
|
||||
}
|
||||
@@ -37,11 +37,13 @@ private static final long serialVersionUID = 1L;
|
||||
/** 소비자가 */
|
||||
private String cnsmrpric;
|
||||
/** 판매가 */
|
||||
private String slepric;
|
||||
private Integer slepric;
|
||||
/** 재고수량 */
|
||||
private String invntryQy;
|
||||
/** 판매재고수량 */
|
||||
private String usefulInvntryQy;
|
||||
/** 판매수량 초기화여부*/
|
||||
private String usefulInvntryQyInit;
|
||||
/** 재고정책 */
|
||||
private String invntryPolicyCd;
|
||||
/** 가용재고제한수량 */
|
||||
@@ -99,4 +101,60 @@ private static final long serialVersionUID = 1L;
|
||||
private String sortDv;
|
||||
/** 배열 구독서비스고유번호 */
|
||||
private List<String> arrSubsvcInnb;
|
||||
|
||||
|
||||
/** 결제정보 */
|
||||
/** 회원고유번호 */
|
||||
private Integer mbrInnb;
|
||||
/** 회원구분코드 */
|
||||
private String mbrDvCd;
|
||||
|
||||
|
||||
/** 결제상품정보 */
|
||||
/** 판매상품 고유번호 */
|
||||
private Integer goodsInnb;
|
||||
/** 상품옵션 고유번호 */
|
||||
private Integer goodsOptnInnb;
|
||||
/** 개수 */
|
||||
private Integer qy;
|
||||
/** 입력옵션 텍스트 */
|
||||
private String inputOptn;
|
||||
/** 입력옵션 텍스트 */
|
||||
private String inputOptnText;
|
||||
/** 배송그룹고유번호 */
|
||||
private Integer dlvyGroupInnb;
|
||||
/** 상품상태코드 */
|
||||
private String goodsSttusCd;
|
||||
/** 상품상태명 */
|
||||
private String goodsSttusNm;
|
||||
/** 상품명 */
|
||||
private String goodsNm;
|
||||
/** 상품옵션 타입 */
|
||||
private String optnTy;
|
||||
/** 옵션관계번호 */
|
||||
private String optnRelateNb;
|
||||
/** 복수할인여부 */
|
||||
private String compnbDscntAt;
|
||||
/** 구간할인여부 */
|
||||
private String sctnDscntAt;
|
||||
/** 옵션필수여부 */
|
||||
private String optnEssntlAt;
|
||||
/** 소비자가 합계 (형식적용) */
|
||||
private String subCnsmrpricByFormat;
|
||||
/** 소비자가 합계 */
|
||||
private Integer subCnsmrpric;
|
||||
/** 소비자가 (형식적용) */
|
||||
private String cnsmrpricByFormat;
|
||||
/** 옵션주문단가 × 옵션주문수량 (형식적용) */
|
||||
private String subSlepricByFormat;
|
||||
/** 옵션주문단가 × 옵션주문수량 */
|
||||
private Integer subSlepric;
|
||||
/** 할인금액 */
|
||||
private Integer dscntAmt;
|
||||
/** 할인적용금액 */
|
||||
private Integer dscntApplyAmt;
|
||||
/** 판매가 합계 (형식적용) */
|
||||
private String slepricByFormat;
|
||||
/** 상품이미지경로 */
|
||||
private String goodsImgCours;
|
||||
}
|
||||
|
||||
@@ -156,4 +156,11 @@ public class BOMssageVO extends AbstractVO {
|
||||
/** 메세지 취소 구분코드 */
|
||||
private String cancelDvCd;
|
||||
|
||||
/** 셋팅용 파라미터 tab구분
|
||||
* send : 메시지수동바송
|
||||
* search : 메시지 발송내역*/
|
||||
private String reqTab;
|
||||
|
||||
/** 셋팅용 파라미터 받는사람 휴대전화번호*/
|
||||
private String mbtlnb;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOGoodsVO;
|
||||
import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderItemOptnVO;
|
||||
import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderSetleVO;
|
||||
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.ordr.ordr.vo.*;
|
||||
|
||||
@@ -335,6 +336,8 @@ public interface BOOrdrMapper {
|
||||
*/
|
||||
public List<DataMap> selectOrderShippingList(BOOrdrShippingVO ordrShippingVO);
|
||||
|
||||
public List<DataMap> selectOrderShippingListGrp(BOOrdrShippingVO ordrShippingVO);
|
||||
|
||||
/**
|
||||
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문상세 > 배송지정보 상품 목록 조회
|
||||
* @param paramMap
|
||||
@@ -349,6 +352,13 @@ public interface BOOrdrMapper {
|
||||
*/
|
||||
public List<DataMap> selectRefundShippingGoodsList(DataMap paramMap);
|
||||
|
||||
/**
|
||||
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문상세 > 배송지정보 수정 > 배송지정보 일치여부 확인
|
||||
* @param ordrShippingVO
|
||||
* @return Integer
|
||||
*/
|
||||
public Integer selectDlvylcAreaCdInfo(BOOrdrShippingVO ordrShippingVO);
|
||||
|
||||
/**
|
||||
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문상세 > 배송지정보 수정
|
||||
* @param ordrShippingVO
|
||||
@@ -662,6 +672,8 @@ public interface BOOrdrMapper {
|
||||
*/
|
||||
public DataMap selectBOSpbkGiftMultiDlvyAt(BOSpbkVO spbkVO);
|
||||
|
||||
public BigDecimal selectBuyRate(DataMap param);
|
||||
|
||||
/**
|
||||
* 사용자 > 상품 > 장바구니 > 장바구니 상품 삭제
|
||||
* @param goodsVO
|
||||
@@ -982,6 +994,44 @@ public interface BOOrdrMapper {
|
||||
* @return List<DataMap>
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -191,7 +191,11 @@ public class BOOrdrLogService {
|
||||
pgResult = false;
|
||||
} else {
|
||||
|
||||
if ("kcp".equals(payVO.getPgCmpnyNm())) {
|
||||
if("kiwoom".equals(payVO.getPgCmpnyNm())) {
|
||||
resCd = "0000";
|
||||
message = "결제 승인 성공";
|
||||
//결제실패에 대한 응답은 없음
|
||||
} else if ("kcp".equals(payVO.getPgCmpnyNm())) {
|
||||
resCd = StringUtil.isNullToString(resultMap.get("res_cd"));
|
||||
message = StringUtil.isNullToString(resultMap.get("res_msg"));
|
||||
|
||||
@@ -227,7 +231,7 @@ public class BOOrdrLogService {
|
||||
String logDtlCn = "";
|
||||
String operNm = "";
|
||||
String dvCd = payVO.getDvCd();
|
||||
String setleTyCd = payVO.getSetleTyCd();
|
||||
//String setleTyCd = payVO.getSetleTyCd();
|
||||
if ("02".equals(dvCd)) { // 관리자 주문
|
||||
String mbrNm = "";
|
||||
if (payVO.getMbrNm() != null) {
|
||||
@@ -311,7 +315,7 @@ public class BOOrdrLogService {
|
||||
|
||||
/**
|
||||
* 주문 로그 단순 등록
|
||||
* @param pgApiLogVO
|
||||
* @param logVO
|
||||
*/
|
||||
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
||||
public void insertBOOrderLogRegist(BOOrderLogVO logVO, boolean result, String message) {
|
||||
@@ -336,7 +340,7 @@ public class BOOrdrLogService {
|
||||
|
||||
/**
|
||||
* 주문 종기능 로그 등록
|
||||
* @param pgApiLogVO
|
||||
* @param bellVO
|
||||
*/
|
||||
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
||||
public void insertBOOrderBellLogRegist(BOOrderLogVO bellVO) {
|
||||
|
||||
@@ -81,7 +81,8 @@ public class BODwldItmVO extends AbstractVO {
|
||||
item50("dlvy_amt_setle_mth_nm", "배송비결제방식"),
|
||||
item51("ordr_ty_nm", "주문유형"),
|
||||
item52("optn_cd_1", "상품코드"),
|
||||
item53("dlvy_mssage_cn", "배송메시지");
|
||||
item53("dlvy_mssage_cn", "배송메시지"),
|
||||
item54("shipping_sttus_nm", "출고상태");
|
||||
|
||||
private final String key;
|
||||
private final String value;
|
||||
|
||||
@@ -36,6 +36,8 @@ public class BOOrdrDlvyVO extends AbstractVO {
|
||||
|
||||
private String sysDvCd; // 시스템 구분 코드
|
||||
|
||||
private String subsvcAt; // 구독서비스 여부
|
||||
|
||||
/** 현재 주문 상태 */
|
||||
private String currOrdrSttusCd;
|
||||
|
||||
|
||||
@@ -46,10 +46,14 @@ public class BOOrdrRefundVO extends AbstractVO {
|
||||
|
||||
private BigDecimal refundAmt; // 환불금액
|
||||
|
||||
private BigDecimal wonRefundAmt; // 환불금액(원화)
|
||||
|
||||
private BigDecimal refundAccmlmnyAmt; // 환불적립금액
|
||||
|
||||
private BigDecimal refundDlvyAmt; // 환불배송비총금액
|
||||
|
||||
private BigDecimal wonRefundDlvyAmt; // 환불배송비총금액(원화)
|
||||
|
||||
private BigDecimal mlgAccmlmnyAmt; // 적립금보정금액
|
||||
|
||||
private String mlgAccmlmnyValidDt; // 적립금유효기간
|
||||
@@ -90,6 +94,8 @@ public class BOOrdrRefundVO extends AbstractVO {
|
||||
|
||||
private BigDecimal returnDlvyAmt; // 반품배송비금액
|
||||
|
||||
private BigDecimal wonReturnDlvyAmt; // 반품배송비금액(원화)
|
||||
|
||||
private String returnDlvyTrgetCd; // 반품배송비수령대상코드
|
||||
|
||||
private String returnDlvyRspnsblCd; // 반품배송비지불책임코드
|
||||
|
||||
@@ -40,6 +40,9 @@ public class BOOrdrShippingVO extends AbstractVO {
|
||||
/** 받는자휴대폰번호 */
|
||||
private String recpntMbtlnb;
|
||||
|
||||
/** 배송지역코드 */
|
||||
private String dlvylcAreaCd;
|
||||
|
||||
/** 배송지우편번호 */
|
||||
private String dlvylcZip;
|
||||
|
||||
|
||||
@@ -105,4 +105,7 @@ public class BOOrdrSrchVO extends AbstractVO{
|
||||
|
||||
private String excelCoulms; // 엑셀다운로드 조회 컬럼
|
||||
private String ordrInnb; // 주문고유번호
|
||||
|
||||
/**주문구분*/
|
||||
private String srchSubsvcAt;
|
||||
}
|
||||
|
||||
@@ -151,6 +151,12 @@ public class BOOrdrVO extends AbstractVO {
|
||||
/** 장바구니 고유번호 배열 */
|
||||
private String[] cartInnbs;
|
||||
|
||||
/** 구독서비스 주문여부 */
|
||||
private String subsvcAt;
|
||||
|
||||
/** 구독서비스 고유번호 */
|
||||
private String subsvcInnb;
|
||||
|
||||
/** 주문배송 고유번호 */
|
||||
private String ordrDlvyInnb;
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ import org.bouncycastle.openssl.jcajce.JceOpenSSLPKCS8DecryptorProviderBuilder;
|
||||
import org.bouncycastle.operator.InputDecryptorProvider;
|
||||
import org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.JSONValue;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -103,7 +104,8 @@ public class BOPayService{
|
||||
put("ordrInnb", OrderInnb);
|
||||
}};
|
||||
|
||||
return mapper.selectRlSetleAmt(paramMap);
|
||||
// return mapper.selectRlSetleAmt(paramMap);
|
||||
return mapper.selectWonRlSetleAmt(paramMap);
|
||||
}
|
||||
|
||||
/* ============================================================================== */
|
||||
@@ -1467,10 +1469,94 @@ public class BOPayService{
|
||||
}
|
||||
|
||||
|
||||
/* ============================================================================== */
|
||||
/* = 여기서 부터 Kiwoom
|
||||
/* = -------------------------------------------------------------------------- = */
|
||||
|
||||
/**
|
||||
* Kiwoom 결제
|
||||
* @param BOPayVO
|
||||
*/
|
||||
public Map<String, Object> insertKiwoomPay(BOPayVO payVO) throws Exception {
|
||||
|
||||
//관련 키값 DB 조회
|
||||
/*DataMap resultMap = selectPayLink(payVO.getSopmalCd());
|
||||
String reSetleAmt = StringUtil.isNullToString(selectRlSetleAmt(payVO.getSopmalCd(),payVO.getOrderId()));
|
||||
reSetleAmt = reSetleAmt.isEmpty()? "10" : reSetleAmt; //0원은 정상거래로 인정되어서 10원으로 지정함*/
|
||||
|
||||
log.info("insertKiwoomPay step1 ");
|
||||
|
||||
String cpId = f_get_parm( payVO.getCpId());
|
||||
String payMethod = f_get_parm( payVO.getPayMethod());
|
||||
String orderNo = f_get_parm( payVO.getOrderId());
|
||||
String type = f_get_parm( payVO.getType());
|
||||
String amount = f_get_parm( payVO.getAmount());
|
||||
|
||||
JSONObject jsonObj = new JSONObject();
|
||||
jsonObj.put("CPID", cpId);
|
||||
jsonObj.put("PAYMETHOD", payMethod);
|
||||
jsonObj.put("ORDERNO", orderNo);
|
||||
jsonObj.put("TYPE", type);
|
||||
jsonObj.put("AMOUNT", amount);
|
||||
|
||||
log.info("insertKiwoomPay step2 ::: {}", jsonObj);
|
||||
|
||||
|
||||
//결제등록 요청시 실결제값(good_mny)
|
||||
/*String payType = getPayMethod(payVO.getPayMethod());
|
||||
jsonReq.put("ordr_mony", reSetleAmt); // ** 결제금액 유효성 검증 **
|
||||
jsonReq.put("pay_type", payType); // ** 결제수단 유효성 검증 **
|
||||
jsonReq.put("ordr_no", payVO.getOrderId()); // ** 주문번호검증 **
|
||||
*/
|
||||
|
||||
String kiwoom_ENC = "";
|
||||
try {
|
||||
String url = "https://apitest.kiwoompay.co.kr/pay/hash";
|
||||
URL goUrl = new URL(url);
|
||||
|
||||
HttpURLConnection con = (HttpURLConnection) goUrl.openConnection();
|
||||
con.setRequestMethod("POST");
|
||||
con.setRequestProperty("Content-Type", "application/json");
|
||||
con.setUseCaches(false);
|
||||
con.setDoOutput(true);
|
||||
con.setDoInput(true);
|
||||
|
||||
OutputStream os = con.getOutputStream();
|
||||
os.write((jsonObj.toString()).getBytes("euc-kr"));
|
||||
os.flush();
|
||||
os.close();
|
||||
|
||||
int responseCode = con.getResponseCode();
|
||||
|
||||
if (responseCode == 200) {
|
||||
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
|
||||
String inputLine;
|
||||
StringBuffer response1 = new StringBuffer();
|
||||
|
||||
while ((inputLine = in.readLine()) != null) {
|
||||
response1.append(inputLine);
|
||||
}
|
||||
in.close();
|
||||
|
||||
JSONObject jObj = (JSONObject) JSONValue.parse(response1.toString());
|
||||
kiwoom_ENC = (String) jObj.get("KIWOOM_ENC");
|
||||
|
||||
log.info("insertKiwoomPay step3 ::: {}", jObj);
|
||||
}
|
||||
con.disconnect();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
JSONObject resultObj = new JSONObject();
|
||||
resultObj.put("KIWOOM_ENC", kiwoom_ENC);
|
||||
|
||||
log.info("insertKiwoomPay step4 ::: {}", resultObj.get("KIWOOM_ENC"));
|
||||
|
||||
return new HashMap<>() {{
|
||||
put("response", resultObj.toString());
|
||||
}};
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -292,6 +292,9 @@ public class BOPayVO extends AbstractVO {
|
||||
/** 테스트 여부 - 테스트용 */
|
||||
private String testAt;
|
||||
|
||||
/** 키움 - 상점ID */
|
||||
private String cpId;
|
||||
|
||||
|
||||
// cookie
|
||||
/** 에이전트 ID */
|
||||
|
||||
@@ -248,7 +248,7 @@ public interface BORtngudrefndMapper {
|
||||
* @param boRtngudrefndVO
|
||||
* @return
|
||||
*/
|
||||
public Integer selectBOORderRefundAmtSumInqire(BORtngudrefndVO boRtngudrefndVO);
|
||||
public DataMap selectBOORderRefundAmtSumInqire(BORtngudrefndVO boRtngudrefndVO);
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -31,6 +31,7 @@ import com.wb.domainserver.domain.gcone.setup.site.mapper.BOSiteMapper;
|
||||
import com.wb.domainserver.domain.gcone.setup.site.vo.BOSetupContentsItemVO;
|
||||
import com.wb.domainserver.exception.WnbtRestException;
|
||||
import com.wb.domainserver.util.string.StringUtil;
|
||||
import lombok.Data;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -249,7 +250,6 @@ public class BORtngudrefndService {
|
||||
|
||||
|
||||
try {
|
||||
|
||||
if (boRtngudrefndVO.getRefundProcsSttusCd() != null) {
|
||||
|
||||
if (boRtngudrefndVO.getReturnCstmrTelnb() != null) {
|
||||
@@ -278,28 +278,38 @@ public class BORtngudrefndService {
|
||||
}
|
||||
}
|
||||
|
||||
/*한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update를 위한 파라미터 셋팅*/
|
||||
BOOrdrRefundVO refundVO = new BOOrdrRefundVO();
|
||||
refundVO.setSopmalCd(boRtngudrefndVO.getSopmalCd());
|
||||
refundVO.setOrdrInnb(new BigInteger(boRtngudrefndVO.getOrdrInnb()));
|
||||
refundVO.setOrderRefundInnb(boRtngudrefndVO.getOrderRefundInnb());
|
||||
|
||||
if ( "01".equals(boRtngudrefndVO.getRefundTyCd()) ) { // 결제 취소
|
||||
if ("01".equals(boRtngudrefndVO.getRefundProcsSttusCd())) {
|
||||
if ("01".equals(boRtngudrefndVO.getRefundProcsSttusCd())) { // 환불신청
|
||||
// TODO : 신청일때 로직
|
||||
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); // 주문에 환불건 관련 상태 및 수량 업데이트
|
||||
}
|
||||
|
||||
if ( "02".equals(boRtngudrefndVO.getRefundMthCd()) ) {
|
||||
if ( "02".equals(boRtngudrefndVO.getRefundMthCd()) ) { //환불방법 = 무통장계좌이체
|
||||
|
||||
mapper.updateBOOrderReSttusUpdt(boRtngudrefndVO); // 반품/환불 상태값 수정
|
||||
/* 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update */
|
||||
ordrMapper.updateBOWonRefundAmt(refundVO);
|
||||
|
||||
} else {
|
||||
// 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); // 주문에 환불건 관련 상태 및 수량 업데이트
|
||||
}
|
||||
|
||||
@@ -313,6 +323,8 @@ public class BORtngudrefndService {
|
||||
log.debug("상태 업데이트 파라미터 확인 : {}", boRtngudrefndVO);
|
||||
|
||||
mapper.updateBOOrderReSttusUpdt(boRtngudrefndVO); // 반품/환불 상태값 수정
|
||||
/* 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update */
|
||||
ordrMapper.updateBOWonRefundAmt(refundVO);
|
||||
|
||||
} else if ( "02".equals(boRtngudrefndVO.getRefundProcsSttusCd()) && "02".equals(boRtngudrefndVO.getReturnProcsSttusCd()) ) { // 상품 받은거 확인하고 돈을 입금하지않았을 경우
|
||||
|
||||
@@ -321,6 +333,8 @@ public class BORtngudrefndService {
|
||||
}
|
||||
|
||||
mapper.updateBOOrderReSttusUpdt(boRtngudrefndVO); // 반품/환불 상태값 수정
|
||||
/* 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update */
|
||||
ordrMapper.updateBOWonRefundAmt(refundVO);
|
||||
|
||||
} else if ( "03".equals(boRtngudrefndVO.getRefundProcsSttusCd()) && "02".equals(boRtngudrefndVO.getReturnProcsSttusCd()) ) { // 상품 받은거 확인하고
|
||||
|
||||
@@ -466,21 +480,35 @@ public class BORtngudrefndService {
|
||||
Long lordrInnb = Long.valueOf(ordrInnb);
|
||||
BigInteger intOrdrInnb = BigInteger.valueOf(lordrInnb);
|
||||
String sopmalCd = refundVO.getSopmalCd();
|
||||
Integer refundAmt = 0;
|
||||
Integer refundAmt = 0; //현재 상품환불금액
|
||||
Integer wonRefundAmt = 0; //현재 상품환불금액(원화)
|
||||
|
||||
if (!CollectionUtils.isEmpty(orderReItemVOList)) {
|
||||
refundAmt = orderReItemVOList.stream()
|
||||
.mapToInt(BOOrderReItemVO::getGoodsRefundAmt)
|
||||
.sum();
|
||||
} 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 wonDlvyAmtRefundAmt = 0; // 최종 배송비 처리 금액 ( 환불 배송비, 반품 배송비 조건에 따라 변동 )
|
||||
Integer refundDlvyAmt = 0; // 환불 배송비 금액
|
||||
Integer wonRefundDlvyAmt = 0; // 환불 배송비 금액
|
||||
|
||||
Integer finalRefundAmt = 0;
|
||||
Integer finalWonRefundAmt = 0;
|
||||
finalRefundAmt = refundAmt;
|
||||
finalWonRefundAmt = wonRefundAmt;
|
||||
|
||||
try {
|
||||
|
||||
@@ -506,16 +534,19 @@ public class BORtngudrefndService {
|
||||
*/
|
||||
|
||||
refundDlvyAmt = Integer.parseInt(refundVO.getRefundDlvyAmt());
|
||||
wonRefundDlvyAmt = Integer.parseInt(refundVO.getWonRefundDlvyAmt());
|
||||
log.debug("여기 아래부터 배송비랑 환불금액 산정하는데 그전에 refundVO 데이터 확인 : {}", refundVO);
|
||||
if ("01".equals(refundVO.getRefundTyCd())) {
|
||||
|
||||
refundAmt += refundDlvyAmt; // 환불 배송비 포함 반품
|
||||
wonRefundAmt += wonRefundDlvyAmt;
|
||||
|
||||
refundVO.setDlvyAmtRefundAmt("0");
|
||||
|
||||
} else if ("02".equals(refundVO.getRefundTyCd())) {
|
||||
|
||||
dlvyAmtRefundAmt = Integer.parseInt(refundVO.getReturnDlvyAmt());
|
||||
wonDlvyAmtRefundAmt = Integer.parseInt(refundVO.getWonReturnDlvyAmt());
|
||||
|
||||
// 배송비 책임
|
||||
if ("01".equals(refundVO.getReturnDlvyRspnsblCd())) { // 구매자 책임
|
||||
@@ -530,12 +561,14 @@ public class BORtngudrefndService {
|
||||
if ("02".equals(refundVO.getReturnDlvyPymntTyCd()) && refundVO.getReturnDlvyAmt() != null) { // 환불금액에서 차감
|
||||
// refundAmt -= dlvyAmtRefundAmt;
|
||||
refundAmt = refundAmt - dlvyAmtRefundAmt > 0 ? refundAmt - dlvyAmtRefundAmt : 0;
|
||||
wonRefundAmt = wonRefundAmt - wonDlvyAmtRefundAmt > 0 ? wonRefundAmt - wonDlvyAmtRefundAmt : 0;
|
||||
}
|
||||
|
||||
refundVO.setDlvyAmtRefundAmt(StringUtil.isNullToString(dlvyAmtRefundAmt));
|
||||
|
||||
} else if ("02".equals(refundVO.getReturnDlvyRspnsblCd())) { // 판매자
|
||||
refundAmt += refundDlvyAmt; // 환불 배송비 포함 반품
|
||||
wonRefundAmt += wonRefundDlvyAmt;
|
||||
|
||||
refundVO.setDlvyAmtRefundAmt("0");
|
||||
}
|
||||
@@ -568,13 +601,23 @@ public class BORtngudrefndService {
|
||||
|
||||
log.info("setle : {}", setle);
|
||||
Integer setleAmt = setle.getSetleAmt(); // 결제금액
|
||||
Integer wonSetleAmt = setle.getWonSetleAmt(); // 결제금액(원화)
|
||||
|
||||
Integer remMnyAmt = setleAmt - orderRefundAmtSum;
|
||||
log.info("이번 환불 결제건에서 환불할 금액 확인 remMnyAmt : {}", remMnyAmt);
|
||||
log.info("이번 환불 결제건에서 환불할 금액 확인 refundAmt : {}", refundAmt);
|
||||
log.info("이번 환불 결제건에서 환불할 금액 확인 orderRefundAmtSum : {}", orderRefundAmtSum);
|
||||
Integer wonRemMnyAmt = wonSetleAmt - wonOrderRefundAmtSum;
|
||||
|
||||
log.info("이번 환불 결제건에서 환불할 금액 확인 remMnyAmt : {}, {}", remMnyAmt, wonRemMnyAmt);
|
||||
log.info("이번 환불 결제건에서 환불할 금액 확인 refundAmt : {}, {}", refundAmt, wonRefundAmt);
|
||||
log.info("이번 환불 결제건에서 환불할 금액 확인 orderRefundAmtSum : {}, {}", orderRefundAmtSum, wonOrderRefundAmtSum);
|
||||
|
||||
Integer cancelAmt = 0; // 취소금액
|
||||
Integer wonCancelAmt = 0; // 취소금액(원화)
|
||||
|
||||
// 환불금액, 결제금액 - (이전환불금액 - 환불금액)
|
||||
cancelAmt = Math.min(refundAmt, setleAmt - (orderRefundAmtSum - refundAmt));
|
||||
log.info("이번 환불 결제건에서 환불할 금액 확인 cancelAmt : {}", cancelAmt);
|
||||
wonCancelAmt = Math.min(wonRefundAmt, wonSetleAmt - (wonOrderRefundAmtSum - wonRefundAmt));
|
||||
|
||||
log.info("이번 환불 결제건에서 환불할 금액 확인 cancelAmt : {}, {}", cancelAmt, wonCancelAmt);
|
||||
Integer receiptCancelAmt = cancelAmt; // 현금영수증 취소금액
|
||||
log.info("이번 환불 결제건에서 환불할 현금영수증 GC 머니 추가 전 금액 확인 receiptCancelAmt : {}", receiptCancelAmt);
|
||||
|
||||
@@ -734,6 +777,7 @@ public class BORtngudrefndService {
|
||||
}
|
||||
/************************** KCP 환불 코드 세팅 END *************************/
|
||||
|
||||
// 02:무통장계좌이체, 08:마일리지, 13:수동
|
||||
if ("02".equals(setle.getSetleTyCd()) || "08".equals(setle.getSetleTyCd()) || "13".equals(setle.getSetleTyCd())) {
|
||||
|
||||
if ("02".equals(setle.getSetleTyCd())) { // 무통장입금
|
||||
@@ -788,8 +832,6 @@ public class BORtngudrefndService {
|
||||
|
||||
// TODO :
|
||||
|
||||
} else if ("08".equals(setle.getSetleTyCd())) { // 마일리지
|
||||
// 마일리지 사용취소로 처리
|
||||
} else if ("09".equals(setle.getSetleTyCd())) {
|
||||
// 포스 환불은 포스기계쪽에서 처리됌 GCONE 에서는 데이터 처리만 진행
|
||||
} else if ("11".equals(setle.getSetleTyCd())) { // TODO : 복합 결제 취소 로직 확인 필요
|
||||
@@ -812,9 +854,9 @@ public class BORtngudrefndService {
|
||||
payVO.setCancelReason(refundVO.getRefundResnCn()); // 취소사유
|
||||
|
||||
if ("01".equals(refundVO.getRefundScopeCd())) {
|
||||
payVO.setCancelAmount(String.valueOf(cancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 )
|
||||
payVO.setCancelAmount(String.valueOf(wonCancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 )
|
||||
} else if ("02".equals(refundVO.getRefundScopeCd())) {
|
||||
payVO.setCancelAmount(String.valueOf(cancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 )
|
||||
payVO.setCancelAmount(String.valueOf(wonCancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 )
|
||||
}
|
||||
|
||||
payVO.setBank(refundVO.getRefundAcntBnnkCd()); // 환불 은행코드
|
||||
@@ -841,10 +883,12 @@ public class BORtngudrefndService {
|
||||
payVO.setMId(setle.getSetleMid()); // 결제 MID(상점키)
|
||||
|
||||
payVO.setPaymentKey(setle.getDelngNb()); // 거래번호
|
||||
|
||||
log.info("토스 취소 파라미터 확인 : {}", payVO);
|
||||
setleCancelResultMessage = payService.cancelTossPay(payVO);
|
||||
log.info("결제 취소 API 결과 확인 : {}", setleCancelResultMessage);
|
||||
log.info("결제 취소 API 결과 확인 : {}", setleCancelResultMessage.get("response"));
|
||||
|
||||
String jsonString = (String) setleCancelResultMessage.get("response");
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
responseMap = objectMapper.readValue(jsonString, Map.class);
|
||||
@@ -984,7 +1028,7 @@ public class BORtngudrefndService {
|
||||
payVO.setSetleTyCd(setle.getSetleTyCd()); // 결제 유형 코드
|
||||
|
||||
payVO.setCancelReason(refundVO.getRefundResnCn()); // 취소사유
|
||||
payVO.setCancelAmount(String.valueOf(cancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 )
|
||||
payVO.setCancelAmount(String.valueOf(wonCancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 )
|
||||
|
||||
payVO.setBank(refundVO.getRefundAcntBnnkCd()); // 계좌 입금 후 취소시 환불은행코드?
|
||||
payVO.setAccountNumber(refundVO.getRefundAcntnb()); // 환불 계좌번호
|
||||
@@ -992,8 +1036,8 @@ public class BORtngudrefndService {
|
||||
|
||||
payVO.setTno(setle.getDelngNb()); // 거래번호
|
||||
payVO.setModType(refundModeType); // 전체 취소, 부분 취소
|
||||
payVO.setModMny(String.valueOf(cancelAmt)); // 부분취소 요청 금액
|
||||
payVO.setRemMny(String.valueOf(remMnyAmt)); // 부분취소 가능 금액
|
||||
payVO.setModMny(String.valueOf(wonCancelAmt)); // 부분취소 요청 금액
|
||||
payVO.setRemMny(String.valueOf(wonRemMnyAmt)); // 부분취소 가능 금액
|
||||
|
||||
payVO.setSubModType(sub_mod_type); // 전체 취소, 부분 취소
|
||||
|
||||
@@ -1202,6 +1246,7 @@ public class BORtngudrefndService {
|
||||
|
||||
// ########################################### 최종 반품/환불 상태변경 ###########################################
|
||||
boRtngudrefndVO.setRefundAmt(String.valueOf(finalRefundAmt));
|
||||
boRtngudrefndVO.setWonRefundAmt(String.valueOf(finalWonRefundAmt));
|
||||
boRtngudrefndVO.setDlvyAmtRefundAmt(refundVO.getDlvyAmtRefundAmt());
|
||||
boRtngudrefndVO.setRefundProcsSttusCd("03");
|
||||
log.debug("환불 상태값이랑 정보 수정하기 전 boRtngudrefndVO :: {}", boRtngudrefndVO);
|
||||
|
||||
@@ -23,6 +23,8 @@ public class BORefundSetleVO extends AbstractVO {
|
||||
|
||||
private Integer setleAmt;
|
||||
|
||||
private Integer wonSetleAmt;
|
||||
|
||||
private String pgCmpnyNm;
|
||||
|
||||
private String pgInnb;
|
||||
|
||||
@@ -15,7 +15,7 @@ public class BORtngudrefndVO extends AbstractVO{
|
||||
private String ordrDlvyInnb;
|
||||
|
||||
private String[] ordrDlvyInnbArr;
|
||||
//쇼핑몰코드
|
||||
/**쇼핑몰코드*/
|
||||
private String sopmalCd;
|
||||
//TODO:: 추후 SESSION에서 처리 사용자,관리자 구분
|
||||
private String usrDv;
|
||||
@@ -25,69 +25,71 @@ public class BORtngudrefndVO extends AbstractVO{
|
||||
private String orderReInnb;
|
||||
private String refundCd; // 환불 코드 번호
|
||||
private String orderRefundInnb;
|
||||
/*주문고유번호*/
|
||||
/**주문고유번호*/
|
||||
private String ordrInnb;
|
||||
/*환불신청일시*/
|
||||
/**환불신청일시*/
|
||||
private String refundReqstDt;
|
||||
/*환불완료일시*/
|
||||
/**환불완료일시*/
|
||||
private String refundComptDt;
|
||||
/*신청(request), 처리중(ing), 완료(complete)*/
|
||||
/**신청(request), 처리중(ing), 완료(complete)*/
|
||||
private String refundProcsSttusCd;
|
||||
/*신청(request), 처리중(ing), 완료(complete) 이전 상태 */
|
||||
/**신청(request), 처리중(ing), 완료(complete) 이전 상태 */
|
||||
private String oldRefundProcsSttusCd;
|
||||
/*결제취소(cancel_payment),반품환불(return),배송비환불(shipping_price)*/
|
||||
/**결제취소(cancel_payment),반품환불(return),배송비환불(shipping_price)*/
|
||||
private String refundTyCd;
|
||||
/*전체취소(full), 부분취소(partial)*/
|
||||
/**전체취소(full), 부분취소(partial)*/
|
||||
private String refundScopeCd;
|
||||
/*환불사유내용*/
|
||||
/**환불사유내용*/
|
||||
private String refundResnCn;
|
||||
/*계좌이체(account), 무통장(bank), 신용카드(card), 수동(manual), ?(payco_coupon), 포스기기(pos)*/
|
||||
/**계좌이체(account), 무통장(bank), 신용카드(card), 수동(manual), ?(payco_coupon), 포스기기(pos)*/
|
||||
private String refundMthCd;
|
||||
/** 환불계좌은행코드 */
|
||||
private String refundAcntBnnkCd; // 환불계좌은행코드
|
||||
/*환불계좌은행명*/
|
||||
/**환불계좌은행명*/
|
||||
private String refundAcntBnnkNm;
|
||||
/*환불계좌예금주명*/
|
||||
/**환불계좌예금주명*/
|
||||
private String refundAcntDpstrNm;
|
||||
/*환불계좌번호*/
|
||||
/**환불계좌번호*/
|
||||
private String refundAcntnb;
|
||||
/*환불금액*/
|
||||
/**환불금액*/
|
||||
private String refundAmt;
|
||||
/*환불적립금액*/
|
||||
/**환불금액(원화)*/
|
||||
private String wonRefundAmt;
|
||||
/**환불적립금액*/
|
||||
private Integer refundAccmlmnyAmt;
|
||||
/*배송비환불총금액*/
|
||||
/**배송비환불총금액*/
|
||||
private Integer dlvyAmtTotRefundAmt;
|
||||
/*쿠폰할인보정금액*/
|
||||
/**쿠폰할인보정금액*/
|
||||
private Integer coupDscntRevisnAmt;
|
||||
/*적립금보정금액*/
|
||||
/**적립금보정금액*/
|
||||
private Integer accmlmnyRevisnAmt;
|
||||
/*에누리보정금액*/
|
||||
/**에누리보정금액*/
|
||||
private Integer enuriRevisnAmt;
|
||||
/*적립금유효일자*/
|
||||
/**적립금유효일자*/
|
||||
private String accmlmnyValidDe;
|
||||
/*다운로드쿠폰 고유번호*/
|
||||
/**다운로드쿠폰 고유번호*/
|
||||
private String dwldCouponInnb;
|
||||
/*상태메모내용*/
|
||||
/**상태메모내용*/
|
||||
private String sttusMemoCn;
|
||||
/*관리자메모내용*/
|
||||
/**관리자메모내용*/
|
||||
private String mngrMemoCn;
|
||||
/*관리자 고유번호*/
|
||||
/**관리자 고유번호*/
|
||||
private String mngrInnb;
|
||||
/*스마트쇼핑환불신청일시*/
|
||||
/**스마트쇼핑환불신청일시*/
|
||||
private String smrtShopngRefndReqstDt;
|
||||
/*스마트쇼핑환불완료일시*/
|
||||
/**스마트쇼핑환불완료일시*/
|
||||
private String smrtShopngRefndComptDt;
|
||||
/*cancel_done, refund_request*/
|
||||
/**cancel_done, refund_request*/
|
||||
private String smrtShopngRefndProcsSttusCd;
|
||||
/*스마트쇼핑클레임발생금액*/
|
||||
/**스마트쇼핑클레임발생금액*/
|
||||
private Integer smrtShopngClaimOccrrncAmt;
|
||||
/*스마트쇼핑초도배송비금액*/
|
||||
/**스마트쇼핑초도배송비금액*/
|
||||
private Integer smrtShopngFrsttmeDlvyAmtAmt;
|
||||
/*반품환불보류상품번호내용*/
|
||||
/**반품환불보류상품번호내용*/
|
||||
private String returnRefndDferGoodsNbCn;
|
||||
/*사용여부*/
|
||||
/**사용여부*/
|
||||
private String useAt;
|
||||
/*처리대상자 구분*/
|
||||
/**처리대상자 구분*/
|
||||
private String procsTargetDv;
|
||||
private String returnCd; // 반품 코드
|
||||
/**신청(request), 완료(complete), 철회(retraction)*/
|
||||
@@ -108,6 +110,8 @@ public class BORtngudrefndVO extends AbstractVO{
|
||||
private String returnCstmrMbtlnb;
|
||||
/** 반품배송비금액 */
|
||||
private String returnDlvyAmt;
|
||||
/** 반품배송비금액(원화) */
|
||||
private String wonReturnDlvyAmt;
|
||||
/** company,provider */
|
||||
private String returnDlvyAmtRecptTrgetCd;
|
||||
/**구매자(buyer), 판매자(seller)*/
|
||||
@@ -144,10 +148,14 @@ public class BORtngudrefndVO extends AbstractVO{
|
||||
private String smrtShopngReturnProcsSttusCd;
|
||||
/** 배송비환불금액 */
|
||||
private String dlvyAmtRefundAmt;
|
||||
/** 배송비환불금액(원화) */
|
||||
private String wonDlvyAmtRefundAmt;
|
||||
/** 지번 or 도로명 주소 */
|
||||
private String lnbOrRnmAdres;
|
||||
/** 환불배송비총금액 */
|
||||
private String refundDlvyAmt;
|
||||
/** 환불배송비총금액(원화) */
|
||||
private String wonRefundDlvyAmt;
|
||||
/** 반품 환불 상품 옵션 리스트 */
|
||||
private List<BOOrderReItemVO> orderReItemVOList;
|
||||
/**상세 내용*/
|
||||
@@ -167,11 +175,11 @@ public class BORtngudrefndVO extends AbstractVO{
|
||||
public String endDt;
|
||||
//날짜 검색 구분
|
||||
private String srchDtDv;
|
||||
//** 반품처리상태 */
|
||||
/** 반품처리상태 */
|
||||
private String[] srchReturnProcsStuusCd;
|
||||
//** 환불처리상태 */
|
||||
/** 환불처리상태 */
|
||||
private String[] srchRefundProcsSttusCd;
|
||||
//** 회수방법(반품) */
|
||||
/** 회수방법(반품) */
|
||||
private String srchReturnMthCd;
|
||||
/**검색시작일*/
|
||||
public String srchStartDate;
|
||||
@@ -189,9 +197,9 @@ public class BORtngudrefndVO extends AbstractVO{
|
||||
private String mbtlnb;
|
||||
/** 회원타입코드 */
|
||||
private String mbrTyCd;
|
||||
/*시크릿 키*/
|
||||
/**시크릿 키*/
|
||||
private String secretKey;
|
||||
/*회원 사이트정보 갱신용*/
|
||||
/**회원 사이트정보 갱신용*/
|
||||
private String siteMbrInnb;
|
||||
private String siteMbrDvCd;
|
||||
|
||||
@@ -200,7 +208,7 @@ public class BORtngudrefndVO extends AbstractVO{
|
||||
/** 실 환불 GC 머니 금액 */
|
||||
private String prosbleCancelCashAmt;
|
||||
|
||||
//** 반품처리상태 */
|
||||
/** 반품처리상태 */
|
||||
private String[] returnProcsStuusCd;
|
||||
|
||||
private String serverDv;
|
||||
|
||||
@@ -291,7 +291,7 @@ public class BOPurchsEvtService {
|
||||
if ("01".equals(purchsEvtVO.getEvtDv())) {
|
||||
|
||||
if (purchsEvtVO.getDeleteBnefList() != null) {
|
||||
log.debug(" 삭제 리스트 확인 purchsEvtVO . get deleteList : {}", purchsEvtVO.getDeleteBnefList());
|
||||
log.debug(" 삭제 리스트 확인 purchsEvtVO . get deleteList : {}", (Object) purchsEvtVO.getDeleteBnefList());
|
||||
for (String deleteBnefInnb : purchsEvtVO.getDeleteBnefList()) {
|
||||
log.debug("deleteBnefInnb : {}", deleteBnefInnb);
|
||||
purchsEvtVO.setDeleteBnefInnb(Integer.parseInt(deleteBnefInnb));
|
||||
@@ -326,7 +326,7 @@ public class BOPurchsEvtService {
|
||||
|
||||
|
||||
if (!StringUtils.isEmpty(Arrays.toString(purchsEvtVO.getDeleteBnefList()))) {
|
||||
log.debug(" 삭제 리스트 확인 purchsEvtVO . get deleteList : {}", purchsEvtVO.getDeleteBnefList());
|
||||
log.debug(" 삭제 리스트 확인 purchsEvtVO . get deleteList : {}", (Object) purchsEvtVO.getDeleteBnefList());
|
||||
for (String deleteBnefInnb : purchsEvtVO.getDeleteBnefList()) {
|
||||
log.debug("deleteBnefInnb : {}", deleteBnefInnb);
|
||||
purchsEvtVO.setDeleteBnefInnb(Integer.parseInt(deleteBnefInnb));
|
||||
|
||||
@@ -116,8 +116,8 @@ public class EmailController {
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectEmailPassivSndngManage")
|
||||
public String selectEmailPassivSndngManage(){
|
||||
|
||||
public String selectEmailPassivSndngManage(ModelMap model, BOMaEmailSrchVO bOMaEmailSrchVO){
|
||||
model.addAttribute("emailSrchVO", bOMaEmailSrchVO);
|
||||
return "mngr/ntcn/email/EmailPassivSndngManage";
|
||||
}
|
||||
|
||||
|
||||
@@ -122,10 +122,11 @@ public class MssageController {
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMssagePassivSndngManage")
|
||||
public String selectMessagePassivSndngManage(MssageVO vo, ModelMap model,
|
||||
public String selectMessagePassivSndngManage(BOMssageVO vo, ModelMap model,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
model.addAttribute("mssageVO", vo);
|
||||
|
||||
return "mngr/ntcn/mssage/MssagePassivSndngManage";
|
||||
}
|
||||
@@ -149,6 +150,7 @@ public class MssageController {
|
||||
}
|
||||
|
||||
DataMap content = new DataMap();
|
||||
content.put("mssageVO", vo);
|
||||
content.put("shopInfoMap", service.selectBOShopInfoInqire(vo));
|
||||
content.put("sopmalCd", user.getSopmalCd());
|
||||
|
||||
@@ -178,6 +180,7 @@ public class MssageController {
|
||||
vo.setSopmalCd(user.getSopmalCd());
|
||||
}
|
||||
DataMap content = new DataMap();
|
||||
content.put("mssageVO", vo);
|
||||
content.put("shopInfoMap", service.selectBOShopInfoInqire(vo));
|
||||
content.put("sopmalCd", user.getSopmalCd());
|
||||
|
||||
|
||||
@@ -261,6 +261,143 @@ public class MyActController {
|
||||
|
||||
return Util.getDeviceType(request)+"/mpage/act/MyGoodsQnaDtlUpdtU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 일반문의 조회
|
||||
* @param bbsctt
|
||||
* @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);
|
||||
// responseHandler.handleResponse(
|
||||
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
|
||||
// model,
|
||||
// "resultMap"
|
||||
// );
|
||||
|
||||
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
||||
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
|
||||
model.addAttribute("mpageResultMap", content2);
|
||||
// responseHandler.handleResponse(
|
||||
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
|
||||
// model,
|
||||
// "mpageResultMap"
|
||||
// );
|
||||
|
||||
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에 쇼핑몰코드, 해당 게시판 set
|
||||
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);
|
||||
// responseHandler.handleResponse(
|
||||
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttUpdtPopupForm",bbsctt),
|
||||
// model,
|
||||
// "resultMap"
|
||||
// );
|
||||
model.addAttribute("bbsctt", bbsctt);
|
||||
|
||||
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
|
||||
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
||||
model.addAttribute("mpageResultMap", content2);
|
||||
// responseHandler.handleResponse(
|
||||
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
|
||||
// model,
|
||||
// "mpageResultMap"
|
||||
// );
|
||||
|
||||
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()
|
||||
);
|
||||
// return responseHandler.handleResponse(
|
||||
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
|
||||
// ReplyFromResrc::getReply
|
||||
// );
|
||||
}
|
||||
|
||||
/**
|
||||
* 1:1 문의 조회
|
||||
* @param bbsctt
|
||||
|
||||
@@ -1067,7 +1067,7 @@ public class MyMbrController {
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@PostMapping(value="/updateDlvylcUpdt", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<WnbtResponse> updateDlvylcUpdt(@Validated DlvylcVO dlvylcVO, BOCrmDlvylcVO crmDlvylcVO, BindingResult bindingResult){
|
||||
public ResponseEntity<WnbtResponse> updateDlvylcUpdt(@Validated DlvylcVO dlvylcVO, BindingResult bindingResult, BOCrmDlvylcVO crmDlvylcVO){
|
||||
//입력값 정합성 점검결과 처리
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
@@ -1078,7 +1078,19 @@ public class MyMbrController {
|
||||
mbtlnb = mbtlnb.replace("-", "");
|
||||
int mbtlnbLen = mbtlnb.length();
|
||||
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함
|
||||
@@ -1135,7 +1147,7 @@ public class MyMbrController {
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@PostMapping(value="/insertDlvylcRegist", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<WnbtResponse> insertDlvylcRegist(@Validated DlvylcVO dlvylcVO, BOCrmDlvylcVO crmDlvylcVO, BindingResult bindingResult){
|
||||
public ResponseEntity<WnbtResponse> insertDlvylcRegist(@Validated DlvylcVO dlvylcVO, BindingResult bindingResult, BOCrmDlvylcVO crmDlvylcVO){
|
||||
//입력값 정합성 점검결과 처리
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
@@ -1146,7 +1158,19 @@ public class MyMbrController {
|
||||
mbtlnb = mbtlnb.replace("-","");
|
||||
int mbtlnbLen = mbtlnb.length();
|
||||
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");
|
||||
|
||||
@@ -17,9 +17,10 @@ public class DlvylcVO extends AbstractVO{
|
||||
/**회원구분코드*/
|
||||
private String mbrDvCd;
|
||||
/** 배송지설명내용 */
|
||||
@NotBlank(message = "배송지 설명")
|
||||
@NotBlank(message = "배송지명")
|
||||
private String dlvylcDcCn;
|
||||
/**배송지역코드*/
|
||||
@NotBlank(message = "배송지역코드")
|
||||
private String dlvylcAreaCd;
|
||||
/** 받는사람명 */
|
||||
@NotBlank(message = "받으시는 분")
|
||||
@@ -32,7 +33,7 @@ public class DlvylcVO extends AbstractVO{
|
||||
private String telnb;
|
||||
/** 우편번호 */
|
||||
@NotBlank(message = "우편번호")
|
||||
@Length(min=1, max=7)
|
||||
@Length(min=1, max=7, message="우편번호")
|
||||
private String zip;
|
||||
/** 도로명,지번 구분 */
|
||||
private String adresDv;
|
||||
|
||||
@@ -171,6 +171,26 @@ public class MyOrdrController {
|
||||
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쇼핑 > 구독서비스 주문/배송 > 구독서비스 주문/배송 목록 조회
|
||||
* @param ordrDlvyVO
|
||||
@@ -208,10 +228,12 @@ public class MyOrdrController {
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMbrSubsvcOrdrDtlInqire")
|
||||
public String selectMbrSubsvcOrdrDtlInqire(HttpServletRequest request, ModelMap model, BOOrdrDlvyVO ordrDlvyVO, BOMbrVO vo) throws Exception {
|
||||
public String selectMbrSubsvcOrdrDtlInqire(HttpServletRequest request, ModelMap model, BOOrdrDlvyVO ordrDlvyVO, BOMbrVO vo, BORtngudrefndVO boRtngudrefndVO) throws Exception {
|
||||
boRtngudrefndVO.setServerDv("sopmal");
|
||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||
if ("01".equals(user.getSysDvCd())) {
|
||||
ordrDlvyVO.setSopmalCd(user.getSopmalCd());
|
||||
boRtngudrefndVO.setSopmalCd(user.getSopmalCd());
|
||||
}
|
||||
Map<String, Object> message = boOrdrService.selectMbrOrdrDtlInqire(ordrDlvyVO);
|
||||
/**발급대상구분코드*/
|
||||
@@ -228,6 +250,13 @@ public class MyOrdrController {
|
||||
// );
|
||||
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(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);
|
||||
@@ -758,7 +787,7 @@ public class MyOrdrController {
|
||||
// model,
|
||||
// "resultMap"
|
||||
// );
|
||||
model.addAttribute("paramVO", boRtngudrefndVO);
|
||||
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(boRtngudrefndVO));
|
||||
|
||||
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
|
||||
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
||||
|
||||
@@ -2,6 +2,8 @@ package com.wb.domainserver.domain.sopmal.ordr.controller;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
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.exception.WnbtRestException;
|
||||
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
|
||||
@@ -9,17 +11,23 @@ import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
|
||||
import com.wb.domainserver.security.authorization.annotation.Policy;
|
||||
import com.wb.domainserver.util.communicate.RESRC;
|
||||
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 jakarta.servlet.http.HttpServletRequest;
|
||||
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.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.io.BufferedReader;
|
||||
import java.net.URLDecoder;
|
||||
import java.util.*;
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
@@ -34,6 +42,9 @@ public class OrdrApiController {
|
||||
@Autowired
|
||||
private GconeMessageSource messageSource;
|
||||
|
||||
@Autowired
|
||||
private BOOrdrLogService ordrLogService;
|
||||
|
||||
private Util utilClass;
|
||||
|
||||
/* ####################################
|
||||
@@ -95,4 +106,135 @@ public class OrdrApiController {
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -20,30 +20,27 @@ import com.wb.domainserver.domain.gcone.goods.goods.service.BOGoodsService;
|
||||
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOOrderService;
|
||||
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOPurchsService;
|
||||
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.vo.BOMbrVO;
|
||||
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.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.BOOrdrService;
|
||||
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.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.promtn.coupon.service.BOCouponService;
|
||||
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.site.vo.BOSiteVO;
|
||||
import com.wb.domainserver.domain.sample.vo.PrevewVO;
|
||||
import com.wb.domainserver.domain.sopmal.goods.vo.GoodsVO;
|
||||
import com.wb.domainserver.domain.sopmal.ordr.vo.OrdrVO;
|
||||
import com.wb.domainserver.domain.sopmal.ordr.vo.PayVO;
|
||||
import com.wb.domainserver.domain.sopmal.ordr.vo.SpbkVO;
|
||||
import com.wb.domainserver.exception.WnbtRestException;
|
||||
import com.wb.domainserver.exception.code.PurchsValidCode;
|
||||
import com.wb.domainserver.response.ApiResponse;
|
||||
import com.wb.domainserver.response.WnbtResponse;
|
||||
import com.wb.domainserver.response.WnbtResponseBody;
|
||||
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
|
||||
@@ -51,9 +48,6 @@ import com.wb.domainserver.security.authentication.AnonymousUser;
|
||||
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
|
||||
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
|
||||
import com.wb.domainserver.security.authorization.annotation.Policy;
|
||||
import com.wb.domainserver.util.CookieUtils;
|
||||
import com.wb.domainserver.util.communicate.RESRC;
|
||||
import com.wb.domainserver.util.communicate.ReplyFromResrc;
|
||||
import com.wb.domainserver.util.communicate.SendToResrc;
|
||||
import com.wb.domainserver.util.cookie.CookieUtil;
|
||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||
@@ -65,7 +59,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.logging.log4j.util.Base64Util;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
@@ -74,7 +67,10 @@ import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
@@ -136,6 +132,10 @@ public class OrdrController {
|
||||
private BOMaMtngService boMaMtngService;
|
||||
@Autowired
|
||||
private BOPurchsService boPurchsService;
|
||||
@Autowired
|
||||
private BOSubsvcService subsvcService;
|
||||
@Autowired
|
||||
private BOPayService payService;
|
||||
|
||||
/* ####################################
|
||||
사용자 > 상품 > 구매/결제 > 회원구매하기 시작
|
||||
@@ -362,6 +362,7 @@ public class OrdrController {
|
||||
param.put("mbrDvCd", user.getMbrDvCd());
|
||||
param.put("mbrInnb", user.getUserInnb());
|
||||
}
|
||||
log.debug("CONselectSetleExpectAmt-param : {}", param);
|
||||
Map<String, Object> content = new HashMap<>();
|
||||
try {
|
||||
DataMap datamap = new DataMap();
|
||||
@@ -398,6 +399,136 @@ public class OrdrController {
|
||||
// );
|
||||
}
|
||||
|
||||
/* ####################################
|
||||
사용자 > 구독상품 > 구매/결제 > 회원구매하기 시작
|
||||
#################################### */
|
||||
/**
|
||||
* 사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 > 구독서비스 결제 화면 이동
|
||||
* @return SubsvcPurchsC.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectSubsvcPurchsForm")
|
||||
public String selectSubsvcSetleInqire(HttpServletRequest request, ModelMap model, BOOrdrVO ordrVO) throws Exception {
|
||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||
|
||||
//결재 플랫폼 구분 코드
|
||||
ordrVO.setSetlePltfomTyCd("PC".equals(request.getAttribute("env"))?"01":"02");
|
||||
|
||||
//약관정보 세팅
|
||||
BOStplatVO stplatVO = new BOStplatVO();
|
||||
stplatVO.setPageIndex(1);
|
||||
stplatVO.setPageUnit(paginationProperties.getPageUnit());
|
||||
stplatVO.setNmbrPurchsAt("Y");
|
||||
stplatVO.setSrchSopmalCd(user.getSopmalCd());
|
||||
|
||||
DataMap stplat = selectBOStplatListInqire(stplatVO);
|
||||
|
||||
//주문 상품정보 세팅
|
||||
if ("01".equals(user.getSysDvCd())) {
|
||||
ordrVO.setSopmalCd(user.getSopmalCd());
|
||||
}
|
||||
ordrVO.setMbrInnb(user.getUserInnb());
|
||||
ordrVO.setMbrId(user.getMbrId());
|
||||
ordrVO.setMbrDvCd(user.getMbrDvCd());
|
||||
|
||||
Map<String, Object> content = service.selectSubsvcPurchs(ordrVO);
|
||||
|
||||
model.addAttribute("data", content);
|
||||
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrVO));
|
||||
model.addAttribute("deviceType", Util.getDeviceType(request));
|
||||
model.addAttribute("stplat", stplat);
|
||||
|
||||
return Util.getDeviceType(request) + "/ordr/SubsvcPurchsC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 > 구독서비스 조회
|
||||
* @param param
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectOrderSubsvcList", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<WnbtResponse> selectOrderSubsvcOne(@RequestBody HashMap<String, Object> param) {
|
||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||
BOSubsvcVO subsvcVO = new BOSubsvcVO();
|
||||
|
||||
if ("01".equals(user.getSysDvCd())) {
|
||||
subsvcVO.setSopmalCd(user.getSopmalCd());
|
||||
}
|
||||
subsvcVO.setMbrInnb((Integer) param.get("mbrInnb"));
|
||||
subsvcVO.setSubsvcInnb(String.valueOf(param.get("subsvcInnb")));
|
||||
|
||||
List<DataMap> content = new ArrayList<>();
|
||||
content.add(subsvcService.selectBOSubsvcDetail(subsvcVO));
|
||||
|
||||
return ResponseEntity.ok(
|
||||
WnbtResponse.builder()
|
||||
.resBody(new WnbtResponseBody(content))
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 > 결제 예정금액 조회
|
||||
* @param param
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectSubsvcSetleExpectAmt", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<WnbtResponse> selectSubsvcSetleExpectAmt(HttpServletRequest request, @RequestBody HashMap<String, Object> param) {
|
||||
String sesionId ="";
|
||||
Cookie[] cookies = request.getCookies();
|
||||
if(cookies != null){
|
||||
for(Cookie cookie : cookies ){
|
||||
if(cookie.getName().equals("JSESSIONID")){
|
||||
sesionId = cookie.getValue();
|
||||
param.put("sesionId", sesionId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||
if ("01".equals(user.getSysDvCd())) {
|
||||
param.put("sopmalCd", user.getSopmalCd());
|
||||
param.put("mbrDvCd", user.getMbrDvCd());
|
||||
param.put("mbrInnb", user.getUserInnb());
|
||||
}
|
||||
Map<String, Object> content = new HashMap<>();
|
||||
try {
|
||||
DataMap datamap = new DataMap();
|
||||
param.entrySet().forEach(map -> {
|
||||
datamap.put(map.getKey(), map.getValue());
|
||||
});
|
||||
content = service.selectSubsvcSetleExpectAmt(datamap);
|
||||
} catch (WnbtRestException wre) {
|
||||
log.debug("결제예정금액 ordr wre");
|
||||
log.error(wre.getMessage(), wre);
|
||||
content = new HashMap<>() {{
|
||||
put("status", "1");
|
||||
put("message", wre.getMessage());
|
||||
put("mlgMxmmUseAmt", wre.getCode());
|
||||
}};
|
||||
} catch (Exception e) {
|
||||
log.debug("결제예정금액 ordr e");
|
||||
log.error(e.getMessage(), e);
|
||||
|
||||
content = new HashMap<>() {{
|
||||
put("status", "1");
|
||||
put("message", "예기치 못한 오류가 발생하였습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
}};
|
||||
}
|
||||
|
||||
return ResponseEntity.ok(
|
||||
WnbtResponse.builder()
|
||||
.resBody(new WnbtResponseBody(content))
|
||||
.build()
|
||||
);
|
||||
// return responseHandler.handleResponse(
|
||||
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOSetleExpectAmt", param),
|
||||
// ReplyFromResrc::getReply
|
||||
// );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 관리자 주문 > 브랜드페이 > 토큰발급
|
||||
@@ -662,6 +793,21 @@ public class OrdrController {
|
||||
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 = responseHandler.handleResponseAsMap(
|
||||
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBOOrder", param)
|
||||
@@ -691,7 +837,9 @@ public class OrdrController {
|
||||
String pgCmpnyNm = setle.getPgCmpnyNm();
|
||||
String setleTyCd = setle.getSetleTyCd();
|
||||
|
||||
if ("gcpay".equals(pgCmpnyNm)) {
|
||||
if ("kiwoom".equals(pgCmpnyNm)) {
|
||||
url = "sopmal/ordr/OrdrReqstKiwoomPayR";
|
||||
} else if ("gcpay".equals(pgCmpnyNm)) {
|
||||
url = "sopmal/ordr/OrdrReqstGcpayPayR";
|
||||
} else if ("kcp".equals(pgCmpnyNm)) {
|
||||
if ("sopmal_m".equals(deviceType)) {
|
||||
@@ -921,7 +1069,7 @@ public class OrdrController {
|
||||
agentId = CookieUtil.getAgentCookieValue(request.getCookies());
|
||||
payVO.setAgentId(agentId);
|
||||
}
|
||||
log.debug("=================insertKcpSetle cookies {} ",cookies);
|
||||
log.debug("=================insertKcpSetle cookies {} ",(Object) cookies);
|
||||
|
||||
Map<String, String> util = new HashMap<>();
|
||||
util = utilClass.getRequestInfo(request);
|
||||
@@ -942,6 +1090,12 @@ public class OrdrController {
|
||||
log.debug("=================insertKcpSetle after ");
|
||||
|
||||
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";
|
||||
}
|
||||
@@ -1033,19 +1187,6 @@ public class OrdrController {
|
||||
|
||||
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));
|
||||
|
||||
String resCd = request.getParameter("res_cd");
|
||||
@@ -1243,6 +1384,151 @@ public class OrdrController {
|
||||
return "sopmal/ordr/OrdrRspnsTossPayR";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 키움 결제 연계 전 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 = payService.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;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > 키움 결제 정보 등록
|
||||
* @param model
|
||||
* @param request
|
||||
* @return OrdrRspnsKiwoomPayR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertKiwoomSetle")
|
||||
public String insertKiwoomSetle(ModelMap model, HttpServletRequest request) {
|
||||
BOPayVO payVO = new BOPayVO();
|
||||
|
||||
payVO.setOrderId(request.getParameter("orderId"));
|
||||
payVO.setAmount(request.getParameter("setleAmt"));
|
||||
payVO.setSopmalCd(request.getParameter("sopmalCd"));
|
||||
payVO.setMbrInnb(request.getParameter("mbrInnb"));
|
||||
payVO.setMbrId(request.getParameter("mbrId"));
|
||||
payVO.setSesionId(request.getParameter("sesionId"));
|
||||
payVO.setPgCmpnyNm(request.getParameter("pgCmpnyNm"));
|
||||
payVO.setSetleTyCd(request.getParameter("setleTyCd"));
|
||||
payVO.setSetlerNm(request.getParameter("ordrrNm"));
|
||||
|
||||
log.info("insertKiwoomSetle controller payVO ::: {}", payVO);
|
||||
|
||||
String agentId = "";
|
||||
String jSesionId = "";
|
||||
String ipAdres = "";
|
||||
|
||||
// 쿠키를 가져옴
|
||||
Cookie[] cookies = request.getCookies();
|
||||
|
||||
//agentId 쿠키 있을 경우 가져옴
|
||||
if (cookies != null) {
|
||||
for (Cookie cookie : cookies) {
|
||||
if (cookie.getName().equals("JSESSIONID")) {
|
||||
jSesionId = cookie.getValue();
|
||||
payVO.setSessionId(jSesionId);
|
||||
}
|
||||
}
|
||||
}
|
||||
//gc_agent_id 가져옴
|
||||
if (CookieUtil.hasAgentCookie(request.getCookies())) {
|
||||
agentId = CookieUtil.getAgentCookieValue(request.getCookies());
|
||||
payVO.setAgentId(agentId);
|
||||
}
|
||||
Map<String, String> util = new HashMap<>();
|
||||
util = utilClass.getRequestInfo(request);
|
||||
ipAdres = util.get("XForwardedFor");
|
||||
payVO.setIpAdres(ipAdres);
|
||||
|
||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||
payVO.setMbrNm(user.getMbrNm()); //회원명(관리자명)
|
||||
if ("01".equals(user.getSysDvCd())) {
|
||||
payVO.setDvCd("01");
|
||||
payVO.setSopmalCd(user.getSopmalCd());
|
||||
payVO.setMbrDvCd(user.getMbrDvCd());
|
||||
} else {
|
||||
payVO.setDvCd("02");
|
||||
}
|
||||
|
||||
Map<String, Object> content;
|
||||
|
||||
try {
|
||||
content = service.insertKiwoomSetle(payVO);
|
||||
|
||||
log.info("insertKiwoomSetle controller content ::: {}", content);
|
||||
|
||||
} catch (WnbtRestException wre) {
|
||||
log.info("insertKiwoomSetle : 키움 결제 정보 등록 : 실패 WnbtRestException");
|
||||
log.error(wre.getMessage(), wre);
|
||||
content = new HashMap<>() {{
|
||||
put("status", "1");
|
||||
put("message", wre.getMessage());
|
||||
}};
|
||||
} catch (Exception e) {
|
||||
log.info("insertKiwoomSetle : 키움 결제 정보 등록 : 실패");
|
||||
log.error(e.getMessage(), e);
|
||||
|
||||
content = new HashMap<>() {{
|
||||
put("status", "1");
|
||||
put("message", "키움 결제 정보 등록이 실패하였습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
}};
|
||||
}
|
||||
|
||||
if ("0".equals(content.get("status"))) {
|
||||
commonOrderPostProcess(payVO);
|
||||
}
|
||||
|
||||
model.addAttribute("data", content);
|
||||
// responseHandler.handleResponse(
|
||||
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBOTosspaySetle", payVO),
|
||||
// model,
|
||||
// "data"
|
||||
// );
|
||||
model.addAttribute("paramVO", payVO);
|
||||
|
||||
return "sopmal/ordr/OrdrRspnsKiwoomPayR";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > 주문완료 화면 이동
|
||||
* @return OrdrComptR.jsp
|
||||
@@ -2980,6 +3266,8 @@ public class OrdrController {
|
||||
List<LinkedHashMap> goodsList = (List<LinkedHashMap>) param.get("goodsList"); // 상품정보
|
||||
LinkedHashMap enuri = null;
|
||||
LinkedHashMap setle = null;
|
||||
// 구독서비스 여부
|
||||
Boolean isSubsvc = goodsList.get(0).containsKey("subsvcInnb");
|
||||
|
||||
//회원일 경우에만 enuri정보 존재
|
||||
if(user.getUserInnb() > 0){
|
||||
@@ -3008,6 +3296,7 @@ public class OrdrController {
|
||||
return content;
|
||||
}
|
||||
} else {
|
||||
// 여러곳배송처럼 처리하더라도 주소는 하나이므로 shipping 체크
|
||||
if (CollectionUtils.isEmpty(shipping)) {
|
||||
log.info("배송지 정보를 찾을 수 없습니다.");
|
||||
content.put("result","Y");
|
||||
@@ -3024,8 +3313,7 @@ public class OrdrController {
|
||||
return content;
|
||||
}
|
||||
|
||||
|
||||
if (CollectionUtils.isEmpty(enuri)) {
|
||||
if (!isSubsvc && CollectionUtils.isEmpty(enuri)) {
|
||||
log.info("할인 또는 결제 정보를 찾을 수 없습니다.");
|
||||
content.put("result","Y");
|
||||
content.put("message", "할인 또는 결제 정보를 찾을 수 없습니다.");
|
||||
@@ -3035,7 +3323,7 @@ public class OrdrController {
|
||||
|
||||
String sopmalCd = (String) param.get("sopmalCd");
|
||||
String ordrTyCd = (String) param.get("ordrTyCd");
|
||||
String mbrInnb = (String) goodsList.get(0).get("mbrInnb");
|
||||
String mbrInnb = String.valueOf(goodsList.get(0).get("mbrInnb"));
|
||||
String mbrDvCd = (String) goodsList.get(0).get("mbrDvCd");
|
||||
String ordrrMbtlnb = (String) purchsr.get("mbtlnb");
|
||||
|
||||
@@ -3169,17 +3457,27 @@ public class OrdrController {
|
||||
try {
|
||||
//계산결과 총결제금액
|
||||
String resultSetleAmt = "";
|
||||
String resultWonSetleAmt = "";
|
||||
//주문요청 총결제금액
|
||||
//회원/비회원 총결제금액
|
||||
String reqSetleAmt = StringUtil.isNullToString(setle.get("rlSetleAmt"));
|
||||
String reqWonSetleAmt = StringUtil.isNullToString(setle.get("wonRlSetleAmt"));
|
||||
//재계산된 총결제금액관련정보
|
||||
Map<String, Object> resultAmt = service.selectSetleExpectAmt(param);
|
||||
Map<String, Object> resultAmt;
|
||||
if(isSubsvc) {
|
||||
resultAmt = service.selectSubsvcSetleExpectAmt(param);
|
||||
} else {
|
||||
resultAmt = service.selectSetleExpectAmt(param);
|
||||
}
|
||||
|
||||
if(resultAmt.containsKey("setleExpectAmt")){
|
||||
LinkedHashMap setleExpectAmt = (LinkedHashMap) resultAmt.get("setleExpectAmt");
|
||||
if(setleExpectAmt.containsKey("setleAmt")){
|
||||
resultSetleAmt = StringUtil.isNullToString(setleExpectAmt.get("setleAmt"));
|
||||
}
|
||||
if(setleExpectAmt.containsKey("setleAmtKr")){
|
||||
resultWonSetleAmt = StringUtil.isNullToString(setleExpectAmt.get("setleAmtKr"));
|
||||
}
|
||||
|
||||
//주문요청의 총결제금액과 계산된 총결제금액이 서로 다를 경우
|
||||
if(!resultSetleAmt.equals(reqSetleAmt)
|
||||
@@ -3188,6 +3486,13 @@ public class OrdrController {
|
||||
content.put("result", "Y");
|
||||
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) {
|
||||
log.error(wre.getMessage());
|
||||
|
||||
@@ -4,9 +4,7 @@ import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Base64;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
import com.wb.domainserver.domain.gcone.ordr.pay.service.BOPayService;
|
||||
import com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO;
|
||||
@@ -22,9 +20,7 @@ import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.wb.domainserver.domain.sopmal.ordr.vo.PayVO;
|
||||
@@ -630,4 +626,127 @@ public class PayController {
|
||||
return message;
|
||||
}
|
||||
|
||||
|
||||
/* *********************************************
|
||||
* 키움결제
|
||||
********************************************* */
|
||||
|
||||
/**
|
||||
* 키움 결제 화면
|
||||
* @return PayKiwoomSucsC.jsp
|
||||
* @author 이경숙
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectKiwoomSample")
|
||||
public String selectKiwoonPay(ModelMap model) throws Exception {
|
||||
log.debug("selectKiwoonPay = {}");
|
||||
return "sopmal/ordr/PayKiwoomPayC";
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectKiwoomSample2")
|
||||
public String selectKiwoonPay2(ModelMap model) throws Exception {
|
||||
log.debug("selectKiwoonPay = {}");
|
||||
return "sopmal/ordr/PayKiwoomPay2C";
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectKiwoomTotalSample")
|
||||
public String selectKiwoonPayTotal(ModelMap model) throws Exception {
|
||||
log.debug("selectKiwoonPay = {}");
|
||||
return "sopmal/ordr/PayKiwoomPayTotalC";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 키움 결제 연계 전 getEnc 값 받아오기
|
||||
* @return PayKiwoomSucsC.jsp
|
||||
* @author 이경숙
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@ResponseBody
|
||||
@RequestMapping(value="/kiwoomPayGetEnc")
|
||||
public Map<String, Object> selectKiwoomGetEnc(HttpServletRequest request) throws Exception {
|
||||
|
||||
BOPayVO payVO = new BOPayVO();
|
||||
|
||||
log.debug("kiwoomPayGetEnc = {}");
|
||||
|
||||
//String eucKrStr = new String(utf8Str.getBytes("UTF-8"), "EUC-KR");
|
||||
//String utf8Str = new String(eucKrStr.getBytes("EUC-KR"), "UTF-8");
|
||||
//request.setCharacterEncoding("EUC-KR");
|
||||
|
||||
payVO.setCpId(request.getParameter("CPID"));
|
||||
payVO.setPayMethod(request.getParameter("PAYMETHOD"));
|
||||
payVO.setOrderId(request.getParameter("ORDERNO"));
|
||||
payVO.setType(request.getParameter("TYPE"));
|
||||
payVO.setAmount(request.getParameter("AMOUNT"));
|
||||
|
||||
Map<String, Object> message;
|
||||
String sopmalCd = payVO.getSopmalCd();
|
||||
try {
|
||||
message = service.insertKiwoomPay(payVO);
|
||||
|
||||
} catch (Exception e) {
|
||||
message = new HashMap<>() {{
|
||||
put("response", "결제를 실패하였습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
}};
|
||||
}
|
||||
|
||||
|
||||
log.info("insertKiwoomPay step5 ::: {}", message.get("KIWOOM_ENC"));
|
||||
|
||||
//model.addAttribute("message", message);
|
||||
//return "sopmal/ordr/PayKiwoomSucsC";
|
||||
|
||||
return message;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 키움 결제 연계처리 - 성공결과페이지
|
||||
* @return PayKiwoomSucsC.jsp
|
||||
* @author 이경숙
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/kiwoomPaySuccss")
|
||||
public String confirmPaymentkiwoom(HttpServletRequest request, ModelMap model) throws Exception {
|
||||
|
||||
System.out.println("콜백 수신 ::: "+request.getQueryString());
|
||||
|
||||
BOPayVO payVO = new BOPayVO();
|
||||
|
||||
payVO.setCode(request.getParameter("RESULTCODE"));
|
||||
payVO.setOrderId(request.getParameter("ORDERNO"));
|
||||
payVO.setAmount(request.getParameter("AMOUNT"));
|
||||
payVO.setPayMethod(request.getParameter("PAYMETHOD"));
|
||||
|
||||
Map<String, Object> message = new HashMap<>();
|
||||
/*String sopmalCd = payVO.getSopmalCd();
|
||||
try {
|
||||
message = service.insertKcpPay(payVO);
|
||||
|
||||
} catch (Exception e) {
|
||||
message = new HashMap<>() {{
|
||||
put("response", "결제를 실패하였습니다.\n관리자에게 문의하시기 바랍니다.");
|
||||
}};
|
||||
}*/
|
||||
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("code", payVO.getCode());
|
||||
jsonObject.put("orderId", payVO.getOrderId());
|
||||
jsonObject.put("amount", payVO.getAmount());
|
||||
jsonObject.put("payMethod", payVO.getPayMethod());
|
||||
message.put("response",jsonObject.toString());
|
||||
|
||||
model.addAttribute("message", message);
|
||||
// responseHandler.handleResponse(
|
||||
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/pay/kcpPayProc", payVO),
|
||||
// model,
|
||||
// "message"
|
||||
// );
|
||||
|
||||
return "sopmal/ordr/PayKiwoomSucsC";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -41,9 +41,12 @@ public class OrdrVO extends AbstractVO {
|
||||
/** 실패 메세지 */
|
||||
private String message;
|
||||
|
||||
/*결제 플랫폼 타입 코드*/
|
||||
/** 결제 플랫폼 타입 코드*/
|
||||
private String setlePltfomTyCd;
|
||||
|
||||
/*주문유형*/
|
||||
/** 주문유형*/
|
||||
private String ordrTyCd;
|
||||
|
||||
/** 구독서비스 고유번호*/
|
||||
private String subsvcInnb;
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
import static org.springframework.beans.factory.config.BeanDefinition.ROLE_INFRASTRUCTURE;
|
||||
|
||||
@EnableWebSecurity(debug = true)
|
||||
@EnableWebSecurity
|
||||
@Configuration
|
||||
//@EnableMethodSecurity
|
||||
public class ResourceServerConfig {
|
||||
|
||||
@@ -58,7 +58,7 @@ spring:
|
||||
gcone:
|
||||
hikari:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
jdbc-url: jdbc:mysql://115.68.176.232:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false
|
||||
jdbc-url: jdbc:mysql://115.68.231.30:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false
|
||||
username: sakeone
|
||||
password: dnlfxjtm13@$
|
||||
minimumIdle: 1
|
||||
@@ -66,11 +66,11 @@ spring:
|
||||
idleTimeout: 30000 #30초
|
||||
maxLifetime: 1800000 #30분
|
||||
connectionTimeout: 30000
|
||||
poolName: gconedDevPool
|
||||
poolName: SakeDevPool
|
||||
sure:
|
||||
hikari:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
jdbc-url: jdbc:mysql://115.68.176.232:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false
|
||||
jdbc-url: jdbc:mysql://115.68.231.30:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false
|
||||
username: sakeone
|
||||
password: dnlfxjtm13@$
|
||||
minimumIdle: 1
|
||||
@@ -85,7 +85,7 @@ spring:
|
||||
show-sql: true
|
||||
servlet:
|
||||
multipart:
|
||||
max-file-size: 10MB
|
||||
max-file-size: 15MB
|
||||
max-request-size: -1
|
||||
|
||||
mybatis:
|
||||
@@ -111,7 +111,7 @@ sopmalfo:
|
||||
rtrn: /data/gcone/rtrnFile
|
||||
extensions:
|
||||
images: .gif,.jpg,.jpeg,.png
|
||||
cdnurl: http://dev.img.soju1sake1.com
|
||||
cdnurl: https://19d28cf7178139ad.kinxzone.com
|
||||
|
||||
|
||||
pagination:
|
||||
@@ -353,11 +353,11 @@ mngrfo:
|
||||
fileupload:
|
||||
uploaddirs:
|
||||
goods: C:/file/temp
|
||||
doc: /docFile
|
||||
web: /webFile
|
||||
doc: /data/gcone/docFile
|
||||
web: /data/gcone/webFile
|
||||
extensions:
|
||||
images: .gif,.jpg,.jpeg,.png
|
||||
cdnurl: http://dev.img.soju1sake1.com
|
||||
cdnurl: https://19d28cf7178139ad.kinxzone.com
|
||||
subsvc:
|
||||
dft-goods-optn-innb: 5
|
||||
|
||||
@@ -367,7 +367,7 @@ secret:
|
||||
|
||||
|
||||
host:
|
||||
img: http://dev.img.soju1sake1.com
|
||||
img: https://19d28cf7178139ad.kinxzone.com
|
||||
|
||||
naverpay:
|
||||
order:
|
||||
@@ -380,7 +380,7 @@ naverpay:
|
||||
real-url: https://pay.naver.com
|
||||
|
||||
mail:
|
||||
host: mail.sake1jan.com
|
||||
host: 10.2.1.76
|
||||
port: 587
|
||||
username: custom@sake1jan.com
|
||||
password: mail13@$
|
||||
@@ -420,7 +420,7 @@ bankda:
|
||||
css-cours : css/theme/themeAF.css
|
||||
|
||||
#선물하기 URL
|
||||
presenturl : dev.svc.soju1sake1.com
|
||||
presenturl : devsvc.soju1sake1.com
|
||||
|
||||
# 출고 택배사 구분 EXPORT, (택배사 구분코드 HDRYCPN)
|
||||
# 송장번호 %INVCNB% 치환
|
||||
@@ -449,6 +449,6 @@ api:
|
||||
DATA_ENCRYPT_AES_KEY: "Z8zKbHyMKn+iwD3O0PLT9g=="
|
||||
|
||||
currency-unit:
|
||||
default: 円(엔)
|
||||
JP: 円(엔)
|
||||
default: 円
|
||||
JP: 円
|
||||
KR: 원
|
||||
@@ -58,7 +58,7 @@ spring:
|
||||
gcone:
|
||||
hikari:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
jdbc-url: jdbc:mysql://115.68.176.232:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false
|
||||
jdbc-url: jdbc:mysql://115.68.231.30:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false
|
||||
username: sakeone
|
||||
password: dnlfxjtm13@$
|
||||
minimumIdle: 1
|
||||
@@ -66,11 +66,11 @@ spring:
|
||||
idleTimeout: 30000 #30초
|
||||
maxLifetime: 1800000 #30분
|
||||
connectionTimeout: 30000
|
||||
poolName: gconedDevPool
|
||||
poolName: SakeDevPool
|
||||
sure:
|
||||
hikari:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
jdbc-url: jdbc:mysql://115.68.176.232:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false
|
||||
jdbc-url: jdbc:mysql://115.68.231.30:3306/sake?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=yes&verifyServerCertificate=false
|
||||
username: sakeone
|
||||
password: dnlfxjtm13@$
|
||||
minimumIdle: 1
|
||||
@@ -85,7 +85,7 @@ spring:
|
||||
show-sql: true
|
||||
servlet:
|
||||
multipart:
|
||||
max-file-size: 10MB
|
||||
max-file-size: 15MB
|
||||
max-request-size: -1
|
||||
|
||||
mybatis:
|
||||
@@ -111,7 +111,7 @@ sopmalfo:
|
||||
rtrn: /data/gcone/rtrnFile
|
||||
extensions:
|
||||
images: .gif,.jpg,.jpeg,.png
|
||||
cdnurl: https://19b0bde6dcdc15ad.kinxzone.com
|
||||
cdnurl: https://19d28cf7178139ad.kinxzone.com
|
||||
|
||||
|
||||
pagination:
|
||||
@@ -357,8 +357,8 @@ mngrfo:
|
||||
web: /data/gcone/webFile
|
||||
extensions:
|
||||
images: .gif,.jpg,.jpeg,.png
|
||||
cdnurl: https://19b0bde6dcdc15ad.kinxzone.com
|
||||
upurl: https://www.soju1sake1.com
|
||||
cdnurl: https://19d28cf7178139ad.kinxzone.com
|
||||
# upurl: https://www.soju1sake1.com
|
||||
subsvc:
|
||||
dft-goods-optn-innb: 5
|
||||
|
||||
@@ -367,7 +367,7 @@ secret:
|
||||
|
||||
|
||||
host:
|
||||
img: https://19b0bde6dcdc15ad.kinxzone.com/
|
||||
img: https://19d28cf7178139ad.kinxzone.com
|
||||
|
||||
naverpay:
|
||||
order:
|
||||
@@ -380,7 +380,7 @@ naverpay:
|
||||
real-url: https://pay.naver.com
|
||||
|
||||
mail:
|
||||
host: mail.sake1jan.com
|
||||
host: 10.2.1.76
|
||||
port: 587
|
||||
username: custom@sake1jan.com
|
||||
password: mail13@$
|
||||
@@ -420,7 +420,7 @@ bankda:
|
||||
css-cours : css/theme/themeAF.css
|
||||
|
||||
#선물하기 URL
|
||||
presenturl : dev.svc.gcone.co.kr
|
||||
presenturl : devsvc.soju1sake1.com
|
||||
|
||||
# 출고 택배사 구분 EXPORT, (택배사 구분코드 HDRYCPN)
|
||||
# 송장번호 %INVCNB% 치환
|
||||
@@ -449,6 +449,6 @@ api:
|
||||
DATA_ENCRYPT_AES_KEY: "Z8zKbHyMKn+iwD3O0PLT9g=="
|
||||
|
||||
currency-unit:
|
||||
default: 円(엔)
|
||||
JP: 円(엔)
|
||||
default: 円
|
||||
JP: 円
|
||||
KR: 원
|
||||
@@ -85,7 +85,7 @@ spring:
|
||||
show-sql: true
|
||||
servlet:
|
||||
multipart:
|
||||
max-file-size: 10MB
|
||||
max-file-size: 15MB
|
||||
max-request-size: -1
|
||||
|
||||
mybatis:
|
||||
@@ -449,6 +449,6 @@ api:
|
||||
DATA_ENCRYPT_AES_KEY: "Z8zKbHyMKn+iwD3O0PLT9g=="
|
||||
|
||||
currency-unit:
|
||||
default: 円(엔)
|
||||
JP: 円(엔)
|
||||
default: 円
|
||||
JP: 円
|
||||
KR: 원
|
||||
@@ -224,6 +224,7 @@
|
||||
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')">
|
||||
<include refid="selectSopmalNtceWhere"/>
|
||||
AND FB.USE_AT = 'Y'
|
||||
</if>
|
||||
AND FB.SOPMAL_CD = #{sopmalCd}
|
||||
AND FB.BBS_ID = #{bbsId}
|
||||
@@ -460,6 +461,7 @@
|
||||
</if>
|
||||
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(serverDv, 'sopmal')">
|
||||
<include refid="selectSopmalNtceWhere"/>
|
||||
AND FB.USE_AT = 'Y'
|
||||
</if>
|
||||
AND FB.DEPTH = 0
|
||||
AND FB.SOPMAL_CD = #{sopmalCd}
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
, ORDR_TY_CD
|
||||
, RL_SETLE_AMT
|
||||
, ENURI_AMT
|
||||
, WON_RL_SETLE_AMT
|
||||
, BUY_RATE
|
||||
, ORDRR_NM
|
||||
, ORDRR_TELNB
|
||||
, ORDRR_MBTLNB
|
||||
@@ -64,6 +66,10 @@
|
||||
, RCIPT_NB
|
||||
, SLE_EMPL_NM
|
||||
, 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_MBTLNB
|
||||
, INDVDL_SETLE_SMS_AT
|
||||
@@ -84,6 +90,8 @@
|
||||
, #{ordrTyCd}
|
||||
, #{rlSetleAmt}
|
||||
, #{enuriAmt}
|
||||
, #{wonRlSetleAmt}
|
||||
, #{buyRate}
|
||||
, #{ordrrNm}
|
||||
, HEX(AES_ENCRYPT(REPLACE(#{ordrrTelnb}, '-', ''), '1df5be2f7e90ae36'))
|
||||
, HEX(AES_ENCRYPT(REPLACE(#{ordrrMbtlnb}, '-', ''), '1df5be2f7e90ae36'))
|
||||
@@ -128,6 +136,10 @@
|
||||
, #{rciptNb}
|
||||
, #{sleEmplNm}
|
||||
, #{dwldCouponInnb}
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(subsvcInnb)">
|
||||
, #{subsvcInnb}
|
||||
, 'Y'
|
||||
</if>
|
||||
, #{indvdlSetleSmsCn}
|
||||
, HEX(AES_ENCRYPT(REPLACE(#{indvdlSetleSmsMbtlnb}, '-', ''), '1df5be2f7e90ae36'))
|
||||
, #{indvdlSetleSmsAt}
|
||||
@@ -386,7 +398,10 @@
|
||||
, ORDR_STTUS_CD
|
||||
, RECPNT_NM
|
||||
, RECPNT_MBTLNB
|
||||
, DLVYLC_AREA_CD
|
||||
, CSTMCLER_CD
|
||||
, DLVYLC_ZIP
|
||||
, PREFCD
|
||||
, DLVYLC_ADRES_DV_CD
|
||||
, DLVYLC_LNB_ADRES
|
||||
, DLVYLC_RNM_ADRES
|
||||
@@ -422,7 +437,10 @@
|
||||
, #{ordrSttusCd}
|
||||
, #{recpntNm}
|
||||
, HEX(AES_ENCRYPT(REPLACE(#{recpntMbtlnb}, '-', ''), '1df5be2f7e90ae36'))
|
||||
, #{dlvylcAreaCd}
|
||||
, #{cstmclerCd}
|
||||
, #{dlvylcZip}
|
||||
, #{prefcd}
|
||||
, #{dlvylcAdresDvCd}
|
||||
, #{dlvylcLnbAdres}
|
||||
, #{dlvylcRnmAdres}
|
||||
@@ -461,6 +479,7 @@
|
||||
, SOPMAL_CD
|
||||
, ORDR_INNB
|
||||
, SETLE_AMT
|
||||
, WON_SETLE_AMT
|
||||
, PG_CMPNY_NM
|
||||
, SETLE_TY_CD
|
||||
, PG_INNB
|
||||
@@ -485,6 +504,7 @@
|
||||
, #{sopmalCd}
|
||||
, #{ordrInnb}
|
||||
, #{setleAmt}
|
||||
, #{wonSetleAmt}
|
||||
, #{pgCmpnyNm}
|
||||
, #{setleTyCd}
|
||||
, #{pgInnb}
|
||||
@@ -1280,6 +1300,7 @@ FROM (
|
||||
ELSE FDA.LNB_ADRES
|
||||
END ADRES
|
||||
, FDA.DTL_ADRES
|
||||
, FDA.CSTMCLER_CD
|
||||
FROM GC_DELIVERY_ADDRESS FDA
|
||||
WHERE FDA.MBR_INNB = #{mbrInnb}
|
||||
AND FDA.MBR_DV_CD = #{mbrDvCd}
|
||||
@@ -2673,6 +2694,14 @@ FROM (
|
||||
AND FO.SOPMAL_CD = #{sopmalCd}
|
||||
</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원 상품 포함시 짜투리 업데이트 ( 장바구니, 마일리지, 애누리 ) -->
|
||||
<update id="updateOrdrItemOptnRestAmtUpdt">
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
THEN NOW() BETWEEN GS.EXPSR_BGN_DT AND GS.EXPSR_END_DT
|
||||
ELSE 1=1
|
||||
END
|
||||
AND GS.USE_AT = 'Y'
|
||||
]]>
|
||||
</select>
|
||||
|
||||
@@ -60,6 +61,15 @@
|
||||
, GS.MBL_SUBSVC_DC_PC_SAME_AT /*모바일 구독서비스 설명 PC동일여부*/
|
||||
, GS.LAST_PROCS_ODR /*최종차수*/
|
||||
, 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
|
||||
WHERE GS.SOPMAL_CD = #{sopmalCd}
|
||||
AND GS.SUBSVC_INNB = #{subsvcInnb}
|
||||
@@ -74,60 +84,61 @@
|
||||
, CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
||||
FROM (
|
||||
SELECT COUNT(*) OVER() AS TOT_CNT
|
||||
, GC.SUBSVC_INNB
|
||||
, GC.SOPMAL_CD
|
||||
, GC.SUBSVC_NM
|
||||
, GC.SUBSVC_GNR
|
||||
, GC.SUBSVC_GNR_NM
|
||||
, GC.DLVY_CNT
|
||||
, GC.INVNTRY_QY
|
||||
, GC.INVNTRY_QY - GC.USEFUL_INVNTRY_QY AS AVAIL_QT /*가용제고*/
|
||||
, GC.SUBSVC_STTUS_CD
|
||||
, FN_GET_COMMCODE_NAME('GOODS_STTUS', GC.SUBSVC_STTUS_CD) AS SUBSVC_STTUS /*구독서비스 상태*/
|
||||
, FN_GET_COMMCODE_NAME('EXPSR_DV', GC.EXPSR_DV_CD) AS EXPSR_DV /*노출구분*/
|
||||
, GC.SUBSVC_CT /*구독료*/
|
||||
, GC.TME_DLVY_AMT /*1회배송비*/
|
||||
, GC.CNSMRPRIC /*소비자가*/
|
||||
, GC.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT) as SELPRIC /*실판매가=구독료+(1회배송비X배송횟수)*/
|
||||
, GC.IMG /*섬네일 이미지*/
|
||||
, GC.LAST_PROCS_ODR /*최종차수*/
|
||||
FROM GC_SUBSVC GC
|
||||
WHERE GC.USE_AT = 'Y'
|
||||
AND GC.SOPMAL_CD = #{sopmalCd}
|
||||
, GS.SUBSVC_INNB
|
||||
, GS.SOPMAL_CD
|
||||
, CONCAT(GS.SUBSVC_NM, ' (', GS.SUBSVC_GNR_NM, ')') AS SUBSVC_CONCAT_NM
|
||||
, GS.SUBSVC_NM
|
||||
, GS.SUBSVC_GNR
|
||||
, GS.SUBSVC_GNR_NM
|
||||
, GS.DLVY_CNT
|
||||
, GS.INVNTRY_QY
|
||||
, GS.INVNTRY_QY - GS.USEFUL_INVNTRY_QY AS AVAIL_QT /*가용제고*/
|
||||
, GS.SUBSVC_STTUS_CD
|
||||
, FN_GET_COMMCODE_NAME('GOODS_STTUS', GS.SUBSVC_STTUS_CD) AS SUBSVC_STTUS /*구독서비스 상태*/
|
||||
, FN_GET_COMMCODE_NAME('EXPSR_DV', GS.EXPSR_DV_CD) AS EXPSR_DV /*노출구분*/
|
||||
, GS.SUBSVC_CT /*구독료*/
|
||||
, GS.TME_DLVY_AMT /*1회배송비*/
|
||||
, GS.CNSMRPRIC /*소비자가*/
|
||||
, GS.SUBSVC_CT + (TME_DLVY_AMT * DLVY_CNT) as SELPRIC /*실판매가=구독료+(1회배송비X배송횟수)*/
|
||||
, GS.IMG /*섬네일 이미지*/
|
||||
, GS.LAST_PROCS_ODR /*최종차수*/
|
||||
FROM GC_SUBSVC GS
|
||||
WHERE GS.USE_AT = 'Y'
|
||||
AND GS.SOPMAL_CD = #{sopmalCd}
|
||||
<if test="srchSelSubsvcNm != null and srchSelSubsvcNm != ''">
|
||||
AND GC.SUBSVC_NM = #{srchSelSubsvcNm} /*구독서비스 명*/
|
||||
AND GS.SUBSVC_NM = #{srchSelSubsvcNm} /*구독서비스 명*/
|
||||
</if>
|
||||
<if test="srchSelSubsvcGnr != null and srchSelSubsvcGnr != ''">
|
||||
AND GC.SUBSVC_GNR = #{srchSelSubsvcGnr} /*기수*/
|
||||
AND GS.SUBSVC_GNR = #{srchSelSubsvcGnr} /*기수*/
|
||||
</if>
|
||||
<if test="srchSubsvcNm != null and srchSubsvcNm != ''">
|
||||
AND GC.SUBSVC_NM LIKE CONCAT('%',#{srchSubsvcNm},'%') /*구독서비스 명*/
|
||||
AND GS.SUBSVC_NM LIKE CONCAT('%',#{srchSubsvcNm},'%') /*구독서비스 명*/
|
||||
</if>
|
||||
<if test="srchSubsvcGnrNm != null and srchSubsvcGnrNm != ''">
|
||||
AND GC.SUBSVC_GNR_NM LIKE CONCAT('%',#{srchSubsvcGnrNm},'%') /*기수명*/
|
||||
AND GS.SUBSVC_GNR_NM LIKE CONCAT('%',#{srchSubsvcGnrNm},'%') /*기수명*/
|
||||
</if>
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchArrSubsvcSttusCd)">
|
||||
/*판매상태*/
|
||||
AND GC.SUBSVC_STTUS_CD IN
|
||||
AND GS.SUBSVC_STTUS_CD IN
|
||||
<foreach collection="srchArrSubsvcSttusCd" item="subsvcSttusCd" open="(" close=")" separator=",">
|
||||
#{subsvcSttusCd}
|
||||
</foreach>
|
||||
</when>
|
||||
</choose>
|
||||
<if test="srchExpsrDvCd != null and srchExpsrDvCd != ''">
|
||||
AND GC.EXPSR_DV_CD = #{srchExpsrDvCd} /*노출여부*/
|
||||
AND GS.EXPSR_DV_CD = #{srchExpsrDvCd} /*노출여부*/
|
||||
</if>
|
||||
ORDER BY
|
||||
<choose>
|
||||
<when test="sortDv == 'subsvcGnrAsc'">
|
||||
GC.SUBSVC_NM ASC, SUBSVC_GNR ASC,
|
||||
GS.SUBSVC_NM ASC, SUBSVC_GNR ASC,
|
||||
</when>
|
||||
<otherwise>
|
||||
GC.SUBSVC_NM DESC, SUBSVC_GNR DESC,
|
||||
GS.SUBSVC_NM DESC, SUBSVC_GNR DESC,
|
||||
</otherwise>
|
||||
</choose>
|
||||
GC.SUBSVC_INNB ASC
|
||||
GS.SUBSVC_INNB ASC
|
||||
) TB
|
||||
WHERE (@ROWNUM:=0)=0
|
||||
) PV
|
||||
@@ -190,6 +201,9 @@
|
||||
, CNSMRPRIC = REPLACE(#{cnsmrpric},',','')
|
||||
, INVNTRY_QY = REPLACE(#{invntryQy},',','')
|
||||
, INVNTRY_POLICY_CD = #{invntryPolicyCd}
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(usefulInvntryQyInit, 'Y')">
|
||||
, USEFUL_INVNTRY_QY = 0
|
||||
</if>
|
||||
, AVLINV_LMTT_QY = #{avlinvLmttQy}
|
||||
, SUBSVC_STTUS_CD = #{subsvcSttusCd}
|
||||
, EXPSR_DV_CD = #{expsrDvCd}
|
||||
|
||||
@@ -744,6 +744,9 @@
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrNm) and mbrNm != ''">
|
||||
MBR_NM = #{mbrNm},
|
||||
</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 != ''">
|
||||
ZIP = #{zip},
|
||||
ADRES_DV = #{adresDv},
|
||||
@@ -3668,9 +3671,11 @@
|
||||
AND GMP.SOPMAL_CD = #{sopmalCd}
|
||||
LEFT JOIN GC_MEMBER_GRAD MG ON GMP.MBR_GRAD_INNB = MG.MBR_GRAD_INNB
|
||||
AND GMP.SOPMAL_CD = MG.SOPMAL_CD
|
||||
AND MG.USE_AT = 'Y'
|
||||
LEFT JOIN GC_MEMBER_GRAD MG_NEXT
|
||||
ON MG.MBR_GRAD_ORDR + 1 = MG_NEXT.MBR_GRAD_ORDR
|
||||
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
|
||||
AND MBR.MBR_INNB = O.MBR_INNB
|
||||
AND O.USE_AT = 'Y'
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<sql id="mbrMlgWhere">
|
||||
<![CDATA[
|
||||
WHERE 1=1
|
||||
AND MLG.ACCMLMNY_AMT != 0
|
||||
]]>
|
||||
<choose>
|
||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrInnb)">
|
||||
|
||||
@@ -683,6 +683,7 @@
|
||||
,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(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="dlivyProcsWhere"/>
|
||||
|
||||
@@ -476,6 +476,9 @@
|
||||
AND FO.ORDRR_MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{mbtlnb}, '-', ''), #{secretKey}))
|
||||
AND FO.MBR_INNB = 0
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchSubsvcAt)">
|
||||
AND FO.SUBSVC_AT = #{srchSubsvcAt}
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<!-- 전체 주문 조회 > 매장 목록 조회 -->
|
||||
@@ -514,7 +517,10 @@
|
||||
, DATE_FORMAT(FO.ORDR_RCEPT_DT, '%Y-%m-%d %H:%i') AS ORDR_RCEPT_DT -- 주문접수일
|
||||
, FO.SLE_ENVRN_CD -- 판매환경코드
|
||||
, FN_GET_COMMCODE_NAME('SLE_ENVRN', FO.SLE_ENVRN_CD) AS SLE_ENVRN_NM
|
||||
, FN_GET_ORDER_GOODS_NAME(FO.SOPMAL_CD, FO.ORDR_INNB) AS GOODS_NM -- 상품명
|
||||
, CASE
|
||||
WHEN FO.SUBSVC_AT = 'Y' THEN CONCAT(GS.SUBSVC_NM,'(', GS.SUBSVC_GNR_NM, ')')
|
||||
ELSE FN_GET_ORDER_GOODS_NAME(FO.SOPMAL_CD, FO.ORDR_INNB)
|
||||
END AS GOODS_NM -- 상품명
|
||||
, FN_GET_ORDER_COUNT(FO.SOPMAL_CD, FO.ORDR_INNB, 'ITEM') AS ITEM_CNT -- 상품 개수
|
||||
, FN_GET_ORDER_COUNT(FO.SOPMAL_CD, FO.ORDR_INNB, 'ORDER') AS ORDER_CNT -- 상품 종수
|
||||
, (
|
||||
@@ -580,6 +586,7 @@
|
||||
END
|
||||
)
|
||||
) BLACK_DV -- 블랙리스트 구분
|
||||
, FO.SUBSVC_AT
|
||||
FROM GC_ORDER FO
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT FM.MBR_INNB
|
||||
@@ -600,6 +607,9 @@
|
||||
LEFT JOIN GC_ORDER_SETLE FOS -- LEFT 로 다시 변경
|
||||
ON FOS.SOPMAL_CD = FO.SOPMAL_CD
|
||||
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'
|
||||
/*AND FO.SUBSVC_AT = 'N'*/
|
||||
AND FOS.ORDR_INNB IS NOT NULL -- GC_ORDER_SETLE 에 데이터가 있을 때 조건
|
||||
@@ -996,6 +1006,7 @@
|
||||
, IFNULL(FOI.MLG_AMT, 0) AS MLG_AMT
|
||||
, IFNULL(FOS.DLVY_AMT, 0) AS DLVY_AMT
|
||||
, IFNULL(FO.RL_SETLE_AMT, 0) AS SETLE_AMT
|
||||
, ROUND(IFNULL(FO.WON_RL_SETLE_AMT, 0)) AS WON_RL_SETLE_AMT
|
||||
FROM (
|
||||
SELECT FOI.SOPMAL_CD
|
||||
, FOI.ORDR_INNB
|
||||
@@ -1096,6 +1107,7 @@
|
||||
, FN_GET_COMMCODE_NAME('ORDR_TY', FO.ORDR_TY_CD) AS ordr_ty_nm
|
||||
, FOI.optn_cd_1
|
||||
, FOSH.dlvy_mssage_cn
|
||||
, FN_GET_COMMCODE_NAME('ORDR_STTUS', FOSH.ORDR_STTUS_CD) AS shipping_sttus_nm
|
||||
FROM GC_ORDER FO
|
||||
INNER JOIN LATERAL (
|
||||
SELECT GOI.SOPMAL_CD
|
||||
@@ -1482,6 +1494,14 @@
|
||||
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
|
||||
, 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
|
||||
INNER JOIN (
|
||||
SELECT FOI.SOPMAL_CD
|
||||
@@ -1650,8 +1670,10 @@
|
||||
, REFUND_ACNT_DPSTR_NM
|
||||
, REFUND_ACNTNB
|
||||
, REFUND_AMT
|
||||
, WON_REFUND_AMT
|
||||
, REFUND_ACCMLMNY_AMT
|
||||
, REFUND_DLVY_AMT
|
||||
, WON_REFUND_DLVY_AMT
|
||||
, MLG_ACCMLMNY_AMT
|
||||
, MLG_ACCMLMNY_VALID_DT
|
||||
, ENURI_REVISN_AMT
|
||||
@@ -1677,6 +1699,7 @@
|
||||
, RETURN_CSTMR_TELNB
|
||||
, RETURN_CSTMR_MBTLNB
|
||||
, RETURN_DLVY_AMT
|
||||
, WON_RETURN_DLVY_AMT
|
||||
, RETURN_DLVY_TRGET_CD
|
||||
, RETURN_DLVY_RSPNSBL_CD
|
||||
, RETURN_DLVY_PYMNT_TY_CD
|
||||
@@ -1714,8 +1737,10 @@
|
||||
, #{refundAcntDpstrNm}
|
||||
, REPLACE(#{refundAcntnb}, '-', '')
|
||||
, #{refundAmt}
|
||||
, ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{refundAmt},0)
|
||||
, #{refundAccmlmnyAmt}
|
||||
, #{refundDlvyAmt}
|
||||
, ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{refundDlvyAmt},0)
|
||||
, #{mlgAccmlmnyAmt}
|
||||
, #{mlgAccmlmnyValidDt}
|
||||
, #{enuriRevisnAmt}
|
||||
@@ -1741,6 +1766,7 @@
|
||||
, HEX(AES_ENCRYPT(REPLACE(#{returnCstmrTelnb}, '-', ''), '1df5be2f7e90ae36'))
|
||||
, HEX(AES_ENCRYPT(REPLACE(#{returnCstmrMbtlnb}, '-', ''), '1df5be2f7e90ae36'))
|
||||
, #{returnDlvyAmt}
|
||||
, ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{returnDlvyAmt},0)
|
||||
, #{returnDlvyTrgetCd}
|
||||
, #{returnDlvyRspnsblCd}
|
||||
, #{returnDlvyPymntTyCd}
|
||||
@@ -1992,6 +2018,71 @@
|
||||
ORDER BY FOS.ORDR_DLVY_INNB ASC
|
||||
</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">
|
||||
<![CDATA[
|
||||
@@ -2233,6 +2324,16 @@
|
||||
]]>
|
||||
</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 GC_ORDER_SHIPPING FOS
|
||||
@@ -2264,6 +2365,7 @@
|
||||
WHERE FOS.SOPMAL_CD = #{sopmalCd}
|
||||
AND FOS.ORDR_INNB = #{ordrInnb}
|
||||
AND FOS.ORDR_DLVY_INNB = #{ordrDlvyInnb}
|
||||
AND FOS.DLVYLC_AREA_CD = #{dlvylcAreaCd}
|
||||
</update>
|
||||
|
||||
<!-- 주문메모 목록 조회 -->
|
||||
@@ -2421,6 +2523,7 @@
|
||||
WHEN FOS.PG_CMPNY_NM = 'kcp' THEN GPL.KCP_MID
|
||||
ELSE GPL.OLD_TOSS_MID
|
||||
END AS MID
|
||||
, ROUND(FOS.WON_SETLE_AMT) AS WON_SETLE_AMT
|
||||
FROM GC_ORDER_SETLE FOS
|
||||
INNER JOIN GC_PAY_LINK GPL
|
||||
ON FOS.SOPMAL_CD = GPL.SOPMAL_CD
|
||||
@@ -3821,6 +3924,7 @@
|
||||
AND FOS.ORDR_INNB = FO.ORDR_INNB
|
||||
WHERE FO.USE_AT = 'Y'
|
||||
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 FO.SOPMAL_CD = #{sopmalCd}
|
||||
AND FO.MBR_DV_CD = #{mbrDvCd}
|
||||
@@ -4177,6 +4281,7 @@
|
||||
AND FC.CART_DV_CD = #{cartDvCd}
|
||||
ORDER BY FC.REGIST_DT DESC
|
||||
</select>
|
||||
|
||||
<!--사용자 > 상품 > 장바구니 목록 > 선물하기,여러곳배송 버튼 활성화 여부 -->
|
||||
<select id="selectBOSpbkGiftMultiDlvyAt" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOSpbkVO" resultType="dataMap">
|
||||
SELECT GS.SOPMAL_CD
|
||||
@@ -4187,6 +4292,14 @@
|
||||
AND GS.SOPMAL_CD= #{sopmalCd}
|
||||
</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
|
||||
@@ -4719,19 +4832,51 @@
|
||||
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
|
||||
, FSG.DLVY_GROUP_DV_CD
|
||||
, ROUND(IFNULL(FSG.DFT_DLVY_AMT, 0), '0') AS DFT_DLVY_AMT
|
||||
, FSG.AMT_CND_USE_AT
|
||||
, ROUND(IFNULL(FSG.AMT_CND_ADIT_AMT, 0), '0') AS AMT_CND_ADIT_AMT
|
||||
, FSG.CNT_CND_USE_AT
|
||||
, ROUND(IFNULL(FSG.CNT_CND_ADIT_AMT, 0), '0') AS CNT_CND_ADIT_AMT
|
||||
, FSG.BUNDLE_DLVY_USE_AT
|
||||
, ROUND(IFNULL(FSG.BUNDLE_DLVY_CND_AMT, 0), '0') AS BUNDLE_DLVY_CND_AMT
|
||||
, FSG.DLVY_AREA_ADIT_AT
|
||||
, ROUND(IFNULL(FSG.AREA_ADIT_DLVY_AMT, 0), '0') AS AREA_ADIT_DLVY_AMT
|
||||
, (CASE
|
||||
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN ROUND(IFNULL(FSG.DFT_DLVY_AMT2, 0), '0')
|
||||
ELSE ROUND(IFNULL(FSG.DFT_DLVY_AMT, 0), '0')
|
||||
END) AS DFT_DLVY_AMT
|
||||
, (CASE
|
||||
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN FSG.AMT_CND_USE_AT2
|
||||
ELSE FSG.AMT_CND_USE_AT
|
||||
END) AS AMT_CND_USE_AT
|
||||
, (CASE
|
||||
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN ROUND(IFNULL(FSG.AMT_CND_ADIT_AMT2, 0), '0')
|
||||
ELSE ROUND(IFNULL(FSG.AMT_CND_ADIT_AMT, 0), '0')
|
||||
END) AS AMT_CND_ADIT_AMT
|
||||
, (CASE
|
||||
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN FSG.CNT_CND_USE_AT2
|
||||
ELSE FSG.CNT_CND_USE_AT
|
||||
END) AS CNT_CND_USE_AT
|
||||
, (CASE
|
||||
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN ROUND(IFNULL(FSG.CNT_CND_ADIT_AMT2, 0), '0')
|
||||
ELSE ROUND(IFNULL(FSG.CNT_CND_ADIT_AMT, 0), '0')
|
||||
END) AS CNT_CND_ADIT_AMT
|
||||
, (CASE
|
||||
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN FSG.BUNDLE_DLVY_USE_AT2
|
||||
ELSE FSG.BUNDLE_DLVY_USE_AT
|
||||
END) AS BUNDLE_DLVY_USE_AT
|
||||
, (CASE
|
||||
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN ROUND(IFNULL(FSG.BUNDLE_DLVY_CND_AMT2, 0), '0')
|
||||
ELSE ROUND(IFNULL(FSG.BUNDLE_DLVY_CND_AMT, 0), '0')
|
||||
END) AS BUNDLE_DLVY_CND_AMT
|
||||
, (CASE
|
||||
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN FSG.DLVY_AREA_ADIT_AT2
|
||||
ELSE FSG.DLVY_AREA_ADIT_AT
|
||||
END) AS DLVY_AREA_ADIT_AT
|
||||
, (CASE
|
||||
WHEN SH.DLVYLC_AREA_CD = 'JP' THEN ROUND(IFNULL(FSG.AREA_ADIT_DLVY_AMT2, 0), '0')
|
||||
ELSE ROUND(IFNULL(FSG.AREA_ADIT_DLVY_AMT, 0), '0')
|
||||
END) AS AREA_ADIT_DLVY_AMT
|
||||
, (CASE
|
||||
WHEN OIOP2.ORDR_QY = (OIOP2.STEP85 + RI.REFUND_QY) THEN ROUND(IFNULL(SH.RL_DLVY_AMT, 0), '0')
|
||||
ELSE 0
|
||||
END) AS REAL_DLVY_AMT
|
||||
, ROUND(IFNULL(SH.RL_DLVY_AMT + SH.DLVY_COUPON_DSCNT_AMT, 0), '0') AS RL_DLVY_AMT
|
||||
, OIOP2.RETURN_DLVY_APPLC_AT
|
||||
, ROUND(IFNULL(OIOP2.RETURN_DLVY_AMT, 0), '0') AS RETURN_DLVY_AMT
|
||||
, ROUND(IFNULL(OIOP2.EXCHNG_DLVY_AMT, 0), '0') AS EXCHNG_DLVY_AMT
|
||||
, SH.DLVYLC_AREA_CD
|
||||
FROM GC_ORDER_ITEM_OPTION OIOP2
|
||||
INNER JOIN GC_ORDER_ITEM OI
|
||||
ON OIOP2.SOPMAL_CD = OI.SOPMAL_CD
|
||||
@@ -4767,7 +4912,9 @@
|
||||
<![CDATA[
|
||||
UPDATE GC_ORDER_REFUND
|
||||
SET RETURN_DLVY_AMT = #{returnDlvyAmt}
|
||||
,REFUND_DLVY_AMT = #{refundDlvyAmt}
|
||||
, 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}
|
||||
, 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}
|
||||
AND ORDER_REFUND_INNB = #{orderRefundInnb}
|
||||
]]>
|
||||
@@ -4861,6 +5008,7 @@
|
||||
<!-- PG로그 가상계좌 검증키 조회 -->
|
||||
<select id="selectPglogVirtualKey" parameterType="dataMap" resultType="dataMap">
|
||||
SELECT ROUND(GOR.RL_SETLE_AMT) AS RL_SETLE_AMT
|
||||
, ROUND(GOR.WON_RL_SETLE_AMT) AS WON_RL_SETLE_AMT
|
||||
, GOR.ORDRR_NM
|
||||
, GOPL.SETLER_NM
|
||||
, GOPL.DELNG_NB
|
||||
@@ -4883,7 +5031,7 @@
|
||||
AND GOR.SOPMAL_CD = GOPL.SOPMAL_CD
|
||||
WHERE GOR.SOPMAL_CD = #{sopmalCd}
|
||||
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
|
||||
LIMIT 1
|
||||
</select>
|
||||
@@ -5093,7 +5241,7 @@
|
||||
<![CDATA[
|
||||
SELECT
|
||||
CASE
|
||||
WHEN O.ORDR_STTUS_CD >= '30' AND O.ORDR_STTUS_CD < '85' AND #{refundTyCd} = '01' THEN 'N'
|
||||
WHEN O.ORDR_STTUS_CD >= '40' AND O.ORDR_STTUS_CD < '85' AND #{refundTyCd} = '01' THEN 'N'
|
||||
ELSE 'Y'
|
||||
END AS CANCEL_POSBLE_AT
|
||||
FROM GC_ORDER O
|
||||
@@ -5288,7 +5436,14 @@
|
||||
<!-- 사용자 > 마이페이지 > 구독서비스 주문/배송 목록 조회 -->
|
||||
<select id="selectMbrSubsvcOrdrList" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrDlvyVO" resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT *
|
||||
SELECT PV.*
|
||||
, (SELECT MAX('구독취소')
|
||||
FROM GC_ORDER_REFUND GOR
|
||||
WHERE GOR.SOPMAL_CD = PV.SOPMAL_CD
|
||||
AND GOR.ORDR_INNB = PV.ORDR_INNB
|
||||
AND GOR.USE_AT = 'Y'
|
||||
AND GOR.REFUND_PROCS_STTUS_CD = '03' /*처리상태:환불완료*/
|
||||
AND GOR.REFUND_TY_CD != '01' /*환불구분:결제취소가 아님*/) AS REFUND_STTUS_NM
|
||||
FROM (
|
||||
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
||||
, TB.*
|
||||
@@ -5418,7 +5573,7 @@
|
||||
AND FOS.ORDR_INNB = FO.ORDR_INNB
|
||||
WHERE FO.USE_AT = 'Y'
|
||||
AND FO.SUBSVC_AT = 'Y' /*구독서비스*/
|
||||
AND ( ( FO.ORDR_STTUS_CD BETWEEN '15' AND '75' ) OR FO.ORDR_STTUS_CD = '95' )
|
||||
AND FO.ORDR_STTUS_CD BETWEEN '15' AND '95'
|
||||
AND FO.SOPMAL_CD = #{sopmalCd}
|
||||
AND FO.MBR_DV_CD = #{mbrDvCd}
|
||||
AND FO.MBR_INNB = #{mbrInnb}
|
||||
@@ -5426,12 +5581,6 @@
|
||||
) TB
|
||||
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)">
|
||||
AND (
|
||||
TB.ORDR_INNB LIKE CONCAT('%', #{srchwrd}, '%') OR
|
||||
@@ -5441,7 +5590,209 @@
|
||||
<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
|
||||
</if>
|
||||
</sql>
|
||||
) PV
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
</select>
|
||||
|
||||
<!-- 사용자 > 주문완료 > 구독서비스 주문 목록 조회 -->
|
||||
<select id="selectOrdrSubsvcDtllList" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrDlvyVO" resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT GO.SOPMAL_CD
|
||||
, GS.IMG AS GOODS_IMG_COURS
|
||||
, GS.SUBSVC_NM AS GOODS_NM
|
||||
, GS.SUBSVC_GNR_NM AS OPTN_NM
|
||||
, ITEM.INPUT_OPTN_TEXT
|
||||
, ITEM.CNT AS ORDR_QY
|
||||
, GS.SUBSVC_INNB AS GOODS_INNB
|
||||
, GO.RL_SETLE_AMT AS SLEPRIC
|
||||
, ITEM.DSCNT_AMT
|
||||
, ROUND((IFNULL(GO.RL_SETLE_AMT, 0) - IFNULL(ITEM.DSCNT_AMT, 0))) AS APPLY_DSCNT_AMT
|
||||
, ITEM.MLG_AMT
|
||||
FROM GC_ORDER GO
|
||||
INNER JOIN GC_SUBSVC GS ON GO.SUBSVC_INNB = GS.SUBSVC_INNB
|
||||
INNER JOIN (
|
||||
SELECT GOI.SOPMAL_CD
|
||||
, GOI.ORDR_INNB
|
||||
, MAX(GOI.GOODS_INNB) AS GOODS_INNB
|
||||
, MAX(GOIO.ORDR_DLVY_INNB) AS ORDR_DLVY_INNB
|
||||
, COUNT(DISTINCT GOI.ORDR_GOODS_INNB) AS CNT
|
||||
, SUM(GOIO.ORDR_QY) AS ORDR_QY
|
||||
, MAX(FN_GET_ORDER_INPUT_OPTN(GOI.SOPMAL_CD, GOI.ORDR_INNB, GOI.ORDR_GOODS_INNB, GOIO.ORDR_GOODS_OPTN_INNB)) AS INPUT_OPTN_TEXT
|
||||
, MAX(GOI.GOODS_IMG_COURS) AS GOODS_IMG_COURS
|
||||
, SUM(FN_GET_ORDER_GOODS_DSCNT_AMT_2(GOI.SOPMAL_CD, GOI.ORDR_GOODS_INNB, GOIO.ORDR_GOODS_OPTN_INNB)) AS DSCNT_AMT
|
||||
, SUM(FN_GET_ORDER_ACCML_MLG_AMT(GOI.SOPMAL_CD, GOI.ORDR_INNB, GOI.ORDR_GOODS_INNB, GOIO.ORDR_GOODS_OPTN_INNB)) AS MLG_AMT
|
||||
FROM GC_ORDER_ITEM GOI
|
||||
INNER JOIN GC_ORDER_ITEM_OPTION GOIO ON GOI.SOPMAL_CD = GOIO.SOPMAL_CD
|
||||
AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB
|
||||
WHERE GOI.SOPMAL_CD = #{sopmalCd}
|
||||
AND GOI.ORDR_INNB = #{ordrInnb}
|
||||
AND GOI.GOODS_KND_CD = '01'
|
||||
) ITEM ON ITEM.SOPMAL_CD = GO.SOPMAL_CD
|
||||
AND ITEM.ORDR_INNB = GO.ORDR_INNB
|
||||
LEFT JOIN GC_ORDER_SETLE GOS ON GOS.SOPMAL_CD = GO.SOPMAL_CD
|
||||
AND GOS.ORDR_INNB = GO.ORDR_INNB
|
||||
WHERE GO.USE_AT = 'Y'
|
||||
AND GO.SUBSVC_AT = 'Y' /*구독서비스*/
|
||||
AND GO.SOPMAL_CD = #{sopmalCd}
|
||||
AND GO.ORDR_INNB = #{ordrInnb}
|
||||
ORDER BY GO.REGIST_DT desc
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 사용자 > 구독서비스 결제 > 구독서비스 주문 상품 목록 조회 -->
|
||||
<select id="selectSubsvcGoodsList" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO" resultType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
|
||||
WITH RECURSIVE seq AS (
|
||||
SELECT 1 AS n
|
||||
UNION ALL
|
||||
SELECT n + 1 FROM seq WHERE n <![CDATA[<]]> 24
|
||||
)
|
||||
SELECT GGO.SOPMAL_CD
|
||||
, #{mbrInnb} AS MBR_INNB
|
||||
, (
|
||||
SELECT GM.MBR_DV_CD
|
||||
FROM GC_MEMBER GM
|
||||
INNER JOIN GC_MEMBER_GRAD_MAPPING GMGM
|
||||
ON GMGM.MBR_INNB = GM.MBR_INNB
|
||||
AND GMGM.MBR_DV_CD = GM.MBR_DV_CD
|
||||
WHERE GM.USE_AT = 'Y'
|
||||
AND GMGM.SOPMAL_CD = #{sopmalCd}
|
||||
AND GMGM.MBR_INNB = #{mbrInnb}
|
||||
) AS MBR_DV_CD
|
||||
, GGO.GOODS_INNB
|
||||
, GS.DFT_GOODS_OPTN_INNB AS GOODS_OPTN_INNB
|
||||
, CAST(#{qy} AS UNSIGNED) AS QY
|
||||
-- , (
|
||||
-- SELECT CONCAT(
|
||||
-- GS.SOPMAL_CD, ',',
|
||||
-- GGO.GOODS_INNB, ',',
|
||||
-- GS.DFT_GOODS_OPTN_INNB, ',',
|
||||
-- GGO.OPTN_NM_1, ',',
|
||||
-- ''#INPUT_OPTN_CN
|
||||
-- )
|
||||
-- ) AS INPUT_OPTN
|
||||
-- , (
|
||||
-- SELECT CONCAT(
|
||||
-- GGO.OPTN_NM_1, ':',
|
||||
-- ''#INPUT_OPTN_CN
|
||||
-- )
|
||||
-- ) AS INPUT_OPTN_TEXT
|
||||
, GG.DLVY_GROUP_INNB
|
||||
, GG.GOODS_STTUS_CD
|
||||
, CASE WHEN GG.GOODS_STTUS_CD='03' AND GG.SEL_STPGE_CUSTOM_WORDS_AT ='Y' AND IFNULl(GG.SEL_STPGE_CUSTOM_WORDS, '')!='' THEN GG.SEL_STPGE_CUSTOM_WORDS
|
||||
ELSE FN_GET_COMMCODE_NAME('GOODS_STTUS', GG.GOODS_STTUS_CD)
|
||||
END AS GOODS_STTUS_NM
|
||||
, GG.GOODS_NM
|
||||
, GGO.OPTN_TY
|
||||
, GGO.OPTN_RELATE_NB
|
||||
, GGO.COMPNB_DSCNT_AT
|
||||
, GGO.SCTN_DSCNT_AT
|
||||
, NULLIF(GGO.OPTN_ESSNTL_AT, '') AS OPTN_ESSNTL_AT
|
||||
, FORMAT(IFNULL(GGO.CNSMRPRIC, 0) * #{qy}, 0) AS SUB_CNSMRPRIC_BY_FORMAT
|
||||
, IFNULL(GGO.CNSMRPRIC, 0) * #{qy} AS SUB_CNSMRPRIC
|
||||
, FORMAT(IFNULL(GGO.CNSMRPRIC, 0), 0) AS CNSMRPRIC_BY_FORMAT
|
||||
, IFNULL(GGO.CNSMRPRIC, 0) AS CNSMRPRIC
|
||||
, FORMAT(IFNULL(GGO.SLEPRIC, 0) * #{qy}, 0) AS SUB_SLEPRIC_BY_FORMAT
|
||||
, IFNULL(GGO.SLEPRIC, 0) * #{qy} AS SUB_SLEPRIC
|
||||
, FORMAT(IFNULL(GGO.SLEPRIC, 0), 0) AS SLEPRIC_BY_FORMAT
|
||||
, IFNULL(GGO.SLEPRIC, 0) AS SLEPRIC
|
||||
, 0 AS DSCNT_AMT
|
||||
, IFNULL(GGO.SLEPRIC, 0) * #{qy} AS DSCNT_APPLY_AMT
|
||||
, CONCAT(GGO.OPTN1, IF(GGO.OPTN2 IS NULL , '', CONCAT('/', GGO.OPTN2))
|
||||
, IF(GGO.OPTN3 IS NULL , '', CONCAT('/', GGO.OPTN3))
|
||||
, IF(GGO.OPTN4 IS NULL , '', CONCAT('/', GGO.OPTN4))) AS OPTN
|
||||
, GGI.IMG AS GOODS_IMG_COURS
|
||||
FROM GC_SUBSVC GS
|
||||
INNER JOIN (
|
||||
SELECT *
|
||||
, CASE WHEN GGO.OPTN_NM_1 != '' AND GGO.OPTN_VAL_1 != ''
|
||||
THEN CONCAT(GGO.OPTN_NM_1,':',GGO.OPTN_VAL_1)
|
||||
END OPTN1
|
||||
, CASE WHEN GGO.OPTN_NM_2 != '' AND GGO.OPTN_VAL_2 != ''
|
||||
THEN CONCAT(GGO.OPTN_NM_2,':',GGO.OPTN_VAL_2)
|
||||
END OPTN2
|
||||
, CASE WHEN GGO.OPTN_NM_3 != '' AND GGO.OPTN_VAL_3 != ''
|
||||
THEN CONCAT(GGO.OPTN_NM_3,':',GGO.OPTN_VAL_3)
|
||||
END OPTN3
|
||||
, CASE WHEN GGO.OPTN_NM_4 != '' AND GGO.OPTN_VAL_4 != ''
|
||||
THEN CONCAT(GGO.OPTN_NM_4,':',GGO.OPTN_VAL_4)
|
||||
END OPTN4 from GC_GOODS_OPTION GGO
|
||||
)GGO
|
||||
ON GGO.SOPMAL_CD = GS.SOPMAL_CD
|
||||
AND GGO.GOODS_OPTN_INNB = GS.DFT_GOODS_OPTN_INNB
|
||||
INNER JOIN GC_GOODS GG
|
||||
ON GGO.SOPMAL_CD = GG.SOPMAL_CD
|
||||
AND GGO.GOODS_INNB = GG.GOODS_INNB
|
||||
JOIN seq
|
||||
ON seq.n <![CDATA[<=]]> GS.SUB_PD
|
||||
LEFT JOIN GC_GOODS_IMAGE GGI ON GG.SOPMAL_CD = GGI.SOPMAL_CD
|
||||
AND GG.GOODS_INNB = GGI.GOODS_INNB
|
||||
AND GGI.IMG_KND = '03'
|
||||
AND GGI.CUT_NB = 1
|
||||
WHERE GS.SOPMAL_CD = #{sopmalCd}
|
||||
AND GS.SUBSVC_INNB = #{subsvcInnb}
|
||||
</select>
|
||||
|
||||
<!-- 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update -->
|
||||
<update id="updateBOWonRefundAmt" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrRefundVO">
|
||||
<![CDATA[
|
||||
WITH BF AS (SELECT MAX(O.WON_RL_SETLE_AMT) - IFNULL(SUM(IFNULL(GOR2.WON_REFUND_AMT,0))+SUM(IFNULL(GOR2.WON_REFUND_DLVY_AMT,0)),0) AS WON_REST_AMT
|
||||
FROM GC_ORDER O
|
||||
LEFT OUTER JOIN GC_ORDER_REFUND GOR2
|
||||
ON GOR2.SOPMAL_CD = O.SOPMAL_CD
|
||||
AND GOR2.ORDR_INNB = O.ORDR_INNB
|
||||
AND GOR2.USE_AT = 'Y'
|
||||
AND GOR2.REFUND_PROCS_STTUS_CD = '03'
|
||||
AND GOR2.ORDER_REFUND_INNB != #{orderRefundInnb}
|
||||
WHERE O.SOPMAL_CD = #{sopmalCd}
|
||||
AND O.ORDR_INNB = #{ordrInnb}
|
||||
)
|
||||
UPDATE GC_ORDER_REFUND
|
||||
SET WON_REFUND_AMT = (CASE
|
||||
WHEN WON_REFUND_AMT + WON_REFUND_DLVY_AMT > (SELECT WON_REST_AMT FROM BF) THEN (SELECT WON_REST_AMT FROM BF) - WON_REFUND_DLVY_AMT
|
||||
ELSE WON_REFUND_AMT
|
||||
END)
|
||||
, UPDT_DT = NOW()
|
||||
WHERE SOPMAL_CD = #{sopmalCd}
|
||||
AND ORDER_REFUND_INNB = #{orderRefundInnb}
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<!--
|
||||
결제취소 시 구독서비스 환불금액 조회
|
||||
계산식 : 전체결제금액 - 전체배송비 - 발송및취소된(35~85)상품금액
|
||||
-->
|
||||
<select id="selectSubsvcRefundAmt" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrRefundVO" resultType="java.lang.Integer">
|
||||
SELECT (MAX(O.RL_SETLE_AMT) - SUM(GOS.RL_DLVY_AMT) - SUM(CASE
|
||||
WHEN GOIO.ORDR_STTUS_CD BETWEEN 35 AND 85 THEN (GOIO.SLEPRIC * GOIO.ORDR_QY)
|
||||
ELSE 0
|
||||
END)
|
||||
) AS REFUND_AMT
|
||||
FROM GC_ORDER O
|
||||
INNER JOIN GC_ORDER_SHIPPING GOS
|
||||
ON GOS.SOPMAL_CD = O.SOPMAL_CD
|
||||
AND GOS.ORDR_INNB = O.ORDR_INNB
|
||||
AND GOS.USE_AT = 'Y'
|
||||
INNER JOIN GC_ORDER_ITEM GOI
|
||||
ON GOI.SOPMAL_CD = O.SOPMAL_CD
|
||||
AND GOI.ORDR_INNB = O.ORDR_INNB
|
||||
INNER JOIN GC_ORDER_ITEM_OPTION GOIO
|
||||
ON GOIO.SOPMAL_CD = GOI.SOPMAL_CD
|
||||
AND GOIO.ORDR_GOODS_INNB = GOI.ORDR_GOODS_INNB
|
||||
AND GOIO.ORDR_DLVY_INNB = GOS.ORDR_DLVY_INNB
|
||||
WHERE O.SOPMAL_CD = #{sopmalCd}
|
||||
AND O.ORDR_INNB = #{ordrInnb}
|
||||
AND O.SUBSVC_AT = 'Y'
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectKiwoomPgApiLog"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO"
|
||||
resultType="dataMap">
|
||||
SELECT GOPAL.RSLT_PARAM FROM GC_ORDER_PG_API_LOG GOPAL
|
||||
WHERE GOPAL.SOPMAL_CD = #{sopmalCd}
|
||||
AND GOPAL.ORDR_INNB = #{ordrInnb}
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
|
||||
@@ -326,12 +326,11 @@
|
||||
<sql id="mbrRefundListWhere">
|
||||
<![CDATA[
|
||||
WHERE 1=1
|
||||
]]>
|
||||
<![CDATA[
|
||||
AND RE.SOPMAL_CD = #{sopmalCd}
|
||||
AND O.MBR_DV_CD = #{mbrDvCd}
|
||||
AND O.MBR_INNB = #{mbrInnb}
|
||||
AND RE.USE_AT = 'Y'
|
||||
AND RE.REFUND_PROCS_STTUS_CD = '03' /*환불완료*/
|
||||
]]>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchwrd)">
|
||||
AND (
|
||||
@@ -364,6 +363,7 @@
|
||||
INNER JOIN GC_ORDER O
|
||||
ON RE.SOPMAL_CD = O.SOPMAL_CD -- 쇼핑몰 코드
|
||||
AND RE.ORDR_INNB = O.ORDR_INNB -- 주문 고유번호
|
||||
AND O.SUBSVC_AT = 'N' /*구독상품 제외*/
|
||||
]]>
|
||||
</sql>
|
||||
|
||||
@@ -570,8 +570,10 @@
|
||||
RE.REFUND_ACNT_DPSTR_NM,
|
||||
RE.REFUND_ACNTNB,
|
||||
RE.REFUND_AMT,
|
||||
RE.WON_REFUND_AMT,
|
||||
RE.REFUND_ACCMLMNY_AMT,
|
||||
RE.REFUND_DLVY_AMT,
|
||||
RE.WON_REFUND_DLVY_AMT,
|
||||
RE.MLG_ACCMLMNY_AMT,
|
||||
RE.MLG_ACCMLMNY_VALID_DT,
|
||||
RE.ENURI_REVISN_AMT,
|
||||
@@ -597,6 +599,7 @@
|
||||
IFNULL(REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(RE.RETURN_CSTMR_MBTLNB) , '1df5be2f7e90ae36') AS CHAR(50)), '(.{3})(.{4})(.{4})', '$1-$2-$3'), '') AS RETURN_CSTMR_MBTLNB,
|
||||
IFNULL(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.WON_RETURN_DLVY_AMT), 0) AS WON_RETURN_DLVY_AMT,
|
||||
RE.RETURN_DLVY_TRGET_CD,
|
||||
RE.RETURN_DLVY_RSPNSBL_CD,
|
||||
RE.RETURN_DLVY_PYMNT_TY_CD,
|
||||
@@ -842,7 +845,7 @@
|
||||
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.DLVY_AMT_REFUND_AMT, 0), 0)
|
||||
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN GREATEST(RE.REFUND_AMT - IFNULL(RE.RETURN_DLVY_AMT, 0), 0)
|
||||
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.REFUND_AMT + IFNULL(RE.REFUND_DLVY_AMT, 0), 0)
|
||||
END
|
||||
ELSE
|
||||
@@ -851,9 +854,45 @@
|
||||
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.REFUND_AMT + IFNULL(RE.REFUND_DLVY_AMT, 0), 0)
|
||||
END
|
||||
END
|
||||
END + (REI.REFUND_MLG_AMT + REI.REFUND_MLG_RMNDR_AMT) + (REI.REFUND_CASH_AMT + REI.REFUND_CASH_RMNDR_AMT)))
|
||||
END + (REI.REFUND_MLG_AMT + REI.REFUND_MLG_RMNDR_AMT) + (REI.REFUND_CASH_AMT + REI.REFUND_CASH_RMNDR_AMT)+ IFNULL((REI.REFUND_GOODS_COUPON_UNIT_AMT + REI.REFUND_GOODS_COUPON_REST_AMT), 0) + IFNULL((REI.REFUND_CART_COUPON_UNIT_AMT + REI.REFUND_CART_COUPON_REST_AMT), 0) ))
|
||||
, 0) AS RL_REFUND_AMT -- 마일리지, 배송비 제외한 실 환불 금액
|
||||
, 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
|
||||
WHEN RE.REFUND_TY_CD = '01' THEN 0
|
||||
WHEN RE.REFUND_TY_CD = '02' THEN
|
||||
@@ -873,6 +912,8 @@
|
||||
))
|
||||
, 0) AS RL_DLVY_AMT_REFUND_AMT -- 반품 배송비
|
||||
, 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
|
||||
, REI.ORDER_REFUND_INNB
|
||||
, ROUND(SUM(REI.GOODS_REFUND_AMT)) AS REFUND_AMT -- * REI.REFUND_QY
|
||||
@@ -1026,7 +1067,8 @@
|
||||
<![CDATA[RETURN_CSTMR_MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{returnCstmrMbtlnb}, '-', ''), '1df5be2f7e90ae36')),]]>
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(returnDlvyAmt)">
|
||||
<![CDATA[RETURN_DLVY_AMT = REPLACE(#{returnDlvyAmt}, ',', ''),]]>
|
||||
RETURN_DLVY_AMT = REPLACE(#{returnDlvyAmt}, ',', ''),
|
||||
WON_RETURN_DLVY_AMT = ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * REPLACE(#{returnDlvyAmt}, ',', ''), 0) ,
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(returnDlvyRspnsblCd)">
|
||||
<![CDATA[RETURN_DLVY_RSPNSBL_CD = #{returnDlvyRspnsblCd},]]>
|
||||
@@ -1102,11 +1144,20 @@
|
||||
</when>
|
||||
</choose>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dlvyAmtRefundAmt)">
|
||||
<![CDATA[DLVY_AMT_REFUND_AMT = #{dlvyAmtRefundAmt},]]>
|
||||
DLVY_AMT_REFUND_AMT = #{dlvyAmtRefundAmt},
|
||||
WON_DLVY_AMT_REFUND_AMT = ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{dlvyAmtRefundAmt}, 0),
|
||||
</if>
|
||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(refundAmt)">
|
||||
<![CDATA[REFUND_AMT = #{refundAmt},]]>
|
||||
REFUND_AMT = #{refundAmt},
|
||||
</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},
|
||||
UPDT_DT = SYSDATE()
|
||||
<![CDATA[
|
||||
@@ -1304,8 +1355,10 @@
|
||||
RE.REFUND_ACNT_DPSTR_NM,
|
||||
RE.REFUND_ACNTNB,
|
||||
ROUND(RE.REFUND_AMT) AS REFUND_AMT,
|
||||
ROUND(RE.WON_REFUND_AMT) AS WON_REFUND_AMT,
|
||||
RE.REFUND_ACCMLMNY_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_VALID_DT,
|
||||
RE.ENURI_REVISN_AMT,
|
||||
@@ -1326,6 +1379,7 @@
|
||||
REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(RE.RETURN_CSTMR_TELNB), '1df5be2f7e90ae36') AS CHAR(50)), '(.{3})(.{4})(.{4})', '$1-$2-$3') AS RETURN_CSTMR_TELNB,
|
||||
REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(RE.RETURN_CSTMR_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 * O.BUY_RATE) AS WON_RETURN_DLVY_AMT,
|
||||
RE.RETURN_DLVY_TRGET_CD,
|
||||
RE.RETURN_DLVY_RSPNSBL_CD,
|
||||
RE.RETURN_DLVY_PYMNT_TY_CD,
|
||||
@@ -1345,7 +1399,10 @@
|
||||
RE.REGIST_DT,
|
||||
RE.UPDT_DT,
|
||||
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
|
||||
GC_ORDER_REFUND RE
|
||||
INNER JOIN GC_ORDER O ON RE.SOPMAL_CD = O.SOPMAL_CD
|
||||
@@ -1496,6 +1553,7 @@
|
||||
,ST.SOPMAL_CD
|
||||
,ST.ORDR_INNB
|
||||
,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_INNB -- pg고유번호
|
||||
,ST.SETLE_TY_CD
|
||||
@@ -1529,28 +1587,52 @@
|
||||
<!-- 주문 환불 총 금액 -->
|
||||
<select id="selectBOORderRefundAmtSumInqire"
|
||||
parameterType="com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndVO"
|
||||
resultType="Integer">
|
||||
resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
IFNULL((
|
||||
SELECT ROUND(
|
||||
SUM(
|
||||
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 GREATEST(RE.REFUND_AMT - IFNULL(RE.DLVY_AMT_REFUND_AMT, 0), 0)
|
||||
ELSE RE.REFUND_AMT
|
||||
WHEN RE.RETURN_DLVY_PYMNT_TY_CD = '02' THEN
|
||||
CASE
|
||||
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN GREATEST(RE.REFUND_AMT - IFNULL(RE.DLVY_AMT_REFUND_AMT, 0), 0)
|
||||
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.REFUND_AMT + IFNULL(RE.REFUND_DLVY_AMT, 0), 0)
|
||||
END
|
||||
ELSE
|
||||
CASE
|
||||
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN RE.REFUND_AMT
|
||||
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.REFUND_AMT + IFNULL(RE.REFUND_DLVY_AMT, 0), 0)
|
||||
END
|
||||
END
|
||||
), 0)
|
||||
END
|
||||
), 0) AS ORDER_REFUND_AMT_SUM
|
||||
, ROUND(
|
||||
SUM(
|
||||
CASE
|
||||
WHEN RE.REFUND_TY_CD = '01' THEN RE.WON_REFUND_AMT + RE.WON_REFUND_DLVY_AMT
|
||||
WHEN RE.REFUND_TY_CD = '02' THEN
|
||||
CASE
|
||||
WHEN RE.RETURN_DLVY_PYMNT_TY_CD = '02' THEN
|
||||
CASE
|
||||
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN GREATEST(RE.WON_REFUND_AMT - IFNULL(RE.WON_DLVY_AMT_REFUND_AMT, 0), 0)
|
||||
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.WON_REFUND_AMT + IFNULL(RE.WON_REFUND_DLVY_AMT, 0), 0)
|
||||
END
|
||||
ELSE
|
||||
CASE
|
||||
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '01' THEN RE.WON_REFUND_AMT
|
||||
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.WON_REFUND_AMT + IFNULL(RE.WON_REFUND_DLVY_AMT, 0), 0)
|
||||
END
|
||||
END
|
||||
END
|
||||
), 0) AS WON_ORDER_REFUND_AMT_SUM
|
||||
FROM GC_ORDER_REFUND RE
|
||||
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
|
||||
), 0) AS ORDER_REFUND_AMT_SUM
|
||||
]]>
|
||||
</select>
|
||||
|
||||
@@ -1707,6 +1789,9 @@
|
||||
,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
|
||||
,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
|
||||
INNER JOIN GC_ORDER_REFUND PRE ON PRI.SOPMAL_CD = PRE.SOPMAL_CD
|
||||
AND PRI.ORDER_REFUND_INNB = PRE.ORDER_REFUND_INNB
|
||||
|
||||
@@ -10,6 +10,9 @@ secured:
|
||||
- /sopmal/mpage/bnef/**
|
||||
- /sopmal/mpage/mbr/**
|
||||
- /sopmal/bnft/**
|
||||
- /sopmal/ordr/selectSpbk
|
||||
- /sopmal/ordr/selectMbrPurchsForm
|
||||
- /sopmal/ordr/selectSubsvcPurchsForm
|
||||
admin:
|
||||
anonmymous:
|
||||
# 로그인 없이 접근가능한 uri없음
|
||||
|
||||
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -39,6 +39,20 @@ const fn_save_dftDlvylcAt = function (msg, adbkInnb) {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**********************************************
|
||||
리턴 formId 세팅
|
||||
***********************************************/
|
||||
let formIdSave;
|
||||
const fn_set_formId = function (formId) {
|
||||
if (formId !== ''){
|
||||
formIdSave = formId;
|
||||
} else {
|
||||
formId = formIdSave;
|
||||
}
|
||||
|
||||
return formId;
|
||||
}
|
||||
/**********************************************
|
||||
배송지 관리 팝업 ()
|
||||
***********************************************/
|
||||
@@ -46,7 +60,9 @@ const fn_move_dlvylc_manage_pop = function (pageIndex,callback, formId = '') {
|
||||
if (callback == undefined) {
|
||||
callback = 'fn_set_dlvylc';
|
||||
}
|
||||
formId = fn_set_formId(formId);
|
||||
console.log("배송지 관리 팝업 : ", formId);
|
||||
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/sopmal/mpage/mbr/selectDlvylcManagePopup',
|
||||
@@ -77,7 +93,9 @@ const fn_move_dlvylc_manage_full = function (pageIndex, callback, formId = '') {
|
||||
if (callback == undefined) {
|
||||
callback = 'fn_set_dlvylc';
|
||||
}
|
||||
formId = fn_set_formId(formId);
|
||||
console.log("모바일 배송지 팝업 formId : ", formId);
|
||||
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/sopmal/mpage/mbr/selectDlvylcManagePopup',
|
||||
|
||||
@@ -3512,7 +3512,10 @@ gap-0 {
|
||||
height: 20px;
|
||||
padding: 0 8px;
|
||||
border-radius: 40px;
|
||||
background-color: #b1b6b9;
|
||||
/*background-color: #b1b6b9;*/
|
||||
color: #5c7cfa;
|
||||
background-color: #fcfdff;
|
||||
border: 1px solid #5c7cfa;
|
||||
font-weight: 500;
|
||||
}
|
||||
.product-badge.new {
|
||||
|
||||
@@ -72,6 +72,20 @@ const fn_select_recentDlvylcList = function (pageIndex, ordering) {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**********************************************
|
||||
리턴 formId 세팅
|
||||
***********************************************/
|
||||
let formIdSave;
|
||||
const fn_set_formId = function (formId) {
|
||||
if (formId !== ''){
|
||||
formIdSave = formId;
|
||||
} else {
|
||||
formId = formIdSave;
|
||||
}
|
||||
|
||||
return formId;
|
||||
}
|
||||
/**********************************************
|
||||
배송지 관리 팝업 (처음 호출 할 때)
|
||||
***********************************************/
|
||||
@@ -82,6 +96,8 @@ const fn_move_dlvylc_manage_pop = function (pageIndex, mbrInnb, mbrDvCd, callbac
|
||||
if (callback == undefined) {
|
||||
callback = fn_set_dlvylc;
|
||||
}
|
||||
formId = fn_set_formId(formId);
|
||||
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/crm/dlvylc/selectRpuseDlvylcListInqire',
|
||||
|
||||
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -775,7 +775,10 @@ caption {
|
||||
height: 18px;
|
||||
padding: 0 8px;
|
||||
border-radius: 40px;
|
||||
background-color: #b1b6b9;
|
||||
/*background-color: #b1b6b9;*/
|
||||
color: #5c7cfa;
|
||||
background-color: #fcfdff;
|
||||
border: 1px solid #5c7cfa;
|
||||
font-weight: 500;
|
||||
}
|
||||
.product-badge.new {
|
||||
@@ -10239,6 +10242,12 @@ body {
|
||||
font-weight: 400;
|
||||
color: #495057;
|
||||
}
|
||||
.deliveryInfo__cstmclerCd {
|
||||
margin-bottom: 10px;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #495057;
|
||||
}
|
||||
.deliveryInfo__message {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
|
||||
@@ -554,7 +554,10 @@ caption {
|
||||
height: 20px;
|
||||
padding: 0 8px;
|
||||
border-radius: 40px;
|
||||
background-color: #b1b6b9;
|
||||
/*background-color: #b1b6b9;*/
|
||||
color: #5c7cfa;
|
||||
background-color: #fcfdff;
|
||||
border: 1px solid #5c7cfa;
|
||||
font-weight: 500;
|
||||
}
|
||||
.product-badge.new {
|
||||
@@ -4634,6 +4637,12 @@ CORE STYLES ABOVE - NO TOUCHY
|
||||
position: relative;
|
||||
margin-bottom: 56px;
|
||||
}
|
||||
.sub-right-content__section__btn {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.sub-right-content__halfSection {
|
||||
position: relative;
|
||||
margin-bottom: 56px;
|
||||
|
||||
@@ -3512,7 +3512,10 @@ gap-0 {
|
||||
height: 20px;
|
||||
padding: 0 8px;
|
||||
border-radius: 40px;
|
||||
background-color: #b1b6b9;
|
||||
/*background-color: #b1b6b9;*/
|
||||
color: #5c7cfa;
|
||||
background-color: #fcfdff;
|
||||
border: 1px solid #5c7cfa;
|
||||
font-weight: 500;
|
||||
}
|
||||
.product-badge.new {
|
||||
|
||||
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -72,6 +72,20 @@ const fn_select_recentDlvylcList = function (pageIndex, ordering) {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**********************************************
|
||||
리턴 formId 세팅
|
||||
***********************************************/
|
||||
let formIdSave;
|
||||
const fn_set_formId = function (formId) {
|
||||
if (formId !== ''){
|
||||
formIdSave = formId;
|
||||
} else {
|
||||
formId = formIdSave;
|
||||
}
|
||||
|
||||
return formId;
|
||||
}
|
||||
/**********************************************
|
||||
배송지 관리 팝업 (처음 호출 할 때)
|
||||
***********************************************/
|
||||
@@ -82,6 +96,8 @@ const fn_move_dlvylc_manage_pop = function (pageIndex, mbrInnb, mbrDvCd, callbac
|
||||
if (callback == undefined) {
|
||||
callback = fn_set_dlvylc;
|
||||
}
|
||||
formId = fn_set_formId(formId);
|
||||
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/crm/dlvylc/selectRpuseDlvylcListInqire',
|
||||
|
||||
@@ -784,7 +784,10 @@ caption {
|
||||
height: 18px;
|
||||
padding: 0 8px;
|
||||
border-radius: 40px;
|
||||
background-color: #b1b6b9;
|
||||
/*background-color: #b1b6b9;*/
|
||||
color: #5c7cfa;
|
||||
background-color: #fcfdff;
|
||||
border: 1px solid #5c7cfa;
|
||||
font-weight: 500;
|
||||
}
|
||||
.product-badge.new {
|
||||
|
||||
BIN
src/main/resources/static/mobile/images/쿠폰이미지99.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
@@ -554,7 +554,10 @@ caption {
|
||||
height: 20px;
|
||||
padding: 0 8px;
|
||||
border-radius: 40px;
|
||||
background-color: #b1b6b9;
|
||||
/*background-color: #b1b6b9;*/
|
||||
color: #5c7cfa;
|
||||
background-color: #fcfdff;
|
||||
border: 1px solid #5c7cfa;
|
||||
font-weight: 500;
|
||||
}
|
||||
.product-badge.new {
|
||||
@@ -1626,6 +1629,19 @@ caption {
|
||||
fill: #228be6;
|
||||
opacity: 0.9;
|
||||
}
|
||||
.shipping-apply-btn {
|
||||
background-color: #e0e4e5;
|
||||
color: #252521;
|
||||
border: 1px solid #e0e4e5;
|
||||
padding: 6px 14px;
|
||||
border-radius: 4px;
|
||||
margin-left: 4px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.shipping-apply-btn:hover {
|
||||
background-color: #d8ddde;
|
||||
}
|
||||
|
||||
.shipping-modify-btn {
|
||||
background-color: #ffffff;
|
||||
color: #252521;
|
||||
@@ -4638,6 +4654,12 @@ CORE STYLES ABOVE - NO TOUCHY
|
||||
position: relative;
|
||||
margin-bottom: 56px;
|
||||
}
|
||||
.sub-right-content__section__btn {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.sub-right-content__halfSection {
|
||||
position: relative;
|
||||
margin-bottom: 56px;
|
||||
@@ -7545,7 +7567,7 @@ main {
|
||||
}
|
||||
.priceSum__inner {
|
||||
display: flex;
|
||||
gap: 24px;
|
||||
gap: 18px;
|
||||
align-items: center;
|
||||
}
|
||||
.priceSum__item {
|
||||
|
||||
BIN
src/main/resources/static/pc/images/쿠폰이미지99.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
@@ -775,7 +775,10 @@ caption {
|
||||
height: 18px;
|
||||
padding: 0 8px;
|
||||
border-radius: 40px;
|
||||
background-color: #b1b6b9;
|
||||
/*background-color: #b1b6b9;*/
|
||||
color: #5c7cfa;
|
||||
background-color: #fcfdff;
|
||||
border: 1px solid #5c7cfa;
|
||||
font-weight: 500;
|
||||
}
|
||||
.product-badge.new {
|
||||
@@ -10239,6 +10242,12 @@ body {
|
||||
font-weight: 400;
|
||||
color: #495057;
|
||||
}
|
||||
.deliveryInfo__cstmclerCd {
|
||||
margin-bottom: 10px;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #495057;
|
||||
}
|
||||
.deliveryInfo__message {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
|
||||
@@ -554,7 +554,10 @@ caption {
|
||||
height: 20px;
|
||||
padding: 0 8px;
|
||||
border-radius: 40px;
|
||||
background-color: #b1b6b9;
|
||||
/*background-color: #b1b6b9;*/
|
||||
color: #5c7cfa;
|
||||
background-color: #fcfdff;
|
||||
border: 1px solid #5c7cfa;
|
||||
font-weight: 500;
|
||||
}
|
||||
.product-badge.new {
|
||||
@@ -1627,6 +1630,19 @@ caption {
|
||||
fill: #228be6;
|
||||
opacity: 0.9;
|
||||
}
|
||||
.shipping-apply-btn {
|
||||
background-color: #e0e4e5;
|
||||
color: #252521;
|
||||
border: 1px solid #e0e4e5;
|
||||
padding: 6px 14px;
|
||||
border-radius: 4px;
|
||||
margin-left: 4px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.shipping-apply-btn:hover {
|
||||
background-color: #d8ddde;
|
||||
}
|
||||
|
||||
.shipping-modify-btn {
|
||||
background-color: #ffffff;
|
||||
color: #252521;
|
||||
@@ -4634,6 +4650,12 @@ CORE STYLES ABOVE - NO TOUCHY
|
||||
position: relative;
|
||||
margin-bottom: 56px;
|
||||
}
|
||||
.sub-right-content__section__btn {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.sub-right-content__halfSection {
|
||||
position: relative;
|
||||
margin-bottom: 56px;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>통합관리자</title>
|
||||
<!--<title>통합관리자</title>-->
|
||||
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="/admin/css/style.css">
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%--<title>일반 관리자</title>--%>
|
||||
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="/mngr/css/style.css">
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<%-- <title>통합 관리자</title>--%>
|
||||
<%--<title>통합 관리자</title>--%>
|
||||
|
||||
<%-- 공통 include --%>
|
||||
<%@include file ="/WEB-INF/views/comm/admin/Include.jsp" %>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>통합 관리자</title>
|
||||
<%--<title>통합 관리자</title>--%>
|
||||
|
||||
<%-- 공통 include --%>
|
||||
<%@include file ="/WEB-INF/views/comm/admin/Include.jsp" %>
|
||||
|
||||
@@ -1675,7 +1675,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th>환율(살때) 일본 1円(엔)기준</th>
|
||||
<td>
|
||||
<td colspan="3">
|
||||
<div class="td-inner">
|
||||
<div class="input-container">
|
||||
<input type="text" class="input-text sm right" name="buyRate" id="buyRate" title="1엔 환율(살때)" value="${resultMap.sopmalDetailList[0].buyRate }">
|
||||
@@ -1683,7 +1683,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<th>환율(팔때) 일본 1円(엔)기준</th>
|
||||
<%-- <th>환율(팔때) 일본 1円(엔)기준</th>
|
||||
<td>
|
||||
<div class="td-inner">
|
||||
<div class="input-container">
|
||||
@@ -1691,7 +1691,7 @@
|
||||
<span class="input-unit-text">원</span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</td>--%>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
|
||||
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
|
||||
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
|
||||
|
||||
<%--
|
||||
Class Name : include.jsp
|
||||
@@ -156,14 +157,28 @@
|
||||
<c:set var="metaGoodsKwrd" value="${fn:replace(metaGoodsKwrd, '{kwrd}', '')}"/>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<title>${metaGoodsSj}</title>
|
||||
<title>
|
||||
<c:choose>
|
||||
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
|
||||
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
|
||||
<c:otherwise></c:otherwise>
|
||||
</c:choose>
|
||||
${metaGoodsSj}
|
||||
</title>
|
||||
<meta name="description" content="<c:out value="${metaGoodsDc}"/>">
|
||||
<meta name="keywords" content="<c:out value="${metaGoodsKwrd}"/>">
|
||||
<meta property="og:title" content="<c:out value="${metaGoodsSj}"/>">
|
||||
<meta property="og:description" content="<c:out value="${metaGoodsDc}"/>">
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<title><c:out value="${meta.metaSj}"/></title>
|
||||
<title>
|
||||
<c:choose>
|
||||
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
|
||||
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
|
||||
<c:otherwise></c:otherwise>
|
||||
</c:choose>
|
||||
<c:out value="${meta.metaSj}"/>
|
||||
</title>
|
||||
<meta name="description" content="<c:out value="${meta.metaDc}"/>">
|
||||
<meta name="keywords" content="<c:out value="${meta.metaKwrd}"/>">
|
||||
<meta property="og:title" content="<c:out value="${meta.metaSj}"/>">
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||
|
||||
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
|
||||
<%--
|
||||
Class Name : include.jsp
|
||||
Description : 통합관리자 CSS 및 JS 공통 include
|
||||
@@ -25,10 +25,16 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" type="image/png" href="\assets\favicon\gcone.ico">
|
||||
<title>통합관리자</title>
|
||||
<title>
|
||||
<c:choose>
|
||||
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
|
||||
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
|
||||
<c:otherwise></c:otherwise>
|
||||
</c:choose>
|
||||
통합관리자
|
||||
</title>
|
||||
|
||||
<%--mixed Contents 대응--%>
|
||||
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
|
||||
<c:if test="${profiles eq 'stage'}">
|
||||
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
|
||||
</c:if>
|
||||
|
||||
@@ -48,8 +48,8 @@
|
||||
<script src="<c:url value='/mngr/vendor/time-picker/timepicker.min.js'/>"></script>
|
||||
<script src="<c:url value='/mngr/vendor/dropzone/dropzone.min.js'/>"></script>
|
||||
<script src="<c:url value='/crm/js/script.js'/>" defer></script>
|
||||
<script src="<c:url value='/js/gcone.js'/>"></script>
|
||||
<script src="<c:url value='/js/fileupload_comm.js'/>"></script>
|
||||
<script src="<c:url value='/js/mngr/gcone.js'/>"></script>
|
||||
<script src="<c:url value='/js/mngr/fileupload_comm.js'/>"></script>
|
||||
<script src="<c:url value='/ckeditor/ckeditor.js'/>"></script>
|
||||
<script src="<c:url value='/mngr/vendor/chart.js/chart.umd.min.js'/>"></script>
|
||||
<script src="<c:url value='/admin/vendor/jstree/jstree.min.js'/>"></script>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||
|
||||
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
|
||||
<% response.setHeader("Cache-Control","no-cache");
|
||||
response.setHeader("Pragma","no-cache");
|
||||
response.setDateHeader("Expires",0);
|
||||
@@ -16,14 +16,20 @@
|
||||
<%-- CK editor 적용 시 width 설정 --%>
|
||||
|
||||
<%--파비콘, 메타, 타이틀--%>
|
||||
<title>일반 관리자</title>
|
||||
<title>
|
||||
<c:choose>
|
||||
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
|
||||
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
|
||||
<c:otherwise></c:otherwise>
|
||||
</c:choose>
|
||||
일반 관리자
|
||||
</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" type="image/png" href="\assets\favicon\gcone.ico">
|
||||
<meta name="robots" content="noindex,nofollow">
|
||||
|
||||
<%--mixed Contents 대응--%>
|
||||
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
|
||||
<c:if test="${profiles eq 'stage'}">
|
||||
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
|
||||
</c:if>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
||||
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
|
||||
|
||||
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
|
||||
|
||||
<!-- 모든 사이트 공통 -->
|
||||
<link rel="stylesheet" href="/mobile/css/default.css">
|
||||
@@ -165,14 +165,28 @@
|
||||
<c:set var="metaGoodsKwrd" value="${fn:replace(metaGoodsKwrd, '{kwrd}', '')}"/>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<title>${metaGoodsSj}</title>
|
||||
<title>
|
||||
<c:choose>
|
||||
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
|
||||
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
|
||||
<c:otherwise></c:otherwise>
|
||||
</c:choose>
|
||||
${metaGoodsSj}
|
||||
</title>
|
||||
<meta name="description" content="<c:out value="${metaGoodsDc}"/>">
|
||||
<meta name="keywords" content="<c:out value="${metaGoodsKwrd}"/>">
|
||||
<meta property="og:title" content="<c:out value="${metaGoodsSj}"/>">
|
||||
<meta property="og:description" content="<c:out value="${metaGoodsDc}"/>">
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<title><c:out value="${meta.metaSj}"/></title>
|
||||
<title>
|
||||
<c:choose>
|
||||
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
|
||||
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
|
||||
<c:otherwise></c:otherwise>
|
||||
</c:choose>
|
||||
<c:out value="${meta.metaSj}"/>
|
||||
</title>
|
||||
<meta name="description" content="<c:out value="${meta.metaDc}"/>">
|
||||
<meta name="keywords" content="<c:out value="${meta.metaKwrd}"/>">
|
||||
<meta property="og:title" content="<c:out value="${meta.metaSj}"/>">
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
--%>
|
||||
<!-- 배송지 모달 -->
|
||||
<!-- 배송지 수정-->
|
||||
<div id="dlvylcUpdate" class="modal" style="max-width: 480px;">
|
||||
<div id="dlvylcUpdate" class="modal" style="max-width: 480px; max-height: 100%;">
|
||||
<form id="dlvylcUpdtForm" name="dlvylcUpdtForm" action="<c:url value=" /crm/dlvylc/updateDlvylcUpdt" />" method="post">
|
||||
<div class="modal-header">
|
||||
<h4>배송지 수정</h4>
|
||||
|
||||
@@ -523,7 +523,8 @@
|
||||
$(div).find('#' + id + 'Div').show();
|
||||
|
||||
if ('ordrTy01' === id || 'ordrTy06' === id) { // 일반주문, 정기배송
|
||||
fn_set_dft_dlvylc(fn_get_mbr('dftDlvylc'), 'dlvylcForm-' + id);
|
||||
// (346361) 상품 추가 or 상품 쿠폰 적용시 배송지 정보가 초기화 되는 문제 방지.
|
||||
// fn_set_dft_dlvylc(fn_get_mbr('dftDlvylc'), 'dlvylcForm-' + id);
|
||||
} else if ('ordrTy05' === id) { // 여러곳 배송
|
||||
const mbrInnb = fn_get_mbr_innb();
|
||||
|
||||
@@ -2318,6 +2319,12 @@
|
||||
/* 구매자 > 회원검색(레이어팝업) > 선택 구매자 정보 세팅 */
|
||||
const fn_set_apply_purchsr = function() {
|
||||
const purchsr = JSON.parse(localStorage.getItem('purchsr'));
|
||||
// 회원 정보 세팅
|
||||
$('#mbrInnb').val(fn_get_mbr_innb());
|
||||
$('#mbrDvCd').val(String(fn_get_mbr_dv_cd()));
|
||||
|
||||
// 기본 배송지로 초기화
|
||||
$('input[name="dlvylcDvCd"]').first().trigger('click');
|
||||
|
||||
let tr = '<tr>';
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
function create_goodInfo() {
|
||||
if(document.order_info.pay_mod.value=='Y') {
|
||||
var chr31 = String.fromCharCode(31); // ASCII 코드값 31
|
||||
var good_info = "seq=1" + chr31 + "ordr_numb=0001" + chr31 + "good_name=${data.setle.goodsNm}" + chr31 + "good_cntx=2" + chr31 + "good_amtx=${data.setle.setleAmt}";
|
||||
var good_info = "seq=1" + chr31 + "ordr_numb=0001" + chr31 + "good_name=${data.setle.goodsNm}" + chr31 + "good_cntx=2" + chr31 + "good_amtx=${data.setle.wonSetleAmt}";
|
||||
document.order_info.good_info.value = good_info;
|
||||
}
|
||||
}
|
||||
@@ -112,7 +112,7 @@
|
||||
<!-- ========== 에스크로 필수정보 End =============================== -->
|
||||
|
||||
<input type="hidden" name="good_name" value="${data.setle.goodsNm}"/> <!-- 상품명 -->
|
||||
<input type="hidden" name="good_mny" value="${data.setle.setleAmt}"/> <!-- 결제 금액 -->
|
||||
<input type="hidden" name="good_mny" value="${data.setle.wonSetleAmt}"/> <!-- 결제 금액 -->
|
||||
<input type="hidden" name="buyr_name" value="${data.ordr.ordrrNm}"/> <!-- 주문자 이름 -->
|
||||
<input type="hidden" name="buyr_mail" value="${data.ordr.ordrrEmail}"/> <!-- 주문자 이메일 -->
|
||||
<input type="hidden" name="buyr_tel2" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문자 휴대폰번호 -->
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
||||
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
|
||||
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
@@ -13,7 +14,14 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>통합관리자</title>
|
||||
<title>
|
||||
<c:choose>
|
||||
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
|
||||
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
|
||||
<c:otherwise></c:otherwise>
|
||||
</c:choose>
|
||||
통합관리자
|
||||
</title>
|
||||
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="/login/admin/css/style.css">
|
||||
@@ -52,7 +60,7 @@
|
||||
<img class="login__logo active" src="/login/admin/images/logo_default.png" alt="gcone">
|
||||
</a>
|
||||
</div>
|
||||
<%-- <span class="login__pageTitle__text">통합관리자</span>--%>
|
||||
<span class="login__pageTitle__text">통합관리자</span>
|
||||
</h2>
|
||||
<form id="loginForm">
|
||||
<input type="hidden" id="realm" value="${realm}">
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
||||
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
|
||||
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
@@ -13,7 +14,14 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<title>
|
||||
<c:choose>
|
||||
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
|
||||
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
|
||||
<c:otherwise></c:otherwise>
|
||||
</c:choose>
|
||||
일반 관리자
|
||||
</title>
|
||||
|
||||
<!-- CSS -->
|
||||
<link rel="stylesheet" href="/login/mngr/css/style.css">
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
|
||||
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
|
||||
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||
<spring:eval expression="@environment.getProperty('spring.profiles.active')" var="profiles"/>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
@@ -34,7 +36,14 @@
|
||||
</c:if>
|
||||
|
||||
<!-- 타이틀-->
|
||||
<title>${shopInfo.metaSj}</title>
|
||||
<title>
|
||||
<c:choose>
|
||||
<c:when test="${profiles eq 'local'}">(로컬) </c:when>
|
||||
<c:when test="${profiles eq 'dev'}">(개발) </c:when>
|
||||
<c:otherwise></c:otherwise>
|
||||
</c:choose>
|
||||
${shopInfo.metaSj}
|
||||
</title>
|
||||
<script src="/mobile/vendor/jquery-3.7.1.min.js"></script>
|
||||
<!--js-->
|
||||
<script src="/login/sopmall/pc/js/common.js"></script>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%--<title>일반 관리자</title>--%>
|
||||
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||
</head>
|
||||
<style>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%--<title>일반 관리자</title>--%>
|
||||
</head>
|
||||
<style>
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%--<title>일반 관리자</title>--%>
|
||||
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||
</head>
|
||||
<style>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%--<title>일반 관리자</title>--%>
|
||||
</head>
|
||||
<style>
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%--<title>일반 관리자</title>--%>
|
||||
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||
</head>
|
||||
<style>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%--<title>일반 관리자</title>--%>
|
||||
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||
</head>
|
||||
<style>
|
||||
|
||||
@@ -84,6 +84,14 @@
|
||||
</c:forEach>
|
||||
</c:if>
|
||||
<c:if test="${bbs.bbscttTot eq 0 }" >
|
||||
<c:choose>
|
||||
<c:when test = "${bbs.bbsTyCd eq '06' || bbs.bbsTyCd eq '07'}">
|
||||
<c:set var = "url" value = "/mngr/bbs/rvw/selectRvwListInqireForm?bbsId="/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:set var = "url" value = "/mngr/bbs/gnrlsctt/selectBbscttListInqireForm?bbsId="/>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<tr>
|
||||
<td colspan="4">등록된 게시글이 없습니다.</td>
|
||||
</tr>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%--<title>일반 관리자</title>--%>
|
||||
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||
<link rel="stylesheet" href="/mngr/css/bnft/style.css">
|
||||
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%--<title>일반 관리자</title>--%>
|
||||
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||
<link rel="stylesheet" href="/mngr/css/bnft/style.css">
|
||||
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%--<title>일반 관리자</title>--%>
|
||||
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||
<link rel="stylesheet" href="/mngr/css/bnft/style.css">
|
||||
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%--<title>일반 관리자</title>--%>
|
||||
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||
<link rel="stylesheet" href="/mngr/css/bnft/style.css">
|
||||
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%--<title>일반 관리자</title>--%>
|
||||
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||
<link rel="stylesheet" href="/mngr/css/bnft/style.css">
|
||||
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%--<title>일반 관리자</title>--%>
|
||||
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||
<link rel="stylesheet" href="/mngr/css/bnft/style.css">
|
||||
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%--<title>일반 관리자</title>--%>
|
||||
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||
<link rel="stylesheet" href="/mngr/css/bnft/style.css">
|
||||
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>일반 관리자</title>
|
||||
<%--<title>일반 관리자</title>--%>
|
||||
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||
<link rel="stylesheet" href="/mngr/css/bnft/style.css">
|
||||
<script src="<c:url value='/mngr/js/bnft/script.js'/>" defer></script>
|
||||
|
||||