Compare commits
22 Commits
844d539166
...
master_ord
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
305d5d226c | ||
|
|
8a5583b600 | ||
|
|
5db37dfafb | ||
|
|
bcf64f0f92 | ||
|
|
2763d956a8 | ||
|
|
96670ab6a5 | ||
|
|
1097660b22 | ||
|
|
12ae420a48 | ||
|
|
1a7cab2c9c | ||
|
|
072704c995 | ||
|
|
cb022e9841 | ||
|
|
4939bf7954 | ||
|
|
55192f8ccc | ||
|
|
780f061592 | ||
|
|
daf9770fbe | ||
|
|
86c7b59070 | ||
|
|
190f81d5c6 | ||
|
|
e6bf779b11 | ||
|
|
e9b53f049e | ||
|
|
a1c1b77c86 | ||
|
|
f82df1e5cf | ||
|
|
006d3f5a09 |
@@ -286,6 +286,13 @@ public class BOMaMtngController {
|
|||||||
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
|
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// if (CollectionUtils.isEmpty(multiOrdrDlvylc)) {
|
||||||
|
// log.info("배송지 정보를 찾을 수 없습니다.");
|
||||||
|
// content.put("result","Y");
|
||||||
|
// content.put("message", "배송지 정보를 찾을 수 없습니다.");
|
||||||
|
// // throw new WnbtRestException("주문유형 정보를 찾을 수 없습니다.");
|
||||||
|
// return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
|
||||||
|
// }
|
||||||
if (CollectionUtils.isEmpty(shipping)) {
|
if (CollectionUtils.isEmpty(shipping)) {
|
||||||
log.info("배송지 정보를 찾을 수 없습니다.");
|
log.info("배송지 정보를 찾을 수 없습니다.");
|
||||||
content.put("result","Y");
|
content.put("result","Y");
|
||||||
@@ -322,27 +329,91 @@ public class BOMaMtngController {
|
|||||||
String[] receptMbtlnbArray = null; // 배송지 받는이 휴대폰번호
|
String[] receptMbtlnbArray = null; // 배송지 받는이 휴대폰번호
|
||||||
|
|
||||||
if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원개인결제, 정기배송
|
if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원개인결제, 정기배송
|
||||||
if (
|
if (!CollectionUtils.isEmpty(multiOrdrDlvylc)) {
|
||||||
StringUtil.isEmpty((String) shipping.get("dlvylcZip")) ||
|
|
||||||
StringUtil.isEmpty((String) shipping.get("dlvylcAdresDvCd")) ||
|
// 배송지 리스트
|
||||||
( "01".equals(shipping.get("dlvylcAdresDvCd")) && StringUtil.isEmpty((String) shipping.get("dlvylcRnmAdres")) ) ||
|
List<LinkedHashMap<String, Object>> dlvylcListMulti = (List<LinkedHashMap<String, Object>>) multiOrdrDlvylc.get("dlvylc");
|
||||||
( "02".equals(shipping.get("dlvylcAdresDvCd")) && StringUtil.isEmpty((String) shipping.get("dlvylcLnbAdres")) ) ||
|
|
||||||
StringUtil.isEmpty((String) shipping.get("dlvylcAdresDtl"))
|
/** ----------------------------------------------- 배송지별 주문 상품 수량 검사 START ----------------------------------------------- */
|
||||||
) {
|
content = checkDistributedQyMatchesOrder(goodsList, dlvylcListMulti);
|
||||||
|
if (!"0".equals(content.get("status"))) {
|
||||||
|
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
|
||||||
|
}
|
||||||
|
/** ----------------------------------------------- 배송지별 주문 상품 수량 검사 END ----------------------------------------------- */
|
||||||
|
|
||||||
|
// 부정판매 체크를 위한 배송지 정렬
|
||||||
|
if (!CollectionUtils.isEmpty(dlvylcListMulti)) {
|
||||||
|
|
||||||
|
boolean hasInvalidAddress = dlvylcListMulti.stream().anyMatch(map -> {
|
||||||
|
String dlvylcZip = StringUtil.isNullToString(map.get("dlvylcZip"));
|
||||||
|
String adresDvCd = StringUtil.isNullToString(map.get("dlvylcAdresDvCd"));
|
||||||
|
String dlvylcLnbAdres = StringUtil.isNullToString(map.get("dlvylcLnbAdres"));
|
||||||
|
String dlvylcRnmAdres = StringUtil.isNullToString(map.get("dlvylcRnmAdres"));
|
||||||
|
String adresDtl = StringUtil.isNullToString(map.get("dlvylcAdresDtl"));
|
||||||
|
|
||||||
|
return StringUtil.isEmpty(dlvylcZip)
|
||||||
|
|| StringUtil.isEmpty(adresDvCd)
|
||||||
|
|| ("01".equals(adresDvCd) && StringUtil.isEmpty(dlvylcRnmAdres))
|
||||||
|
|| ("02".equals(adresDvCd) && StringUtil.isEmpty(dlvylcLnbAdres))
|
||||||
|
|| StringUtil.isEmpty(adresDtl);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (hasInvalidAddress) {
|
||||||
content.put("result","Y");
|
content.put("result","Y");
|
||||||
content.put("message", "배송지 정보를 찾을 수 없습니다. 다시 시도해 주세요.");
|
content.put("message", "배송지 정보를 찾을 수 없습니다. 다시 시도해 주세요.");
|
||||||
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
|
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
String dlvylcAdresDvCd = (String) shipping.get("dlvylcAdresDvCd");
|
List<String> adresList = dlvylcListMulti.stream()
|
||||||
String dlvylcLnbAdres = (String) shipping.get("dlvylcLnbAdres");
|
.map(map -> {
|
||||||
String dlvylcRnmAdres = (String) shipping.get("dlvylcRnmAdres");
|
String adresDvCd = StringUtil.isNullToString(map.get("dlvylcAdresDvCd"));
|
||||||
String dlvylcAdresDtl = (String) shipping.get("dlvylcAdresDtl");
|
String adresDtl = StringUtil.isNullToString(map.get("dlvylcAdresDtl"));
|
||||||
|
String dlvylcLnbAdres = StringUtil.isNullToString(map.get("dlvylcLnbAdres"));
|
||||||
|
String dlvylcRnmAdres = StringUtil.isNullToString(map.get("dlvylcRnmAdres"));
|
||||||
|
String adresMulti;
|
||||||
|
if ("01".equals(adresDvCd)) {
|
||||||
|
adresMulti = dlvylcRnmAdres + " " + adresDtl;
|
||||||
|
} else {
|
||||||
|
adresMulti = dlvylcLnbAdres + " " + adresDtl;
|
||||||
|
}
|
||||||
|
|
||||||
adres = "01".equals(dlvylcAdresDvCd) ? dlvylcRnmAdres + " " + dlvylcAdresDtl : dlvylcLnbAdres + " " + dlvylcAdresDtl;
|
return adresMulti;
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
String recpntMbtlnb = StringUtil.isNullToString(shipping.get("recpntMbtlnb"));
|
adresArray = adresList.toArray(new String[0]);
|
||||||
receptMbtlnbArray = new String[]{recpntMbtlnb};
|
|
||||||
|
List<String> receptMbtlnbList = dlvylcListMulti.stream()
|
||||||
|
.map(map -> {
|
||||||
|
return StringUtil.isNullToString(map.get("recpntMbtlnb"));
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
receptMbtlnbArray = receptMbtlnbList.toArray(new String[0]);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// if (
|
||||||
|
// StringUtil.isEmpty((String) shipping.get("dlvylcZip")) ||
|
||||||
|
// StringUtil.isEmpty((String) shipping.get("dlvylcAdresDvCd")) ||
|
||||||
|
// ( "01".equals(shipping.get("dlvylcAdresDvCd")) && StringUtil.isEmpty((String) shipping.get("dlvylcRnmAdres")) ) ||
|
||||||
|
// ( "02".equals(shipping.get("dlvylcAdresDvCd")) && StringUtil.isEmpty((String) shipping.get("dlvylcLnbAdres")) ) ||
|
||||||
|
// StringUtil.isEmpty((String) shipping.get("dlvylcAdresDtl"))
|
||||||
|
// ) {
|
||||||
|
// content.put("result","Y");
|
||||||
|
// content.put("message", "배송지 정보를 찾을 수 없습니다. 다시 시도해 주세요.");
|
||||||
|
// return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// String dlvylcAdresDvCd = (String) shipping.get("dlvylcAdresDvCd");
|
||||||
|
// String dlvylcLnbAdres = (String) shipping.get("dlvylcLnbAdres");
|
||||||
|
// String dlvylcRnmAdres = (String) shipping.get("dlvylcRnmAdres");
|
||||||
|
// String dlvylcAdresDtl = (String) shipping.get("dlvylcAdresDtl");
|
||||||
|
//
|
||||||
|
// adres = "01".equals(dlvylcAdresDvCd) ? dlvylcRnmAdres + " " + dlvylcAdresDtl : dlvylcLnbAdres + " " + dlvylcAdresDtl;
|
||||||
|
//
|
||||||
|
// String recpntMbtlnb = StringUtil.isNullToString(shipping.get("recpntMbtlnb"));
|
||||||
|
// receptMbtlnbArray = new String[]{recpntMbtlnb};
|
||||||
} else if ("05".equals(ordrTyCd)) { // 여러곳 배송
|
} else if ("05".equals(ordrTyCd)) { // 여러곳 배송
|
||||||
if (!CollectionUtils.isEmpty(multiOrdrDlvylc)) {
|
if (!CollectionUtils.isEmpty(multiOrdrDlvylc)) {
|
||||||
|
|
||||||
|
|||||||
@@ -406,6 +406,8 @@ public class BOMaMtngService {
|
|||||||
List<LinkedHashMap> goodsList = (List<LinkedHashMap>) param.get("goodsList"); // 상품정보
|
List<LinkedHashMap> goodsList = (List<LinkedHashMap>) param.get("goodsList"); // 상품정보
|
||||||
LinkedHashMap enuri = (LinkedHashMap) param.get("enuri"); // 할인정보
|
LinkedHashMap enuri = (LinkedHashMap) param.get("enuri"); // 할인정보
|
||||||
|
|
||||||
|
log.debug("selectBOPreOrderValidationList-goodsList: {}",goodsList);
|
||||||
|
|
||||||
//사용한 장바구니 쿠폰
|
//사용한 장바구니 쿠폰
|
||||||
//비회원의 경우 enuri 자체가 없어서 isEmpty 확인
|
//비회원의 경우 enuri 자체가 없어서 isEmpty 확인
|
||||||
List<LinkedHashMap> usedCartCouponList = new ArrayList<>();
|
List<LinkedHashMap> usedCartCouponList = new ArrayList<>();
|
||||||
|
|||||||
@@ -81,19 +81,6 @@ public class BOOrderService {
|
|||||||
log.debug("결제정보 => {} ", new Gson().toJson(setle));
|
log.debug("결제정보 => {} ", new Gson().toJson(setle));
|
||||||
log.debug("사은품 => {} ", new Gson().toJson(prsntList));
|
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 = "";
|
String sopmalCd = "";
|
||||||
if("01".equals(user.getSysDvCd())){
|
if("01".equals(user.getSysDvCd())){
|
||||||
sopmalCd = user.getSopmalCd();
|
sopmalCd = user.getSopmalCd();
|
||||||
@@ -103,6 +90,85 @@ public class BOOrderService {
|
|||||||
|
|
||||||
String ordrTyCd = (String) param.get("ordrTyCd");
|
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 ("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);
|
||||||
|
|
||||||
|
BigDecimal itemDftDlvyAmt = (BigDecimal) shippingGrouping.get("dftDlvyAmt"); // 기본배송비
|
||||||
|
BigDecimal itemDlvyAmt = itemDftDlvyAmt; // 배송비
|
||||||
|
// String dlvyAreaAditAt = (String) shippingGrouping.get("dlvyAreaAditAt"); // 도서산간 추가 배송비 조건
|
||||||
|
// BigDecimal areaAditDlvyAmt = (BigDecimal) shippingGrouping.get("areaAditDlvyAmt"); // 도서산간 추가 배송비
|
||||||
|
|
||||||
|
List<LinkedHashMap> itemGoodsList = new ArrayList<>();
|
||||||
|
itemGoodsList.add(goodsList.get(i));
|
||||||
|
for (LinkedHashMap<String, Object> itemGoodsMap : itemGoodsList) {
|
||||||
|
itemGoodsMap.put("qy", 1);
|
||||||
|
}
|
||||||
|
List<LinkedHashMap> itempPrsntList = new ArrayList<>();
|
||||||
|
if(!prsntList.isEmpty()){
|
||||||
|
itempPrsntList.add(prsntList.get(i));
|
||||||
|
for (LinkedHashMap<String, Object> itemPrsntMap : itempPrsntList) {
|
||||||
|
itemPrsntMap.put("qy", 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int j=0;j<goodsQy;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("dlvylcZip", shipping.get("dlvylcZip"));
|
||||||
|
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 ("05".equals(ordrTyCd)) { // 여러곳 배송, 선물하기
|
||||||
|
if (!CollectionUtils.isEmpty(multiOrdrDlvylcMap)) {
|
||||||
|
// 배송지 리스트
|
||||||
|
dlvylcListMulti = (List<LinkedHashMap<String, Object>>) multiOrdrDlvylcMap.get("dlvylc");
|
||||||
|
log.debug("dlvylcListMulti : {}", dlvylcListMulti);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/** 여러곳 배송 배송지 세팅 종료 */
|
||||||
|
|
||||||
/* *****************************
|
/* *****************************
|
||||||
1. 주문등록(GC_ORDER)
|
1. 주문등록(GC_ORDER)
|
||||||
***************************** */
|
***************************** */
|
||||||
@@ -128,6 +194,66 @@ public class BOOrderService {
|
|||||||
|
|
||||||
BOOrderShippingVO shippingEscrowVO = new BOOrderShippingVO();
|
BOOrderShippingVO shippingEscrowVO = new BOOrderShippingVO();
|
||||||
if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "04".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원 개인결제, 정기배송
|
if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "04".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원 개인결제, 정기배송
|
||||||
|
log.debug("여러곳 배송 > 배송지별 배송정보 => {} ", new Gson().toJson(dlvylcListMulti));
|
||||||
|
|
||||||
|
// 짜투리 계산을 위해 상품별 수량 체크
|
||||||
|
List<LinkedHashMap> goodsSetList = new ArrayList<>();
|
||||||
|
for (LinkedHashMap multiGoods : goodsList) {
|
||||||
|
int multiGoodsInnb = (int) multiGoods.get("goodsInnb");
|
||||||
|
int multiGoodsOptnInnb = (int) multiGoods.get("goodsOptnInnb");
|
||||||
|
|
||||||
|
LinkedHashMap baseGoods = goodsList.stream()
|
||||||
|
.filter(goods ->
|
||||||
|
Objects.equals((int) goods.get("goodsInnb"), multiGoodsInnb) &&
|
||||||
|
Objects.equals((int) goods.get("goodsOptnInnb"), multiGoodsOptnInnb)
|
||||||
|
)
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
|
||||||
|
if (baseGoods != null) {
|
||||||
|
LinkedHashMap merged = new LinkedHashMap<>(baseGoods);
|
||||||
|
merged.put("setQy", 0);
|
||||||
|
goodsSetList.add(merged);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
log.debug("상품별 수량 체크 : {}", goodsSetList);
|
||||||
|
|
||||||
|
|
||||||
|
if (!CollectionUtils.isEmpty(dlvylcListMulti)) {
|
||||||
|
|
||||||
|
// 배송지별 상품 수량 합산 - isLast 찾기 위함.
|
||||||
|
List<LinkedHashMap<String, Object>> allMergedGoodsList = new ArrayList<>();
|
||||||
|
|
||||||
|
for (LinkedHashMap<String, Object> dlvylcMapMulti : dlvylcListMulti) {
|
||||||
|
List<LinkedHashMap> goodsListMulti = (List<LinkedHashMap>) dlvylcMapMulti.get("goodsList");
|
||||||
|
|
||||||
|
for (LinkedHashMap multiGoods : goodsListMulti) {
|
||||||
|
int multiGoodsInnb = (int) multiGoods.get("goodsInnb");
|
||||||
|
int multiGoodsOptnInnb = (int) multiGoods.get("goodsOptnInnb");
|
||||||
|
|
||||||
|
LinkedHashMap baseGoods = goodsList.stream()
|
||||||
|
.filter(goods ->
|
||||||
|
Objects.equals((int) goods.get("goodsInnb"), multiGoodsInnb) &&
|
||||||
|
Objects.equals((int) goods.get("goodsOptnInnb"), multiGoodsOptnInnb)
|
||||||
|
)
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
|
||||||
|
if (baseGoods != null) {
|
||||||
|
LinkedHashMap<String, Object> merged = new LinkedHashMap<>(baseGoods);
|
||||||
|
allMergedGoodsList.add(merged);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 분배된 할인 금액 누적
|
||||||
|
BOOrderRestAmtVO discountInfo = new BOOrderRestAmtVO();
|
||||||
|
int allGoodsCount = 0; // 전체 상품 순번
|
||||||
|
|
||||||
|
for (LinkedHashMap<String, Object> dlvylcMapMulti : dlvylcListMulti) {
|
||||||
|
log.debug("dlvylcMapMulti : {}", dlvylcMapMulti);
|
||||||
|
|
||||||
BOOrderShippingVO shippingVO = new BOOrderShippingVO();
|
BOOrderShippingVO shippingVO = new BOOrderShippingVO();
|
||||||
|
|
||||||
shippingVO.setSopmalCd(sopmalCd);
|
shippingVO.setSopmalCd(sopmalCd);
|
||||||
@@ -135,36 +261,111 @@ public class BOOrderService {
|
|||||||
shippingVO.setMngrInnb(orderVO.getMngrInnb());
|
shippingVO.setMngrInnb(orderVO.getMngrInnb());
|
||||||
shippingVO.setMbrInnb(orderVO.getMbrInnb());
|
shippingVO.setMbrInnb(orderVO.getMbrInnb());
|
||||||
shippingVO.setOrdrSttusCd(orderVO.getOrdrSttusCd());
|
shippingVO.setOrdrSttusCd(orderVO.getOrdrSttusCd());
|
||||||
shippingVO.setMngrFreeDlvyUseAt(StringUtil.isNullToString(shipping.get("mngrFreeDlvyUseAt")) != "" ? StringUtil.isNullToString(shipping.get("mngrFreeDlvyUseAt")) : "N");
|
shippingVO.setMngrFreeDlvyUseAt(StringUtil.isNullToString(dlvylcMapMulti.get("mngrFreeDlvyUseAt")) != "" ? StringUtil.isNullToString(dlvylcMapMulti.get("mngrFreeDlvyUseAt")) : "N");
|
||||||
|
|
||||||
/* *****************************************
|
/* *****************************************
|
||||||
5. 주문배송 정보 등록(GC_ORDER_SHIPPING)
|
5. 주문배송 정보 등록(GC_ORDER_SHIPPING)
|
||||||
***************************************** */
|
***************************************** */
|
||||||
|
insertShipping(ordrTyCd, dlvylcMapMulti, shippingVO);
|
||||||
insertShipping(ordrTyCd, shipping, shippingVO);
|
|
||||||
shippingEscrowVO = shippingVO; //에스크로에 보낼 배송정보
|
shippingEscrowVO = shippingVO; //에스크로에 보낼 배송정보
|
||||||
|
|
||||||
BigInteger ordrDlvyInnb = shippingVO.getOrdrDlvyInnb();
|
BigInteger ordrDlvyInnb = shippingVO.getOrdrDlvyInnb();
|
||||||
|
|
||||||
String mngrFreeDlvyUseAt = (String) shipping.get("mngrFreeDlvyUseAt");
|
String mngrFreeDlvyUseAt = (String) dlvylcMapMulti.get("mngrFreeDlvyUseAt");
|
||||||
|
|
||||||
if ("Y".equals(mngrFreeDlvyUseAt)) { // TODO : cjh : 2025-02-28 무료 배송비 : 'Y' 일 경우 애누리에 할인 금액 세팅 -> 배송비 0원에 여부 데이터만 세팅으로 변경 됌.
|
if ("Y".equals(mngrFreeDlvyUseAt)) { // TODO : cjh : 2025-02-28 무료 배송비 : 'Y' 일 경우 애누리에 할인 금액 세팅 -> 배송비 0원에 여부 데이터만 세팅으로 변경 됌.
|
||||||
// BigDecimal dscntAmt = new BigDecimal(StringUtils.hasText((String) enuri.get("enuriAmt")) ? (String) enuri.get("enuriAmt") : "0");
|
// BigDecimal dscntAmt = new BigDecimal(StringUtils.hasText((String) enuri.get("enuriAmt")) ? (String) enuri.get("enuriAmt") : "0");
|
||||||
// BigDecimal mngrFreeDlvyUseAmt = new BigDecimal((String) shipping.get("mngrFreeDlvyUseAmt"));
|
// BigDecimal mngrFreeDlvyUseAmt = new BigDecimal((String) dlvylcMapMulti.get("mngrFreeDlvyUseAmt"));
|
||||||
|
|
||||||
// enuri.put("enuriAmt", dscntAmt.add(mngrFreeDlvyUseAmt).toString());
|
// enuri.put("enuriAmt", dscntAmt.add(mngrFreeDlvyUseAmt).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 분배된 할인 금액 누적
|
|
||||||
BOOrderRestAmtVO discountInfo = new BOOrderRestAmtVO();
|
|
||||||
|
|
||||||
int optionSeqIndex = 1;
|
List<LinkedHashMap> goodsListMulti = (List<LinkedHashMap>) dlvylcMapMulti.get("goodsList");
|
||||||
BOOrderNoVO optionNoVO = new BOOrderNoVO();
|
|
||||||
optionNoVO.setOrdrInnb(ordrInnb);
|
|
||||||
for (int i = 0; i < goodsList.size(); i++) {
|
|
||||||
LinkedHashMap goods = goodsList.get(i);
|
|
||||||
|
|
||||||
boolean isLast = i == goodsList.size() - 1;
|
List<LinkedHashMap> mergedGoodsList = new ArrayList<>();
|
||||||
|
|
||||||
|
/** CJH
|
||||||
|
* 배송지별 상품 정보 머지
|
||||||
|
* 여러곳 배송일 경우 서버에서 계산해온 상품 정보를 배송지별 수량에 맞게 분배하다보니
|
||||||
|
* 상품 정보와 배송지별 수량정보를 합쳐주는 작업이 필요함
|
||||||
|
* * 일반 주분에서 이벤트 할인 금액, 쿠폰 적용 처리, 적립 마일리지 계산을 배송지별로 계속해서 계산하는데에 어려움이 있어 상품은 유지하고 배송지별로 분배하는 방법을 채택함.
|
||||||
|
*/
|
||||||
|
for (LinkedHashMap multiGoods : goodsListMulti) {
|
||||||
|
int multiGoodsInnb = (int) multiGoods.get("goodsInnb");
|
||||||
|
int multiGoodsOptnInnb = (int) multiGoods.get("goodsOptnInnb");
|
||||||
|
|
||||||
|
// 머지대상
|
||||||
|
int qy = (int) multiGoods.get("qy"); // 주문 수량
|
||||||
|
|
||||||
|
// goodsList에서 상세 정보 찾기
|
||||||
|
LinkedHashMap baseGoods = goodsList.stream()
|
||||||
|
.filter(goods ->
|
||||||
|
Objects.equals((int) goods.get("goodsInnb"), multiGoodsInnb) &&
|
||||||
|
Objects.equals((int) goods.get("goodsOptnInnb"), multiGoodsOptnInnb)
|
||||||
|
)
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
|
||||||
|
if (baseGoods != null) {
|
||||||
|
// 병합
|
||||||
|
LinkedHashMap<String, Object> merged = new LinkedHashMap<>(baseGoods);
|
||||||
|
merged.put("baseQy", merged.get("qy")); // 총 상품별 주문 수량 유지
|
||||||
|
merged.put("qy", qy); // 수량은 배송지별 정보 우선
|
||||||
|
mergedGoodsList.add(merged);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
log.debug("머지 작업 후 mergedGoodsList : {}", mergedGoodsList);
|
||||||
|
log.debug("머지 작업 후 goodsList : {}", goodsList);
|
||||||
|
|
||||||
|
|
||||||
|
/** ------------------------------------------- 사은품 세팅 시작 ------------------------------------------- */
|
||||||
|
List<LinkedHashMap> prsntListMulti = (List<LinkedHashMap>) dlvylcMapMulti.get("prsntList");
|
||||||
|
|
||||||
|
List<LinkedHashMap> mergedPrsntList = new ArrayList<>();
|
||||||
|
|
||||||
|
/** CJH
|
||||||
|
* 배송지별 상품 정보 머지
|
||||||
|
* 여러곳 배송일 경우 서버에서 계산해온 상품 정보를 배송지별 수량에 맞게 분배하다보니
|
||||||
|
* 상품 정보와 배송지별 수량정보를 합쳐주는 작업이 필요함
|
||||||
|
* * 일반 주분에서 이벤트 할인 금액, 쿠폰 적용 처리, 적립 마일리지 계산을 배송지별로 계속해서 계산하는데에 어려움이 있어 상품은 유지하고 배송지별로 분배하는 방법을 채택함.
|
||||||
|
*/
|
||||||
|
for (LinkedHashMap multiGoods : prsntListMulti) {
|
||||||
|
int multiGoodsInnb = (int) multiGoods.get("goodsInnb");
|
||||||
|
int multiGoodsOptnInnb = (int) multiGoods.get("goodsOptnInnb");
|
||||||
|
|
||||||
|
// 머지대상
|
||||||
|
int qy = (int) multiGoods.get("provdCnt"); // 주문 수량
|
||||||
|
|
||||||
|
// goodsList에서 상세 정보 찾기
|
||||||
|
LinkedHashMap baseGoods = prsntList.stream()
|
||||||
|
.filter(goods ->
|
||||||
|
Objects.equals((int) goods.get("goodsInnb"), multiGoodsInnb) &&
|
||||||
|
Objects.equals((int) goods.get("goodsOptnInnb"), multiGoodsOptnInnb)
|
||||||
|
)
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
|
||||||
|
if (baseGoods != null) {
|
||||||
|
// 병합
|
||||||
|
LinkedHashMap<String, Object> merged = new LinkedHashMap<>(baseGoods);
|
||||||
|
merged.put("baseQy", merged.get("provdCnt")); // 총 상품별 주문 수량 유지
|
||||||
|
merged.put("provdCnt", qy); // 수량은 배송지별 정보 우선
|
||||||
|
mergedPrsntList.add(merged);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
log.debug("머지 작업 후 mergedPrsntList : {}", mergedPrsntList);
|
||||||
|
log.debug("머지 작업 후 prsntList : {}", prsntList);
|
||||||
|
/** ------------------------------------------- 사은품 세팅 끝 ------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for (int i = 0; i < mergedGoodsList.size(); i++) {
|
||||||
|
LinkedHashMap goods = mergedGoodsList.get(i);
|
||||||
|
|
||||||
|
boolean isLast = allGoodsCount == allMergedGoodsList.size() - 1;
|
||||||
|
|
||||||
if (!CollectionUtils.isEmpty(goods)) {
|
if (!CollectionUtils.isEmpty(goods)) {
|
||||||
int goodsInnb = (int) goods.get("goodsInnb");
|
int goodsInnb = (int) goods.get("goodsInnb");
|
||||||
@@ -189,10 +390,12 @@ public class BOOrderService {
|
|||||||
|
|
||||||
setGoodsOptn(sopmalCd, goodsInnb, goodsOptnInnb, ordrQy, itemOptnVO); // 상품 옵션정보 세팅
|
setGoodsOptn(sopmalCd, goodsInnb, goodsOptnInnb, ordrQy, itemOptnVO); // 상품 옵션정보 세팅
|
||||||
|
|
||||||
setDscntDtls(goodsInnb, goodsOptnInnb, null, goodsList, shipping, enuri, itemOptnVO, isLast, isLast, discountInfo); // 상품 할인내역 세팅
|
LinkedHashMap goodsSet = goodsSetList.stream().filter(obj-> Objects.equals(goodsInnb, obj.get("goodsInnb")) && Objects.equals(goodsOptnInnb, obj.get("goodsOptnInnb"))).findAny().orElse(null);
|
||||||
|
|
||||||
|
setDscntDtlsMulti(goodsInnb, goodsOptnInnb, null, mergedGoodsList, dlvylcMapMulti, enuri, itemOptnVO, isLast, isLast, discountInfo, goodsList, goodsSet); // 상품 할인내역 세팅 - 여러곳 배송
|
||||||
|
|
||||||
if (StringUtils.hasText((String) purchsr.get("mbrId"))) { // 회원
|
if (StringUtils.hasText((String) purchsr.get("mbrId"))) { // 회원
|
||||||
setMlgAmt(ordrTyCd, goodsInnb, goodsOptnInnb, ordrQy, goodsList, itemOptnVO); // 상품 마일리지 정보 세팅
|
setMlgAmtMulti(ordrTyCd, goodsInnb, goodsOptnInnb, ordrQy, mergedGoodsList, itemOptnVO, goodsSet); // 상품 마일리지 정보 세팅 - 여러곳 배송
|
||||||
} else {
|
} else {
|
||||||
itemOptnVO.setMlgAccmlUnit(new BigDecimal(0)); // 마일리지적립금액(개당)
|
itemOptnVO.setMlgAccmlUnit(new BigDecimal(0)); // 마일리지적립금액(개당)
|
||||||
itemOptnVO.setMlgAccmlRest(new BigDecimal(0)); // 마일리지적립금액(짜투리)
|
itemOptnVO.setMlgAccmlRest(new BigDecimal(0)); // 마일리지적립금액(짜투리)
|
||||||
@@ -201,6 +404,9 @@ public class BOOrderService {
|
|||||||
itemOptnVO.setOrdrGoodsOptnInnb(orderNoService.generateOrderItemOptnNo());
|
itemOptnVO.setOrdrGoodsOptnInnb(orderNoService.generateOrderItemOptnNo());
|
||||||
mapper.insertOrdrGoodsOption(itemOptnVO); // 주문 상품 옵션 정보 등록
|
mapper.insertOrdrGoodsOption(itemOptnVO); // 주문 상품 옵션 정보 등록
|
||||||
|
|
||||||
|
// 상품별 수량 체크
|
||||||
|
goodsSet.put("setQy", (int) goodsSet.get("setQy") + ordrQy);
|
||||||
|
|
||||||
String inputOptn = (String) goods.get("inputOptn");
|
String inputOptn = (String) goods.get("inputOptn");
|
||||||
|
|
||||||
if (StringUtils.hasText(inputOptn)) {
|
if (StringUtils.hasText(inputOptn)) {
|
||||||
@@ -236,14 +442,139 @@ public class BOOrderService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 전체 수량의 마지막 체크
|
||||||
|
allGoodsCount = allGoodsCount + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ***********************************************************
|
/* ***********************************************************
|
||||||
7. 주문 상품 옵션(사은품) 정보 등록(GC_ORDER_ITEM_OPTION)
|
7. 주문 상품 옵션(사은품) 정보 등록(GC_ORDER_ITEM_OPTION)
|
||||||
*********************************************************** */
|
*********************************************************** */
|
||||||
if (!CollectionUtils.isEmpty(prsntList)) {
|
if (!CollectionUtils.isEmpty(prsntList)) {
|
||||||
insertPrsnt(sopmalCd, ordrInnb, shippingVO.getOrdrDlvyInnb(), prsntList);
|
insertPrsnt(sopmalCd, ordrInnb, ordrDlvyInnb, mergedPrsntList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// BOOrderShippingVO shippingVO = new BOOrderShippingVO();
|
||||||
|
//
|
||||||
|
// shippingVO.setSopmalCd(sopmalCd);
|
||||||
|
// shippingVO.setOrdrInnb(ordrInnb);
|
||||||
|
// 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");
|
||||||
|
//
|
||||||
|
// /* *****************************************
|
||||||
|
// 5. 주문배송 정보 등록(GC_ORDER_SHIPPING)
|
||||||
|
// ***************************************** */
|
||||||
|
//
|
||||||
|
// insertShipping(ordrTyCd, shipping, shippingVO);
|
||||||
|
// shippingEscrowVO = shippingVO; //에스크로에 보낼 배송정보
|
||||||
|
//
|
||||||
|
// BigInteger ordrDlvyInnb = shippingVO.getOrdrDlvyInnb();
|
||||||
|
//
|
||||||
|
// String mngrFreeDlvyUseAt = (String) shipping.get("mngrFreeDlvyUseAt");
|
||||||
|
//
|
||||||
|
// if ("Y".equals(mngrFreeDlvyUseAt)) { // TODO : cjh : 2025-02-28 무료 배송비 : 'Y' 일 경우 애누리에 할인 금액 세팅 -> 배송비 0원에 여부 데이터만 세팅으로 변경 됌.
|
||||||
|
//// BigDecimal dscntAmt = new BigDecimal(StringUtils.hasText((String) enuri.get("enuriAmt")) ? (String) enuri.get("enuriAmt") : "0");
|
||||||
|
//// BigDecimal mngrFreeDlvyUseAmt = new BigDecimal((String) shipping.get("mngrFreeDlvyUseAmt"));
|
||||||
|
//
|
||||||
|
// // enuri.put("enuriAmt", dscntAmt.add(mngrFreeDlvyUseAmt).toString());
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 분배된 할인 금액 누적
|
||||||
|
// BOOrderRestAmtVO discountInfo = new BOOrderRestAmtVO();
|
||||||
|
//
|
||||||
|
// int optionSeqIndex = 1;
|
||||||
|
// BOOrderNoVO optionNoVO = new BOOrderNoVO();
|
||||||
|
// optionNoVO.setOrdrInnb(ordrInnb);
|
||||||
|
// for (int i = 0; i < goodsList.size(); i++) {
|
||||||
|
// LinkedHashMap goods = goodsList.get(i);
|
||||||
|
//
|
||||||
|
// boolean isLast = i == goodsList.size() - 1;
|
||||||
|
//
|
||||||
|
// if (!CollectionUtils.isEmpty(goods)) {
|
||||||
|
// int goodsInnb = (int) goods.get("goodsInnb");
|
||||||
|
// int goodsOptnInnb = (int) goods.get("goodsOptnInnb");
|
||||||
|
// int ordrQy = (int) goods.get("qy");
|
||||||
|
//
|
||||||
|
// BOOrderItemVO orderItemVO = insertedGoodsList.stream().filter(obj-> Objects.equals(ordrInnb, obj.getOrdrInnb()) &&
|
||||||
|
// Objects.equals(BigInteger.valueOf(goodsInnb), obj.getGoodsInnb())).findAny().orElse(null);
|
||||||
|
//
|
||||||
|
// /* ***********************************************
|
||||||
|
// 6. 주문 상품 옵션 정보 등록(GC_ORDER_ITEM_OPTION)
|
||||||
|
// 주문 상품 입력 옵션 정보 등록
|
||||||
|
// *********************************************** */
|
||||||
|
// if (orderItemVO != null) {
|
||||||
|
// BOOrderItemOptnVO itemOptnVO = new BOOrderItemOptnVO();
|
||||||
|
//
|
||||||
|
// itemOptnVO.setSopmalCd(sopmalCd);
|
||||||
|
// itemOptnVO.setOrdrGoodsInnb(orderItemVO.getOrdrGoodsInnb());
|
||||||
|
// itemOptnVO.setOrdrDlvyInnb(ordrDlvyInnb);
|
||||||
|
// itemOptnVO.setOrdrInnb(ordrInnb);
|
||||||
|
// itemOptnVO.setOrdrSttusCd("0"); // 주문상태(99:결제실패)
|
||||||
|
//
|
||||||
|
// setGoodsOptn(sopmalCd, goodsInnb, goodsOptnInnb, ordrQy, itemOptnVO); // 상품 옵션정보 세팅
|
||||||
|
//
|
||||||
|
// setDscntDtls(goodsInnb, goodsOptnInnb, null, goodsList, shipping, enuri, itemOptnVO, isLast, isLast, discountInfo); // 상품 할인내역 세팅
|
||||||
|
//
|
||||||
|
// if (StringUtils.hasText((String) purchsr.get("mbrId"))) { // 회원
|
||||||
|
// setMlgAmt(ordrTyCd, goodsInnb, goodsOptnInnb, ordrQy, goodsList, itemOptnVO); // 상품 마일리지 정보 세팅
|
||||||
|
// } else {
|
||||||
|
// itemOptnVO.setMlgAccmlUnit(new BigDecimal(0)); // 마일리지적립금액(개당)
|
||||||
|
// itemOptnVO.setMlgAccmlRest(new BigDecimal(0)); // 마일리지적립금액(짜투리)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// itemOptnVO.setOrdrGoodsOptnInnb(orderNoService.generateOrderItemOptnNo());
|
||||||
|
// mapper.insertOrdrGoodsOption(itemOptnVO); // 주문 상품 옵션 정보 등록
|
||||||
|
//
|
||||||
|
// 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(orderVO.getOrdrSttusCd());
|
||||||
|
// 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]);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// itemOptnVO.setOrdrGoodsOptnInnb(orderNoService.generateOrderItemOptnNo());
|
||||||
|
// mapper.insertOrdrGoodsOption(inputOptnVO); // 주문 상품 입력 옵션 정보 등록
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /* ***********************************************************
|
||||||
|
// 7. 주문 상품 옵션(사은품) 정보 등록(GC_ORDER_ITEM_OPTION)
|
||||||
|
// *********************************************************** */
|
||||||
|
// if (!CollectionUtils.isEmpty(prsntList)) {
|
||||||
|
// insertPrsnt(sopmalCd, ordrInnb, shippingVO.getOrdrDlvyInnb(), prsntList);
|
||||||
|
// }
|
||||||
} else if ("05".equals(ordrTyCd)) { // 여러곳 배송, 선물하기
|
} else if ("05".equals(ordrTyCd)) { // 여러곳 배송, 선물하기
|
||||||
log.debug("여러곳 배송 > 배송지별 배송정보 => {} ", new Gson().toJson(dlvylcListMulti));
|
log.debug("여러곳 배송 > 배송지별 배송정보 => {} ", new Gson().toJson(dlvylcListMulti));
|
||||||
|
|
||||||
@@ -1219,18 +1550,30 @@ public class BOOrderService {
|
|||||||
shippingVO.setDlvyMthCd("01"); // 택배
|
shippingVO.setDlvyMthCd("01"); // 택배
|
||||||
|
|
||||||
if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원개인결제, 정기배송
|
if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원개인결제, 정기배송
|
||||||
shippingVO.setRecpntNm((String) shipping.get("recpntNm"));
|
shippingVO.setRecpntNm(StringUtil.isNullToString(shipping.get("recpntNm")));
|
||||||
shippingVO.setRecpntTelnb((String) shipping.get("recpntTelnb"));
|
shippingVO.setRecpntTelnb(StringUtil.isNullToString(shipping.get("recpntTelnb")));
|
||||||
shippingVO.setRecpntMbtlnb((String) shipping.get("recpntMbtlnb"));
|
shippingVO.setRecpntMbtlnb(StringUtil.isNullToString(shipping.get("recpntMbtlnb")));
|
||||||
|
|
||||||
shippingVO.setDlvylcZip((String) shipping.get("dlvylcZip"));
|
shippingVO.setDlvylcZip(StringUtil.isNullToString(shipping.get("dlvylcZip")));
|
||||||
shippingVO.setDlvylcAdresDvCd((String) shipping.get("dlvylcAdresDvCd"));
|
shippingVO.setDlvylcAdresDvCd(StringUtil.isNullToString(shipping.get("dlvylcAdresDvCd")));
|
||||||
shippingVO.setDlvylcLnbAdres((String) shipping.get("dlvylcLnbAdres"));
|
shippingVO.setDlvylcLnbAdres(StringUtil.isNullToString(shipping.get("dlvylcLnbAdres")));
|
||||||
shippingVO.setDlvylcRnmAdres((String) shipping.get("dlvylcRnmAdres"));
|
shippingVO.setDlvylcRnmAdres(StringUtil.isNullToString(shipping.get("dlvylcRnmAdres")));
|
||||||
shippingVO.setDlvylcAdresDtl((String) shipping.get("dlvylcAdresDtl"));
|
shippingVO.setDlvylcAdresDtl(StringUtil.isNullToString(shipping.get("dlvylcAdresDtl")));
|
||||||
|
|
||||||
shippingVO.setDlvyMssageCn((String) shipping.get("dlvyMssageCn"));
|
shippingVO.setDlvyMssageCn(StringUtil.isNullToString(shipping.get("dlvyMssageCn")));
|
||||||
shippingVO.setDlvyCycleCd((String) shipping.get("dlvyCycleCd"));
|
shippingVO.setDlvyCycleCd(StringUtil.isNullToString(shipping.get("dlvyCycleCd")));
|
||||||
|
// shippingVO.setRecpntNm((String) shipping.get("recpntNm"));
|
||||||
|
// shippingVO.setRecpntTelnb((String) shipping.get("recpntTelnb"));
|
||||||
|
// shippingVO.setRecpntMbtlnb((String) shipping.get("recpntMbtlnb"));
|
||||||
|
//
|
||||||
|
// shippingVO.setDlvylcZip((String) shipping.get("dlvylcZip"));
|
||||||
|
// shippingVO.setDlvylcAdresDvCd((String) shipping.get("dlvylcAdresDvCd"));
|
||||||
|
// shippingVO.setDlvylcLnbAdres((String) shipping.get("dlvylcLnbAdres"));
|
||||||
|
// shippingVO.setDlvylcRnmAdres((String) shipping.get("dlvylcRnmAdres"));
|
||||||
|
// shippingVO.setDlvylcAdresDtl((String) shipping.get("dlvylcAdresDtl"));
|
||||||
|
//
|
||||||
|
// shippingVO.setDlvyMssageCn((String) shipping.get("dlvyMssageCn"));
|
||||||
|
// shippingVO.setDlvyCycleCd((String) shipping.get("dlvyCycleCd"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ("05".equals(ordrTyCd)) { // 여러곳 배송
|
if ("05".equals(ordrTyCd)) { // 여러곳 배송
|
||||||
@@ -2194,6 +2537,9 @@ public class BOOrderService {
|
|||||||
throw new WnbtRestException("주문배송 정보를 찾을 수 없습니다.");
|
throw new WnbtRestException("주문배송 정보를 찾을 수 없습니다.");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// if (CollectionUtils.isEmpty(multiOrdrDlvylc)) {
|
||||||
|
// throw new WnbtRestException("주문배송 정보를 찾을 수 없습니다.");
|
||||||
|
// }
|
||||||
if (CollectionUtils.isEmpty(shipping)) {
|
if (CollectionUtils.isEmpty(shipping)) {
|
||||||
throw new WnbtRestException("주문배송 정보를 찾을 수 없습니다.");
|
throw new WnbtRestException("주문배송 정보를 찾을 수 없습니다.");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -177,6 +177,7 @@ public class BOPurchsService {
|
|||||||
public DataMap selectDftDlvylc(BOPurchsrVO purchsrVO) {
|
public DataMap selectDftDlvylc(BOPurchsrVO purchsrVO) {
|
||||||
DataMap dftDlvylc = new DataMap();
|
DataMap dftDlvylc = new DataMap();
|
||||||
|
|
||||||
|
//기본배송지여부
|
||||||
purchsrVO.setDftDlvylcAt("Y");
|
purchsrVO.setDftDlvylcAt("Y");
|
||||||
|
|
||||||
List<DataMap> dlvylcAdresList = mapper.selectDlvylcList(purchsrVO);
|
List<DataMap> dlvylcAdresList = mapper.selectDlvylcList(purchsrVO);
|
||||||
@@ -1854,6 +1855,8 @@ public class BOPurchsService {
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
String defaultAdressAt = "";
|
String defaultAdressAt = "";
|
||||||
|
String dlvylcAreaCd = (String) param.get("dlvylcAreaCd");
|
||||||
|
String prefcd = (String) param.get("prefcd");
|
||||||
|
|
||||||
List<LinkedHashMap> goodsList = (List<LinkedHashMap>) param.get("goodsList");
|
List<LinkedHashMap> goodsList = (List<LinkedHashMap>) param.get("goodsList");
|
||||||
|
|
||||||
@@ -1922,7 +1925,7 @@ public class BOPurchsService {
|
|||||||
if (dlvylc.get("dlvyAmt") != null) {
|
if (dlvylc.get("dlvyAmt") != null) {
|
||||||
dlvyAmtBydlvylc = dlvyAmtBydlvylc + castAmt(dlvylc, "dlvyAmt");
|
dlvyAmtBydlvylc = dlvyAmtBydlvylc + castAmt(dlvylc, "dlvyAmt");
|
||||||
} else {
|
} else {
|
||||||
dlvyAmtMap = getDlvyAmt(goodsList, sopmalCd, defaultAdressAt);
|
dlvyAmtMap = getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd);
|
||||||
|
|
||||||
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
|
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
|
||||||
dlvyAmtBydlvylc = ((BigDecimal) dlvyAmtMap.get("dlvyAmt")).intValue();
|
dlvyAmtBydlvylc = ((BigDecimal) dlvyAmtMap.get("dlvyAmt")).intValue();
|
||||||
@@ -1947,7 +1950,7 @@ public class BOPurchsService {
|
|||||||
if (dlvylcMap.get("dlvyAmt") != null) {
|
if (dlvylcMap.get("dlvyAmt") != null) {
|
||||||
dlvyAmtBydlvylc = dlvyAmtBydlvylc + castAmt(dlvylcMap, "dlvyAmt");
|
dlvyAmtBydlvylc = dlvyAmtBydlvylc + castAmt(dlvylcMap, "dlvyAmt");
|
||||||
} else {
|
} else {
|
||||||
dlvyAmtMap = getDlvyAmt(goodsList, sopmalCd, defaultAdressAt);
|
dlvyAmtMap = getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd);
|
||||||
|
|
||||||
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
|
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
|
||||||
dlvyAmtBydlvylc = ((BigDecimal) dlvyAmtMap.get("dlvyAmt")).intValue();
|
dlvyAmtBydlvylc = ((BigDecimal) dlvyAmtMap.get("dlvyAmt")).intValue();
|
||||||
@@ -1958,7 +1961,7 @@ public class BOPurchsService {
|
|||||||
dlvyAmt = new BigDecimal(dlvyAmtBydlvylc);
|
dlvyAmt = new BigDecimal(dlvyAmtBydlvylc);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dlvyAmtMap = getDlvyAmt(goodsList, sopmalCd, defaultAdressAt);
|
dlvyAmtMap = getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd);
|
||||||
|
|
||||||
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
|
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
|
||||||
dlvyAmt = (BigDecimal) dlvyAmtMap.get("dlvyAmt");
|
dlvyAmt = (BigDecimal) dlvyAmtMap.get("dlvyAmt");
|
||||||
@@ -2104,9 +2107,10 @@ public class BOPurchsService {
|
|||||||
* @param goodsList
|
* @param goodsList
|
||||||
* @return List<DataMap>
|
* @return List<DataMap>
|
||||||
*/
|
*/
|
||||||
public DataMap getDlvyAmt(List<LinkedHashMap> goodsList, String sopmalCd, String defaultAdressAt) {
|
public DataMap getDlvyAmt(List<LinkedHashMap> goodsList, String sopmalCd, String defaultAdressAt, String dlvylcAreaCd) {
|
||||||
DataMap dlvyAmtMap = null;
|
DataMap dlvyAmtMap = null;
|
||||||
log.debug("우편번호 확인 : {}", defaultAdressAt);
|
log.debug("우편번호 확인 : {}", defaultAdressAt);
|
||||||
|
log.debug("getDlvyAmt-goodsList : {}", goodsList);
|
||||||
|
|
||||||
BigDecimal rlDlvyAmt = new BigDecimal(0); // 실 최종 배송비
|
BigDecimal rlDlvyAmt = new BigDecimal(0); // 실 최종 배송비
|
||||||
|
|
||||||
@@ -2171,45 +2175,65 @@ public class BOPurchsService {
|
|||||||
|
|
||||||
DataMap shippingGrouping = mapper.selectShippingGrouping(param);
|
DataMap shippingGrouping = mapper.selectShippingGrouping(param);
|
||||||
|
|
||||||
|
//"KR".equals(dlvylcAreaCd)인 경우
|
||||||
String dlvyGroupDvCd = (String) shippingGrouping.get("dlvyGroupDvCd");
|
String dlvyGroupDvCd = (String) shippingGrouping.get("dlvyGroupDvCd");
|
||||||
BigDecimal dftDlvyAmt = (BigDecimal) shippingGrouping.get("dftDlvyAmt"); // 기본배송비
|
BigDecimal dftDlvyAmt = (BigDecimal) shippingGrouping.get("dftDlvyAmt"); // 기본배송비
|
||||||
BigDecimal dlvyAmt = dftDlvyAmt; // 배송비
|
BigDecimal dlvyAmt = dftDlvyAmt; // 배송비
|
||||||
String dlvyAreaAditAt = (String) shippingGrouping.get("dlvyAreaAditAt"); // 도서산간 추가 배송비 조건
|
String dlvyAreaAditAt = (String) shippingGrouping.get("dlvyAreaAditAt"); // 도서산간 추가 배송비 조건
|
||||||
BigDecimal areaAditDlvyAmt = (BigDecimal) shippingGrouping.get("areaAditDlvyAmt"); // 도서산간 추가 배송비
|
BigDecimal areaAditDlvyAmt = (BigDecimal) shippingGrouping.get("areaAditDlvyAmt"); // 도서산간 추가 배송비
|
||||||
|
String amtCndUseAt = (String) shippingGrouping.get("amtCndUseAt"); // 금액조건
|
||||||
|
BigDecimal amtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt");
|
||||||
|
String cntCndUseAt = (String) shippingGrouping.get("cntCndUseAt"); // 수량조건
|
||||||
|
BigDecimal cntCndAditAmt = (BigDecimal) shippingGrouping.get("cntCndAditAmt"); // 수량
|
||||||
|
|
||||||
|
if("JP".equals(dlvylcAreaCd)){
|
||||||
|
// dlvyGroupDvCd = (String) shippingGrouping.get("dlvyGroupDvCd2");
|
||||||
|
dftDlvyAmt = (BigDecimal) shippingGrouping.get("dftDlvyAmt2"); // 기본배송비
|
||||||
|
dlvyAmt = dftDlvyAmt; // 배송비
|
||||||
|
dlvyAreaAditAt = (String) shippingGrouping.get("dlvyAreaAditAt2"); // 도서산간 추가 배송비 조건
|
||||||
|
areaAditDlvyAmt = (BigDecimal) shippingGrouping.get("areaAditDlvyAmt2"); // 도서산간 추가 배송비
|
||||||
|
amtCndUseAt = (String) shippingGrouping.get("amtCndUseAt2"); // 금액조건
|
||||||
|
amtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt");
|
||||||
|
cntCndUseAt = (String) shippingGrouping.get("cntCndUseAt2"); // 수량조건
|
||||||
|
cntCndAditAmt = (BigDecimal) shippingGrouping.get("cntCndAditAmt2"); // 수량
|
||||||
|
}
|
||||||
|
|
||||||
// 무료배송(조건부)
|
// 무료배송(조건부)
|
||||||
if ("01".equals(dlvyGroupDvCd)) {
|
if ("01".equals(dlvyGroupDvCd)) {
|
||||||
// 조건(적용상품이 1건일 경우)
|
// 조건(적용상품이 1건일 경우)
|
||||||
String amtCndUseAt = (String) shippingGrouping.get("amtCndUseAt"); // 금액조건
|
// String amtCndUseAt = (String) shippingGrouping.get("amtCndUseAt"); // 금액조건
|
||||||
String cntCndUseAt = (String) shippingGrouping.get("cntCndUseAt"); // 수량조건
|
// String cntCndUseAt = (String) shippingGrouping.get("cntCndUseAt"); // 수량조건
|
||||||
|
|
||||||
for (DataMap goodsMap : goodsByDlvyGroupList) {
|
for (DataMap goodsMap : goodsByDlvyGroupList) {
|
||||||
|
|
||||||
BigDecimal qy = (BigDecimal) goodsMap.get("qy"); // 수량
|
// BigDecimal qy = (BigDecimal) goodsMap.get("qy"); // 수량
|
||||||
|
|
||||||
// 금액 조건
|
// 금액 조건
|
||||||
if ("Y".equals(amtCndUseAt)) {
|
if ("Y".equals(amtCndUseAt)) {
|
||||||
BigDecimal amtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt"); // 금액조건 추가금액
|
// BigDecimal amtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt"); // 금액조건 추가금액
|
||||||
BigDecimal slepric = (BigDecimal) goodsMap.get("subSlepric"); // 판매가 * 수량
|
BigDecimal slepric = (BigDecimal) goodsMap.get("subSlepric"); // 판매가 * 수량
|
||||||
|
|
||||||
if (slepric.compareTo(amtCndAditAmt) > 0) {
|
if (slepric.compareTo(amtCndAditAmt) > 0) {
|
||||||
dlvyAmt = new BigDecimal(0);
|
dlvyAmt = new BigDecimal(0);
|
||||||
} else {
|
|
||||||
//배송비 합(같은상품 수량당 배송비 책정)
|
|
||||||
dlvyAmt = dlvyAmt.multiply(qy);
|
|
||||||
}
|
}
|
||||||
|
// else {
|
||||||
|
// //배송비 합(같은상품 수량당 배송비 책정)
|
||||||
|
// dlvyAmt = dlvyAmt.multiply(qy);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
// 수량 조건
|
// 수량 조건
|
||||||
if ("Y".equals(cntCndUseAt)) {
|
if ("Y".equals(cntCndUseAt)) {
|
||||||
BigDecimal cntCndAditAmt = (BigDecimal) shippingGrouping.get("cntCndAditAmt"); // 금액조건 추가금액
|
// 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);
|
dlvyAmt = new BigDecimal(0);
|
||||||
} else {
|
|
||||||
//배송비 합(같은상품 수량당 배송비 책정)
|
|
||||||
dlvyAmt = dlvyAmt.multiply(qy);
|
|
||||||
}
|
}
|
||||||
|
// else {
|
||||||
|
// //배송비 합(같은상품 수량당 배송비 책정)
|
||||||
|
// dlvyAmt = dlvyAmt.multiply(qy);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2268,29 +2292,66 @@ public class BOPurchsService {
|
|||||||
|
|
||||||
} else if ("03".equals(dlvyGroupDvCd)) { // 유료배송
|
} else if ("03".equals(dlvyGroupDvCd)) { // 유료배송
|
||||||
|
|
||||||
|
if("KR".equals(dlvylcAreaCd) || "JP".equals(dlvylcAreaCd)) {
|
||||||
|
|
||||||
BigDecimal goodsQy = new BigDecimal(0);
|
BigDecimal goodsQy = new BigDecimal(0);
|
||||||
// 유료배송비 합(같은상품 수량당 배송비 책정)
|
|
||||||
for (DataMap goodsMap : goodsByDlvyGroupList) {
|
for (DataMap goodsMap : goodsByDlvyGroupList) {
|
||||||
goodsQy = (BigDecimal) goodsMap.get("qy");
|
|
||||||
dlvyAmt = dlvyAmt.multiply(goodsQy);
|
|
||||||
|
|
||||||
paidDlvyAmt = paidDlvyAmt.add(dlvyAmt);
|
BigDecimal qy = (BigDecimal) goodsMap.get("qy"); // 수량
|
||||||
|
|
||||||
|
// 수량 조건
|
||||||
|
if ("Y".equals(cntCndUseAt)) {
|
||||||
|
|
||||||
|
qy = (BigDecimal) goodsMap.get("qy"); // 수량
|
||||||
|
|
||||||
|
if (qy.compareTo(cntCndAditAmt) > 0) {
|
||||||
|
goodsQy = qy.divide(cntCndAditAmt, 0, RoundingMode.CEILING);
|
||||||
|
//배송비 합(같은상품 수량당 배송비 책정)
|
||||||
|
BigDecimal multidlvyAmt = dlvyAmt.multiply(goodsQy);
|
||||||
|
paidDlvyAmt = paidDlvyAmt.add(multidlvyAmt);
|
||||||
|
|
||||||
|
// 추가배송비 계산 (MUL)
|
||||||
|
if (!StringUtils.isEmpty(dlvyAreaAditAt) && "Y".equals(dlvyAreaAditAt)) {
|
||||||
|
if (!StringUtils.isEmpty(defaultAdressAt) && "Y".equals(defaultAdressAt)) {
|
||||||
|
addPaidDlvyAmt = addPaidDlvyAmt.add(areaAditDlvyAmt.multiply(goodsQy)); // 유료 배송 도서산간 추가 배송비
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 유료배송비 합(같은상품 묶음 처리)
|
|
||||||
//paidDlvyAmt = paidDlvyAmt.add(dlvyAmt);
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// 수량당 배송비가 1인경우
|
||||||
|
paidDlvyAmt = paidDlvyAmt.add(dlvyAmt);
|
||||||
|
// 추가배송비 계산
|
||||||
if (!StringUtils.isEmpty(dlvyAreaAditAt) && "Y".equals(dlvyAreaAditAt)) {
|
if (!StringUtils.isEmpty(dlvyAreaAditAt) && "Y".equals(dlvyAreaAditAt)) {
|
||||||
if (!StringUtils.isEmpty(defaultAdressAt) && "Y".equals(defaultAdressAt)) {
|
if (!StringUtils.isEmpty(defaultAdressAt) && "Y".equals(defaultAdressAt)) {
|
||||||
addPaidDlvyAmt = addPaidDlvyAmt.add(areaAditDlvyAmt); // 유료 배송 도서산간 추가 배송비
|
addPaidDlvyAmt = addPaidDlvyAmt.add(areaAditDlvyAmt); // 유료 배송 도서산간 추가 배송비
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
//수량 조건 없는 경우
|
||||||
|
paidDlvyAmt = paidDlvyAmt.add(dlvyAmt); // 유료배송비 합
|
||||||
|
// 추가배송비 계산
|
||||||
|
if (!StringUtils.isEmpty(dlvyAreaAditAt) && "Y".equals(dlvyAreaAditAt)) {
|
||||||
|
if (!StringUtils.isEmpty(defaultAdressAt) && "Y".equals(defaultAdressAt)) {
|
||||||
|
addPaidDlvyAmt = addPaidDlvyAmt.add(areaAditDlvyAmt); // 유료 배송 도서산간 추가 배송비
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} //for
|
||||||
|
} else {
|
||||||
|
dlvyAmt = new BigDecimal(0);
|
||||||
|
dftDlvyAmt = new BigDecimal(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
BigDecimal finalDlvyAmt = dlvyAmt;
|
BigDecimal finalDlvyAmt = dlvyAmt;
|
||||||
BigDecimal amtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt"); // 금액조건 추가금액
|
BigDecimal finalDftDlvyAmt = dftDlvyAmt;
|
||||||
|
// BigDecimal amtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt"); // 금액조건 추가금액
|
||||||
DataMap dlvyGroupMap = new DataMap(){{
|
DataMap dlvyGroupMap = new DataMap(){{
|
||||||
put("dlvyGroupInnb", dlvyGroupInnb);
|
put("dlvyGroupInnb", dlvyGroupInnb);
|
||||||
put("dftDlvyAmt", dftDlvyAmt);
|
put("dftDlvyAmt", finalDftDlvyAmt);
|
||||||
put("dlvyAmt", finalDlvyAmt);
|
put("dlvyAmt", finalDlvyAmt);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
|||||||
@@ -89,4 +89,11 @@ public class BOPurchsrVO extends AbstractVO {
|
|||||||
|
|
||||||
/** 기본배송지 여부 */
|
/** 기본배송지 여부 */
|
||||||
private String dftDlvylcAt;
|
private String dftDlvylcAt;
|
||||||
|
|
||||||
|
/** 도도부현 코드(일본) */
|
||||||
|
private String prefcd;
|
||||||
|
|
||||||
|
/**배송지역코드*/
|
||||||
|
private String dlvylcAreaCd;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -206,7 +206,11 @@ public class BOAtmcRcpmnyCnfirmVO extends AbstractVO {
|
|||||||
/** 입금여부3 */
|
/** 입금여부3 */
|
||||||
private String srchOrdrSttusCd3;
|
private String srchOrdrSttusCd3;
|
||||||
|
|
||||||
|
private String srchDatePick;
|
||||||
|
|
||||||
/** 회원 구분 코드 */
|
/** 회원 구분 코드 */
|
||||||
private String mbrDvCd;
|
private String mbrDvCd;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -767,6 +767,8 @@ public interface BOOrdrMapper {
|
|||||||
*/
|
*/
|
||||||
public String selectBODefaultAdressAtInqire(DataMap vo);
|
public String selectBODefaultAdressAtInqire(DataMap vo);
|
||||||
|
|
||||||
|
public String selectBODefaultAdressAtInqire2(DataMap vo);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 주문 상품 옵션별 정보와 배송그룹 정보
|
* 주문 상품 옵션별 정보와 배송그룹 정보
|
||||||
|
|||||||
@@ -2824,7 +2824,7 @@ public class BOOrdrService{
|
|||||||
cashVO.setSopmalCd(ordrVO.getSopmalCd());
|
cashVO.setSopmalCd(ordrVO.getSopmalCd());
|
||||||
cashVO.setMbrDvCd(ordrVO.getMbrDvCd());
|
cashVO.setMbrDvCd(ordrVO.getMbrDvCd());
|
||||||
cashVO.setMbrInnb(String.valueOf(ordrVO.getMbrInnb()));
|
cashVO.setMbrInnb(String.valueOf(ordrVO.getMbrInnb()));
|
||||||
|
//구매자조회
|
||||||
DataMap purchsrMap = purchsService.selectPurchsr(purchsrVO);
|
DataMap purchsrMap = purchsService.selectPurchsr(purchsrVO);
|
||||||
|
|
||||||
if (!CollectionUtils.isEmpty(purchsrMap)) {
|
if (!CollectionUtils.isEmpty(purchsrMap)) {
|
||||||
@@ -3003,6 +3003,8 @@ public class BOOrdrService{
|
|||||||
public Map<String, Object> selectSetleExpectAmt(DataMap param) throws Exception {
|
public Map<String, Object> selectSetleExpectAmt(DataMap param) throws Exception {
|
||||||
Map<String, Object> content = new HashMap<>();
|
Map<String, Object> content = new HashMap<>();
|
||||||
|
|
||||||
|
log.debug("selectSetleExpectAmt-param : {}", param);
|
||||||
|
|
||||||
LinkedHashMap setleExpectAmtMap = new LinkedHashMap() {{
|
LinkedHashMap setleExpectAmtMap = new LinkedHashMap() {{
|
||||||
put("goodsAmt", 0);
|
put("goodsAmt", 0);
|
||||||
put("dlvyAmt", 0);
|
put("dlvyAmt", 0);
|
||||||
@@ -3376,10 +3378,16 @@ public class BOOrdrService{
|
|||||||
|
|
||||||
// ############################################## 배송지별 배송비 계산 START ##############################################
|
// ############################################## 배송지별 배송비 계산 START ##############################################
|
||||||
|
|
||||||
String ordrAdressZip = StringUtil.isNullToString(param.get("dlvylcZip"));
|
LinkedHashMap<String, Object> shippingMap = (LinkedHashMap) param.get("shipping");
|
||||||
|
|
||||||
|
// String ordrAdressZip = StringUtil.isNullToString(param.get("dlvylcZip"));
|
||||||
|
String ordrAdressZip = StringUtil.isNullToString(shippingMap.get("dlvylcZip"));
|
||||||
|
String dlvylcAreaCd = (String) shippingMap.get("dlvylcAreaCd");
|
||||||
|
String prefcd = (String) shippingMap.get("prefcd");
|
||||||
DataMap defaultAdressVO = new DataMap() {{ //
|
DataMap defaultAdressVO = new DataMap() {{ //
|
||||||
put("sopmalCd", sopmalCd); // 쇼핑몰 코드
|
put("sopmalCd", sopmalCd); // 쇼핑몰 코드
|
||||||
put("zip", ordrAdressZip); // 우편번호
|
put("zip", ordrAdressZip); // 우편번호
|
||||||
|
put("prefcd", prefcd); // 도도부현코드
|
||||||
}};
|
}};
|
||||||
|
|
||||||
String defaultAdressAt = "N"; // 내가 제2권역 주소인지 여부
|
String defaultAdressAt = "N"; // 내가 제2권역 주소인지 여부
|
||||||
@@ -3411,15 +3419,21 @@ public class BOOrdrService{
|
|||||||
dlvyCouponDscntAmt = dlvyCouponDscntAmt.add(new BigDecimal(applyDlvylcCouponDscntAmt));
|
dlvyCouponDscntAmt = dlvyCouponDscntAmt.add(new BigDecimal(applyDlvylcCouponDscntAmt));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if("KR".equals(dlvylcAreaCd)){
|
||||||
defaultAdressVO.put("zip", StringUtil.isNullToString(dlvylcMapMulti.get("dlvylcZip")));
|
defaultAdressVO.put("zip", StringUtil.isNullToString(dlvylcMapMulti.get("dlvylcZip")));
|
||||||
log.debug("defaultAdressVO : {}", defaultAdressVO);
|
log.debug("defaultAdressVO-KR : {}", defaultAdressVO);
|
||||||
defaultAdressAt = mapper.selectBODefaultAdressAtInqire(defaultAdressVO);
|
defaultAdressAt = mapper.selectBODefaultAdressAtInqire(defaultAdressVO);
|
||||||
|
}
|
||||||
|
if("JP".equals(dlvylcAreaCd)){
|
||||||
|
defaultAdressVO.put("prefcd", StringUtil.isNullToString(dlvylcMapMulti.get("prefcd")));
|
||||||
|
log.debug("defaultAdressVO-JP : {}", defaultAdressVO);
|
||||||
|
defaultAdressAt = mapper.selectBODefaultAdressAtInqire2(defaultAdressVO);
|
||||||
|
}
|
||||||
|
|
||||||
List<LinkedHashMap> goodsListMulti = (List<LinkedHashMap>) dlvylcMapMulti.get("goodsList");
|
List<LinkedHashMap> goodsListMulti = (List<LinkedHashMap>) dlvylcMapMulti.get("goodsList");
|
||||||
log.debug("goodsListMulti : {}", goodsListMulti);
|
log.debug("goodsListMulti : {}", goodsListMulti);
|
||||||
if (!CollectionUtils.isEmpty(goodsListMulti)) {
|
if (!CollectionUtils.isEmpty(goodsListMulti)) {
|
||||||
dlvyAmtMapMulti = purchsService.getDlvyAmt(goodsListMulti, sopmalCd, defaultAdressAt);
|
dlvyAmtMapMulti = purchsService.getDlvyAmt(goodsListMulti, sopmalCd, defaultAdressAt, dlvylcAreaCd);
|
||||||
|
|
||||||
if (!CollectionUtils.isEmpty(dlvyAmtMapMulti)) {
|
if (!CollectionUtils.isEmpty(dlvyAmtMapMulti)) {
|
||||||
if (dlvylcMapMulti.get("mngrFreeDlvyUseAt") != null && "Y".equals(dlvylcMapMulti.get("mngrFreeDlvyUseAt").toString())) {
|
if (dlvylcMapMulti.get("mngrFreeDlvyUseAt") != null && "Y".equals(dlvylcMapMulti.get("mngrFreeDlvyUseAt").toString())) {
|
||||||
@@ -3443,8 +3457,68 @@ public class BOOrdrService{
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else { // 일반 주문
|
} else { // 일반 주문
|
||||||
|
// DataMap dlvyAmtMapMulti = null;
|
||||||
|
//
|
||||||
|
// LinkedHashMap<String, Object> multiOrdrDlvylcMap = (LinkedHashMap) param.get("multiOrdrDlvylc");
|
||||||
|
//
|
||||||
|
// log.debug("multiOrdrDlvylcMap : {}", multiOrdrDlvylcMap);
|
||||||
|
// if (!CollectionUtils.isEmpty(multiOrdrDlvylcMap)) {
|
||||||
|
//
|
||||||
|
// List<LinkedHashMap<String, Object>> dlvylcListMulti = (List<LinkedHashMap<String, Object>>) multiOrdrDlvylcMap.get("dlvylc");
|
||||||
|
//
|
||||||
|
// if (!CollectionUtils.isEmpty(dlvylcListMulti)) {
|
||||||
|
//
|
||||||
|
// int dlvyAmtIndex = 0; // 배송지 rownum 체크
|
||||||
|
// for (LinkedHashMap<String, Object> dlvylcMapMulti : dlvylcListMulti) {
|
||||||
|
// int dlvyAmtBydlvylc = 0;
|
||||||
|
//
|
||||||
|
// LinkedHashMap dlvylcDscntDtlsMulti = (LinkedHashMap) dlvylcMapMulti.get("dlvylcDscntDtls");
|
||||||
|
//
|
||||||
|
// if (!CollectionUtils.isEmpty(dlvylcDscntDtlsMulti)) {
|
||||||
|
// int applyDlvylcCouponDscntAmt = (int) dlvylcDscntDtlsMulti.get("dscntAmt");
|
||||||
|
//
|
||||||
|
// dlvyCouponDscntAmt = dlvyCouponDscntAmt.add(new BigDecimal(applyDlvylcCouponDscntAmt));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// defaultAdressVO.put("zip", StringUtil.isNullToString(dlvylcMapMulti.get("dlvylcZip")));
|
||||||
|
// log.debug("defaultAdressVO : {}", defaultAdressVO);
|
||||||
|
// defaultAdressAt = mapper.selectBODefaultAdressAtInqire(defaultAdressVO);
|
||||||
|
//
|
||||||
|
// List<LinkedHashMap> goodsListMulti = (List<LinkedHashMap>) dlvylcMapMulti.get("goodsList");
|
||||||
|
// log.debug("goodsListMulti : {}", goodsListMulti);
|
||||||
|
// if (!CollectionUtils.isEmpty(goodsListMulti)) {
|
||||||
|
// dlvyAmtMapMulti = purchsService.getDlvyAmt(goodsListMulti, sopmalCd, defaultAdressAt, dlvylcAreaCd);
|
||||||
|
//
|
||||||
|
// if (!CollectionUtils.isEmpty(dlvyAmtMapMulti)) {
|
||||||
|
// if (dlvylcMapMulti.get("mngrFreeDlvyUseAt") != null && "Y".equals(dlvylcMapMulti.get("mngrFreeDlvyUseAt").toString())) {
|
||||||
|
// log.debug("관리자 무료배송 체크 'Y'");
|
||||||
|
// dlvyAmt = dlvyAmt.add(new BigDecimal(0));
|
||||||
|
// } else {
|
||||||
|
// dlvyAmt = dlvyAmt.add((BigDecimal) dlvyAmtMapMulti.get("dlvyAmt"));
|
||||||
|
// }
|
||||||
|
// dlvyAmtMulti.put("shippingDlvyAmt" + dlvyAmtIndex, new BigDecimal(String.valueOf(dlvyAmtMapMulti.get("dlvyAmt"))));
|
||||||
|
//
|
||||||
|
// dftDlvyAmt = dftDlvyAmt.add((BigDecimal) dlvyAmtMapMulti.get("dftDlvyAmt"));
|
||||||
|
// dlvyAmtMulti.put("shippingDftDlvyAmt" + dlvyAmtIndex, new BigDecimal(String.valueOf(dlvyAmtMapMulti.get("dftDlvyAmt"))));
|
||||||
|
//
|
||||||
|
// dlvyAmtIndex += 1; // 배송지 rownum ++
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
if("KR".equals(dlvylcAreaCd)){
|
||||||
|
log.debug("defaultAdressVO-KR : {}", defaultAdressVO);
|
||||||
defaultAdressAt = mapper.selectBODefaultAdressAtInqire(defaultAdressVO);
|
defaultAdressAt = mapper.selectBODefaultAdressAtInqire(defaultAdressVO);
|
||||||
|
}
|
||||||
|
if("JP".equals(dlvylcAreaCd)){
|
||||||
|
log.debug("defaultAdressVO-JP : {}", defaultAdressVO);
|
||||||
|
defaultAdressAt = mapper.selectBODefaultAdressAtInqire2(defaultAdressVO);
|
||||||
|
}
|
||||||
|
|
||||||
LinkedHashMap<String, Object> dlvylcMap = (LinkedHashMap) param.get("dlvylc");
|
LinkedHashMap<String, Object> dlvylcMap = (LinkedHashMap) param.get("dlvylc");
|
||||||
|
|
||||||
@@ -3472,18 +3546,18 @@ public class BOOrdrService{
|
|||||||
if (dlvylcMap.get("dlvyAmt") != null) {
|
if (dlvylcMap.get("dlvyAmt") != null) {
|
||||||
log.debug("배송비 객체 : {}", dlvylcMap);
|
log.debug("배송비 객체 : {}", dlvylcMap);
|
||||||
if (dlvylcMap.get("mngrFreeDlvyUseAt") != null && "N".equals(dlvylcMap.get("mngrFreeDlvyUseAt").toString())) {
|
if (dlvylcMap.get("mngrFreeDlvyUseAt") != null && "N".equals(dlvylcMap.get("mngrFreeDlvyUseAt").toString())) {
|
||||||
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt);
|
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd);
|
||||||
} else if (dlvylcMap.get("mngrFreeDlvyUseAt") != null && "Y".equals(dlvylcMap.get("mngrFreeDlvyUseAt").toString())) {
|
} else if (dlvylcMap.get("mngrFreeDlvyUseAt") != null && "Y".equals(dlvylcMap.get("mngrFreeDlvyUseAt").toString())) {
|
||||||
log.debug("관리자 무료배송 체크 'Y'");
|
log.debug("관리자 무료배송 체크 'Y'");
|
||||||
} else {
|
} else {
|
||||||
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt);
|
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
|
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
|
||||||
dlvyAmtBydlvylc = ((BigDecimal) dlvyAmtMap.get("dlvyAmt")).intValue();
|
dlvyAmtBydlvylc = ((BigDecimal) dlvyAmtMap.get("dlvyAmt")).intValue();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt);
|
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd);
|
||||||
|
|
||||||
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
|
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
|
||||||
dlvyAmtBydlvylc = ((BigDecimal) dlvyAmtMap.get("dlvyAmt")).intValue();
|
dlvyAmtBydlvylc = ((BigDecimal) dlvyAmtMap.get("dlvyAmt")).intValue();
|
||||||
@@ -3492,7 +3566,7 @@ public class BOOrdrService{
|
|||||||
|
|
||||||
dlvyAmt = new BigDecimal(dlvyAmtBydlvylc);
|
dlvyAmt = new BigDecimal(dlvyAmtBydlvylc);
|
||||||
} else {
|
} else {
|
||||||
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt);
|
dlvyAmtMap = purchsService.getDlvyAmt(goodsList, sopmalCd, defaultAdressAt, dlvylcAreaCd);
|
||||||
|
|
||||||
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
|
if (!CollectionUtils.isEmpty(dlvyAmtMap)) {
|
||||||
dlvyAmt = (BigDecimal) dlvyAmtMap.get("dlvyAmt");
|
dlvyAmt = (BigDecimal) dlvyAmtMap.get("dlvyAmt");
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
package com.wb.domainserver.domain.gcone.ordr.subsvc.mapper;
|
||||||
|
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO;
|
||||||
|
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 구독서비스 주문 BO mapper
|
||||||
|
* @author jazz
|
||||||
|
* @since 2026-02-04
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* == (Modification Information) == 개정이력
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2026-02-04 jazz 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
@Repository
|
||||||
|
public interface BOSubsvcOrdrMapper {
|
||||||
|
|
||||||
|
/** 구독서비스 상품준비 관리 목록*/
|
||||||
|
List<DataMap> selectBOSubsvcOrderList(BOSubsvcOrderVO vo);
|
||||||
|
/** 구독서비스 상품준비 관리 목록 배송내역 팝업 배송내역목록*/
|
||||||
|
List<DataMap> selectBOSubsvcOrderDlvyList(BOSubsvcOrderVO vo);
|
||||||
|
/** 구독서비스 상품준비 관리 상품매칭 - 1. GC_ORDER update*/
|
||||||
|
int updateBOSubsvcGoodsMappgOrdr(BOSubsvcOrderVO vo);
|
||||||
|
/** 구독서비스 상품준비 관리 상품매칭 - 2. GC_ORDER_ITEM update*/
|
||||||
|
int updateBOSubsvcGoodsMappgOrdrItem(BOSubsvcOrderVO vo);
|
||||||
|
/** 구독서비스 상품준비 관리 상품매칭 - 3. GC_ORDER_ITEM_OPTION update*/
|
||||||
|
int updateBOSubsvcGoodsMappgOrdrItemOptn(BOSubsvcOrderVO vo);
|
||||||
|
/** 구독서비스 상품준비 관리 상품매칭 - 4. GC_ORDER_SHIPPING update*/
|
||||||
|
int updateBOSubsvcGoodsMappgShipping(BOSubsvcOrderVO vo);
|
||||||
|
/** 구독서비스 상품준비 관리 상품매칭 - 5. GC_SUBSVC update*/
|
||||||
|
int updateBOSubsvcGoodsMappgSubsvc(BOSubsvcOrderVO vo);
|
||||||
|
|
||||||
|
/** 구독서비스 상품변경 관리 목록*/
|
||||||
|
List<DataMap> selectBOSubsvcOrderMappedList(BOSubsvcOrderVO vo);
|
||||||
|
|
||||||
|
/** 구독서비스 구독자조회 목록*/
|
||||||
|
List<DataMap> selectBOSubsvcOrderMbrList(BOSubsvcOrderVO vo);
|
||||||
|
/** 구독서비스 구독자조회 - 구독자목록 팝업 - 구독서비스 정보*/
|
||||||
|
DataMap selectBOSubsvcInfo(BOSubsvcOrderVO vo);
|
||||||
|
/** 구독서비스 구독자조회 - 구독자목록 팝업 - 구독자목록 조회*/
|
||||||
|
List<DataMap> selectBOSubsvcOrderMbrInfoList(BOSubsvcOrderVO vo);
|
||||||
|
/** 구독서비스 구독자조회 - 배송상품 목록팝업 - 배송상품목록 조회*/
|
||||||
|
List<DataMap> selectBOSubsvcOrderGoodsInfoList(BOSubsvcOrderVO vo);
|
||||||
|
}
|
||||||
@@ -0,0 +1,247 @@
|
|||||||
|
package com.wb.domainserver.domain.gcone.ordr.subsvc.service;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.nimbusds.jose.shaded.gson.Gson;
|
||||||
|
import com.wb.domainserver.common.prop.PropertyService;
|
||||||
|
import com.wb.domainserver.domain.admin.instcSle.mtng.mapper.BOMaMtngMapper;
|
||||||
|
import com.wb.domainserver.domain.admin.store.sopmal.mapper.BOMaSopmalMapper;
|
||||||
|
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
|
||||||
|
import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.goods.goods.service.BOGoodsService;
|
||||||
|
import com.wb.domainserver.domain.gcone.goods.purchs.mapper.BOPurchsMapper;
|
||||||
|
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOOrderNoService;
|
||||||
|
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.vo.BOSubsvcVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.mbr.mbr.mapper.BOMbrMapper;
|
||||||
|
import com.wb.domainserver.domain.gcone.mbr.mbr.service.BOMbrService;
|
||||||
|
import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrAppnVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.mbr.mlg.service.BOMlgService;
|
||||||
|
import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOCashVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOMlgVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.ntcn.mssage.service.BOMssageService;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.ordr.mapper.BOOrdrMapper;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrderCommonService;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrLogService;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.*;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.pay.service.BOPayService;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.mapper.BORtngudrefndMapper;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.service.BORtngudrefndService;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.selngpruf.service.BOSelngprufService;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.subsvc.mapper.BOSubsvcOrdrMapper;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.promtn.coupon.service.BOCouponService;
|
||||||
|
import com.wb.domainserver.domain.gcone.promtn.coupon.vo.BODwldCouponVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.setup.site.service.BOSiteService;
|
||||||
|
import com.wb.domainserver.domain.gcone.setup.site.vo.BOGoodsgrpVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.setup.site.vo.BOSiteVO;
|
||||||
|
import com.wb.domainserver.exception.WnbtException;
|
||||||
|
import com.wb.domainserver.exception.WnbtRestException;
|
||||||
|
import com.wb.domainserver.security.authentication.AnonymousUser;
|
||||||
|
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
|
||||||
|
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||||
|
import com.wb.domainserver.util.string.StringUtil;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
import org.springframework.util.ObjectUtils;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.BigInteger;
|
||||||
|
import java.math.RoundingMode;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
import java.time.ZoneOffset;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.time.format.DateTimeParseException;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 구독서비스주문 BO service
|
||||||
|
* @author jazz
|
||||||
|
* @since 2026-02-05
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* == (Modification Information) == 개정이력
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2026-02-05 jazz 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class BOSubsvcOrdrService {
|
||||||
|
@Autowired
|
||||||
|
private BOSubsvcOrdrMapper mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 상품준비 관리 목록
|
||||||
|
* @param
|
||||||
|
* @return List<DataMap>
|
||||||
|
*/
|
||||||
|
public List<DataMap> selectBOSubsvcOrderList(BOSubsvcOrderVO vo) {
|
||||||
|
List<DataMap> dataList = new ArrayList<>();
|
||||||
|
|
||||||
|
try {
|
||||||
|
dataList = mapper.selectBOSubsvcOrderList(vo);
|
||||||
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
if(dataList == null || dataList.isEmpty()){
|
||||||
|
vo.getPaginationInfo().setTotalRecordCount(0);
|
||||||
|
}else{
|
||||||
|
vo.getPaginationInfo().setTotalRecordCount(((Long)dataList.get(0).get("totCnt")).intValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
return dataList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 상품준비 관리 목록 배송내역 팝업 배송내역목록
|
||||||
|
* @param
|
||||||
|
* @return List<DataMap>
|
||||||
|
*/
|
||||||
|
public List<DataMap> selectBOSubsvcOrderDlvyList(BOSubsvcOrderVO vo) {
|
||||||
|
List<DataMap> dataList = new ArrayList<>();
|
||||||
|
dataList = mapper.selectBOSubsvcOrderDlvyList(vo);
|
||||||
|
return dataList;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 선택대상 상품준비 일괄처리
|
||||||
|
* 구독서비스 상품준비 일괄처리
|
||||||
|
* 1. GC_ORDER 주문상태를 결제확인(25)만 상품준비중(35)로 변경(25가 아니면 UPDT_DT만 변경)
|
||||||
|
* 2. GC_ORDER_ITEM의 상품고유번호(GOODS_INNB), 상품이지지경로(GOODS_IMG_COURS), 상품명(GOODS_NM)를 변경
|
||||||
|
* 3. GC_ORDER_ITEM_OPTION의 상품옵셥 고유번호(GOODS_OPTN_INNB), 주문상태(GOODS_STTUS_CD)를 결제확인(25)=>상품준비중(35), 옵션명1(OPTN_NM_1) 부터 GC_GOODS_OPTION과 동일한 컬럼 매칭
|
||||||
|
* 4. GC_ORDER_SHIPPING의 주문배송고유번호(ORDR_DLVY_INNB)가 같은 대상의 주문상태(GOODS_STTUS_CD)를 결제확인(25)=>상품준비중(35)
|
||||||
|
* 5. GC_SUBSVC의 최종처리차수(LAST_PROCS_DGR)를 수정 (주문상품옵션에 주문별 처리차수중 가능 큰처리차수(35~75까지 COUNT해서 가장 큰수)를 등록)
|
||||||
|
* */
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public String updateSubsvcOrdrReady(BOSubsvcOrderVO vo) {
|
||||||
|
String message = "success";
|
||||||
|
/*1. GC_ORDER*/
|
||||||
|
int result = mapper.updateBOSubsvcGoodsMappgOrdr(vo);
|
||||||
|
if (!(result > 0)) {
|
||||||
|
log.error("GC_ORDER UPDATE 오류");
|
||||||
|
throw new WnbtException("500","GC_ORDER UPDATE 오류");
|
||||||
|
}
|
||||||
|
result = mapper.updateBOSubsvcGoodsMappgOrdrItem(vo);
|
||||||
|
if (!(result > 0)) {
|
||||||
|
log.error("GC_ORDER_ITEM UPDATE 오류");
|
||||||
|
throw new WnbtException("500","GC_ORDER_ITEM UPDATE 오류");
|
||||||
|
}
|
||||||
|
result = mapper.updateBOSubsvcGoodsMappgOrdrItemOptn(vo);
|
||||||
|
if (!(result > 0)) {
|
||||||
|
log.error("GC_ORDER_ITEM_OPTION UPDATE 오류");
|
||||||
|
throw new WnbtException("500","GC_ORDER_ITEM_OPTION UPDATE 오류");
|
||||||
|
}
|
||||||
|
result = mapper.updateBOSubsvcGoodsMappgShipping(vo);
|
||||||
|
if (!(result > 0)) {
|
||||||
|
log.error("GC_ORDER_SHIPPING UPDATE 오류");
|
||||||
|
throw new WnbtException("500","GC_ORDER_SHIPPING UPDATE 오류");
|
||||||
|
}
|
||||||
|
result = mapper.updateBOSubsvcGoodsMappgSubsvc(vo);
|
||||||
|
if (!(result > 0)) {
|
||||||
|
log.error("GC_SUBSVC 처리중 오류");
|
||||||
|
throw new WnbtException("500","GC_SUBSVC 처리중 오류");
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 상품변경 관리 목록
|
||||||
|
* @param vo
|
||||||
|
* @return List<DataMap>
|
||||||
|
*/
|
||||||
|
public List<DataMap> selectBOSubsvcOrderMappedList(BOSubsvcOrderVO vo) {
|
||||||
|
List<DataMap> dataList = new ArrayList<>();
|
||||||
|
|
||||||
|
try {
|
||||||
|
dataList = mapper.selectBOSubsvcOrderMappedList(vo);
|
||||||
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
if(dataList == null || dataList.isEmpty()){
|
||||||
|
vo.getPaginationInfo().setTotalRecordCount(0);
|
||||||
|
}else{
|
||||||
|
vo.getPaginationInfo().setTotalRecordCount(((Long)dataList.get(0).get("totCnt")).intValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
return dataList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 구독자조회 목록
|
||||||
|
* @param vo
|
||||||
|
* @return List<DataMap>
|
||||||
|
*/
|
||||||
|
public List<DataMap> selectBOSubsvcOrderMbrList(BOSubsvcOrderVO vo) {
|
||||||
|
List<DataMap> dataList = new ArrayList<>();
|
||||||
|
|
||||||
|
try {
|
||||||
|
dataList = mapper.selectBOSubsvcOrderMbrList(vo);
|
||||||
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
if(dataList == null || dataList.isEmpty()){
|
||||||
|
vo.getPaginationInfo().setTotalRecordCount(0);
|
||||||
|
}else{
|
||||||
|
vo.getPaginationInfo().setTotalRecordCount(((Long)dataList.get(0).get("totCnt")).intValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
return dataList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 구독자조회 - 구독자목록 팝업 - 구독서비스 정보
|
||||||
|
* @param vo
|
||||||
|
* @return DataMap
|
||||||
|
*/
|
||||||
|
public DataMap selectBOSubsvcInfo(BOSubsvcOrderVO vo) {
|
||||||
|
DataMap data = new DataMap();
|
||||||
|
data = mapper.selectBOSubsvcInfo(vo);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 구독자조회 - 구독자목록 팝업 - 구독자목록 조회
|
||||||
|
* @param vo
|
||||||
|
* @return DataMap
|
||||||
|
*/
|
||||||
|
public List<DataMap> selectBOSubsvcOrderMbrInfoList(BOSubsvcOrderVO vo) {
|
||||||
|
List<DataMap> dataList = new ArrayList<DataMap>();
|
||||||
|
dataList = mapper.selectBOSubsvcOrderMbrInfoList(vo);
|
||||||
|
return dataList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 구독자조회 - 배송상품 목록팝업 - 배송상품목록 조회
|
||||||
|
* @param vo
|
||||||
|
* @return DataMap
|
||||||
|
*/
|
||||||
|
public List<DataMap> selectBOSubsvcOrderGoodsInfoList(BOSubsvcOrderVO vo) {
|
||||||
|
List<DataMap> dataList = new ArrayList<DataMap>();
|
||||||
|
dataList = mapper.selectBOSubsvcOrderGoodsInfoList(vo);
|
||||||
|
return dataList;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
package com.wb.domainserver.domain.gcone.ordr.subsvc.vo;
|
||||||
|
|
||||||
|
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class BOSubsvcOrderVO extends AbstractVO {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** 구독서비스고유번호 */
|
||||||
|
private String subsvcInnb;
|
||||||
|
/** 쇼핑몰코드 */
|
||||||
|
private String sopmalCd;
|
||||||
|
/** 구독서비스명 */
|
||||||
|
private String subsvcNm;
|
||||||
|
/** 구독기간 */
|
||||||
|
private String subPd;
|
||||||
|
/** 구독서비스기수 */
|
||||||
|
private String subsvcGnr;
|
||||||
|
/** 구독서비스명 다음기수 */
|
||||||
|
private String subsvcNextGnr;
|
||||||
|
/** 구독서비스기수명 */
|
||||||
|
private String subsvcGnrNm;
|
||||||
|
/** 주문고유번호 */
|
||||||
|
private String ordrInnb;
|
||||||
|
/** 주문상품고유번호 */
|
||||||
|
private String ordrGoodsInnb;
|
||||||
|
/** 주문상품옵션고유번호 */
|
||||||
|
private String ordrGoodsOptnInnb;
|
||||||
|
|
||||||
|
|
||||||
|
/** 출고상품고유번호*/
|
||||||
|
private String goodsInnb;
|
||||||
|
/** 출고상품옵션고유번호*/
|
||||||
|
private String goodsOptnInnb;
|
||||||
|
/** 출고상품옵션구분*/
|
||||||
|
private String optnTy;
|
||||||
|
|
||||||
|
/** 상품준비대상*/
|
||||||
|
private List<String> arrCheck;
|
||||||
|
/** 상품준비대상 주문고유번호*/
|
||||||
|
private List<String> arrOrdrInnb;
|
||||||
|
/** 상품준비대상 주문상품고유번호*/
|
||||||
|
private List<String> arrOrdrGoodsInnb;
|
||||||
|
/** 상품준비대상 주문상품옵션고유번호*/
|
||||||
|
private List<String> arrOrdrGoodsOptnInnb;
|
||||||
|
/** 상품준비대상 주문고유번호*/
|
||||||
|
private List<String> arrOrdrDlvyInnb;
|
||||||
|
|
||||||
|
/** 검색조건 */
|
||||||
|
/** 구독서비스명 selectbox*/
|
||||||
|
private String srchSelSubsvcNm;
|
||||||
|
/** 구독서비스명 */
|
||||||
|
private String srchSubsvcNm;
|
||||||
|
/** 구독서비스기수 select */
|
||||||
|
private String srchSelSubsvcGnr;
|
||||||
|
/** 구독서비스기수명 */
|
||||||
|
private String srchSubsvcGnrNm;
|
||||||
|
/** 정렬구분 */
|
||||||
|
private String sortDv;
|
||||||
|
/** 배열 구독서비스고유번호 */
|
||||||
|
private List<String> arrSubsvcInnb;
|
||||||
|
/**당월제외*/
|
||||||
|
private String srchCurMonExclude;
|
||||||
|
/**주문번호*/
|
||||||
|
private String srchOrdrInnb;
|
||||||
|
/**주문자명*/
|
||||||
|
private String srchMbrNm;
|
||||||
|
/**주문자ID*/
|
||||||
|
private String srchMbrId;
|
||||||
|
/**구독종료여부*/
|
||||||
|
private String srchSubEndAt;
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 주문 설정 VO
|
* 주문 설정 VO
|
||||||
@@ -23,6 +24,7 @@ import lombok.Data;
|
|||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper=true)
|
||||||
public class BOSetupOrdrVO extends AbstractVO {
|
public class BOSetupOrdrVO extends AbstractVO {
|
||||||
/** 쇼핑몰 코드 */
|
/** 쇼핑몰 코드 */
|
||||||
private String sopmalCd;
|
private String sopmalCd;
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ public class SubsvcController {
|
|||||||
@Value("${mngrfo.common.subsvc.dft-goods-optn-innb}")
|
@Value("${mngrfo.common.subsvc.dft-goods-optn-innb}")
|
||||||
private String dftGoodsOptnInnb;
|
private String dftGoodsOptnInnb;
|
||||||
@Autowired
|
@Autowired
|
||||||
private BOSubsvcService service;
|
private BOSubsvcService boSubsvcService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private BOCommonService commonService;
|
private BOCommonService commonService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -112,7 +112,7 @@ public class SubsvcController {
|
|||||||
content.put("paramVO", vo);
|
content.put("paramVO", vo);
|
||||||
|
|
||||||
// 조회조건 구독서비스
|
// 조회조건 구독서비스
|
||||||
List<?> SrchSubsvcList = service.selectBOMngrSrchSubsvcList(vo);
|
List<?> SrchSubsvcList = boSubsvcService.selectBOMngrSrchSubsvcList(vo);
|
||||||
content.put("srchSubsvcList", SrchSubsvcList);
|
content.put("srchSubsvcList", SrchSubsvcList);
|
||||||
|
|
||||||
//조회조건 판매상태
|
//조회조건 판매상태
|
||||||
@@ -148,7 +148,7 @@ public class SubsvcController {
|
|||||||
content.put("paramVO", vo);
|
content.put("paramVO", vo);
|
||||||
|
|
||||||
// 구독서비스 상세조회
|
// 구독서비스 상세조회
|
||||||
DataMap subsvcDtl = service.selectBOSubsvcDetail(vo);
|
DataMap subsvcDtl = boSubsvcService.selectBOSubsvcDetail(vo);
|
||||||
content.put("subsvcDtl", subsvcDtl);
|
content.put("subsvcDtl", subsvcDtl);
|
||||||
|
|
||||||
//판매상태
|
//판매상태
|
||||||
@@ -210,7 +210,7 @@ public class SubsvcController {
|
|||||||
//파일 업로드 관련 END
|
//파일 업로드 관련 END
|
||||||
|
|
||||||
Map<String, Object> message = new HashMap<>();
|
Map<String, Object> message = new HashMap<>();
|
||||||
String result = service.updateBOMngrSubsvc(vo);
|
String result = boSubsvcService.updateBOMngrSubsvc(vo);
|
||||||
message.put("message",result);
|
message.put("message",result);
|
||||||
|
|
||||||
return ResponseEntity.ok(
|
return ResponseEntity.ok(
|
||||||
@@ -238,7 +238,7 @@ public class SubsvcController {
|
|||||||
content.put("paramVO", vo);
|
content.put("paramVO", vo);
|
||||||
|
|
||||||
// 구독서비스 상세조회
|
// 구독서비스 상세조회
|
||||||
DataMap subsvcDtl = service.selectBOSubsvcDetail(vo);
|
DataMap subsvcDtl = boSubsvcService.selectBOSubsvcDetail(vo);
|
||||||
content.put("subsvcDtl", subsvcDtl);
|
content.put("subsvcDtl", subsvcDtl);
|
||||||
|
|
||||||
//판매상태
|
//판매상태
|
||||||
@@ -303,7 +303,7 @@ public class SubsvcController {
|
|||||||
vo.setDftGoodsOptnInnb(dftGoodsOptnInnb);
|
vo.setDftGoodsOptnInnb(dftGoodsOptnInnb);
|
||||||
|
|
||||||
Map<String, Object> message = new HashMap<>();
|
Map<String, Object> message = new HashMap<>();
|
||||||
String result = service.insertBOMngrSubsvc(vo);
|
String result = boSubsvcService.insertBOMngrSubsvc(vo);
|
||||||
message.put("message",result);
|
message.put("message",result);
|
||||||
|
|
||||||
return ResponseEntity.ok(
|
return ResponseEntity.ok(
|
||||||
@@ -345,7 +345,7 @@ public class SubsvcController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 목록 조회
|
// 목록 조회
|
||||||
List<DataMap> list = service.selectBOMngrSubsvcList(vo);
|
List<DataMap> list = boSubsvcService.selectBOMngrSubsvcList(vo);
|
||||||
|
|
||||||
Map<String, Object> content = new HashMap<>();
|
Map<String, Object> content = new HashMap<>();
|
||||||
content.put("paramVO", vo);
|
content.put("paramVO", vo);
|
||||||
@@ -373,7 +373,7 @@ public class SubsvcController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
DataMap message = new DataMap();
|
DataMap message = new DataMap();
|
||||||
String result = service.selectBOMngrSubsvcNmDupCheck(vo);
|
String result = boSubsvcService.selectBOMngrSubsvcNmDupCheck(vo);
|
||||||
message.put("message", result);
|
message.put("message", result);
|
||||||
|
|
||||||
return ResponseEntity.ok(
|
return ResponseEntity.ok(
|
||||||
@@ -401,7 +401,7 @@ public class SubsvcController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
DataMap message = new DataMap();
|
DataMap message = new DataMap();
|
||||||
String result = service.deleteBOMngrSubsvc(vo);
|
String result = boSubsvcService.deleteBOMngrSubsvc(vo);
|
||||||
message.put("message", result);
|
message.put("message", result);
|
||||||
|
|
||||||
return ResponseEntity.ok(
|
return ResponseEntity.ok(
|
||||||
@@ -429,7 +429,7 @@ public class SubsvcController {
|
|||||||
Map<String, Object> content = new HashMap<>();
|
Map<String, Object> content = new HashMap<>();
|
||||||
|
|
||||||
// 조회조건 구독서비스
|
// 조회조건 구독서비스
|
||||||
List<DataMap> SrchSubsvcGnrList = service.selectBOMngrSrchSubsvcGnrList(vo);
|
List<DataMap> SrchSubsvcGnrList = boSubsvcService.selectBOMngrSrchSubsvcGnrList(vo);
|
||||||
content.put("srchSubsvcGnrList", SrchSubsvcGnrList);
|
content.put("srchSubsvcGnrList", SrchSubsvcGnrList);
|
||||||
|
|
||||||
return ResponseEntity.ok(
|
return ResponseEntity.ok(
|
||||||
|
|||||||
@@ -0,0 +1,453 @@
|
|||||||
|
package com.wb.domainserver.domain.mngr.ordr.subsvc.controller;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||||
|
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
|
||||||
|
import com.wb.domainserver.common.prop.PaginationProperties;
|
||||||
|
import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService;
|
||||||
|
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
|
||||||
|
import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.common.service.BOCommonService;
|
||||||
|
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOOrderService;
|
||||||
|
import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderLogVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.goods.subsvc.service.BOSubsvcService;
|
||||||
|
import com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.*;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.subsvc.service.BOSubsvcOrdrService;
|
||||||
|
import com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO;
|
||||||
|
import com.wb.domainserver.domain.gcone.setup.dlvygrp.service.BODlvygrpService;
|
||||||
|
import com.wb.domainserver.domain.gcone.setup.nbkk.service.BONbkkService;
|
||||||
|
import com.wb.domainserver.domain.gcone.setup.nbkk.vo.BOSetupNbkkVO;
|
||||||
|
import com.wb.domainserver.domain.mngr.ordr.ordrmngr.vo.DwldItmVO;
|
||||||
|
import com.wb.domainserver.domain.mngr.ordr.ordrmngr.vo.OrdrShippingVO;
|
||||||
|
import com.wb.domainserver.domain.mngr.ordr.ordrmngr.vo.OrdrSrchVO;
|
||||||
|
import com.wb.domainserver.exception.WnbtRestException;
|
||||||
|
import com.wb.domainserver.exception.code.ErrorCode;
|
||||||
|
import com.wb.domainserver.response.WnbtResponse;
|
||||||
|
import com.wb.domainserver.response.WnbtResponseBody;
|
||||||
|
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
|
||||||
|
import com.wb.domainserver.security.authentication.AnonymousUser;
|
||||||
|
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
|
||||||
|
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
|
||||||
|
import com.wb.domainserver.security.authorization.annotation.Policy;
|
||||||
|
import com.wb.domainserver.util.communicate.SendToResrc;
|
||||||
|
import com.wb.domainserver.util.communicate.ValidateResultConverter;
|
||||||
|
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||||
|
import com.wb.domainserver.util.excel.ExcelDownloadUtil;
|
||||||
|
import io.micrometer.common.util.StringUtils;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.ModelMap;
|
||||||
|
import org.springframework.validation.BindingResult;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.CookieValue;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.math.BigInteger;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 주문 관리 Controller
|
||||||
|
*
|
||||||
|
* @author jazz
|
||||||
|
* @since 2026-02-05
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* == (Modification Information) == 개정이력
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2026-02-05 jazz 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
@RequestMapping("/mngr/ordr/subsvc")
|
||||||
|
@Slf4j
|
||||||
|
public class SubsvcOrdrController {
|
||||||
|
|
||||||
|
/** WebClient 호출을 위한 wrapper */
|
||||||
|
@Autowired
|
||||||
|
private WnbtWebClientResponseHandler responseHandler;
|
||||||
|
|
||||||
|
/** WebClient 호출을 위한 wrapper */
|
||||||
|
@Autowired
|
||||||
|
private SendToResrc sendToResrc;
|
||||||
|
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||||
|
@Autowired
|
||||||
|
private GconeMessageSource gconeMessageSource;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private BOSubsvcOrdrService boSubsvcOrdrService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private BOSubsvcService boSubsvcService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PaginationProperties paginationProperties;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 상품준비 조회 폼
|
||||||
|
* @param subsvcVO,subsvcOrderVO,model,authSopmalCd
|
||||||
|
* @return SubsvcOrdrListForm.jsp
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
|
@RequestMapping(value="/selectSubsvcOrdrListForm")
|
||||||
|
public String selectSubsvcOrdrListForm(BOSubsvcVO subsvcVO, BOSubsvcOrderVO subsvcOrderVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||||
|
subsvcVO.setSopmalCd(authSopmalCd);
|
||||||
|
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||||
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
|
if("01".equals(user.getSysDvCd())){
|
||||||
|
subsvcVO.setSopmalCd(user.getSopmalCd());
|
||||||
|
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Object> content = new HashMap<>();
|
||||||
|
content.put("paramVO", subsvcOrderVO);
|
||||||
|
|
||||||
|
// 조회조건 구독서비스
|
||||||
|
List<?> SrchSubsvcList = boSubsvcService.selectBOMngrSrchSubsvcList(subsvcVO);
|
||||||
|
content.put("srchSubsvcList", SrchSubsvcList);
|
||||||
|
|
||||||
|
model.addAttribute("resultMap", content);
|
||||||
|
return "mngr/ordr/subsvc/SubsvcOrdrListForm";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 상품준비 목록 조회 리스트
|
||||||
|
* @param subsvcOrderVO
|
||||||
|
* @param model
|
||||||
|
* @return SubsvcOrdrList.jsp
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
|
@RequestMapping(value = "/selectSubsvcOrdrList")
|
||||||
|
public String selectSubsvcOrdrList(BOSubsvcOrderVO subsvcOrderVO,ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||||
|
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||||
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
|
if("01".equals(user.getSysDvCd())){
|
||||||
|
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 페이징 객체 생성 & 페이징정보 할당
|
||||||
|
PaginationInfo paginationInfo = new PaginationInfo();
|
||||||
|
paginationInfo.setCurrentPageNo(subsvcOrderVO.getPageIndex());
|
||||||
|
paginationInfo.setRecordCountPerPage(subsvcOrderVO.getPageUnit());
|
||||||
|
paginationInfo.setPageSize(paginationProperties.getPageSize());
|
||||||
|
|
||||||
|
subsvcOrderVO.setPaginationInfo(paginationInfo);
|
||||||
|
subsvcOrderVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||||
|
subsvcOrderVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||||
|
subsvcOrderVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||||
|
if(StringUtils.isEmpty(subsvcOrderVO.getSortDv())){
|
||||||
|
//정렬기준 초기값 셋팅
|
||||||
|
subsvcOrderVO.setSortDv("subsvcGnrAsc");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 목록 조회
|
||||||
|
List<DataMap> list = boSubsvcOrdrService.selectBOSubsvcOrderList(subsvcOrderVO);
|
||||||
|
|
||||||
|
Map<String, Object> content = new HashMap<>();
|
||||||
|
content.put("paramVO", subsvcOrderVO);
|
||||||
|
|
||||||
|
content.put("list", list);
|
||||||
|
content.put("paginationInfo", subsvcOrderVO.getPaginationInfo());
|
||||||
|
|
||||||
|
model.addAttribute("resultMap", content);
|
||||||
|
|
||||||
|
return "mngr/ordr/subsvc/SubsvcOrdrList";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 상품준비 일괄처리
|
||||||
|
* @param subsvcOrderVO
|
||||||
|
* @return ResponseEntity<WnbtResponse>
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
|
@RequestMapping(value = "/updateSubsvcOrdrReady", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public ResponseEntity<WnbtResponse> updateSubsvcOrdrReady(BOSubsvcOrderVO subsvcOrderVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||||
|
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||||
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
|
|
||||||
|
if("01".equals(user.getSysDvCd())){
|
||||||
|
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 체크대상정보 파싱
|
||||||
|
* 형태 : 주문고유번호@주문상품고유번호@주문상품옵션고유번호@주문배송고유번호
|
||||||
|
* */
|
||||||
|
subsvcOrderVO.setArrOrdrInnb(new ArrayList<String>());
|
||||||
|
subsvcOrderVO.setArrOrdrGoodsInnb(new ArrayList<String>());
|
||||||
|
subsvcOrderVO.setArrOrdrGoodsOptnInnb(new ArrayList<String>());
|
||||||
|
subsvcOrderVO.setArrOrdrDlvyInnb(new ArrayList<String>());
|
||||||
|
ArrayList<String> arrCheck = (ArrayList<String>)subsvcOrderVO.getArrCheck();
|
||||||
|
|
||||||
|
((ArrayList<String>)subsvcOrderVO.getArrCheck()).forEach(check -> {
|
||||||
|
String[] innb = check.split("@");
|
||||||
|
subsvcOrderVO.getArrOrdrInnb().add(innb[0]);
|
||||||
|
subsvcOrderVO.getArrOrdrGoodsInnb().add(innb[1]);
|
||||||
|
subsvcOrderVO.getArrOrdrGoodsOptnInnb().add(innb[2]);
|
||||||
|
subsvcOrderVO.getArrOrdrDlvyInnb().add(innb[3]);
|
||||||
|
});
|
||||||
|
|
||||||
|
DataMap message = new DataMap();
|
||||||
|
String result = "";
|
||||||
|
|
||||||
|
try{
|
||||||
|
result = boSubsvcOrdrService.updateSubsvcOrdrReady(subsvcOrderVO);
|
||||||
|
}catch(Exception e){
|
||||||
|
log.error(e.getMessage());
|
||||||
|
result = "fail";
|
||||||
|
}
|
||||||
|
|
||||||
|
message.put("message", result);
|
||||||
|
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
WnbtResponse.builder()
|
||||||
|
.resBody(new WnbtResponseBody(message))
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 상품준비 배송내역 목록 팝업
|
||||||
|
* @param subsvcOrderVO
|
||||||
|
* @param model
|
||||||
|
* @return SubsvcOrdrList.jsp
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
|
@RequestMapping(value = "/selectSubsvcOrdrDlvyListPop")
|
||||||
|
public String selectSubsvcOrdrDlvyListPop(BOSubsvcOrderVO subsvcOrderVO,ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||||
|
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||||
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
|
if("01".equals(user.getSysDvCd())){
|
||||||
|
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||||
|
}
|
||||||
|
// 목록 조회
|
||||||
|
List<DataMap> list = boSubsvcOrdrService.selectBOSubsvcOrderDlvyList(subsvcOrderVO);
|
||||||
|
|
||||||
|
Map<String, Object> content = new HashMap<>();
|
||||||
|
content.put("paramVO", subsvcOrderVO);
|
||||||
|
|
||||||
|
content.put("list", list);
|
||||||
|
|
||||||
|
model.addAttribute("resultMap", content);
|
||||||
|
|
||||||
|
return "mngr/ordr/subsvc/SubsvcOrdrDlvyListPop";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 상품변경 조회 폼
|
||||||
|
* @param subsvcVO,subsvcOrderVO,model,authSopmalCd
|
||||||
|
* @return SubsvcOrdrMappedListForm.jsp
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
|
@RequestMapping(value="/selectSubsvcOrdrMappedListForm")
|
||||||
|
public String selectSubsvcOrdrMappedListForm(BOSubsvcVO subsvcVO, BOSubsvcOrderVO subsvcOrderVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||||
|
subsvcVO.setSopmalCd(authSopmalCd);
|
||||||
|
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||||
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
|
if("01".equals(user.getSysDvCd())){
|
||||||
|
subsvcVO.setSopmalCd(user.getSopmalCd());
|
||||||
|
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Object> content = new HashMap<>();
|
||||||
|
content.put("paramVO", subsvcOrderVO);
|
||||||
|
|
||||||
|
// 조회조건 구독서비스
|
||||||
|
List<?> SrchSubsvcList = boSubsvcService.selectBOMngrSrchSubsvcList(subsvcVO);
|
||||||
|
content.put("srchSubsvcList", SrchSubsvcList);
|
||||||
|
|
||||||
|
model.addAttribute("resultMap", content);
|
||||||
|
return "mngr/ordr/subsvc/SubsvcOrdrMappedListForm";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 상품변경 목록 조회 리스트
|
||||||
|
* @param subsvcOrderVO
|
||||||
|
* @param model
|
||||||
|
* @return SubsvcOrdrMappedList.jsp
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
|
@RequestMapping(value = "/selectSubsvcOrdrMappedList")
|
||||||
|
public String selectSubsvcOrdrMappedList(BOSubsvcOrderVO subsvcOrderVO,ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||||
|
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||||
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
|
if("01".equals(user.getSysDvCd())){
|
||||||
|
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 페이징 객체 생성 & 페이징정보 할당
|
||||||
|
PaginationInfo paginationInfo = new PaginationInfo();
|
||||||
|
paginationInfo.setCurrentPageNo(subsvcOrderVO.getPageIndex());
|
||||||
|
paginationInfo.setRecordCountPerPage(subsvcOrderVO.getPageUnit());
|
||||||
|
paginationInfo.setPageSize(paginationProperties.getPageSize());
|
||||||
|
|
||||||
|
subsvcOrderVO.setPaginationInfo(paginationInfo);
|
||||||
|
subsvcOrderVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||||
|
subsvcOrderVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||||
|
subsvcOrderVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||||
|
if(StringUtils.isEmpty(subsvcOrderVO.getSortDv())){
|
||||||
|
//정렬기준 초기값 셋팅
|
||||||
|
subsvcOrderVO.setSortDv("subsvcGnrAsc");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 목록 조회
|
||||||
|
List<DataMap> list = boSubsvcOrdrService.selectBOSubsvcOrderMappedList(subsvcOrderVO);
|
||||||
|
|
||||||
|
Map<String, Object> content = new HashMap<>();
|
||||||
|
content.put("paramVO", subsvcOrderVO);
|
||||||
|
|
||||||
|
content.put("list", list);
|
||||||
|
content.put("paginationInfo", subsvcOrderVO.getPaginationInfo());
|
||||||
|
|
||||||
|
model.addAttribute("resultMap", content);
|
||||||
|
|
||||||
|
return "mngr/ordr/subsvc/SubsvcOrdrMappedList";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 구독자 조회 폼
|
||||||
|
* @param subsvcVO,subsvcOrderVO,model,authSopmalCd
|
||||||
|
* @return SubsvcOrdrMbrListForm.jsp
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
|
@RequestMapping(value="/selectSubsvcOrdrMbrListForm")
|
||||||
|
public String selectSubsvcOrdrMbrListForm(BOSubsvcVO subsvcVO, BOSubsvcOrderVO subsvcOrderVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||||
|
subsvcVO.setSopmalCd(authSopmalCd);
|
||||||
|
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||||
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
|
if("01".equals(user.getSysDvCd())){
|
||||||
|
subsvcVO.setSopmalCd(user.getSopmalCd());
|
||||||
|
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Object> content = new HashMap<>();
|
||||||
|
content.put("paramVO", subsvcOrderVO);
|
||||||
|
|
||||||
|
// 조회조건 구독서비스
|
||||||
|
List<?> SrchSubsvcList = boSubsvcService.selectBOMngrSrchSubsvcList(subsvcVO);
|
||||||
|
content.put("srchSubsvcList", SrchSubsvcList);
|
||||||
|
|
||||||
|
model.addAttribute("resultMap", content);
|
||||||
|
return "mngr/ordr/subsvc/SubsvcOrdrMbrListForm";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 구독자 목록 조회 리스트
|
||||||
|
* @param subsvcOrderVO
|
||||||
|
* @param model
|
||||||
|
* @return SubsvcOrdrMbrList.jsp
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
|
@RequestMapping(value = "/selectSubsvcOrdrMbrList")
|
||||||
|
public String selectSubsvcOrdrMbrList(BOSubsvcOrderVO subsvcOrderVO,ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||||
|
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||||
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
|
if("01".equals(user.getSysDvCd())){
|
||||||
|
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 페이징 객체 생성 & 페이징정보 할당
|
||||||
|
PaginationInfo paginationInfo = new PaginationInfo();
|
||||||
|
paginationInfo.setCurrentPageNo(subsvcOrderVO.getPageIndex());
|
||||||
|
paginationInfo.setRecordCountPerPage(subsvcOrderVO.getPageUnit());
|
||||||
|
paginationInfo.setPageSize(paginationProperties.getPageSize());
|
||||||
|
|
||||||
|
subsvcOrderVO.setPaginationInfo(paginationInfo);
|
||||||
|
subsvcOrderVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||||
|
subsvcOrderVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||||
|
subsvcOrderVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||||
|
if(StringUtils.isEmpty(subsvcOrderVO.getSortDv())){
|
||||||
|
//정렬기준 초기값 셋팅
|
||||||
|
subsvcOrderVO.setSortDv("subsvcGnrAsc");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 목록 조회
|
||||||
|
List<DataMap> list = boSubsvcOrdrService.selectBOSubsvcOrderMbrList(subsvcOrderVO);
|
||||||
|
|
||||||
|
Map<String, Object> content = new HashMap<>();
|
||||||
|
content.put("paramVO", subsvcOrderVO);
|
||||||
|
content.put("list", list);
|
||||||
|
content.put("paginationInfo", subsvcOrderVO.getPaginationInfo());
|
||||||
|
|
||||||
|
model.addAttribute("resultMap", content);
|
||||||
|
|
||||||
|
return "mngr/ordr/subsvc/SubsvcOrdrMbrList";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 구독자 조회 - 구독자 목록 팝업
|
||||||
|
* @param subsvcOrderVO
|
||||||
|
* @param model
|
||||||
|
* @return SubsvcOrdrList.jsp
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
|
@RequestMapping(value = "/selectSubsvcOrderMbrInfoListPop")
|
||||||
|
public String selectSubsvcOrderMbrInfoListPop(BOSubsvcOrderVO subsvcOrderVO,ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||||
|
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||||
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
|
if("01".equals(user.getSysDvCd())){
|
||||||
|
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||||
|
}
|
||||||
|
//구독서비스 정보 조회
|
||||||
|
DataMap subsvcInfo = boSubsvcOrdrService.selectBOSubsvcInfo(subsvcOrderVO);
|
||||||
|
// 목록 조회
|
||||||
|
List<DataMap> list = boSubsvcOrdrService.selectBOSubsvcOrderMbrInfoList(subsvcOrderVO);
|
||||||
|
|
||||||
|
Map<String, Object> content = new HashMap<>();
|
||||||
|
content.put("paramVO", subsvcOrderVO);
|
||||||
|
content.put("subsvcInfo", subsvcInfo);
|
||||||
|
content.put("list", list);
|
||||||
|
|
||||||
|
model.addAttribute("resultMap", content);
|
||||||
|
|
||||||
|
return "mngr/ordr/subsvc/SubsvcOrderMbrInfoListPop";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 구독서비스 구독자 조회 - 배송상품 목록 팝업
|
||||||
|
* @param subsvcOrderVO
|
||||||
|
* @param model
|
||||||
|
* @return SubsvcOrdrList.jsp
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
|
@RequestMapping(value = "/selectSubsvcOrderGoodsInfoListPop")
|
||||||
|
public String selectSubsvcOrderGoodsInfoListPop(BOSubsvcOrderVO subsvcOrderVO,ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||||
|
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||||
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
|
if("01".equals(user.getSysDvCd())){
|
||||||
|
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||||
|
}
|
||||||
|
//구독서비스 정보 조회
|
||||||
|
DataMap subsvcInfo = boSubsvcOrdrService.selectBOSubsvcInfo(subsvcOrderVO);
|
||||||
|
// 목록 조회
|
||||||
|
List<DataMap> list = boSubsvcOrdrService.selectBOSubsvcOrderGoodsInfoList(subsvcOrderVO);
|
||||||
|
|
||||||
|
Map<String, Object> content = new HashMap<>();
|
||||||
|
content.put("paramVO", subsvcOrderVO);
|
||||||
|
content.put("subsvcInfo", subsvcInfo);
|
||||||
|
content.put("list", list);
|
||||||
|
|
||||||
|
model.addAttribute("resultMap", content);
|
||||||
|
|
||||||
|
return "mngr/ordr/subsvc/SubsvcOrderGoodsInfoListPop";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -126,6 +126,8 @@ public class CscController {
|
|||||||
private PaginationProperties paginationProperties;
|
private PaginationProperties paginationProperties;
|
||||||
@Autowired
|
@Autowired
|
||||||
private BOCmService boCmService;
|
private BOCmService boCmService;
|
||||||
|
@Autowired
|
||||||
|
private BOMaSopmalService boMaSopmalService;
|
||||||
|
|
||||||
/************************************************************
|
/************************************************************
|
||||||
고객센터 목록 폼
|
고객센터 목록 폼
|
||||||
@@ -1681,6 +1683,13 @@ public class CscController {
|
|||||||
regusrInfo.setRegusrDvCd("99");//비회원
|
regusrInfo.setRegusrDvCd("99");//비회원
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 약관정보
|
||||||
|
BOMaSopmalVO sopmalVO = new BOMaSopmalVO();
|
||||||
|
sopmalVO.setStplatDvCd("11");
|
||||||
|
sopmalVO.setSopmalCd(bbsctt.getSopmalCd());
|
||||||
|
List<DataMap> clauseList = new ArrayList<>();
|
||||||
|
clauseList = boMaSopmalService.selectBOClauseInformation(sopmalVO);
|
||||||
|
|
||||||
// 게시판 설정 정보
|
// 게시판 설정 정보
|
||||||
BOBbsVO bbsVO = new BOBbsVO();
|
BOBbsVO bbsVO = new BOBbsVO();
|
||||||
// bbsVO에 쇼핑몰코드, 해당 게시판 set
|
// bbsVO에 쇼핑몰코드, 해당 게시판 set
|
||||||
@@ -1736,6 +1745,7 @@ public class CscController {
|
|||||||
content.put("regusrInfo", regusrInfo);
|
content.put("regusrInfo", regusrInfo);
|
||||||
content.put("bbscttVO", bbsctt);
|
content.put("bbscttVO", bbsctt);
|
||||||
content.put("itmList", itmList);
|
content.put("itmList", itmList);
|
||||||
|
content.put("clauseList", clauseList);
|
||||||
content.put("bbsInfo", bbsInfo);
|
content.put("bbsInfo", bbsInfo);
|
||||||
content.put("qesitmList", qesitmList);
|
content.put("qesitmList", qesitmList);
|
||||||
content.put("rvwQesitmList", rvwQesitmList);
|
content.put("rvwQesitmList", rvwQesitmList);
|
||||||
|
|||||||
@@ -202,6 +202,45 @@ public class MyOrdrController {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 마이 페이지 > MY쇼핑 > 구독서비스 주문/배송조회 > 주문/배송 상세 조회 화면 이동
|
||||||
|
* @return OrdrDtlR.jsp
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
|
@RequestMapping(value="/selectMbrSubsvcOrdrDtlInqire")
|
||||||
|
public String selectMbrSubsvcOrdrDtlInqire(HttpServletRequest request, ModelMap model, BOOrdrDlvyVO ordrDlvyVO, BOMbrVO vo) throws Exception {
|
||||||
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
|
if ("01".equals(user.getSysDvCd())) {
|
||||||
|
ordrDlvyVO.setSopmalCd(user.getSopmalCd());
|
||||||
|
}
|
||||||
|
Map<String, Object> message = boOrdrService.selectMbrOrdrDtlInqire(ordrDlvyVO);
|
||||||
|
/**발급대상구분코드*/
|
||||||
|
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
|
||||||
|
bOMaComncdVO.setGroupCd("ISSU_TRGET_DV");
|
||||||
|
List<?> issuTrgetDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
|
||||||
|
|
||||||
|
message.put("issuTrgetDv", issuTrgetDv);
|
||||||
|
model.addAttribute("data", message);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrDtlInqire", ordrDlvyVO),
|
||||||
|
// model,
|
||||||
|
// "data"
|
||||||
|
// );
|
||||||
|
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrDlvyVO));
|
||||||
|
model.addAttribute("vo", ordrDlvyVO);
|
||||||
|
|
||||||
|
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
|
||||||
|
Map<String, Object> content = selectBOMpageInfoInqire(vo);
|
||||||
|
model.addAttribute("mpageResultMap", content);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrDlvyVO),
|
||||||
|
// model,
|
||||||
|
// "mpageResultMap"
|
||||||
|
// );
|
||||||
|
|
||||||
|
return Util.getDeviceType(request) + "/mpage/ordr/SubsvcOrdrDtlR";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 마이 페이지 > MY쇼핑 > 주문/배송조회 > 주문/배송 목록 조회
|
* 마이 페이지 > MY쇼핑 > 주문/배송조회 > 주문/배송 목록 조회
|
||||||
|
|||||||
@@ -362,6 +362,7 @@ public class OrdrController {
|
|||||||
param.put("mbrDvCd", user.getMbrDvCd());
|
param.put("mbrDvCd", user.getMbrDvCd());
|
||||||
param.put("mbrInnb", user.getUserInnb());
|
param.put("mbrInnb", user.getUserInnb());
|
||||||
}
|
}
|
||||||
|
log.debug("CONselectSetleExpectAmt-param : {}", param);
|
||||||
Map<String, Object> content = new HashMap<>();
|
Map<String, Object> content = new HashMap<>();
|
||||||
try {
|
try {
|
||||||
DataMap datamap = new DataMap();
|
DataMap datamap = new DataMap();
|
||||||
@@ -3008,6 +3009,13 @@ public class OrdrController {
|
|||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// if (CollectionUtils.isEmpty(multiOrdrDlvylc)) {
|
||||||
|
// log.info("배송지 정보를 찾을 수 없습니다.");
|
||||||
|
// content.put("result","Y");
|
||||||
|
// content.put("message", "배송지 정보를 찾을 수 없습니다.");
|
||||||
|
// // throw new WnbtRestException("주문유형 정보를 찾을 수 없습니다.");
|
||||||
|
// return content;
|
||||||
|
// }
|
||||||
if (CollectionUtils.isEmpty(shipping)) {
|
if (CollectionUtils.isEmpty(shipping)) {
|
||||||
log.info("배송지 정보를 찾을 수 없습니다.");
|
log.info("배송지 정보를 찾을 수 없습니다.");
|
||||||
content.put("result","Y");
|
content.put("result","Y");
|
||||||
@@ -3044,6 +3052,70 @@ public class OrdrController {
|
|||||||
String[] receptMbtlnbArray = null; // 배송지 받는이 휴대폰번호
|
String[] receptMbtlnbArray = null; // 배송지 받는이 휴대폰번호
|
||||||
|
|
||||||
if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원개인결제, 정기배송
|
if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원개인결제, 정기배송
|
||||||
|
// if (!CollectionUtils.isEmpty(multiOrdrDlvylc)) {
|
||||||
|
//
|
||||||
|
// // 배송지 리스트
|
||||||
|
// List<LinkedHashMap<String, Object>> dlvylcListMulti = (List<LinkedHashMap<String, Object>>) multiOrdrDlvylc.get("dlvylc");
|
||||||
|
//
|
||||||
|
// /** ----------------------------------------------- 배송지별 주문 상품 수량 검사 START ----------------------------------------------- */
|
||||||
|
// content = checkDistributedQyMatchesOrder(goodsList, dlvylcListMulti);
|
||||||
|
// if (!"0".equals(content.get("status"))) {
|
||||||
|
// return content;
|
||||||
|
// }
|
||||||
|
// /** ----------------------------------------------- 배송지별 주문 상품 수량 검사 END ----------------------------------------------- */
|
||||||
|
//
|
||||||
|
// // 부정판매 체크를 위한 배송지 정렬
|
||||||
|
// if (!CollectionUtils.isEmpty(dlvylcListMulti)) {
|
||||||
|
//
|
||||||
|
// boolean hasInvalidAddress = dlvylcListMulti.stream().anyMatch(map -> {
|
||||||
|
// String dlvylcZip = StringUtil.isNullToString(map.get("dlvylcZip"));
|
||||||
|
// String adresDvCd = StringUtil.isNullToString(map.get("dlvylcAdresDvCd"));
|
||||||
|
// String dlvylcLnbAdres = StringUtil.isNullToString(map.get("dlvylcLnbAdres"));
|
||||||
|
// String dlvylcRnmAdres = StringUtil.isNullToString(map.get("dlvylcRnmAdres"));
|
||||||
|
// String adresDtl = StringUtil.isNullToString(map.get("dlvylcAdresDtl"));
|
||||||
|
//
|
||||||
|
// return StringUtil.isEmpty(dlvylcZip)
|
||||||
|
// || StringUtil.isEmpty(adresDvCd)
|
||||||
|
// || ("01".equals(adresDvCd) && StringUtil.isEmpty(dlvylcRnmAdres))
|
||||||
|
// || ("02".equals(adresDvCd) && StringUtil.isEmpty(dlvylcLnbAdres))
|
||||||
|
// || StringUtil.isEmpty(adresDtl);
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// if (hasInvalidAddress) {
|
||||||
|
// content.put("result","Y");
|
||||||
|
// content.put("message", "배송지 정보를 찾을 수 없습니다. 다시 시도해 주세요.");
|
||||||
|
// return content;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// List<String> adresList = dlvylcListMulti.stream()
|
||||||
|
// .map(map -> {
|
||||||
|
// String adresDvCd = StringUtil.isNullToString(map.get("dlvylcAdresDvCd"));
|
||||||
|
// String adresDtl = StringUtil.isNullToString(map.get("dlvylcAdresDtl"));
|
||||||
|
// String dlvylcLnbAdres = StringUtil.isNullToString(map.get("dlvylcLnbAdres"));
|
||||||
|
// String dlvylcRnmAdres = StringUtil.isNullToString(map.get("dlvylcRnmAdres"));
|
||||||
|
// String adresMulti;
|
||||||
|
// if ("01".equals(adresDvCd)) {
|
||||||
|
// adresMulti = dlvylcRnmAdres + " " + adresDtl;
|
||||||
|
// } else {
|
||||||
|
// adresMulti = dlvylcLnbAdres + " " + adresDtl;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// return adresMulti;
|
||||||
|
// })
|
||||||
|
// .collect(Collectors.toList());
|
||||||
|
//
|
||||||
|
// adresArray = adresList.toArray(new String[0]);
|
||||||
|
//
|
||||||
|
// List<String> receptMbtlnbList = dlvylcListMulti.stream()
|
||||||
|
// .map(map -> {
|
||||||
|
// return StringUtil.isNullToString(map.get("recpntMbtlnb"));
|
||||||
|
// })
|
||||||
|
// .collect(Collectors.toList());
|
||||||
|
//
|
||||||
|
// receptMbtlnbArray = receptMbtlnbList.toArray(new String[0]);
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// }
|
||||||
if (
|
if (
|
||||||
StringUtil.isEmpty((String) shipping.get("dlvylcZip")) ||
|
StringUtil.isEmpty((String) shipping.get("dlvylcZip")) ||
|
||||||
StringUtil.isEmpty((String) shipping.get("dlvylcAdresDvCd")) ||
|
StringUtil.isEmpty((String) shipping.get("dlvylcAdresDvCd")) ||
|
||||||
|
|||||||
@@ -343,6 +343,8 @@
|
|||||||
, CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
, CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
||||||
FROM (
|
FROM (
|
||||||
SELECT FG.GOODS_INNB
|
SELECT FG.GOODS_INNB
|
||||||
|
, FGO.GOODS_OPTN_INNB
|
||||||
|
, FGO.OPTN_TY
|
||||||
, FG.DLVY_GROUP_INNB
|
, FG.DLVY_GROUP_INNB
|
||||||
, FG.SOPMAL_CD
|
, FG.SOPMAL_CD
|
||||||
, FG.GOODS_NM
|
, FG.GOODS_NM
|
||||||
@@ -378,6 +380,7 @@
|
|||||||
, FGO.CNSMRPRIC
|
, FGO.CNSMRPRIC
|
||||||
, FGO.SLEPRIC
|
, FGO.SLEPRIC
|
||||||
, FGO.SOPMAL_CD
|
, FGO.SOPMAL_CD
|
||||||
|
, FGO.OPTN_TY
|
||||||
FROM GC_GOODS_OPTION FGO
|
FROM GC_GOODS_OPTION FGO
|
||||||
WHERE FGO.OPTN_EXPSR_AT = 'Y'
|
WHERE FGO.OPTN_EXPSR_AT = 'Y'
|
||||||
AND FGO.STDR_DV_AT = 'Y'
|
AND FGO.STDR_DV_AT = 'Y'
|
||||||
|
|||||||
@@ -1269,7 +1269,9 @@ FROM (
|
|||||||
, FDA.RECPNT_NM
|
, FDA.RECPNT_NM
|
||||||
, REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(FDA.TELNB), '1df5be2f7e90ae36') AS CHAR(50)), '(.{2})(.{4})(.{4})', '$1-$2-$3') AS TELNB
|
, REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(FDA.TELNB), '1df5be2f7e90ae36') AS CHAR(50)), '(.{2})(.{4})(.{4})', '$1-$2-$3') AS TELNB
|
||||||
, REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(FDA.MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), '(.{3})(.{4})(.{4})', '$1-$2-$3') AS MBTLNB
|
, REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(FDA.MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), '(.{3})(.{4})(.{4})', '$1-$2-$3') AS MBTLNB
|
||||||
|
, FDA.DLVYLC_AREA_CD
|
||||||
, FDA.ZIP
|
, FDA.ZIP
|
||||||
|
, FDA.PREFCD
|
||||||
, FDA.ADRES_DV
|
, FDA.ADRES_DV
|
||||||
, FDA.RNM_ADRES
|
, FDA.RNM_ADRES
|
||||||
, FDA.LNB_ADRES
|
, FDA.LNB_ADRES
|
||||||
@@ -1573,6 +1575,15 @@ FROM (
|
|||||||
, ROUND(IFNULL(FSG.BUNDLE_DLVY_CND_AMT, 0), '0') AS BUNDLE_DLVY_CND_AMT
|
, ROUND(IFNULL(FSG.BUNDLE_DLVY_CND_AMT, 0), '0') AS BUNDLE_DLVY_CND_AMT
|
||||||
, FSG.DLVY_AREA_ADIT_AT
|
, FSG.DLVY_AREA_ADIT_AT
|
||||||
, ROUND(IFNULL(FSG.AREA_ADIT_DLVY_AMT, 0), '0') AS AREA_ADIT_DLVY_AMT
|
, ROUND(IFNULL(FSG.AREA_ADIT_DLVY_AMT, 0), '0') AS AREA_ADIT_DLVY_AMT
|
||||||
|
, ROUND(IFNULL(FSG.DFT_DLVY_AMT2, 0), '0') AS DFT_DLVY_AMT2
|
||||||
|
, FSG.AMT_CND_USE_AT2
|
||||||
|
, ROUND(IFNULL(FSG.AMT_CND_ADIT_AMT2, 0), '0') AS AMT_CND_ADIT_AMT2
|
||||||
|
, FSG.CNT_CND_USE_AT2
|
||||||
|
, ROUND(IFNULL(FSG.CNT_CND_ADIT_AMT2, 0), '0') AS CNT_CND_ADIT_AMT2
|
||||||
|
, FSG.BUNDLE_DLVY_USE_AT2
|
||||||
|
, ROUND(IFNULL(FSG.BUNDLE_DLVY_CND_AMT2, 0), '0') AS BUNDLE_DLVY_CND_AMT2
|
||||||
|
, FSG.DLVY_AREA_ADIT_AT2
|
||||||
|
, ROUND(IFNULL(FSG.AREA_ADIT_DLVY_AMT2, 0), '0') AS AREA_ADIT_DLVY_AMT2
|
||||||
FROM GC_SHIPPING_GROUPING FSG
|
FROM GC_SHIPPING_GROUPING FSG
|
||||||
WHERE FSG.DLVY_GROUP_INNB = #{dlvyGroupInnb}
|
WHERE FSG.DLVY_GROUP_INNB = #{dlvyGroupInnb}
|
||||||
AND FSG.SOPMAL_CD = #{sopmalCd}
|
AND FSG.SOPMAL_CD = #{sopmalCd}
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
AND OI.GOODS_INNB = G.GOODS_INNB
|
AND OI.GOODS_INNB = G.GOODS_INNB
|
||||||
INNER JOIN GC_ORDER O ON EX.SOPMAL_CD = O.SOPMAL_CD
|
INNER JOIN GC_ORDER O ON EX.SOPMAL_CD = O.SOPMAL_CD
|
||||||
AND EX.ORDR_INNB = O.ORDR_INNB
|
AND EX.ORDR_INNB = O.ORDR_INNB
|
||||||
|
/*AND O.SUBSVC_AT = 'N'*/ /*구독서비스 제외*/
|
||||||
INNER JOIN GC_ORDER_SHIPPING OSHIP ON EX.SOPMAL_CD = OSHIP.SOPMAL_CD
|
INNER JOIN GC_ORDER_SHIPPING OSHIP ON EX.SOPMAL_CD = OSHIP.SOPMAL_CD
|
||||||
AND EX.ORDR_INNB = OSHIP.ORDR_INNB
|
AND EX.ORDR_INNB = OSHIP.ORDR_INNB
|
||||||
AND EX.ORDR_DLVY_INNB = OSHIP.ORDR_DLVY_INNB
|
AND EX.ORDR_DLVY_INNB = OSHIP.ORDR_DLVY_INNB
|
||||||
@@ -405,6 +406,7 @@
|
|||||||
AND OI.GOODS_INNB = G.GOODS_INNB
|
AND OI.GOODS_INNB = G.GOODS_INNB
|
||||||
INNER JOIN GC_ORDER O ON SH.SOPMAL_CD = O.SOPMAL_CD
|
INNER JOIN GC_ORDER O ON SH.SOPMAL_CD = O.SOPMAL_CD
|
||||||
AND SH.ORDR_INNB = O.ORDR_INNB
|
AND SH.ORDR_INNB = O.ORDR_INNB
|
||||||
|
/*AND O.SUBSVC_AT = 'N'*/ /*구독서비스 제외*/
|
||||||
INNER JOIN GC_ORDER_SETLE ST ON SH.SOPMAL_CD = ST.SOPMAL_CD
|
INNER JOIN GC_ORDER_SETLE ST ON SH.SOPMAL_CD = ST.SOPMAL_CD
|
||||||
AND SH.ORDR_INNB = ST.ORDR_INNB
|
AND SH.ORDR_INNB = ST.ORDR_INNB
|
||||||
LEFT JOIN GC_MEMBER MBR ON O.MBR_DV_CD = MBR.MBR_DV_CD
|
LEFT JOIN GC_MEMBER MBR ON O.MBR_DV_CD = MBR.MBR_DV_CD
|
||||||
@@ -583,8 +585,10 @@
|
|||||||
,SUM(OIOP.ORDR_QY) AS ORDR_QY -- 주문수량
|
,SUM(OIOP.ORDR_QY) AS ORDR_QY -- 주문수량
|
||||||
,COUNT(OIOP.ORDR_GOODS_OPTN_INNB) AS CNT
|
,COUNT(OIOP.ORDR_GOODS_OPTN_INNB) AS CNT
|
||||||
,IFNULL(SUM(OIOP.STEP85), 0) AS SETLE_CANCEL_QY -- 취소수량
|
,IFNULL(SUM(OIOP.STEP85), 0) AS SETLE_CANCEL_QY -- 취소수량
|
||||||
,SUM(OIOP.STEP35 + OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75) AS SNDNG_QY -- 보낸 수량
|
-- ,SUM(OIOP.STEP35 + OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75) AS SNDNG_QY -- 보낸 수량
|
||||||
,SUM((OIOP.ORDR_QY - OIOP.STEP85) - (OIOP.STEP35 + OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75)) AS REMAIN_QY -- 남은 수량
|
-- ,SUM((OIOP.ORDR_QY - OIOP.STEP85) - (OIOP.STEP35 + OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75)) AS REMAIN_QY -- 남은 수량
|
||||||
|
,SUM(OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75) AS SNDNG_QY -- 보낸 수량
|
||||||
|
,SUM((OIOP.ORDR_QY - OIOP.STEP85) - (OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75)) AS REMAIN_QY -- 남은 수량
|
||||||
,CASE --
|
,CASE --
|
||||||
WHEN COUNT(OIOP.ORDR_GOODS_OPTN_INNB) > 1 THEN CONCAT(MAX(OI.GOODS_NM) , ' 외 ', COUNT(OIOP.ORDR_GOODS_OPTN_INNB)-1, '종')
|
WHEN COUNT(OIOP.ORDR_GOODS_OPTN_INNB) > 1 THEN CONCAT(MAX(OI.GOODS_NM) , ' 외 ', COUNT(OIOP.ORDR_GOODS_OPTN_INNB)-1, '종')
|
||||||
ELSE MAX(OI.GOODS_NM)
|
ELSE MAX(OI.GOODS_NM)
|
||||||
@@ -662,8 +666,10 @@
|
|||||||
,SUM(OIOP.ORDR_QY) AS ORDR_QY -- 주문수량
|
,SUM(OIOP.ORDR_QY) AS ORDR_QY -- 주문수량
|
||||||
,COUNT(OIOP.ORDR_GOODS_OPTN_INNB) AS CNT
|
,COUNT(OIOP.ORDR_GOODS_OPTN_INNB) AS CNT
|
||||||
,IFNULL(SUM(OIOP.STEP85), 0) AS SETLE_CANCEL_QY -- 취소수량
|
,IFNULL(SUM(OIOP.STEP85), 0) AS SETLE_CANCEL_QY -- 취소수량
|
||||||
,SUM(OIOP.STEP35 + OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75) AS SNDNG_QY -- 보낸 수량
|
-- ,SUM(OIOP.STEP35 + OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75) AS SNDNG_QY -- 보낸 수량
|
||||||
,SUM((OIOP.ORDR_QY - OIOP.STEP85) - (OIOP.STEP35 + OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75)) AS REMAIN_QY -- 남은 수량
|
-- ,SUM((OIOP.ORDR_QY - OIOP.STEP85) - (OIOP.STEP35 + OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75)) AS REMAIN_QY -- 남은 수량
|
||||||
|
,SUM(OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75) AS SNDNG_QY -- 보낸 수량
|
||||||
|
,SUM((OIOP.ORDR_QY - OIOP.STEP85) - (OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75)) AS REMAIN_QY -- 남은 수량
|
||||||
,CASE --
|
,CASE --
|
||||||
WHEN COUNT(OIOP.ORDR_GOODS_OPTN_INNB) > 1 THEN CONCAT(MAX(OI.GOODS_NM) , ' 외 ', COUNT(OIOP.ORDR_GOODS_OPTN_INNB)-1, '종')
|
WHEN COUNT(OIOP.ORDR_GOODS_OPTN_INNB) > 1 THEN CONCAT(MAX(OI.GOODS_NM) , ' 외 ', COUNT(OIOP.ORDR_GOODS_OPTN_INNB)-1, '종')
|
||||||
ELSE MAX(OI.GOODS_NM)
|
ELSE MAX(OI.GOODS_NM)
|
||||||
@@ -755,7 +761,8 @@
|
|||||||
OIOP.ORDR_GOODS_OPTN_INNB
|
OIOP.ORDR_GOODS_OPTN_INNB
|
||||||
,OIOP.SOPMAL_CD
|
,OIOP.SOPMAL_CD
|
||||||
,OIOP.OPTN_TY
|
,OIOP.OPTN_TY
|
||||||
,((OIOP.ORDR_QY - OIOP.STEP85) - (OIOP.STEP35 + OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75)) AS QY
|
-- ,((OIOP.ORDR_QY - OIOP.STEP85) - (OIOP.STEP35 + OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75)) AS QY
|
||||||
|
,((OIOP.ORDR_QY - OIOP.STEP85) - (OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75)) AS QY /*상품준비(35)는 출고대상으로 지정*/
|
||||||
,OI.GOODS_NM
|
,OI.GOODS_NM
|
||||||
,(
|
,(
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
@@ -79,14 +79,17 @@
|
|||||||
MBR_INNB,
|
MBR_INNB,
|
||||||
MBR_DV_CD,
|
MBR_DV_CD,
|
||||||
DLVYLC_DC_CN,
|
DLVYLC_DC_CN,
|
||||||
|
DLVYLC_AREA_CD,
|
||||||
RECPNT_NM,
|
RECPNT_NM,
|
||||||
CAST(AES_DECRYPT(UNHEX(MBTLNB) , '1df5be2f7e90ae36') AS CHAR(50)) AS MBTLNB,
|
CAST(AES_DECRYPT(UNHEX(MBTLNB) , '1df5be2f7e90ae36') AS CHAR(50)) AS MBTLNB,
|
||||||
ADRES_DV,
|
ADRES_DV,
|
||||||
LNB_ADRES,
|
LNB_ADRES,
|
||||||
RNM_ADRES,
|
RNM_ADRES,
|
||||||
DTL_ADRES,
|
DTL_ADRES,
|
||||||
|
CSTMCLER_CD,
|
||||||
DFT_DLVYLC_AT,
|
DFT_DLVYLC_AT,
|
||||||
ZIP
|
ZIP,
|
||||||
|
PREFCD
|
||||||
<include refid="dlvyAdresFrom"/>
|
<include refid="dlvyAdresFrom"/>
|
||||||
<include refid="mbrInnbWhere"/>
|
<include refid="mbrInnbWhere"/>
|
||||||
ORDER BY (CASE WHEN DFT_DLVYLC_AT = 'Y' THEN 1 ELSE 2 END), ADBK_INNB DESC
|
ORDER BY (CASE WHEN DFT_DLVYLC_AT = 'Y' THEN 1 ELSE 2 END), ADBK_INNB DESC
|
||||||
@@ -494,6 +497,7 @@
|
|||||||
AND FOS.ORDR_INNB = FO.ORDR_INNB
|
AND FOS.ORDR_INNB = FO.ORDR_INNB
|
||||||
WHERE FO.USE_AT = 'Y'
|
WHERE FO.USE_AT = 'Y'
|
||||||
AND IFNULL(FOS.ORDR_INNB, '') != ''
|
AND IFNULL(FOS.ORDR_INNB, '') != ''
|
||||||
|
/*AND FO.SUBSVC_AT = 'N'*/
|
||||||
AND FO.SOPMAL_CD = #{sopmalCd}
|
AND FO.SOPMAL_CD = #{sopmalCd}
|
||||||
<include refid="orderWhere"/>
|
<include refid="orderWhere"/>
|
||||||
</select>
|
</select>
|
||||||
@@ -597,6 +601,7 @@
|
|||||||
ON FOS.SOPMAL_CD = FO.SOPMAL_CD
|
ON FOS.SOPMAL_CD = FO.SOPMAL_CD
|
||||||
AND FOS.ORDR_INNB = FO.ORDR_INNB
|
AND FOS.ORDR_INNB = FO.ORDR_INNB
|
||||||
WHERE FO.USE_AT = 'Y'
|
WHERE FO.USE_AT = 'Y'
|
||||||
|
/*AND FO.SUBSVC_AT = 'N'*/
|
||||||
AND FOS.ORDR_INNB IS NOT NULL -- GC_ORDER_SETLE 에 데이터가 있을 때 조건
|
AND FOS.ORDR_INNB IS NOT NULL -- GC_ORDER_SETLE 에 데이터가 있을 때 조건
|
||||||
# AND IFNULL(FOS.ORDR_INNB, '') != '' -- 필터조건의 의미가 inner join 을 의미하므로, GC_ORDER_SETLE 테이블과 inner join 으로 변경하였음.
|
# AND IFNULL(FOS.ORDR_INNB, '') != '' -- 필터조건의 의미가 inner join 을 의미하므로, GC_ORDER_SETLE 테이블과 inner join 으로 변경하였음.
|
||||||
AND FO.SOPMAL_CD = #{sopmalCd}
|
AND FO.SOPMAL_CD = #{sopmalCd}
|
||||||
@@ -3815,6 +3820,7 @@
|
|||||||
LEFT JOIN GC_ORDER_SETLE FOS ON FOS.SOPMAL_CD = FO.SOPMAL_CD
|
LEFT JOIN GC_ORDER_SETLE FOS ON FOS.SOPMAL_CD = FO.SOPMAL_CD
|
||||||
AND FOS.ORDR_INNB = FO.ORDR_INNB
|
AND FOS.ORDR_INNB = FO.ORDR_INNB
|
||||||
WHERE FO.USE_AT = 'Y'
|
WHERE FO.USE_AT = 'Y'
|
||||||
|
AND FO.SUBSVC_AT = 'N' /*구독서비스 제외*/
|
||||||
AND IFNULL(FOS.ORDR_INNB, '') != ''
|
AND IFNULL(FOS.ORDR_INNB, '') != ''
|
||||||
AND FO.SOPMAL_CD = #{sopmalCd}
|
AND FO.SOPMAL_CD = #{sopmalCd}
|
||||||
AND FO.MBR_DV_CD = #{mbrDvCd}
|
AND FO.MBR_DV_CD = #{mbrDvCd}
|
||||||
@@ -3959,7 +3965,7 @@
|
|||||||
LEFT JOIN GC_ORDER_SETLE FOS ON FOS.SOPMAL_CD = FO.SOPMAL_CD
|
LEFT JOIN GC_ORDER_SETLE FOS ON FOS.SOPMAL_CD = FO.SOPMAL_CD
|
||||||
AND FOS.ORDR_INNB = FO.ORDR_INNB
|
AND FOS.ORDR_INNB = FO.ORDR_INNB
|
||||||
WHERE FO.USE_AT = 'Y'
|
WHERE FO.USE_AT = 'Y'
|
||||||
AND FO.SUBSVC_INNB IS NULL /*구독서비스 제외*/
|
AND FO.SUBSVC_AT = 'N' /*구독서비스 제외*/
|
||||||
AND ( ( FO.ORDR_STTUS_CD BETWEEN '15' AND '75' ) OR FO.ORDR_STTUS_CD = '95' )
|
AND ( ( FO.ORDR_STTUS_CD BETWEEN '15' AND '75' ) OR FO.ORDR_STTUS_CD = '95' )
|
||||||
AND FO.SOPMAL_CD = #{sopmalCd}
|
AND FO.SOPMAL_CD = #{sopmalCd}
|
||||||
AND FO.MBR_DV_CD = #{mbrDvCd}
|
AND FO.MBR_DV_CD = #{mbrDvCd}
|
||||||
@@ -4633,7 +4639,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<!-- 추가지역별배송비 해당 여부 -->
|
<!-- 추가지역별배송비 해당 여부 (KR) -->
|
||||||
<select id="selectBODefaultAdressAtInqire"
|
<select id="selectBODefaultAdressAtInqire"
|
||||||
resultType="java.lang.String">
|
resultType="java.lang.String">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
@@ -4651,6 +4657,24 @@
|
|||||||
]]>
|
]]>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- 추가지역별배송비 해당 여부 (JP) -->
|
||||||
|
<select id="selectBODefaultAdressAtInqire2"
|
||||||
|
resultType="java.lang.String">
|
||||||
|
<![CDATA[
|
||||||
|
SELECT
|
||||||
|
CASE
|
||||||
|
WHEN EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM GC_DEFAULT_ADDSHIPPING
|
||||||
|
WHERE SOPMAL_CD = #{sopmalCd}
|
||||||
|
AND PREFCD = #{prefcd}
|
||||||
|
) THEN 'Y'
|
||||||
|
ELSE 'N'
|
||||||
|
END AS ADDSHIPPING_AT
|
||||||
|
FROM DUAL
|
||||||
|
]]>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -5385,7 +5409,7 @@
|
|||||||
AND GOR.SOPMAL_CD = #{sopmalCd}
|
AND GOR.SOPMAL_CD = #{sopmalCd}
|
||||||
AND GOR.MBR_DV_CD = #{mbrDvCd}
|
AND GOR.MBR_DV_CD = #{mbrDvCd}
|
||||||
AND GOR.MBR_INNB = #{mbrInnb}
|
AND GOR.MBR_INNB = #{mbrInnb}
|
||||||
AND GOR.SUBSVC_INNB IS NOT NULL /*구독서비스*/
|
AND GOR.SUBSVC_AT = 'Y' /*구독서비스*/
|
||||||
)
|
)
|
||||||
GROUP BY FOI.ORDR_INNB
|
GROUP BY FOI.ORDR_INNB
|
||||||
) ITEM ON ITEM.SOPMAL_CD = FO.SOPMAL_CD
|
) ITEM ON ITEM.SOPMAL_CD = FO.SOPMAL_CD
|
||||||
@@ -5393,7 +5417,7 @@
|
|||||||
LEFT JOIN GC_ORDER_SETLE FOS ON FOS.SOPMAL_CD = FO.SOPMAL_CD
|
LEFT JOIN GC_ORDER_SETLE FOS ON FOS.SOPMAL_CD = FO.SOPMAL_CD
|
||||||
AND FOS.ORDR_INNB = FO.ORDR_INNB
|
AND FOS.ORDR_INNB = FO.ORDR_INNB
|
||||||
WHERE FO.USE_AT = 'Y'
|
WHERE FO.USE_AT = 'Y'
|
||||||
AND FO.SUBSVC_INNB IS NOT NULL /*구독서비스*/
|
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 '75' ) OR FO.ORDR_STTUS_CD = '95' )
|
||||||
AND FO.SOPMAL_CD = #{sopmalCd}
|
AND FO.SOPMAL_CD = #{sopmalCd}
|
||||||
AND FO.MBR_DV_CD = #{mbrDvCd}
|
AND FO.MBR_DV_CD = #{mbrDvCd}
|
||||||
|
|||||||
@@ -0,0 +1,470 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.wb.domainserver.domain.gcone.ordr.subsvc.mapper.BOSubsvcOrdrMapper">
|
||||||
|
<!--구독서비스 상품준비 관리 목록-->
|
||||||
|
<select id="selectBOSubsvcOrderList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
|
||||||
|
SELECT *
|
||||||
|
FROM (
|
||||||
|
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
||||||
|
, COUNT(*) OVER() AS TOT_CNT
|
||||||
|
, MAIN.*
|
||||||
|
FROM (
|
||||||
|
SELECT ROW_NUMBER() OVER(PARTITION BY GO.ORDR_INNB ORDER BY GO.ORDR_INNB ASC, GOIO.ORDR_STTUS_CD ASC, GOI.ORDR_GOODS_INNB ASC, GOIO.ORDR_GOODS_OPTN_INNB ASC) AS LINE
|
||||||
|
, GO.ORDR_INNB
|
||||||
|
, GOI.ORDR_GOODS_INNB
|
||||||
|
, GOIO.ORDR_GOODS_OPTN_INNB /*일괄처리 대상 주문상품옵션고유번호*/
|
||||||
|
, GOIO.ORDR_DLVY_INNB
|
||||||
|
, GS.SUBSVC_NM
|
||||||
|
, GS.SUBSVC_GNR
|
||||||
|
, GS.SUBSVC_GNR_NM
|
||||||
|
, GM.MBR_NM
|
||||||
|
, GM.MBR_ID
|
||||||
|
, GM.MBR_DV_CD
|
||||||
|
, GM.MBR_INNB
|
||||||
|
, fn_get_member_grad_name(GO.SOPMAL_CD, GM.MBR_DV_CD, GM.MBR_INNB) AS GRADE
|
||||||
|
, SUM(CASE WHEN GOIO.ORDR_STTUS_CD BETWEEN '35' AND '75' THEN 1 ELSE 0 END) OVER(PARTITION BY GO.ORDR_INNB)+1 AS CURT_PROCS_ODR
|
||||||
|
, SUM(CASE WHEN GOIO.ORDR_STTUS_CD BETWEEN '35' AND '75' THEN 1 ELSE 0 END) OVER(PARTITION BY GO.ORDR_INNB) AS MBR_LAST_PROCS_ODR /*회원별 최종차수 상품준비 ~ 배송완료*/
|
||||||
|
, MAX(GOIO.UPDT_DT) OVER(PARTITION BY GO.ORDR_INNB) AS LAST_PRCS_DT/*최종처리일*/
|
||||||
|
, IFNULL(GS.LAST_PROCS_ODR,0) AS LAST_PROCS_ODR /*최종차수*/
|
||||||
|
, GOIO.ORDR_STTUS_CD
|
||||||
|
FROM GC_ORDER GO
|
||||||
|
JOIN GC_SUBSVC GS ON GS.SOPMAL_CD = GO.SOPMAL_CD AND GS.SUBSVC_INNB = GO.SUBSVC_INNB
|
||||||
|
JOIN GC_MEMBER GM ON GM.MBR_DV_CD = GO.MBR_DV_CD AND GM.MBR_INNB = GO.MBR_INNB
|
||||||
|
JOIN GC_ORDER_ITEM GOI ON GO.SOPMAL_CD =GOI.SOPMAL_CD AND GO.ORDR_INNB = GOI.ORDR_INNB
|
||||||
|
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOI.SOPMAL_CD = GOIO.SOPMAL_CD AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB AND GOIO.OPTN_TY = '01'
|
||||||
|
WHERE GO.USE_AT = 'Y'
|
||||||
|
AND GO.SUBSVC_AT = 'Y'
|
||||||
|
AND GO.SOPMAL_CD = #{sopmalCd}
|
||||||
|
<if test='srchSelSubsvcNm != null and srchSelSubsvcNm != ""'>
|
||||||
|
AND GS.SUBSVC_NM = #{srchSelSubsvcNm} /*구독서비스 명*/
|
||||||
|
</if>
|
||||||
|
<if test='srchSelSubsvcGnr != null and srchSelSubsvcGnr != ""'>
|
||||||
|
AND GS.SUBSVC_GNR = #{srchSelSubsvcGnr} /*기수*/
|
||||||
|
</if>
|
||||||
|
<if test='srchSubsvcNm != null and srchSubsvcNm != ""'>
|
||||||
|
AND GS.SUBSVC_NM LIKE CONCAT('%',#{srchSubsvcNm},'%') /*구독서비스 명*/
|
||||||
|
</if>
|
||||||
|
<if test='srchSubsvcGnrNm != null and srchSubsvcGnrNm != ""'>
|
||||||
|
AND GS.SUBSVC_GNR_NM LIKE CONCAT('%',#{srchSubsvcGnrNm},'%') /*기수명*/
|
||||||
|
</if>
|
||||||
|
) MAIN
|
||||||
|
WHERE (@ROWNUM:=0)=0
|
||||||
|
AND MAIN.LINE = 1
|
||||||
|
AND MAIN.ORDR_STTUS_CD = '25'
|
||||||
|
<if test='srchCurMonExclude!= null and srchCurMonExclude == "Y"'>
|
||||||
|
<![CDATA[
|
||||||
|
AND MAIN.LAST_PRCS_DT < CONCAT(DATE_FORMAT(NOW(),'%Y-%m'),'-01') /*당월 처리자 제외*/
|
||||||
|
]]>
|
||||||
|
</if>
|
||||||
|
<choose>
|
||||||
|
<when test='sortDv == "subsvcGnrAsc"'>
|
||||||
|
ORDER BY SUBSVC_NM ASC, SUBSVC_GNR ASC /*구독서비스명+기수*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "subsvcGnrDesc"'>
|
||||||
|
ORDER BY SUBSVC_NM DESC, SUBSVC_GNR DESC /*구독서비스명+기수*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "mbrAsc"'>
|
||||||
|
ORDER BY MBR_NM ASC, MBR_ID ASC /*주문자순*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "mbrDesc"'>
|
||||||
|
ORDER BY MBR_NM DESC, MBR_ID DESC /*주문자순*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "ordrAsc"'>
|
||||||
|
ORDER BY ORDR_INNB ASC /*주문번호순*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "ordrDesc"'>
|
||||||
|
ORDER BY ORDR_INNB DESC /*주문번호순*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "lastPrcsDtAsc"'>
|
||||||
|
ORDER BY LAST_PRCS_DT ASC /*최종처리일순*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "lastPrcsDtDesc"'>
|
||||||
|
ORDER BY LAST_PRCS_DT ASC /*최종처리일순*/
|
||||||
|
</when>
|
||||||
|
<otherwise>
|
||||||
|
ORDER BY SUBSVC_NM ASC, SUBSVC_GNR ASC
|
||||||
|
</otherwise>
|
||||||
|
</choose>
|
||||||
|
) PV
|
||||||
|
WHERE 1=1
|
||||||
|
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!--구독서비스 상품준비 관리 목록 배송내역 팝업 배송내역목록-->
|
||||||
|
<select id="selectBOSubsvcOrderDlvyList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
|
||||||
|
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
||||||
|
, GOIO.ORDR_GOODS_OPTN_INNB
|
||||||
|
, GO.ORDR_INNB
|
||||||
|
, GM.MBR_NM
|
||||||
|
, GM.MBR_ID
|
||||||
|
, GM.MBR_DV_CD
|
||||||
|
, GM.MBR_INNB
|
||||||
|
, fn_get_member_grad_name(GO.SOPMAL_CD, GM.MBR_DV_CD, GM.MBR_INNB) AS GRADE
|
||||||
|
, IFNULL(GOIO.UPDT_DT, GOIO.REGIST_DT) AS PROCS_DT /*발생일자*/
|
||||||
|
, GOI.GOODS_IMG_COURS
|
||||||
|
, GOI.GOODS_NM
|
||||||
|
, GOIO.OPTN_NM_1
|
||||||
|
, GOIO.OPTN_VAL_1
|
||||||
|
, GOIO.CNSMRPRIC /*정가*/
|
||||||
|
, GOIO.SLEPRIC /*판매가*/
|
||||||
|
, fn_get_commcode_name('ORDR_STTUS', GOIO.ORDR_STTUS_CD) AS ORDR_STTUS
|
||||||
|
FROM GC_ORDER GO
|
||||||
|
JOIN GC_MEMBER GM ON GM.MBR_DV_CD = GO.MBR_DV_CD AND GM.MBR_INNB = GO.MBR_INNB
|
||||||
|
JOIN GC_ORDER_ITEM GOI ON GOI.SOPMAL_CD = GO.SOPMAL_CD AND GOI.ORDR_INNB = GO.ORDR_INNB
|
||||||
|
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOI.SOPMAL_CD = GOIO.SOPMAL_CD AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB AND GOIO.OPTN_TY = '01'
|
||||||
|
WHERE (@ROWNUM:=0)=0
|
||||||
|
AND GOI.ORDR_INNB = #{ordrInnb}
|
||||||
|
AND GOI.SOPMAL_CD = #{sopmalCd}
|
||||||
|
ORDER BY GOIO.ORDR_GOODS_OPTN_INNB ASC
|
||||||
|
</select>
|
||||||
|
<!--구독서비스 상품준비 관리 상품매칭 - 1. GC_ORDER update-->
|
||||||
|
<update id="updateBOSubsvcGoodsMappgOrdr" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
|
||||||
|
<foreach collection="arrOrdrInnb" item="ordrInnb" separator=";">
|
||||||
|
UPDATE GC_ORDER
|
||||||
|
SET ORDR_STTUS_CD = (CASE WHEN ORDR_STTUS_CD = '25' THEN '35' ELSE ORDR_STTUS_CD END)
|
||||||
|
, UPDT_DT = NOW()
|
||||||
|
WHERE SOPMAL_CD = #{sopmalCd}
|
||||||
|
AND ORDR_INNB = #{ordrInnb}
|
||||||
|
</foreach>
|
||||||
|
</update>
|
||||||
|
<!--구독서비스 상품준비 관리 상품매칭 - 2. GC_ORDER_ITEM update-->
|
||||||
|
<update id="updateBOSubsvcGoodsMappgOrdrItem" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
|
||||||
|
<foreach collection="arrOrdrGoodsInnb" item="ordrGoodsInnb" separator=";">
|
||||||
|
UPDATE GC_ORDER_ITEM GOI, (SELECT GG.GOODS_INNB, GG.GOODS_NM, GGI.IMG
|
||||||
|
FROM GC_GOODS GG
|
||||||
|
JOIN GC_GOODS_IMAGE GGI ON GGI.SOPMAL_CD = GG.SOPMAL_CD AND GGI.GOODS_INNB = GG.GOODS_INNB AND GGI.CUT_NB = 1 AND GGI.IMG_KND = '02'
|
||||||
|
WHERE GG.GOODS_INNB = #{goodsInnb}
|
||||||
|
LIMIT 1) G
|
||||||
|
SET GOI.GOODS_INNB = G.GOODS_INNB
|
||||||
|
, GOI.GOODS_NM = G.GOODS_NM
|
||||||
|
, GOI.GOODS_IMG_COURS = G.IMG
|
||||||
|
WHERE SOPMAL_CD = #{sopmalCd}
|
||||||
|
AND GOI.ORDR_GOODS_INNB = #{ordrGoodsInnb}
|
||||||
|
</foreach>
|
||||||
|
</update>
|
||||||
|
<!--구독서비스 상품준비 관리 상품매칭 - 3. GC_ORDER_ITEM_OPTION update-->
|
||||||
|
<update id="updateBOSubsvcGoodsMappgOrdrItemOptn" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
|
||||||
|
<foreach collection="arrOrdrGoodsOptnInnb" item="ordrGoodsOptnInnb" separator=";">
|
||||||
|
UPDATE GC_ORDER_ITEM_OPTION GOIO, (SELECT GOODS_OPTN_INNB
|
||||||
|
, OPTN_TY
|
||||||
|
, OPTN_NM_1
|
||||||
|
, OPTN_NM_2
|
||||||
|
, OPTN_NM_3
|
||||||
|
, OPTN_NM_4
|
||||||
|
, OPTN_VAL_1
|
||||||
|
, OPTN_VAL_2
|
||||||
|
, OPTN_VAL_3
|
||||||
|
, OPTN_VAL_4
|
||||||
|
, OPTN_CD_1
|
||||||
|
, OPTN_CD_2
|
||||||
|
, OPTN_CD_3
|
||||||
|
, OPTN_CD_4
|
||||||
|
, OPTN_INFO
|
||||||
|
, CNSMRPRIC
|
||||||
|
, SLEPRIC
|
||||||
|
, GG.TAX_AT
|
||||||
|
FROM GC_GOODS_OPTION GGO
|
||||||
|
JOIN GC_GOODS GG ON GG.SOPMAL_CD = GGO.SOPMAL_CD AND GG.GOODS_INNB = GGO.GOODS_INNB
|
||||||
|
WHERE GGO.GOODS_OPTN_INNB = #{goodsOptnInnb}
|
||||||
|
AND GGO.OPTN_TY = #{optnTy}
|
||||||
|
LIMIT 1) G
|
||||||
|
SET GOIO.GOODS_OPTN_INNB = G.GOODS_OPTN_INNB
|
||||||
|
, GOIO.OPTN_TY = G.OPTN_TY
|
||||||
|
, GOIO.OPTN_NM_1 = G.OPTN_NM_1
|
||||||
|
, GOIO.OPTN_NM_2 = G.OPTN_NM_2
|
||||||
|
, GOIO.OPTN_NM_3 = G.OPTN_NM_3
|
||||||
|
, GOIO.OPTN_NM_4 = G.OPTN_NM_4
|
||||||
|
, GOIO.OPTN_VAL_1 = G.OPTN_VAL_1
|
||||||
|
, GOIO.OPTN_VAL_2 = G.OPTN_VAL_2
|
||||||
|
, GOIO.OPTN_VAL_3 = G.OPTN_VAL_3
|
||||||
|
, GOIO.OPTN_VAL_4 = G.OPTN_VAL_4
|
||||||
|
, GOIO.OPTN_CD_1 = G.OPTN_CD_1
|
||||||
|
, GOIO.OPTN_CD_2 = G.OPTN_CD_2
|
||||||
|
, GOIO.OPTN_CD_3 = G.OPTN_CD_3
|
||||||
|
, GOIO.OPTN_CD_4 = G.OPTN_CD_4
|
||||||
|
, GOIO.OPTN_INFO = G.OPTN_INFO
|
||||||
|
, GOIO.CNSMRPRIC = G.CNSMRPRIC
|
||||||
|
, GOIO.SLEPRIC = G.SLEPRIC
|
||||||
|
, GOIO.TAX_AT = G.TAX_AT
|
||||||
|
, GOIO.STEP85 = 0
|
||||||
|
, GOIO.STEP35 = GOIO.ORDR_QY
|
||||||
|
, GOIO.STEP45 = 0
|
||||||
|
, GOIO.STEP55 = 0
|
||||||
|
, GOIO.STEP65 = 0
|
||||||
|
, GOIO.STEP75 = 0
|
||||||
|
, GOIO.ORDR_STTUS_CD = '35'
|
||||||
|
, GOIO.UPDT_DT = NOW()
|
||||||
|
WHERE GOIO.SOPMAL_CD = #{sopmalCd}
|
||||||
|
AND GOIO.ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
|
||||||
|
</foreach>
|
||||||
|
</update>
|
||||||
|
<!--구독서비스 상품준비 관리 상품매칭 - 4. GC_ORDER_SHIPPING update-->
|
||||||
|
<update id="updateBOSubsvcGoodsMappgShipping" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
|
||||||
|
<foreach collection="arrOrdrDlvyInnb" item="ordrDlvyInnb" separator=";">
|
||||||
|
UPDATE GC_ORDER_SHIPPING
|
||||||
|
SET ORDR_STTUS_CD = '35'
|
||||||
|
, UPDT_DT = NOW()
|
||||||
|
WHERE SOPMAL_CD = #{sopmalCd}
|
||||||
|
AND ORDR_DLVY_INNB = #{ordrDlvyInnb}
|
||||||
|
</foreach>
|
||||||
|
</update>
|
||||||
|
<!--구독서비스 상품준비 관리 상품매칭 - 5. GC_SUBSVC update-->
|
||||||
|
<update id="updateBOSubsvcGoodsMappgSubsvc" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
|
||||||
|
UPDATE GC_SUBSVC GS, ( SELECT SOPMAL_CD, SUBSVC_INNB, MAX(LAST_PROCS_ODR) LAST_PROCS_ODR
|
||||||
|
FROM (
|
||||||
|
SELECT GOIO.SOPMAL_CD, GO.SUBSVC_INNB, SUM(CASE WHEN GOIO.ORDR_STTUS_CD BETWEEN '35' AND '75' THEN 1 ELSE 0 END) OVER(PARTITION BY GO.SOPMAL_CD, GO.ORDR_INNB) AS LAST_PROCS_ODR
|
||||||
|
FROM GC_ORDER GO
|
||||||
|
JOIN GC_ORDER_ITEM GOI ON GOI.SOPMAL_CD = GO.SOPMAL_CD AND GOI.ORDR_INNB = GO.ORDR_INNB
|
||||||
|
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOIO.SOPMAL_CD = GOI.SOPMAL_CD AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB
|
||||||
|
WHERE GO.SUBSVC_AT = 'Y'
|
||||||
|
AND GO.SOPMAL_CD = #{sopmalCd}
|
||||||
|
AND GO.SUBSVC_INNB IN (SELECT DISTINCT SUBSVC_INNB
|
||||||
|
FROM GC_ORDER
|
||||||
|
WHERE SOPMAL_CD = #{sopmalCd}
|
||||||
|
AND ORDR_INNB IN
|
||||||
|
<foreach collection="arrOrdrInnb" item="ordrInnb" open="(" close=")" separator=",">
|
||||||
|
#{ordrInnb}
|
||||||
|
</foreach>
|
||||||
|
)
|
||||||
|
) M
|
||||||
|
GROUP BY SOPMAL_CD, SUBSVC_INNB
|
||||||
|
) MAIN
|
||||||
|
SET GS.LAST_PROCS_ODR = MAIN.LAST_PROCS_ODR
|
||||||
|
, UPDT_DT = NOW()
|
||||||
|
WHERE GS.SOPMAL_CD = MAIN.SOPMAL_CD
|
||||||
|
AND GS.SUBSVC_INNB = MAIN.SUBSVC_INNB
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<!--구독서비스 상품변경 관리 목록-->
|
||||||
|
<select id="selectBOSubsvcOrderMappedList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
|
||||||
|
SELECT *
|
||||||
|
FROM (
|
||||||
|
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
||||||
|
, COUNT(*) OVER() AS TOT_CNT
|
||||||
|
, MAIN.*
|
||||||
|
FROM (
|
||||||
|
SELECT ROW_NUMBER() OVER(PARTITION BY GO.ORDR_INNB ORDER BY GOI.ORDR_GOODS_INNB ASC, GOIO.ORDR_GOODS_OPTN_INNB ASC) AS CURT_PROCS_ODR /*차수*/
|
||||||
|
, GO.ORDR_INNB /*주문번호*/
|
||||||
|
, GOI.ORDR_GOODS_INNB
|
||||||
|
, GOIO.ORDR_GOODS_OPTN_INNB /*일괄처리 대상 주문상품옵션고유번호*/
|
||||||
|
, GOIO.ORDR_DLVY_INNB
|
||||||
|
, GS.SUBSVC_NM
|
||||||
|
, GS.SUBSVC_GNR
|
||||||
|
, GS.SUBSVC_GNR_NM
|
||||||
|
, GM.MBR_NM /*회원명*/
|
||||||
|
, GM.MBR_ID /*회원ID*/
|
||||||
|
, GM.MBR_DV_CD /*회원구분코드*/
|
||||||
|
, GM.MBR_INNB /*회원고유번호*/
|
||||||
|
, fn_get_member_grad_name(GO.SOPMAL_CD, GM.MBR_DV_CD, GM.MBR_INNB) AS GRADE /*회원등급*/
|
||||||
|
, MAX(GOIO.UPDT_DT) OVER(PARTITION BY GO.ORDR_INNB) AS LAST_PRCS_DT/*최종처리일*/
|
||||||
|
, GOIO.ORDR_STTUS_CD
|
||||||
|
, GOI.GOODS_IMG_COURS /*상품이미지*/
|
||||||
|
, GOI.GOODS_NM /*상품명*/
|
||||||
|
, GOIO.OPTN_NM_1 /*상품옵션명*/
|
||||||
|
, GOIO.OPTN_VAL_1 /*상품옵션값*/
|
||||||
|
, GOIO.UPDT_DT /*처리일자*/
|
||||||
|
FROM GC_ORDER GO
|
||||||
|
JOIN GC_SUBSVC GS ON GS.SOPMAL_CD = GO.SOPMAL_CD AND GS.SUBSVC_INNB = GO.SUBSVC_INNB
|
||||||
|
JOIN GC_MEMBER GM ON GM.MBR_DV_CD = GO.MBR_DV_CD AND GM.MBR_INNB = GO.MBR_INNB
|
||||||
|
JOIN GC_ORDER_ITEM GOI ON GO.SOPMAL_CD =GOI.SOPMAL_CD AND GO.ORDR_INNB = GOI.ORDR_INNB
|
||||||
|
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOI.SOPMAL_CD = GOIO.SOPMAL_CD AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB AND GOIO.OPTN_TY = '01'
|
||||||
|
WHERE GO.USE_AT = 'Y'
|
||||||
|
AND GO.SUBSVC_AT = 'Y'
|
||||||
|
AND GO.SOPMAL_CD = #{sopmalCd}
|
||||||
|
<if test='srchSelSubsvcNm != null and srchSelSubsvcNm != ""'>
|
||||||
|
AND GS.SUBSVC_NM = #{srchSelSubsvcNm} /*구독서비스 명*/
|
||||||
|
</if>
|
||||||
|
<if test='srchSelSubsvcGnr != null and srchSelSubsvcGnr != ""'>
|
||||||
|
AND GS.SUBSVC_GNR = #{srchSelSubsvcGnr} /*기수*/
|
||||||
|
</if>
|
||||||
|
<if test='srchSubsvcNm != null and srchSubsvcNm != ""'>
|
||||||
|
AND GS.SUBSVC_NM LIKE CONCAT('%',#{srchSubsvcNm},'%') /*구독서비스 명*/
|
||||||
|
</if>
|
||||||
|
<if test='srchSubsvcGnrNm != null and srchSubsvcGnrNm != ""'>
|
||||||
|
AND GS.SUBSVC_GNR_NM LIKE CONCAT('%',#{srchSubsvcGnrNm},'%') /*기수명*/
|
||||||
|
</if>
|
||||||
|
<if test='srchOrdrInnb != null and srchOrdrInnb != ""'>
|
||||||
|
AND GO.ORDR_INNB = #{srchOrdrInnb} /*주문번호*/
|
||||||
|
</if>
|
||||||
|
<if test='srchMbrNm != null and srchMbrNm != ""'>
|
||||||
|
AND GM.MBR_NM LIKE CONCAT('%',#{srchMbrNm},'%') /*주문자명*/
|
||||||
|
</if>
|
||||||
|
<if test='srchMbrId != null and srchMbrId != ""'>
|
||||||
|
AND GM.MBR_ID LIKE CONCAT('%',#{srchMbrId},'%') /*주문자id*/
|
||||||
|
</if>
|
||||||
|
) MAIN
|
||||||
|
WHERE (@ROWNUM:=0)=0
|
||||||
|
AND MAIN.ORDR_STTUS_CD = '35'
|
||||||
|
<if test='srchCurMonExclude!= null and srchCurMonExclude == "Y"'>
|
||||||
|
<![CDATA[
|
||||||
|
AND MAIN.LAST_PRCS_DT < CONCAT(DATE_FORMAT(NOW(),'%Y-%m'),'-01') /*당월 처리자 제외*/
|
||||||
|
]]>
|
||||||
|
</if>
|
||||||
|
<choose>
|
||||||
|
<when test='sortDv == "subsvcGnrAsc"'>
|
||||||
|
ORDER BY SUBSVC_NM ASC, SUBSVC_GNR ASC /*구독서비스명+기수*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "subsvcGnrDesc"'>
|
||||||
|
ORDER BY SUBSVC_NM DESC, SUBSVC_GNR DESC /*구독서비스명+기수*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "mbrAsc"'>
|
||||||
|
ORDER BY MBR_NM ASC, MBR_ID ASC /*주문자순*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "mbrDesc"'>
|
||||||
|
ORDER BY MBR_NM DESC, MBR_ID DESC /*주문자순*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "ordrAsc"'>
|
||||||
|
ORDER BY ORDR_INNB ASC /*주문번호순*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "ordrDesc"'>
|
||||||
|
ORDER BY ORDR_INNB DESC /*주문번호순*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "lastPrcsDtAsc"'>
|
||||||
|
ORDER BY UPDT_DT ASC /*처리일순*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "lastPrcsDtDesc"'>
|
||||||
|
ORDER BY UPDT_DT ASC /*처리일순*/
|
||||||
|
</when>
|
||||||
|
<otherwise>
|
||||||
|
ORDER BY SUBSVC_NM ASC, SUBSVC_GNR ASC
|
||||||
|
</otherwise>
|
||||||
|
</choose>
|
||||||
|
) PV
|
||||||
|
WHERE 1=1
|
||||||
|
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<!--구독서비스 구독자조회 목록-->
|
||||||
|
<select id="selectBOSubsvcOrderMbrList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
|
||||||
|
SELECT *
|
||||||
|
FROM (
|
||||||
|
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
||||||
|
, COUNT(*) OVER() AS TOT_CNT
|
||||||
|
, MAIN.*
|
||||||
|
FROM (
|
||||||
|
WITH ORDR AS (SELECT COUNT(DISTINCT GO.ORDR_INNB) AS SUBSCRIBER_CNT
|
||||||
|
, MAX(GOIO.UPDT_DT) AS LAST_PRCS_DT
|
||||||
|
, GO.SOPMAL_CD
|
||||||
|
, GO.SUBSVC_INNB
|
||||||
|
FROM GC_ORDER GO
|
||||||
|
JOIN GC_ORDER_ITEM GOI ON GOI.SOPMAL_CD = GO.SOPMAL_CD AND GOI.ORDR_INNB = GO.ORDR_INNB
|
||||||
|
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOIO.SOPMAL_CD = GOI.SOPMAL_CD AND GOIO.ORDR_GOODS_INNB AND GOI.ORDR_GOODS_INNB
|
||||||
|
WHERE GO.SUBSVC_AT = 'Y'
|
||||||
|
AND GO.USE_AT = 'Y'
|
||||||
|
GROUP BY GO.SOPMAL_CD, GO.SUBSVC_INNB)
|
||||||
|
SELECT GS.SUBSVC_INNB
|
||||||
|
, GS.SUBSVC_NM /*구독서비스명*/
|
||||||
|
, GS.SUBSVC_GNR /*구독서비스명 기수*/
|
||||||
|
, GS.SUBSVC_GNR_NM /*구독서비스명 기수명*/
|
||||||
|
, GS.SUBSVC_CT + (GS.TME_DLVY_AMT * GS.DLVY_CNT) as SELPRIC /*실판매가=구독료+(1회배송비X배송횟수)*/
|
||||||
|
, GS.DLVY_CNT /*배송횟수*/
|
||||||
|
, IFNULL(GS.LAST_PROCS_ODR, 0) AS LAST_PROCS_ODR /*최종차수*/
|
||||||
|
, IFNULL(ORDR.SUBSCRIBER_CNT, 0) AS SUBSCRIBER_CNT /*구독자수*/
|
||||||
|
, ORDR.LAST_PRCS_DT
|
||||||
|
FROM GC_SUBSVC GS
|
||||||
|
LEFT JOIN ORDR ON ORDR.SOPMAL_CD = GS.SOPMAL_CD AND ORDR.SUBSVC_INNB = GS.SUBSVC_INNB
|
||||||
|
WHERE GS.USE_AT = 'Y'
|
||||||
|
AND GS.SOPMAL_CD = #{sopmalCd}
|
||||||
|
<if test='srchSelSubsvcNm != null and srchSelSubsvcNm != ""'>
|
||||||
|
AND GS.SUBSVC_NM = #{srchSelSubsvcNm} /*구독서비스 명*/
|
||||||
|
</if>
|
||||||
|
<if test='srchSelSubsvcGnr != null and srchSelSubsvcGnr != ""'>
|
||||||
|
AND GS.SUBSVC_GNR = #{srchSelSubsvcGnr} /*기수*/
|
||||||
|
</if>
|
||||||
|
<if test='srchSubsvcNm != null and srchSubsvcNm != ""'>
|
||||||
|
AND GS.SUBSVC_NM LIKE CONCAT('%',#{srchSubsvcNm},'%') /*구독서비스 명*/
|
||||||
|
</if>
|
||||||
|
<if test='srchSubsvcGnrNm != null and srchSubsvcGnrNm != ""'>
|
||||||
|
AND GS.SUBSVC_GNR_NM LIKE CONCAT('%',#{srchSubsvcGnrNm},'%') /*기수명*/
|
||||||
|
</if>
|
||||||
|
<if test='srchSubEndAt == "Y"'>
|
||||||
|
<![CDATA[
|
||||||
|
AND (GS.LAST_PROCS_ODR IS NULL OR GS.LAST_PROCS_ODR < DLVY_CNT) /*구독종료여부*/
|
||||||
|
]]>
|
||||||
|
</if>
|
||||||
|
<choose>
|
||||||
|
<when test='sortDv == "subsvcGnrAsc"'>
|
||||||
|
ORDER BY SUBSVC_NM ASC, SUBSVC_GNR ASC /*구독서비스명+기수*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "subsvcGnrDesc"'>
|
||||||
|
ORDER BY SUBSVC_NM DESC, SUBSVC_GNR DESC /*구독서비스명+기수*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "subscriberAsc"'>
|
||||||
|
ORDER BY SUBSCRIBER_CNT ASC /*구독자수 정렬*/
|
||||||
|
</when>
|
||||||
|
<when test='sortDv == "subscriberDesc"'>
|
||||||
|
ORDER BY SUBSCRIBER_CNT DESC /*구독자수 정렬*/
|
||||||
|
</when>
|
||||||
|
<otherwise>
|
||||||
|
ORDER BY SUBSVC_NM ASC, SUBSVC_GNR ASC
|
||||||
|
</otherwise>
|
||||||
|
</choose>
|
||||||
|
) MAIN
|
||||||
|
WHERE (@ROWNUM:=0)=0
|
||||||
|
) PV
|
||||||
|
WHERE 1=1
|
||||||
|
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!--구독서비스 구독자조회 - 구독자목록 팝업 - 구독서비스 정보-->
|
||||||
|
<select id="selectBOSubsvcInfo" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
|
||||||
|
SELECT GS.SUBSVC_NM, GS.SUBSVC_GNR, GS.SUBSVC_GNR_NM
|
||||||
|
FROM GC_SUBSVC GS
|
||||||
|
WHERE GS.SUBSVC_INNB = #{subsvcInnb}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!--구독서비스 구독자조회 - 구독자목록 팝업 - 구독자목록 조회-->
|
||||||
|
<select id="selectBOSubsvcOrderMbrInfoList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
|
||||||
|
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
||||||
|
, COUNT(*) OVER() AS TOT_CNT
|
||||||
|
, MAIN.*
|
||||||
|
FROM (
|
||||||
|
SELECT GO.ORDR_INNB
|
||||||
|
, GM.MBR_NM
|
||||||
|
, GM.MBR_ID
|
||||||
|
, GM.MBR_DV_CD
|
||||||
|
, fn_get_member_grad_name(GO.SOPMAL_CD, GM.MBR_DV_CD, GM.MBR_INNB) AS GRADE
|
||||||
|
, SUM(CASE WHEN GOIO.ORDR_STTUS_CD BETWEEN '35' AND '75' THEN 1 ELSE 0 END) AS LAST_PROCS_ODR/*최종차수 상품준비 ~ 배송완료*/
|
||||||
|
, MAX(GOIO.UPDT_DT) AS LAST_PRCS_DT/*최종처리일*/
|
||||||
|
FROM GC_ORDER GO
|
||||||
|
JOIN GC_MEMBER GM ON GM.MBR_DV_CD = GO.MBR_DV_CD AND GM.MBR_INNB = GO.MBR_INNB
|
||||||
|
JOIN GC_ORDER_ITEM GOI ON GO.SOPMAL_CD =GOI.SOPMAL_CD AND GO.ORDR_INNB = GOI.ORDR_INNB
|
||||||
|
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOI.SOPMAL_CD = GOIO.SOPMAL_CD AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB AND GOIO.OPTN_TY = '01'
|
||||||
|
WHERE GO.USE_AT = 'Y'
|
||||||
|
AND GO.SUBSVC_AT = 'Y'
|
||||||
|
AND GO.SUBSVC_INNB = #{subsvcInnb} /*구독서비스 고유번호*/
|
||||||
|
GROUP BY GO.SOPMAL_CD, GO.ORDR_INNB, GM.MBR_DV_CD, GM.MBR_NM, GM.MBR_ID
|
||||||
|
ORDER BY GO.ORDR_INNB ASC
|
||||||
|
)MAIN
|
||||||
|
WHERE (@ROWNUM:=0)=0
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!--구독서비스 구독자조회 - 배송상품 목록팝업 - 배송상품목록 조회-->
|
||||||
|
<select id="selectBOSubsvcOrderGoodsInfoList" parameterType="com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO" resultType="dataMap">
|
||||||
|
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
|
||||||
|
, COUNT(*) OVER() AS TOT_CNT
|
||||||
|
, MAIN.*
|
||||||
|
FROM (
|
||||||
|
SELECT GOIO.GOODS_OPTN_INNB
|
||||||
|
, GOI.GOODS_IMG_COURS
|
||||||
|
, GOI.GOODS_NM
|
||||||
|
, GOIO.OPTN_NM_1
|
||||||
|
, GOIO.OPTN_VAL_1
|
||||||
|
, COUNT(DISTINCT GO.ORDR_INNB) AS APPLY_CNT/*적용횟수*/
|
||||||
|
FROM GC_ORDER GO
|
||||||
|
JOIN GC_ORDER_ITEM GOI ON GO.SOPMAL_CD =GOI.SOPMAL_CD AND GO.ORDR_INNB = GOI.ORDR_INNB
|
||||||
|
JOIN GC_ORDER_ITEM_OPTION GOIO ON GOI.SOPMAL_CD = GOIO.SOPMAL_CD AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB AND GOIO.OPTN_TY = '01'
|
||||||
|
WHERE GO.USE_AT = 'Y'
|
||||||
|
AND GO.SUBSVC_AT = 'Y'
|
||||||
|
AND GOIO.ORDR_STTUS_CD BETWEEN '35' AND '75' /*상품준비 ~ 배송완료*/
|
||||||
|
AND GO.SUBSVC_INNB = #{subsvcInnb} /*구독서비스 고유번호*/
|
||||||
|
GROUP BY GOIO.GOODS_OPTN_INNB, GOODS_IMG_COURS, GOI.GOODS_NM, GOIO.OPTN_NM_1, GOIO.OPTN_VAL_1
|
||||||
|
ORDER BY GOI.GOODS_NM, GOIO.OPTN_NM_1, GOIO.OPTN_VAL_1
|
||||||
|
) MAIN
|
||||||
|
WHERE (@ROWNUM:=0)=0
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
|
|
||||||
|
|
||||||
@@ -370,6 +370,9 @@ const fn_update_dlvylc = function (pageIndex,msg,isMobile) {
|
|||||||
jibunAddress: $(".lnbAdres").eq(index).val(),
|
jibunAddress: $(".lnbAdres").eq(index).val(),
|
||||||
recpntNm: $(".recpntNmR").eq(index).val(),
|
recpntNm: $(".recpntNmR").eq(index).val(),
|
||||||
dtlAdres: $(".dtlAdres").eq(index).val(),
|
dtlAdres: $(".dtlAdres").eq(index).val(),
|
||||||
|
dlvylcAreaCd: $(".dlvylcAreaCd").eq(index).val(),
|
||||||
|
prefcd: $(".prefcd").eq(index).val(),
|
||||||
|
cstmclerCd: $(".cstmclerCd").eq(index).val(),
|
||||||
mbtlnb: $(".mbtlnb").eq(index).val(),
|
mbtlnb: $(".mbtlnb").eq(index).val(),
|
||||||
extraAddress: extraAddress
|
extraAddress: extraAddress
|
||||||
}, formId);
|
}, formId);
|
||||||
@@ -387,14 +390,10 @@ const fn_update_dlvylc = function (pageIndex,msg,isMobile) {
|
|||||||
|
|
||||||
if (id == 'langJp') {
|
if (id == 'langJp') {
|
||||||
$('#zip').prop('readonly', false);
|
$('#zip').prop('readonly', false);
|
||||||
$('#dtlAdres').attr('placeholder', '以降の住所を入力してください。');
|
|
||||||
$('#mbtlnb').attr('placeholder', '電話番号をハイフンなしで入力してください。');
|
|
||||||
$('#cstmclerCd').prop('disabled', true);
|
$('#cstmclerCd').prop('disabled', true);
|
||||||
$('#prefcode').prop('disabled', false);
|
$('#prefcode').prop('disabled', false);
|
||||||
} else {
|
} else {
|
||||||
$('#zip').prop('readonly', true);
|
$('#zip').prop('readonly', true);
|
||||||
$('#dtlAdres').attr('placeholder', '나머지 주소를 입력해 주세요');
|
|
||||||
$('#mbtlnb').attr('placeholder', '휴대폰번호\'-\'없이 입력하세요');
|
|
||||||
$('#cstmclerCd').prop('disabled', false);
|
$('#cstmclerCd').prop('disabled', false);
|
||||||
$('#prefcode').prop('disabled', true);
|
$('#prefcode').prop('disabled', true);
|
||||||
|
|
||||||
|
|||||||
@@ -319,6 +319,9 @@ const fn_select_mngrOrdr_postcode = function (callback, index, formId = '') {
|
|||||||
jibunAddress: $(".lnbAdres").eq(index).val(),
|
jibunAddress: $(".lnbAdres").eq(index).val(),
|
||||||
recpntNm: $(".recpntNmR").eq(index).val(),
|
recpntNm: $(".recpntNmR").eq(index).val(),
|
||||||
dtlAdres: $(".dtlAdres").eq(index).val(),
|
dtlAdres: $(".dtlAdres").eq(index).val(),
|
||||||
|
dlvylcAreaCd: $(".dlvylcAreaCd").eq(index).val(),
|
||||||
|
prefcd: $(".prefcd").eq(index).val(),
|
||||||
|
cstmclerCd: $(".cstmclerCd").eq(index).val(),
|
||||||
mbtlnb: $(".dlvylcMbtlnb").eq(index).val(),
|
mbtlnb: $(".dlvylcMbtlnb").eq(index).val(),
|
||||||
extraAddress: extraAddress
|
extraAddress: extraAddress
|
||||||
}, formId);
|
}, formId);
|
||||||
@@ -336,14 +339,10 @@ const fn_toggle_langHeader = function () {
|
|||||||
|
|
||||||
if (id == 'langJp') {
|
if (id == 'langJp') {
|
||||||
$('#zip').prop('readonly', false);
|
$('#zip').prop('readonly', false);
|
||||||
$('#dtlAdres').attr('placeholder', '以降の住所を入力してください。');
|
|
||||||
$('#mbtlnb').attr('placeholder', '電話番号をハイフンなしで入力してください。');
|
|
||||||
$('#cstmclerCd').prop('disabled', true);
|
$('#cstmclerCd').prop('disabled', true);
|
||||||
$('#prefcode').prop('disabled', false);
|
$('#prefcode').prop('disabled', false);
|
||||||
} else {
|
} else {
|
||||||
$('#zip').prop('readonly', true);
|
$('#zip').prop('readonly', true);
|
||||||
$('#dtlAdres').attr('placeholder', '나머지 주소를 입력해 주세요');
|
|
||||||
$('#mbtlnb').attr('placeholder', '휴대폰번호\'-\'없이 입력하세요');
|
|
||||||
$('#cstmclerCd').prop('disabled', false);
|
$('#cstmclerCd').prop('disabled', false);
|
||||||
$('#prefcode').prop('disabled', true);
|
$('#prefcode').prop('disabled', true);
|
||||||
|
|
||||||
|
|||||||
@@ -309,6 +309,9 @@ const fn_select_mngrOrdr_postcode = function (callback, index) {
|
|||||||
jibunAddress: $(".lnbAdres").eq(index).val(),
|
jibunAddress: $(".lnbAdres").eq(index).val(),
|
||||||
recpntNm: $(".recpntNmR").eq(index).val(),
|
recpntNm: $(".recpntNmR").eq(index).val(),
|
||||||
dtlAdres: $(".dtlAdres").eq(index).val(),
|
dtlAdres: $(".dtlAdres").eq(index).val(),
|
||||||
|
dlvylcAreaCd: $(".dlvylcAreaCd").eq(index).val(),
|
||||||
|
prefcd: $(".prefcd").eq(index).val(),
|
||||||
|
cstmclerCd: $(".cstmclerCd").eq(index).val(),
|
||||||
mbtlnb: $(".dlvylcMbtlnb").eq(index).val(),
|
mbtlnb: $(".dlvylcMbtlnb").eq(index).val(),
|
||||||
extraAddress: extraAddress
|
extraAddress: extraAddress
|
||||||
});
|
});
|
||||||
@@ -326,14 +329,10 @@ const fn_toggle_langHeader = function () {
|
|||||||
|
|
||||||
if (id == 'langJp') {
|
if (id == 'langJp') {
|
||||||
$('#zip').prop('readonly', false);
|
$('#zip').prop('readonly', false);
|
||||||
$('#dtlAdres').attr('placeholder', '以降の住所を入力してください。');
|
|
||||||
$('#mbtlnb').attr('placeholder', '電話番号をハイフンなしで入力してください。');
|
|
||||||
$('#cstmclerCd').prop('disabled', true);
|
$('#cstmclerCd').prop('disabled', true);
|
||||||
$('#prefcode').prop('disabled', false);
|
$('#prefcode').prop('disabled', false);
|
||||||
} else {
|
} else {
|
||||||
$('#zip').prop('readonly', true);
|
$('#zip').prop('readonly', true);
|
||||||
$('#dtlAdres').attr('placeholder', '나머지 주소를 입력해 주세요');
|
|
||||||
$('#mbtlnb').attr('placeholder', '휴대폰번호\'-\'없이 입력하세요');
|
|
||||||
$('#cstmclerCd').prop('disabled', false);
|
$('#cstmclerCd').prop('disabled', false);
|
||||||
$('#prefcode').prop('disabled', true);
|
$('#prefcode').prop('disabled', true);
|
||||||
|
|
||||||
|
|||||||
@@ -319,6 +319,9 @@ const fn_select_mngrOrdr_postcode = function (callback, index, formId = '') {
|
|||||||
jibunAddress: $(".lnbAdres").eq(index).val(),
|
jibunAddress: $(".lnbAdres").eq(index).val(),
|
||||||
recpntNm: $(".recpntNmR").eq(index).val(),
|
recpntNm: $(".recpntNmR").eq(index).val(),
|
||||||
dtlAdres: $(".dtlAdres").eq(index).val(),
|
dtlAdres: $(".dtlAdres").eq(index).val(),
|
||||||
|
dlvylcAreaCd: $(".dlvylcAreaCd").eq(index).val(),
|
||||||
|
prefcd: $(".prefcd").eq(index).val(),
|
||||||
|
cstmclerCd: $(".cstmclerCd").eq(index).val(),
|
||||||
mbtlnb: $(".dlvylcMbtlnb").eq(index).val(),
|
mbtlnb: $(".dlvylcMbtlnb").eq(index).val(),
|
||||||
extraAddress: extraAddress
|
extraAddress: extraAddress
|
||||||
}, formId);
|
}, formId);
|
||||||
@@ -336,14 +339,10 @@ const fn_toggle_langHeader = function () {
|
|||||||
|
|
||||||
if (id == 'langJp') {
|
if (id == 'langJp') {
|
||||||
$('#zip').prop('readonly', false);
|
$('#zip').prop('readonly', false);
|
||||||
$('#dtlAdres').attr('placeholder', '以降の住所を入力してください。');
|
|
||||||
$('#mbtlnb').attr('placeholder', '電話番号をハイフンなしで入力してください。');
|
|
||||||
$('#cstmclerCd').prop('disabled', true);
|
$('#cstmclerCd').prop('disabled', true);
|
||||||
$('#prefcode').prop('disabled', false);
|
$('#prefcode').prop('disabled', false);
|
||||||
} else {
|
} else {
|
||||||
$('#zip').prop('readonly', true);
|
$('#zip').prop('readonly', true);
|
||||||
$('#dtlAdres').attr('placeholder', '나머지 주소를 입력해 주세요');
|
|
||||||
$('#mbtlnb').attr('placeholder', '휴대폰번호\'-\'없이 입력하세요');
|
|
||||||
$('#cstmclerCd').prop('disabled', false);
|
$('#cstmclerCd').prop('disabled', false);
|
||||||
$('#prefcode').prop('disabled', true);
|
$('#prefcode').prop('disabled', true);
|
||||||
|
|
||||||
|
|||||||
@@ -2977,6 +2977,7 @@
|
|||||||
<spring:eval expression="@environment.getProperty('spring.servlet.multipart.max-file-size')" var="maxFileSize"/>
|
<spring:eval expression="@environment.getProperty('spring.servlet.multipart.max-file-size')" var="maxFileSize"/>
|
||||||
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.extensions.images')" var="acceptFileExtensions"/>
|
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.extensions.images')" var="acceptFileExtensions"/>
|
||||||
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||||
|
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
||||||
<input type="hidden" id="cdnurl" value="${cdnurl}"/>
|
<input type="hidden" id="cdnurl" value="${cdnurl}"/>
|
||||||
<section id="section01" class="content-section content-scroll-detect content-fold">
|
<section id="section01" class="content-section content-scroll-detect content-fold">
|
||||||
<div class="content-fold__header">
|
<div class="content-fold__header">
|
||||||
@@ -5071,7 +5072,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="product-group__description">
|
<div class="product-group__description">
|
||||||
<p><c:out value="${goodsInfo.goodsNm}"/></p>
|
<p><c:out value="${goodsInfo.goodsNm}"/></p>
|
||||||
<p class="product-group__description-price"><fmt:formatNumber value="${goodsInfo.slepric}" pattern="#,###"/>원</p>
|
<p class="product-group__description-price"><fmt:formatNumber value="${goodsInfo.slepric}" pattern="#,###"/>${curUnit}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
|
|
||||||
$('#appendList tr').each(function() {
|
$('#appendList tr').each(function() {
|
||||||
const goodsId = $(this).attr('id').replace('choiseListId', '');
|
const goodsId = $(this).attr('id').replace('choiseListId', '');
|
||||||
|
const goodsOptnInnb = $(this).find('input[name="goodsOptnInnb"]').val();
|
||||||
|
const optnTy = $(this).find('input[name="optnTy"]').val();
|
||||||
const goodsImg = $(this).find('input[name="goodsImgCours"]').val();
|
const goodsImg = $(this).find('input[name="goodsImgCours"]').val();
|
||||||
const goodsNm = $(this).find('input[name="goodsNm"]').val();
|
const goodsNm = $(this).find('input[name="goodsNm"]').val();
|
||||||
const goodsPrice = $(this).find('input[name="slepric"]').val();
|
const goodsPrice = $(this).find('input[name="slepric"]').val();
|
||||||
@@ -32,6 +34,8 @@
|
|||||||
if (goodsId) {
|
if (goodsId) {
|
||||||
selectedGoods.push({
|
selectedGoods.push({
|
||||||
goodsId: goodsId,
|
goodsId: goodsId,
|
||||||
|
goodsOptnInnb: goodsOptnInnb,
|
||||||
|
optnTy: optnTy,
|
||||||
goodsImg: goodsImg,
|
goodsImg: goodsImg,
|
||||||
goodsNm: goodsNm,
|
goodsNm: goodsNm,
|
||||||
goodsPrice: goodsPrice,
|
goodsPrice: goodsPrice,
|
||||||
@@ -46,6 +50,8 @@
|
|||||||
var copyTr = $(this).clone();
|
var copyTr = $(this).clone();
|
||||||
|
|
||||||
var goodsId = $(this).find('input[name="goodsInnb"]').val();
|
var goodsId = $(this).find('input[name="goodsInnb"]').val();
|
||||||
|
var goodsOptnInnb = $(this).find('input[name="goodsOptnInnb"]').val();
|
||||||
|
var optnTy = $(this).find('input[name="optnTy"]').val();
|
||||||
var goodsImg = $(this).find('input[name="goodsImgCours"]').val();
|
var goodsImg = $(this).find('input[name="goodsImgCours"]').val();
|
||||||
var goodsNm = $(this).find('input[name="goodsNm"]').val();
|
var goodsNm = $(this).find('input[name="goodsNm"]').val();
|
||||||
var goodsPrice = $(this).find('input[name="slepric"]').val();
|
var goodsPrice = $(this).find('input[name="slepric"]').val();
|
||||||
@@ -75,6 +81,8 @@
|
|||||||
|
|
||||||
selectedGoods.push({
|
selectedGoods.push({
|
||||||
goodsId: goodsId,
|
goodsId: goodsId,
|
||||||
|
goodsOptnInnb: goodsOptnInnb,
|
||||||
|
optnTy: optnTy,
|
||||||
goodsImg: goodsImg,
|
goodsImg: goodsImg,
|
||||||
goodsNm: goodsNm,
|
goodsNm: goodsNm,
|
||||||
goodsPrice: goodsPrice,
|
goodsPrice: goodsPrice,
|
||||||
@@ -151,6 +159,8 @@
|
|||||||
<tr class="searchList">
|
<tr class="searchList">
|
||||||
<td class="text-left">
|
<td class="text-left">
|
||||||
<input type="hidden" id="goodsInnb" name="goodsInnb" value="<c:out value="${ list.goodsInnb }"/>"/>
|
<input type="hidden" id="goodsInnb" name="goodsInnb" value="<c:out value="${ list.goodsInnb }"/>"/>
|
||||||
|
<input type="hidden" id="goodsOptnInnb" name="goodsOptnInnb" value="<c:out value="${ list.goodsOptnInnb }"/>"/>
|
||||||
|
<input type="hidden" id="optnTy" name="optnTy" value="<c:out value="${ list.optnTy }"/>"/>
|
||||||
<input type="hidden" id="goodsImgCours" name="goodsImgCours" value="<c:out value="${cdnurl}${ list.goodsImgCours }"/>"/>
|
<input type="hidden" id="goodsImgCours" name="goodsImgCours" value="<c:out value="${cdnurl}${ list.goodsImgCours }"/>"/>
|
||||||
<input type="hidden" id="goodsNm" name="goodsNm" value="<c:out value="${ list.goodsNm }"/>"/>
|
<input type="hidden" id="goodsNm" name="goodsNm" value="<c:out value="${ list.goodsNm }"/>"/>
|
||||||
<input type="hidden" id="slepric" name="slepric" value="<fmt:parseNumber value="${ list.slepric }"/>"/>
|
<input type="hidden" id="slepric" name="slepric" value="<fmt:parseNumber value="${ list.slepric }"/>"/>
|
||||||
|
|||||||
@@ -7,13 +7,13 @@
|
|||||||
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
|
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
|
||||||
|
|
||||||
<%--
|
<%--
|
||||||
Class Name : GoodsListR.jsp
|
Class Name : SubsvcList.jsp
|
||||||
Description : 상품 목록 조회 리스트
|
Description : 구독서비스 목록 조회 리스트
|
||||||
Modification Information
|
Modification Information
|
||||||
|
|
||||||
수정일 수정자 수정내용
|
수정일 수정자 수정내용
|
||||||
------- -------- ---------------------------
|
------- -------- ---------------------------
|
||||||
2024-03-20 리브가 최초 생성
|
2026-02-05 jazz 최초 생성
|
||||||
--%>
|
--%>
|
||||||
<section class="content-section">
|
<section class="content-section">
|
||||||
<div class="form-control-container">
|
<div class="form-control-container">
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
<hr class="horizontal-line">
|
<hr class="horizontal-line">
|
||||||
<div class="form-control-container">
|
<div class="form-control-container">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<button class="btn outline sm" onclick="fn_delete_check();return false;">선택 삭제</button>
|
<button class="btn dark sm" onclick="fn_delete_check();return false;">선택 삭제</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="center">
|
<div class="center">
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,13 +7,13 @@
|
|||||||
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
|
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
|
||||||
|
|
||||||
<%--
|
<%--
|
||||||
Class Name : GoodsListRForm.jsp
|
Class Name : SubsvcListForm.jsp
|
||||||
Description : 상품 목록 조회 폼
|
Description : 구독서비스 목록 조회 폼
|
||||||
Modification Information
|
Modification Information
|
||||||
|
|
||||||
수정일 수정자 수정내용
|
수정일 수정자 수정내용
|
||||||
------- -------- ---------------------------
|
------- -------- ---------------------------
|
||||||
2024-03-20 리브가 최초 생성
|
2026-02-05 jazz 최초 생성
|
||||||
--%>
|
--%>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko">
|
<html lang="ko">
|
||||||
@@ -172,9 +172,11 @@
|
|||||||
const result = JSON.parse(data.resBody.result);
|
const result = JSON.parse(data.resBody.result);
|
||||||
const srchSubsvcGnrList = result.srchSubsvcGnrList;
|
const srchSubsvcGnrList = result.srchSubsvcGnrList;
|
||||||
if (srchSubsvcGnrList.length > 0) {
|
if (srchSubsvcGnrList.length > 0) {
|
||||||
$('#srchSubsvcGnr option').filter(function() {
|
// 회차 초기화
|
||||||
return $(this).val() !== '';
|
$('#srchSelSubsvcGnr').empty().append('<option value="">전체</option>').niceSelect('update');
|
||||||
}).remove();
|
// $('#srchSubsvcGnr option').filter(function() {
|
||||||
|
// return $(this).val() !== '';
|
||||||
|
// }).remove();
|
||||||
|
|
||||||
for (let i = 0; i < srchSubsvcGnrList.length; i++) {
|
for (let i = 0; i < srchSubsvcGnrList.length; i++) {
|
||||||
const srchSubsvcGnr = srchSubsvcGnrList[i];
|
const srchSubsvcGnr = srchSubsvcGnrList[i];
|
||||||
|
|||||||
@@ -464,9 +464,7 @@
|
|||||||
<div class="content__inner">
|
<div class="content__inner">
|
||||||
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
|
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
|
||||||
<div class="page-title">
|
<div class="page-title">
|
||||||
<h2 class="page-title__title">
|
<h2 class="page-title__title">구독서비스 수정 (상품번호 : ${resultMap.subsvcDtl.subsvcInnb})</h2>
|
||||||
<a href="javascript:void(0);" onclick="fn_move_goods_dtl_common(<c:out value="${resultMap.subsvcDtl.subsvcInnb}"/>, 'sopmal')">구독서비스 수정 (상품번호 : ${resultMap.subsvcDtl.subsvcInnb})</a>
|
|
||||||
</h2>
|
|
||||||
<div class="page-title__btn-container">
|
<div class="page-title__btn-container">
|
||||||
<button onclick="fn_select_list()" class="btn outline"><spring:message code="button.list"/></button>
|
<button onclick="fn_select_list()" class="btn outline"><spring:message code="button.list"/></button>
|
||||||
<button onclick="fn_updateSubsvc();return false;" class="btn primary"><spring:message code="button.update"/></button>
|
<button onclick="fn_updateSubsvc();return false;" class="btn primary"><spring:message code="button.update"/></button>
|
||||||
|
|||||||
@@ -0,0 +1,107 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<%@ page import="java.util.Date" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
<%--
|
||||||
|
Class Name : SubsvcOrderGoodsInfoListPop.jsp
|
||||||
|
Description : 구독서비스 구독자조회 - 배송상품 목록 팝업
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2026-02-09 jazz 최초 생성
|
||||||
|
--%>
|
||||||
|
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||||
|
<div id="subsvcOrdrrGoodsInfoListPop" class="modal" style="max-width: 700px;">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4>배송상품 목록</h4>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="form-control-container mb-10">
|
||||||
|
<div class="left">
|
||||||
|
</div>
|
||||||
|
<div class="center">
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class=" table-wrapper mb-40">
|
||||||
|
<table class="table">
|
||||||
|
<caption>주문자/주문번호 정보</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 15%;">
|
||||||
|
<col style="width: 35%;">
|
||||||
|
<col style="width: 15%;">
|
||||||
|
<col style="width: 35%;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>구독서비스</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner"><c:out value="${resultMap.subsvcInfo.subsvcNm}"/></div>
|
||||||
|
</td>
|
||||||
|
<th>기수명</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner"><c:out value="${resultMap.subsvcInfo.subsvcGnr}"/>기(<c:out value="${resultMap.subsvcInfo.subsvcGnrNm}"/>)</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<br/>
|
||||||
|
<div class=" table-wrapper mb-40">
|
||||||
|
<table class="table vertical" style="max-height: 200px;">
|
||||||
|
<caption>배송정보</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 15%;">
|
||||||
|
<col style="width: 20%;">
|
||||||
|
<col style="width: 50%;">
|
||||||
|
<col style="width: 15%;">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>순번</th>
|
||||||
|
<th colspan="2">상품명</th>
|
||||||
|
<th>적용횟수</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${ not empty resultMap.list }">
|
||||||
|
<c:forEach items="${ resultMap.list }" var="goods" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<td><c:out value="${goods.rnum}"/></td>
|
||||||
|
<td><img src='<c:out value="${cdnurl}${goods.goodsImgCours}"/>' onerror="this.src='/pc/images/image_placeholder.png'" alt='<c:out value="${goods.goodsNm}"/>' width="56px" height="56px"></td>
|
||||||
|
<td>
|
||||||
|
<div class="order-section__product-info">
|
||||||
|
<span class="order-section__product-productTitle"><c:out value="${goods.goodsNm}"/></span>
|
||||||
|
<span class="option-text">
|
||||||
|
<span class="option-badge">옵션</span> <c:out value="${goods.optnNm1}"/>:<c:out value="${goods.optnVal1}"/>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td><fmt:formatNumber value="${goods.applyCnt}" pattern="#,###"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<tr>
|
||||||
|
<td colspan="100%"><spring:message code="common.nodata"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<a href="#" id="btn_close_modal_bbsC" rel="modal:close" class="btn outline">닫기</a>
|
||||||
|
</div>
|
||||||
|
<a href="#close-modal" rel="modal:close" class="close-modal ">Close</a>
|
||||||
|
</div>
|
||||||
|
<script src="/mngr/js/script.js" defer=""></script>
|
||||||
@@ -0,0 +1,106 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<%@ page import="java.util.Date" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
<%--
|
||||||
|
Class Name : SubsvcOrderMbrInfoListPop.jsp
|
||||||
|
Description : 구독서비스 구독자조회 - 구독자 목록 팝업
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2026-02-09 jazz 최초 생성
|
||||||
|
--%>
|
||||||
|
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||||
|
<div id="subsvcOrderMbrInfoListPop" class="modal" style="max-width: 700px;">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4>구독자 목록</h4>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="form-control-container mb-10">
|
||||||
|
<div class="left">
|
||||||
|
</div>
|
||||||
|
<div class="center">
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class=" table-wrapper mb-40">
|
||||||
|
<table class="table">
|
||||||
|
<caption>구독서비스 정보</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 15%;">
|
||||||
|
<col style="width: 35%;">
|
||||||
|
<col style="width: 15%;">
|
||||||
|
<col style="width: 35%;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>구독서비스</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner"><c:out value="${resultMap.subsvcInfo.subsvcNm}"/></div>
|
||||||
|
</td>
|
||||||
|
<th>기수명</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner"><c:out value="${resultMap.subsvcInfo.subsvcGnr}"/>기(<c:out value="${resultMap.subsvcInfo.subsvcGnrNm}"/>)</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<br/>
|
||||||
|
<div class=" table-wrapper mb-40">
|
||||||
|
<table class="table vertical" style="max-height: 200px;">
|
||||||
|
<caption>배송정보</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 10%;">
|
||||||
|
<col style="width: 20%;">
|
||||||
|
<col style="width: 35%;">
|
||||||
|
<col style="width: 15%;">
|
||||||
|
<col style="width: 20%;">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>순번</th>
|
||||||
|
<th>주문번호</th>
|
||||||
|
<th>구독자</th>
|
||||||
|
<th>최종차수</th>
|
||||||
|
<th>최종처리일</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${ not empty resultMap.list }">
|
||||||
|
<c:forEach items="${ resultMap.list }" var="mbr" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<td><c:out value="${mbr.rnum}"/></td>
|
||||||
|
<td><c:out value="${mbr.ordrInnb}"/></td>
|
||||||
|
<td><c:out value="${mbr.mbrNm}"/> (<c:out value="${mbr.mbrId}"/>/<c:out value="${mbr.grade}"/>)</td>
|
||||||
|
<td><c:out value="${mbr.lastProcsOdr}"/>회</td>
|
||||||
|
<fmt:parseDate value="${mbr.lastPrcsDt}" pattern="yyyy-MM-dd HH:mm:ss" var="parsePrcsDt"/>
|
||||||
|
<fmt:formatDate value="${parsePrcsDt }" var="formatPrcsDt" pattern="yyyy-MM-dd"/>
|
||||||
|
<td><c:out value="${formatPrcsDt}"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<tr>
|
||||||
|
<td colspan="100%"><spring:message code="common.nodata"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<a href="#" id="btn_close_modal_bbsC" rel="modal:close" class="btn outline">닫기</a>
|
||||||
|
</div>
|
||||||
|
<a href="#close-modal" rel="modal:close" class="close-modal ">Close</a>
|
||||||
|
</div>
|
||||||
|
<script src="/mngr/js/script.js" defer=""></script>
|
||||||
@@ -0,0 +1,124 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<%@ page import="java.util.Date" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
<%--
|
||||||
|
Class Name : subsvcOrdrDlvyListPop.jsp
|
||||||
|
Description : 구독서비스 상품준비 관리 배송내역 팝업
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2026-02-07 jazz 최초 생성
|
||||||
|
--%>
|
||||||
|
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||||
|
<div id="subsvcOrdrDlvyListPop" class="modal" style="max-width: 1000px;">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4>배송내역</h4>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="form-control-container mb-10">
|
||||||
|
<div class="left">
|
||||||
|
</div>
|
||||||
|
<div class="center">
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class=" table-wrapper mb-40">
|
||||||
|
<table class="table">
|
||||||
|
<caption>주문자/주문번호 정보</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 15%;">
|
||||||
|
<col style="width: 35%;">
|
||||||
|
<col style="width: 15%;">
|
||||||
|
<col style="width: 35%;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>주문자</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner">
|
||||||
|
<c:if test="${not empty resultMap.list}">
|
||||||
|
${resultMap.list[0].mbrNm} (${resultMap.list[0].mbrId}/${resultMap.list[0].grade})
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<th>주문번호</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner">
|
||||||
|
<c:if test="${not empty resultMap.list}">${resultMap.list[0].ordrInnb}</c:if>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<br/>
|
||||||
|
<div class=" table-wrapper mb-40">
|
||||||
|
<table class="table vertical" style="max-height: 200px;">
|
||||||
|
<caption>배송정보</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 5%;">
|
||||||
|
<col style="width: 10%;">
|
||||||
|
<col style="width: 10%;">
|
||||||
|
<col style="width: 35%;">
|
||||||
|
<col style="width: 15%;">
|
||||||
|
<col style="width: 15%;">
|
||||||
|
<col style="width: 10%;">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>차수</th>
|
||||||
|
<th>발생일자</th>
|
||||||
|
<th colspan="2">상품명</th>
|
||||||
|
<th>정가</th>
|
||||||
|
<th>판매가</th>
|
||||||
|
<th>상태</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${ not empty resultMap.list }">
|
||||||
|
<c:forEach items="${ resultMap.list }" var="dlvy" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<td><c:out value="${dlvy.rnum}"/></td>
|
||||||
|
<fmt:parseDate value="${dlvy.procsDt}" pattern="yyyy-MM-dd HH:mm:ss" var="parsePrcsDt"/>
|
||||||
|
<fmt:formatDate value="${parsePrcsDt }" var="formatPrcsDt" pattern="yyyy-MM-dd"/>
|
||||||
|
<td><c:out value="${formatPrcsDt}"/></td>
|
||||||
|
<td><img src='<c:out value="${cdnurl}${dlvy.goodsImgCours}"/>' onerror="this.src='/pc/images/image_placeholder.png'" alt='<c:out value="${dlvy.goodsNm}"/>' width="56px" height="56px"></td>
|
||||||
|
<td>
|
||||||
|
<div class="order-section__product-info">
|
||||||
|
<span class="order-section__product-productTitle"><c:out value="${dlvy.goodsNm}"/></span>
|
||||||
|
<span class="option-text">
|
||||||
|
<span class="option-badge">옵션</span> <c:out value="${dlvy.optnNm1}"/>:<c:out value="${dlvy.optnVal1}"/>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td><fmt:formatNumber value="${dlvy.cnsmrpric}" pattern="#,###"/></td>
|
||||||
|
<td><fmt:formatNumber value="${dlvy.slepric}" pattern="#,###"/></td>
|
||||||
|
<td><c:out value="${dlvy.ordrSttus}"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<tr>
|
||||||
|
<td colspan="100%"><spring:message code="common.nodata"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<a href="#" id="btn_close_modal_bbsC" rel="modal:close" class="btn outline">닫기</a>
|
||||||
|
</div>
|
||||||
|
<a href="#close-modal" rel="modal:close" class="close-modal ">Close</a>
|
||||||
|
</div>
|
||||||
|
<script src="/mngr/js/script.js" defer=""></script>
|
||||||
@@ -0,0 +1,130 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
|
||||||
|
<%--
|
||||||
|
Class Name : SubsvcOrdrList.jsp
|
||||||
|
Description : 구독서비스 상품준비 목록
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2026-02-05 jazz 최초 생성
|
||||||
|
--%>
|
||||||
|
<section class="content-section">
|
||||||
|
<div class="form-control-container">
|
||||||
|
<div class="left">
|
||||||
|
<div class="search-number">
|
||||||
|
<span class="search-number__text">총 <strong><c:out value="${ resultMap.paginationInfo.totalRecordCount }"/></strong>건</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="center">
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="select-box">
|
||||||
|
<select title="정렬순서" name="sortDvView" id="sortDvView" onchange="fn_select_list(1);return false;">
|
||||||
|
<option value="subsvcGnrAsc" <c:if test="${resultMap.paramVO.sortDv eq 'subsvcGnrAsc'}">selected="selected"</c:if>>구독서비스+기수 오름차순</option>
|
||||||
|
<option value="subsvcGnrDesc" <c:if test="${resultMap.paramVO.sortDv eq 'subsvcGnrDesc'}">selected="selected"</c:if>>구독서비스+기수 내림차순</option>
|
||||||
|
<option value="mbrAsc" <c:if test="${resultMap.paramVO.sortDv eq 'mbrAsc'}">selected="selected"</c:if>>주문자 오름차순</option>
|
||||||
|
<option value="mbrDesc" <c:if test="${resultMap.paramVO.sortDv eq 'mbrDesc'}">selected="selected"</c:if>>주문자 내림차순</option>
|
||||||
|
<option value="ordrAsc" <c:if test="${resultMap.paramVO.sortDv eq 'ordrAsc'}">selected="selected"</c:if>>주문번호 오름차순</option>
|
||||||
|
<option value="ordrDesc" <c:if test="${resultMap.paramVO.sortDv eq 'ordrDesc'}">selected="selected"</c:if>>주문번호 내림차순</option>
|
||||||
|
<option value="lastPrcsDtAsc" <c:if test="${resultMap.paramVO.sortDv eq 'lastPrcsDtAsc'}">selected="selected"</c:if>>최종처리일 오름차순</option>
|
||||||
|
<option value="lastPrcsDtDesc" <c:if test="${resultMap.paramVO.sortDv eq 'lastPrcsDtDesc'}">selected="selected"</c:if>>최종처리일 내림차순</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="select-box">
|
||||||
|
<select id="pageUnitView" name="pageUnitView" title="페이지당 출력될 목록건수" onchange="fn_select_list(1,this.value);return false;">
|
||||||
|
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
|
||||||
|
<option value="<c:out value="${ pageUnit }"/>"
|
||||||
|
<c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit}">selected="selected"</c:if>>
|
||||||
|
<c:out value="${ pageUnit }"/>개씩
|
||||||
|
</option>
|
||||||
|
</c:forEach>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr class="horizontal-line">
|
||||||
|
<div class="form-control-container">
|
||||||
|
<div class="left">
|
||||||
|
<button class="btn sm dark" onclick="fn_allOrdrReady_check();return false;">상품준비 일괄처리</button>
|
||||||
|
</div>
|
||||||
|
<div class="center">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr class="spacing">
|
||||||
|
<div class="table-wrapper">
|
||||||
|
<table class="table vertical">
|
||||||
|
<caption>구독서비스 목록</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 4%;">
|
||||||
|
<col style="width: 20%;">
|
||||||
|
<col style="width: 6%;">
|
||||||
|
<col style="width: 10%;">
|
||||||
|
<col style="width: 15%;">
|
||||||
|
<col style="width: 10%;">
|
||||||
|
<col style="width: 10%;">
|
||||||
|
<col style="width: 10%;">
|
||||||
|
<col style="width: 10%;">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<label class="b-checkbox checkbox is-medium ">
|
||||||
|
<input type="checkbox" id="checkAll" value="">
|
||||||
|
<span class="check"></span>
|
||||||
|
</label>
|
||||||
|
</th>
|
||||||
|
<th>구독서비스</th>
|
||||||
|
<th>기수</th>
|
||||||
|
<th>기수명</th>
|
||||||
|
<th>주문자</th>
|
||||||
|
<th>주문번호</th>
|
||||||
|
<th>처리 차수</th>
|
||||||
|
<th>최종 차수</th>
|
||||||
|
<th>최종 처리일</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${ not empty resultMap.list }">
|
||||||
|
<c:forEach items="${ resultMap.list }" var="subsvcOrdr" varStatus="status">
|
||||||
|
<tr<c:if test="${lastProcsOdr > mbrLastProcsOdr}"> class="sendOut-info__reseller"</c:if>>
|
||||||
|
<td>
|
||||||
|
<label class="b-checkbox checkbox is-medium check-all">
|
||||||
|
<input type="checkbox" name="arrCheck" class="arrCheck" value="${subsvcOrdr.ordrInnb}@${subsvcOrdr.ordrGoodsInnb}@${subsvcOrdr.ordrGoodsOptnInnb}@${subsvcOrdr.ordrDlvyInnb}">
|
||||||
|
<span class="check"></span>
|
||||||
|
</label>
|
||||||
|
</td>
|
||||||
|
<td><c:out value="${subsvcOrdr.subsvcNm}"/></td>
|
||||||
|
<td><c:out value="${subsvcOrdr.subsvcGnr}"/>기</td>
|
||||||
|
<td><c:out value="${subsvcOrdr.subsvcGnrNm}"/></td>
|
||||||
|
<td><c:out value="${subsvcOrdr.mbrNm}"/></br>(<c:out value="${subsvcOrdr.mbrId}"/>/<c:out value="${subsvcOrdr.grade}"/>)</td>
|
||||||
|
<td><c:out value="${subsvcOrdr.ordrInnb}"/></td>
|
||||||
|
<td><c:out value="${subsvcOrdr.curtProcsOdr}"/>회</td>
|
||||||
|
<td><c:out value="${subsvcOrdr.mbrLastProcsOdr}"/>회 <button class="btn xsm outline light-gray" type="button" onclick="fn_open_modal('#modalDiv','#subsvcOrdrDlvyListPop','<c:url value ='/mngr/ordr/subsvc/selectSubsvcOrdrDlvyListPop'/>',{'ordrInnb':'<c:out value="${subsvcOrdr.ordrInnb}"/>'}); return false;">배송내역</button></td>
|
||||||
|
<fmt:parseDate value="${subsvcOrdr.lastPrcsDt}" pattern="yyyy-MM-dd HH:mm:ss" var="parseLastPrcsDt"/>
|
||||||
|
<fmt:formatDate value="${parseLastPrcsDt }" var="formatLastPrcsDt" pattern="yyyy-MM-dd"/>
|
||||||
|
<td><c:out value="${ formatLastPrcsDt }"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<tr>
|
||||||
|
<td colspan="100%"><spring:message code="common.nodata"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="pagination__container">
|
||||||
|
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_list"/>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,513 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
|
||||||
|
<%--
|
||||||
|
Class Name : SubsvcOrdrListFrom.jsp
|
||||||
|
Description : 구독서비스 상품준비 목록 조회 폼
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2026-02-05 jazz 최초 생성
|
||||||
|
--%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>일반 관리자</title>
|
||||||
|
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||||
|
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
||||||
|
</head>
|
||||||
|
<script>
|
||||||
|
var initFlag = true;
|
||||||
|
$(document).ready(function () {
|
||||||
|
let pageIndex = $("#pageIndex").val();
|
||||||
|
let pageUnit = $("#pageUnit").val();
|
||||||
|
let srchSelSubsvcNm = $('#srchSelSubsvcNm').val();
|
||||||
|
// event 제어
|
||||||
|
fn_event();
|
||||||
|
|
||||||
|
if(srchSelSubsvcNm != ''){
|
||||||
|
fn_getsubsvcGnr(srchSelSubsvcNm);
|
||||||
|
}else{
|
||||||
|
// 목록 조회
|
||||||
|
fn_select_list(pageIndex, pageUnit);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 엔터키 검색
|
||||||
|
$('#listForm').on('keydown', function (event) {
|
||||||
|
if (event.keyCode === 13) {
|
||||||
|
event.preventDefault();
|
||||||
|
fn_select_list(1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 목록 조회
|
||||||
|
******************************************************** */
|
||||||
|
const fn_select_list = function (pageIndex, pageUnit) {
|
||||||
|
let dataStr;
|
||||||
|
|
||||||
|
if (!pageIndex) {
|
||||||
|
$('#pageIndex').val(1);
|
||||||
|
} else {
|
||||||
|
$('#pageIndex').val(pageIndex);
|
||||||
|
}
|
||||||
|
//정렬기준 셋팅
|
||||||
|
if(typeof $('#sortDvView') !== undefined && $('#sortDvView').val() !== undefined){
|
||||||
|
$('#sortDv').val($('#sortDvView').val());
|
||||||
|
}
|
||||||
|
//한페이지 목록개수 셋팅
|
||||||
|
if(typeof $('#pageUnitView') !== undefined && $('#pageUnitView').val() !== undefined){
|
||||||
|
$('#pageUnit').val($('#pageUnitView').val());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!pageUnit) {
|
||||||
|
dataStr = $('#listForm').serialize();
|
||||||
|
} else {
|
||||||
|
if ($('#pageUnit').length) {
|
||||||
|
$('#pageUnit').val(pageUnit);
|
||||||
|
dataStr = $('#listForm').serialize();
|
||||||
|
} else {
|
||||||
|
dataStr = $('#listForm').serialize() + '&pageUnit=' + pageUnit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "post",
|
||||||
|
url: "<c:url value="/mngr/ordr/subsvc/selectSubsvcOrdrList"/>",
|
||||||
|
data: dataStr,
|
||||||
|
success: function (resultHtml) {
|
||||||
|
$('#pageDiv').html(resultHtml);
|
||||||
|
$('#sortDv').val($('#sortDvView').val());
|
||||||
|
$('#pageUnitView').niceSelect();
|
||||||
|
$('#sortDvView').niceSelect();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 현제uri에 프로토콜, 호스트, 쿼리스티링을 제외하여 history갱신 */
|
||||||
|
history.replaceState({}, null, location.pathname);
|
||||||
|
|
||||||
|
/* ****************************
|
||||||
|
* event 제어
|
||||||
|
******************************/
|
||||||
|
const fn_event = function () {
|
||||||
|
/* 검색조건 구독서비스 선택 시 회차 조회 이벤트*/
|
||||||
|
$(document).on('change', '#srchSelSubsvcNm', function(){
|
||||||
|
var srchSelSubsvcNm = $(this).val();
|
||||||
|
if(fn_is_empty(srchSelSubsvcNm)){
|
||||||
|
// 회차 초기화
|
||||||
|
$('#srchSelSubsvcGnr').empty().append('<option value="">전체</option>').niceSelect('update');
|
||||||
|
}else{
|
||||||
|
//해당구독서비스 기수조회
|
||||||
|
fn_getsubsvcGnr(srchSelSubsvcNm);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/* 목록 > 전체선택 체인지 이벤트 */
|
||||||
|
$(document).on('change', '#checkAll', function () {
|
||||||
|
let checkbox = $(this).closest('table').find('input[name="arrCheck"]');
|
||||||
|
|
||||||
|
$(checkbox).prop('checked', false);
|
||||||
|
$(checkbox).prop('checked', $(this).is(':checked'));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ****************************
|
||||||
|
* 해당구독서비스 기수조회 AJAX
|
||||||
|
******************************/
|
||||||
|
const fn_getsubsvcGnr = function (srchSelSubsvcNm) {
|
||||||
|
$.ajax({
|
||||||
|
type: 'post',
|
||||||
|
url: '<c:url value="/mngr/goods/subsvc/selectSrchSubsvcGnrListAjax"/>',
|
||||||
|
data: {
|
||||||
|
'srchSelSubsvcNm': srchSelSubsvcNm
|
||||||
|
},
|
||||||
|
success: function (data) {
|
||||||
|
if (data.resBody != null) {
|
||||||
|
const result = JSON.parse(data.resBody.result);
|
||||||
|
const srchSubsvcGnrList = result.srchSubsvcGnrList;
|
||||||
|
if (srchSubsvcGnrList.length > 0) {
|
||||||
|
// 회차 초기화
|
||||||
|
$('#srchSelSubsvcGnr').empty().append('<option value="">전체</option>').niceSelect('update');
|
||||||
|
// $('#srchSubsvcGnr option').filter(function() {
|
||||||
|
// return $(this).val() !== '';
|
||||||
|
// }).remove();
|
||||||
|
|
||||||
|
for (let i = 0; i < srchSubsvcGnrList.length; i++) {
|
||||||
|
const srchSubsvcGnr = srchSubsvcGnrList[i];
|
||||||
|
var check = "";
|
||||||
|
if(srchSubsvcGnr.subsvcGnr == '${resultMap.paramVO.srchSelSubsvcGnr}'){
|
||||||
|
check ="selected"
|
||||||
|
}
|
||||||
|
|
||||||
|
if(initFlag == true){
|
||||||
|
$('#srchSelSubsvcGnr').append('<option value="' + srchSubsvcGnr.subsvcGnr + '" '+ check+'>' + srchSubsvcGnr.subsvcGnrNm + '</option>');
|
||||||
|
fn_select_list();
|
||||||
|
initFlag = false;
|
||||||
|
}else{
|
||||||
|
$('#srchSelSubsvcGnr').append('<option value="' + srchSubsvcGnr.subsvcGnr + '">' + srchSubsvcGnr.subsvcGnrNm + '</option>');
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$('#srchSelSubsvcGnr').niceSelect('update');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (data) {
|
||||||
|
fn_proc_error_message(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 체크박스 전체 처리
|
||||||
|
* */
|
||||||
|
const fn_change_event = function (_target, _arg) {
|
||||||
|
if (_arg === 'all') {
|
||||||
|
|
||||||
|
if ($('#' + _target + '-all').is(':checked')) {
|
||||||
|
$('[name=' + _target + ']').prop('checked', true);
|
||||||
|
} else {
|
||||||
|
$('[name=' + _target + ']').prop('checked', false);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
let chkCnt = $('[name=' + _target + ']:checked').length;
|
||||||
|
let allCnt = $('[name=' + _target + ']').length;
|
||||||
|
if (chkCnt !== allCnt && $('#' + _target + '-all').is(':checked')) {
|
||||||
|
$('#' + _target + '-all').prop('checked', false);
|
||||||
|
} else if (chkCnt === allCnt) {
|
||||||
|
$('#' + _target + '-all').prop('checked', true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 선택된 대상자 구독서비스 상품준비 일괄처리 AJAX
|
||||||
|
*********************************************************/
|
||||||
|
const fn_allOrdrReady_check = function () {
|
||||||
|
|
||||||
|
let url = '<c:url value="/mngr/ordr/subsvc/updateSubsvcOrdrReady"/>';
|
||||||
|
let check = $("input[name='arrCheck']:checked");
|
||||||
|
let param = $('#listForm').serialize();
|
||||||
|
|
||||||
|
if (check.length === 0) {
|
||||||
|
alert("선택된 대상이 없습니다");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 출고상품 선택 확인*/
|
||||||
|
if($('#goodsInnb').val() == undefined){
|
||||||
|
alert("출고상품 선택이 필요합니다");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (confirm('선택된 주문을 상품준비 일괄처리 하시겠습니까?')) {
|
||||||
|
$.ajax({
|
||||||
|
type: 'post',
|
||||||
|
url: url,
|
||||||
|
data: param,
|
||||||
|
dataType: "json",
|
||||||
|
success: function (data) {
|
||||||
|
const message = JSON.parse(data.resBody.result).message;
|
||||||
|
if(message == "success"){
|
||||||
|
alert('<spring:message code="success.common.process"/>');
|
||||||
|
fn_select_list();
|
||||||
|
}else{
|
||||||
|
alert('<spring:message code="fail.common.save"/>');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* 관리자 주문 > 상품조회 > 검색조건 > 날짜 선택 이벤트 */
|
||||||
|
$(document).on('click', '.dateRange-btn', function () {
|
||||||
|
const date = $(this).attr('id');
|
||||||
|
|
||||||
|
$('.dateRange-btn').removeClass('selected');
|
||||||
|
$('#' + date).addClass('selected');
|
||||||
|
|
||||||
|
const datepicker = $(this).closest('.td-inner').find('.datepicker');
|
||||||
|
const start = $(datepicker[0]).attr('id');
|
||||||
|
const end = $(datepicker[1]).attr('id');
|
||||||
|
|
||||||
|
if ('allDays' === date) {
|
||||||
|
$('#' + start + ', #' + end).val('');
|
||||||
|
|
||||||
|
$('#datePeriod').val(date);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn_set_date(start, end, end, date);
|
||||||
|
|
||||||
|
$('#datePeriod').val(date);
|
||||||
|
});
|
||||||
|
|
||||||
|
//카테고리 선택시 카테고리 아이디 저장(검색용)
|
||||||
|
$(document).on('change', 'select[id^=ctgryDepth]', function () {
|
||||||
|
const ctgryOptn = $(this).val()
|
||||||
|
|
||||||
|
if(!fn_is_empty(ctgryOptn)){
|
||||||
|
$('#ctgryId').val(ctgryOptn)
|
||||||
|
}else{
|
||||||
|
//value가 ''인 카테고리 선택할경우
|
||||||
|
let currentCtgryDepth = parseInt($(this).attr('id').replace('ctgryDepth', ''));
|
||||||
|
|
||||||
|
//1차 카테고리가 아닐 경우 이전 카테고리 번호 가져오기
|
||||||
|
if(currentCtgryDepth !== 1){
|
||||||
|
$('#ctgryId').val($('#ctgryDepth' + (currentCtgryDepth - 1)).val())
|
||||||
|
}else{
|
||||||
|
//1차 카테고리 일경우 카테고리 번호 비우기
|
||||||
|
$('#ctgryId').val('')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
//초기화버튼
|
||||||
|
$(document).on('click', '#resetBtn', function () {
|
||||||
|
$('#listForm')[0].reset();
|
||||||
|
$('#srchSelSubsvcNm').niceSelect('update');
|
||||||
|
$('#srchSelSubsvcNm').trigger("change");
|
||||||
|
$('#srchSelSubsvcGnr').niceSelect('update');
|
||||||
|
|
||||||
|
fn_select_list(1);
|
||||||
|
})
|
||||||
|
|
||||||
|
let selected = [];
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 상품 검색 팝업 > 상품 목록 조회
|
||||||
|
* param : pageIndex, selected
|
||||||
|
******************************************************** */
|
||||||
|
const fn_goods_search_popup_list = function (pageIndex, selected) {
|
||||||
|
let dataStr;
|
||||||
|
if (!pageIndex) {
|
||||||
|
$('#pageIndex').val(1);
|
||||||
|
} else {
|
||||||
|
$('#pageIndex').val(pageIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#popupListForm').find('input[name=pageIndex]').eq(0).val(pageIndex);
|
||||||
|
const popupListForm = $("#popupListForm").serialize();
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "post",
|
||||||
|
url: "<c:url value="/mngr/goods/goodsmngr/selectGoodsSrchPopupList"/>",
|
||||||
|
data: popupListForm,
|
||||||
|
success: function (resultHtml) {
|
||||||
|
$('#goodsList').empty();
|
||||||
|
$('#goodsList').html(resultHtml);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 상품검색 팝업에서 선택된 상품을 출고상품에 셋팅
|
||||||
|
* param 없음
|
||||||
|
******************************************************** */
|
||||||
|
function fn_select_goods_search() {
|
||||||
|
let selected = [];
|
||||||
|
$('#appendList tr').each(function () {
|
||||||
|
const goodsId = $(this).attr('id').replace('choiseListId', '');
|
||||||
|
const goodsOptnInnb = $(this).find('input[name="goodsOptnInnb"]').val();
|
||||||
|
const optnTy = $(this).find('input[name="optnTy"]').val();
|
||||||
|
const goodsImg = $(this).find('input[name="goodsImgCours"]').val();
|
||||||
|
const goodsNm = $(this).find('input[name="goodsNm"]').val();
|
||||||
|
const goodsPrice = $(this).find('input[name="slepric"]').val();
|
||||||
|
const goodsSttusNm = $(this).find('input[name="goodsSttusNm"]').val();
|
||||||
|
const expsrNm = $(this).find('input[name="expsrNm"]').val();
|
||||||
|
|
||||||
|
selected.push({
|
||||||
|
goodsId: goodsId,
|
||||||
|
goodsOptnInnb: goodsOptnInnb,
|
||||||
|
optnTy: optnTy,
|
||||||
|
goodsImg: goodsImg,
|
||||||
|
goodsNm: goodsNm,
|
||||||
|
goodsPrice: goodsPrice,
|
||||||
|
goodsSttusNm: goodsSttusNm,
|
||||||
|
expsrNm: expsrNm
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// 각 화면에 맞춰서 HTML 변경 START
|
||||||
|
var tableBody = $("#parentGoodsContainer");
|
||||||
|
tableBody.empty();
|
||||||
|
|
||||||
|
selected.forEach((good, index) => {
|
||||||
|
if(index == 0) {
|
||||||
|
var productHtml = `
|
||||||
|
<div class="product-group__item">
|
||||||
|
<input type="hidden" id="goodsInnb" name="goodsInnb" value="` + good.goodsId + `">
|
||||||
|
<input type="hidden" id="goodsOptnInnb" name="goodsOptnInnb" value="` + good.goodsOptnInnb + `">
|
||||||
|
<input type="hidden" id="optnTy" name="optnTy" value="` + good.optnTy + `">
|
||||||
|
<span class="product-group__item-number">` + (index + 1) + `</span>
|
||||||
|
<div class="product-group__image">
|
||||||
|
<img src="` + good.goodsImg + `" width="140" alt="` + good.goodsNm + `"
|
||||||
|
onerror="this.src='/mngr/images/image_placeholder.png'"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="product-group__description">
|
||||||
|
<p>` + good.goodsNm + `</p>
|
||||||
|
<p class="product-group__description-price">` + fn_format_comma(good.goodsPrice) + `${curUnit}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
tableBody.append(productHtml);
|
||||||
|
});
|
||||||
|
// 각 화면에 맞춰서 HTML 변경 END
|
||||||
|
|
||||||
|
fn_close_modal('product-search');
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 배송내역 팝업
|
||||||
|
*********************************************************/
|
||||||
|
const fn_select_dlvy_pop = function (ordrInnb) {
|
||||||
|
$.ajax({
|
||||||
|
type: 'post',
|
||||||
|
url: "<c:url value ='/mngr/ordr/subsvc/selectSubsvcOrdrDlvyListPop'/>",
|
||||||
|
data: {ordrInnb: ordrInnb},
|
||||||
|
success: function (data) {
|
||||||
|
alert(data);
|
||||||
|
$("#modalDiv").empty();
|
||||||
|
$("#modalDiv").html(data);
|
||||||
|
$("#board-list-registration").modal();
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<body>
|
||||||
|
<%@ include file="/WEB-INF/views/comm/mngr/Header.jsp"%>
|
||||||
|
<main class="main">
|
||||||
|
<%@ include file="/WEB-INF/views/comm/mngr/Left.jsp"%>
|
||||||
|
<div class="content">
|
||||||
|
<div class="content__inner">
|
||||||
|
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
|
||||||
|
<div class="page-title">
|
||||||
|
<h2 class="page-title__title">구독서비스 상품준비 관리</h2>
|
||||||
|
<div class="page-title__btn-container">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<form id='listForm' name="listForm" method="post" action="<c:url value="/mngr/goods/subsvc/selectSubsvcList"/>">
|
||||||
|
<input type="hidden" id="pageIndex" name="pageIndex" value="${ resultMap.paramVO.pageIndex }"/>
|
||||||
|
<input type="hidden" id="sortDv" name="sortDv" value="${ resultMap.paramVO.sortDv }">
|
||||||
|
<input type="hidden" id="pageUnit" name="pageUnit" value="${ resultMap.paramVO.pageUnit }">
|
||||||
|
<input type="hidden" id="subsvcInnb" name="subsvcInnb" value="">
|
||||||
|
<section class="content-section" id="search-section">
|
||||||
|
<div class="table-wrapper">
|
||||||
|
<table class="table">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 12%;">
|
||||||
|
<col>
|
||||||
|
<col style="width: 12%;">
|
||||||
|
<col>
|
||||||
|
</colgroup>
|
||||||
|
<tr>
|
||||||
|
<th>구독서비스</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<div class="td-inner">
|
||||||
|
<div class="select-box">
|
||||||
|
<select title="구독서비스" id="srchSelSubsvcNm" name="srchSelSubsvcNm">
|
||||||
|
<option value="" <c:if test="${ resultMap.paramVO.srchSelSubsvcNm eq ''}">selected="selected"</c:if>>전체</option>
|
||||||
|
<c:forEach items="${resultMap.srchSubsvcList}" var="srchSubsvc" varStatus="status">
|
||||||
|
<option value="${srchSubsvc.subsvcNm}" <c:if test="${ resultMap.paramVO.srchSelSubsvcNm eq srchSubsvc.subsvcNm}">selected="selected"</c:if>>${srchSubsvc.subsvcNm}</option>
|
||||||
|
</c:forEach>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="select-box">
|
||||||
|
<select title="구독서비스회차" id="srchSelSubsvcGnr" name="srchSelSubsvcGnr">
|
||||||
|
<option value="" <c:if test="${ resultMap.paramVO.srchSelSubsvcGnr eq ''}">selected="selected"</c:if>>전체</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>구독서비스명</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner">
|
||||||
|
<input class="input-text xl" type="text" title="구독서비스명" id="srchSubsvcNm" name="srchSubsvcNm" value="<c:out value="${ resultMap.paramVO.srchSubsvcNm }" />">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<th>기수명</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner">
|
||||||
|
<input class="input-text xl" type="text" title="구독서비스명" id="srchSubsvcGnrNm" name="srchSubsvcGnrNm" value="<c:out value="${ resultMap.paramVO.srchSubsvcGnrNm }" />">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>당월 처리자</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<div class="td-inner">
|
||||||
|
<div class="b-checkbox-container">
|
||||||
|
<label class="b-checkbox checkbox">
|
||||||
|
<input type="checkbox" id="srchCurMonExclude" name="srchCurMonExclude" value="Y" <c:if test="${resultMap.paramVO.srchCurMonExclude eq 'Y'}">checked</c:if>>
|
||||||
|
<span class="check"></span>
|
||||||
|
<span class="control-label">당월 처리자 제외</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="form-control-container">
|
||||||
|
<div class="left"></div>
|
||||||
|
<div class="center">
|
||||||
|
<button class="btn outline" id="resetBtn" type="button">초기화</button>
|
||||||
|
<button class="btn primary" id="searchBtn" type="button" onclick="fn_select_list(1);"><spring:message code="button.search"/> </button>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="" >
|
||||||
|
<div class="table-wrapper">
|
||||||
|
<table class="table">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 12%;">
|
||||||
|
<col>
|
||||||
|
</colgroup>
|
||||||
|
<tr>
|
||||||
|
<th>출고상품<span class="red-7">*</span>
|
||||||
|
<a type="button" onclick="fn_open_modal('#modalDiv','#product-search','/mngr/goods/goodsmngr/selectGoodsSrchPopupForm',{'goodsKndCd':'01'}); return false;" class="btn xsm primary mt-5">검색</a>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner">
|
||||||
|
<div id="parentGoodsContainer" class="product-group">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<div id="pageDiv">
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="modalDiv">asfasdfasdaf</div>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,140 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
|
||||||
|
<%--
|
||||||
|
Class Name : SubsvcOrdrMappedList.jsp
|
||||||
|
Description : 구독서비스 상품변경 목록
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2026-02-09 jazz 최초 생성
|
||||||
|
--%>
|
||||||
|
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||||
|
<section class="content-section">
|
||||||
|
<div class="form-control-container">
|
||||||
|
<div class="left">
|
||||||
|
<div class="search-number">
|
||||||
|
<span class="search-number__text">총 <strong><c:out value="${ resultMap.paginationInfo.totalRecordCount }"/></strong>건</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="center">
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="select-box">
|
||||||
|
<select title="정렬순서" name="sortDvView" id="sortDvView" onchange="fn_select_list(1);return false;">
|
||||||
|
<option value="subsvcGnrAsc" <c:if test="${resultMap.paramVO.sortDv eq 'subsvcGnrAsc'}">selected="selected"</c:if>>구독서비스+기수 오름차순</option>
|
||||||
|
<option value="subsvcGnrDesc" <c:if test="${resultMap.paramVO.sortDv eq 'subsvcGnrDesc'}">selected="selected"</c:if>>구독서비스+기수 내림차순</option>
|
||||||
|
<option value="mbrAsc" <c:if test="${resultMap.paramVO.sortDv eq 'mbrAsc'}">selected="selected"</c:if>>주문자 오름차순</option>
|
||||||
|
<option value="mbrDesc" <c:if test="${resultMap.paramVO.sortDv eq 'mbrDesc'}">selected="selected"</c:if>>주문자 내림차순</option>
|
||||||
|
<option value="ordrAsc" <c:if test="${resultMap.paramVO.sortDv eq 'ordrAsc'}">selected="selected"</c:if>>주문번호 오름차순</option>
|
||||||
|
<option value="ordrDesc" <c:if test="${resultMap.paramVO.sortDv eq 'ordrDesc'}">selected="selected"</c:if>>주문번호 내림차순</option>
|
||||||
|
<option value="lastPrcsDtAsc" <c:if test="${resultMap.paramVO.sortDv eq 'lastPrcsDtAsc'}">selected="selected"</c:if>>처리일 오름차순</option>
|
||||||
|
<option value="lastPrcsDtDesc" <c:if test="${resultMap.paramVO.sortDv eq 'lastPrcsDtDesc'}">selected="selected"</c:if>>처리일 내림차순</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="select-box">
|
||||||
|
<select id="pageUnitView" name="pageUnitView" title="페이지당 출력될 목록건수" onchange="fn_select_list(1,this.value);return false;">
|
||||||
|
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
|
||||||
|
<option value="<c:out value="${ pageUnit }"/>"
|
||||||
|
<c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit}">selected="selected"</c:if>>
|
||||||
|
<c:out value="${ pageUnit }"/>개씩
|
||||||
|
</option>
|
||||||
|
</c:forEach>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr class="horizontal-line">
|
||||||
|
<div class="form-control-container">
|
||||||
|
<div class="left">
|
||||||
|
<button class="btn sm dark" onclick="fn_allOrdrReady_check();return false;">상품준비 일괄처리</button>
|
||||||
|
</div>
|
||||||
|
<div class="center">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr class="spacing">
|
||||||
|
<div class="table-wrapper">
|
||||||
|
<table class="table vertical">
|
||||||
|
<caption>구독서비스 목록</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 4%;">
|
||||||
|
<col style="width: 15%;">
|
||||||
|
<col style="width: 4%;">
|
||||||
|
<col style="width: 7%;">
|
||||||
|
<col style="width: 10%;">
|
||||||
|
<col style="width: 10%;">
|
||||||
|
<col style="width: 5%;">
|
||||||
|
<col style="width: 5%;">
|
||||||
|
<col style="width: 25%;">
|
||||||
|
<col style="width: 10%;">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<label class="b-checkbox checkbox is-medium ">
|
||||||
|
<input type="checkbox" id="checkAll" value="">
|
||||||
|
<span class="check"></span>
|
||||||
|
</label>
|
||||||
|
</th>
|
||||||
|
<th>구독서비스</th>
|
||||||
|
<th>기수</th>
|
||||||
|
<th>기수명</th>
|
||||||
|
<th>주문자</th>
|
||||||
|
<th>주문번호</th>
|
||||||
|
<th>차수</th>
|
||||||
|
<th colspan="2">상품</th>
|
||||||
|
<th>처리일</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${ not empty resultMap.list }">
|
||||||
|
<c:forEach items="${ resultMap.list }" var="subsvcOrdrMapped" varStatus="status">
|
||||||
|
<tr<c:if test="${lastProcsOdr > mbrLastProcsOdr}"> class="sendOut-info__reseller"</c:if>>
|
||||||
|
<td>
|
||||||
|
<label class="b-checkbox checkbox is-medium check-all">
|
||||||
|
<input type="checkbox" name="arrCheck" class="arrCheck" value="${subsvcOrdrMapped.ordrInnb}@${subsvcOrdrMapped.ordrGoodsInnb}@${subsvcOrdrMapped.ordrGoodsOptnInnb}@${subsvcOrdrMapped.ordrDlvyInnb}">
|
||||||
|
<span class="check"></span>
|
||||||
|
</label>
|
||||||
|
</td>
|
||||||
|
<td><c:out value="${subsvcOrdrMapped.subsvcNm}"/></td>
|
||||||
|
<td><c:out value="${subsvcOrdrMapped.subsvcGnr}"/>기</td>
|
||||||
|
<td><c:out value="${subsvcOrdrMapped.subsvcGnrNm}"/></td>
|
||||||
|
<td><c:out value="${subsvcOrdrMapped.mbrNm}"/></br>(<c:out value="${subsvcOrdrMapped.mbrId}"/>/<c:out value="${subsvcOrdrMapped.grade}"/>)</td>
|
||||||
|
<td><c:out value="${subsvcOrdrMapped.ordrInnb}"/></td>
|
||||||
|
<td><c:out value="${subsvcOrdrMapped.curtProcsOdr}"/>회</td>
|
||||||
|
<td><img src='<c:out value="${cdnurl}${subsvcOrdrMapped.goodsImgCours}"/>' onerror="this.src='/pc/images/image_placeholder.png'" alt='<c:out value="${subsvcOrdrMapped.goodsNm}"/>' width="56px" height="56px"></td>
|
||||||
|
<td>
|
||||||
|
<div class="order-section__product-info">
|
||||||
|
<span class="order-section__product-productTitle"><c:out value="${subsvcOrdrMapped.goodsNm}"/></span>
|
||||||
|
<span class="option-text">
|
||||||
|
<span class="option-badge">옵션</span> <c:out value="${subsvcOrdrMapped.optnNm1}"/>:<c:out value="${subsvcOrdrMapped.optnVal1}"/>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<fmt:parseDate value="${subsvcOrdrMapped.updtDt}" pattern="yyyy-MM-dd HH:mm:ss" var="parseUpdtDt"/>
|
||||||
|
<fmt:formatDate value="${parseUpdtDt }" var="formatUpdtDt" pattern="yyyy-MM-dd"/>
|
||||||
|
<td><c:out value="${ formatUpdtDt }"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<tr>
|
||||||
|
<td colspan="100%"><spring:message code="common.nodata"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="pagination__container">
|
||||||
|
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_list"/>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,504 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
|
||||||
|
<%--
|
||||||
|
Class Name : SubsvcOrdrMappedListFrom.jsp
|
||||||
|
Description : 구독서비스 상품변경 목록 조회 폼
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2026-02-09 jazz 최초 생성
|
||||||
|
--%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>일반 관리자</title>
|
||||||
|
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||||
|
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
||||||
|
</head>
|
||||||
|
<script>
|
||||||
|
var initFlag = true;
|
||||||
|
$(document).ready(function () {
|
||||||
|
let pageIndex = $("#pageIndex").val();
|
||||||
|
let pageUnit = $("#pageUnit").val();
|
||||||
|
let srchSelSubsvcNm = $('#srchSelSubsvcNm').val();
|
||||||
|
// event 제어
|
||||||
|
fn_event();
|
||||||
|
|
||||||
|
if(srchSelSubsvcNm != ''){
|
||||||
|
fn_getsubsvcGnr(srchSelSubsvcNm);
|
||||||
|
}else{
|
||||||
|
// 목록 조회
|
||||||
|
fn_select_list(pageIndex, pageUnit);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 엔터키 검색
|
||||||
|
$('#listForm').on('keydown', function (event) {
|
||||||
|
if (event.keyCode === 13) {
|
||||||
|
event.preventDefault();
|
||||||
|
fn_select_list(1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 목록 조회
|
||||||
|
******************************************************** */
|
||||||
|
const fn_select_list = function (pageIndex, pageUnit) {
|
||||||
|
let dataStr;
|
||||||
|
|
||||||
|
if (!pageIndex) {
|
||||||
|
$('#pageIndex').val(1);
|
||||||
|
} else {
|
||||||
|
$('#pageIndex').val(pageIndex);
|
||||||
|
}
|
||||||
|
//정렬기준 셋팅
|
||||||
|
if(typeof $('#sortDvView') !== undefined && $('#sortDvView').val() !== undefined){
|
||||||
|
$('#sortDv').val($('#sortDvView').val());
|
||||||
|
}
|
||||||
|
//한페이지 목록개수 셋팅
|
||||||
|
if(typeof $('#pageUnitView') !== undefined && $('#pageUnitView').val() !== undefined){
|
||||||
|
$('#pageUnit').val($('#pageUnitView').val());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!pageUnit) {
|
||||||
|
dataStr = $('#listForm').serialize();
|
||||||
|
} else {
|
||||||
|
if ($('#pageUnit').length) {
|
||||||
|
$('#pageUnit').val(pageUnit);
|
||||||
|
dataStr = $('#listForm').serialize();
|
||||||
|
} else {
|
||||||
|
dataStr = $('#listForm').serialize() + '&pageUnit=' + pageUnit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "post",
|
||||||
|
url: "<c:url value="/mngr/ordr/subsvc/selectSubsvcOrdrMappedList"/>",
|
||||||
|
data: dataStr,
|
||||||
|
success: function (resultHtml) {
|
||||||
|
$('#pageDiv').html(resultHtml);
|
||||||
|
$('#sortDv').val($('#sortDvView').val());
|
||||||
|
$('#pageUnitView').niceSelect();
|
||||||
|
$('#sortDvView').niceSelect();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 현제uri에 프로토콜, 호스트, 쿼리스티링을 제외하여 history갱신 */
|
||||||
|
history.replaceState({}, null, location.pathname);
|
||||||
|
|
||||||
|
/* ****************************
|
||||||
|
* event 제어
|
||||||
|
******************************/
|
||||||
|
const fn_event = function () {
|
||||||
|
/* 검색조건 구독서비스 선택 시 회차 조회 이벤트*/
|
||||||
|
$(document).on('change', '#srchSelSubsvcNm', function(){
|
||||||
|
var srchSelSubsvcNm = $(this).val();
|
||||||
|
if(fn_is_empty(srchSelSubsvcNm)){
|
||||||
|
// 회차 초기화
|
||||||
|
$('#srchSelSubsvcGnr').empty().append('<option value="">전체</option>').niceSelect('update');
|
||||||
|
}else{
|
||||||
|
//해당구독서비스 기수조회
|
||||||
|
fn_getsubsvcGnr(srchSelSubsvcNm);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/* 목록 > 전체선택 체인지 이벤트 */
|
||||||
|
$(document).on('change', '#checkAll', function () {
|
||||||
|
let checkbox = $(this).closest('table').find('input[name="arrCheck"]');
|
||||||
|
|
||||||
|
$(checkbox).prop('checked', false);
|
||||||
|
$(checkbox).prop('checked', $(this).is(':checked'));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ****************************
|
||||||
|
* 해당구독서비스 기수조회 AJAX
|
||||||
|
******************************/
|
||||||
|
const fn_getsubsvcGnr = function (srchSelSubsvcNm) {
|
||||||
|
$.ajax({
|
||||||
|
type: 'post',
|
||||||
|
url: '<c:url value="/mngr/goods/subsvc/selectSrchSubsvcGnrListAjax"/>',
|
||||||
|
data: {
|
||||||
|
'srchSelSubsvcNm': srchSelSubsvcNm
|
||||||
|
},
|
||||||
|
success: function (data) {
|
||||||
|
if (data.resBody != null) {
|
||||||
|
const result = JSON.parse(data.resBody.result);
|
||||||
|
const srchSubsvcGnrList = result.srchSubsvcGnrList;
|
||||||
|
if (srchSubsvcGnrList.length > 0) {
|
||||||
|
// 회차 초기화
|
||||||
|
$('#srchSelSubsvcGnr').empty().append('<option value="">전체</option>').niceSelect('update');
|
||||||
|
// $('#srchSubsvcGnr option').filter(function() {
|
||||||
|
// return $(this).val() !== '';
|
||||||
|
// }).remove();
|
||||||
|
|
||||||
|
for (let i = 0; i < srchSubsvcGnrList.length; i++) {
|
||||||
|
const srchSubsvcGnr = srchSubsvcGnrList[i];
|
||||||
|
var check = "";
|
||||||
|
if(srchSubsvcGnr.subsvcGnr == '${resultMap.paramVO.srchSelSubsvcGnr}'){
|
||||||
|
check ="selected"
|
||||||
|
}
|
||||||
|
|
||||||
|
if(initFlag == true){
|
||||||
|
$('#srchSelSubsvcGnr').append('<option value="' + srchSubsvcGnr.subsvcGnr + '" '+ check+'>' + srchSubsvcGnr.subsvcGnrNm + '</option>');
|
||||||
|
fn_select_list();
|
||||||
|
initFlag = false;
|
||||||
|
}else{
|
||||||
|
$('#srchSelSubsvcGnr').append('<option value="' + srchSubsvcGnr.subsvcGnr + '">' + srchSubsvcGnr.subsvcGnrNm + '</option>');
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$('#srchSelSubsvcGnr').niceSelect('update');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (data) {
|
||||||
|
fn_proc_error_message(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 체크박스 전체 처리
|
||||||
|
* */
|
||||||
|
const fn_change_event = function (_target, _arg) {
|
||||||
|
if (_arg === 'all') {
|
||||||
|
|
||||||
|
if ($('#' + _target + '-all').is(':checked')) {
|
||||||
|
$('[name=' + _target + ']').prop('checked', true);
|
||||||
|
} else {
|
||||||
|
$('[name=' + _target + ']').prop('checked', false);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
let chkCnt = $('[name=' + _target + ']:checked').length;
|
||||||
|
let allCnt = $('[name=' + _target + ']').length;
|
||||||
|
if (chkCnt !== allCnt && $('#' + _target + '-all').is(':checked')) {
|
||||||
|
$('#' + _target + '-all').prop('checked', false);
|
||||||
|
} else if (chkCnt === allCnt) {
|
||||||
|
$('#' + _target + '-all').prop('checked', true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 선택된 대상자 구독서비스 상품준비 일괄처리 AJAX
|
||||||
|
*********************************************************/
|
||||||
|
const fn_allOrdrReady_check = function () {
|
||||||
|
|
||||||
|
let url = '<c:url value="/mngr/ordr/subsvc/updateSubsvcOrdrReady"/>';
|
||||||
|
let check = $("input[name='arrCheck']:checked");
|
||||||
|
let param = $('#listForm').serialize();
|
||||||
|
|
||||||
|
if (check.length === 0) {
|
||||||
|
alert("선택된 대상이 없습니다");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 출고상품 선택 확인*/
|
||||||
|
if($('#goodsInnb').val() == undefined){
|
||||||
|
alert("출고상품 선택이 필요합니다");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (confirm('선택된 주문을 상품준비 일괄처리 하시겠습니까?')) {
|
||||||
|
$.ajax({
|
||||||
|
type: 'post',
|
||||||
|
url: url,
|
||||||
|
data: param,
|
||||||
|
dataType: "json",
|
||||||
|
success: function (data) {
|
||||||
|
const message = JSON.parse(data.resBody.result).message;
|
||||||
|
if(message == "success"){
|
||||||
|
alert('<spring:message code="success.common.process"/>');
|
||||||
|
fn_select_list();
|
||||||
|
}else{
|
||||||
|
alert('<spring:message code="fail.common.save"/>');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* 관리자 주문 > 상품조회 > 검색조건 > 날짜 선택 이벤트 */
|
||||||
|
$(document).on('click', '.dateRange-btn', function () {
|
||||||
|
const date = $(this).attr('id');
|
||||||
|
|
||||||
|
$('.dateRange-btn').removeClass('selected');
|
||||||
|
$('#' + date).addClass('selected');
|
||||||
|
|
||||||
|
const datepicker = $(this).closest('.td-inner').find('.datepicker');
|
||||||
|
const start = $(datepicker[0]).attr('id');
|
||||||
|
const end = $(datepicker[1]).attr('id');
|
||||||
|
|
||||||
|
if ('allDays' === date) {
|
||||||
|
$('#' + start + ', #' + end).val('');
|
||||||
|
|
||||||
|
$('#datePeriod').val(date);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn_set_date(start, end, end, date);
|
||||||
|
|
||||||
|
$('#datePeriod').val(date);
|
||||||
|
});
|
||||||
|
|
||||||
|
//카테고리 선택시 카테고리 아이디 저장(검색용)
|
||||||
|
$(document).on('change', 'select[id^=ctgryDepth]', function () {
|
||||||
|
const ctgryOptn = $(this).val()
|
||||||
|
|
||||||
|
if(!fn_is_empty(ctgryOptn)){
|
||||||
|
$('#ctgryId').val(ctgryOptn)
|
||||||
|
}else{
|
||||||
|
//value가 ''인 카테고리 선택할경우
|
||||||
|
let currentCtgryDepth = parseInt($(this).attr('id').replace('ctgryDepth', ''));
|
||||||
|
|
||||||
|
//1차 카테고리가 아닐 경우 이전 카테고리 번호 가져오기
|
||||||
|
if(currentCtgryDepth !== 1){
|
||||||
|
$('#ctgryId').val($('#ctgryDepth' + (currentCtgryDepth - 1)).val())
|
||||||
|
}else{
|
||||||
|
//1차 카테고리 일경우 카테고리 번호 비우기
|
||||||
|
$('#ctgryId').val('')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
//초기화버튼
|
||||||
|
$(document).on('click', '#resetBtn', function () {
|
||||||
|
$('#listForm')[0].reset();
|
||||||
|
$('#srchSelSubsvcNm').niceSelect('update');
|
||||||
|
$('#srchSelSubsvcNm').trigger("change");
|
||||||
|
$('#srchSelSubsvcGnr').niceSelect('update');
|
||||||
|
|
||||||
|
fn_select_list(1);
|
||||||
|
})
|
||||||
|
|
||||||
|
let selected = [];
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 상품 검색 팝업 > 상품 목록 조회
|
||||||
|
* param : pageIndex, selected
|
||||||
|
******************************************************** */
|
||||||
|
const fn_goods_search_popup_list = function (pageIndex, selected) {
|
||||||
|
let dataStr;
|
||||||
|
if (!pageIndex) {
|
||||||
|
$('#pageIndex').val(1);
|
||||||
|
} else {
|
||||||
|
$('#pageIndex').val(pageIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#popupListForm').find('input[name=pageIndex]').eq(0).val(pageIndex);
|
||||||
|
const popupListForm = $("#popupListForm").serialize();
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "post",
|
||||||
|
url: "<c:url value="/mngr/goods/goodsmngr/selectGoodsSrchPopupList"/>",
|
||||||
|
data: popupListForm,
|
||||||
|
success: function (resultHtml) {
|
||||||
|
$('#goodsList').empty();
|
||||||
|
$('#goodsList').html(resultHtml);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 상품검색 팝업에서 선택된 상품을 출고상품에 셋팅
|
||||||
|
* param 없음
|
||||||
|
******************************************************** */
|
||||||
|
function fn_select_goods_search() {
|
||||||
|
let selected = [];
|
||||||
|
$('#appendList tr').each(function () {
|
||||||
|
const goodsId = $(this).attr('id').replace('choiseListId', '');
|
||||||
|
const goodsOptnInnb = $(this).find('input[name="goodsOptnInnb"]').val();
|
||||||
|
const optnTy = $(this).find('input[name="optnTy"]').val();
|
||||||
|
const goodsImg = $(this).find('input[name="goodsImgCours"]').val();
|
||||||
|
const goodsNm = $(this).find('input[name="goodsNm"]').val();
|
||||||
|
const goodsPrice = $(this).find('input[name="slepric"]').val();
|
||||||
|
const goodsSttusNm = $(this).find('input[name="goodsSttusNm"]').val();
|
||||||
|
const expsrNm = $(this).find('input[name="expsrNm"]').val();
|
||||||
|
|
||||||
|
selected.push({
|
||||||
|
goodsId: goodsId,
|
||||||
|
goodsOptnInnb: goodsOptnInnb,
|
||||||
|
optnTy: optnTy,
|
||||||
|
goodsImg: goodsImg,
|
||||||
|
goodsNm: goodsNm,
|
||||||
|
goodsPrice: goodsPrice,
|
||||||
|
goodsSttusNm: goodsSttusNm,
|
||||||
|
expsrNm: expsrNm
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// 각 화면에 맞춰서 HTML 변경 START
|
||||||
|
var tableBody = $("#parentGoodsContainer");
|
||||||
|
tableBody.empty();
|
||||||
|
|
||||||
|
selected.forEach((good, index) => {
|
||||||
|
if(index == 0) {
|
||||||
|
var productHtml = `
|
||||||
|
<div class="product-group__item">
|
||||||
|
<input type="hidden" id="goodsInnb" name="goodsInnb" value="` + good.goodsId + `">
|
||||||
|
<input type="hidden" id="goodsOptnInnb" name="goodsOptnInnb" value="` + good.goodsOptnInnb + `">
|
||||||
|
<input type="hidden" id="optnTy" name="optnTy" value="` + good.optnTy + `">
|
||||||
|
<span class="product-group__item-number">` + (index + 1) + `</span>
|
||||||
|
<div class="product-group__image">
|
||||||
|
<img src="` + good.goodsImg + `" width="140" alt="` + good.goodsNm + `"
|
||||||
|
onerror="this.src='/mngr/images/image_placeholder.png'"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="product-group__description">
|
||||||
|
<p>` + good.goodsNm + `</p>
|
||||||
|
<p class="product-group__description-price">` + fn_format_comma(good.goodsPrice) + `${curUnit}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
tableBody.append(productHtml);
|
||||||
|
});
|
||||||
|
// 각 화면에 맞춰서 HTML 변경 END
|
||||||
|
|
||||||
|
fn_close_modal('product-search');
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<body>
|
||||||
|
<%@ include file="/WEB-INF/views/comm/mngr/Header.jsp"%>
|
||||||
|
<main class="main">
|
||||||
|
<%@ include file="/WEB-INF/views/comm/mngr/Left.jsp"%>
|
||||||
|
<div class="content">
|
||||||
|
<div class="content__inner">
|
||||||
|
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
|
||||||
|
<div class="page-title">
|
||||||
|
<h2 class="page-title__title">구독서비스 상품변경 관리</h2>
|
||||||
|
<div class="page-title__btn-container">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<form id='listForm' name="listForm" method="post" action="<c:url value="/mngr/ordr/subsvc/selectSubsvcOrdrMappedList"/>">
|
||||||
|
<input type="hidden" id="pageIndex" name="pageIndex" value="${ resultMap.paramVO.pageIndex }"/>
|
||||||
|
<input type="hidden" id="sortDv" name="sortDv" value="${ resultMap.paramVO.sortDv }">
|
||||||
|
<input type="hidden" id="pageUnit" name="pageUnit" value="${ resultMap.paramVO.pageUnit }">
|
||||||
|
<input type="hidden" id="subsvcInnb" name="subsvcInnb" value="">
|
||||||
|
<section class="content-section" id="search-section">
|
||||||
|
<div class="table-wrapper">
|
||||||
|
<table class="table">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 12%;">
|
||||||
|
<col>
|
||||||
|
<col style="width: 12%;">
|
||||||
|
<col>
|
||||||
|
</colgroup>
|
||||||
|
<tr>
|
||||||
|
<th>구독서비스</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<div class="td-inner">
|
||||||
|
<div class="select-box">
|
||||||
|
<select title="구독서비스" id="srchSelSubsvcNm" name="srchSelSubsvcNm">
|
||||||
|
<option value="" <c:if test="${ resultMap.paramVO.srchSelSubsvcNm eq ''}">selected="selected"</c:if>>전체</option>
|
||||||
|
<c:forEach items="${resultMap.srchSubsvcList}" var="srchSubsvc" varStatus="status">
|
||||||
|
<option value="${srchSubsvc.subsvcNm}" <c:if test="${ resultMap.paramVO.srchSelSubsvcNm eq srchSubsvc.subsvcNm}">selected="selected"</c:if>>${srchSubsvc.subsvcNm}</option>
|
||||||
|
</c:forEach>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="select-box">
|
||||||
|
<select title="구독서비스회차" id="srchSelSubsvcGnr" name="srchSelSubsvcGnr">
|
||||||
|
<option value="" <c:if test="${ resultMap.paramVO.srchSelSubsvcGnr eq ''}">selected="selected"</c:if>>전체</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>구독서비스명</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner">
|
||||||
|
<input class="input-text xl" type="text" title="구독서비스명" id="srchSubsvcNm" name="srchSubsvcNm" value="<c:out value="${ resultMap.paramVO.srchSubsvcNm }" />">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<th>기수명</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner">
|
||||||
|
<input class="input-text xl" type="text" title="구독서비스명" id="srchSubsvcGnrNm" name="srchSubsvcGnrNm" value="<c:out value="${ resultMap.paramVO.srchSubsvcGnrNm }" />">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>주문자명</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner">
|
||||||
|
<input class="input-text xl" type="text" title="주문자명" id="srchMbrNm" name="srchMbrNm" value="<c:out value="${ resultMap.paramVO.srchMbrNm }" />">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<th>주문자ID</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner">
|
||||||
|
<input class="input-text xl" type="text" title="주문자ID" id="srchMbrId" name="srchMbrId" value="<c:out value="${ resultMap.paramVO.srchMbrId }" />">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>주문번호</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<div class="td-inner">
|
||||||
|
<input class="input-text xl" type="text" title="주문번호" id="srchOrdrInnb" name="srchOrdrInnb" value="<c:out value="${ resultMap.paramVO.srchOrdrInnb }" />">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="form-control-container">
|
||||||
|
<div class="left"></div>
|
||||||
|
<div class="center">
|
||||||
|
<button class="btn outline" id="resetBtn" type="button">초기화</button>
|
||||||
|
<button class="btn primary" id="searchBtn" type="button" onclick="fn_select_list(1);"><spring:message code="button.search"/> </button>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="" >
|
||||||
|
<div class="table-wrapper">
|
||||||
|
<table class="table">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 12%;">
|
||||||
|
<col>
|
||||||
|
</colgroup>
|
||||||
|
<tr>
|
||||||
|
<th>출고상품<span class="red-7">*</span>
|
||||||
|
<a type="button" onclick="fn_open_modal('#modalDiv','#product-search','/mngr/goods/goodsmngr/selectGoodsSrchPopupForm',{'goodsKndCd':'01'}); return false;" class="btn xsm primary mt-5">검색</a>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner">
|
||||||
|
<div id="parentGoodsContainer" class="product-group">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<div id="pageDiv">
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="modalDiv">asfasdfasdaf</div>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,124 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
|
||||||
|
<%--
|
||||||
|
Class Name : SubsvcOrdrMbrList.jsp
|
||||||
|
Description : 구독서비스 구독자 조회 목록
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2026-02-09 jazz 최초 생성
|
||||||
|
--%>
|
||||||
|
<section class="content-section">
|
||||||
|
<div class="form-control-container">
|
||||||
|
<div class="left">
|
||||||
|
<div class="search-number">
|
||||||
|
<span class="search-number__text">총 <strong><c:out value="${ resultMap.paginationInfo.totalRecordCount }"/></strong>건</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="center">
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="select-box">
|
||||||
|
<select title="정렬순서" name="sortDvView" id="sortDvView" onchange="fn_select_list(1);return false;">
|
||||||
|
<option value="subsvcGnrAsc" <c:if test="${resultMap.paramVO.sortDv eq 'subsvcGnrAsc'}">selected="selected"</c:if>>구독서비스+기수 오름차순</option>
|
||||||
|
<option value="subsvcGnrDesc" <c:if test="${resultMap.paramVO.sortDv eq 'subsvcGnrDesc'}">selected="selected"</c:if>>구독서비스+기수 내림차순</option>
|
||||||
|
<option value="subscriberAsc" <c:if test="${resultMap.paramVO.sortDv eq 'subscriberAsc'}">selected="selected"</c:if>>구독자수 오름차순</option>
|
||||||
|
<option value="subscriberDesc" <c:if test="${resultMap.paramVO.sortDv eq 'subscriberDesc'}">selected="selected"</c:if>>구독자수 내림차순</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="select-box">
|
||||||
|
<select id="pageUnitView" name="pageUnitView" title="페이지당 출력될 목록건수" onchange="fn_select_list(1,this.value);return false;">
|
||||||
|
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
|
||||||
|
<option value="<c:out value="${ pageUnit }"/>"
|
||||||
|
<c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit}">selected="selected"</c:if>>
|
||||||
|
<c:out value="${ pageUnit }"/>개씩
|
||||||
|
</option>
|
||||||
|
</c:forEach>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr class="horizontal-line">
|
||||||
|
<div class="table-wrapper">
|
||||||
|
<table class="table vertical">
|
||||||
|
<caption>구독서비스 목록</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 5%;">
|
||||||
|
<col style="width: 5%;">
|
||||||
|
<col style="width: 20%;">
|
||||||
|
<col style="width: 5%;">
|
||||||
|
<col style="width: 10%;">
|
||||||
|
<col style="width: 10%;">
|
||||||
|
<col style="width: 5%;">
|
||||||
|
<col style="width: 5%;">
|
||||||
|
<col style="width: 10%;">
|
||||||
|
<col style="width: 15%;">
|
||||||
|
<col style="width: 10%;">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<label class="b-checkbox checkbox is-medium ">
|
||||||
|
<input type="checkbox" id="checkAll" value="">
|
||||||
|
<span class="check"></span>
|
||||||
|
</label>
|
||||||
|
</th>
|
||||||
|
<th>번호</th>
|
||||||
|
<th>구독서비스</th>
|
||||||
|
<th>기수</th>
|
||||||
|
<th>기수명</th>
|
||||||
|
<th>실판매가</th>
|
||||||
|
<th>배송횟수</th>
|
||||||
|
<th>최종차수</th>
|
||||||
|
<th>최종처리일</th>
|
||||||
|
<th>구독자수</th>
|
||||||
|
<th>배송상품</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${ not empty resultMap.list }">
|
||||||
|
<c:forEach items="${ resultMap.list }" var="subsvcOrdrMbr" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<label class="b-checkbox checkbox is-medium check-all">
|
||||||
|
<input type="checkbox" name="arrCheck" class="arrCheck" value="">
|
||||||
|
<span class="check"></span>
|
||||||
|
</label>
|
||||||
|
</td>
|
||||||
|
<td><c:out value="${subsvcOrdrMbr.totCnt - (subsvcOrdrMbr.rnum -1)}"/></td>
|
||||||
|
<td><c:out value="${subsvcOrdrMbr.subsvcNm}"/></td>
|
||||||
|
<td><c:out value="${subsvcOrdrMbr.subsvcGnr}"/>기</td>
|
||||||
|
<td><c:out value="${subsvcOrdrMbr.subsvcGnrNm}"/></td>
|
||||||
|
<td><fmt:formatNumber value="${subsvcOrdrMbr.selpric}" pattern="#,###"/></td>
|
||||||
|
<td><c:out value="${subsvcOrdrMbr.dlvyCnt}"/>회</td>
|
||||||
|
<td><c:out value="${subsvcOrdrMbr.lastProcsOdr}"/>회</td>
|
||||||
|
<fmt:parseDate value="${subsvcOrdrMbr.lastPrcsDt}" pattern="yyyy-MM-dd HH:mm:ss" var="parseLastPrcsDt"/>
|
||||||
|
<fmt:formatDate value="${parseLastPrcsDt }" var="formatLastPrcsDt" pattern="yyyy-MM-dd"/>
|
||||||
|
<td><c:out value="${ formatLastPrcsDt }"/></td>
|
||||||
|
<td><c:out value="${subsvcOrdrMbr.subscriberCnt}"/>명 <button class="btn xsm outline light-gray" type="button" onclick="fn_open_modal('#modalDiv','#subsvcOrderMbrInfoListPop','<c:url value ='/mngr/ordr/subsvc/selectSubsvcOrderMbrInfoListPop'/>',{'subsvcInnb':'<c:out value="${subsvcOrdrMbr.subsvcInnb}"/>'}); return false;">상세</button></td>
|
||||||
|
<td><button class="btn xsm outline light-gray" type="button" onclick="fn_open_modal('#modalDiv','#subsvcOrdrrGoodsInfoListPop','<c:url value ='/mngr/ordr/subsvc/selectSubsvcOrderGoodsInfoListPop'/>',{'subsvcInnb':'<c:out value="${subsvcOrdrMbr.subsvcInnb}"/>'}); return false;">보기</button></td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<tr>
|
||||||
|
<td colspan="100%"><spring:message code="common.nodata"/></td>
|
||||||
|
</tr>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="pagination__container">
|
||||||
|
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_list"/>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,347 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
<%@ 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" %>
|
||||||
|
|
||||||
|
<%--
|
||||||
|
Class Name : SubsvcOrdrMbrListFrom.jsp
|
||||||
|
Description : 구독서비스 구독자 조회 폼
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2026-02-09 jazz 최초 생성
|
||||||
|
--%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>일반 관리자</title>
|
||||||
|
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
||||||
|
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
||||||
|
</head>
|
||||||
|
<script>
|
||||||
|
var initFlag = true;
|
||||||
|
$(document).ready(function () {
|
||||||
|
let pageIndex = $("#pageIndex").val();
|
||||||
|
let pageUnit = $("#pageUnit").val();
|
||||||
|
let srchSelSubsvcNm = $('#srchSelSubsvcNm').val();
|
||||||
|
// event 제어
|
||||||
|
fn_event();
|
||||||
|
|
||||||
|
if(srchSelSubsvcNm != ''){
|
||||||
|
fn_getsubsvcGnr(srchSelSubsvcNm);
|
||||||
|
}else{
|
||||||
|
// 목록 조회
|
||||||
|
fn_select_list(pageIndex, pageUnit);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 엔터키 검색
|
||||||
|
$('#listForm').on('keydown', function (event) {
|
||||||
|
if (event.keyCode === 13) {
|
||||||
|
event.preventDefault();
|
||||||
|
fn_select_list(1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 목록 조회
|
||||||
|
******************************************************** */
|
||||||
|
const fn_select_list = function (pageIndex, pageUnit) {
|
||||||
|
let dataStr;
|
||||||
|
|
||||||
|
if (!pageIndex) {
|
||||||
|
$('#pageIndex').val(1);
|
||||||
|
} else {
|
||||||
|
$('#pageIndex').val(pageIndex);
|
||||||
|
}
|
||||||
|
//정렬기준 셋팅
|
||||||
|
if(typeof $('#sortDvView') !== undefined && $('#sortDvView').val() !== undefined){
|
||||||
|
$('#sortDv').val($('#sortDvView').val());
|
||||||
|
}
|
||||||
|
//한페이지 목록개수 셋팅
|
||||||
|
if(typeof $('#pageUnitView') !== undefined && $('#pageUnitView').val() !== undefined){
|
||||||
|
$('#pageUnit').val($('#pageUnitView').val());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!pageUnit) {
|
||||||
|
dataStr = $('#listForm').serialize();
|
||||||
|
} else {
|
||||||
|
if ($('#pageUnit').length) {
|
||||||
|
$('#pageUnit').val(pageUnit);
|
||||||
|
dataStr = $('#listForm').serialize();
|
||||||
|
} else {
|
||||||
|
dataStr = $('#listForm').serialize() + '&pageUnit=' + pageUnit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "post",
|
||||||
|
url: "<c:url value="/mngr/ordr/subsvc/selectSubsvcOrdrMbrList"/>",
|
||||||
|
data: dataStr,
|
||||||
|
success: function (resultHtml) {
|
||||||
|
$('#pageDiv').html(resultHtml);
|
||||||
|
$('#sortDv').val($('#sortDvView').val());
|
||||||
|
$('#pageUnitView').niceSelect();
|
||||||
|
$('#sortDvView').niceSelect();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 현제uri에 프로토콜, 호스트, 쿼리스티링을 제외하여 history갱신 */
|
||||||
|
history.replaceState({}, null, location.pathname);
|
||||||
|
|
||||||
|
/* ****************************
|
||||||
|
* event 제어
|
||||||
|
******************************/
|
||||||
|
const fn_event = function () {
|
||||||
|
/* 검색조건 구독서비스 선택 시 회차 조회 이벤트*/
|
||||||
|
$(document).on('change', '#srchSelSubsvcNm', function(){
|
||||||
|
var srchSelSubsvcNm = $(this).val();
|
||||||
|
if(fn_is_empty(srchSelSubsvcNm)){
|
||||||
|
// 회차 초기화
|
||||||
|
$('#srchSelSubsvcGnr').empty().append('<option value="">전체</option>').niceSelect('update');
|
||||||
|
}else{
|
||||||
|
//해당구독서비스 기수조회
|
||||||
|
fn_getsubsvcGnr(srchSelSubsvcNm);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/* 목록 > 전체선택 체인지 이벤트 */
|
||||||
|
$(document).on('change', '#checkAll', function () {
|
||||||
|
let checkbox = $(this).closest('table').find('input[name="arrCheck"]');
|
||||||
|
|
||||||
|
$(checkbox).prop('checked', false);
|
||||||
|
$(checkbox).prop('checked', $(this).is(':checked'));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ****************************
|
||||||
|
* 해당구독서비스 기수조회 AJAX
|
||||||
|
******************************/
|
||||||
|
const fn_getsubsvcGnr = function (srchSelSubsvcNm) {
|
||||||
|
$.ajax({
|
||||||
|
type: 'post',
|
||||||
|
url: '<c:url value="/mngr/goods/subsvc/selectSrchSubsvcGnrListAjax"/>',
|
||||||
|
data: {
|
||||||
|
'srchSelSubsvcNm': srchSelSubsvcNm
|
||||||
|
},
|
||||||
|
success: function (data) {
|
||||||
|
if (data.resBody != null) {
|
||||||
|
const result = JSON.parse(data.resBody.result);
|
||||||
|
const srchSubsvcGnrList = result.srchSubsvcGnrList;
|
||||||
|
if (srchSubsvcGnrList.length > 0) {
|
||||||
|
// 회차 초기화
|
||||||
|
$('#srchSelSubsvcGnr').empty().append('<option value="">전체</option>').niceSelect('update');
|
||||||
|
// $('#srchSubsvcGnr option').filter(function() {
|
||||||
|
// return $(this).val() !== '';
|
||||||
|
// }).remove();
|
||||||
|
|
||||||
|
for (let i = 0; i < srchSubsvcGnrList.length; i++) {
|
||||||
|
const srchSubsvcGnr = srchSubsvcGnrList[i];
|
||||||
|
var check = "";
|
||||||
|
if(srchSubsvcGnr.subsvcGnr == '${resultMap.paramVO.srchSelSubsvcGnr}'){
|
||||||
|
check ="selected"
|
||||||
|
}
|
||||||
|
|
||||||
|
if(initFlag == true){
|
||||||
|
$('#srchSelSubsvcGnr').append('<option value="' + srchSubsvcGnr.subsvcGnr + '" '+ check+'>' + srchSubsvcGnr.subsvcGnrNm + '</option>');
|
||||||
|
fn_select_list();
|
||||||
|
initFlag = false;
|
||||||
|
}else{
|
||||||
|
$('#srchSelSubsvcGnr').append('<option value="' + srchSubsvcGnr.subsvcGnr + '">' + srchSubsvcGnr.subsvcGnrNm + '</option>');
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$('#srchSelSubsvcGnr').niceSelect('update');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (data) {
|
||||||
|
fn_proc_error_message(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 체크박스 전체 처리
|
||||||
|
* */
|
||||||
|
const fn_change_event = function (_target, _arg) {
|
||||||
|
if (_arg === 'all') {
|
||||||
|
|
||||||
|
if ($('#' + _target + '-all').is(':checked')) {
|
||||||
|
$('[name=' + _target + ']').prop('checked', true);
|
||||||
|
} else {
|
||||||
|
$('[name=' + _target + ']').prop('checked', false);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
let chkCnt = $('[name=' + _target + ']:checked').length;
|
||||||
|
let allCnt = $('[name=' + _target + ']').length;
|
||||||
|
if (chkCnt !== allCnt && $('#' + _target + '-all').is(':checked')) {
|
||||||
|
$('#' + _target + '-all').prop('checked', false);
|
||||||
|
} else if (chkCnt === allCnt) {
|
||||||
|
$('#' + _target + '-all').prop('checked', true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 관리자 주문 > 상품조회 > 검색조건 > 날짜 선택 이벤트 */
|
||||||
|
$(document).on('click', '.dateRange-btn', function () {
|
||||||
|
const date = $(this).attr('id');
|
||||||
|
|
||||||
|
$('.dateRange-btn').removeClass('selected');
|
||||||
|
$('#' + date).addClass('selected');
|
||||||
|
|
||||||
|
const datepicker = $(this).closest('.td-inner').find('.datepicker');
|
||||||
|
const start = $(datepicker[0]).attr('id');
|
||||||
|
const end = $(datepicker[1]).attr('id');
|
||||||
|
|
||||||
|
if ('allDays' === date) {
|
||||||
|
$('#' + start + ', #' + end).val('');
|
||||||
|
|
||||||
|
$('#datePeriod').val(date);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn_set_date(start, end, end, date);
|
||||||
|
|
||||||
|
$('#datePeriod').val(date);
|
||||||
|
});
|
||||||
|
|
||||||
|
//카테고리 선택시 카테고리 아이디 저장(검색용)
|
||||||
|
$(document).on('change', 'select[id^=ctgryDepth]', function () {
|
||||||
|
const ctgryOptn = $(this).val()
|
||||||
|
|
||||||
|
if(!fn_is_empty(ctgryOptn)){
|
||||||
|
$('#ctgryId').val(ctgryOptn)
|
||||||
|
}else{
|
||||||
|
//value가 ''인 카테고리 선택할경우
|
||||||
|
let currentCtgryDepth = parseInt($(this).attr('id').replace('ctgryDepth', ''));
|
||||||
|
|
||||||
|
//1차 카테고리가 아닐 경우 이전 카테고리 번호 가져오기
|
||||||
|
if(currentCtgryDepth !== 1){
|
||||||
|
$('#ctgryId').val($('#ctgryDepth' + (currentCtgryDepth - 1)).val())
|
||||||
|
}else{
|
||||||
|
//1차 카테고리 일경우 카테고리 번호 비우기
|
||||||
|
$('#ctgryId').val('')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
//초기화버튼
|
||||||
|
$(document).on('click', '#resetBtn', function () {
|
||||||
|
$('#listForm')[0].reset();
|
||||||
|
$('#srchSelSubsvcNm').niceSelect('update');
|
||||||
|
$('#srchSelSubsvcNm').trigger("change");
|
||||||
|
$('#srchSelSubsvcGnr').niceSelect('update');
|
||||||
|
|
||||||
|
fn_select_list(1);
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<body>
|
||||||
|
<%@ include file="/WEB-INF/views/comm/mngr/Header.jsp"%>
|
||||||
|
<main class="main">
|
||||||
|
<%@ include file="/WEB-INF/views/comm/mngr/Left.jsp"%>
|
||||||
|
<div class="content">
|
||||||
|
<div class="content__inner">
|
||||||
|
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
|
||||||
|
<div class="page-title">
|
||||||
|
<h2 class="page-title__title">구독서비스 구독자 조회</h2>
|
||||||
|
<div class="page-title__btn-container">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<form id='listForm' name="listForm" method="post" action="<c:url value="/mngr/ordr/subsvc/selectSubsvcOrdrMbrList"/>">
|
||||||
|
<input type="hidden" id="pageIndex" name="pageIndex" value="${ resultMap.paramVO.pageIndex }"/>
|
||||||
|
<input type="hidden" id="sortDv" name="sortDv" value="${ resultMap.paramVO.sortDv }">
|
||||||
|
<input type="hidden" id="pageUnit" name="pageUnit" value="${ resultMap.paramVO.pageUnit }">
|
||||||
|
<input type="hidden" id="subsvcInnb" name="subsvcInnb" value="">
|
||||||
|
<section class="content-section" id="search-section">
|
||||||
|
<div class="table-wrapper">
|
||||||
|
<table class="table">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 12%;">
|
||||||
|
<col>
|
||||||
|
<col style="width: 12%;">
|
||||||
|
<col>
|
||||||
|
</colgroup>
|
||||||
|
<tr>
|
||||||
|
<th>구독서비스</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<div class="td-inner">
|
||||||
|
<div class="select-box">
|
||||||
|
<select title="구독서비스" id="srchSelSubsvcNm" name="srchSelSubsvcNm">
|
||||||
|
<option value="" <c:if test="${ resultMap.paramVO.srchSelSubsvcNm eq ''}">selected="selected"</c:if>>전체</option>
|
||||||
|
<c:forEach items="${resultMap.srchSubsvcList}" var="srchSubsvc" varStatus="status">
|
||||||
|
<option value="${srchSubsvc.subsvcNm}" <c:if test="${ resultMap.paramVO.srchSelSubsvcNm eq srchSubsvc.subsvcNm}">selected="selected"</c:if>>${srchSubsvc.subsvcNm}</option>
|
||||||
|
</c:forEach>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="select-box">
|
||||||
|
<select title="구독서비스회차" id="srchSelSubsvcGnr" name="srchSelSubsvcGnr">
|
||||||
|
<option value="" <c:if test="${ resultMap.paramVO.srchSelSubsvcGnr eq ''}">selected="selected"</c:if>>전체</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>구독서비스명</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner">
|
||||||
|
<input class="input-text xl" type="text" title="구독서비스명" id="srchSubsvcNm" name="srchSubsvcNm" value="<c:out value="${ resultMap.paramVO.srchSubsvcNm }" />">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<th>기수명</th>
|
||||||
|
<td>
|
||||||
|
<div class="td-inner">
|
||||||
|
<input class="input-text xl" type="text" title="구독서비스명" id="srchSubsvcGnrNm" name="srchSubsvcGnrNm" value="<c:out value="${ resultMap.paramVO.srchSubsvcGnrNm }" />">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>구독종료여부</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<div class="td-inner">
|
||||||
|
<div class="custom-radio-container">
|
||||||
|
<div class="custom-radio">
|
||||||
|
<input type="radio" name="srchSubEndAt" id="srchSubEndAt1" value="" <c:if test="${resultMap.paramVO.srchSubEndAt ne 'Y'}">checked</c:if>>
|
||||||
|
<label for="srchSubEndAt1"/>전체</label>
|
||||||
|
<input type="radio" name="srchSubEndAt" id="srchSubEndAt2" value="Y"<c:if test="${resultMap.paramVO.srchSubEndAt eq 'Y'}">checked</c:if>>
|
||||||
|
<label for="srchSubEndAt2"/>진행중</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="form-control-container">
|
||||||
|
<div class="left"></div>
|
||||||
|
<div class="center">
|
||||||
|
<button class="btn outline" id="resetBtn" type="button">초기화</button>
|
||||||
|
<button class="btn primary" id="searchBtn" type="button" onclick="fn_select_list(1);"><spring:message code="button.search"/> </button>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<div id="pageDiv">
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="modalDiv">asfasdfasdaf</div>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -306,8 +306,16 @@
|
|||||||
event.preventDefault(); // 체크박스 상태 변경 방지
|
event.preventDefault(); // 체크박스 상태 변경 방지
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
<style>
|
||||||
|
.refund-clause {
|
||||||
|
border: 1px solid #e9ecef;
|
||||||
|
padding: clamp(12px, 3%, 18px);
|
||||||
|
margin-bottom: 16px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<body>
|
<body>
|
||||||
<%--시큐리티정보가져오기--%>
|
<%--시큐리티정보가져오기--%>
|
||||||
|
<c:set value = "${resultMap.clauseList}" var = "clauseList"/>
|
||||||
<c:set value = "${resultMap.regusrInfo}" var = "regusrInfo"/>
|
<c:set value = "${resultMap.regusrInfo}" var = "regusrInfo"/>
|
||||||
<c:set value = "${resultMap.bbscttVO}" var = "bbscttVO"/>
|
<c:set value = "${resultMap.bbscttVO}" var = "bbscttVO"/>
|
||||||
<c:set value = "${resultMap.bbsInfo}" var = "bbsInfo"/>
|
<c:set value = "${resultMap.bbsInfo}" var = "bbsInfo"/>
|
||||||
@@ -335,6 +343,11 @@
|
|||||||
</c:choose>
|
</c:choose>
|
||||||
<div class="table-wrapper">
|
<div class="table-wrapper">
|
||||||
<form id="bbsRegForm">
|
<form id="bbsRegForm">
|
||||||
|
<div class="refund-clause ck-content">
|
||||||
|
<c:out value="${clauseList[0].stplatNm}" escapeXml="false"/>
|
||||||
|
<br><br>
|
||||||
|
<c:out value="${clauseList[0].stplatCn}" escapeXml="false"/>
|
||||||
|
</div>
|
||||||
<table class="table write">
|
<table class="table write">
|
||||||
<caption>게시글 등록</caption>
|
<caption>게시글 등록</caption>
|
||||||
<colgroup>
|
<colgroup>
|
||||||
|
|||||||
@@ -265,7 +265,15 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
<style>
|
||||||
|
.refund-clause {
|
||||||
|
border: 1px solid #e9ecef;
|
||||||
|
padding: clamp(12px, 3%, 18px);
|
||||||
|
margin-bottom: 16px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<body>
|
<body>
|
||||||
|
<c:set value="${resultMap.clauseList}" var="clauseList"/>
|
||||||
<c:set value="${resultMap.regusrInfo}" var="regusrInfo"/>
|
<c:set value="${resultMap.regusrInfo}" var="regusrInfo"/>
|
||||||
<c:set value="${resultMap.bbscttVO}" var="bbscttVO"/>
|
<c:set value="${resultMap.bbscttVO}" var="bbscttVO"/>
|
||||||
<c:set value="${resultMap.bbsInfo}" var="bbsInfo"/>
|
<c:set value="${resultMap.bbsInfo}" var="bbsInfo"/>
|
||||||
@@ -284,6 +292,11 @@
|
|||||||
<div class="table-wrapper">
|
<div class="table-wrapper">
|
||||||
<form id="bbsRegForm">
|
<form id="bbsRegForm">
|
||||||
<input type='hidden' name='bbsTyCd' id='bbsTyCd' value='<c:out value="${bbsInfo.bbsTyCd}"/>'>
|
<input type='hidden' name='bbsTyCd' id='bbsTyCd' value='<c:out value="${bbsInfo.bbsTyCd}"/>'>
|
||||||
|
<div class="refund-clause ck-content">
|
||||||
|
<c:out value="${clauseList[0].stplatNm}" escapeXml="false"/>
|
||||||
|
<br><br>
|
||||||
|
<c:out value="${clauseList[0].stplatCn}" escapeXml="false"/>
|
||||||
|
</div>
|
||||||
<table class="table write">
|
<table class="table write">
|
||||||
<caption>게시글 등록</caption>
|
<caption>게시글 등록</caption>
|
||||||
<colgroup>
|
<colgroup>
|
||||||
|
|||||||
@@ -94,8 +94,7 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.box > span {
|
.box > .boxTitle {
|
||||||
width: 100%;
|
|
||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,7 +129,9 @@
|
|||||||
<c:when test="${not empty resultMap.subsvcList}">
|
<c:when test="${not empty resultMap.subsvcList}">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="box">
|
<div class="box">
|
||||||
|
<div class="boxTitle">
|
||||||
<span>구독서비스</span>
|
<span>구독서비스</span>
|
||||||
|
</div>
|
||||||
<div class="select-box">
|
<div class="select-box">
|
||||||
<select title="구독 서비스 선택" id="subsvcInnb" name="subsvcInnb" onchange="fn_select_subsvcDetail(this.value);">
|
<select title="구독 서비스 선택" id="subsvcInnb" name="subsvcInnb" onchange="fn_select_subsvcDetail(this.value);">
|
||||||
<c:forEach var="subsvcList" items="${resultMap.subsvcList}" varStatus="status">
|
<c:forEach var="subsvcList" items="${resultMap.subsvcList}" varStatus="status">
|
||||||
@@ -140,7 +141,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<span>구독서비스 내역</span>
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
구독기간 : <span id="subPd"></span>개월
|
구독기간 : <span id="subPd"></span>개월
|
||||||
@@ -151,14 +151,14 @@
|
|||||||
<li>
|
<li>
|
||||||
배송주기 : <span id="dlvyCycle"></span>
|
배송주기 : <span id="dlvyCycle"></span>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
상품금액 : <span id="cnsmrpric" class="product-unit-price__original"></span>
|
|
||||||
<span id="selpric" class="product-unit-price__current"></span>
|
|
||||||
<span id="dscntRaito" style="color: red">%</span>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
|
<div class="productDetailInfo__price__price boxTitle">
|
||||||
|
<span id="cnsmrpric" class="product-unit-price__original"></span>
|
||||||
|
<span id="selpric" class="product-unit-price__current"></span>
|
||||||
|
<span id="dscntRaito" style="color: red">%</span>
|
||||||
|
</div>
|
||||||
<button id="subscribeBtn" class="btn theme large">구독하기</button>
|
<button id="subscribeBtn" class="btn theme large">구독하기</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -168,7 +168,7 @@
|
|||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
|
|
||||||
<div id="subsvcDc">구독 서비스 상품 설명</div>
|
<div id="subsvcDc" class="ck-content">구독 서비스 상품 설명</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -89,6 +89,9 @@
|
|||||||
<input type="hidden" name="lnbAdres" class = "lnbAdres"value="<c:out value='${resultMap.lnbAdres}'/>" />
|
<input type="hidden" name="lnbAdres" class = "lnbAdres"value="<c:out value='${resultMap.lnbAdres}'/>" />
|
||||||
<input type="hidden" name="recpntNm" class = "recpntNmR" value="<c:out value='${resultMap.recpntNm}'/>" />
|
<input type="hidden" name="recpntNm" class = "recpntNmR" value="<c:out value='${resultMap.recpntNm}'/>" />
|
||||||
<input type="hidden" name="dtlAdres" class = "dtlAdres" value="<c:out value='${resultMap.dtlAdres}'/>" />
|
<input type="hidden" name="dtlAdres" class = "dtlAdres" value="<c:out value='${resultMap.dtlAdres}'/>" />
|
||||||
|
<input type="hidden" name="dlvylcAreaCd" class="dlvylcAreaCd" value="<c:out value='${resultMap.dlvylcAreaCd}'/>" />
|
||||||
|
<input type="hidden" name="prefcd" class="prefcd" value="<c:out value='${resultMap.prefcd}'/>" />
|
||||||
|
<input type="hidden" name="cstmclerCd" class="cstmclerCd" value="<c:out value='${resultMap.cstmclerCd}'/>" />
|
||||||
<input type="hidden" name="mbtlnb" class = "mbtlnb" value="<c:out value='${resultMap.mbtlnb}' />" />
|
<input type="hidden" name="mbtlnb" class = "mbtlnb" value="<c:out value='${resultMap.mbtlnb}' />" />
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</c:when>
|
</c:when>
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
<!-- 배송지 등록-->
|
<!-- 배송지 등록-->
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
$('#mbtlnbAlert').hide();
|
|
||||||
$('#postcodeAlert').hide();
|
$('#postcodeAlert').hide();
|
||||||
dlvylcFormPreValues = {};
|
dlvylcFormPreValues = {};
|
||||||
|
|
||||||
@@ -38,7 +37,7 @@
|
|||||||
<div id="dlvylcRegist" class="modal default" style="max-width: 600px;">
|
<div id="dlvylcRegist" class="modal default" style="max-width: 600px;">
|
||||||
<form id = "dlvylcRegistForm">
|
<form id = "dlvylcRegistForm">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<div class="modal-header__title">배송지 등록 (配送先登録)</div>
|
<div class="modal-header__title">배송지 등록</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="custom-radio-container">
|
<div class="custom-radio-container">
|
||||||
@@ -59,37 +58,32 @@
|
|||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="langKr">배송지명<span class="required-asterisk">*</span></th>
|
<th>배송지명<span class="required-asterisk">*</span></th>
|
||||||
<th class="langJp">配送先名<span class="required-asterisk">*</span></th>
|
|
||||||
<td>
|
<td>
|
||||||
<input type="text" class="m-input" name="dlvylcDcCn" title="배송지명" maxlength="67">
|
<input type="text" class="m-input" name="dlvylcDcCn" title="배송지명" maxlength="67">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="langKr">받으시는 분<span class="required-asterisk">*</span></th>
|
<th>받으시는 분<span class="required-asterisk">*</span></th>
|
||||||
<th class="langJp">お届け先<span class="required-asterisk">*</span></th>
|
|
||||||
<td>
|
<td>
|
||||||
<input type="text" class="m-input" title="받으시는 분" name="recpntNm" title="받으시는 분" maxlength="13">
|
<input type="text" class="m-input" title="받으시는 분" name="recpntNm" title="받으시는 분" maxlength="13">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="langKr">배송지 주소<span class="required-asterisk">*</span></th>
|
<th>배송지 주소<span class="required-asterisk">*</span></th>
|
||||||
<th class="langJp">郵便番号<span class="required-asterisk">*</span></th>
|
|
||||||
<td>
|
<td>
|
||||||
<input type="text" class="m-input short" id="zip" name="zip" title="우편번호" maxlength="7" readonly>
|
<input type="text" class="m-input short" id="zip" name="zip" title="우편번호" maxlength="7" readonly>
|
||||||
<button class="find-address-btn langKr" onclick="fn_select_postcode(fn_select_dlvylc_postcode); return false;">우편번호 찾기</button>
|
<button class="find-address-btn langKr" onclick="fn_select_postcode(fn_select_dlvylc_postcode); return false;">우편번호 찾기</button>
|
||||||
<button class="find-address-btn langJp" onclick="fn_select_postcodeJp(); return false;">検索</button>
|
<button class="find-address-btn langJp" onclick="fn_select_postcodeJp(); return false;">주소 찾기</button>
|
||||||
<p class="signUp__inputBox__alertText" id="postcodeAlert">郵便番号を正しく入力してください。</p>
|
<p class="signUp__inputBox__alertText" id="postcodeAlert">우편번호를 정확하게 입력해 주세요.</p>
|
||||||
<input type="text" class="m-input long my" id="adres" name="adres" maxlength="66" readonly title="주소">
|
<input type="text" class="m-input long my" id="adres" name="adres" maxlength="66" readonly title="주소">
|
||||||
<input type="text" class="m-input long" id="dtlAdres" name="dtlAdres" title="상세주소" maxlength="66" placeholder="나머지 주소를 입력해 주세요">
|
<input type="text" class="m-input long" id="dtlAdres" name="dtlAdres" title="상세주소" maxlength="66" placeholder="나머지 주소를 입력해 주세요">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="langKr">휴대전화번호<span class="required-asterisk">*</span></th>
|
<th>휴대전화번호<span class="required-asterisk">*</span></th>
|
||||||
<th class="langJp">電話番号<span class="required-asterisk">*</span></th>
|
|
||||||
<td>
|
<td>
|
||||||
<input id="mbtlnb" name="mbtlnb" type="text" class="m-input telno" title="휴대전화번호" maxlength="13" placeholder="휴대폰번호'-'없이 입력하세요">
|
<input id="mbtlnb" name="mbtlnb" type="text" class="m-input telno" title="휴대전화번호" maxlength="13" placeholder="휴대폰번호'-'없이 입력하세요">
|
||||||
<p class="userform__inputBox__alertText langJp" id="mbtlnbAlert">電話番号をハイフンなしで入力してください。</p>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="langKr">
|
<tr class="langKr">
|
||||||
@@ -97,7 +91,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<input type="text" class="m-input" id="cstmclerCd" name="cstmclerCd" title="개인통관번호(개인통관부호)" maxlength="13" placeholder="P로 시작하는 13자리 부호를 입력하세요">
|
<input type="text" class="m-input" id="cstmclerCd" name="cstmclerCd" title="개인통관번호(개인통관부호)" maxlength="13" placeholder="P로 시작하는 13자리 부호를 입력하세요">
|
||||||
<button class="find-address-btn" onclick="window.open('https://unipass.customs.go.kr/per/persIndex.do', '_blank'); return false;">통관번호 조회</button>
|
<button class="find-address-btn" onclick="window.open('https://unipass.customs.go.kr/per/persIndex.do', '_blank'); return false;">통관번호 조회</button>
|
||||||
<input type="hidden" class="m-input" id="prefcode" name="prefCd">
|
<input type="hidden" class="m-input" id="prefcode" name="prefcd">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@@ -106,17 +100,13 @@
|
|||||||
<label class="b-checkbox checkbox is-medium">
|
<label class="b-checkbox checkbox is-medium">
|
||||||
<input type="checkbox" id="dftDlvylcAt" name="dftDlvylcAt" value="Y">
|
<input type="checkbox" id="dftDlvylcAt" name="dftDlvylcAt" value="Y">
|
||||||
<span class="check"></span>
|
<span class="check"></span>
|
||||||
<span class="control-label langKr">기본 배송지</span>
|
<span class="control-label">기본 배송지</span>
|
||||||
<span class="control-label langJp">既定の配送先</span>
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="shipping-btn-container">
|
<div class="shipping-btn-container">
|
||||||
<a href="#" rel="modal:close" class="btn large outline langKr">취소</a>
|
<a href="#" rel="modal:close" class="btn large outline">취소</a>
|
||||||
<a href="#" rel="modal:close" class="btn large outline langJp">キャンセル</a>
|
<button type="button" class="btn theme large"
|
||||||
<button type="button" class="btn theme large langKr"
|
|
||||||
onclick="fn_insert_dlvylc('<spring:message code='success.common.insert'/>'); return false;">등록하기</button>
|
onclick="fn_insert_dlvylc('<spring:message code='success.common.insert'/>'); return false;">등록하기</button>
|
||||||
<button type="button" class="btn theme large langJp"
|
|
||||||
onclick="fn_insert_dlvylc('<spring:message code='success.common.insert'/>'); return false;">登録</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" id="adresDv" name="adresDv">
|
<input type="hidden" id="adresDv" name="adresDv">
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
<script>
|
<script>
|
||||||
$(document).ready(function (){
|
$(document).ready(function (){
|
||||||
$("#mbtlnb").val(fn_format_mbtlnb($("#mbtlnb").val()));
|
$("#mbtlnb").val(fn_format_mbtlnb($("#mbtlnb").val()));
|
||||||
$('#mbtlnbAlert').hide();
|
|
||||||
$('#postcodeAlert').hide();
|
$('#postcodeAlert').hide();
|
||||||
dlvylcFormPreValues = {};
|
dlvylcFormPreValues = {};
|
||||||
|
|
||||||
@@ -38,7 +37,7 @@
|
|||||||
<div id="dlvylcUpdate" class="modal default" style="max-width: 600px;">
|
<div id="dlvylcUpdate" class="modal default" style="max-width: 600px;">
|
||||||
<form id="dlvylcUpdtForm" name="dlvylcUpdtForm" action="<c:url value="/crm/dlvylc/updateDlvylcUpdt"/>" method="post">
|
<form id="dlvylcUpdtForm" name="dlvylcUpdtForm" action="<c:url value="/crm/dlvylc/updateDlvylcUpdt"/>" method="post">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<div class="modal-header__title">배송지 수정 (配送先変更)</div>
|
<div class="modal-header__title">배송지 수정</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="custom-radio-container">
|
<div class="custom-radio-container">
|
||||||
@@ -59,27 +58,24 @@
|
|||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="langKr">배송지명<span class="required-asterisk">*</span></th>
|
<th>배송지명<span class="required-asterisk">*</span></th>
|
||||||
<th class="langJp">配送先名<span class="required-asterisk">*</span></th>
|
|
||||||
<td>
|
<td>
|
||||||
<input type="text" class="m-input" name="dlvylcDcCn" title="배송지명" value="<c:out value = "${dtlDlvylc.resultVO.dlvylcDcCn}" />" maxlength="67">
|
<input type="text" class="m-input" name="dlvylcDcCn" title="배송지명" value="<c:out value = "${dtlDlvylc.resultVO.dlvylcDcCn}" />" maxlength="67">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="langKr">받으시는 분<span class="required-asterisk">*</span></th>
|
<th>받으시는 분<span class="required-asterisk">*</span></th>
|
||||||
<th class="langJp">お届け先<span class="required-asterisk">*</span></th>
|
|
||||||
<td>
|
<td>
|
||||||
<input type="text" class="m-input" title="받으시는 분" name="recpntNm" title="받으시는 분" value="<c:out value="${dtlDlvylc.resultVO.recpntNm}" />" maxlength="13">
|
<input type="text" class="m-input" title="받으시는 분" name="recpntNm" title="받으시는 분" value="<c:out value="${dtlDlvylc.resultVO.recpntNm}" />" maxlength="13">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="langKr">배송지 주소<span class="required-asterisk">*</span></th>
|
<th>배송지 주소<span class="required-asterisk">*</span></th>
|
||||||
<th class="langJp">郵便番号<span class="required-asterisk">*</span></th>
|
|
||||||
<td>
|
<td>
|
||||||
<input type="text" class="m-input short" id="zip" name="zip" title="우편번호" value="<c:out value = "${dtlDlvylc.resultVO.zip}"/>" maxlength="7" readonly>
|
<input type="text" class="m-input short" id="zip" name="zip" title="우편번호" value="<c:out value = "${dtlDlvylc.resultVO.zip}"/>" maxlength="7" readonly>
|
||||||
<button class="find-address-btn langKr" onclick="fn_select_postcode(fn_select_dlvylc_postcode); return false;">우편번호 찾기</button>
|
<button class="find-address-btn langKr" onclick="fn_select_postcode(fn_select_dlvylc_postcode); return false;">우편번호 찾기</button>
|
||||||
<button class="find-address-btn langJp" onclick="fn_select_postcodeJp(); return false;">検索</button>
|
<button class="find-address-btn langJp" onclick="fn_select_postcodeJp(); return false;">주소 찾기</button>
|
||||||
<p class="signUp__inputBox__alertText" id="postcodeAlert">郵便番号を正しく入力してください。</p>
|
<p class="signUp__inputBox__alertText" id="postcodeAlert">우편번호를 정확하게 입력해 주세요.</p>
|
||||||
<input type="text" class="m-input long my" id="adres" name="adres" title="주소" maxlength="66"
|
<input type="text" class="m-input long my" id="adres" name="adres" title="주소" maxlength="66"
|
||||||
value=<c:choose>
|
value=<c:choose>
|
||||||
<c:when test = "${dtlDlvylc.resultVO.adresDv eq '01'}">'<c:out value = "${dtlDlvylc.resultVO.rnmAdres}"/>'</c:when>
|
<c:when test = "${dtlDlvylc.resultVO.adresDv eq '01'}">'<c:out value = "${dtlDlvylc.resultVO.rnmAdres}"/>'</c:when>
|
||||||
@@ -90,12 +86,10 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="langKr">휴대전화번호<span class="required-asterisk">*</span></th>
|
<th>휴대전화번호<span class="required-asterisk">*</span></th>
|
||||||
<th class="langJp">電話番号<span class="required-asterisk">*</span></th>
|
|
||||||
<td>
|
<td>
|
||||||
<input id="mbtlnb" name="mbtlnb" type="text" class="m-input telno" title="휴대전화번호" value="<c:out value = "${dtlDlvylc.resultVO.mbtlnb}"/>"
|
<input id="mbtlnb" name="mbtlnb" type="text" class="m-input telno" title="휴대전화번호" value="<c:out value = "${dtlDlvylc.resultVO.mbtlnb}"/>"
|
||||||
maxlength="13" placeholder="휴대폰번호'-'없이 입력하세요">
|
maxlength="13" placeholder="휴대폰번호'-'없이 입력하세요">
|
||||||
<p class="userform__inputBox__alertText langJp" id="mbtlnbAlert">電話番号をハイフンなしで入力してください。</p>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="langKr">
|
<tr class="langKr">
|
||||||
@@ -104,7 +98,7 @@
|
|||||||
<input type="text" class="m-input" id="cstmclerCd" name="cstmclerCd" title="개인통관번호(개인통관부호)" value="<c:out value = "${dtlDlvylc.resultVO.cstmclerCd}"/>"
|
<input type="text" class="m-input" id="cstmclerCd" name="cstmclerCd" title="개인통관번호(개인통관부호)" value="<c:out value = "${dtlDlvylc.resultVO.cstmclerCd}"/>"
|
||||||
maxlength="13" placeholder="P로 시작하는 13자리 부호를 입력하세요">
|
maxlength="13" placeholder="P로 시작하는 13자리 부호를 입력하세요">
|
||||||
<button class="find-address-btn" onclick="window.open('https://unipass.customs.go.kr/per/persIndex.do', '_blank'); return false;">통관번호 조회</button>
|
<button class="find-address-btn" onclick="window.open('https://unipass.customs.go.kr/per/persIndex.do', '_blank'); return false;">통관번호 조회</button>
|
||||||
<input type="hidden" class="m-input" id="prefcode" name="prefCd">
|
<input type="hidden" class="m-input" id="prefcode" name="prefcd" value="<c:out value = '${dtlDlvylc.resultVO.prefcd}'/>">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@@ -19,11 +19,11 @@
|
|||||||
<div class="orderList__description">
|
<div class="orderList__description">
|
||||||
<div class="orderList__description__first">
|
<div class="orderList__description__first">
|
||||||
<div class="orderList__item__top">
|
<div class="orderList__item__top">
|
||||||
<a href="javascript:void(0);" onclick="fn_go_subscribe_dtl('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>');" class="orderList__orderNum"><c:out value="${order.ordrInnb}"/></a>
|
<a href="javascript:void(0);" onclick="fn_go_subsvc_dtl('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>');" class="orderList__orderNum"><c:out value="${order.ordrInnb}"/></a>
|
||||||
<span class="orderList__dot">·</span>
|
<span class="orderList__dot">·</span>
|
||||||
<span class="orderList__date"><c:out value="${order.ordrDt}"/> <span class="orderList__dot">·</span> ${order.ordrTyCdNm}</span>
|
<span class="orderList__date"><c:out value="${order.ordrDt}"/> <span class="orderList__dot">·</span> ${order.ordrTyCdNm}</span>
|
||||||
</div>
|
</div>
|
||||||
<a href="javascript:void(0);" onclick="fn_go_subscribe_dtl('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>');" class="orderList__productTitle"><c:out value="${order.goodsNm}"/></a>
|
<a href="javascript:void(0);" onclick="fn_go_subsvc_dtl('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>');" class="orderList__productTitle"><c:out value="${order.goodsNm}"/></a>
|
||||||
<%--<span class="orderList__option"><c:out value="${order.optnNm}"/></span>--%>
|
<%--<span class="orderList__option"><c:out value="${order.optnNm}"/></span>--%>
|
||||||
<span class="cartItem__productOption"><span class="option-badge">옵션</span> <c:out value="${order.optnNm}"/></span>
|
<span class="cartItem__productOption"><span class="option-badge">옵션</span> <c:out value="${order.optnNm}"/></span>
|
||||||
<c:if test="${not empty order.inputOptnText}">
|
<c:if test="${not empty order.inputOptnText}">
|
||||||
|
|||||||
@@ -641,13 +641,13 @@
|
|||||||
|
|
||||||
|
|
||||||
/* 구독상세 이동 */
|
/* 구독상세 이동 */
|
||||||
const fn_go_subscribe_dtl = function (sopmalCd, ordrInnb) {
|
const fn_go_subsvc_dtl = function (sopmalCd, ordrInnb) {
|
||||||
var form = $('#condForm');
|
var form = $('#condForm');
|
||||||
|
|
||||||
$(form).append($('<input/>', {type: 'hidden', name: 'ordrInnb', id: 'ordrInnb', value: ordrInnb}));
|
$(form).append($('<input/>', {type: 'hidden', name: 'ordrInnb', id: 'ordrInnb', value: ordrInnb}));
|
||||||
|
|
||||||
$(form).attr('method', 'get');
|
$(form).attr('method', 'get');
|
||||||
$(form).attr('action', '<c:url value="/sopmal/mpage/ordr/selectMbrOrdrDtlInqire"/>');
|
$(form).attr('action', '<c:url value="/sopmal/mpage/ordr/selectMbrSubsvcOrdrDtlInqire"/>');
|
||||||
|
|
||||||
$(form).submit();
|
$(form).submit();
|
||||||
}
|
}
|
||||||
|
|||||||
1664
src/main/webapp/WEB-INF/views/sopmal/mpage/ordr/SubsvcOrdrDtlR.jsp
Normal file
1664
src/main/webapp/WEB-INF/views/sopmal/mpage/ordr/SubsvcOrdrDtlR.jsp
Normal file
File diff suppressed because it is too large
Load Diff
@@ -64,6 +64,8 @@
|
|||||||
|
|
||||||
const isDftDlvylc = $('#isDftDlvylc').val();
|
const isDftDlvylc = $('#isDftDlvylc').val();
|
||||||
const dlvylcZip = $('#dlvylcZip').val();
|
const dlvylcZip = $('#dlvylcZip').val();
|
||||||
|
const dlvylcAreaCd = $('#dlvylcAreaCd').val();
|
||||||
|
const prefcd = $('#prefcd').val();
|
||||||
|
|
||||||
if ('N' === isDftDlvylc) {
|
if ('N' === isDftDlvylc) {
|
||||||
$('input[name="dlvylcDvCd"][value="New"]').trigger('click');
|
$('input[name="dlvylcDvCd"][value="New"]').trigger('click');
|
||||||
@@ -71,6 +73,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
localStorage.setItem("dlvylcZip", dlvylcZip);
|
localStorage.setItem("dlvylcZip", dlvylcZip);
|
||||||
|
localStorage.setItem("dlvylcAreaCd", dlvylcAreaCd);
|
||||||
|
localStorage.setItem("prefcd", prefcd);
|
||||||
|
|
||||||
const mbrDvCd = $('#mbrDvCd').val();
|
const mbrDvCd = $('#mbrDvCd').val();
|
||||||
const mbrId = $('#mbrId').val();
|
const mbrId = $('#mbrId').val();
|
||||||
@@ -170,7 +174,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
const dlvylcZip = $('#dlvylcZip').val();
|
const dlvylcZip = $('#dlvylcZip').val();
|
||||||
|
const dlvylcAreaCd = $('#dlvylcAreaCd').val();
|
||||||
|
const prefcd = $('#prefcd').val();
|
||||||
localStorage.setItem("dlvylcZip", dlvylcZip);
|
localStorage.setItem("dlvylcZip", dlvylcZip);
|
||||||
|
localStorage.setItem("dlvylcAreaCd", dlvylcAreaCd);
|
||||||
|
localStorage.setItem("prefcd", prefcd);
|
||||||
|
|
||||||
fn_get_setle_amt();
|
fn_get_setle_amt();
|
||||||
|
|
||||||
if ($(this).val() === 'Gift') {
|
if ($(this).val() === 'Gift') {
|
||||||
@@ -891,6 +900,8 @@
|
|||||||
$('#dlvylcRnmAdres').val(parseJson.dftDlvylc.rnmAdres);
|
$('#dlvylcRnmAdres').val(parseJson.dftDlvylc.rnmAdres);
|
||||||
$('#dlvylcAdresDtl').val(parseJson.dftDlvylc.dtlAdres);
|
$('#dlvylcAdresDtl').val(parseJson.dftDlvylc.dtlAdres);
|
||||||
$('#recpntMbtlnb').val(parseJson.dftDlvylc.mbtlnb);
|
$('#recpntMbtlnb').val(parseJson.dftDlvylc.mbtlnb);
|
||||||
|
$('#dlvylcAreaCd').val(parseJson.dftDlvylc.dlvylcAreaCd);
|
||||||
|
$('#prefcd').val(parseJson.dftDlvylc.prefcd);
|
||||||
|
|
||||||
let adress = '(' + $('#dlvylcZip').val() + ')' + parseJson.dftDlvylc.adres + $('#dlvylcAdresDtl').val();
|
let adress = '(' + $('#dlvylcZip').val() + ')' + parseJson.dftDlvylc.adres + $('#dlvylcAdresDtl').val();
|
||||||
|
|
||||||
@@ -1054,6 +1065,8 @@
|
|||||||
let mngrFreeDlvyUseAt = $(form).find('input[name="mngrFreeDlvyUseAt"]').val();
|
let mngrFreeDlvyUseAt = $(form).find('input[name="mngrFreeDlvyUseAt"]').val();
|
||||||
|
|
||||||
let dlvylcZip = '';
|
let dlvylcZip = '';
|
||||||
|
let dlvylcAreaCd = '';
|
||||||
|
let prefcd = '';
|
||||||
let recpntNm = '';
|
let recpntNm = '';
|
||||||
let recpntMbtlnb = '';
|
let recpntMbtlnb = '';
|
||||||
let dlvylcAdresDvCd = '';
|
let dlvylcAdresDvCd = '';
|
||||||
@@ -1065,6 +1078,8 @@
|
|||||||
if ('Default' === dlvylcDvCd) {
|
if ('Default' === dlvylcDvCd) {
|
||||||
if (idx < 1) { // 첫번째 배송지만
|
if (idx < 1) { // 첫번째 배송지만
|
||||||
dlvylcZip = $(form).find('#dlvylcZip').val();
|
dlvylcZip = $(form).find('#dlvylcZip').val();
|
||||||
|
dlvylcAreaCd = $(form).find('#dlvylcAreaCd').val();
|
||||||
|
prefcd = $(form).find('#prefcd').val();
|
||||||
recpntNm = $(form).find('#recpntNm').val();
|
recpntNm = $(form).find('#recpntNm').val();
|
||||||
recpntMbtlnb = $(form).find('#recpntMbtlnb').val();
|
recpntMbtlnb = $(form).find('#recpntMbtlnb').val();
|
||||||
dlvylcAdresDvCd = $(form).find('#dlvylcAdresDvCd').val();
|
dlvylcAdresDvCd = $(form).find('#dlvylcAdresDvCd').val();
|
||||||
@@ -1074,6 +1089,8 @@
|
|||||||
dlvyMssageCn = $(form).find('#dlvyMssageCn').val();
|
dlvyMssageCn = $(form).find('#dlvyMssageCn').val();
|
||||||
} else { // 나머지 배송지
|
} else { // 나머지 배송지
|
||||||
dlvylcZip = $(form).find('input[name="dlvylcZip"]').val();
|
dlvylcZip = $(form).find('input[name="dlvylcZip"]').val();
|
||||||
|
dlvylcAreaCd = $(form).find('#dlvylcAreaCd').val();
|
||||||
|
prefcd = $(form).find('#prefcd').val();
|
||||||
recpntNm = $(form).find('input[name="recpntNm"]').val();
|
recpntNm = $(form).find('input[name="recpntNm"]').val();
|
||||||
recpntMbtlnb = $(form).find('input[name="recpntMbtlnb"]').val();
|
recpntMbtlnb = $(form).find('input[name="recpntMbtlnb"]').val();
|
||||||
dlvylcAdresDvCd = $(form).find('input[name="dlvylcAdresDvCd"]').val();
|
dlvylcAdresDvCd = $(form).find('input[name="dlvylcAdresDvCd"]').val();
|
||||||
@@ -1084,6 +1101,8 @@
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dlvylcZip = $(form).find('input[name="dlvylcZip"]').val();
|
dlvylcZip = $(form).find('input[name="dlvylcZip"]').val();
|
||||||
|
dlvylcAreaCd = $(form).find('#dlvylcAreaCd').val();
|
||||||
|
prefcd = $(form).find('#prefcd').val();
|
||||||
recpntNm = $(form).find('input[name="recpntNm"]').val();
|
recpntNm = $(form).find('input[name="recpntNm"]').val();
|
||||||
recpntMbtlnb = $(form).find('input[name="recpntMbtlnb"]').val();
|
recpntMbtlnb = $(form).find('input[name="recpntMbtlnb"]').val();
|
||||||
dlvylcAdresDvCd = $(form).find('input[name="dlvylcAdresDvCd"]').val();
|
dlvylcAdresDvCd = $(form).find('input[name="dlvylcAdresDvCd"]').val();
|
||||||
@@ -1102,6 +1121,8 @@
|
|||||||
otrCouponSmtmUseAt: otrCouponSmtmUseAt,
|
otrCouponSmtmUseAt: otrCouponSmtmUseAt,
|
||||||
mngrFreeDlvyUseAt: mngrFreeDlvyUseAt,
|
mngrFreeDlvyUseAt: mngrFreeDlvyUseAt,
|
||||||
dlvylcZip: dlvylcZip,
|
dlvylcZip: dlvylcZip,
|
||||||
|
dlvylcAreaCd: dlvylcAreaCd,
|
||||||
|
prefcd: prefcd,
|
||||||
recpntNm: recpntNm,
|
recpntNm: recpntNm,
|
||||||
recpntMbtlnb: recpntMbtlnb,
|
recpntMbtlnb: recpntMbtlnb,
|
||||||
dlvylcAdresDvCd: dlvylcAdresDvCd,
|
dlvylcAdresDvCd: dlvylcAdresDvCd,
|
||||||
@@ -1468,6 +1489,8 @@
|
|||||||
html += ' <input type="hidden" name="dlvylcAdresDvCd" class="new">';
|
html += ' <input type="hidden" name="dlvylcAdresDvCd" class="new">';
|
||||||
html += ' <input type="hidden" name="dlvylcLnbAdres" class="new">';
|
html += ' <input type="hidden" name="dlvylcLnbAdres" class="new">';
|
||||||
html += ' <input type="hidden" name="dlvylcRnmAdres" class="new">';
|
html += ' <input type="hidden" name="dlvylcRnmAdres" class="new">';
|
||||||
|
html += ' <input type="hidden" name="dlvylcAreaCd" class="new">';
|
||||||
|
html += ' <input type="hidden" name="prefcd" class="new">';
|
||||||
html += ' </div>';
|
html += ' </div>';
|
||||||
html += ' </td>';
|
html += ' </td>';
|
||||||
html += ' </tr>';
|
html += ' </tr>';
|
||||||
@@ -1801,14 +1824,41 @@
|
|||||||
|
|
||||||
$(form).find('input[name="recpntMbtlnb"]').val(mbtlnb);
|
$(form).find('input[name="recpntMbtlnb"]').val(mbtlnb);
|
||||||
$(form).find('input[name="dlvylcZip"]').val(data.postcode);
|
$(form).find('input[name="dlvylcZip"]').val(data.postcode);
|
||||||
|
$(form).find('input[name="dlvylcAreaCd"]').val(data.dlvylcAreaCd);
|
||||||
|
$(form).find('input[name="prefcd"]').val(data.prefcd);
|
||||||
|
$(form).find('input[name="cstmclerCd"]').val(data.cstmclerCd);
|
||||||
$(form).find('input[name="dlvylcAdresDvCd"]').val(data.addressType);
|
$(form).find('input[name="dlvylcAdresDvCd"]').val(data.addressType);
|
||||||
$(form).find('input[name="dlvylcLnbAdres"]').val(data.jibunAddress);
|
$(form).find('input[name="dlvylcLnbAdres"]').val(data.jibunAddress);
|
||||||
$(form).find('input[name="dlvylcRnmAdres"]').val(data.roadAddress);
|
$(form).find('input[name="dlvylcRnmAdres"]').val(data.roadAddress);
|
||||||
$(form).find('input[name="dlvylcAdresDtl"]').val(data.dtlAdres);
|
$(form).find('input[name="dlvylcAdresDtl"]').val(data.dtlAdres);
|
||||||
$(form).find('input[name="dlvylcAdres"]').val('01' === $(form).find('input[name="dlvylcAdresDvCd"]').val() ? $(form).find('input[name="dlvylcRnmAdres"]').val() : $(form).find('input[name="dlvylcLnbAdres"]').val());
|
$(form).find('input[name="dlvylcAdres"]').val('01' === $(form).find('input[name="dlvylcAdresDvCd"]').val() ? $(form).find('input[name="dlvylcRnmAdres"]').val() : $(form).find('input[name="dlvylcLnbAdres"]').val());
|
||||||
|
|
||||||
|
// localStorage.setItem("dlvylcAreaCd", dlvylcAreaCd);
|
||||||
|
// localStorage.setItem("dlvylcAreaCd", dlvylcAreaCd);
|
||||||
|
// localStorage.setItem("dlvylcAreaCd", dlvylcAreaCd);
|
||||||
|
// localStorage.setItem("dlvylcAreaCd", dlvylcAreaCd);
|
||||||
|
// localStorage.setItem("dlvylcAreaCd", dlvylcAreaCd);
|
||||||
|
// localStorage.setItem("dlvylcAreaCd", dlvylcAreaCd);
|
||||||
|
// localStorage.setItem("dlvylcAreaCd", dlvylcAreaCd);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// setle['sopmalCd'] = $('#sopmalCd').val();
|
||||||
|
// setle['dlvylc'] = JSON.parse(localStorage.getItem('dlvylc'));
|
||||||
|
// setle['goodsList'] = JSON.parse(localStorage.getItem('goodsList'));
|
||||||
|
// setle['enuri'] = JSON.parse(localStorage.getItem('enuri'));
|
||||||
|
// setle['dlvylcZip'] = localStorage.getItem('dlvylcZip');
|
||||||
|
// setle['dlvylcAreaCd'] = localStorage.getItem('dlvylcAreaCd');
|
||||||
|
// setle['prefcd'] = localStorage.getItem('prefcd');
|
||||||
|
// setle['multiOrdrDlvylc'] = JSON.parse(localStorage.getItem('multiOrdrDlvylc'));
|
||||||
|
// setle['ordrTyCd'] = $('input[name="ordrTy"]:checked').val();
|
||||||
|
|
||||||
|
// 배송지 정보 세팅 이후 결제예정금액 재계산
|
||||||
|
fn_get_setle_amt();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 배송지정보 > 배송지 쿠폰 목록 조회 */
|
/* 배송지정보 > 배송지 쿠폰 목록 조회 */
|
||||||
@@ -2427,11 +2477,22 @@
|
|||||||
const fn_get_setle_amt = function() {
|
const fn_get_setle_amt = function() {
|
||||||
let setle = {};
|
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['sopmalCd'] = $('#sopmalCd').val();
|
||||||
setle['dlvylc'] = JSON.parse(localStorage.getItem('dlvylc'));
|
setle['dlvylc'] = JSON.parse(localStorage.getItem('dlvylc'));
|
||||||
setle['goodsList'] = JSON.parse(localStorage.getItem('goodsList'));
|
setle['goodsList'] = JSON.parse(localStorage.getItem('goodsList'));
|
||||||
setle['enuri'] = JSON.parse(localStorage.getItem('enuri'));
|
setle['enuri'] = JSON.parse(localStorage.getItem('enuri'));
|
||||||
setle['dlvylcZip'] = localStorage.getItem('dlvylcZip');
|
setle['dlvylcZip'] = localStorage.getItem('dlvylcZip');
|
||||||
|
setle['dlvylcAreaCd'] = localStorage.getItem('dlvylcAreaCd');
|
||||||
|
setle['prefcd'] = localStorage.getItem('prefcd');
|
||||||
setle['multiOrdrDlvylc'] = JSON.parse(localStorage.getItem('multiOrdrDlvylc'));
|
setle['multiOrdrDlvylc'] = JSON.parse(localStorage.getItem('multiOrdrDlvylc'));
|
||||||
setle['ordrTyCd'] = $('input[name="ordrTy"]:checked').val();
|
setle['ordrTyCd'] = $('input[name="ordrTy"]:checked').val();
|
||||||
|
|
||||||
@@ -2695,6 +2756,10 @@
|
|||||||
order['shipping'] = dlvylc;
|
order['shipping'] = dlvylc;
|
||||||
/* 배송지 정합성 검사 종료 */
|
/* 배송지 정합성 검사 종료 */
|
||||||
|
|
||||||
|
order['dlvylcZip'] = localStorage.getItem('dlvylcZip');
|
||||||
|
order['dlvylcAreaCd'] = localStorage.getItem('dlvylcAreaCd');
|
||||||
|
order['prefcd'] = localStorage.getItem('prefcd');
|
||||||
|
|
||||||
/* 여러곳 배송 > 배송지별 정합성 검사 시작 */
|
/* 여러곳 배송 > 배송지별 정합성 검사 시작 */
|
||||||
if (ordrTyCd === '05') { // 여러곳 배송
|
if (ordrTyCd === '05') { // 여러곳 배송
|
||||||
|
|
||||||
@@ -3503,11 +3568,12 @@
|
|||||||
<%-- </c:if>--%>
|
<%-- </c:if>--%>
|
||||||
</div>
|
</div>
|
||||||
<a href="javascript:void(0);" id="btnDlvylcMngr" class="btn md outline orderInfo__editBtn btnDlvylcMngr presentArea" style="display: none;">배송지 관리</a>
|
<a href="javascript:void(0);" id="btnDlvylcMngr" class="btn md outline orderInfo__editBtn btnDlvylcMngr presentArea" style="display: none;">배송지 관리</a>
|
||||||
<label class="b-checkbox checkbox">
|
<%--일본 배송지 추가 - 일부 기능 삭제--%>
|
||||||
<input type="checkbox" class="ordrrInfoSet" value="">
|
<%-- <label class="b-checkbox checkbox">--%>
|
||||||
<span class="check"></span>
|
<%-- <input type="checkbox" class="ordrrInfoSet" value="">--%>
|
||||||
<span class="control-label">주문자와 동일</span>
|
<%-- <span class="check"></span>--%>
|
||||||
</label>
|
<%-- <span class="control-label">주문자와 동일</span>--%>
|
||||||
|
<%-- </label>--%>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<!-- 기본 배송지 선택 시 Start -->
|
<!-- 기본 배송지 선택 시 Start -->
|
||||||
@@ -3523,6 +3589,8 @@
|
|||||||
<td>
|
<td>
|
||||||
<input type="hidden" id="dlvylcAdresDvCd" class="dft" value="<c:out value="${dftDlvylc.adresDv}"/>">
|
<input type="hidden" id="dlvylcAdresDvCd" class="dft" value="<c:out value="${dftDlvylc.adresDv}"/>">
|
||||||
<input type="hidden" id="dlvylcZip" class="dft" value="<c:out value="${dftDlvylc.zip}"/>">
|
<input type="hidden" id="dlvylcZip" class="dft" value="<c:out value="${dftDlvylc.zip}"/>">
|
||||||
|
<input type="hidden" id="dlvylcAreaCd" class="dft" value="<c:out value="${dftDlvylc.dlvylcAreaCd}"/>">
|
||||||
|
<input type="hidden" id="prefcd" class="dft" value="<c:out value="${dftDlvylc.prefcd}"/>">
|
||||||
<input type="hidden" id="dlvylcLnbAdres" class="dft" value="<c:out value="${dftDlvylc.lnbAdres}"/>">
|
<input type="hidden" id="dlvylcLnbAdres" class="dft" value="<c:out value="${dftDlvylc.lnbAdres}"/>">
|
||||||
<input type="hidden" id="dlvylcRnmAdres" class="dft" value="<c:out value="${dftDlvylc.rnmAdres}"/>">
|
<input type="hidden" id="dlvylcRnmAdres" class="dft" value="<c:out value="${dftDlvylc.rnmAdres}"/>">
|
||||||
<input type="hidden" id="dlvylcAdresDtl" class="dft" value="<c:out value="${dftDlvylc.dtlAdres}"/>">
|
<input type="hidden" id="dlvylcAdresDtl" class="dft" value="<c:out value="${dftDlvylc.dtlAdres}"/>">
|
||||||
@@ -3544,7 +3612,7 @@
|
|||||||
<!-- 신규 배송지 선택 시 Start -->
|
<!-- 신규 배송지 선택 시 Start -->
|
||||||
<tr class="deliveryAddressNew" style="display:none;">
|
<tr class="deliveryAddressNew" style="display:none;">
|
||||||
<th><span class="orderInfo__title">받는분</span></th>
|
<th><span class="orderInfo__title">받는분</span></th>
|
||||||
<td><input type="text" name="recpntNm" class="new rqrd input-text rqrd_gift" title="받는분 이름" placeholder="받는분 이름을 입력하세요."></td>
|
<td><input type="text" name="recpntNm" class="new rqrd input-text rqrd_gift" title="받는분 이름" placeholder="받는분 이름을 입력하세요." readonly></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="deliveryAddressNew presentArea" style="display:none;">
|
<tr class="deliveryAddressNew presentArea" style="display:none;">
|
||||||
<th><span class="orderInfo__title">주소</span></th>
|
<th><span class="orderInfo__title">주소</span></th>
|
||||||
@@ -3552,20 +3620,24 @@
|
|||||||
<div class="inputAddress">
|
<div class="inputAddress">
|
||||||
<div class="inputAddress__postalCode">
|
<div class="inputAddress__postalCode">
|
||||||
<input type="text" id="postcode" name="dlvylcZip" class="new rqrd input-text" title="우편번호" placeholder="" readonly>
|
<input type="text" id="postcode" name="dlvylcZip" class="new rqrd input-text" title="우편번호" placeholder="" readonly>
|
||||||
<button type="button" id="btnPost1" onclick="fn_select_postcode(fn_set_postcode, this); return false;" class="btn md theme outline">우편번호 찾기</button>
|
<%--일본 배송지 추가 - 일부 기능 삭제--%>
|
||||||
|
<%-- <button type="button" id="btnPost1" onclick="fn_select_postcode(fn_set_postcode, this); return false;" class="btn md theme outline">우편번호 찾기</button>--%>
|
||||||
</div>
|
</div>
|
||||||
<input type="text" name="dlvylcAdres" class="new rqrd input-text full" title="주소" placeholder="" readonly>
|
<input type="text" name="dlvylcAdres" class="new rqrd input-text full" title="주소" placeholder="" readonly>
|
||||||
<input type="text" name="dlvylcAdresDtl" class="new rqrd input-text full" title="나머지 주소" placeholder="나머지 주소를 입력해 주세요.">
|
<input type="text" name="dlvylcAdresDtl" class="new rqrd input-text full" title="나머지 주소" placeholder="나머지 주소를 입력해 주세요." readonly>
|
||||||
<input type="hidden" name="dlvylcAdresDvCd" class="new">
|
<input type="hidden" name="dlvylcAdresDvCd" class="new">
|
||||||
<input type="hidden" name="dlvylcLnbAdres" class="new">
|
<input type="hidden" name="dlvylcLnbAdres" class="new">
|
||||||
<input type="hidden" name="dlvylcRnmAdres" class="new">
|
<input type="hidden" name="dlvylcRnmAdres" class="new">
|
||||||
|
<input type="hidden" name="dlvylcAreaCd" class="new">
|
||||||
|
<input type="hidden" name="prefcd" class="new">
|
||||||
|
<input type="hidden" name="cstmclerCd" class="new">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="deliveryAddressNew" style="display:none;">
|
<tr class="deliveryAddressNew" style="display:none;">
|
||||||
<th> <span class="orderInfo__title">휴대폰번호</span></th>
|
<th> <span class="orderInfo__title">휴대폰번호</span></th>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="recpntMbtlnb" oninput="fn_set_event(this, 'keyup', fn_fmt_telno)" maxlength="13" class="new rqrd input-text number rqrd_gift" title="휴대폰번호" placeholder="휴대폰번호 입력 (’-’ 없이)">
|
<input type="text" name="recpntMbtlnb" oninput="fn_set_event(this, 'keyup', fn_fmt_telno)" maxlength="13" class="new rqrd input-text number rqrd_gift" title="휴대폰번호" placeholder="휴대폰번호 입력 (’-’ 없이)" readonly>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<!-- 신규 배송지 선택 시 End -->
|
<!-- 신규 배송지 선택 시 End -->
|
||||||
|
|||||||
@@ -1465,7 +1465,8 @@
|
|||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<span class="cartOrderBox__th">배송비</span>
|
<span class="cartOrderBox__th">배송비</span>
|
||||||
<span class="cartOrderBox__td"><span class="comma" id="dlvyAmtSapn">0</span><span class="priceUnit">${curUnit}</span></span>
|
<%-- <span class="cartOrderBox__td"><span class="comma" id="dlvyAmtSapn">0</span><span class="priceUnit">${curUnit}</span></span>--%>
|
||||||
|
<span class="cartOrderBox__td"><span class="comma" id="dlvyAmtSapn">0</span><span class="priceUnit">Calculated at next step</span></span>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<span class="cartOrderBox__th">총 할인금액</span>
|
<span class="cartOrderBox__th">총 할인금액</span>
|
||||||
|
|||||||
@@ -294,7 +294,16 @@
|
|||||||
event.preventDefault(); // 체크박스 상태 변경 방지
|
event.preventDefault(); // 체크박스 상태 변경 방지
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
<style>
|
||||||
|
.refund-clause {
|
||||||
|
padding: clamp(16px, 3%, 18px);
|
||||||
|
border-radius: 8px;
|
||||||
|
border: 1px solid #dee2e6;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<body>
|
<body>
|
||||||
|
<c:set value = "${resultMap.clauseList}" var = "clauseList"/>
|
||||||
<c:set value = "${resultMap.regusrInfo}" var = "regusrInfo"/>
|
<c:set value = "${resultMap.regusrInfo}" var = "regusrInfo"/>
|
||||||
<c:set value = "${resultMap.bbscttVO}" var = "bbscttVO"/>
|
<c:set value = "${resultMap.bbscttVO}" var = "bbscttVO"/>
|
||||||
<c:set value = "${resultMap.bbsInfo}" var = "bbsInfo"/>
|
<c:set value = "${resultMap.bbsInfo}" var = "bbsInfo"/>
|
||||||
@@ -322,6 +331,11 @@
|
|||||||
<input type = "hidden" id = "bbsInfo" value = "<c:out value = '${bbsInfo.bbsInfo}'/>" name = "bbsInfo"/>
|
<input type = "hidden" id = "bbsInfo" value = "<c:out value = '${bbsInfo.bbsInfo}'/>" name = "bbsInfo"/>
|
||||||
<input type = "hidden" id = "bbscttSndngMthCd" value = "<c:out value = '${bbsInfo.bbscttSndngMthCd}'/>" name = "bbscttSndngMthCd"/>
|
<input type = "hidden" id = "bbscttSndngMthCd" value = "<c:out value = '${bbsInfo.bbscttSndngMthCd}'/>" name = "bbscttSndngMthCd"/>
|
||||||
<input type = "hidden" id = "regusrDvCd" value = "<c:out value = '${bbscttVO.regusrDvCd}'/>" name = "regusrDvCd"/>
|
<input type = "hidden" id = "regusrDvCd" value = "<c:out value = '${bbscttVO.regusrDvCd}'/>" name = "regusrDvCd"/>
|
||||||
|
<div class="refund-clause ck-content">
|
||||||
|
<c:out value="${clauseList[0].stplatNm}" escapeXml="false"/>
|
||||||
|
<br><br>
|
||||||
|
<c:out value="${clauseList[0].stplatCn}" escapeXml="false"/>
|
||||||
|
</div>
|
||||||
<div class="userForm">
|
<div class="userForm">
|
||||||
<div class="userForm__inputBox">
|
<div class="userForm__inputBox">
|
||||||
<div class="userForm__inputBox__item">
|
<div class="userForm__inputBox__item">
|
||||||
|
|||||||
@@ -262,7 +262,16 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
<style>
|
||||||
|
.refund-clause {
|
||||||
|
padding: clamp(16px, 3%, 18px);
|
||||||
|
border-radius: 8px;
|
||||||
|
border: 1px solid #dee2e6;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<body>
|
<body>
|
||||||
|
<c:set value="${resultMap.clauseList}" var="clauseList"/>
|
||||||
<c:set value = "${resultMap.regusrInfo}" var = "regusrInfo"/>
|
<c:set value = "${resultMap.regusrInfo}" var = "regusrInfo"/>
|
||||||
<c:set value = "${resultMap.bbscttVO}" var = "bbscttVO"/>
|
<c:set value = "${resultMap.bbscttVO}" var = "bbscttVO"/>
|
||||||
<c:set value = "${resultMap.bbsInfo}" var = "bbsInfo"/>
|
<c:set value = "${resultMap.bbsInfo}" var = "bbsInfo"/>
|
||||||
@@ -287,6 +296,11 @@
|
|||||||
<div class="microModal__inner">
|
<div class="microModal__inner">
|
||||||
<form id="bbsRegForm">
|
<form id="bbsRegForm">
|
||||||
<input type='hidden' name='bbsTyCd' id='bbsTyCd' value='<c:out value="${bbsInfo.bbsTyCd}"/>'>
|
<input type='hidden' name='bbsTyCd' id='bbsTyCd' value='<c:out value="${bbsInfo.bbsTyCd}"/>'>
|
||||||
|
<div class="refund-clause ck-content">
|
||||||
|
<c:out value="${clauseList[0].stplatNm}" escapeXml="false"/>
|
||||||
|
<br><br>
|
||||||
|
<c:out value="${clauseList[0].stplatCn}" escapeXml="false"/>
|
||||||
|
</div>
|
||||||
<div class="userForm">
|
<div class="userForm">
|
||||||
<div class="userForm__inputBox">
|
<div class="userForm__inputBox">
|
||||||
<div class="userForm__inputBox__item">
|
<div class="userForm__inputBox__item">
|
||||||
|
|||||||
@@ -132,6 +132,9 @@
|
|||||||
<input type="hidden" name="lnbAdres" class = "lnbAdres"value="<c:out value='${dlvylc.lnbAdres}'/>" />
|
<input type="hidden" name="lnbAdres" class = "lnbAdres"value="<c:out value='${dlvylc.lnbAdres}'/>" />
|
||||||
<input type="hidden" name="recpntNm" class = "recpntNmR" value="<c:out value='${dlvylc.recpntNm}'/>" />
|
<input type="hidden" name="recpntNm" class = "recpntNmR" value="<c:out value='${dlvylc.recpntNm}'/>" />
|
||||||
<input type="hidden" name="dtlAdres" class = "dtlAdres" value="<c:out value='${dlvylc.dtlAdres}'/>" />
|
<input type="hidden" name="dtlAdres" class = "dtlAdres" value="<c:out value='${dlvylc.dtlAdres}'/>" />
|
||||||
|
<input type="hidden" name="dlvylcAreaCd" class="dlvylcAreaCd" value="<c:out value='${dlvylc.dlvylcAreaCd}'/>" />
|
||||||
|
<input type="hidden" name="prefcd" class="prefcd" value="<c:out value='${dlvylc.prefcd}'/>" />
|
||||||
|
<input type="hidden" name="cstmclerCd" class="cstmclerCd" value="<c:out value='${dlvylc.cstmclerCd}'/>" />
|
||||||
<input type="hidden" name="mbtlnb" class="mbtlnb" value="<c:out value='${dlvylc.mbtlnb}' />" />
|
<input type="hidden" name="mbtlnb" class="mbtlnb" value="<c:out value='${dlvylc.mbtlnb}' />" />
|
||||||
</div>
|
</div>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<script>
|
<script>
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
/*헤더에 타이틀 set*/
|
/*헤더에 타이틀 set*/
|
||||||
fn_set_header_title("배송지 등록 (配送先登録)");
|
fn_set_header_title("배송지 등록");
|
||||||
|
|
||||||
fn_set_event(".telno", 'input', fn_fmt_telno);
|
fn_set_event(".telno", 'input', fn_fmt_telno);
|
||||||
|
|
||||||
@@ -33,7 +33,6 @@
|
|||||||
location.href = '/sopmal/mpage/mbr/selectDlvylcManagePopupForm';
|
location.href = '/sopmal/mpage/mbr/selectDlvylcManagePopupForm';
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#mbtlnbAlert').hide();
|
|
||||||
$('#postcodeAlert').hide();
|
$('#postcodeAlert').hide();
|
||||||
dlvylcFormPreValues = {};
|
dlvylcFormPreValues = {};
|
||||||
|
|
||||||
@@ -69,19 +68,16 @@
|
|||||||
<div class="userForm" id="dlvylcFormTable">
|
<div class="userForm" id="dlvylcFormTable">
|
||||||
<div class="userForm__inputBox">
|
<div class="userForm__inputBox">
|
||||||
<div class="userForm__inputBox__item">
|
<div class="userForm__inputBox__item">
|
||||||
<div class="userForm__inputBox__itemTitle langKr">배송지명<span class="required-asterisk">*</span></div>
|
<div class="userForm__inputBox__itemTitle">배송지명<span class="required-asterisk">*</span></div>
|
||||||
<div class="userForm__inputBox__itemTitle langJp">配送先名<span class="required-asterisk">*</span></div>
|
|
||||||
<input type="text" class="input-text full" name="dlvylcDcCn" title="배송지명"
|
<input type="text" class="input-text full" name="dlvylcDcCn" title="배송지명"
|
||||||
maxlength="67">
|
maxlength="67">
|
||||||
</div>
|
</div>
|
||||||
<div class="userForm__inputBox__item">
|
<div class="userForm__inputBox__item">
|
||||||
<div class="userForm__inputBox__itemTitle langKr">받으시는 분<span class="required-asterisk">*</span></div>
|
<div class="userForm__inputBox__itemTitle">받으시는 분<span class="required-asterisk">*</span></div>
|
||||||
<div class="userForm__inputBox__itemTitle langJp">お届け先<span class="required-asterisk">*</span></div>
|
|
||||||
<input type="text" class="input-text full" title="받으시는 분" name="recpntNm" maxlength="13">
|
<input type="text" class="input-text full" title="받으시는 분" name="recpntNm" maxlength="13">
|
||||||
</div>
|
</div>
|
||||||
<div class="userForm__inputBox__item">
|
<div class="userForm__inputBox__item">
|
||||||
<div class="userForm__inputBox__itemTitle langKr">배송지 주소<span class="required-asterisk">*</span></div>
|
<div class="userForm__inputBox__itemTitle">배송지 주소<span class="required-asterisk">*</span></div>
|
||||||
<div class="userForm__inputBox__itemTitle langJp">郵便番号<span class="required-asterisk">*</span></div>
|
|
||||||
<div class="inputAddress">
|
<div class="inputAddress">
|
||||||
<div class="inputAddress__postalCode">
|
<div class="inputAddress__postalCode">
|
||||||
<input type="text" class="input-text" id="zip" name="zip" title="우편번호"
|
<input type="text" class="input-text" id="zip" name="zip" title="우편번호"
|
||||||
@@ -91,9 +87,9 @@
|
|||||||
onclick="fn_select_post_mobile(fn_select_dlvylc_postcode, '#postCodeCn', '#modalDiv'); return false;">
|
onclick="fn_select_post_mobile(fn_select_dlvylc_postcode, '#postCodeCn', '#modalDiv'); return false;">
|
||||||
우편번호 찾기
|
우편번호 찾기
|
||||||
</button>
|
</button>
|
||||||
<button type="button" class="btn md theme outline langJp" onclick="fn_select_postcodeJp(); return false;">検索</button>
|
<button type="button" class="btn md theme outline langJp" onclick="fn_select_postcodeJp(); return false;">주소 찾기</button>
|
||||||
</div>
|
</div>
|
||||||
<p class="signUp__inputBox__alertText" id="postcodeAlert">郵便番号を正しく入力してください。</p>
|
<p class="signUp__inputBox__alertText" id="postcodeAlert">우편번호를 정확하게 입력해 주세요.</p>
|
||||||
<input type="text" class="input-text full" id="adres" name="adres"
|
<input type="text" class="input-text full" id="adres" name="adres"
|
||||||
maxlength="66" title="주소" readonly>
|
maxlength="66" title="주소" readonly>
|
||||||
<input type="text" class="input-text full" id="dtlAdres" name="dtlAdres"
|
<input type="text" class="input-text full" id="dtlAdres" name="dtlAdres"
|
||||||
@@ -101,14 +97,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="userForm__inputBox__item">
|
<div class="userForm__inputBox__item">
|
||||||
<div class="userForm__inputBox__itemTitle langKr">휴대전화번호<span class="required-asterisk">*</span></div>
|
<div class="userForm__inputBox__itemTitle">휴대전화번호<span class="required-asterisk">*</span></div>
|
||||||
<div class="userForm__inputBox__itemTitle langJp">電話番号<span class="required-asterisk">*</span></div>
|
|
||||||
<div class="inputWithBtn">
|
<div class="inputWithBtn">
|
||||||
<input name="mbtlnb" type="text" class="input-text full telno" title="휴대전화번호"
|
<input name="mbtlnb" type="text" class="input-text full telno" title="휴대전화번호"
|
||||||
id="mbtlnb"
|
id="mbtlnb"
|
||||||
maxlength="13" placeholder="휴대폰번호'-'없이 입력하세요">
|
maxlength="13" placeholder="휴대폰번호'-'없이 입력하세요">
|
||||||
</div>
|
</div>
|
||||||
<p class="userform__inputBox__alertText langJp" id="mbtlnbAlert">電話番号をハイフンなしで入力してください。</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="userForm__inputBox__item langKr">
|
<div class="userForm__inputBox__item langKr">
|
||||||
<div class="userForm__inputBox__itemTitle">개인통관번호 (개인통관부호)<span class="required-asterisk">*</span></div>
|
<div class="userForm__inputBox__itemTitle">개인통관번호 (개인통관부호)<span class="required-asterisk">*</span></div>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<script>
|
<script>
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
/*헤더에 타이틀 set*/
|
/*헤더에 타이틀 set*/
|
||||||
fn_set_header_title("배송지 수정 (配送先変更)");
|
fn_set_header_title("배송지 수정");
|
||||||
/* 마이크로 모달 초기화 */
|
/* 마이크로 모달 초기화 */
|
||||||
MicroModal.init({
|
MicroModal.init({
|
||||||
disableScroll: true,
|
disableScroll: true,
|
||||||
@@ -45,7 +45,6 @@
|
|||||||
$("#mbtlnb").val(fn_format_mbtlnb($("#mbtlnb").val()));
|
$("#mbtlnb").val(fn_format_mbtlnb($("#mbtlnb").val()));
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#mbtlnbAlert').hide();
|
|
||||||
$('#postcodeAlert').hide();
|
$('#postcodeAlert').hide();
|
||||||
dlvylcFormPreValues = {};
|
dlvylcFormPreValues = {};
|
||||||
|
|
||||||
@@ -81,20 +80,17 @@
|
|||||||
<div class="userForm" id="dlvylcFormTable">
|
<div class="userForm" id="dlvylcFormTable">
|
||||||
<div class="userForm__inputBox">
|
<div class="userForm__inputBox">
|
||||||
<div class="userForm__inputBox__item">
|
<div class="userForm__inputBox__item">
|
||||||
<div class="userForm__inputBox__itemTitle langKr">배송지명<span class="required-asterisk">*</span></div>
|
<div class="userForm__inputBox__itemTitle">배송지명<span class="required-asterisk">*</span></div>
|
||||||
<div class="userForm__inputBox__itemTitle langJp">配送先名<span class="required-asterisk">*</span></div>
|
|
||||||
<input type="text" class="input-text full" name="dlvylcDcCn" title="배송지명"
|
<input type="text" class="input-text full" name="dlvylcDcCn" title="배송지명"
|
||||||
value="<c:out value = "${dtlDlvylc.resultVO.dlvylcDcCn}" />" maxlength="67">
|
value="<c:out value = "${dtlDlvylc.resultVO.dlvylcDcCn}" />" maxlength="67">
|
||||||
</div>
|
</div>
|
||||||
<div class="userForm__inputBox__item">
|
<div class="userForm__inputBox__item">
|
||||||
<div class="userForm__inputBox__itemTitle langKr">받으시는 분<span class="required-asterisk">*</span></div>
|
<div class="userForm__inputBox__itemTitle">받으시는 분<span class="required-asterisk">*</span></div>
|
||||||
<div class="userForm__inputBox__itemTitle langJp">お届け先<span class="required-asterisk">*</span></div>
|
|
||||||
<input type="text" class="input-text full" title="받으시는 분" name="recpntNm"
|
<input type="text" class="input-text full" title="받으시는 분" name="recpntNm"
|
||||||
title="받으시는 분" value="<c:out value="${dtlDlvylc.resultVO.recpntNm}" />" maxlength="13">
|
title="받으시는 분" value="<c:out value="${dtlDlvylc.resultVO.recpntNm}" />" maxlength="13">
|
||||||
</div>
|
</div>
|
||||||
<div class="userForm__inputBox__item">
|
<div class="userForm__inputBox__item">
|
||||||
<div class="userForm__inputBox__itemTitle langKr">배송지 주소<span class="required-asterisk">*</span></div>
|
<div class="userForm__inputBox__itemTitle">배송지 주소<span class="required-asterisk">*</span></div>
|
||||||
<div class="userForm__inputBox__itemTitle langJp">郵便番号<span class="required-asterisk">*</span></div>
|
|
||||||
<div class="inputAddress">
|
<div class="inputAddress">
|
||||||
|
|
||||||
<div class="inputAddress__postalCode">
|
<div class="inputAddress__postalCode">
|
||||||
@@ -106,9 +102,9 @@
|
|||||||
우편번호 찾기
|
우편번호 찾기
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button type="button" class="btn md theme outline langJp" onclick="fn_select_postcodeJp(); return false;">検索</button>
|
<button type="button" class="btn md theme outline langJp" onclick="fn_select_postcodeJp(); return false;">주소 찾기</button>
|
||||||
</div>
|
</div>
|
||||||
<p class="signUp__inputBox__alertText" id="postcodeAlert" style="color: red;">郵便番号を正しく入力してください。</p>
|
<p class="signUp__inputBox__alertText" id="postcodeAlert" style="color: red;">우편번호를 정확하게 입력해 주세요.</p>
|
||||||
<input type="text" class="input-text full" id="adres" name="adres"
|
<input type="text" class="input-text full" id="adres" name="adres"
|
||||||
maxlength="66" title="주소" readonly value=<c:choose>
|
maxlength="66" title="주소" readonly value=<c:choose>
|
||||||
<c:when test = "${dtlDlvylc.resultVO.adresDv eq '01'}">"<c:out value = '${dtlDlvylc.resultVO.rnmAdres}'/>"</c:when>
|
<c:when test = "${dtlDlvylc.resultVO.adresDv eq '01'}">"<c:out value = '${dtlDlvylc.resultVO.rnmAdres}'/>"</c:when>
|
||||||
@@ -119,13 +115,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="userForm__inputBox__item">
|
<div class="userForm__inputBox__item">
|
||||||
<div class="userForm__inputBox__itemTitle langKr">휴대전화번호<span class="required-asterisk">*</span></div>
|
<div class="userForm__inputBox__itemTitle">휴대전화번호<span class="required-asterisk">*</span></div>
|
||||||
<div class="userForm__inputBox__itemTitle langJp">電話番号<span class="required-asterisk">*</span></div>
|
|
||||||
<div class="inputWithBtn">
|
<div class="inputWithBtn">
|
||||||
<input name="mbtlnb" type="text" class="input-text full telno" title="휴대전화번호" id = "mbtlnb"
|
<input name="mbtlnb" type="text" class="input-text full telno" title="휴대전화번호" id = "mbtlnb"
|
||||||
value="<c:out value ='${dtlDlvylc.resultVO.mbtlnb}'/>" maxlength="13" placeholder="휴대폰번호'-'없이 입력하세요">
|
value="<c:out value ='${dtlDlvylc.resultVO.mbtlnb}'/>" maxlength="13" placeholder="휴대폰번호'-'없이 입력하세요">
|
||||||
</div>
|
</div>
|
||||||
<p class="userform__inputBox__alertText langJp" id="mbtlnbAlert">電話番号をハイフンなしで入力してください。</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="userForm__inputBox__item langKr">
|
<div class="userForm__inputBox__item langKr">
|
||||||
<div class="userForm__inputBox__itemTitle">개인통관번호 (개인통관부호)<span class="required-asterisk">*</span></div>
|
<div class="userForm__inputBox__itemTitle">개인통관번호 (개인통관부호)<span class="required-asterisk">*</span></div>
|
||||||
|
|||||||
@@ -144,7 +144,7 @@
|
|||||||
div += ' <span class="orderListItem__top__date"><span class="misc">'+ row.ordrDt +'(' + row.ordrInnb +') ';
|
div += ' <span class="orderListItem__top__date"><span class="misc">'+ row.ordrDt +'(' + row.ordrInnb +') ';
|
||||||
div += ' <span className="orderList__dot">·</span> ' + row.ordrTyCdNm;
|
div += ' <span className="orderList__dot">·</span> ' + row.ordrTyCdNm;
|
||||||
div += ' </span></span>';
|
div += ' </span></span>';
|
||||||
div += ' <a href="javascript:void(0);" onclick="fn_go_ordr_dtl(\'' + row.sopmalCd + '\', \'' + row.ordrInnb + '\');" class="orderListItem__top__more">상세보기</a>';
|
div += ' <a href="javascript:void(0);" onclick="fn_go_subsvc_dtl(\'' + row.sopmalCd + '\', \'' + row.ordrInnb + '\');" class="orderListItem__top__more">상세보기</a>';
|
||||||
div += ' </div>';
|
div += ' </div>';
|
||||||
div += ' <div class="orderListItem__body">';
|
div += ' <div class="orderListItem__body">';
|
||||||
div += ' <div class="orderListItem__image">';
|
div += ' <div class="orderListItem__image">';
|
||||||
@@ -159,7 +159,7 @@
|
|||||||
div += ' (' + row.giftSttusCdNm + ')';
|
div += ' (' + row.giftSttusCdNm + ')';
|
||||||
}
|
}
|
||||||
div += ' </p>';
|
div += ' </p>';
|
||||||
div += ' <a href="javascript:void(0);" onclick="fn_go_ordr_dtl(\'' + row.sopmalCd + '\', \'' + row.ordrInnb + '\');" class="orderListItem__info__name">' + row.goodsNm + '</a>';
|
div += ' <a href="javascript:void(0);" onclick="fn_go_subsvc_dtl(\'' + row.sopmalCd + '\', \'' + row.ordrInnb + '\');" class="orderListItem__info__name">' + row.goodsNm + '</a>';
|
||||||
if (row.optnNm != null) {
|
if (row.optnNm != null) {
|
||||||
div += ' <p class="orderListItem__info__option">' + row.optnNm + '</p>';
|
div += ' <p class="orderListItem__info__option">' + row.optnNm + '</p>';
|
||||||
}
|
}
|
||||||
@@ -512,13 +512,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* 주문상세 이동 */
|
/* 주문상세 이동 */
|
||||||
const fn_go_ordr_dtl = function (sopmalCd, ordrInnb) {
|
const fn_go_subsvc_dtl = function (sopmalCd, ordrInnb) {
|
||||||
const form = $('#condForm');
|
const form = $('#condForm');
|
||||||
|
|
||||||
$(form).append($('<input/>', {type: 'hidden', name: 'ordrInnb', id: 'ordrInnb', value: ordrInnb}));
|
$(form).append($('<input/>', {type: 'hidden', name: 'ordrInnb', id: 'ordrInnb', value: ordrInnb}));
|
||||||
|
|
||||||
$(form).attr('method', 'get');
|
$(form).attr('method', 'get');
|
||||||
$(form).attr('action', '<c:url value="/sopmal/mpage/ordr/selectMbrOrdrDtlInqire"/>');
|
$(form).attr('action', '<c:url value="/sopmal/mpage/ordr/selectMbrSubsvcOrdrDtlInqire"/>');
|
||||||
|
|
||||||
$(form).submit();
|
$(form).submit();
|
||||||
}
|
}
|
||||||
1296
src/main/webapp/WEB-INF/views/sopmal_m/mpage/ordr/SubsvcOrdrDtlR.jsp
Normal file
1296
src/main/webapp/WEB-INF/views/sopmal_m/mpage/ordr/SubsvcOrdrDtlR.jsp
Normal file
File diff suppressed because it is too large
Load Diff
@@ -150,7 +150,11 @@
|
|||||||
$('.header').find('h1.header__title').text('주문결제');
|
$('.header').find('h1.header__title').text('주문결제');
|
||||||
|
|
||||||
const dlvylcZip = $('input[name="dlvylcZip"]').val();
|
const dlvylcZip = $('input[name="dlvylcZip"]').val();
|
||||||
|
const dlvylcAreaCd = $('input[name="dlvylcAreaCd"]').val();
|
||||||
|
const prefcd = $('input[name="prefcd"]').val();
|
||||||
localStorage.setItem("dlvylcZip", dlvylcZip);
|
localStorage.setItem("dlvylcZip", dlvylcZip);
|
||||||
|
localStorage.setItem("dlvylcAreaCd", dlvylcAreaCd);
|
||||||
|
localStorage.setItem("prefcd", prefcd);
|
||||||
|
|
||||||
|
|
||||||
const mbrDvCd = $('#mbrDvCd').val();
|
const mbrDvCd = $('#mbrDvCd').val();
|
||||||
@@ -280,7 +284,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
const dlvylcZip = $('input[name="dlvylcZip"]').val();
|
const dlvylcZip = $('input[name="dlvylcZip"]').val();
|
||||||
|
const dlvylcAreaCd = $('input[name="dlvylcAreaCd"]').val();
|
||||||
|
const prefcd = $('input[name="prefcd"]').val();
|
||||||
localStorage.setItem("dlvylcZip", dlvylcZip);
|
localStorage.setItem("dlvylcZip", dlvylcZip);
|
||||||
|
localStorage.setItem("dlvylcAreaCd", dlvylcAreaCd);
|
||||||
|
localStorage.setItem("prefcd", prefcd);
|
||||||
fn_get_setle_amt();
|
fn_get_setle_amt();
|
||||||
|
|
||||||
if ($(this).val() === 'Gift') {
|
if ($(this).val() === 'Gift') {
|
||||||
@@ -1087,6 +1095,8 @@
|
|||||||
let mngrFreeDlvyUseAt = $(form).find('input[name="mngrFreeDlvyUseAt"]').val();
|
let mngrFreeDlvyUseAt = $(form).find('input[name="mngrFreeDlvyUseAt"]').val();
|
||||||
|
|
||||||
let dlvylcZip = '';
|
let dlvylcZip = '';
|
||||||
|
let dlvylcAreaCd = '';
|
||||||
|
let prefcd = '';
|
||||||
let recpntNm = '';
|
let recpntNm = '';
|
||||||
let recpntMbtlnb = '';
|
let recpntMbtlnb = '';
|
||||||
let dlvylcAdresDvCd = '';
|
let dlvylcAdresDvCd = '';
|
||||||
@@ -1097,6 +1107,8 @@
|
|||||||
|
|
||||||
if ('Default' === dlvylcDvCd) {
|
if ('Default' === dlvylcDvCd) {
|
||||||
dlvylcZip = $(form).find('input[name="dlvylcZip"]').val();
|
dlvylcZip = $(form).find('input[name="dlvylcZip"]').val();
|
||||||
|
dlvylcAreaCd = $(form).find('input[name="dlvylcAreaCd"]').val();
|
||||||
|
prefcd = $(form).find('input[name="prefcd"]').val();
|
||||||
recpntNm = $(form).find('input[name="recpntNm"]').val();
|
recpntNm = $(form).find('input[name="recpntNm"]').val();
|
||||||
recpntMbtlnb = $(form).find('input[name="recpntMbtlnb"]').val();
|
recpntMbtlnb = $(form).find('input[name="recpntMbtlnb"]').val();
|
||||||
dlvylcAdresDvCd = $(form).find('input[name="dlvylcAdresDvCd"]').val();
|
dlvylcAdresDvCd = $(form).find('input[name="dlvylcAdresDvCd"]').val();
|
||||||
@@ -1106,6 +1118,8 @@
|
|||||||
dlvyMssageCn = $(form).find('input[name="dlvyMssageCn"]').val();
|
dlvyMssageCn = $(form).find('input[name="dlvyMssageCn"]').val();
|
||||||
} else {
|
} else {
|
||||||
dlvylcZip = $(form).find('input[name="dlvylcZip"]').val();
|
dlvylcZip = $(form).find('input[name="dlvylcZip"]').val();
|
||||||
|
dlvylcAreaCd = $(form).find('input[name="dlvylcAreaCd"]').val();
|
||||||
|
prefcd = $(form).find('input[name="prefcd"]').val();
|
||||||
recpntNm = $(form).find('input[name="recpntNm"]').val();
|
recpntNm = $(form).find('input[name="recpntNm"]').val();
|
||||||
recpntMbtlnb = $(form).find('input[name="recpntMbtlnb"]').val();
|
recpntMbtlnb = $(form).find('input[name="recpntMbtlnb"]').val();
|
||||||
dlvylcAdresDvCd = $(form).find('input[name="dlvylcAdresDvCd"]').val();
|
dlvylcAdresDvCd = $(form).find('input[name="dlvylcAdresDvCd"]').val();
|
||||||
@@ -1124,6 +1138,8 @@
|
|||||||
otrCouponSmtmUseAt: otrCouponSmtmUseAt,
|
otrCouponSmtmUseAt: otrCouponSmtmUseAt,
|
||||||
mngrFreeDlvyUseAt: mngrFreeDlvyUseAt,
|
mngrFreeDlvyUseAt: mngrFreeDlvyUseAt,
|
||||||
dlvylcZip: dlvylcZip,
|
dlvylcZip: dlvylcZip,
|
||||||
|
dlvylcAreaCd: dlvylcAreaCd,
|
||||||
|
prefcd: prefcd,
|
||||||
recpntNm: recpntNm,
|
recpntNm: recpntNm,
|
||||||
recpntMbtlnb: recpntMbtlnb,
|
recpntMbtlnb: recpntMbtlnb,
|
||||||
dlvylcAdresDvCd: dlvylcAdresDvCd,
|
dlvylcAdresDvCd: dlvylcAdresDvCd,
|
||||||
@@ -1501,6 +1517,8 @@
|
|||||||
html += ' <input type="hidden" name="dlvylcAdresDvCd">';
|
html += ' <input type="hidden" name="dlvylcAdresDvCd">';
|
||||||
html += ' <input type="hidden" name="dlvylcLnbAdres" title="도로명 or 지명 주소">';
|
html += ' <input type="hidden" name="dlvylcLnbAdres" title="도로명 or 지명 주소">';
|
||||||
html += ' <input type="hidden" name="dlvylcRnmAdres" title="도로명 or 지명 주소">';
|
html += ' <input type="hidden" name="dlvylcRnmAdres" title="도로명 or 지명 주소">';
|
||||||
|
html += ' <input type="hidden" name="dlvylcAreaCd">';
|
||||||
|
html += ' <input type="hidden" name="prefcd">';
|
||||||
html += ' </div>';
|
html += ' </div>';
|
||||||
html += ' </div>';
|
html += ' </div>';
|
||||||
html += ' <div class="userForm__inputBox__item">';
|
html += ' <div class="userForm__inputBox__item">';
|
||||||
@@ -1802,6 +1820,9 @@
|
|||||||
$(form).find('input[name="recpntTelnb"]').val(mbtlnb);
|
$(form).find('input[name="recpntTelnb"]').val(mbtlnb);
|
||||||
}
|
}
|
||||||
$(form).find('input[name="dlvylcZip"]').val(data.postcode);
|
$(form).find('input[name="dlvylcZip"]').val(data.postcode);
|
||||||
|
$(form).find('input[name="dlvylcAreaCd"]').val(data.dlvylcAreaCd);
|
||||||
|
$(form).find('input[name="prefcd"]').val(data.prefcd);
|
||||||
|
$(form).find('input[name="cstmclerCd"]').val(data.cstmclerCd);
|
||||||
$(form).find('input[name="dlvylcAdresDvCd"]').val(data.addressType);
|
$(form).find('input[name="dlvylcAdresDvCd"]').val(data.addressType);
|
||||||
$(form).find('input[name="dlvylcLnbAdres"]').val(data.jibunAddress);
|
$(form).find('input[name="dlvylcLnbAdres"]').val(data.jibunAddress);
|
||||||
$(form).find('input[name="dlvylcRnmAdres"]').val(data.roadAddress);
|
$(form).find('input[name="dlvylcRnmAdres"]').val(data.roadAddress);
|
||||||
@@ -1810,6 +1831,9 @@
|
|||||||
$(form).find('input[name="recpntNm"]').val(data.recpntNm);
|
$(form).find('input[name="recpntNm"]').val(data.recpntNm);
|
||||||
$(form).find('input[name="recpntMbtlnb"]').val(fn_format_mbtlnb(data.mbtlnb));
|
$(form).find('input[name="recpntMbtlnb"]').val(fn_format_mbtlnb(data.mbtlnb));
|
||||||
closeModal('postModal');
|
closeModal('postModal');
|
||||||
|
|
||||||
|
// 배송지 정보 세팅 이후 결제예정금액 재계산
|
||||||
|
fn_get_setle_amt();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1831,6 +1855,8 @@
|
|||||||
$(form).find('input[name="recpntTelnb"]').val(mbtlnb);
|
$(form).find('input[name="recpntTelnb"]').val(mbtlnb);
|
||||||
}
|
}
|
||||||
$(form).find('input[name="dlvylcZip"]').val(data.postcode);
|
$(form).find('input[name="dlvylcZip"]').val(data.postcode);
|
||||||
|
$(form).find('input[name="dlvylcAreaCd"]').val(data.dlvylcAreaCd);
|
||||||
|
$(form).find('input[name="prefcd"]').val(data.prefcd);
|
||||||
$(form).find('input[name="dlvylcAdresDvCd"]').val(data.addressType);
|
$(form).find('input[name="dlvylcAdresDvCd"]').val(data.addressType);
|
||||||
$(form).find('input[name="dlvylcLnbAdres"]').val(data.jibunAddress);
|
$(form).find('input[name="dlvylcLnbAdres"]').val(data.jibunAddress);
|
||||||
$(form).find('input[name="dlvylcRnmAdres"]').val(data.roadAddress);
|
$(form).find('input[name="dlvylcRnmAdres"]').val(data.roadAddress);
|
||||||
@@ -2454,7 +2480,11 @@
|
|||||||
/* 결제예정금액 > 결제금액 조회 */
|
/* 결제예정금액 > 결제금액 조회 */
|
||||||
const fn_get_setle_amt = function() {
|
const fn_get_setle_amt = function() {
|
||||||
const dlvylcZip = $('input[name="dlvylcZip"]').val();
|
const dlvylcZip = $('input[name="dlvylcZip"]').val();
|
||||||
|
const dlvylcAreaCd = $('input[name="dlvylcAreaCd"]').val();
|
||||||
|
const prefcd = $('input[name="prefcd"]').val();
|
||||||
localStorage.setItem("dlvylcZip", dlvylcZip);
|
localStorage.setItem("dlvylcZip", dlvylcZip);
|
||||||
|
localStorage.setItem("dlvylcAreaCd", dlvylcAreaCd);
|
||||||
|
localStorage.setItem("prefcd", prefcd);
|
||||||
|
|
||||||
let setle = {};
|
let setle = {};
|
||||||
|
|
||||||
@@ -2463,6 +2493,8 @@
|
|||||||
setle['goodsList'] = JSON.parse(localStorage.getItem('goodsList'));
|
setle['goodsList'] = JSON.parse(localStorage.getItem('goodsList'));
|
||||||
setle['enuri'] = JSON.parse(localStorage.getItem('enuri'));
|
setle['enuri'] = JSON.parse(localStorage.getItem('enuri'));
|
||||||
setle['dlvylcZip'] = localStorage.getItem('dlvylcZip');
|
setle['dlvylcZip'] = localStorage.getItem('dlvylcZip');
|
||||||
|
setle['dlvylcAreaCd'] = localStorage.getItem('dlvylcAreaCd');
|
||||||
|
setle['prefcd'] = localStorage.getItem('prefcd');
|
||||||
setle['multiOrdrDlvylc'] = JSON.parse(localStorage.getItem('multiOrdrDlvylc'));
|
setle['multiOrdrDlvylc'] = JSON.parse(localStorage.getItem('multiOrdrDlvylc'));
|
||||||
setle['ordrTyCd'] = $('input[name="ordrTy"]:checked').val();
|
setle['ordrTyCd'] = $('input[name="ordrTy"]:checked').val();
|
||||||
|
|
||||||
@@ -2851,6 +2883,10 @@
|
|||||||
order['shipping'] = dlvylc;
|
order['shipping'] = dlvylc;
|
||||||
/* 배송지 정합성 검사 종료 */
|
/* 배송지 정합성 검사 종료 */
|
||||||
|
|
||||||
|
order['dlvylcZip'] = localStorage.getItem('dlvylcZip');
|
||||||
|
order['dlvylcAreaCd'] = localStorage.getItem('dlvylcAreaCd');
|
||||||
|
order['prefcd'] = localStorage.getItem('prefcd');
|
||||||
|
|
||||||
/* 여러곳 배송 > 배송지별 정합성 검사 시작 */
|
/* 여러곳 배송 > 배송지별 정합성 검사 시작 */
|
||||||
if (ordrTyCd === '05') { // 여러곳 배송
|
if (ordrTyCd === '05') { // 여러곳 배송
|
||||||
|
|
||||||
@@ -3605,11 +3641,12 @@
|
|||||||
<c:set var="dftDlvylc" value="${data.purchsr.dftDlvylc}"/>
|
<c:set var="dftDlvylc" value="${data.purchsr.dftDlvylc}"/>
|
||||||
<div class="orderDetail__body">
|
<div class="orderDetail__body">
|
||||||
<div class="deliveryInfo">
|
<div class="deliveryInfo">
|
||||||
<label class="b-checkbox is-medium checkbox">
|
<%--일본 배송지 추가 - 일부 기능 삭제--%>
|
||||||
<input type="checkbox" value="Y" class="ordrrInfoSet">
|
<%-- <label class="b-checkbox is-medium checkbox">--%>
|
||||||
<span class="check"></span>
|
<%-- <input type="checkbox" value="Y" class="ordrrInfoSet">--%>
|
||||||
<span class="control-label">주문자와 동일</span>
|
<%-- <span class="check"></span>--%>
|
||||||
</label>
|
<%-- <span class="control-label">주문자와 동일</span>--%>
|
||||||
|
<%-- </label>--%>
|
||||||
<div class="dftDlvylc">
|
<div class="dftDlvylc">
|
||||||
<p class="deliveryInfo__info">
|
<p class="deliveryInfo__info">
|
||||||
<span class="deliveryInfo__info__name"><c:out value="${dftDlvylc.recpntNm}"/></span>
|
<span class="deliveryInfo__info__name"><c:out value="${dftDlvylc.recpntNm}"/></span>
|
||||||
@@ -3624,6 +3661,8 @@
|
|||||||
</p>
|
</p>
|
||||||
<input type="hidden" name="dlvylcAdresDvCd" value="<c:out value="${dftDlvylc.adresDv}"/>">
|
<input type="hidden" name="dlvylcAdresDvCd" value="<c:out value="${dftDlvylc.adresDv}"/>">
|
||||||
<input type="hidden" name="dlvylcZip" value="<c:out value="${dftDlvylc.zip}"/>">
|
<input type="hidden" name="dlvylcZip" value="<c:out value="${dftDlvylc.zip}"/>">
|
||||||
|
<input type="hidden" name="dlvylcAreaCd" value="<c:out value="${dftDlvylc.dlvylcAreaCd}"/>">
|
||||||
|
<input type="hidden" name="prefcd" value="<c:out value="${dftDlvylc.prefcd}"/>">
|
||||||
<input type="hidden" name="dlvylcLnbAdres" title="도로명 or 지명 주소" value="<c:out value="${dftDlvylc.lnbAdres}"/>">
|
<input type="hidden" name="dlvylcLnbAdres" title="도로명 or 지명 주소" value="<c:out value="${dftDlvylc.lnbAdres}"/>">
|
||||||
<input type="hidden" name="dlvylcRnmAdres" title="도로명 or 지명 주소" value="<c:out value="${dftDlvylc.rnmAdres}"/>">
|
<input type="hidden" name="dlvylcRnmAdres" title="도로명 or 지명 주소" value="<c:out value="${dftDlvylc.rnmAdres}"/>">
|
||||||
<input type="hidden" name="dlvylcAdres" class="required" title="주소" value="<c:out value="${dftDlvylc.adres}"/>" >
|
<input type="hidden" name="dlvylcAdres" class="required" title="주소" value="<c:out value="${dftDlvylc.adres}"/>" >
|
||||||
@@ -3678,14 +3717,15 @@
|
|||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<div class="orderDetail__body">
|
<div class="orderDetail__body">
|
||||||
<div class="deliveryInfo">
|
<div class="deliveryInfo">
|
||||||
<div class="b-checkbox-container">
|
<%--일본 배송지 추가 - 일부 기능 삭제--%>
|
||||||
<label class="b-checkbox is-medium checkbox w-full">
|
<%-- <div class="b-checkbox-container">--%>
|
||||||
<input type="checkbox" value="Y"
|
<%-- <label class="b-checkbox is-medium checkbox w-full">--%>
|
||||||
class="ordrrInfoSet">
|
<%-- <input type="checkbox" value="Y"--%>
|
||||||
<span class="check"></span>
|
<%-- class="ordrrInfoSet">--%>
|
||||||
<span class="control-label">주문자와 동일</span>
|
<%-- <span class="check"></span>--%>
|
||||||
</label>
|
<%-- <span class="control-label">주문자와 동일</span>--%>
|
||||||
</div>
|
<%-- </label>--%>
|
||||||
|
<%-- </div>--%>
|
||||||
<button type="button" id="btnDlvylcMngr" class="btn outline xsm deliveryAddressDefault btnDlvylcMngr presentArea"
|
<button type="button" id="btnDlvylcMngr" class="btn outline xsm deliveryAddressDefault btnDlvylcMngr presentArea"
|
||||||
style="position: absolute;
|
style="position: absolute;
|
||||||
top: -1px;
|
top: -1px;
|
||||||
@@ -3695,26 +3735,30 @@
|
|||||||
<div class="userForm__inputBox">
|
<div class="userForm__inputBox">
|
||||||
<div class="userForm__inputBox__item">
|
<div class="userForm__inputBox__item">
|
||||||
<div class="userForm__inputBox__itemTitle">받는분</div>
|
<div class="userForm__inputBox__itemTitle">받는분</div>
|
||||||
<input class="input-text full required required_gift" type="text" name = "recpntNm" title="받는분" placeholder="받는분을 입력해 주세요" maxlength="10">
|
<input class="input-text full required required_gift" type="text" name = "recpntNm" title="받는분" placeholder="받는분을 입력해 주세요" maxlength="10" readonly>
|
||||||
</div>
|
</div>
|
||||||
<div class="userForm__inputBox__item deliveryAddressDefault presentArea">
|
<div class="userForm__inputBox__item deliveryAddressDefault presentArea">
|
||||||
<div class="userForm__inputBox__itemTitle">주소</div>
|
<div class="userForm__inputBox__itemTitle">주소</div>
|
||||||
<div class="inputAddress">
|
<div class="inputAddress">
|
||||||
<div class="inputAddress__postalCode">
|
<div class="inputAddress__postalCode">
|
||||||
<input class="input-text required" type="text" name="dlvylcZip" title="우편번호" maxlength="10" readonly><%--zip--%>
|
<input class="input-text required" type="text" name="dlvylcZip" title="우편번호" maxlength="10" readonly><%--zip--%>
|
||||||
<button class="btn md theme outline" type="button" style = "padding: 20px;"
|
<%--일본 배송지 추가 - 일부 기능 삭제--%>
|
||||||
data-micromodal-trigger="modalDiv" onclick="fn_select_post_mobile(fn_set_dlvylc, '#postCodeCn', '#modalDiv', this);">우편번호 찾기</button>
|
<%-- <button class="btn md theme outline" type="button" style = "padding: 20px;"--%>
|
||||||
|
<%-- data-micromodal-trigger="modalDiv" onclick="fn_select_post_mobile(fn_set_dlvylc, '#postCodeCn', '#modalDiv', this);">우편번호 찾기</button>--%>
|
||||||
</div>
|
</div>
|
||||||
<input class="input-text full required" type="text" name="dlvylcAdres" title="도로명 or 지명 주소" maxlength="66" readonly><%--도로명 or 지명--%>
|
<input class="input-text full required" type="text" name="dlvylcAdres" title="도로명 or 지명 주소" maxlength="66" readonly><%--도로명 or 지명--%>
|
||||||
<input class="input-text full required" type="text" name="dlvylcAdresDtl" title="상세주소" placeholder="나머지 주소를 입력해 주세요." maxlength="66"><%--상세주소--%>
|
<input class="input-text full required" type="text" name="dlvylcAdresDtl" title="상세주소" placeholder="나머지 주소를 입력해 주세요." maxlength="66" readonly><%--상세주소--%>
|
||||||
<input type="hidden" name="dlvylcAdresDvCd">
|
<input type="hidden" name="dlvylcAdresDvCd">
|
||||||
<input type="hidden" name="dlvylcLnbAdres" title="도로명 or 지명 주소">
|
<input type="hidden" name="dlvylcLnbAdres" title="도로명 or 지명 주소">
|
||||||
<input type="hidden" name="dlvylcRnmAdres" title="도로명 or 지명 주소">
|
<input type="hidden" name="dlvylcRnmAdres" title="도로명 or 지명 주소">
|
||||||
|
<input type="hidden" name="dlvylcAreaCd">
|
||||||
|
<input type="hidden" name="prefcd">
|
||||||
|
<input type="hidden" name="cstmclerCd">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="userForm__inputBox__item">
|
<div class="userForm__inputBox__item">
|
||||||
<div class="userForm__inputBox__itemTitle">휴대폰 번호</div>
|
<div class="userForm__inputBox__itemTitle">휴대폰 번호</div>
|
||||||
<input class="input-text full required required_gift" type="tel" title="휴대폰 번호" name= "recpntMbtlnb" oninput="fn_set_event(this, 'keyup', fn_fmt_telno);" placeholder="휴대폰번호(“-”) 없이 입력" value="" maxlength="13">
|
<input class="input-text full required required_gift" type="tel" title="휴대폰 번호" name= "recpntMbtlnb" oninput="fn_set_event(this, 'keyup', fn_fmt_telno);" placeholder="휴대폰번호(“-”) 없이 입력" value="" maxlength="13" readonly>
|
||||||
</div>
|
</div>
|
||||||
<div class="userForm__inputBox__item dftDlvylcGift presentShowArea" style="display:none;">
|
<div class="userForm__inputBox__item dftDlvylcGift presentShowArea" style="display:none;">
|
||||||
<div class="userForm__inputBox__itemTitle">선물메세지</div>
|
<div class="userForm__inputBox__itemTitle">선물메세지</div>
|
||||||
|
|||||||
@@ -1413,7 +1413,8 @@
|
|||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<span class="cartOrderBox__th">배송비</span>
|
<span class="cartOrderBox__th">배송비</span>
|
||||||
<span class="cartOrderBox__td"><span id="dlvyAmtSapn" class="comma">0</span><span class="priceUnit">${curUnit}</span></span>
|
<%-- <span class="cartOrderBox__td"><span id="dlvyAmtSapn" class="comma">0</span><span class="priceUnit">${curUnit}</span></span>--%>
|
||||||
|
<span class="cartOrderBox__td"><span class="priceUnit">Calculated at next step</span></span>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<span class="cartOrderBox__th">총 할인금액</span>
|
<span class="cartOrderBox__th">총 할인금액</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user