배송그룹 설정에 따른 배송 처리 로직 추가

This commit is contained in:
김현욱
2026-02-25 18:04:09 +09:00
parent e261fbff7d
commit 9b91679ec6
14 changed files with 331 additions and 25 deletions

View File

@@ -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");

View File

@@ -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<>();

View File

@@ -8,6 +8,7 @@ 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;
@@ -33,6 +34,9 @@ public class BOOrderService {
@Autowired
private BOPurchsMapper mapper;
@Autowired
private BOOrdrMapper boOrdrMapper;
@Autowired
private BOMaMtngService maMtngService;
@@ -81,27 +85,207 @@ public class BOOrderService {
log.debug("결제정보 => {} ", new Gson().toJson(setle));
log.debug("사은품 => {} ", new Gson().toJson(prsntList));
String sopmalCd = "";
if("01".equals(user.getSysDvCd())){
sopmalCd = user.getSopmalCd();
}else{
sopmalCd = param.get("sopmalCd").toString();
}
String ordrTyCd = (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);
if (!CollectionUtils.isEmpty(multiOrdrDlvylcMap)) {
// 배송지 리스트
dlvylcListMulti = (List<LinkedHashMap<String, Object>>) multiOrdrDlvylcMap.get("dlvylc");
log.debug("dlvylcListMulti : {}", dlvylcListMulti);
String dlvylcAreaCd = (String) shipping.get("dlvylcAreaCd");
String ordrAdressZip = StringUtil.isNullToString(shipping.get("dlvylcZip"));
String prefcd = (String) shipping.get("prefcd");
String defaultAdressAt = "N";
String finalSopmalCd = sopmalCd;
DataMap defaultAdressVO = new DataMap() {{ //
put("sopmalCd", finalSopmalCd); // 쇼핑몰 코드
put("zip", ordrAdressZip); // 우편번호
put("prefcd", prefcd); // 도도부현코드
}};
if("KR".equals(dlvylcAreaCd)){
defaultAdressAt = boOrdrMapper.selectBODefaultAdressAtInqire(defaultAdressVO);
}
if("JP".equals(dlvylcAreaCd)){
defaultAdressAt = boOrdrMapper.selectBODefaultAdressAtInqire2(defaultAdressVO);
}
if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "04".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원 개인결제, 정기배송
for(int i=0;i<goodsList.size();i++) {
int goodsQy = (int) goodsList.get(i).get("qy");
int dlvyGroupInnb = (int) goodsList.get(i).get("dlvyGroupInnb");
String sopmalCode = sopmalCd;
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 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"); // 도서산간 추가 배송비
itemAmtCndUseAt = (String) shippingGrouping.get("amtCndUseAt2"); // 금액조건
itemAmtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt");
itemCntCndUseAt = (String) shippingGrouping.get("cntCndUseAt2"); // 수량조건
itemCntCndAditAmt = (BigDecimal) shippingGrouping.get("cntCndAditAmt2"); // 수량
}
// 추가배송비 계산 (MUL)
if (!StringUtils.isEmpty(itemDlvyAreaAditAt) && "Y".equals(itemDlvyAreaAditAt)) {
if (!StringUtils.isEmpty(defaultAdressAt) && "Y".equals(defaultAdressAt)) {
itemDlvyAmt = itemDlvyAmt.add(itemAreaAditDlvyAmt); // 유료 배송 도서산간 추가 배송비
}
}
if ("03".equals(itemDlvyGroupDvCd) && "Y".equals(itemCntCndUseAt)) {
// BigDecimal qy = (BigDecimal) goodsList.get(i).get("qy"); // 수량
BigDecimal qy = new BigDecimal(String.valueOf(goodsList.get(i).get("qy"))); // 수량
BigDecimal unitQy = qy.divide(itemCntCndAditAmt, 0, RoundingMode.CEILING); // 단위수량
goodsQy = unitQy.intValue();
for(int j=0;j<goodsQy;j++) {
List<LinkedHashMap> itemGoodsList = new ArrayList<>();
itemGoodsList.add(goodsList.get(i));
for (LinkedHashMap<String, Object> itemGoodsMap : itemGoodsList) {
if((goodsQy-j) > 1){
itemGoodsMap.put("qy", itemCntCndAditAmt.intValue());
} else {
itemGoodsMap.put("qy", qy.intValue() - (itemCntCndAditAmt.intValue() * j));
}
}
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("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 {
BigDecimal qy = new BigDecimal(String.valueOf(goodsList.get(i).get("qy"))); // 수량
List<LinkedHashMap> itemGoodsList = new ArrayList<>();
itemGoodsList.add(goodsList.get(i));
for (LinkedHashMap<String, Object> itemGoodsMap : itemGoodsList) {
itemGoodsMap.put("qy", qy.intValue());
}
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("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);
}
}
// 배송지가 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);
}
}
/** 여러곳 배송 배송지 세팅 종료 */
String sopmalCd = "";
if("01".equals(user.getSysDvCd())){
sopmalCd = user.getSopmalCd();
}else{
sopmalCd = param.get("sopmalCd").toString();
}
String ordrTyCd = (String) param.get("ordrTyCd");
/* *****************************
1. 주문등록(GC_ORDER)
@@ -128,6 +312,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);
@@ -1223,6 +1408,8 @@ public class BOOrderService {
shippingVO.setRecpntTelnb((String) shipping.get("recpntTelnb"));
shippingVO.setRecpntMbtlnb((String) shipping.get("recpntMbtlnb"));
shippingVO.setDlvylcAreaCd((String) shipping.get("dlvylcAreaCd"));
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 +1448,8 @@ 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.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")));

View File

@@ -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);

View File

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

View File

@@ -335,6 +335,8 @@ public interface BOOrdrMapper {
*/
public List<DataMap> selectOrderShippingList(BOOrdrShippingVO ordrShippingVO);
public List<DataMap> selectOrderShippingListGrp(BOOrdrShippingVO ordrShippingVO);
/**
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문상세 > 배송지정보 상품 목록 조회
* @param paramMap

View File

@@ -1988,6 +1988,8 @@ public class BOOrdrService{
List<DataMap> shippingList = mapper.selectOrderShippingList(shippingVO);
// List<DataMap> shippingListGrp = mapper.selectOrderShippingListGrp(shippingVO);
if (!CollectionUtils.isEmpty(shippingList)) {
for (int i = 0; i < shippingList.size(); i++) {
DataMap param = shippingList.get(i);
@@ -2014,6 +2016,7 @@ public class BOOrdrService{
content.put("order", ordrDtl);
content.put("goodsList", goodsList);
content.put("shippingList", shippingList);
// content.put("shippingListGrp", shippingListGrp);
content.put("dscntList", dscntList);
content.put("setleList", setleList);
content.put("refundList", refundList);
@@ -3018,7 +3021,7 @@ public class BOOrdrService{
public Map<String, Object> selectSetleExpectAmt(DataMap param) throws Exception {
Map<String, Object> content = new HashMap<>();
log.debug("selectSetleExpectAmt-param : {}", param);
log.debug("BOOrdrService.selectSetleExpectAmt-param : {}", param);
LinkedHashMap setleExpectAmtMap = new LinkedHashMap() {{
put("goodsAmt", 0);
@@ -3393,9 +3396,15 @@ public class BOOrdrService{
// ############################################## 배송지별 배송비 계산 START ##############################################
String ordrAdressZip = StringUtil.isNullToString(param.get("dlvylcZip"));
String dlvylcAreaCd = (String) param.get("dlvylcAreaCd");
String prefcd = (String) param.get("prefcd");
LinkedHashMap<String, Object> shippingMap = (LinkedHashMap) param.get("shipping");
// String ordrAdressZip = StringUtil.isNullToString(param.get("dlvylcZip"));
// String dlvylcAreaCd = (String) param.get("dlvylcAreaCd");
// String prefcd = (String) param.get("prefcd");
String ordrAdressZip = StringUtil.isNullToString(shippingMap != null ? shippingMap.get("dlvylcZip") : "");
String dlvylcAreaCd = StringUtil.isNullToString(shippingMap != null ? shippingMap.get("dlvylcAreaCd") : "");
String prefcd = StringUtil.isNullToString(shippingMap != null ? shippingMap.get("prefcd") : "");
DataMap defaultAdressVO = new DataMap() {{ //
put("sopmalCd", sopmalCd); // 쇼핑몰 코드
put("zip", ordrAdressZip); // 우편번호
@@ -3445,7 +3454,7 @@ public class BOOrdrService{
List<LinkedHashMap> goodsListMulti = (List<LinkedHashMap>) dlvylcMapMulti.get("goodsList");
log.debug("goodsListMulti : {}", goodsListMulti);
if (!CollectionUtils.isEmpty(goodsListMulti)) {
dlvyAmtMapMulti = purchsService.getDlvyAmt(goodsListMulti, sopmalCd, defaultAdressAt, dlvylcAreaCd, prefcd);
dlvyAmtMapMulti = purchsService.getDlvyAmt(goodsListMulti, sopmalCd, defaultAdressAt, dlvylcAreaCd);
if (!CollectionUtils.isEmpty(dlvyAmtMapMulti)) {
if (dlvylcMapMulti.get("mngrFreeDlvyUseAt") != null && "Y".equals(dlvylcMapMulti.get("mngrFreeDlvyUseAt").toString())) {
@@ -3500,7 +3509,7 @@ public class BOOrdrService{
// List<LinkedHashMap> goodsListMulti = (List<LinkedHashMap>) dlvylcMapMulti.get("goodsList");
// log.debug("goodsListMulti : {}", goodsListMulti);
// if (!CollectionUtils.isEmpty(goodsListMulti)) {
// dlvyAmtMapMulti = purchsService.getDlvyAmt(goodsListMulti, sopmalCd, defaultAdressAt, dlvylcAreaCd, prefcd);
// dlvyAmtMapMulti = purchsService.getDlvyAmt(goodsListMulti, sopmalCd, defaultAdressAt, dlvylcAreaCd);
//
// if (!CollectionUtils.isEmpty(dlvyAmtMapMulti)) {
// if (dlvylcMapMulti.get("mngrFreeDlvyUseAt") != null && "Y".equals(dlvylcMapMulti.get("mngrFreeDlvyUseAt").toString())) {
@@ -3558,18 +3567,18 @@ public class BOOrdrService{
if (dlvylcMap.get("dlvyAmt") != null) {
log.debug("배송비 객체 : {}", dlvylcMap);
if (dlvylcMap.get("mngrFreeDlvyUseAt") != null && "N".equals(dlvylcMap.get("mngrFreeDlvyUseAt").toString())) {
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd, prefcd);
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd);
} else if (dlvylcMap.get("mngrFreeDlvyUseAt") != null && "Y".equals(dlvylcMap.get("mngrFreeDlvyUseAt").toString())) {
log.debug("관리자 무료배송 체크 'Y'");
} else {
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd, prefcd);
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd);
}
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
dlvyAmtBydlvylc = ((BigDecimal) dlvyAmtMap.get("dlvyAmt")).intValue();
}
} else {
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd, prefcd);
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd);
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
dlvyAmtBydlvylc = ((BigDecimal) dlvyAmtMap.get("dlvyAmt")).intValue();
@@ -3578,7 +3587,7 @@ public class BOOrdrService{
dlvyAmt = new BigDecimal(dlvyAmtBydlvylc);
} else {
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd, prefcd);
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd);
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
dlvyAmt = (BigDecimal) dlvyAmtMap.get("dlvyAmt");

View File

@@ -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();
@@ -3069,6 +3070,7 @@ public class OrdrController {
return content;
}
} else {
// 여러곳배송처럼 처리하더라도 주소는 하나이므로 shipping 체크
if (CollectionUtils.isEmpty(shipping)) {
log.info("배송지 정보를 찾을 수 없습니다.");
content.put("result","Y");

View File

@@ -386,7 +386,9 @@
, ORDR_STTUS_CD
, RECPNT_NM
, RECPNT_MBTLNB
, DLVYLC_AREA_CD
, DLVYLC_ZIP
, PREFCD
, DLVYLC_ADRES_DV_CD
, DLVYLC_LNB_ADRES
, DLVYLC_RNM_ADRES
@@ -422,7 +424,9 @@
, #{ordrSttusCd}
, #{recpntNm}
, HEX(AES_ENCRYPT(REPLACE(#{recpntMbtlnb}, '-', ''), '1df5be2f7e90ae36'))
, #{dlvylcAreaCd}
, #{dlvylcZip}
, #{prefcd}
, #{dlvylcAdresDvCd}
, #{dlvylcLnbAdres}
, #{dlvylcRnmAdres}

View File

@@ -2000,6 +2000,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[

View File

@@ -590,6 +590,8 @@
dlvylc['recpntNm'] = data.recpntNm;
dlvylc['recpntMbtlnb'] = data.mbtlnb;
dlvylc['dlvylcZip'] = data.postcode;
dlvylc['dlvylcAreaCd'] = data.dlvylcAreaCd;
dlvylc['prefcd'] = data.prefcd;
dlvylc['dlvylcAdresDvCd'] = data.addressType;
dlvylc['dlvylcLnbAdres'] = data.jibunAddress;
dlvylc['dlvylcRnmAdres'] = data.roadAddress;

View File

@@ -2458,6 +2458,15 @@
const fn_get_setle_amt = function() {
let setle = {};
let dlvylc = JSON.parse(localStorage.getItem('dlvylc'));
if (!fn_is_empty(dlvylc)) {
dlvylc = Object.assign({}, fn_get_dlvylc_data(), dlvylc);
} else {
dlvylc = fn_get_dlvylc_data();
}
setle['shipping'] = dlvylc;
setle['sopmalCd'] = $('#sopmalCd').val();
setle['dlvylc'] = JSON.parse(localStorage.getItem('dlvylc'));
setle['goodsList'] = JSON.parse(localStorage.getItem('goodsList'));
@@ -2732,6 +2741,9 @@
order['dlvylcAreaCd'] = localStorage.getItem('dlvylcAreaCd');
order['prefcd'] = localStorage.getItem('prefcd');
// order['subsvcInnb'] = 0;
// order['subsvcAt'] = 'N';
/* 여러곳 배송 > 배송지별 정합성 검사 시작 */
if (ordrTyCd === '05') { // 여러곳 배송

View File

@@ -272,6 +272,8 @@
dlvylc['recpntNm'] = data.recpntNm;
dlvylc['recpntMbtlnb'] = data.mbtlnb;
dlvylc['dlvylcZip'] = data.postcode;
dlvylc['dlvylcAreaCd'] = data.dlvylcAreaCd;
dlvylc['prefcd'] = data.prefcd;
dlvylc['dlvylcAdresDvCd'] = data.addressType;
dlvylc['dlvylcLnbAdres'] = data.jibunAddress;
dlvylc['dlvylcRnmAdres'] = data.roadAddress;

View File

@@ -2488,6 +2488,16 @@
let setle = {};
let dlvylc = JSON.parse(localStorage.getItem('dlvylc'));
if (!fn_is_empty(dlvylc)) {
dlvylc = Object.assign({}, fn_get_dlvylc_data(), dlvylc);
} else {
dlvylc = fn_get_dlvylc_data();
}
order['shipping'] = dlvylc;
setle['sopmalCd'] = $('#sopmalCd').val();
setle['dlvylc'] = JSON.parse(localStorage.getItem('dlvylc'));
setle['goodsList'] = JSON.parse(localStorage.getItem('goodsList'));