Compare commits
33 Commits
develop
...
c6d656b648
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c6d656b648 | ||
|
|
ac2402d764 | ||
|
|
df8c176dbb | ||
|
|
846de3009c | ||
|
|
194ab35ba6 | ||
|
|
f894756a5f | ||
|
|
82ec7f8b20 | ||
|
|
6222c3b7d1 | ||
|
|
184dbbe21b | ||
|
|
2e28122d97 | ||
|
|
297664b621 | ||
|
|
c51f716cc4 | ||
|
|
2b8e84799d | ||
|
|
cb655263af | ||
|
|
1de8b5c39f | ||
|
|
4074ace97d | ||
|
|
28ee8f8556 | ||
|
|
bbeb2a630a | ||
|
|
bc7f738e55 | ||
|
|
32250636e9 | ||
|
|
6858b24344 | ||
|
|
c04668fda2 | ||
|
|
1cab83f69f | ||
|
|
784cadc6f2 | ||
|
|
39ce46c4dc | ||
|
|
03ec9d863e | ||
|
|
7bfa5a288c | ||
|
|
56f29943b6 | ||
|
|
31561200c2 | ||
|
|
5fa4aa5c37 | ||
|
|
f2038728fd | ||
|
|
450e43aecb | ||
|
|
1d72e28600 |
@@ -157,8 +157,7 @@ dependencies {
|
|||||||
runtimeOnly("io.jsonwebtoken:jjwt-impl:0.11.5")
|
runtimeOnly("io.jsonwebtoken:jjwt-impl:0.11.5")
|
||||||
implementation("io.jsonwebtoken:jjwt-jackson:0.11.5")
|
implementation("io.jsonwebtoken:jjwt-jackson:0.11.5")
|
||||||
|
|
||||||
// stripe
|
|
||||||
implementation "com.stripe:stripe-java:33.4.0"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ext {
|
ext {
|
||||||
|
|||||||
@@ -282,9 +282,6 @@ public class BOMaMtngService {
|
|||||||
int useMlgAmt = Integer.parseInt(goodsList.get(0).getUseMlgAmt());
|
int useMlgAmt = Integer.parseInt(goodsList.get(0).getUseMlgAmt());
|
||||||
int useCashMlgAmt = Integer.parseInt(goodsList.get(0).getUseCashMlgAmt());
|
int useCashMlgAmt = Integer.parseInt(goodsList.get(0).getUseCashMlgAmt());
|
||||||
Set<String> validKeys = new HashSet<>(); // 변경 구매정보 리스트
|
Set<String> validKeys = new HashSet<>(); // 변경 구매정보 리스트
|
||||||
InventoryShortageMessage inventoryMessage = new InventoryShortageMessage();
|
|
||||||
Set<String> validationKeys = Arrays.stream(PurchsValidCode.values())
|
|
||||||
.map(PurchsValidCode::getCode).collect(Collectors.toSet());
|
|
||||||
|
|
||||||
//마일리지 잔액 확인
|
//마일리지 잔액 확인
|
||||||
BOMlgSrchVO mlgVo = new BOMlgSrchVO();
|
BOMlgSrchVO mlgVo = new BOMlgSrchVO();
|
||||||
@@ -320,14 +317,12 @@ public class BOMaMtngService {
|
|||||||
// 값이 1인 항목 == 변경항목
|
// 값이 1인 항목 == 변경항목
|
||||||
List<String> rs = resultValid.stream()
|
List<String> rs = resultValid.stream()
|
||||||
.flatMap(map -> map.entrySet().stream())
|
.flatMap(map -> map.entrySet().stream())
|
||||||
.filter(entry -> validationKeys.contains(entry.getKey()))
|
|
||||||
.filter(entry -> "1".equals(StringUtil.isNullToString(entry.getValue())))
|
.filter(entry -> "1".equals(StringUtil.isNullToString(entry.getValue())))
|
||||||
.map(entry -> StringUtil.isNullToString(entry.getKey()))
|
.map(entry -> StringUtil.isNullToString(entry.getKey()))
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
//구매정보 변경유형 저장
|
//구매정보 변경유형 저장
|
||||||
validKeys.addAll(rs);
|
validKeys.addAll(rs);
|
||||||
inventoryMessage.add(goods, resultValid);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -343,9 +338,7 @@ public class BOMaMtngService {
|
|||||||
StringBuilder returnMsg = new StringBuilder();
|
StringBuilder returnMsg = new StringBuilder();
|
||||||
|
|
||||||
//상품구매수량제한걸렸을 경우
|
//상품구매수량제한걸렸을 경우
|
||||||
if (inventoryMessage.hasShortages()) {
|
if(validKeys.contains("purchsQyLmtt")){
|
||||||
returnMsg.append(inventoryMessage.render());
|
|
||||||
}else if(validKeys.contains("purchsQyLmtt")){
|
|
||||||
|
|
||||||
returnMsg.append("구매수량 제한 상품입니다.");
|
returnMsg.append("구매수량 제한 상품입니다.");
|
||||||
returnMsg.append(System.lineSeparator()); //줄바꿈
|
returnMsg.append(System.lineSeparator()); //줄바꿈
|
||||||
@@ -526,8 +519,6 @@ public class BOMaMtngService {
|
|||||||
BOPreOrderValidVO.builder()
|
BOPreOrderValidVO.builder()
|
||||||
.sopmalCd(StringUtil.isNullToString(goods.get("sopmalCd")))
|
.sopmalCd(StringUtil.isNullToString(goods.get("sopmalCd")))
|
||||||
.goodsInnb(StringUtil.isNullToString(goods.get("goodsInnb")))
|
.goodsInnb(StringUtil.isNullToString(goods.get("goodsInnb")))
|
||||||
.goodsNm(StringUtil.isNullToString(goods.get("goodsNm")))
|
|
||||||
.optionNm(StringUtil.isNullToString(goods.get("option")))
|
|
||||||
.goodsOptnInnb(StringUtil.isNullToString(goods.get("goodsOptnInnb")))
|
.goodsOptnInnb(StringUtil.isNullToString(goods.get("goodsOptnInnb")))
|
||||||
.subsvcInnb(StringUtil.isNullToString(goods.get("subsvcInnb")))
|
.subsvcInnb(StringUtil.isNullToString(goods.get("subsvcInnb")))
|
||||||
.mbrInnb(StringUtil.isNullToString(goods.get("mbrInnb")))
|
.mbrInnb(StringUtil.isNullToString(goods.get("mbrInnb")))
|
||||||
|
|||||||
@@ -1,103 +0,0 @@
|
|||||||
package com.wb.domainserver.domain.admin.instcSle.mtng.service;
|
|
||||||
|
|
||||||
import com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOPreOrderValidVO;
|
|
||||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/** 재고 판정은 변경하지 않고 조회된 재고 수량으로 안내문만 구성한다. */
|
|
||||||
final class InventoryShortageMessage {
|
|
||||||
private final Map<String, Goods> goodsById = new LinkedHashMap<>();
|
|
||||||
|
|
||||||
void add(BOPreOrderValidVO request, List<DataMap> rows) {
|
|
||||||
if (rows.isEmpty()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
boolean subscription = StringUtils.hasText(request.getSubsvcInnb());
|
|
||||||
String key = request.getSopmalCd() + ":" + (subscription
|
|
||||||
? "subscription:" + request.getSubsvcInnb() : "goods:" + request.getGoodsInnb());
|
|
||||||
Goods goods = goodsById.computeIfAbsent(key, ignored -> new Goods());
|
|
||||||
goods.name = StringUtils.hasText(request.getGoodsNm()) ? request.getGoodsNm()
|
|
||||||
: "상품번호 " + request.getGoodsInnb();
|
|
||||||
goods.requested = request.getGoodsTotalQy();
|
|
||||||
goods.unit = "SK".equals(request.getSopmalCd()) ? "병" : "개";
|
|
||||||
String optionKey = subscription ? request.getSubsvcInnb() : request.getGoodsOptnInnb();
|
|
||||||
Option option = goods.options.computeIfAbsent(optionKey, ignored -> new Option());
|
|
||||||
option.name = StringUtils.hasText(request.getOptionNm()) ? request.getOptionNm()
|
|
||||||
: "옵션번호 " + request.getGoodsOptnInnb();
|
|
||||||
option.requested += Long.parseLong(request.getQy());
|
|
||||||
for (DataMap row : rows) {
|
|
||||||
if (row.get("stockGoodsNm") != null && StringUtils.hasText(row.get("stockGoodsNm").toString())) {
|
|
||||||
goods.name = String.valueOf(row.get("stockGoodsNm"));
|
|
||||||
}
|
|
||||||
goods.shortage |= "1".equals(String.valueOf(row.get("invntry")))
|
|
||||||
|| "1".equals(String.valueOf(row.get("invntryPolicy")));
|
|
||||||
option.available = minimum(option.available, row.get("optionAvailableQy"));
|
|
||||||
goods.available = minimum(goods.available, row.get("goodsAvailableQy"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean hasShortages() {
|
|
||||||
return goodsById.values().stream().anyMatch(goods -> goods.shortage);
|
|
||||||
}
|
|
||||||
|
|
||||||
String render() {
|
|
||||||
StringBuilder message = new StringBuilder("다음 상품의 구매 가능한 재고가 부족합니다.");
|
|
||||||
boolean sharedLimit = false;
|
|
||||||
for (Goods goods : goodsById.values()) {
|
|
||||||
if (!goods.shortage) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
message.append("\n\n· ").append(goods.name);
|
|
||||||
if (goods.options.size() == 1) {
|
|
||||||
Option option = goods.options.values().iterator().next();
|
|
||||||
message.append("\n 주문 수량: ").append(goods.requested)
|
|
||||||
.append(goods.unit).append(" / 현재 구매 가능: ")
|
|
||||||
.append(quantity(minimum(option.available, goods.available), goods.unit));
|
|
||||||
} else {
|
|
||||||
sharedLimit = true;
|
|
||||||
message.append("\n 총 주문 수량: ").append(goods.requested)
|
|
||||||
.append(goods.unit).append(" / 상품 전체 재고 한도: ").append(quantity(goods.available, goods.unit));
|
|
||||||
for (Option option : goods.options.values()) {
|
|
||||||
message.append("\n - ").append(option.name).append(": 주문 ")
|
|
||||||
.append(option.requested).append(goods.unit).append(" / 옵션별 구매 가능 ")
|
|
||||||
.append(quantity(minimum(option.available, goods.available), goods.unit));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (sharedLimit) {
|
|
||||||
message.append("\n\n옵션별 가능 수량은 상품 전체 재고 한도 안에서 함께 적용됩니다.");
|
|
||||||
}
|
|
||||||
return message.append("\n\n주문 수량을 줄이거나 해당 상품을 제외한 후 다시 주문해 주세요.").toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Long minimum(Long current, Object value) {
|
|
||||||
if (value == null) {
|
|
||||||
return current;
|
|
||||||
}
|
|
||||||
long quantity = Math.max(0L, Long.parseLong(value.toString()));
|
|
||||||
return current == null ? quantity : Math.min(current, quantity);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static String quantity(Long value, String unit) {
|
|
||||||
return value == null ? "확인 불가" : value + unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final class Goods {
|
|
||||||
String name;
|
|
||||||
String unit;
|
|
||||||
long requested;
|
|
||||||
Long available;
|
|
||||||
boolean shortage;
|
|
||||||
final Map<String, Option> options = new LinkedHashMap<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final class Option {
|
|
||||||
String name;
|
|
||||||
long requested;
|
|
||||||
Long available;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -21,10 +21,6 @@ public class BOPreOrderValidVO {
|
|||||||
/*상품고유번호*/
|
/*상품고유번호*/
|
||||||
private String goodsInnb;
|
private String goodsInnb;
|
||||||
|
|
||||||
private String goodsNm;
|
|
||||||
|
|
||||||
private String optionNm;
|
|
||||||
|
|
||||||
/*상품옵션고유번호*/
|
/*상품옵션고유번호*/
|
||||||
private String goodsOptnInnb;
|
private String goodsOptnInnb;
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package com.wb.domainserver.domain.admin.store.sopmal.mapper;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.wb.domainserver.domain.admin.store.sopmal.vo.Shop;
|
import com.wb.domainserver.domain.admin.store.sopmal.vo.Shop;
|
||||||
import com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO;
|
|
||||||
import com.wb.domainserver.domain.gcone.promtn.coupon.vo.BOCouponVO;
|
import com.wb.domainserver.domain.gcone.promtn.coupon.vo.BOCouponVO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
@@ -203,7 +202,4 @@ public interface BOMaSopmalMapper {
|
|||||||
|
|
||||||
/*전체 쇼핑몰 목록*/
|
/*전체 쇼핑몰 목록*/
|
||||||
List<DataMap> selectSopmalList();
|
List<DataMap> selectSopmalList();
|
||||||
|
|
||||||
// XML 수정 임시
|
|
||||||
public List<DataMap> selectSitemapXml(String sopmalCd);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO;
|
|||||||
import com.wb.domainserver.domain.gcone.goods.goodsinfo.mapper.BOGoodsinfoMapper;
|
import com.wb.domainserver.domain.gcone.goods.goodsinfo.mapper.BOGoodsinfoMapper;
|
||||||
import com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO;
|
import com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.apache.commons.text.StringEscapeUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -843,7 +842,6 @@ public class BOMaSopmalService {
|
|||||||
mapping.put("memor", "MEMOR_USE_AT");
|
mapping.put("memor", "MEMOR_USE_AT");
|
||||||
mapping.put("npay", "NPAY_USE_AT");
|
mapping.put("npay", "NPAY_USE_AT");
|
||||||
mapping.put("kpay", "KPAY_USE_AT");
|
mapping.put("kpay", "KPAY_USE_AT");
|
||||||
mapping.put("stripe", "STRIPE_USE_AT");
|
|
||||||
|
|
||||||
// 모든 매핑된 값의 기본값을 "N"으로 설정
|
// 모든 매핑된 값의 기본값을 "N"으로 설정
|
||||||
for (String key : mapping.values()) {
|
for (String key : mapping.values()) {
|
||||||
@@ -986,43 +984,4 @@ public class BOMaSopmalService {
|
|||||||
return mapper.selectSopmalList();
|
return mapper.selectSopmalList();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 사이트맵 XML
|
|
||||||
* @param sopmalCd
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Transactional
|
|
||||||
public String selectSitemapXml(String sopmalCd) {
|
|
||||||
List<DataMap> resultList = new ArrayList<>();
|
|
||||||
StringBuilder xml = new StringBuilder();
|
|
||||||
|
|
||||||
try {
|
|
||||||
xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
|
|
||||||
xml.append("<?xml-stylesheet type=\"text/css\" href=\"https://www.xml-sitemaps.com/css/sitemap.css\"?>");
|
|
||||||
xml.append("<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns:xhtml=\"http://www.w3.org/1999/xhtml\">\n");
|
|
||||||
|
|
||||||
resultList = mapper.selectSitemapXml(sopmalCd);
|
|
||||||
for (DataMap data : resultList) {
|
|
||||||
xml.append(" <url>");
|
|
||||||
xml.append(" <loc>")
|
|
||||||
.append(StringEscapeUtils.escapeXml11(String.valueOf(data.get("targetUrl"))))
|
|
||||||
.append("</loc>");
|
|
||||||
xml.append(" <lastmod>")
|
|
||||||
.append(StringEscapeUtils.escapeXml11(String.valueOf(data.get("lastModified"))))
|
|
||||||
.append("</lastmod>");
|
|
||||||
xml.append(" <priority>")
|
|
||||||
.append(StringEscapeUtils.escapeXml11(String.valueOf(data.get("priority"))))
|
|
||||||
.append("</priority>");
|
|
||||||
xml.append(" </url>");
|
|
||||||
}
|
|
||||||
|
|
||||||
xml.append("</urlset>");
|
|
||||||
} catch (WnbtRestException wre){
|
|
||||||
throw new WnbtRestException(wre.getMessage());
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error(e.getMessage(), e);
|
|
||||||
}
|
|
||||||
|
|
||||||
return xml.toString();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -393,7 +393,6 @@ public class BOBbsService {
|
|||||||
if (vo.getBbscttRedngAuthorDvCd() != null && "01".equals(vo.getBbscttRedngAuthorDvCd())) {
|
if (vo.getBbscttRedngAuthorDvCd() != null && "01".equals(vo.getBbscttRedngAuthorDvCd())) {
|
||||||
vo.setBbscttRedngAuthorDvCd("[all]");
|
vo.setBbscttRedngAuthorDvCd("[all]");
|
||||||
} else if (vo.getBbscttRedngAuthorDvCd() != null && "02".equals(vo.getBbscttRedngAuthorDvCd())) {
|
} else if (vo.getBbscttRedngAuthorDvCd() != null && "02".equals(vo.getBbscttRedngAuthorDvCd())) {
|
||||||
validateMemberGradeSelection(vo.getBbscttRedngAuthorDvCd_c(), "게시판 읽기");
|
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
for (String mbrInnb : vo.getBbscttRedngAuthorDvCd_c()) {
|
for (String mbrInnb : vo.getBbscttRedngAuthorDvCd_c()) {
|
||||||
@@ -432,8 +431,6 @@ public class BOBbsService {
|
|||||||
if (vo.getBbscttRegistAuthorDvCd() != null && "01".equals(vo.getBbscttRegistAuthorDvCd())) {
|
if (vo.getBbscttRegistAuthorDvCd() != null && "01".equals(vo.getBbscttRegistAuthorDvCd())) {
|
||||||
vo.setBbscttRegistAuthorDvCd("[all]");
|
vo.setBbscttRegistAuthorDvCd("[all]");
|
||||||
} else if (vo.getBbscttRegistAuthorDvCd() != null && "02".equals(vo.getBbscttRegistAuthorDvCd())) {
|
} else if (vo.getBbscttRegistAuthorDvCd() != null && "02".equals(vo.getBbscttRegistAuthorDvCd())) {
|
||||||
validateMemberGradeSelection(vo.getBbscttRegistAuthorDvCd_c(), "게시판 쓰기");
|
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
for (String mbrInnb : vo.getBbscttRegistAuthorDvCd_c()) {
|
for (String mbrInnb : vo.getBbscttRegistAuthorDvCd_c()) {
|
||||||
|
|
||||||
@@ -468,8 +465,6 @@ public class BOBbsService {
|
|||||||
if (vo.getAnswRegistAuthorDvCd() != null && "01".equals(vo.getAnswRegistAuthorDvCd())) {
|
if (vo.getAnswRegistAuthorDvCd() != null && "01".equals(vo.getAnswRegistAuthorDvCd())) {
|
||||||
vo.setAnswRegistAuthorDvCd("[all]");
|
vo.setAnswRegistAuthorDvCd("[all]");
|
||||||
} else if (vo.getAnswRegistAuthorDvCd() != null && "02".equals(vo.getAnswRegistAuthorDvCd())) {
|
} else if (vo.getAnswRegistAuthorDvCd() != null && "02".equals(vo.getAnswRegistAuthorDvCd())) {
|
||||||
validateMemberGradeSelection(vo.getAnswRegistAuthorDvCd_c(), "답글 쓰기");
|
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
for (String mbrInnb : vo.getAnswRegistAuthorDvCd_c()) {
|
for (String mbrInnb : vo.getAnswRegistAuthorDvCd_c()) {
|
||||||
|
|
||||||
@@ -504,8 +499,6 @@ public class BOBbsService {
|
|||||||
if (vo.getCmRegistAuthorDvCd() != null && "01".equals(vo.getCmRegistAuthorDvCd())) {
|
if (vo.getCmRegistAuthorDvCd() != null && "01".equals(vo.getCmRegistAuthorDvCd())) {
|
||||||
vo.setCmRegistAuthorDvCd("[all]");
|
vo.setCmRegistAuthorDvCd("[all]");
|
||||||
} else if (vo.getCmRegistAuthorDvCd() != null && "02".equals(vo.getCmRegistAuthorDvCd())) {
|
} else if (vo.getCmRegistAuthorDvCd() != null && "02".equals(vo.getCmRegistAuthorDvCd())) {
|
||||||
validateMemberGradeSelection(vo.getCmRegistAuthorDvCd_c(), "댓글 쓰기");
|
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
for (String mbrInnb : vo.getCmRegistAuthorDvCd_c()) {
|
for (String mbrInnb : vo.getCmRegistAuthorDvCd_c()) {
|
||||||
|
|
||||||
@@ -692,21 +685,15 @@ public class BOBbsService {
|
|||||||
msgMap.put("bbsid", bbsId);
|
msgMap.put("bbsid", bbsId);
|
||||||
|
|
||||||
} catch (WnbtRestException wre){
|
} catch (WnbtRestException wre){
|
||||||
throw wre;
|
throw new WnbtRestException(wre.getMessage());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
throw new WnbtRestException("게시판 등록 중 오류가 발생했습니다.", e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return msgMap;
|
return msgMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateMemberGradeSelection(String[] memberGradeArr, String authorizationName) {
|
|
||||||
if (memberGradeArr == null || memberGradeArr.length == 0) {
|
|
||||||
throw new WnbtRestException(authorizationName + " 권한의 회원등급을 선택해 주세요.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 게시판 삭제
|
* 게시판 삭제
|
||||||
|
|||||||
@@ -232,9 +232,6 @@ public class BOGnrlbbscttService {
|
|||||||
BOGnrlbbscttVO resultCnt = new BOGnrlbbscttVO();
|
BOGnrlbbscttVO resultCnt = new BOGnrlbbscttVO();
|
||||||
switch (bbsTyCd) {
|
switch (bbsTyCd) {
|
||||||
case "01": //일반게시글 조회
|
case "01": //일반게시글 조회
|
||||||
log.debug("일반게시글 getServerDv : {}",bbsctt.getServerDv());
|
|
||||||
log.debug("일반게시글 getMbrDvCd : {}",bbsctt.getMbrDvCd());
|
|
||||||
log.debug("일반게시글 getSopmalCd : {}",bbsctt.getSopmalCd());
|
|
||||||
resultCnt = mapper.selectBOGnrlBbscttListCnt(bbsctt);
|
resultCnt = mapper.selectBOGnrlBbscttListCnt(bbsctt);
|
||||||
totCnt = resultCnt.getTotCnt();
|
totCnt = resultCnt.getTotCnt();
|
||||||
if (StringUtil.isEmpty(bbsctt.getNtcAt())) {/*공지 제외 검색 조건*/
|
if (StringUtil.isEmpty(bbsctt.getNtcAt())) {/*공지 제외 검색 조건*/
|
||||||
@@ -570,11 +567,19 @@ public class BOGnrlbbscttService {
|
|||||||
Map<String, Object> map = new HashMap<String, Object>();
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
// 게시글 연관상품 조회
|
// 게시글 연관상품 조회
|
||||||
List<DataMap> goodsList = new ArrayList<>();
|
List<DataMap> goodsList = new ArrayList<>();
|
||||||
|
DataMap result = new DataMap();
|
||||||
|
|
||||||
goodsList = mapper.selectBOBbscttDtlGoods(bbsctt);
|
goodsList = mapper.selectBOBbscttDtlGoods(bbsctt);
|
||||||
|
|
||||||
|
/*게시판 설정 > 추천 상품 노출 선택 시 사용자 게시글 상세 상품 노출 */
|
||||||
|
if (!goodsList.isEmpty()) {
|
||||||
|
if ("sopmal".equals(bbsctt.getServerDv())) {
|
||||||
|
result = goodsService.selectBoGoodsRelateList(goodsList);
|
||||||
|
}
|
||||||
|
}
|
||||||
/*사용자 , 관리자 페이지 구분*/
|
/*사용자 , 관리자 페이지 구분*/
|
||||||
if ("sopmal".equals(bbsctt.getServerDv())) {
|
if ("sopmal".equals(bbsctt.getServerDv())) {
|
||||||
map.put("goodsList", goodsList);
|
map.put("goodsList", result);
|
||||||
} else {
|
} else {
|
||||||
map.put("goodsList", goodsList);
|
map.put("goodsList", goodsList);
|
||||||
}
|
}
|
||||||
@@ -912,7 +917,6 @@ public class BOGnrlbbscttService {
|
|||||||
throw new WnbtRestException(wre.getMessage());
|
throw new WnbtRestException(wre.getMessage());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
throw new WnbtRestException("게시글 등록 중 오류가 발생했습니다.", e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return message;
|
return message;
|
||||||
@@ -1099,7 +1103,7 @@ public class BOGnrlbbscttService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*1:1 문의 게시판이 아닌경우만 처리 */
|
/*1:1 문의 게시판이 아닌경우만 처리 */
|
||||||
if(!"12".equals(bbsctt.getBbsTyCd())){
|
if("12".equals(bbsctt.getBbsTyCd())){
|
||||||
//게시글 연관 상품 삭제
|
//게시글 연관 상품 삭제
|
||||||
mapper.deleteBOBbscttGoods(bbsctt);
|
mapper.deleteBOBbscttGoods(bbsctt);
|
||||||
//게시글 연관 상품 등록(fm_boarddata_goods)
|
//게시글 연관 상품 등록(fm_boarddata_goods)
|
||||||
@@ -1130,7 +1134,6 @@ public class BOGnrlbbscttService {
|
|||||||
throw new WnbtRestException(wre.getMessage());
|
throw new WnbtRestException(wre.getMessage());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
throw new WnbtRestException("게시글 수정 중 오류가 발생했습니다.", e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return message;
|
return message;
|
||||||
|
|||||||
@@ -75,8 +75,6 @@ public class BOGnrlbbscttVO extends AbstractVO {
|
|||||||
@Length(max = 16777215, message = "내용")
|
@Length(max = 16777215, message = "내용")
|
||||||
/** 내용 */
|
/** 내용 */
|
||||||
private String cn;
|
private String cn;
|
||||||
/** 내용 */
|
|
||||||
private String relateGoodsWords;
|
|
||||||
/** 조회건수 */
|
/** 조회건수 */
|
||||||
private Integer inqireCnt;
|
private Integer inqireCnt;
|
||||||
/** 댓글건수 */
|
/** 댓글건수 */
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ import com.wb.domainserver.domain.gcone.bbs.cnslt.vo.BOCnsltVO;
|
|||||||
import com.wb.domainserver.domain.gcone.common.service.BOCommonService;
|
import com.wb.domainserver.domain.gcone.common.service.BOCommonService;
|
||||||
import com.wb.domainserver.domain.gcone.goods.purchs.mapper.BOPurchsMapper;
|
import com.wb.domainserver.domain.gcone.goods.purchs.mapper.BOPurchsMapper;
|
||||||
import com.wb.domainserver.domain.gcone.goods.purchs.vo.*;
|
import com.wb.domainserver.domain.gcone.goods.purchs.vo.*;
|
||||||
import com.wb.domainserver.domain.gcone.goods.subsvc.service.BOSubsvcService;
|
|
||||||
import com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO;
|
|
||||||
import com.wb.domainserver.domain.gcone.ordr.ordr.mapper.BOOrdrMapper;
|
import com.wb.domainserver.domain.gcone.ordr.ordr.mapper.BOOrdrMapper;
|
||||||
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrderRestAmtVO;
|
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrderRestAmtVO;
|
||||||
import com.wb.domainserver.exception.WnbtRestException;
|
import com.wb.domainserver.exception.WnbtRestException;
|
||||||
@@ -53,9 +51,6 @@ public class BOOrderService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private BOOrderNoService orderNoService;
|
private BOOrderNoService orderNoService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private BOSubsvcService subsvcService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 관리자 주문 > 주문 등록
|
* 관리자 주문 > 주문 등록
|
||||||
* @param param
|
* @param param
|
||||||
@@ -981,10 +976,6 @@ public class BOOrderService {
|
|||||||
***************************************** */
|
***************************************** */
|
||||||
BOOrderSetleVO setleVO = insertSetle(orderVO, setle, insertedGoodsList, enuri, purchsr); // 결제 정보 등록
|
BOOrderSetleVO setleVO = insertSetle(orderVO, setle, insertedGoodsList, enuri, purchsr); // 결제 정보 등록
|
||||||
|
|
||||||
if (orderVO.getSubsvcInnb() == null && "stripe".equals(setleVO.getPgCmpnyNm())) {
|
|
||||||
setleVO.setGoodsNm(buildStripeGoodsName(insertedGoodsList.get(0).getGoodsNm(), goodsList));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 결제금액 원화로 변경
|
// 결제금액 원화로 변경
|
||||||
// setleVO.setSetleAmt(setleVO.getWonSetleAmt());
|
// setleVO.setSetleAmt(setleVO.getWonSetleAmt());
|
||||||
|
|
||||||
@@ -996,13 +987,6 @@ public class BOOrderService {
|
|||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
||||||
static String buildStripeGoodsName(String firstGoodsName, List<LinkedHashMap> goodsList) {
|
|
||||||
long totalQuantity = goodsList.stream()
|
|
||||||
.mapToLong(goods -> ((Number) goods.get("qy")).longValue())
|
|
||||||
.sum();
|
|
||||||
return totalQuantity > 1 ? firstGoodsName + " 외 " + (totalQuantity - 1) + "병" : firstGoodsName;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void insertCnsltMemo(String sopmalCd, BigInteger ordrInnb, LinkedHashMap purchsr, LinkedHashMap enuri, AnonymousUser user) {
|
public void insertCnsltMemo(String sopmalCd, BigInteger ordrInnb, LinkedHashMap purchsr, LinkedHashMap enuri, AnonymousUser user) {
|
||||||
try{
|
try{
|
||||||
@@ -1247,16 +1231,7 @@ public class BOOrderService {
|
|||||||
|
|
||||||
String goodsNm = "";
|
String goodsNm = "";
|
||||||
|
|
||||||
if (orderVO.getSubsvcInnb() != null) {
|
if (insertedGoodsList.size() > 1) {
|
||||||
BOSubsvcVO subscription = new BOSubsvcVO();
|
|
||||||
subscription.setSopmalCd(sopmalCd);
|
|
||||||
subscription.setSubsvcInnb(orderVO.getSubsvcInnb().toString());
|
|
||||||
DataMap detail = subsvcService.selectBOSubsvcDetail(subscription);
|
|
||||||
goodsNm = detail == null ? "" : StringUtil.isNullToString(detail.get("subsvcNm"));
|
|
||||||
if (!StringUtils.hasText(goodsNm)) {
|
|
||||||
throw new WnbtRestException("구독서비스명을 확인할 수 없습니다. 다시 시도해 주세요.");
|
|
||||||
}
|
|
||||||
} else if (insertedGoodsList.size() > 1) {
|
|
||||||
goodsNm = insertedGoodsList.get(0).getGoodsNm() + " 외" + (insertedGoodsList.size() - 1);
|
goodsNm = insertedGoodsList.get(0).getGoodsNm() + " 외" + (insertedGoodsList.size() - 1);
|
||||||
} else {
|
} else {
|
||||||
goodsNm = insertedGoodsList.get(0).getGoodsNm();
|
goodsNm = insertedGoodsList.get(0).getGoodsNm();
|
||||||
|
|||||||
@@ -101,11 +101,6 @@ public class BOMbrService {
|
|||||||
|
|
||||||
List<DataMap> resultList = null;
|
List<DataMap> resultList = null;
|
||||||
Map<String, Object> resultMap = new HashMap<>();
|
Map<String, Object> resultMap = new HashMap<>();
|
||||||
|
|
||||||
BOMaComncdVO comncdVO = new BOMaComncdVO();
|
|
||||||
comncdVO.setGroupCd("SRCH_DV");
|
|
||||||
bOMbrSrchVO.setSrchDv((String) selectCommCode(comncdVO).get(0).get("cd"));
|
|
||||||
|
|
||||||
// 건수 조회
|
// 건수 조회
|
||||||
Integer totCnt = mapper.selectBOMbrListTotCnt(bOMbrSrchVO);
|
Integer totCnt = mapper.selectBOMbrListTotCnt(bOMbrSrchVO);
|
||||||
// 건수 갯수 페이징vo에 set
|
// 건수 갯수 페이징vo에 set
|
||||||
|
|||||||
@@ -26,38 +26,35 @@ import lombok.EqualsAndHashCode;
|
|||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
public class BOMbrSrchVO extends AbstractVO {
|
public class BOMbrSrchVO extends AbstractVO {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
/**검색어 구분*/
|
/**검색어 구분*/
|
||||||
private String srchKywordDv;
|
private String srchKywordDv;
|
||||||
|
|
||||||
/**검색어 키워드*/
|
/**검색어 키워드*/
|
||||||
private String srchKyword;
|
private String srchKyword;
|
||||||
|
|
||||||
/*검색어 이름*/
|
/*검색어 이름*/
|
||||||
private String srchMbrNm;
|
private String srchMbrNm;
|
||||||
|
|
||||||
/*검색어 아이디*/
|
/*검색어 아이디*/
|
||||||
private String srchKywordID;
|
private String srchKywordID;
|
||||||
|
|
||||||
/*검색어 이메일*/
|
/*검색어 이메일*/
|
||||||
private String srchKywordEmail;
|
private String srchKywordEmail;
|
||||||
|
|
||||||
/*검색어 휴대폰번호*/
|
/*검색어 휴대폰번호*/
|
||||||
private String srchKywordMb;
|
private String srchKywordMb;
|
||||||
|
|
||||||
/*회원고유번호*/
|
/*회원고유번호*/
|
||||||
private String srchMbrInnb;
|
private String srchMbrInnb;
|
||||||
|
|
||||||
/**검색조건 비교 방식*/
|
/**정렬 방식*/
|
||||||
private String srchDv;
|
private String sortDv;
|
||||||
|
|
||||||
/**정렬 방식*/
|
|
||||||
private String sortDv;
|
|
||||||
|
|
||||||
/**쇼핑몰코드*/
|
/**쇼핑몰코드*/
|
||||||
private String sopmalCd;
|
private String sopmalCd;
|
||||||
|
|
||||||
/*회원 구분 코드*/
|
/*회원 구분 코드*/
|
||||||
private String srchMbrDvCd;
|
private String srchMbrDvCd;
|
||||||
|
|
||||||
/*요청 페이지 구분 mngr인지 integ인지*/
|
/*요청 페이지 구분 mngr인지 integ인지*/
|
||||||
|
|||||||
@@ -238,6 +238,13 @@ public interface BOOrdrMapper {
|
|||||||
* @return List<LinkedHashMap>
|
* @return List<LinkedHashMap>
|
||||||
*/
|
*/
|
||||||
public List<LinkedHashMap> selectExcelListByOrder(BOOrdrSrchVO ordrSrchVO);
|
public List<LinkedHashMap> selectExcelListByOrder(BOOrdrSrchVO ordrSrchVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 > 엑셀다운로드 발주서
|
||||||
|
* @param ordrSrchVO
|
||||||
|
* @return List<LinkedHashMap>
|
||||||
|
*/
|
||||||
|
public List<DataMap> selectExcelListPurchOrder(BOOrdrSrchVO ordrSrchVO);
|
||||||
/* ####################################
|
/* ####################################
|
||||||
관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 종료
|
관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 종료
|
||||||
#################################### */
|
#################################### */
|
||||||
@@ -497,40 +504,6 @@ public interface BOOrdrMapper {
|
|||||||
관리자 > 주문 > 주문관리 > 다운로드항목설정 종료
|
관리자 > 주문 > 주문관리 > 다운로드항목설정 종료
|
||||||
#################################### */
|
#################################### */
|
||||||
|
|
||||||
/* ####################################
|
|
||||||
관리자 > 주문 > 주문관리 > 발주서 관리 시작
|
|
||||||
#################################### */
|
|
||||||
/**
|
|
||||||
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 > 발주서 건수
|
|
||||||
* @param ordrSrchVO
|
|
||||||
* @return List<LinkedHashMap>
|
|
||||||
*/
|
|
||||||
public Integer selectExcelListPurchOrderTotCnt(BOOrdrSrchVO ordrSrchVO);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 > 발주서 목록 조회
|
|
||||||
* @param ordrSrchVO
|
|
||||||
* @return List<LinkedHashMap>
|
|
||||||
*/
|
|
||||||
public List<DataMap> selectExcelListPurchOrder(BOOrdrSrchVO ordrSrchVO);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 > 발주서 엑셀다운로드
|
|
||||||
* @param ordrSrchVO
|
|
||||||
* @return List<LinkedHashMap>
|
|
||||||
*/
|
|
||||||
public List<DataMap> selectExcelPoListDwld(BOOrdrSrchVO ordrSrchVO);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 > 엑셀 다운로드 일시 업데이트
|
|
||||||
* @param ordrSrchVO
|
|
||||||
* @return List<LinkedHashMap>
|
|
||||||
*/
|
|
||||||
public Integer updateExcelDownDt(BOOrdrSrchVO ordrSrchVO);
|
|
||||||
/* ####################################
|
|
||||||
관리자 > 주문 > 주문관리 > 발주서 관리 종료
|
|
||||||
#################################### */
|
|
||||||
|
|
||||||
/* ####################################
|
/* ####################################
|
||||||
사용자 > 마이페이지 > MY쇼핑 > 개인결제 시작
|
사용자 > 마이페이지 > MY쇼핑 > 개인결제 시작
|
||||||
#################################### */
|
#################################### */
|
||||||
|
|||||||
@@ -137,9 +137,6 @@ public class BOOrdrLogService {
|
|||||||
} else if ("05".equals(setleTyCd)) { // 가상계좌(에스크로)
|
} else if ("05".equals(setleTyCd)) { // 가상계좌(에스크로)
|
||||||
logDtlCn = mngrOrder + "이(가) 주문접수(가상계좌 에스크로) 하였습니다.";
|
logDtlCn = mngrOrder + "이(가) 주문접수(가상계좌 에스크로) 하였습니다.";
|
||||||
mngrOrder += "주문접수(가상계좌 에스크로)";
|
mngrOrder += "주문접수(가상계좌 에스크로)";
|
||||||
}else if ("stripe".equals(setleTyCd)) { // Stripe(엔화결제)
|
|
||||||
logDtlCn = mngrOrder + "이(가) 주문접수(엔화결제) 하였습니다.";
|
|
||||||
mngrOrder += "주문접수(엔화결제)";
|
|
||||||
} else {
|
} else {
|
||||||
mngrOrder += resCd;
|
mngrOrder += resCd;
|
||||||
logDtlCn = message;
|
logDtlCn = message;
|
||||||
|
|||||||
@@ -3,15 +3,12 @@ package com.wb.domainserver.domain.gcone.ordr.ordr.service;
|
|||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.nimbusds.jose.shaded.gson.Gson;
|
import com.nimbusds.jose.shaded.gson.Gson;
|
||||||
import com.stripe.StripeClient;
|
|
||||||
import com.stripe.model.Charge;
|
|
||||||
import com.stripe.model.Charge.PaymentMethodDetails;
|
|
||||||
import com.stripe.model.PaymentIntent;
|
|
||||||
import com.stripe.model.checkout.Session;
|
|
||||||
import com.wb.domainserver.common.prop.PropertyService;
|
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.store.sopmal.mapper.BOMaSopmalMapper;
|
||||||
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
|
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.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.mapper.BOPurchsMapper;
|
||||||
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOOrderNoService;
|
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.BOOrderService;
|
||||||
@@ -59,7 +56,9 @@ import org.springframework.util.StringUtils;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.time.*;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
import java.time.ZoneOffset;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.format.DateTimeParseException;
|
import java.time.format.DateTimeParseException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -683,6 +682,15 @@ public class BOOrdrService{
|
|||||||
return mapper.selectExcelListByOrder(ordrSrchVO);
|
return mapper.selectExcelListByOrder(ordrSrchVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 > 엑셀다운로드 발주서
|
||||||
|
* @param ordrSrchVO
|
||||||
|
* @return List<LinkedHashMap>
|
||||||
|
*/
|
||||||
|
public List<DataMap> selectExcelListPurchOrder(BOOrdrSrchVO ordrSrchVO) {
|
||||||
|
return mapper.selectExcelListPurchOrder(ordrSrchVO);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 > 주문내역서 정보 조회
|
* 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 > 주문내역서 정보 조회
|
||||||
* @param ordrVO
|
* @param ordrVO
|
||||||
@@ -1299,49 +1307,6 @@ public class BOOrdrService{
|
|||||||
관리자 > 주문 > 주문관리 > 다운로드항목설정 종료
|
관리자 > 주문 > 주문관리 > 다운로드항목설정 종료
|
||||||
#################################### */
|
#################################### */
|
||||||
|
|
||||||
/* ####################################
|
|
||||||
관리자 > 주문 > 주문관리 > 발주서 관리 시작
|
|
||||||
#################################### */
|
|
||||||
/**
|
|
||||||
* 관리자 > 주문 > 주문관리 > 발주서 다운로드 > 발주서 목록 조회
|
|
||||||
* @param ordrSrchVO
|
|
||||||
* @return List<LinkedHashMap>
|
|
||||||
*/
|
|
||||||
public List<DataMap> selectExcelPoList(BOOrdrSrchVO ordrSrchVO) {
|
|
||||||
List<DataMap> excelListPO = null;
|
|
||||||
|
|
||||||
// 건수 조회
|
|
||||||
Integer totCnt = mapper.selectExcelListPurchOrderTotCnt(ordrSrchVO);
|
|
||||||
ordrSrchVO.getPaginationInfo().setTotalRecordCount(totCnt);
|
|
||||||
|
|
||||||
if(totCnt > 0) {
|
|
||||||
excelListPO = mapper.selectExcelListPurchOrder(ordrSrchVO);
|
|
||||||
}
|
|
||||||
|
|
||||||
return excelListPO;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 관리자 > 주문 > 주문관리 > 발주서 다운로드 > 발주서 다운로드
|
|
||||||
* @param ordrSrchVO
|
|
||||||
* @return List<LinkedHashMap>
|
|
||||||
*/
|
|
||||||
public List<DataMap> selectExcelPoListDwld(BOOrdrSrchVO ordrSrchVO) {
|
|
||||||
return mapper.selectExcelPoListDwld(ordrSrchVO);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 관리자 > 주문 > 주문관리 > 발주서 다운로드 > 엑셀 다운로드 일시 업데이트
|
|
||||||
* @param ordrSrchVO
|
|
||||||
* @return List<LinkedHashMap>
|
|
||||||
*/
|
|
||||||
public Integer updateExcelDownDt(BOOrdrSrchVO ordrSrchVO) {
|
|
||||||
return mapper.updateExcelDownDt(ordrSrchVO);
|
|
||||||
}
|
|
||||||
/* ####################################
|
|
||||||
관리자 > 주문 > 주문관리 > 발주서 관리 종료
|
|
||||||
#################################### */
|
|
||||||
|
|
||||||
/* ####################################
|
/* ####################################
|
||||||
관리자 > 주문 > 개인결제관리 시작
|
관리자 > 주문 > 개인결제관리 시작
|
||||||
#################################### */
|
#################################### */
|
||||||
@@ -3804,7 +3769,7 @@ public class BOOrdrService{
|
|||||||
setleAmt = setleAmt.add(dlvyAmt).subtract(dlvyCouponDscntAmt).subtract(enuriAmt).subtract(useMlgAmt).subtract(useCashMlgAmt).compareTo(BigDecimal.ZERO) > 0 ? setleAmt.add(dlvyAmt).subtract(dlvyCouponDscntAmt).subtract(enuriAmt).subtract(useMlgAmt).subtract(useCashMlgAmt) : BigDecimal.ZERO;
|
setleAmt = setleAmt.add(dlvyAmt).subtract(dlvyCouponDscntAmt).subtract(enuriAmt).subtract(useMlgAmt).subtract(useCashMlgAmt).compareTo(BigDecimal.ZERO) > 0 ? setleAmt.add(dlvyAmt).subtract(dlvyCouponDscntAmt).subtract(enuriAmt).subtract(useMlgAmt).subtract(useCashMlgAmt) : BigDecimal.ZERO;
|
||||||
// 환율계산
|
// 환율계산
|
||||||
setleAmtKr = setleAmt.multiply(buyRate);
|
setleAmtKr = setleAmt.multiply(buyRate);
|
||||||
setleAmtKr = setleAmtKr.setScale(-1, RoundingMode.DOWN);
|
setleAmtKr = setleAmtKr.setScale(0,RoundingMode.HALF_UP);
|
||||||
lmttUseMlg = goodsAmt.subtract(dscntAmt.add(cartCouponDscntAmt));
|
lmttUseMlg = goodsAmt.subtract(dscntAmt.add(cartCouponDscntAmt));
|
||||||
log.debug(" 결제 예정 금액 : {}", setleAmt);
|
log.debug(" 결제 예정 금액 : {}", setleAmt);
|
||||||
|
|
||||||
@@ -5613,123 +5578,6 @@ public class BOOrdrService{
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > Stirpe 결제 정보 등록
|
|
||||||
* @param payVO
|
|
||||||
* @return Map<String, Object>
|
|
||||||
*/
|
|
||||||
@Transactional
|
|
||||||
public Map<String, Object> insertStripeSetle(Session stripe, BOPayVO payVO) throws Exception {
|
|
||||||
|
|
||||||
boolean payResult = true;
|
|
||||||
Map<String, Object> content = new HashMap<>();
|
|
||||||
BOOrderPgLogVO orderPgLogVO = new BOOrderPgLogVO();
|
|
||||||
|
|
||||||
orderPgLogVO.setOrdrInnb(new BigInteger(payVO.getOrderId()));
|
|
||||||
orderPgLogVO.setSopmalCd(payVO.getSopmalCd());
|
|
||||||
orderPgLogVO.setPgCmpnyNm(payVO.getPgCmpnyNm());
|
|
||||||
orderPgLogVO.setSetlerNm(payVO.getSetlerNm());
|
|
||||||
orderPgLogVO.setSetleMthCd(payVO.getSetleTyCd());
|
|
||||||
|
|
||||||
try{
|
|
||||||
|
|
||||||
// 1. 주문상태 수정 =====================================================
|
|
||||||
BOOrderVO orderVO = new BOOrderVO();
|
|
||||||
orderVO.setSopmalCd(payVO.getSopmalCd());
|
|
||||||
orderVO.setOrdrInnb(new BigInteger(payVO.getOrderId()));
|
|
||||||
orderVO.setOrdrSttusCd("25"); // 주문상태코드(25:결제확인)
|
|
||||||
|
|
||||||
if (StringUtils.hasText(payVO.getMbrInnb())) {
|
|
||||||
orderVO.setMbrInnb(new BigInteger(payVO.getMbrInnb()));
|
|
||||||
}
|
|
||||||
|
|
||||||
log.info("insertStripeSetle service start ::: ");
|
|
||||||
|
|
||||||
// 주문 공통 전처리 ( 상태체크, 상태변경, 마일리지, 쿠폰, GC머니 )
|
|
||||||
orderCommService.commonOrderPreProcess(payVO, orderVO);
|
|
||||||
|
|
||||||
/* ===============================================
|
|
||||||
결제 API >> DB select로 진행함
|
|
||||||
================================================== */
|
|
||||||
StripeClient stripeClient = payService.createStripeClient(payVO.getSopmalCd());
|
|
||||||
int installmentCount = 0;
|
|
||||||
PaymentIntent paymentIntent = stripeClient.v1()
|
|
||||||
.paymentIntents()
|
|
||||||
.retrieve(stripe.getPaymentIntent());
|
|
||||||
Charge charge = paymentIntent.getLatestChargeObject();
|
|
||||||
if(charge != null) {
|
|
||||||
PaymentMethodDetails paymentMethodDetails = charge.getPaymentMethodDetails();
|
|
||||||
if(paymentMethodDetails != null) {
|
|
||||||
PaymentMethodDetails.Card card = paymentMethodDetails.getCard();
|
|
||||||
if (card != null && card.getInstallments() != null) {
|
|
||||||
PaymentMethodDetails.Card.Installments installments = card.getInstallments();
|
|
||||||
if (installments.getPlan() != null && installments.getPlan().getCount() != null) {
|
|
||||||
installmentCount = Integer.parseInt(installments.getPlan().getCount().toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ===============================================
|
|
||||||
5. FM_ORDER_PG_LOG 등록값 셋팅
|
|
||||||
================================================== */
|
|
||||||
orderPgLogVO.setDelngNb(StringUtil.isNullToString(stripe.getPaymentIntent())); // 거래번호 (결제키)
|
|
||||||
orderPgLogVO.setConfmDt(StringUtil.isNullToString(Instant.ofEpochSecond(stripe.getCreated()).atZone(ZoneId.of("Asia/Seoul")).toLocalDateTime())); // 승인일시
|
|
||||||
orderPgLogVO.setApvlnb(StringUtil.isNullToString("")); //승인번호
|
|
||||||
orderPgLogVO.setCardCmpnyCd(StringUtil.isNullToString("")); //카드사코드
|
|
||||||
orderPgLogVO.setCardCmpnyNm(StringUtil.isNullToString("")); //카드사명
|
|
||||||
orderPgLogVO.setNintrAt(StringUtil.isNullToString("")); //무이자여부
|
|
||||||
orderPgLogVO.setInstlmtMtCnt(installmentCount); //할부개월수
|
|
||||||
orderPgLogVO.setDelngAmt(stripe.getAmountTotal() != null ? new BigDecimal(stripe.getAmountTotal()) : BigDecimal.valueOf(0));
|
|
||||||
orderPgLogVO.setEscwAt("N"); // 에스크로여부
|
|
||||||
orderPgLogVO.setVirtlAcntVrifyKy(""); //매출증빙영수증URL
|
|
||||||
orderPgLogVO.setRsltMssageCn("정상처리-카드거래");
|
|
||||||
orderPgLogVO.setRsltCd("0000");
|
|
||||||
|
|
||||||
// 6. FM_ORDER_SETLE 수정 ==============================================
|
|
||||||
BOOrderSetleVO orderSetleVO = new BOOrderSetleVO();
|
|
||||||
orderSetleVO.setSopmalCd(payVO.getSopmalCd());
|
|
||||||
orderSetleVO.setOrdrInnb(new BigInteger(payVO.getOrderId()));
|
|
||||||
orderSetleVO.setPgInnb(orderPgLogVO.getDelngNb());
|
|
||||||
orderSetleVO.setCredtcardApvlnb(orderPgLogVO.getApvlnb());
|
|
||||||
orderSetleVO.setSetleTyCd(payVO.getSetleTyCd());
|
|
||||||
//orderSetleVO.setSetleMid(StringUtil.isNullToString(mapper.selectBOSopSetleMidKeyInqire(payVO))); // 쇼핑몰 결제 MID(상점키) 조회
|
|
||||||
|
|
||||||
log.info("insertStripeSetle service StripePayMap_orderSetleVO ::: {}", orderSetleVO);
|
|
||||||
|
|
||||||
purchsMapper.updateOrderSetle(orderSetleVO);
|
|
||||||
|
|
||||||
log.info("insertStripeSetle service StripePayMap_orderSetleVO end::: ");
|
|
||||||
|
|
||||||
content.put("status", "0");
|
|
||||||
content.put("message", "Stripe 결제 정보 등록을 완료 하였습니다.");
|
|
||||||
|
|
||||||
try {
|
|
||||||
selectBOOrdrMssageSndngProcs(orderVO);
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.debug("{} 메시지 발송 실패", payVO.getOrderId());
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (WnbtRestException wre) {
|
|
||||||
log.error("insertStripeSetle1 WnbtRestException : ", wre);
|
|
||||||
payResult = false;
|
|
||||||
throw wre;
|
|
||||||
} catch (Exception wre) {
|
|
||||||
log.error("insertStripeSetle1 Exception : ", wre);
|
|
||||||
payResult = false;
|
|
||||||
throw wre;
|
|
||||||
} finally {
|
|
||||||
log.info("insertStripeSetle1 order finally !!!!! {} ", payVO.getOrderId());
|
|
||||||
// FM_ORDER_PG_LOG 등록
|
|
||||||
ordrLogService.insertBOOrderPgLog(orderPgLogVO);
|
|
||||||
// 주문 로그
|
|
||||||
ordrLogService.insertSetleOrderLog(payVO, payResult, "0000", "Stripe 결제 실패 [결제 정보 NULL]");
|
|
||||||
}
|
|
||||||
|
|
||||||
return content;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -5908,16 +5756,6 @@ public class BOOrdrService{
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Stripe 주문 상태 조회
|
|
||||||
* @param ordrVO
|
|
||||||
* @return Map<String, Object>
|
|
||||||
*/
|
|
||||||
public DataMap selectOrdrSttus(BOOrdrVO ordrVO) {
|
|
||||||
return mapper.selectOrdrDtl(ordrVO);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > 주문완료 정보 조회
|
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > 주문완료 정보 조회
|
||||||
* @param ordrVO
|
* @param ordrVO
|
||||||
|
|||||||
@@ -40,9 +40,6 @@ public class BOOrdrShippingVO extends AbstractVO {
|
|||||||
/** 받는자휴대폰번호 */
|
/** 받는자휴대폰번호 */
|
||||||
private String recpntMbtlnb;
|
private String recpntMbtlnb;
|
||||||
|
|
||||||
/** 개인통관부호 */
|
|
||||||
private String cstmclerCd;
|
|
||||||
|
|
||||||
/** 배송지역코드 */
|
/** 배송지역코드 */
|
||||||
private String dlvylcAreaCd;
|
private String dlvylcAreaCd;
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,6 @@ import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
|||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
public class BOOrdrSrchVO extends AbstractVO{
|
public class BOOrdrSrchVO extends AbstractVO{
|
||||||
@@ -86,15 +82,7 @@ public class BOOrdrSrchVO extends AbstractVO{
|
|||||||
|
|
||||||
private String[] srchOrdrInnbs; // 주문번호 배열
|
private String[] srchOrdrInnbs; // 주문번호 배열
|
||||||
|
|
||||||
private String[] srchOrdrDlvyInnbs; // 배송번호 배열
|
|
||||||
|
|
||||||
private List<Map<String, String>> srchInnbPairs; // 발주서 주키 배열
|
|
||||||
|
|
||||||
private String srchDatePeriod; // 날짜구간코드
|
private String srchDatePeriod; // 날짜구간코드
|
||||||
|
|
||||||
private String[] dlvylcAreaCds; // 배송지역코드
|
|
||||||
|
|
||||||
private String excelInclude; // 엑셀 다운여부
|
|
||||||
/*
|
/*
|
||||||
####################################
|
####################################
|
||||||
전체 주문 조회 검색 추가 조건 종료
|
전체 주문 조회 검색 추가 조건 종료
|
||||||
|
|||||||
@@ -20,10 +20,6 @@ import java.util.Map;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.nimbusds.jose.shaded.gson.Gson;
|
import com.nimbusds.jose.shaded.gson.Gson;
|
||||||
import com.stripe.StripeClient;
|
|
||||||
import com.stripe.exception.StripeException;
|
|
||||||
import com.stripe.model.Event;
|
|
||||||
import com.stripe.net.Webhook;
|
|
||||||
import com.wb.domainserver.domain.gcone.goods.purchs.mapper.BOPurchsMapper;
|
import com.wb.domainserver.domain.gcone.goods.purchs.mapper.BOPurchsMapper;
|
||||||
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrLogService;
|
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrLogService;
|
||||||
import com.wb.domainserver.exception.WnbtRestException;
|
import com.wb.domainserver.exception.WnbtRestException;
|
||||||
@@ -1573,11 +1569,10 @@ public class BOPayService{
|
|||||||
//요청코드
|
//요청코드
|
||||||
String authKey = resultMap.get("kcpSecretKey").toString();
|
String authKey = resultMap.get("kcpSecretKey").toString();
|
||||||
String cpId = resultMap.get("kcpMid").toString();
|
String cpId = resultMap.get("kcpMid").toString();
|
||||||
// 개발서버 네이버페이 CPID 관련 적용 취소
|
if ("naverpay".equals(payVO.getModGubun())) {
|
||||||
// if ("naverpay".equals(payVO.getModGubun())) {
|
authKey = resultMap.get("bpaySecretKey").toString();
|
||||||
// authKey = resultMap.get("bpaySecretKey").toString();
|
cpId = resultMap.get("bpayMid").toString();
|
||||||
// cpId = resultMap.get("bpayMid").toString();
|
}
|
||||||
// }
|
|
||||||
|
|
||||||
String amount = payVO.getCancelAmount(); //취소금액
|
String amount = payVO.getCancelAmount(); //취소금액
|
||||||
String trxId = payVO.getTno(); //거래번호
|
String trxId = payVO.getTno(); //거래번호
|
||||||
@@ -1748,32 +1743,5 @@ public class BOPayService{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* stripeClient 생성
|
|
||||||
* @param sopmalCd
|
|
||||||
*/
|
|
||||||
public StripeClient createStripeClient(String sopmalCd) throws StripeException {
|
|
||||||
String stripeSecretKey = selectPayLink(sopmalCd).get("stripeSecretKey").toString();
|
|
||||||
StripeClient stripeClient = new StripeClient(stripeSecretKey);
|
|
||||||
|
|
||||||
return stripeClient;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* stripe WebhookEvent 생성
|
|
||||||
* @param payload
|
|
||||||
* @param sigHeader
|
|
||||||
*/
|
|
||||||
public Event createWebhookEvent(String payload, String sigHeader, String sopmalCd) throws StripeException {
|
|
||||||
String stripeWebhookKey = selectPayLink(sopmalCd).get("stripeWebhookKey").toString();
|
|
||||||
Event event = Webhook.constructEvent(
|
|
||||||
payload,
|
|
||||||
sigHeader,
|
|
||||||
stripeWebhookKey
|
|
||||||
);
|
|
||||||
|
|
||||||
return event;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
package com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.service;
|
package com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.service;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.stripe.StripeClient;
|
|
||||||
import com.stripe.model.Refund;
|
|
||||||
import com.stripe.param.RefundCreateParams;
|
|
||||||
import com.wb.domainserver.domain.gcone.goods.goods.service.BOGoodsService;
|
import com.wb.domainserver.domain.gcone.goods.goods.service.BOGoodsService;
|
||||||
import com.wb.domainserver.domain.gcone.goods.purchs.mapper.BOPurchsMapper;
|
import com.wb.domainserver.domain.gcone.goods.purchs.mapper.BOPurchsMapper;
|
||||||
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOOrderService;
|
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOOrderService;
|
||||||
@@ -1122,8 +1119,7 @@ public class BORtngudrefndService {
|
|||||||
payVO.setMemorSetleAt("Y");
|
payVO.setMemorSetleAt("Y");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 개발서버 네이버페이 CPID 구분 적용 취소
|
payVO.setModGubun(setle.getPgCmpnyNm()); //결제키 구분용
|
||||||
// payVO.setModGubun(setle.getPgCmpnyNm()); //결제키 구분용
|
|
||||||
if ("kiwoom".equals(setle.getPgCmpnyNm())) {
|
if ("kiwoom".equals(setle.getPgCmpnyNm())) {
|
||||||
payVO.setPayMethod("CARD");
|
payVO.setPayMethod("CARD");
|
||||||
} else if ("naverpay".equals(setle.getPgCmpnyNm())) {
|
} else if ("naverpay".equals(setle.getPgCmpnyNm())) {
|
||||||
@@ -1154,30 +1150,6 @@ public class BORtngudrefndService {
|
|||||||
throw new WnbtRestException("잘못된 요청입니다. 관리자에게 문의하세요.");
|
throw new WnbtRestException("잘못된 요청입니다. 관리자에게 문의하세요.");
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if ("stripe".equals(setle.getPgCmpnyNm())) {
|
|
||||||
log.debug("stripe 취소 진입");
|
|
||||||
|
|
||||||
StripeClient stripeClient = payService.createStripeClient(sopmalCd);
|
|
||||||
RefundCreateParams params =
|
|
||||||
RefundCreateParams.builder()
|
|
||||||
.setPaymentIntent(setle.getPgInnb())
|
|
||||||
.setAmount(Long.valueOf(cancelAmt))
|
|
||||||
.build();
|
|
||||||
Refund refund = stripeClient.v1().refunds().create(params);
|
|
||||||
String resultCode = refund.getStatus();
|
|
||||||
|
|
||||||
if ("succeeded".equals(resultCode)) {
|
|
||||||
// succeeded : 취소성공
|
|
||||||
log.debug(resultCode);
|
|
||||||
message.put("setleStatus", resultCode);
|
|
||||||
message.put("setleMessage", "Refund is expected to arrive in customer’s bank");
|
|
||||||
} else {
|
|
||||||
log.debug(resultCode);
|
|
||||||
message.put("setleStatus", resultCode);
|
|
||||||
message.put("setleMessage", resultCode);
|
|
||||||
logDtlCn = "잘못된 요청입니다. 관리자에게 문의하세요.";
|
|
||||||
throw new WnbtRestException("잘못된 요청입니다. 관리자에게 문의하세요.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -197,12 +197,11 @@ public class MngrLoginController {
|
|||||||
log.debug("리프레쉬 토큰이 없는 경우 realm :: {}", realm);
|
log.debug("리프레쉬 토큰이 없는 경우 realm :: {}", realm);
|
||||||
|
|
||||||
//엑세스토큰 삭제
|
//엑세스토큰 삭제
|
||||||
CookieUtils.deleteCookie("ACT","/", request, response);
|
CookieUtils.deleteCookie("ACT","/"+realm, request, response);
|
||||||
CookieUtils.deleteCookie("RFT","/" + realm + "/tokens/refresh", request, response);
|
CookieUtils.deleteCookie("token_expire","/"+realm, request, response);
|
||||||
CookieUtils.deleteCookie("token_expire","/", request, response);
|
|
||||||
|
|
||||||
response.sendRedirect("/"+realm);
|
response.sendRedirect("/"+realm);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//리프레쉬 토큰 있을 경우(존재한다는 자체가 refresh토큰이 만료된 상태가 아님)
|
//리프레쉬 토큰 있을 경우(존재한다는 자체가 refresh토큰이 만료된 상태가 아님)
|
||||||
|
|||||||
@@ -677,8 +677,6 @@ public class MngrMbrController {
|
|||||||
content.put("sex", sex);
|
content.put("sex", sex);
|
||||||
content.put("grad", grad);
|
content.put("grad", grad);
|
||||||
|
|
||||||
log.debug("BOMbrSrchVO : {}", vo);
|
|
||||||
|
|
||||||
model.addAttribute("resultMap", content);
|
model.addAttribute("resultMap", content);
|
||||||
// responseHandler.handleResponse(
|
// responseHandler.handleResponse(
|
||||||
// sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/mbr/mbr/selectBOMarketingTrgetSrchPopupForm", vo),
|
// sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/mbr/mbr/selectBOMarketingTrgetSrchPopupForm", vo),
|
||||||
|
|||||||
@@ -45,12 +45,13 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import org.springframework.web.bind.annotation.CookieValue;
|
import org.springframework.web.bind.annotation.CookieValue;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -625,7 +626,137 @@ public class OrdrmngrController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 발주서 엑셀다운로드
|
||||||
|
* @param response
|
||||||
|
* @param ordrSrchVO
|
||||||
|
* @return ResponseEntity<WnbtResponse>
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.PUBLIC)
|
||||||
|
@RequestMapping(value="/selectExcelPoDwldListInqire")
|
||||||
|
public void selectPurchOrderExcelList(HttpServletResponse response, BOOrdrSrchVO ordrSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||||
|
String secretKey = commonService.selectSecretkey();
|
||||||
|
ordrSrchVO.setSecretKey(secretKey);
|
||||||
|
ordrSrchVO.setSopmalCd(authSopmalCd);
|
||||||
|
|
||||||
|
//엑셀 항목별 제목에 출력될 내용 설정
|
||||||
|
LinkedHashMap<String, String> headerMap = new LinkedHashMap<String, String>();
|
||||||
|
List<String> headerValues = List.of(
|
||||||
|
"날짜",
|
||||||
|
"업체코드",
|
||||||
|
"업체명",
|
||||||
|
"업체TEL",
|
||||||
|
"업체주소",
|
||||||
|
"특별통관업체명",
|
||||||
|
"특별통관번호",
|
||||||
|
"주문번호",
|
||||||
|
"용도구분",
|
||||||
|
"수취인",
|
||||||
|
"수취인TEL",
|
||||||
|
"수취인HP",
|
||||||
|
"개인통관고유부호",
|
||||||
|
"우편번호",
|
||||||
|
"주소",
|
||||||
|
"나머지주소",
|
||||||
|
"메모",
|
||||||
|
"고객 구입사이트",
|
||||||
|
"무게",
|
||||||
|
"포장개수",
|
||||||
|
"HS CODE",
|
||||||
|
"상거래유형",
|
||||||
|
"내용물",
|
||||||
|
"Unit Value",
|
||||||
|
"상품개수",
|
||||||
|
"Value",
|
||||||
|
"Brand",
|
||||||
|
"사전식품신고 종류",
|
||||||
|
"제조국",
|
||||||
|
"제조회사명",
|
||||||
|
"중문상품명",
|
||||||
|
"Shipper 구입사이트",
|
||||||
|
"판매중개업체명",
|
||||||
|
"판매중개업체 등록부호",
|
||||||
|
"구매(배송)대행업체명",
|
||||||
|
"구매(배송)대행업체 등록부호",
|
||||||
|
"해외판매자명",
|
||||||
|
"해외판매자 등록부호",
|
||||||
|
"사이트 주문번호"
|
||||||
|
);
|
||||||
|
for (int i = 0; i < headerValues.size(); i++) {
|
||||||
|
headerMap.put(String.format("item%02d", i + 1), headerValues.get(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
//엑셀 항목에 출력될 내용 설정
|
||||||
|
List<DataMap> resultList = service.selectExcelListPurchOrder(ordrSrchVO);
|
||||||
|
List<Map<String, Object>> excelList = new ArrayList<>();
|
||||||
|
if (resultList != null) {
|
||||||
|
for (int i = 0; i < resultList.size(); i++) {
|
||||||
|
HashMap<String, Object> dataMap = new HashMap<>();
|
||||||
|
// int cellInt = 1; // 셀 타입 = 숫자
|
||||||
|
List<Object> dataValues = Arrays.asList(
|
||||||
|
resultList.get(i).get("ordrRceptDt"),
|
||||||
|
resultList.get(i).get("entrpsCd"),
|
||||||
|
resultList.get(i).get("entrpsNm"),
|
||||||
|
resultList.get(i).get("entrpsTel"),
|
||||||
|
resultList.get(i).get("entrpsAdres"),
|
||||||
|
resultList.get(i).get("spclCstmclerEntrps"),
|
||||||
|
resultList.get(i).get("spclCstmclerCd"),
|
||||||
|
resultList.get(i).get("ordrInnb"),
|
||||||
|
resultList.get(i).get("purpsDv"),
|
||||||
|
resultList.get(i).get("recpntNm"),
|
||||||
|
resultList.get(i).get("recpntMbtlnb"),
|
||||||
|
resultList.get(i).get("recpntHp"),
|
||||||
|
resultList.get(i).get("cstmclerCd"),
|
||||||
|
resultList.get(i).get("dlvylcZip"),
|
||||||
|
resultList.get(i).get("dlvylcRnmLnbAdres"),
|
||||||
|
resultList.get(i).get("dlvylcAdresDtl"),
|
||||||
|
resultList.get(i).get("dlvyMssageCn"),
|
||||||
|
resultList.get(i).get("cstmrPurchsSite"),
|
||||||
|
resultList.get(i).get("realWt"),
|
||||||
|
resultList.get(i).get("packageCnt"),
|
||||||
|
resultList.get(i).get("hscode"),
|
||||||
|
resultList.get(i).get("cmmrcTy"),
|
||||||
|
resultList.get(i).get("cn"),
|
||||||
|
resultList.get(i).get("unitValue"),
|
||||||
|
resultList.get(i).get("ordrQy"),
|
||||||
|
resultList.get(i).get("value"),
|
||||||
|
resultList.get(i).get("brand"),
|
||||||
|
resultList.get(i).get("preFoodDcl"),
|
||||||
|
resultList.get(i).get("provdNation"),
|
||||||
|
resultList.get(i).get("provdCmpnyNm"),
|
||||||
|
resultList.get(i).get("chnlngGoodsNm"),
|
||||||
|
resultList.get(i).get("shipperPurchsSite"),
|
||||||
|
resultList.get(i).get("sleAgntEntrpsNm"),
|
||||||
|
resultList.get(i).get("sleAgntEntrpsRegistCd"),
|
||||||
|
resultList.get(i).get("purchsDlvyAgencyNm"),
|
||||||
|
resultList.get(i).get("purchsDlvyAgencyRegistCd"),
|
||||||
|
resultList.get(i).get("ovseaSelerNm"),
|
||||||
|
resultList.get(i).get("ovseaSelerRegistCd"),
|
||||||
|
resultList.get(i).get("siteOrdrInnb")
|
||||||
|
);
|
||||||
|
|
||||||
|
for (int j = 0; j < dataValues.size(); j++) {
|
||||||
|
dataMap.put(String.format("item%02d", j + 1), dataValues.get(j));
|
||||||
|
}
|
||||||
|
excelList.add(dataMap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************/
|
||||||
|
try {
|
||||||
|
//엑셀생성 및 다운로드
|
||||||
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
String excelFileName = "발주서_";
|
||||||
|
|
||||||
|
excelFileName += String.format("%s~%s", ordrSrchVO.getSrchStartDate(), ordrSrchVO.getSrchEndDate()); // 엑셀 다운로드 파일명
|
||||||
|
|
||||||
|
String encodedFileName = URLEncoder.encode(excelFileName, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20");
|
||||||
|
ExcelDownloadUtil.createExcel(encodedFileName, headerMap, excelList, response);
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
log.error("엑셀다운로드 중 오류가 발생하였습니다.", ioe);
|
||||||
|
throw new WnbtRestException("엑셀다운로드 중 오류가 발생하였습니다.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 주문내역서 팝업 화면 이동
|
* 주문내역서 팝업 화면 이동
|
||||||
@@ -1061,14 +1192,6 @@ public class OrdrmngrController {
|
|||||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||||
}
|
}
|
||||||
|
|
||||||
String cstmclerCd = ordrShippingVO.getCstmclerCd();
|
|
||||||
String cstmclerCdReg = "^P\\d{12}$";
|
|
||||||
if (cstmclerCd == null || cstmclerCd.trim().isEmpty()) {
|
|
||||||
throw new WnbtRestException("개인통관번호은(는) 필수 입력값입니다.");
|
|
||||||
}else if (!cstmclerCd.matches(cstmclerCdReg)) {
|
|
||||||
throw new WnbtRestException("개인통관번호는 P로 시작하는 13자리 부호만 입력할 수 있습니다.");
|
|
||||||
}
|
|
||||||
|
|
||||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
ordrShippingVO.setUpdusr(user.getUserInnb());
|
ordrShippingVO.setUpdusr(user.getUserInnb());
|
||||||
|
|
||||||
@@ -1695,239 +1818,6 @@ public class OrdrmngrController {
|
|||||||
다운로드항목설정 종료
|
다운로드항목설정 종료
|
||||||
#################################### */
|
#################################### */
|
||||||
|
|
||||||
/* ####################################
|
|
||||||
발주서 관리 시작
|
|
||||||
#################################### */
|
|
||||||
/**
|
|
||||||
* 발주서 관리 화면 이동
|
|
||||||
* @param ordrSrchVO
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
@Policy(AuthPolicy.RESTRICTED)
|
|
||||||
@RequestMapping(value="/selectExcelPoListInqireRForm")
|
|
||||||
public String selectExcelPoListInqireForm(ModelMap model, BOOrdrSrchVO ordrSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
|
||||||
ordrSrchVO.setSopmalCd(authSopmalCd);
|
|
||||||
model.addAttribute("sopmalCd", ordrSrchVO.getSopmalCd());
|
|
||||||
model.addAttribute("ordrSrchVO", ordrSrchVO);
|
|
||||||
|
|
||||||
// 공통코드 호출
|
|
||||||
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
|
|
||||||
bOMaComncdVO.setGroupCd("NATION_CD"); // 국가코드(NATION_CD)
|
|
||||||
model.addAttribute("nationCdList", bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO));
|
|
||||||
|
|
||||||
return "mngr/ordr/ordrmngr/PurchOrdrListInqireRForm";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 발주서 목록 조회
|
|
||||||
* @param ordrSrchVO
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
@Policy(AuthPolicy.PUBLIC)
|
|
||||||
@RequestMapping(value= "/selectExcelPoListInqire" , method = RequestMethod.POST)
|
|
||||||
public String selectExcelPoListInqire(ModelMap model, BOOrdrSrchVO ordrSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
|
||||||
Map<String, Object> content = new HashMap<>();
|
|
||||||
String secretKey = commonService.selectSecretkey();
|
|
||||||
ordrSrchVO.setSecretKey(secretKey);
|
|
||||||
ordrSrchVO.setSopmalCd(authSopmalCd);
|
|
||||||
ordrSrchVO.setSrchOrdrSttusCd("35");
|
|
||||||
|
|
||||||
//페이징 처리를 위한 pagination 객체 생성
|
|
||||||
PaginationInfo paginationInfo = new PaginationInfo();
|
|
||||||
paginationInfo.setCurrentPageNo(ordrSrchVO.getPageIndex());
|
|
||||||
paginationInfo.setRecordCountPerPage(ordrSrchVO.getPageUnit());
|
|
||||||
paginationInfo.setPageSize(paginationProperties.getPageSize());
|
|
||||||
ordrSrchVO.setPaginationInfo(paginationInfo);
|
|
||||||
|
|
||||||
//페이징 처리를 위한 값 설정
|
|
||||||
ordrSrchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
|
||||||
ordrSrchVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
|
||||||
ordrSrchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
|
||||||
|
|
||||||
//회원 목록 조회 결과 및 페이징정보 넣기
|
|
||||||
content.put("paginationInfo", ordrSrchVO.getPaginationInfo());
|
|
||||||
content.put("resultList", service.selectExcelPoList(ordrSrchVO));
|
|
||||||
|
|
||||||
model.addAttribute("resultMap", content);
|
|
||||||
model.addAttribute("ordrSrchVO", ordrSrchVO);
|
|
||||||
|
|
||||||
return "mngr/ordr/ordrmngr/PurchOrdrListInqireR";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 주문내역서 팝업 화면 이동
|
|
||||||
* @param model
|
|
||||||
* @param ordrSrchVO
|
|
||||||
* @return OrdrDtstmnDwldPopupR.jsp
|
|
||||||
*/
|
|
||||||
@Policy(AuthPolicy.RESTRICTED)
|
|
||||||
@RequestMapping(value="/selectPurchOrdrDtstmnDwldPopupForm")
|
|
||||||
public String selectPurchOrdrDtstmnDwldPopupForm(ModelMap model, BOOrdrSrchVO ordrSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) throws Exception {
|
|
||||||
Map<String, Object> content = new HashMap<>();
|
|
||||||
BOOrdrVO ordrVO = new BOOrdrVO();
|
|
||||||
ordrVO.setOrdrInnbs(ordrSrchVO.getSrchOrdrInnbs());
|
|
||||||
ordrVO.setSopmalCd(authSopmalCd);
|
|
||||||
|
|
||||||
content.put("ordrDtstmnDwldList", service.selectOrdrDtstmnDwld(ordrVO));
|
|
||||||
model.addAttribute("data", content);
|
|
||||||
model.addAttribute("ordrSrchVO", ordrSrchVO);
|
|
||||||
|
|
||||||
return "mngr/ordr/ordrmngr/PurchOrdrDtstmnDwldPopupR";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 발주서 엑셀다운로드
|
|
||||||
* @param response
|
|
||||||
* @param ordrSrchVO
|
|
||||||
* @return ResponseEntity<WnbtResponse>
|
|
||||||
*/
|
|
||||||
@Policy(AuthPolicy.PUBLIC)
|
|
||||||
@RequestMapping(value="/selectExcelPoDwldListInqire")
|
|
||||||
public void selectPurchOrderExcelList(HttpServletResponse response, BOOrdrSrchVO ordrSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
|
||||||
String secretKey = commonService.selectSecretkey();
|
|
||||||
ordrSrchVO.setSecretKey(secretKey);
|
|
||||||
ordrSrchVO.setSopmalCd(authSopmalCd);
|
|
||||||
ordrSrchVO.setSrchOrdrSttusCd("35");
|
|
||||||
|
|
||||||
//엑셀 항목별 제목에 출력될 내용 설정
|
|
||||||
LinkedHashMap<String, String> headerMap = new LinkedHashMap<String, String>();
|
|
||||||
List<String> headerValues = List.of(
|
|
||||||
"날짜",
|
|
||||||
"업체코드",
|
|
||||||
"업체명",
|
|
||||||
"업체TEL",
|
|
||||||
"업체주소",
|
|
||||||
"특별통관업체명",
|
|
||||||
"특별통관번호",
|
|
||||||
"주문번호",
|
|
||||||
"용도구분",
|
|
||||||
"수취인",
|
|
||||||
"수취인TEL",
|
|
||||||
"수취인HP",
|
|
||||||
"개인통관고유부호",
|
|
||||||
"우편번호",
|
|
||||||
"주소",
|
|
||||||
"나머지주소",
|
|
||||||
"메모",
|
|
||||||
"고객 구입사이트",
|
|
||||||
"무게",
|
|
||||||
"포장개수",
|
|
||||||
"HS CODE",
|
|
||||||
"상거래유형",
|
|
||||||
"내용물",
|
|
||||||
"Unit Value",
|
|
||||||
"상품개수",
|
|
||||||
"Value",
|
|
||||||
"Brand",
|
|
||||||
"사전식품신고 종류",
|
|
||||||
"제조국",
|
|
||||||
"제조회사명",
|
|
||||||
"중문상품명",
|
|
||||||
"Shipper 구입사이트",
|
|
||||||
"판매중개업체명",
|
|
||||||
"판매중개업체 등록부호",
|
|
||||||
"구매(배송)대행업체명",
|
|
||||||
"구매(배송)대행업체 등록부호",
|
|
||||||
"해외판매자명",
|
|
||||||
"해외판매자 등록부호",
|
|
||||||
"사이트 주문번호"
|
|
||||||
);
|
|
||||||
for (int i = 0; i < headerValues.size(); i++) {
|
|
||||||
headerMap.put(String.format("item%02d", i + 1), headerValues.get(i));
|
|
||||||
}
|
|
||||||
|
|
||||||
String[] ordrInnbs = ordrSrchVO.getSrchOrdrInnbs();
|
|
||||||
String[] ordrDlvyInnbs = ordrSrchVO.getSrchOrdrDlvyInnbs();
|
|
||||||
List<Map<String, String>> srchInnbPairs = new ArrayList<>();
|
|
||||||
if (ordrInnbs != null && ordrDlvyInnbs != null) {
|
|
||||||
for (int i = 0; i < ordrInnbs.length; i++) {
|
|
||||||
Map<String, String> pair = new HashMap<>();
|
|
||||||
pair.put("srchOrdrInnb", ordrInnbs[i]);
|
|
||||||
pair.put("srchOrdrDlvyInnb", ordrDlvyInnbs[i]);
|
|
||||||
|
|
||||||
srchInnbPairs.add(pair);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ordrSrchVO.setSrchInnbPairs(srchInnbPairs);
|
|
||||||
|
|
||||||
//엑셀 항목에 출력될 내용 설정
|
|
||||||
List<DataMap> resultList = service.selectExcelPoListDwld(ordrSrchVO);
|
|
||||||
List<Map<String, Object>> excelList = new ArrayList<>();
|
|
||||||
if (resultList != null) {
|
|
||||||
for (int i = 0; i < resultList.size(); i++) {
|
|
||||||
HashMap<String, Object> dataMap = new HashMap<>();
|
|
||||||
// int cellInt = 1; // 셀 타입 = 숫자
|
|
||||||
List<Object> dataValues = Arrays.asList(
|
|
||||||
resultList.get(i).get("ordrRceptDt"),
|
|
||||||
resultList.get(i).get("entrpsCd"),
|
|
||||||
resultList.get(i).get("entrpsNm"),
|
|
||||||
resultList.get(i).get("entrpsTel"),
|
|
||||||
resultList.get(i).get("entrpsAdres"),
|
|
||||||
resultList.get(i).get("spclCstmclerEntrps"),
|
|
||||||
resultList.get(i).get("spclCstmclerCd"),
|
|
||||||
resultList.get(i).get("ordrInnb"),
|
|
||||||
resultList.get(i).get("purpsDv"),
|
|
||||||
resultList.get(i).get("recpntNm"),
|
|
||||||
resultList.get(i).get("recpntMbtlnb"),
|
|
||||||
resultList.get(i).get("recpntHp"),
|
|
||||||
resultList.get(i).get("cstmclerCd"),
|
|
||||||
resultList.get(i).get("dlvylcZip"),
|
|
||||||
resultList.get(i).get("dlvylcRnmLnbAdres"),
|
|
||||||
resultList.get(i).get("dlvylcAdresDtl"),
|
|
||||||
resultList.get(i).get("dlvyMssageCn"),
|
|
||||||
resultList.get(i).get("cstmrPurchsSite"),
|
|
||||||
resultList.get(i).get("realWt"),
|
|
||||||
resultList.get(i).get("packageCnt"),
|
|
||||||
resultList.get(i).get("hscode"),
|
|
||||||
resultList.get(i).get("cmmrcTy"),
|
|
||||||
resultList.get(i).get("cn"),
|
|
||||||
resultList.get(i).get("unitValue"),
|
|
||||||
resultList.get(i).get("ordrQy"),
|
|
||||||
resultList.get(i).get("value"),
|
|
||||||
resultList.get(i).get("brand"),
|
|
||||||
resultList.get(i).get("preFoodDcl"),
|
|
||||||
resultList.get(i).get("provdNation"),
|
|
||||||
resultList.get(i).get("provdCmpnyNm"),
|
|
||||||
resultList.get(i).get("chnlngGoodsNm"),
|
|
||||||
resultList.get(i).get("shipperPurchsSite"),
|
|
||||||
resultList.get(i).get("sleAgntEntrpsNm"),
|
|
||||||
resultList.get(i).get("sleAgntEntrpsRegistCd"),
|
|
||||||
resultList.get(i).get("purchsDlvyAgencyNm"),
|
|
||||||
resultList.get(i).get("purchsDlvyAgencyRegistCd"),
|
|
||||||
resultList.get(i).get("ovseaSelerNm"),
|
|
||||||
resultList.get(i).get("ovseaSelerRegistCd"),
|
|
||||||
resultList.get(i).get("siteOrdrInnb")
|
|
||||||
);
|
|
||||||
|
|
||||||
for (int j = 0; j < dataValues.size(); j++) {
|
|
||||||
dataMap.put(String.format("item%02d", j + 1), dataValues.get(j));
|
|
||||||
}
|
|
||||||
excelList.add(dataMap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************/
|
|
||||||
try {
|
|
||||||
//엑셀생성 및 다운로드
|
|
||||||
/*LocalDateTime now = LocalDateTime.now();
|
|
||||||
String excelFileName = "발주서_";
|
|
||||||
|
|
||||||
excelFileName += String.format("%s~%s", ordrSrchVO.getSrchStartDate(), ordrSrchVO.getSrchEndDate()); // 엑셀 다운로드 파일명*/
|
|
||||||
|
|
||||||
String excelFileName = "발주서";
|
|
||||||
String encodedFileName = URLEncoder.encode(excelFileName, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20");
|
|
||||||
ExcelDownloadUtil.createExcel(encodedFileName, headerMap, excelList, response);
|
|
||||||
|
|
||||||
service.updateExcelDownDt(ordrSrchVO);
|
|
||||||
} catch (IOException ioe) {
|
|
||||||
log.error("엑셀다운로드 중 오류가 발생하였습니다.", ioe);
|
|
||||||
throw new WnbtRestException("엑셀다운로드 중 오류가 발생하였습니다.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* ####################################
|
|
||||||
발주서 관리 종료
|
|
||||||
#################################### */
|
|
||||||
|
|
||||||
/* ####################################
|
/* ####################################
|
||||||
주문조회 팝업 시작
|
주문조회 팝업 시작
|
||||||
#################################### */
|
#################################### */
|
||||||
|
|||||||
@@ -1573,24 +1573,9 @@ public class CscController {
|
|||||||
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
|
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
|
||||||
DataMap bbsInfo = new DataMap();
|
DataMap bbsInfo = new DataMap();
|
||||||
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
|
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
|
||||||
|
|
||||||
// 등록 기능 사용 여부와 별개로 현재 사용자의 등록 권한을 확인한다.
|
|
||||||
BOGnrlbbscttVO registAuthBbsctt = new BOGnrlbbscttVO();
|
|
||||||
registAuthBbsctt.setSopmalCd(user.getSopmalCd());
|
|
||||||
registAuthBbsctt.setBbsId(bbsctt.getBbsId());
|
|
||||||
registAuthBbsctt.setServerDv("sopmal");
|
|
||||||
registAuthBbsctt.setAuthDv("REGIST");
|
|
||||||
if (user.getUserInnb() > 0) {
|
|
||||||
registAuthBbsctt.setRegusr(user.getUserInnb());
|
|
||||||
registAuthBbsctt.setMbrDvCd(user.getMbrDvCd());
|
|
||||||
} else {
|
|
||||||
registAuthBbsctt.setRegusr(0);
|
|
||||||
}
|
|
||||||
DataMap registAuth = service.selectBOBbscttAuth(registAuthBbsctt);
|
|
||||||
DataMap content = new DataMap();
|
DataMap content = new DataMap();
|
||||||
|
|
||||||
content.put("bbsInfo", bbsInfo);
|
content.put("bbsInfo", bbsInfo);
|
||||||
content.put("registAuthResult", registAuth.get("resultAuth"));
|
|
||||||
content.put("bbsctt", bbsctt);
|
content.put("bbsctt", bbsctt);
|
||||||
content.put("resultList", resultList);
|
content.put("resultList", resultList);
|
||||||
content.put("paginationInfo", bbsctt.getPaginationInfo());
|
content.put("paginationInfo", bbsctt.getPaginationInfo());
|
||||||
|
|||||||
@@ -305,14 +305,6 @@ public class GoodsController {
|
|||||||
public String selectGoodsListForm(HttpServletRequest request,
|
public String selectGoodsListForm(HttpServletRequest request,
|
||||||
BOGoodsVO vo,
|
BOGoodsVO vo,
|
||||||
ModelMap model) {
|
ModelMap model) {
|
||||||
String mobileParentCtgryId = request.getParameter("mobileParentCtgryId");
|
|
||||||
String mobileCurrentCtgryId = request.getParameter("mobileCurrentCtgryId");
|
|
||||||
boolean mobileSubCategorySelected = mobileParentCtgryId != null && !mobileParentCtgryId.isBlank()
|
|
||||||
&& mobileCurrentCtgryId != null && !mobileCurrentCtgryId.isBlank();
|
|
||||||
if (mobileSubCategorySelected) {
|
|
||||||
vo.setCtgryId(mobileParentCtgryId);
|
|
||||||
}
|
|
||||||
|
|
||||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
if("01".equals(user.getSysDvCd())){
|
if("01".equals(user.getSysDvCd())){
|
||||||
vo.setSopmalCd(user.getSopmalCd());
|
vo.setSopmalCd(user.getSopmalCd());
|
||||||
@@ -330,7 +322,7 @@ public class GoodsController {
|
|||||||
//검색한 카테고리 정보로 vo 세팅
|
//검색한 카테고리 정보로 vo 세팅
|
||||||
if(!CollectionUtils.isEmpty(goodsCategoryList)){
|
if(!CollectionUtils.isEmpty(goodsCategoryList)){
|
||||||
vo.setUpperCtgryId(goodsCategoryList.get(0).get("baseCtgryId").toString());
|
vo.setUpperCtgryId(goodsCategoryList.get(0).get("baseCtgryId").toString());
|
||||||
vo.setCtgryId(mobileSubCategorySelected ? mobileCurrentCtgryId : goodsCategoryList.get(0).get("baseCtgryId").toString());
|
vo.setCtgryId(goodsCategoryList.get(0).get("baseCtgryId").toString());
|
||||||
}else{
|
}else{
|
||||||
vo.setUpperCtgryId("0");
|
vo.setUpperCtgryId("0");
|
||||||
vo.setCtgryId("0");
|
vo.setCtgryId("0");
|
||||||
|
|||||||
@@ -153,8 +153,6 @@ public class LoginController {
|
|||||||
CookieUtils.deleteCookie("token_expire", "/", request, response);
|
CookieUtils.deleteCookie("token_expire", "/", request, response);
|
||||||
|
|
||||||
response.sendRedirect("/sopmal/login/page/" + RealmContextHolder.getRealm() + "?redirect_uri=" + URLEncoder.encode(request.getParameter("redirect_uri"), StandardCharsets.UTF_8));
|
response.sendRedirect("/sopmal/login/page/" + RealmContextHolder.getRealm() + "?redirect_uri=" + URLEncoder.encode(request.getParameter("redirect_uri"), StandardCharsets.UTF_8));
|
||||||
// 로그인 이동을 확정한 뒤 원래 URL로 다시 리다이렉트하지 않는다.
|
|
||||||
return;
|
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
//리프레쉬 토큰 있을 경우(존재한다는 자체가 refresh토큰이 만료된 상태가 아님)
|
//리프레쉬 토큰 있을 경우(존재한다는 자체가 refresh토큰이 만료된 상태가 아님)
|
||||||
|
|||||||
@@ -198,20 +198,6 @@ public class MainController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 사이트맵 XML
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Policy(AuthPolicy.PUBLIC)
|
|
||||||
@RequestMapping(value="/sitemap", produces = MediaType.APPLICATION_XML_VALUE)
|
|
||||||
public ResponseEntity<String> selectSitemapXml() {
|
|
||||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
|
||||||
String xml = boMaSopmalService.selectSitemapXml(user.getSopmalCd());
|
|
||||||
|
|
||||||
return ResponseEntity.ok().contentType(MediaType.APPLICATION_XML).body(xml);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 비회원 휴대폰번호 확인
|
* 비회원 휴대폰번호 확인
|
||||||
* @return OrdrDtlR.jsp
|
* @return OrdrDtlR.jsp
|
||||||
|
|||||||
@@ -48,22 +48,22 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MyActController Class (back)
|
* MyActController Class (back)
|
||||||
*
|
*
|
||||||
* @author 홍길동
|
* @author 홍길동
|
||||||
* @since 2024-02-05
|
* @since 2024-02-05
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
* @see
|
* @see
|
||||||
*
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
* == (Modification Information) == 개정이력
|
* == (Modification Information) == 개정이력
|
||||||
*
|
*
|
||||||
* 수정일 수정자 수정내용
|
* 수정일 수정자 수정내용
|
||||||
* ------- -------- ---------------------------
|
* ------- -------- ---------------------------
|
||||||
* 2024-03-05 김혜인 최초 생성
|
* 2024-03-05 김혜인 최초 생성
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/sopmal/mpage/act")
|
@RequestMapping("/sopmal/mpage/act")
|
||||||
@@ -102,10 +102,10 @@ public class MyActController {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 상품 Q&A 조회
|
* 상품 Q&A 조회
|
||||||
* @param bbsctt
|
* @param bbsctt
|
||||||
* @return String
|
* @return String
|
||||||
*/
|
*/
|
||||||
@Policy(AuthPolicy.PUBLIC)
|
@Policy(AuthPolicy.PUBLIC)
|
||||||
@RequestMapping(value="/selectGoodsQnaInqire")
|
@RequestMapping(value="/selectGoodsQnaInqire")
|
||||||
public String selectGoodsQnaInqire(HttpServletRequest request, ModelMap model, BOGnrlbbscttVO bbsctt, BOMbrVO vo){
|
public String selectGoodsQnaInqire(HttpServletRequest request, ModelMap model, BOGnrlbbscttVO bbsctt, BOMbrVO vo){
|
||||||
@@ -115,11 +115,151 @@ public class MyActController {
|
|||||||
|
|
||||||
DataMap content = selectBOBbscttListInqire(bbsctt);
|
DataMap content = selectBOBbscttListInqire(bbsctt);
|
||||||
model.addAttribute("resultMap", content);
|
model.addAttribute("resultMap", content);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
|
||||||
|
// model,
|
||||||
|
// "resultMap"
|
||||||
|
// );
|
||||||
|
|
||||||
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
||||||
|
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
|
||||||
model.addAttribute("mpageResultMap", content2);
|
model.addAttribute("mpageResultMap", content2);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
|
||||||
|
// model,
|
||||||
|
// "mpageResultMap"
|
||||||
|
// );
|
||||||
|
|
||||||
return Util.getDeviceType(request)+"/mpage/act/MyGoodsQaR";
|
return Util.getDeviceType(request)+"/mpage/act/MyGoodsQaR";
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 상품 Q&A ajax 조회
|
||||||
|
* @param bbsctt
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.PUBLIC)
|
||||||
|
@RequestMapping(value="/selectGoodsQnaInqireAjax", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public ResponseEntity<?> selectGoodsQnaInqireAjax(BOGnrlbbscttVO bbsctt){
|
||||||
|
bbsctt.setBbsTyCd("05");
|
||||||
|
bbsctt.setServerDv("sopmal");
|
||||||
|
bbsctt.setReqUrl("mpage");
|
||||||
|
//게시글 노출 항목 설정값과 게시판 목록 조회
|
||||||
|
|
||||||
|
DataMap content = selectBOBbscttListInqire(bbsctt);
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
WnbtResponse.builder()
|
||||||
|
.resBody(new WnbtResponseBody(content))
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
// return responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
|
||||||
|
// ReplyFromResrc::getReply
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 상품 Q&A 파일정보 조회
|
||||||
|
* @param bbsctt
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.PUBLIC)
|
||||||
|
@RequestMapping(value="/selectFileInfo", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
public ResponseEntity<?> selectFileInfo(HttpServletRequest request, ModelMap model, BOGnrlbbscttVO bbsctt){
|
||||||
|
bbsctt.setServerDv("sopmal");
|
||||||
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
|
if ("01".equals(user.getSysDvCd())) {
|
||||||
|
bbsctt.setSopmalCd(user.getSopmalCd());
|
||||||
|
}
|
||||||
|
DataMap content = new DataMap();
|
||||||
|
content.put("fileInfo", service.selectFileInfo(bbsctt));
|
||||||
|
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
WnbtResponse.builder()
|
||||||
|
.resBody(new WnbtResponseBody(content))
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
// return responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOFileInfo",bbsctt),
|
||||||
|
// ReplyFromResrc::getReply
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 상품 Q&A 수정 폼 이동
|
||||||
|
* @param bbsctt
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
@Policy(AuthPolicy.PUBLIC)
|
||||||
|
@RequestMapping(value="/selectGoodsQnaDtlUpdtForm")
|
||||||
|
public String selectGoodsQnaDtlUpdtForm(HttpServletRequest request, ModelMap model,BOGnrlbbscttVO bbsctt, BOMbrVO vo){
|
||||||
|
bbsctt.setServerDv("sopmal");
|
||||||
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
|
if ("01".equals(user.getSysDvCd())) {
|
||||||
|
bbsctt.setSopmalCd(user.getSopmalCd());
|
||||||
|
}
|
||||||
|
;
|
||||||
|
if (user.getUserInnb() > 0) {
|
||||||
|
if ("mngr".equals(bbsctt.getServerDv())) {
|
||||||
|
bbsctt.setRegusrDvCd("02"); //관리자
|
||||||
|
} else {
|
||||||
|
bbsctt.setRegusrDvCd("01"); //회원
|
||||||
|
bbsctt.setAnswMbtlnb(user.getMbtlnb());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
bbsctt.setRegusrDvCd("99");//비회원
|
||||||
|
}
|
||||||
|
bbsctt.setSecretKey(boCommonService.selectSecretkey());
|
||||||
|
// 게시판 설정 정보
|
||||||
|
BOBbsVO bbsVO = new BOBbsVO();
|
||||||
|
// bbsVO에 쇼핑몰코드, 해당 게시판 set
|
||||||
|
bbsVO.setSopmalCd(bbsctt.getSopmalCd());
|
||||||
|
bbsVO.setBbsId(bbsctt.getBbsId());
|
||||||
|
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
|
||||||
|
DataMap bbsInfo = new DataMap();
|
||||||
|
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
|
||||||
|
|
||||||
|
// 게시글 상세 조회
|
||||||
|
Map<String, Object> bbscttInfo = new HashMap<String, Object>();
|
||||||
|
bbscttInfo = service.selectBOBbscttUpdt(bbsctt);
|
||||||
|
|
||||||
|
// 분류 조회
|
||||||
|
List<DataMap> itmList = new ArrayList<>();
|
||||||
|
itmList = service.selectBOBbscttItmInqire(bbsctt);
|
||||||
|
|
||||||
|
//추가 항목 조회, 추가항목 항목 조회
|
||||||
|
Map<String, Object> qesitmList = new HashMap<String, Object>();
|
||||||
|
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
|
||||||
|
|
||||||
|
//리뷰항목 리스트, 리뷰항목 항목 리스트
|
||||||
|
Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
|
||||||
|
rvwQesitmList = service.selectBOStarItm(bbsctt);
|
||||||
|
|
||||||
|
Map<String, Object> content = new HashMap<String, Object>();
|
||||||
|
content.put("bbsInfo", bbsInfo);
|
||||||
|
content.put("bbscttVO", bbsctt);
|
||||||
|
content.put("bbscttInfo", bbscttInfo);
|
||||||
|
content.put("itmList", itmList);
|
||||||
|
content.put("qesitmList", qesitmList);
|
||||||
|
content.put("rvwQesitmList", rvwQesitmList);
|
||||||
|
|
||||||
|
model.addAttribute("resultMap", content);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttUpdtPopupForm",bbsctt),
|
||||||
|
// model,
|
||||||
|
// "resultMap"
|
||||||
|
// );
|
||||||
|
model.addAttribute("bbsctt", bbsctt);
|
||||||
|
|
||||||
|
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
|
||||||
|
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
||||||
|
model.addAttribute("mpageResultMap", content2);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
|
||||||
|
// model,
|
||||||
|
// "mpageResultMap"
|
||||||
|
// );
|
||||||
|
|
||||||
|
return Util.getDeviceType(request)+"/mpage/act/MyGoodsQnaDtlUpdtU";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -136,9 +276,20 @@ public class MyActController {
|
|||||||
|
|
||||||
DataMap content = selectBOBbscttListInqire(bbsctt);
|
DataMap content = selectBOBbscttListInqire(bbsctt);
|
||||||
model.addAttribute("resultMap", content);
|
model.addAttribute("resultMap", content);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
|
||||||
|
// model,
|
||||||
|
// "resultMap"
|
||||||
|
// );
|
||||||
|
|
||||||
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
||||||
|
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
|
||||||
model.addAttribute("mpageResultMap", content2);
|
model.addAttribute("mpageResultMap", content2);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
|
||||||
|
// model,
|
||||||
|
// "mpageResultMap"
|
||||||
|
// );
|
||||||
|
|
||||||
return Util.getDeviceType(request)+"/mpage/act/MyNormalQaR";
|
return Util.getDeviceType(request)+"/mpage/act/MyNormalQaR";
|
||||||
}
|
}
|
||||||
@@ -169,22 +320,28 @@ public class MyActController {
|
|||||||
bbsctt.setRegusrDvCd("99");//비회원
|
bbsctt.setRegusrDvCd("99");//비회원
|
||||||
}
|
}
|
||||||
bbsctt.setSecretKey(boCommonService.selectSecretkey());
|
bbsctt.setSecretKey(boCommonService.selectSecretkey());
|
||||||
|
// 게시판 설정 정보
|
||||||
BOBbsVO bbsVO = new BOBbsVO();
|
BOBbsVO bbsVO = new BOBbsVO();
|
||||||
|
// bbsVO에 쇼핑몰코드, 해당 게시판 set
|
||||||
bbsVO.setSopmalCd(bbsctt.getSopmalCd());
|
bbsVO.setSopmalCd(bbsctt.getSopmalCd());
|
||||||
bbsVO.setBbsId(bbsctt.getBbsId());
|
bbsVO.setBbsId(bbsctt.getBbsId());
|
||||||
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
|
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
|
||||||
DataMap bbsInfo = new DataMap();
|
DataMap bbsInfo = new DataMap();
|
||||||
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
|
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
|
||||||
|
|
||||||
|
// 게시글 상세 조회
|
||||||
Map<String, Object> bbscttInfo = new HashMap<String, Object>();
|
Map<String, Object> bbscttInfo = new HashMap<String, Object>();
|
||||||
bbscttInfo = service.selectBOBbscttUpdt(bbsctt);
|
bbscttInfo = service.selectBOBbscttUpdt(bbsctt);
|
||||||
|
|
||||||
|
// 분류 조회
|
||||||
List<DataMap> itmList = new ArrayList<>();
|
List<DataMap> itmList = new ArrayList<>();
|
||||||
itmList = service.selectBOBbscttItmInqire(bbsctt);
|
itmList = service.selectBOBbscttItmInqire(bbsctt);
|
||||||
|
|
||||||
|
//추가 항목 조회, 추가항목 항목 조회
|
||||||
Map<String, Object> qesitmList = new HashMap<String, Object>();
|
Map<String, Object> qesitmList = new HashMap<String, Object>();
|
||||||
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
|
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
|
||||||
|
|
||||||
|
//리뷰항목 리스트, 리뷰항목 항목 리스트
|
||||||
Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
|
Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
|
||||||
rvwQesitmList = service.selectBOStarItm(bbsctt);
|
rvwQesitmList = service.selectBOStarItm(bbsctt);
|
||||||
|
|
||||||
@@ -197,10 +354,21 @@ public class MyActController {
|
|||||||
content.put("rvwQesitmList", rvwQesitmList);
|
content.put("rvwQesitmList", rvwQesitmList);
|
||||||
|
|
||||||
model.addAttribute("resultMap", content);
|
model.addAttribute("resultMap", content);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttUpdtPopupForm",bbsctt),
|
||||||
|
// model,
|
||||||
|
// "resultMap"
|
||||||
|
// );
|
||||||
model.addAttribute("bbsctt", bbsctt);
|
model.addAttribute("bbsctt", bbsctt);
|
||||||
|
|
||||||
|
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
|
||||||
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
||||||
model.addAttribute("mpageResultMap", content2);
|
model.addAttribute("mpageResultMap", content2);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
|
||||||
|
// model,
|
||||||
|
// "mpageResultMap"
|
||||||
|
// );
|
||||||
|
|
||||||
return Util.getDeviceType(request)+"/mpage/act/MyNormalQnaDtlUpdtU";
|
return Util.getDeviceType(request)+"/mpage/act/MyNormalQnaDtlUpdtU";
|
||||||
}
|
}
|
||||||
@@ -216,6 +384,7 @@ public class MyActController {
|
|||||||
bbsctt.setBbsTyCd("01");
|
bbsctt.setBbsTyCd("01");
|
||||||
bbsctt.setServerDv("sopmal");
|
bbsctt.setServerDv("sopmal");
|
||||||
bbsctt.setReqUrl("mpage");
|
bbsctt.setReqUrl("mpage");
|
||||||
|
//게시글 노출 항목 설정값과 게시판 목록 조회
|
||||||
|
|
||||||
DataMap content = selectBOBbscttListInqire(bbsctt);
|
DataMap content = selectBOBbscttListInqire(bbsctt);
|
||||||
return ResponseEntity.ok(
|
return ResponseEntity.ok(
|
||||||
@@ -223,110 +392,10 @@ public class MyActController {
|
|||||||
.resBody(new WnbtResponseBody(content))
|
.resBody(new WnbtResponseBody(content))
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
}
|
// return responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
|
||||||
/**
|
// ReplyFromResrc::getReply
|
||||||
* 상품 Q&A ajax 조회
|
// );
|
||||||
* @param bbsctt
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
@Policy(AuthPolicy.PUBLIC)
|
|
||||||
@RequestMapping(value="/selectGoodsQnaInqireAjax", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
public ResponseEntity<?> selectGoodsQnaInqireAjax(BOGnrlbbscttVO bbsctt){
|
|
||||||
bbsctt.setBbsTyCd("05");
|
|
||||||
bbsctt.setServerDv("sopmal");
|
|
||||||
bbsctt.setReqUrl("mpage");
|
|
||||||
|
|
||||||
DataMap content = selectBOBbscttListInqire(bbsctt);
|
|
||||||
return ResponseEntity.ok(
|
|
||||||
WnbtResponse.builder()
|
|
||||||
.resBody(new WnbtResponseBody(content))
|
|
||||||
.build()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 상품 Q&A 파일정보 조회
|
|
||||||
* @param bbsctt
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
@Policy(AuthPolicy.PUBLIC)
|
|
||||||
@RequestMapping(value="/selectFileInfo", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
public ResponseEntity<?> selectFileInfo(HttpServletRequest request, ModelMap model, BOGnrlbbscttVO bbsctt){
|
|
||||||
bbsctt.setServerDv("sopmal");
|
|
||||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
|
||||||
if ("01".equals(user.getSysDvCd())) {
|
|
||||||
bbsctt.setSopmalCd(user.getSopmalCd());
|
|
||||||
}
|
|
||||||
DataMap content = new DataMap();
|
|
||||||
content.put("fileInfo", service.selectFileInfo(bbsctt));
|
|
||||||
|
|
||||||
return ResponseEntity.ok(
|
|
||||||
WnbtResponse.builder()
|
|
||||||
.resBody(new WnbtResponseBody(content))
|
|
||||||
.build()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 상품 Q&A 수정 폼 이동
|
|
||||||
* @param bbsctt
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
@Policy(AuthPolicy.PUBLIC)
|
|
||||||
@RequestMapping(value="/selectGoodsQnaDtlUpdtForm")
|
|
||||||
public String selectGoodsQnaDtlUpdtForm(HttpServletRequest request, ModelMap model,BOGnrlbbscttVO bbsctt, BOMbrVO vo){
|
|
||||||
bbsctt.setServerDv("sopmal");
|
|
||||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
|
||||||
if ("01".equals(user.getSysDvCd())) {
|
|
||||||
bbsctt.setSopmalCd(user.getSopmalCd());
|
|
||||||
}
|
|
||||||
;
|
|
||||||
if (user.getUserInnb() > 0) {
|
|
||||||
if ("mngr".equals(bbsctt.getServerDv())) {
|
|
||||||
bbsctt.setRegusrDvCd("02"); //관리자
|
|
||||||
} else {
|
|
||||||
bbsctt.setRegusrDvCd("01"); //회원
|
|
||||||
bbsctt.setAnswMbtlnb(user.getMbtlnb());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
bbsctt.setRegusrDvCd("99");//비회원
|
|
||||||
}
|
|
||||||
bbsctt.setSecretKey(boCommonService.selectSecretkey());
|
|
||||||
BOBbsVO bbsVO = new BOBbsVO();
|
|
||||||
bbsVO.setSopmalCd(bbsctt.getSopmalCd());
|
|
||||||
bbsVO.setBbsId(bbsctt.getBbsId());
|
|
||||||
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
|
|
||||||
DataMap bbsInfo = new DataMap();
|
|
||||||
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
|
|
||||||
|
|
||||||
Map<String, Object> bbscttInfo = new HashMap<String, Object>();
|
|
||||||
bbscttInfo = service.selectBOBbscttUpdt(bbsctt);
|
|
||||||
|
|
||||||
List<DataMap> itmList = new ArrayList<>();
|
|
||||||
itmList = service.selectBOBbscttItmInqire(bbsctt);
|
|
||||||
|
|
||||||
Map<String, Object> qesitmList = new HashMap<String, Object>();
|
|
||||||
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
|
|
||||||
|
|
||||||
Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
|
|
||||||
rvwQesitmList = service.selectBOStarItm(bbsctt);
|
|
||||||
|
|
||||||
Map<String, Object> content = new HashMap<String, Object>();
|
|
||||||
content.put("bbsInfo", bbsInfo);
|
|
||||||
content.put("bbscttVO", bbsctt);
|
|
||||||
content.put("bbscttInfo", bbscttInfo);
|
|
||||||
content.put("itmList", itmList);
|
|
||||||
content.put("qesitmList", qesitmList);
|
|
||||||
content.put("rvwQesitmList", rvwQesitmList);
|
|
||||||
|
|
||||||
model.addAttribute("resultMap", content);
|
|
||||||
model.addAttribute("bbsctt", bbsctt);
|
|
||||||
|
|
||||||
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
|
||||||
model.addAttribute("mpageResultMap", content2);
|
|
||||||
|
|
||||||
return Util.getDeviceType(request)+"/mpage/act/MyGoodsQnaDtlUpdtU";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -343,13 +412,23 @@ public class MyActController {
|
|||||||
|
|
||||||
DataMap content = selectBOBbscttListInqire(bbsctt);
|
DataMap content = selectBOBbscttListInqire(bbsctt);
|
||||||
model.addAttribute("resultMap", content);
|
model.addAttribute("resultMap", content);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
|
||||||
|
// model,
|
||||||
|
// "resultMap"
|
||||||
|
// );
|
||||||
|
|
||||||
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
||||||
|
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
|
||||||
model.addAttribute("mpageResultMap", content2);
|
model.addAttribute("mpageResultMap", content2);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
|
||||||
|
// model,
|
||||||
|
// "mpageResultMap"
|
||||||
|
// );
|
||||||
|
|
||||||
return Util.getDeviceType(request)+"/mpage/act/MyM2mQaR";
|
return Util.getDeviceType(request)+"/mpage/act/MyM2mQaR";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 1:1 문의 ajax 조회
|
* 1:1 문의 ajax 조회
|
||||||
* @param bbsctt
|
* @param bbsctt
|
||||||
@@ -361,6 +440,7 @@ public class MyActController {
|
|||||||
bbsctt.setBbsTyCd("12");
|
bbsctt.setBbsTyCd("12");
|
||||||
bbsctt.setServerDv("sopmal");
|
bbsctt.setServerDv("sopmal");
|
||||||
bbsctt.setReqUrl("mpage");
|
bbsctt.setReqUrl("mpage");
|
||||||
|
//게시글 노출 항목 설정값과 게시판 목록 조회
|
||||||
|
|
||||||
DataMap content = selectBOBbscttListInqire(bbsctt);
|
DataMap content = selectBOBbscttListInqire(bbsctt);
|
||||||
return ResponseEntity.ok(
|
return ResponseEntity.ok(
|
||||||
@@ -368,6 +448,10 @@ public class MyActController {
|
|||||||
.resBody(new WnbtResponseBody(content))
|
.resBody(new WnbtResponseBody(content))
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
|
// return responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
|
||||||
|
// ReplyFromResrc::getReply
|
||||||
|
// );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -396,22 +480,28 @@ public class MyActController {
|
|||||||
bbsctt.setRegusrDvCd("99");//비회원
|
bbsctt.setRegusrDvCd("99");//비회원
|
||||||
}
|
}
|
||||||
bbsctt.setSecretKey(boCommonService.selectSecretkey());
|
bbsctt.setSecretKey(boCommonService.selectSecretkey());
|
||||||
|
// 게시판 설정 정보
|
||||||
BOBbsVO bbsVO = new BOBbsVO();
|
BOBbsVO bbsVO = new BOBbsVO();
|
||||||
|
// bbsVO에 쇼핑몰코드, 해당 게시판 set
|
||||||
bbsVO.setSopmalCd(bbsctt.getSopmalCd());
|
bbsVO.setSopmalCd(bbsctt.getSopmalCd());
|
||||||
bbsVO.setBbsId(bbsctt.getBbsId());
|
bbsVO.setBbsId(bbsctt.getBbsId());
|
||||||
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
|
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
|
||||||
DataMap bbsInfo = new DataMap();
|
DataMap bbsInfo = new DataMap();
|
||||||
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
|
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
|
||||||
|
|
||||||
|
// 게시글 상세 조회
|
||||||
Map<String, Object> bbscttInfo = new HashMap<String, Object>();
|
Map<String, Object> bbscttInfo = new HashMap<String, Object>();
|
||||||
bbscttInfo = service.selectBOBbscttUpdt(bbsctt);
|
bbscttInfo = service.selectBOBbscttUpdt(bbsctt);
|
||||||
|
|
||||||
|
// 분류 조회
|
||||||
List<DataMap> itmList = new ArrayList<>();
|
List<DataMap> itmList = new ArrayList<>();
|
||||||
itmList = service.selectBOBbscttItmInqire(bbsctt);
|
itmList = service.selectBOBbscttItmInqire(bbsctt);
|
||||||
|
|
||||||
|
//추가 항목 조회, 추가항목 항목 조회
|
||||||
Map<String, Object> qesitmList = new HashMap<String, Object>();
|
Map<String, Object> qesitmList = new HashMap<String, Object>();
|
||||||
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
|
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
|
||||||
|
|
||||||
|
//리뷰항목 리스트, 리뷰항목 항목 리스트
|
||||||
Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
|
Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
|
||||||
rvwQesitmList = service.selectBOStarItm(bbsctt);
|
rvwQesitmList = service.selectBOStarItm(bbsctt);
|
||||||
|
|
||||||
@@ -424,10 +514,21 @@ public class MyActController {
|
|||||||
content.put("rvwQesitmList", rvwQesitmList);
|
content.put("rvwQesitmList", rvwQesitmList);
|
||||||
|
|
||||||
model.addAttribute("resultMap", content);
|
model.addAttribute("resultMap", content);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttUpdtPopupForm",bbsctt),
|
||||||
|
// model,
|
||||||
|
// "resultMap"
|
||||||
|
// );
|
||||||
model.addAttribute("bbsctt", bbsctt);
|
model.addAttribute("bbsctt", bbsctt);
|
||||||
|
|
||||||
|
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
|
||||||
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
||||||
model.addAttribute("mpageResultMap", content2);
|
model.addAttribute("mpageResultMap", content2);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
|
||||||
|
// model,
|
||||||
|
// "mpageResultMap"
|
||||||
|
// );
|
||||||
|
|
||||||
return Util.getDeviceType(request)+"/mpage/act/MyM2mQnaDtlUpdtU";
|
return Util.getDeviceType(request)+"/mpage/act/MyM2mQnaDtlUpdtU";
|
||||||
}
|
}
|
||||||
@@ -443,17 +544,28 @@ public class MyActController {
|
|||||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
bbsctt.setSopmalCd(user.getSopmalCd());
|
bbsctt.setSopmalCd(user.getSopmalCd());
|
||||||
|
|
||||||
|
/*리뷰 조회 폼*/
|
||||||
DataMap rvwBnefInfo = new DataMap();
|
DataMap rvwBnefInfo = new DataMap();
|
||||||
rvwBnefInfo = service.selectBORvwBnefInfo(bbsctt);
|
rvwBnefInfo = service.selectBORvwBnefInfo(bbsctt);
|
||||||
|
|
||||||
model.addAttribute("mlgAccmlNtc", rvwBnefInfo);
|
model.addAttribute("mlgAccmlNtc", rvwBnefInfo);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBORvwBnefInfo",bbsctt),
|
||||||
|
// model,
|
||||||
|
// "mlgAccmlNtc"
|
||||||
|
// );
|
||||||
|
|
||||||
|
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
|
||||||
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
|
||||||
model.addAttribute("mpageResultMap", content2);
|
model.addAttribute("mpageResultMap", content2);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
|
||||||
|
// model,
|
||||||
|
// "mpageResultMap"
|
||||||
|
// );
|
||||||
model.addAttribute("vo",bbsctt);
|
model.addAttribute("vo",bbsctt);
|
||||||
return Util.getDeviceType(request)+"/mpage/act/MyRvwRForm";
|
return Util.getDeviceType(request)+"/mpage/act/MyRvwRForm";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 나의 리뷰 조회 작성 가능한 리뷰
|
* 나의 리뷰 조회 작성 가능한 리뷰
|
||||||
* @param rvwVO
|
* @param rvwVO
|
||||||
@@ -467,9 +579,13 @@ public class MyActController {
|
|||||||
|
|
||||||
Map<String, Object> content = selectBOWritPosblRvw(rvwVO);
|
Map<String, Object> content = selectBOWritPosblRvw(rvwVO);
|
||||||
model.addAttribute("resultMap", content);
|
model.addAttribute("resultMap", content);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOWritPosblRvw",rvwVO),
|
||||||
|
// model,
|
||||||
|
// "resultMap"
|
||||||
|
// );
|
||||||
return Util.getDeviceType(request)+"/mpage/act/WritngPosblRvwR";
|
return Util.getDeviceType(request)+"/mpage/act/WritngPosblRvwR";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 나의 리뷰 조회 작성 가능한 리뷰 ajax(인피니트스크롤)
|
* 나의 리뷰 조회 작성 가능한 리뷰 ajax(인피니트스크롤)
|
||||||
* @param rvwVO
|
* @param rvwVO
|
||||||
@@ -487,6 +603,10 @@ public class MyActController {
|
|||||||
.resBody(new WnbtResponseBody(content))
|
.resBody(new WnbtResponseBody(content))
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
|
// return responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOWritPosblRvw",rvwVO),
|
||||||
|
// ReplyFromResrc::getReply
|
||||||
|
// );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -503,6 +623,11 @@ public class MyActController {
|
|||||||
|
|
||||||
DataMap content = selectBOMyRvwListInqire(rvwVO);
|
DataMap content = selectBOMyRvwListInqire(rvwVO);
|
||||||
model.addAttribute("resultMap", content);
|
model.addAttribute("resultMap", content);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMyRvwListInqire",rvwVO),
|
||||||
|
// model,
|
||||||
|
// "resultMap"
|
||||||
|
// );
|
||||||
return Util.getDeviceType(request)+"/mpage/act/MyRvwR";
|
return Util.getDeviceType(request)+"/mpage/act/MyRvwR";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -524,6 +649,10 @@ public class MyActController {
|
|||||||
.resBody(new WnbtResponseBody(content))
|
.resBody(new WnbtResponseBody(content))
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
|
// return responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMyRvwListInqire",rvwVO),
|
||||||
|
// ReplyFromResrc::getReply
|
||||||
|
// );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -536,9 +665,15 @@ public class MyActController {
|
|||||||
public String selectRvwWritngPopupForm(HttpServletRequest request, ModelMap model, BOGnrlbbscttVO rvwVO){
|
public String selectRvwWritngPopupForm(HttpServletRequest request, ModelMap model, BOGnrlbbscttVO rvwVO){
|
||||||
rvwVO.setRvwBbscttDv("rvw");
|
rvwVO.setRvwBbscttDv("rvw");
|
||||||
rvwVO.setServerDv("sopmal");
|
rvwVO.setServerDv("sopmal");
|
||||||
|
//리뷰 등록 가능 여부 true시 등록폼 호출
|
||||||
|
|
||||||
Map<String, Object> content = selectBOBbscttRegistPopupForm(rvwVO);
|
Map<String, Object> content = selectBOBbscttRegistPopupForm(rvwVO);
|
||||||
model.addAttribute("resultMap", content);
|
model.addAttribute("resultMap", content);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttRegistPopupForm",rvwVO),
|
||||||
|
// model,
|
||||||
|
// "resultMap"
|
||||||
|
// );
|
||||||
|
|
||||||
return Util.getDeviceType(request)+"/mpage/act/RvwWritngPopupC";
|
return Util.getDeviceType(request)+"/mpage/act/RvwWritngPopupC";
|
||||||
}
|
}
|
||||||
@@ -558,24 +693,30 @@ public class MyActController {
|
|||||||
bbsctt.setSopmalCd(user.getSopmalCd());
|
bbsctt.setSopmalCd(user.getSopmalCd());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user.getUserInnb() > 0) {
|
// 작성자 정보 추출
|
||||||
|
if (user.getUserInnb() > 0) { //회원 , 관리자
|
||||||
bbsctt.setUpdusr(user.getUserInnb());
|
bbsctt.setUpdusr(user.getUserInnb());
|
||||||
} else {
|
} else { // 비회원
|
||||||
bbsctt.setUpdusr(0);
|
bbsctt.setUpdusr(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, Object> content = new HashMap<>();
|
Map<String, Object> content = new HashMap<>();
|
||||||
|
|
||||||
|
/*게시글 삭제*/
|
||||||
DataMap bbscttDelResult = service.updateBOBbscttDel(bbsctt);
|
DataMap bbscttDelResult = service.updateBOBbscttDel(bbsctt);
|
||||||
content.put("result", bbscttDelResult);
|
content.put("result", bbscttDelResult);
|
||||||
|
/*삭제 성공 시*/
|
||||||
if ("success".equals(bbscttDelResult.get("result"))) {
|
if ("success".equals(bbscttDelResult.get("result"))) {
|
||||||
|
//리뷰 관련 처리
|
||||||
if ("06".equals(bbsctt.getBbsTyCd()) || "07".equals(bbsctt.getBbsTyCd())) {
|
if ("06".equals(bbsctt.getBbsTyCd()) || "07".equals(bbsctt.getBbsTyCd())) {
|
||||||
if (!CollectionUtils.isEmpty(bbsctt.getDelInfoArr())) {
|
if (!CollectionUtils.isEmpty(bbsctt.getDelInfoArr())) {
|
||||||
|
/*해당 정보로 마일리지 금액 조회하기*/
|
||||||
List<Object> accmlmnyAmtInfoArr = new ArrayList<>();
|
List<Object> accmlmnyAmtInfoArr = new ArrayList<>();
|
||||||
BOMlgVO mlgVo = new BOMlgVO();
|
BOMlgVO mlgVo = new BOMlgVO();
|
||||||
for (BODelInfoVO delInfo : bbsctt.getDelInfoArr()) {
|
for (BODelInfoVO delInfo : bbsctt.getDelInfoArr()) {
|
||||||
if ("01".equals(delInfo.getRegusrDvCd())) {
|
if ("01".equals(delInfo.getRegusrDvCd())) {
|
||||||
if ("03".equals(user.getSysDvCd())) {
|
if ("03".equals(user.getSysDvCd())) { //관리자 삭제시 마일리지 회수
|
||||||
|
/*공통 파라미터*/
|
||||||
mlgVo.setMbrInnb(String.valueOf(delInfo.getRegusr()));
|
mlgVo.setMbrInnb(String.valueOf(delInfo.getRegusr()));
|
||||||
mlgVo.setMbrDvCd(delInfo.getMbrDvCd());
|
mlgVo.setMbrDvCd(delInfo.getMbrDvCd());
|
||||||
mlgVo.setSopmalCd(bbsctt.getSopmalCd());
|
mlgVo.setSopmalCd(bbsctt.getSopmalCd());
|
||||||
@@ -587,7 +728,8 @@ public class MyActController {
|
|||||||
mlgVo.setRegusr(user.getUserInnb());
|
mlgVo.setRegusr(user.getUserInnb());
|
||||||
mlgVo.setUpdusr(user.getUserInnb());
|
mlgVo.setUpdusr(user.getUserInnb());
|
||||||
|
|
||||||
if ("N".equals(bbsctt.getMlgPassivRtrvlAt())) {
|
/*마일리지 수동 회수 여부*/
|
||||||
|
if ("N".equals(bbsctt.getMlgPassivRtrvlAt())) { // 선택 삭제시
|
||||||
DataMap accmlmnyAmtInfo = new DataMap();
|
DataMap accmlmnyAmtInfo = new DataMap();
|
||||||
accmlmnyAmtInfo = mlgService.selectBOMlgByBbscttInnb(mlgVo);
|
accmlmnyAmtInfo = mlgService.selectBOMlgByBbscttInnb(mlgVo);
|
||||||
if (accmlmnyAmtInfo != null) {
|
if (accmlmnyAmtInfo != null) {
|
||||||
@@ -598,7 +740,7 @@ public class MyActController {
|
|||||||
mlgVo.setAccmlmnyAmt((BigDecimal) accmlmnyAmtInfo.get("accmlmnyAmt"));
|
mlgVo.setAccmlmnyAmt((BigDecimal) accmlmnyAmtInfo.get("accmlmnyAmt"));
|
||||||
mlgService.insertBOMngrMlgDn(mlgVo);
|
mlgService.insertBOMngrMlgDn(mlgVo);
|
||||||
}
|
}
|
||||||
} else {
|
} else { //단독 삭제시*/
|
||||||
if (delInfo.getRtrvlMlgAmt() != null) {
|
if (delInfo.getRtrvlMlgAmt() != null) {
|
||||||
if (delInfo.getRtrvlMlgAmt().compareTo(BigDecimal.valueOf(0)) > 0) {
|
if (delInfo.getRtrvlMlgAmt().compareTo(BigDecimal.valueOf(0)) > 0) {
|
||||||
mlgVo.setAccmlmnyAmt(delInfo.getRtrvlMlgAmt());
|
mlgVo.setAccmlmnyAmt(delInfo.getRtrvlMlgAmt());
|
||||||
@@ -607,6 +749,7 @@ public class MyActController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//회원 관련
|
||||||
if (delInfo.getRegusr() != null) {
|
if (delInfo.getRegusr() != null) {
|
||||||
BOGnrlbbscttVO mbrSite = new BOGnrlbbscttVO();
|
BOGnrlbbscttVO mbrSite = new BOGnrlbbscttVO();
|
||||||
mbrSite.setSopmalCd(bbsctt.getSopmalCd());
|
mbrSite.setSopmalCd(bbsctt.getSopmalCd());
|
||||||
@@ -621,20 +764,26 @@ public class MyActController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//상품관련 집계와 회원관련 집계는 관리자혹은 사용자가 모두 삭제 시 처리가 되어야해
|
||||||
|
//상품 관련
|
||||||
if (delInfo.getGoodsInnb() != null) {
|
if (delInfo.getGoodsInnb() != null) {
|
||||||
BOGoodsVO goodsVO = new BOGoodsVO();
|
BOGoodsVO goodsVO = new BOGoodsVO();
|
||||||
goodsVO.setGoodsInnb(String.valueOf(delInfo.getGoodsInnb()));
|
goodsVO.setGoodsInnb(String.valueOf(delInfo.getGoodsInnb()));
|
||||||
goodsVO.setSopmalCd(bbsctt.getSopmalCd());
|
goodsVO.setSopmalCd(bbsctt.getSopmalCd());
|
||||||
|
/*상품정보 > 상품후기건수 차감*/
|
||||||
goodsService.updateRvwRelateSm(goodsVO);
|
goodsService.updateRvwRelateSm(goodsVO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if ("05".equals(bbsctt.getBbsTyCd())) {
|
} else if ("05".equals(bbsctt.getBbsTyCd())) {//상품qna는 상품문의 집계만
|
||||||
|
//상품 관련
|
||||||
if (!CollectionUtils.isEmpty(bbsctt.getGoodsInnbArr())) {
|
if (!CollectionUtils.isEmpty(bbsctt.getGoodsInnbArr())) {
|
||||||
for (String goodsInnb : bbsctt.getGoodsInnbArr()) {
|
for (String goodsInnb : bbsctt.getGoodsInnbArr()) {
|
||||||
BOGoodsVO goodsVO = new BOGoodsVO();
|
BOGoodsVO goodsVO = new BOGoodsVO();
|
||||||
goodsVO.setGoodsInnb(goodsInnb);
|
goodsVO.setGoodsInnb(goodsInnb);
|
||||||
goodsVO.setSopmalCd(bbsctt.getSopmalCd());
|
goodsVO.setSopmalCd(bbsctt.getSopmalCd());
|
||||||
|
|
||||||
|
/*상품정보 > 상품후기건수 차감*/
|
||||||
goodsService.updateGoodsInqryCnt(goodsVO);
|
goodsService.updateGoodsInqryCnt(goodsVO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -646,6 +795,10 @@ public class MyActController {
|
|||||||
.resBody(new WnbtResponseBody(content))
|
.resBody(new WnbtResponseBody(content))
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
|
// return responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttDel",bbsctt),
|
||||||
|
// ReplyFromResrc::getReply
|
||||||
|
// );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -661,6 +814,11 @@ public class MyActController {
|
|||||||
|
|
||||||
Map<String, Object> content = selectBOBbscttRegistPopupForm(vo);
|
Map<String, Object> content = selectBOBbscttRegistPopupForm(vo);
|
||||||
model.addAttribute("resultMap", content);
|
model.addAttribute("resultMap", content);
|
||||||
|
// responseHandler.handleResponse(
|
||||||
|
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttRegistPopupForm", vo),
|
||||||
|
// model,
|
||||||
|
// "resultMap"
|
||||||
|
// );
|
||||||
return Util.getDeviceType(request)+"/mpage/act/RvwEasyRegistC";
|
return Util.getDeviceType(request)+"/mpage/act/RvwEasyRegistC";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -672,7 +830,7 @@ public class MyActController {
|
|||||||
public DataMap selectBOBbscttListInqire(BOGnrlbbscttVO bbsctt) {
|
public DataMap selectBOBbscttListInqire(BOGnrlbbscttVO bbsctt) {
|
||||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
|
|
||||||
if ("01".equals(user.getSysDvCd())) {
|
if ("01".equals(user.getSysDvCd())) {//사용자 조회 일 경우
|
||||||
bbsctt.setSopmalCd(user.getSopmalCd());
|
bbsctt.setSopmalCd(user.getSopmalCd());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -689,6 +847,7 @@ public class MyActController {
|
|||||||
bbsctt.setRegusrDvCd("99");
|
bbsctt.setRegusrDvCd("99");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// pagination
|
||||||
PaginationInfo paginationInfo = new PaginationInfo();
|
PaginationInfo paginationInfo = new PaginationInfo();
|
||||||
paginationInfo.setCurrentPageNo(bbsctt.getPageIndex());
|
paginationInfo.setCurrentPageNo(bbsctt.getPageIndex());
|
||||||
paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit());
|
paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit());
|
||||||
@@ -699,10 +858,13 @@ public class MyActController {
|
|||||||
bbsctt.setLastIndex(paginationInfo.getLastRecordIndex());
|
bbsctt.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||||
bbsctt.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
bbsctt.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||||
|
|
||||||
|
// 게시글 목록조회
|
||||||
Map<String, Object> resultList = new HashMap<String, Object>();
|
Map<String, Object> resultList = new HashMap<String, Object>();
|
||||||
resultList = service.selectBOBbscttListInqire(bbsctt);
|
resultList = service.selectBOBbscttListInqire(bbsctt);
|
||||||
|
|
||||||
|
// 게시판 설정 정보 조회
|
||||||
BOBbsVO bbsVO = new BOBbsVO();
|
BOBbsVO bbsVO = new BOBbsVO();
|
||||||
|
// bbsVO에 쇼핑몰코드, 해당 게시판 set
|
||||||
bbsVO.setSopmalCd(bbsctt.getSopmalCd());
|
bbsVO.setSopmalCd(bbsctt.getSopmalCd());
|
||||||
bbsVO.setBbsId(bbsctt.getBbsId());
|
bbsVO.setBbsId(bbsctt.getBbsId());
|
||||||
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
|
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
|
||||||
@@ -722,11 +884,13 @@ public class MyActController {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> selectBOMpageInfoInqire(BOMbrVO vo) {
|
public Map<String, Object> selectBOMpageInfoInqire(BOMbrVO vo) {
|
||||||
|
// 사용자 정보 추출 및 적용
|
||||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
vo.setSopmalCd(user.getSopmalCd());
|
vo.setSopmalCd(user.getSopmalCd());
|
||||||
vo.setMbrInnb(String.valueOf(user.getUserInnb()));
|
vo.setMbrInnb(String.valueOf(user.getUserInnb()));
|
||||||
vo.setMbrDvCd(user.getMbrDvCd());
|
vo.setMbrDvCd(user.getMbrDvCd());
|
||||||
|
|
||||||
|
// 상품 옵션 조회
|
||||||
Map<String, Object> message = new HashMap<>();
|
Map<String, Object> message = new HashMap<>();
|
||||||
message = boMbrService.selectBOMpageInfoInqire(vo);
|
message = boMbrService.selectBOMpageInfoInqire(vo);
|
||||||
|
|
||||||
@@ -751,6 +915,7 @@ public class MyActController {
|
|||||||
bbsctt.setSopmalCd(user.getSopmalCd());
|
bbsctt.setSopmalCd(user.getSopmalCd());
|
||||||
bbsctt.setRegusr(user.getUserInnb());
|
bbsctt.setRegusr(user.getUserInnb());
|
||||||
bbsctt.setMbrDvCd(user.getMbrDvCd());
|
bbsctt.setMbrDvCd(user.getMbrDvCd());
|
||||||
|
// pagination
|
||||||
PaginationInfo paginationInfo = new PaginationInfo();
|
PaginationInfo paginationInfo = new PaginationInfo();
|
||||||
paginationInfo.setCurrentPageNo(bbsctt.getPageIndex());
|
paginationInfo.setCurrentPageNo(bbsctt.getPageIndex());
|
||||||
paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit());
|
paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit());
|
||||||
@@ -783,6 +948,7 @@ public class MyActController {
|
|||||||
if (!"crm".equals(bbsctt.getReqUrl())) {
|
if (!"crm".equals(bbsctt.getReqUrl())) {
|
||||||
bbsctt.setRegusr(user.getUserInnb());
|
bbsctt.setRegusr(user.getUserInnb());
|
||||||
}
|
}
|
||||||
|
// pagination
|
||||||
PaginationInfo paginationInfo = new PaginationInfo();
|
PaginationInfo paginationInfo = new PaginationInfo();
|
||||||
paginationInfo.setCurrentPageNo(bbsctt.getPageIndex());
|
paginationInfo.setCurrentPageNo(bbsctt.getPageIndex());
|
||||||
paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit());
|
paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit());
|
||||||
@@ -792,7 +958,7 @@ public class MyActController {
|
|||||||
bbsctt.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
bbsctt.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||||
bbsctt.setLastIndex(paginationInfo.getLastRecordIndex());
|
bbsctt.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||||
bbsctt.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
bbsctt.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||||
|
// 게시글 목록조회
|
||||||
Map<String, Object> resultList = new HashMap<String, Object>();
|
Map<String, Object> resultList = new HashMap<String, Object>();
|
||||||
resultList = service.selectBOMyRvwListInqire(bbsctt);
|
resultList = service.selectBOMyRvwListInqire(bbsctt);
|
||||||
|
|
||||||
@@ -808,6 +974,7 @@ public class MyActController {
|
|||||||
*/
|
*/
|
||||||
public Map<String, Object> selectBOBbscttRegistPopupForm(BOGnrlbbscttVO bbsctt) {
|
public Map<String, Object> selectBOBbscttRegistPopupForm(BOGnrlbbscttVO bbsctt) {
|
||||||
Map<String, Object> content = new HashMap<String, Object>();
|
Map<String, Object> content = new HashMap<String, Object>();
|
||||||
|
// 작성자 정보 추출
|
||||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||||
|
|
||||||
if ("01".equals(user.getSysDvCd())) {
|
if ("01".equals(user.getSysDvCd())) {
|
||||||
@@ -820,9 +987,9 @@ public class MyActController {
|
|||||||
if (user.getUserInnb() > 0) {
|
if (user.getUserInnb() > 0) {
|
||||||
bbsctt.setRegusr(user.getUserInnb());
|
bbsctt.setRegusr(user.getUserInnb());
|
||||||
if (!"01".equals(user.getSysDvCd())) {
|
if (!"01".equals(user.getSysDvCd())) {
|
||||||
bbsctt.setRegusrDvCd("02");
|
bbsctt.setRegusrDvCd("02"); //관리자
|
||||||
} else {
|
} else {
|
||||||
bbsctt.setRegusrDvCd("01");
|
bbsctt.setRegusrDvCd("01"); //회원
|
||||||
bbsctt.setMbrDvCd(user.getMbrDvCd());
|
bbsctt.setMbrDvCd(user.getMbrDvCd());
|
||||||
DataMap mbr = new DataMap();
|
DataMap mbr = new DataMap();
|
||||||
mbr.put("mbrInnb", String.valueOf(bbsctt.getRegusr()));
|
mbr.put("mbrInnb", String.valueOf(bbsctt.getRegusr()));
|
||||||
@@ -838,25 +1005,31 @@ public class MyActController {
|
|||||||
regusrInfo.setRegusrDvCd(bbsctt.getRegusrDvCd());
|
regusrInfo.setRegusrDvCd(bbsctt.getRegusrDvCd());
|
||||||
} else {
|
} else {
|
||||||
regusrInfo.setRegusr(0);
|
regusrInfo.setRegusr(0);
|
||||||
regusrInfo.setRegusrDvCd("99");
|
regusrInfo.setRegusrDvCd("99");//비회원
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 게시판 설정 정보
|
||||||
BOBbsVO bbsVO = new BOBbsVO();
|
BOBbsVO bbsVO = new BOBbsVO();
|
||||||
|
// bbsVO에 쇼핑몰코드, 해당 게시판 set
|
||||||
bbsVO.setSopmalCd(bbsctt.getSopmalCd());
|
bbsVO.setSopmalCd(bbsctt.getSopmalCd());
|
||||||
bbsVO.setBbsId(bbsctt.getBbsId());
|
bbsVO.setBbsId(bbsctt.getBbsId());
|
||||||
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
|
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
|
||||||
DataMap bbsInfo = new DataMap();
|
DataMap bbsInfo = new DataMap();
|
||||||
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
|
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
|
||||||
|
|
||||||
|
// 분류
|
||||||
List<DataMap> itmList = new ArrayList<>();
|
List<DataMap> itmList = new ArrayList<>();
|
||||||
itmList = service.selectBOBbscttItmInqire(bbsctt);
|
itmList = service.selectBOBbscttItmInqire(bbsctt);
|
||||||
|
|
||||||
|
//리뷰항목 리스트, 리뷰항목 항목 리스트
|
||||||
Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
|
Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
|
||||||
rvwQesitmList = service.selectBOStarItm(bbsctt);
|
rvwQesitmList = service.selectBOStarItm(bbsctt);
|
||||||
|
|
||||||
|
//추가항목 리스트, 추가항목 항목 리스트
|
||||||
Map<String, Object> qesitmList = new HashMap<String, Object>();
|
Map<String, Object> qesitmList = new HashMap<String, Object>();
|
||||||
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
|
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
|
||||||
|
|
||||||
|
//사용자 > 리뷰 상품 조회
|
||||||
DataMap rvwGoodsInfo = new DataMap();
|
DataMap rvwGoodsInfo = new DataMap();
|
||||||
DataMap mlgInfo = new DataMap();
|
DataMap mlgInfo = new DataMap();
|
||||||
if ("sopmal".equals(bbsctt.getServerDv())) {
|
if ("sopmal".equals(bbsctt.getServerDv())) {
|
||||||
@@ -868,6 +1041,7 @@ public class MyActController {
|
|||||||
|
|
||||||
List<DataMap> rvwItmList = new ArrayList<>();
|
List<DataMap> rvwItmList = new ArrayList<>();
|
||||||
List<DataMap> starItmList = new ArrayList<>();
|
List<DataMap> starItmList = new ArrayList<>();
|
||||||
|
//사용자 별표 평점 역으로 리스트 set(퍼블리싱으로 인한 역처리)
|
||||||
if (rvwQesitmList.get("starItmCnList") != null) {
|
if (rvwQesitmList.get("starItmCnList") != null) {
|
||||||
rvwItmList = (List<DataMap>) rvwQesitmList.get("starItmCnList");
|
rvwItmList = (List<DataMap>) rvwQesitmList.get("starItmCnList");
|
||||||
for (int i = rvwItmList.size() - 1; i >= 0; i--) {
|
for (int i = rvwItmList.size() - 1; i >= 0; i--) {
|
||||||
@@ -878,6 +1052,7 @@ public class MyActController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//사용자 > 상품q&a 상품 조회
|
||||||
DataMap qnaGoodsInfo = new DataMap();
|
DataMap qnaGoodsInfo = new DataMap();
|
||||||
if ("sopmal".equals(bbsctt.getServerDv())) {
|
if ("sopmal".equals(bbsctt.getServerDv())) {
|
||||||
if ("modal".equals(bbsctt.getReqUrl())) {
|
if ("modal".equals(bbsctt.getReqUrl())) {
|
||||||
|
|||||||
@@ -3,9 +3,6 @@ package com.wb.domainserver.domain.sopmal.ordr.controller;
|
|||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.nimbusds.jose.shaded.gson.Gson;
|
import com.nimbusds.jose.shaded.gson.Gson;
|
||||||
import com.stripe.model.Event;
|
|
||||||
import com.stripe.model.checkout.Session;
|
|
||||||
import com.stripe.net.Webhook;
|
|
||||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||||
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
|
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
|
||||||
import com.wb.domainserver.common.prop.PaginationProperties;
|
import com.wb.domainserver.common.prop.PaginationProperties;
|
||||||
@@ -59,6 +56,7 @@ import com.wb.domainserver.util.util.Util;
|
|||||||
import jakarta.servlet.http.Cookie;
|
import jakarta.servlet.http.Cookie;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.text.StringEscapeUtils;
|
||||||
import org.apache.logging.log4j.util.Base64Util;
|
import org.apache.logging.log4j.util.Base64Util;
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
import org.json.simple.parser.JSONParser;
|
import org.json.simple.parser.JSONParser;
|
||||||
@@ -70,11 +68,15 @@ import org.springframework.stereotype.Controller;
|
|||||||
import org.springframework.ui.ModelMap;
|
import org.springframework.ui.ModelMap;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -852,8 +854,6 @@ public class OrdrController {
|
|||||||
url = "sopmal/ordr/OrdrReqstTossPayR";
|
url = "sopmal/ordr/OrdrReqstTossPayR";
|
||||||
} else if ("tosspay".equals(pgCmpnyNm)||"kakaopay".equals(pgCmpnyNm)) { //||"naverpay".equals(pgCmpnyNm) 키움으로 이동
|
} else if ("tosspay".equals(pgCmpnyNm)||"kakaopay".equals(pgCmpnyNm)) { //||"naverpay".equals(pgCmpnyNm) 키움으로 이동
|
||||||
url = "sopmal/ordr/OrdrReqstTosspayPayR";
|
url = "sopmal/ordr/OrdrReqstTosspayPayR";
|
||||||
} else if ("stripe".equals(pgCmpnyNm)) { // Stripe
|
|
||||||
url = "sopmal/ordr/OrdrReqstStripePayR";
|
|
||||||
} else if ("02".equals(setleTyCd)||"08".equals(setleTyCd)||"12".equals(setleTyCd)) { // 무통장, 마일리지, 충전형마일리지
|
} else if ("02".equals(setleTyCd)||"08".equals(setleTyCd)||"12".equals(setleTyCd)) { // 무통장, 마일리지, 충전형마일리지
|
||||||
url = "sopmal/ordr/OrdrReqstPayR";
|
url = "sopmal/ordr/OrdrReqstPayR";
|
||||||
}
|
}
|
||||||
@@ -1557,110 +1557,6 @@ public class OrdrController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > Stripe 결제 정보 등록 (webhook)
|
|
||||||
* @param payload
|
|
||||||
* @param sigHeader
|
|
||||||
* @return OrdrRspnsKiwoomPayR.jsp
|
|
||||||
*/
|
|
||||||
@Policy(AuthPolicy.RESTRICTED)
|
|
||||||
@RequestMapping(value="/{sopmalCd}/insertStripeSetle")
|
|
||||||
public ResponseEntity<String> insertStripeSetle(@RequestBody String payload, @RequestHeader("Stripe-Signature") String sigHeader, @PathVariable String sopmalCd) {
|
|
||||||
|
|
||||||
try {
|
|
||||||
log.info("insertStripeSetle webhook start ::: ");
|
|
||||||
|
|
||||||
Event event = payService.createWebhookEvent(payload, sigHeader, sopmalCd);
|
|
||||||
|
|
||||||
if ("checkout.session.completed".equals(event.getType())) {
|
|
||||||
Session session = (Session) event
|
|
||||||
.getDataObjectDeserializer()
|
|
||||||
.getObject()
|
|
||||||
.orElseThrow();
|
|
||||||
|
|
||||||
log.info("insertStripeSetle controller start ::: ");
|
|
||||||
|
|
||||||
BOPayVO payVO = new BOPayVO();
|
|
||||||
payVO.setOrderId(session.getMetadata().get("ordrInnb"));
|
|
||||||
payVO.setAmount(session.getMetadata().get("setleAmt"));
|
|
||||||
payVO.setSopmalCd(session.getMetadata().get("sopmalCd"));
|
|
||||||
payVO.setMbrInnb(session.getMetadata().get("mbrInnb"));
|
|
||||||
payVO.setMbrId(session.getMetadata().get("mbrId"));
|
|
||||||
payVO.setSesionId(session.getMetadata().get("sesionId"));
|
|
||||||
payVO.setPgCmpnyNm(session.getMetadata().get("pgCmpnyNm"));
|
|
||||||
payVO.setSetleTyCd(session.getMetadata().get("setleTyCd"));
|
|
||||||
payVO.setSetlerNm(session.getMetadata().get("ordrrNm"));
|
|
||||||
|
|
||||||
log.info("insertStripeSetle controller payVO ::: {}", payVO);
|
|
||||||
|
|
||||||
/* 쿠키 데이터 세팅 시작 */
|
|
||||||
String agentId = session.getMetadata().get("agentId");
|
|
||||||
String jSesionId = session.getMetadata().get("jSesionId");
|
|
||||||
String ipAdres = session.getMetadata().get("ipAdres");
|
|
||||||
String uMbrNm = session.getMetadata().get("uMbrNm");
|
|
||||||
String uSysDvCd = session.getMetadata().get("uSysDvCd");
|
|
||||||
String uSopmalCd = session.getMetadata().get("uSopmalCd");
|
|
||||||
String uMbrDvCd = session.getMetadata().get("uMbrDvCd");
|
|
||||||
|
|
||||||
//agentId 쿠키 있을 경우 가져옴
|
|
||||||
if (!"".equals(jSesionId)) {
|
|
||||||
payVO.setSessionId(jSesionId);
|
|
||||||
}
|
|
||||||
//gc_agent_id 가져옴
|
|
||||||
if (!"".equals(agentId)) {
|
|
||||||
payVO.setAgentId(agentId);
|
|
||||||
}
|
|
||||||
payVO.setIpAdres(ipAdres);
|
|
||||||
|
|
||||||
if (!"".equals(uMbrNm)) {
|
|
||||||
payVO.setMbrNm(uMbrNm); //회원명(관리자명)
|
|
||||||
}
|
|
||||||
if ("01".equals(uSysDvCd)) {
|
|
||||||
payVO.setDvCd("01");
|
|
||||||
payVO.setSopmalCd(uSopmalCd);
|
|
||||||
payVO.setMbrDvCd(uMbrDvCd);
|
|
||||||
} else {
|
|
||||||
payVO.setDvCd("02");
|
|
||||||
}
|
|
||||||
/* 쿠키 데이터 세팅 끝 */
|
|
||||||
|
|
||||||
Map<String, Object> content;
|
|
||||||
|
|
||||||
try {
|
|
||||||
content = service.insertStripeSetle(session, payVO);
|
|
||||||
|
|
||||||
log.info("insertStripeSetle controller content ::: {}", content);
|
|
||||||
} catch (WnbtRestException wre) {
|
|
||||||
log.info("insertStripeSetle : Stripe 결제 정보 등록 : 실패 WnbtRestException");
|
|
||||||
log.error(wre.getMessage(), wre);
|
|
||||||
content = new HashMap<>() {{
|
|
||||||
put("status", "1");
|
|
||||||
put("message", wre.getMessage());
|
|
||||||
}};
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.info("insertStripeSetle : Stripe 결제 정보 등록 : 실패");
|
|
||||||
log.error(e.getMessage(), e);
|
|
||||||
|
|
||||||
content = new HashMap<>() {{
|
|
||||||
put("status", "1");
|
|
||||||
put("message", "Stripe 결제 정보 등록이 실패하였습니다.\n관리자에게 문의하시기 바랍니다.");
|
|
||||||
}};
|
|
||||||
}
|
|
||||||
|
|
||||||
if ("0".equals(content.get("status"))) {
|
|
||||||
commonOrderPostProcess(payVO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.debug("Webhook error ::: {}", e);
|
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
|
|
||||||
}
|
|
||||||
|
|
||||||
return ResponseEntity.ok().build();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > 주문완료 화면 이동
|
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > 주문완료 화면 이동
|
||||||
* @return OrdrComptR.jsp
|
* @return OrdrComptR.jsp
|
||||||
|
|||||||
@@ -1,299 +0,0 @@
|
|||||||
package com.wb.domainserver.domain.sopmal.stripe.controller;
|
|
||||||
|
|
||||||
import com.google.gson.JsonObject;
|
|
||||||
import com.stripe.StripeClient;
|
|
||||||
import com.stripe.exception.StripeException;
|
|
||||||
import com.stripe.model.checkout.Session;
|
|
||||||
import com.stripe.param.checkout.SessionCreateParams;
|
|
||||||
import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService;
|
|
||||||
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO;
|
|
||||||
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService;
|
|
||||||
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrVO;
|
|
||||||
import com.wb.domainserver.domain.gcone.ordr.pay.service.BOPayService;
|
|
||||||
import com.wb.domainserver.response.WnbtResponse;
|
|
||||||
import com.wb.domainserver.response.WnbtResponseBody;
|
|
||||||
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.cookie.CookieUtil;
|
|
||||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
|
||||||
import com.wb.domainserver.util.util.Util;
|
|
||||||
import jakarta.servlet.http.Cookie;
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.http.MediaType;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.stereotype.Controller;
|
|
||||||
import org.springframework.ui.ModelMap;
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
|
||||||
import org.springframework.web.server.ResponseStatusException;
|
|
||||||
import org.springframework.http.HttpStatus;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Slf4j
|
|
||||||
@Controller
|
|
||||||
@RequestMapping("/sopmal/stripe")
|
|
||||||
public class StripeController {
|
|
||||||
@Autowired
|
|
||||||
private BOMaSopmalService boMaSopmalService;
|
|
||||||
@Autowired
|
|
||||||
private BOPayService payService;
|
|
||||||
@Autowired
|
|
||||||
private BOOrdrService ordrService;
|
|
||||||
|
|
||||||
private Util utilClass;
|
|
||||||
|
|
||||||
@Value("${stripe.checkout.return-base-url:}")
|
|
||||||
private String stripeReturnBaseUrl = "";
|
|
||||||
|
|
||||||
String resolveStripeReturnBaseUrl(String shopDomain) {
|
|
||||||
String baseUrl = stripeReturnBaseUrl.isBlank() ? shopDomain : stripeReturnBaseUrl.trim();
|
|
||||||
return baseUrl.replaceAll("/+$", "");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* stripe 결제 Url 호출
|
|
||||||
* @return selectStripeTest.jsp
|
|
||||||
*/
|
|
||||||
@Policy(AuthPolicy.RESTRICTED)
|
|
||||||
@PostMapping(value = "/checkout", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
public ResponseEntity<?> createCheckoutSession(HttpServletRequest request) throws Exception {
|
|
||||||
BOMaSopmalVO sopmalVO = new BOMaSopmalVO();
|
|
||||||
sopmalVO.setSopmalCd(request.getParameter("sopmalCd"));
|
|
||||||
DataMap sopmalInfo = boMaSopmalService.selectBOSopmalUpdtForm(sopmalVO).get(0);
|
|
||||||
String domnAdres = resolveStripeReturnBaseUrl(sopmalInfo.get("pcDomnAdres").toString());
|
|
||||||
|
|
||||||
StripeClient stripeClient = payService.createStripeClient(request.getParameter("sopmalCd"));
|
|
||||||
SessionCreateParams.Builder paramsBuilder = SessionCreateParams.builder()
|
|
||||||
.setMode(SessionCreateParams.Mode.PAYMENT)
|
|
||||||
.setSuccessUrl(domnAdres + "/sopmal/stripe/stripeSuccess?sessionId={CHECKOUT_SESSION_ID}&sopmalCd=" + request.getParameter("sopmalCd"))
|
|
||||||
.setCancelUrl(domnAdres + "/sopmal/stripe/stripeCancel?sessionId={CHECKOUT_SESSION_ID}&sopmalCd=" + request.getParameter("sopmalCd"))
|
|
||||||
.setAdaptivePricing(
|
|
||||||
SessionCreateParams.AdaptivePricing.builder()
|
|
||||||
.setEnabled(false)
|
|
||||||
.build()
|
|
||||||
);
|
|
||||||
|
|
||||||
String customerEmail = request.getParameter("ordrrEmail");
|
|
||||||
if (customerEmail != null && !customerEmail.isBlank()) {
|
|
||||||
paramsBuilder.setCustomerEmail(customerEmail.trim());
|
|
||||||
}
|
|
||||||
|
|
||||||
paramsBuilder.addLineItem(
|
|
||||||
SessionCreateParams.LineItem.builder()
|
|
||||||
.setQuantity(1L)
|
|
||||||
.setPriceData(
|
|
||||||
SessionCreateParams.LineItem.PriceData.builder()
|
|
||||||
.setCurrency("jpy")
|
|
||||||
.setUnitAmount(Long.parseLong(request.getParameter("jpSetleAmt")))
|
|
||||||
.setProductData(
|
|
||||||
SessionCreateParams.LineItem.PriceData.ProductData.builder()
|
|
||||||
.setName(request.getParameter("goodsNm"))
|
|
||||||
.build()
|
|
||||||
).build()
|
|
||||||
).build()
|
|
||||||
);
|
|
||||||
|
|
||||||
paramsBuilder
|
|
||||||
.putMetadata("sopmalCd", request.getParameter("sopmalCd"))
|
|
||||||
.putMetadata("ordrInnb", request.getParameter("ordrInnb"))
|
|
||||||
.putMetadata("pgCmpnyNm", request.getParameter("pgCmpnyNm"))
|
|
||||||
.putMetadata("setleTyCd", request.getParameter("setleTyCd"))
|
|
||||||
.putMetadata("goodsNm", request.getParameter("goodsNm"))
|
|
||||||
.putMetadata("setleAmt", request.getParameter("setleAmt"))
|
|
||||||
.putMetadata("ordrrNm", request.getParameter("ordrrNm"))
|
|
||||||
.putMetadata("ordrrEmail", request.getParameter("ordrrEmail"))
|
|
||||||
.putMetadata("ordrrMbtlnb", request.getParameter("ordrrMbtlnb"))
|
|
||||||
.putMetadata("mbrId", request.getParameter("mbrId"))
|
|
||||||
.putMetadata("mbrInnb", request.getParameter("mbrInnb"))
|
|
||||||
.putMetadata("sesionId", request.getParameter("sesionId"))
|
|
||||||
.putMetadata("subsvcInnb", request.getParameter("subsvcInnb"));
|
|
||||||
|
|
||||||
/* insertStripeSetle() 결제 정보 등록 파라미터 시작 */
|
|
||||||
String agentId = "";
|
|
||||||
String jSesionId = "";
|
|
||||||
String ipAdres = "";
|
|
||||||
String uMbrNm = "";
|
|
||||||
String uSysDvCd = "";
|
|
||||||
String uSopmalCd = "";
|
|
||||||
String uMbrDvCd = "";
|
|
||||||
|
|
||||||
// 쿠키를 가져옴
|
|
||||||
Cookie[] cookies = request.getCookies();
|
|
||||||
|
|
||||||
//agentId 쿠키 있을 경우 가져옴
|
|
||||||
if (cookies != null) {
|
|
||||||
for (Cookie cookie : cookies) {
|
|
||||||
if (cookie.getName().equals("JSESSIONID")) {
|
|
||||||
jSesionId = cookie.getValue();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//gc_agent_id 가져옴
|
|
||||||
if (CookieUtil.hasAgentCookie(request.getCookies())) {
|
|
||||||
agentId = CookieUtil.getAgentCookieValue(request.getCookies());
|
|
||||||
}
|
|
||||||
Map<String, String> util = new HashMap<>();
|
|
||||||
util = utilClass.getRequestInfo(request);
|
|
||||||
ipAdres = util.get("XForwardedFor");
|
|
||||||
|
|
||||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
|
||||||
uMbrNm = user.getMbrNm(); //회원명(관리자명)
|
|
||||||
if ("01".equals(user.getSysDvCd())) {
|
|
||||||
uSopmalCd = user.getSopmalCd();
|
|
||||||
uMbrDvCd = user.getMbrDvCd();
|
|
||||||
}
|
|
||||||
paramsBuilder
|
|
||||||
.putMetadata("agentId", agentId)
|
|
||||||
.putMetadata("jSesionId", jSesionId)
|
|
||||||
.putMetadata("ipAdres", ipAdres)
|
|
||||||
.putMetadata("uMbrNm", uMbrNm)
|
|
||||||
.putMetadata("uSysDvCd", uSysDvCd)
|
|
||||||
.putMetadata("uSopmalCd", uSopmalCd)
|
|
||||||
.putMetadata("uMbrDvCd", uMbrDvCd);
|
|
||||||
/* insertStripeSetle() 결제 정보 등록 파라미터 끝 */
|
|
||||||
|
|
||||||
Session session = stripeClient.v1().checkout().sessions().create(paramsBuilder.build());
|
|
||||||
|
|
||||||
DataMap result = new DataMap();
|
|
||||||
result.put("checkoutUrl", session.getUrl());
|
|
||||||
result.put("redirectUrl", UriComponentsBuilder.fromPath(request.getContextPath() + "/sopmal/stripe/checkoutRedirect")
|
|
||||||
.queryParam("sessionId", session.getId())
|
|
||||||
.queryParam("sopmalCd", request.getParameter("sopmalCd"))
|
|
||||||
.build().encode().toUriString());
|
|
||||||
|
|
||||||
WnbtResponseBody body = new WnbtResponseBody(result);
|
|
||||||
WnbtResponse response = WnbtResponse.builder().resBody(body).build();
|
|
||||||
|
|
||||||
return ResponseEntity.ok(response);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Stripe 진입 이력을 GET으로 남겨 뒤로가기 시 주문 POST를 재전송하지 않는다. */
|
|
||||||
@Policy(AuthPolicy.RESTRICTED)
|
|
||||||
@GetMapping("/checkoutRedirect")
|
|
||||||
public String checkoutRedirect(ModelMap model, @RequestParam("sessionId") String sessionId,
|
|
||||||
@RequestParam("sopmalCd") String sopmalCd) throws StripeException {
|
|
||||||
Session session = payService.createStripeClient(sopmalCd).v1().checkout().sessions().retrieve(sessionId);
|
|
||||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
|
||||||
if (!String.valueOf(user.getUserInnb()).equals(session.getMetadata().get("mbrInnb"))
|
|
||||||
|| !sopmalCd.equals(session.getMetadata().get("sopmalCd"))) {
|
|
||||||
throw new ResponseStatusException(HttpStatus.FORBIDDEN);
|
|
||||||
}
|
|
||||||
model.addAttribute("checkoutUrl", "open".equals(session.getStatus()) ? session.getUrl() : "");
|
|
||||||
model.addAttribute("sessionId", sessionId);
|
|
||||||
model.addAttribute("sopmalCd", sopmalCd);
|
|
||||||
return "sopmal/ordr/StripeRedirectR";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Policy(AuthPolicy.RESTRICTED)
|
|
||||||
@RequestMapping(value = "/stripeSuccess")
|
|
||||||
public String stripeSuccess(ModelMap model, @RequestParam("sessionId") String sessionId, @RequestParam("sopmalCd") String sopmalCd) throws StripeException {
|
|
||||||
StripeClient stripeClient = payService.createStripeClient(sopmalCd);
|
|
||||||
Session session = stripeClient.v1().checkout().sessions().retrieve(sessionId);
|
|
||||||
|
|
||||||
String status = session.getStatus();
|
|
||||||
String paymentStatus = session.getPaymentStatus();
|
|
||||||
JsonObject customerDetails = null;
|
|
||||||
JsonObject rawJson = session.getRawJsonObject();
|
|
||||||
if (rawJson != null
|
|
||||||
&& rawJson.has("customer_details")
|
|
||||||
&& !rawJson.get("customer_details").isJsonNull()) {
|
|
||||||
customerDetails = rawJson.getAsJsonObject("customer_details");
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOrdrVO ordrVO = new BOOrdrVO();
|
|
||||||
ordrVO.setSopmalCd(sopmalCd);
|
|
||||||
ordrVO.setOrdrInnb(session.getMetadata().get("ordrInnb"));
|
|
||||||
DataMap ordrDtl = ordrService.selectOrdrSttus(ordrVO);
|
|
||||||
if (ordrDtl != null && !"25".equals(ordrDtl.get("ordrSttusCd"))) {
|
|
||||||
try {
|
|
||||||
Thread.sleep(3000);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
Thread.currentThread().interrupt();
|
|
||||||
}
|
|
||||||
ordrDtl = ordrService.selectOrdrSttus(ordrVO);
|
|
||||||
}
|
|
||||||
|
|
||||||
model.addAttribute("status", status);
|
|
||||||
model.addAttribute("payment_status", paymentStatus);
|
|
||||||
model.addAttribute("customer_details", customerDetails);
|
|
||||||
if("complete".equals(status) && "paid".equals(paymentStatus) && "25".equals(ordrDtl.get("ordrSttusCd"))) {
|
|
||||||
model.addAttribute("returnUrl", "/sopmal/ordr/selectOrdrCompt");
|
|
||||||
model.addAttribute("message", "Stripe 결제 정보 등록을 완료 하였습니다.");
|
|
||||||
} else {
|
|
||||||
model.addAttribute("returnUrl", "/sopmal/ordr/selectOrdrFailr");
|
|
||||||
model.addAttribute("message", "Stripe 결제 정보 등록을 실패 하였습니다.");
|
|
||||||
}
|
|
||||||
model.addAttribute("sopmalCd", session.getMetadata().get("sopmalCd"));
|
|
||||||
model.addAttribute("ordrInnb", session.getMetadata().get("ordrInnb"));
|
|
||||||
model.addAttribute("pgCmpnyNm", session.getMetadata().get("pgCmpnyNm"));
|
|
||||||
model.addAttribute("setleTyCd", session.getMetadata().get("setleTyCd"));
|
|
||||||
model.addAttribute("goodsNm", session.getMetadata().get("goodsNm"));
|
|
||||||
model.addAttribute("setleAmt", session.getMetadata().get("setleAmt"));
|
|
||||||
model.addAttribute("ordrrNm", session.getMetadata().get("ordrrNm"));
|
|
||||||
model.addAttribute("ordrrEmail", session.getMetadata().get("ordrrEmail"));
|
|
||||||
model.addAttribute("ordrrMbtlnb", session.getMetadata().get("ordrrMbtlnb"));
|
|
||||||
model.addAttribute("mbrId", session.getMetadata().get("mbrId"));
|
|
||||||
model.addAttribute("mbrInnb", session.getMetadata().get("mbrInnb"));
|
|
||||||
model.addAttribute("sesionId", session.getMetadata().get("sesionId"));
|
|
||||||
model.addAttribute("subsvcInnb", session.getMetadata().get("subsvcInnb"));
|
|
||||||
|
|
||||||
return "sopmal/ordr/PayStripeSucsC";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Policy(AuthPolicy.RESTRICTED)
|
|
||||||
@RequestMapping(value = "/stripeCancel")
|
|
||||||
public String stripeCancel(HttpServletRequest request, ModelMap model, @RequestParam("sessionId") String sessionId, @RequestParam("sopmalCd") String sopmalCd) throws StripeException {
|
|
||||||
StripeClient stripeClient = payService.createStripeClient(sopmalCd);
|
|
||||||
Session session = stripeClient.v1().checkout().sessions().retrieve(sessionId);
|
|
||||||
|
|
||||||
String status = session.getStatus();
|
|
||||||
String paymentStatus = session.getPaymentStatus();
|
|
||||||
if (!("complete".equals(status) && "paid".equals(paymentStatus))) {
|
|
||||||
model.addAttribute("mobile", "sopmal_m".equals(Util.getDeviceType(request)));
|
|
||||||
return "sopmal/ordr/StripeCancelR";
|
|
||||||
}
|
|
||||||
JsonObject customerDetails = null;
|
|
||||||
JsonObject rawJson = session.getRawJsonObject();
|
|
||||||
if (rawJson != null
|
|
||||||
&& rawJson.has("customer_details")
|
|
||||||
&& !rawJson.get("customer_details").isJsonNull()) {
|
|
||||||
customerDetails = rawJson.getAsJsonObject("customer_details");
|
|
||||||
}
|
|
||||||
|
|
||||||
model.addAttribute("status", status);
|
|
||||||
model.addAttribute("payment_status", paymentStatus);
|
|
||||||
model.addAttribute("customer_details", customerDetails);
|
|
||||||
if("complete".equals(status) && "paid".equals(paymentStatus)) {
|
|
||||||
model.addAttribute("returnUrl", "/sopmal/ordr/selectOrdrCompt");
|
|
||||||
model.addAttribute("message", "Stripe 결제 정보 등록을 완료 하였습니다.");
|
|
||||||
} else {
|
|
||||||
model.addAttribute("returnUrl", "/sopmal/ordr/selectOrdrFailr");
|
|
||||||
model.addAttribute("message", "Stripe 결제 정보 등록을 실패 하였습니다.");
|
|
||||||
}
|
|
||||||
model.addAttribute("sopmalCd", session.getMetadata().get("sopmalCd"));
|
|
||||||
model.addAttribute("ordrInnb", session.getMetadata().get("ordrInnb"));
|
|
||||||
model.addAttribute("pgCmpnyNm", session.getMetadata().get("pgCmpnyNm"));
|
|
||||||
model.addAttribute("setleTyCd", session.getMetadata().get("setleTyCd"));
|
|
||||||
model.addAttribute("goodsNm", session.getMetadata().get("goodsNm"));
|
|
||||||
model.addAttribute("setleAmt", session.getMetadata().get("setleAmt"));
|
|
||||||
model.addAttribute("ordrrNm", session.getMetadata().get("ordrrNm"));
|
|
||||||
model.addAttribute("ordrrEmail", session.getMetadata().get("ordrrEmail"));
|
|
||||||
model.addAttribute("ordrrMbtlnb", session.getMetadata().get("ordrrMbtlnb"));
|
|
||||||
model.addAttribute("mbrId", session.getMetadata().get("mbrId"));
|
|
||||||
model.addAttribute("mbrInnb", session.getMetadata().get("mbrInnb"));
|
|
||||||
model.addAttribute("sesionId", session.getMetadata().get("sesionId"));
|
|
||||||
model.addAttribute("subsvcInnb", session.getMetadata().get("subsvcInnb"));
|
|
||||||
|
|
||||||
return "sopmal/ordr/PayStripeSucsC";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -371,9 +371,7 @@ public class MngrLoggingInterceptor implements HandlerInterceptor {
|
|||||||
String cookieValue = agentId + ":" + md5(agentId + ":" + md5(System.currentTimeMillis() + ":" + random.nextInt())).substring(5, 10);
|
String cookieValue = agentId + ":" + md5(agentId + ":" + md5(System.currentTimeMillis() + ":" + random.nextInt())).substring(5, 10);
|
||||||
Cookie agentIdCookie = new Cookie("agent_id", cookieValue);
|
Cookie agentIdCookie = new Cookie("agent_id", cookieValue);
|
||||||
agentIdCookie.setMaxAge(86400 * 365 * 10); // 10년
|
agentIdCookie.setMaxAge(86400 * 365 * 10); // 10년
|
||||||
if (!request.getServerName().startsWith("loc.")) {
|
agentIdCookie.setDomain(domain);
|
||||||
agentIdCookie.setDomain(domain);
|
|
||||||
}
|
|
||||||
// agentIdCookie.setHttpOnly(true);
|
// agentIdCookie.setHttpOnly(true);
|
||||||
agentIdCookie.setPath("/mngr");
|
agentIdCookie.setPath("/mngr");
|
||||||
// agentIdCookie.setSecure(true);
|
// agentIdCookie.setSecure(true);
|
||||||
|
|||||||
@@ -51,17 +51,14 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
|
|||||||
String accessToken = extractToken(request);
|
String accessToken = extractToken(request);
|
||||||
|
|
||||||
|
|
||||||
|
String sysDvCd = RealmContextHolder.getSysDvCdRealm();
|
||||||
String expireChk = request.getParameter("expire");
|
String expireChk = request.getParameter("expire");
|
||||||
String tokenExpireCookie = CookieUtils.getCookieValue("token_expire", request);
|
String tokenExpireCookie = CookieUtils.getCookieValue("token_expire", request);
|
||||||
|
|
||||||
//사용자이면서 ACT가 없는데 tokenExpire는 있을 경우
|
//사용자이면서 ACT가 없는데 tokenExpire는 있을 경우
|
||||||
//로그인된 사용자지만 엑세스 토큰이 만료되어 다시 재발급 받아야 하는 대상
|
//로그인된 사용자지만 엑세스 토큰이 만료되어 다시 재발급 받아야 하는 대상
|
||||||
//인증 진입점은 만료 쿠키가 남아 있어도 갱신 대상으로 보내지 않는다.
|
//expire값은 루프 요청 방지
|
||||||
//쿠키 삭제가 지연되거나 이전 경로의 쿠키가 남아도 로그인 화면까지는 항상 도달해야 한다.
|
if("01".equals(sysDvCd) && !StringUtils.hasText(accessToken) && StringUtils.hasText(tokenExpireCookie) && !"p".equals(expireChk)){
|
||||||
if(!isAuthenticationEndpoint(requestUri, realm)
|
|
||||||
&& !StringUtils.hasText(accessToken)
|
|
||||||
&& StringUtils.hasText(tokenExpireCookie)
|
|
||||||
&& !"p".equals(expireChk)){
|
|
||||||
response.sendRedirect("/"+realm+"/tokens/refresh?redirect_uri=%s&expire=%s".formatted(URLEncoder.encode(UrlExtractor.getOriginalURL(request), StandardCharset.UTF_8), "p"));
|
response.sendRedirect("/"+realm+"/tokens/refresh?redirect_uri=%s&expire=%s".formatted(URLEncoder.encode(UrlExtractor.getOriginalURL(request), StandardCharset.UTF_8), "p"));
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -69,7 +66,7 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
|
|||||||
|
|
||||||
|
|
||||||
// accessToken이 있고 refresh Token 요청이 아닌경우
|
// accessToken이 있고 refresh Token 요청이 아닌경우
|
||||||
if (StringUtils.hasText(accessToken) && !isAuthenticationEndpoint(requestUri, realm)) {
|
if (StringUtils.hasText(accessToken) && !requestUri.contains("/tokens/refresh")) {
|
||||||
UserDetails userDetails = customUserDetailService.loadUserByUsername(accessToken);
|
UserDetails userDetails = customUserDetailService.loadUserByUsername(accessToken);
|
||||||
if (userDetails != null) {
|
if (userDetails != null) {
|
||||||
log.debug("user details: {}", userDetails);
|
log.debug("user details: {}", userDetails);
|
||||||
@@ -95,15 +92,6 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isAuthenticationEndpoint(String requestUri, String realm) {
|
|
||||||
String realmPath = "/" + realm;
|
|
||||||
|
|
||||||
return requestUri.equals(realmPath)
|
|
||||||
|| requestUri.startsWith(realmPath + "/login")
|
|
||||||
|| requestUri.equals(realmPath + "/logout")
|
|
||||||
|| requestUri.startsWith(realmPath + "/tokens/refresh");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private String extractToken(HttpServletRequest request) {
|
private String extractToken(HttpServletRequest request) {
|
||||||
|
|||||||
@@ -44,12 +44,9 @@ public abstract class CookieUtils {
|
|||||||
Cookie cookie = new Cookie(name, null);
|
Cookie cookie = new Cookie(name, null);
|
||||||
cookie.setMaxAge(0);
|
cookie.setMaxAge(0);
|
||||||
cookie.setPath(path);
|
cookie.setPath(path);
|
||||||
setCookieDomain(cookie, request, originHost);
|
cookie.setDomain(originHost);
|
||||||
cookie.setHttpOnly(true);
|
cookie.setHttpOnly(true);
|
||||||
response.addCookie(cookie);
|
response.addCookie(cookie);
|
||||||
|
|
||||||
// loc 환경에서는 이전에 상위 도메인으로 저장된 쿠키도 함께 삭제한다.
|
|
||||||
deleteLegacyDomainCookie(name, path, request, response, originHost);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void createCookie(String name, String value, String path, int maxAge, boolean httpOnly, HttpServletRequest request, HttpServletResponse response) {
|
public static void createCookie(String name, String value, String path, int maxAge, boolean httpOnly, HttpServletRequest request, HttpServletResponse response) {
|
||||||
@@ -61,12 +58,10 @@ public abstract class CookieUtils {
|
|||||||
|
|
||||||
String originHost = UrlExtractor.getOriginalHost(host);
|
String originHost = UrlExtractor.getOriginalHost(host);
|
||||||
|
|
||||||
deleteLegacyDomainCookie(name, path, request, response, originHost);
|
|
||||||
|
|
||||||
Cookie cookie = new Cookie(name, value);
|
Cookie cookie = new Cookie(name, value);
|
||||||
cookie.setMaxAge(maxAge);
|
cookie.setMaxAge(maxAge);
|
||||||
cookie.setPath(path);
|
cookie.setPath(path);
|
||||||
setCookieDomain(cookie, request, originHost);
|
cookie.setDomain(originHost);
|
||||||
cookie.setHttpOnly(httpOnly);
|
cookie.setHttpOnly(httpOnly);
|
||||||
response.addCookie(cookie);
|
response.addCookie(cookie);
|
||||||
}
|
}
|
||||||
@@ -82,7 +77,7 @@ public abstract class CookieUtils {
|
|||||||
|
|
||||||
Cookie cookie = new Cookie(name, value);
|
Cookie cookie = new Cookie(name, value);
|
||||||
cookie.setPath(path);
|
cookie.setPath(path);
|
||||||
setCookieDomain(cookie, request, originHost);
|
cookie.setDomain(originHost);
|
||||||
cookie.setHttpOnly(httpOnly);
|
cookie.setHttpOnly(httpOnly);
|
||||||
response.addCookie(cookie);
|
response.addCookie(cookie);
|
||||||
}
|
}
|
||||||
@@ -101,30 +96,4 @@ public abstract class CookieUtils {
|
|||||||
return Map.of("ACTPath", ACTPath, "RFTPath", RFTPath);
|
return Map.of("ACTPath", ACTPath, "RFTPath", RFTPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void setCookieDomain(Cookie cookie, HttpServletRequest request, String domain) {
|
|
||||||
if (!request.getServerName().startsWith("loc.")) {
|
|
||||||
cookie.setDomain(domain);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void deleteLegacyDomainCookie(String name, String path, HttpServletRequest request, HttpServletResponse response, String domain) {
|
|
||||||
if (request.getServerName().startsWith("loc.")) {
|
|
||||||
addDomainDeleteCookie(name, path, domain, response);
|
|
||||||
|
|
||||||
int firstDot = domain.indexOf('.');
|
|
||||||
if (firstDot > 0) {
|
|
||||||
addDomainDeleteCookie(name, path, domain.substring(firstDot + 1), response);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void addDomainDeleteCookie(String name, String path, String domain, HttpServletResponse response) {
|
|
||||||
Cookie domainCookie = new Cookie(name, null);
|
|
||||||
domainCookie.setMaxAge(0);
|
|
||||||
domainCookie.setPath(path);
|
|
||||||
domainCookie.setDomain(domain);
|
|
||||||
domainCookie.setHttpOnly(true);
|
|
||||||
response.addCookie(domainCookie);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -310,13 +310,8 @@ public class FileStorageService {
|
|||||||
if(image != null) {
|
if(image != null) {
|
||||||
thumbnail = image.getScaledInstance(destWidth, destHeight, Image.SCALE_SMOOTH);
|
thumbnail = image.getScaledInstance(destWidth, destHeight, Image.SCALE_SMOOTH);
|
||||||
}
|
}
|
||||||
BufferedImage convertImage = new BufferedImage(destWidth, destHeight, getImageType(image, file.getOriginalFilename()));
|
BufferedImage convertImage = new BufferedImage(destWidth, destHeight, BufferedImage.TYPE_INT_RGB);
|
||||||
Graphics graphics = convertImage.getGraphics();
|
convertImage.getGraphics().drawImage(thumbnail, posX, posY, null);
|
||||||
try {
|
|
||||||
graphics.drawImage(thumbnail, posX, posY, null);
|
|
||||||
} finally {
|
|
||||||
graphics.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
String ext = FilenameUtils.getExtension(file.getOriginalFilename());
|
String ext = FilenameUtils.getExtension(file.getOriginalFilename());
|
||||||
ImageIO.write(convertImage, ext, os);
|
ImageIO.write(convertImage, ext, os);
|
||||||
@@ -381,13 +376,8 @@ public class FileStorageService {
|
|||||||
if(image != null) {
|
if(image != null) {
|
||||||
thumbnail = image.getScaledInstance(destWidth, destHeight, Image.SCALE_SMOOTH);
|
thumbnail = image.getScaledInstance(destWidth, destHeight, Image.SCALE_SMOOTH);
|
||||||
}
|
}
|
||||||
BufferedImage convertImage = new BufferedImage(thumbnailWidth, thumbnailHeight, getImageType(image, file.getOriginalFilename()));
|
BufferedImage convertImage = new BufferedImage(thumbnailWidth, thumbnailHeight, BufferedImage.TYPE_INT_RGB);
|
||||||
Graphics graphics = convertImage.getGraphics();
|
convertImage.getGraphics().drawImage(thumbnail, posX, posY, null);
|
||||||
try {
|
|
||||||
graphics.drawImage(thumbnail, posX, posY, null);
|
|
||||||
} finally {
|
|
||||||
graphics.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
ImageIO.write(convertImage, ext, os);
|
ImageIO.write(convertImage, ext, os);
|
||||||
}catch (WnbtRestException wre){
|
}catch (WnbtRestException wre){
|
||||||
@@ -417,14 +407,6 @@ public class FileStorageService {
|
|||||||
return thumbnail_file;
|
return thumbnail_file;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getImageType(BufferedImage image, String originalFileName) {
|
|
||||||
String ext = FilenameUtils.getExtension(originalFileName).toLowerCase(Locale.ROOT);
|
|
||||||
boolean supportsAlpha = "png".equals(ext) || "gif".equals(ext);
|
|
||||||
return image != null && image.getColorModel().hasAlpha() && supportsAlpha
|
|
||||||
? BufferedImage.TYPE_INT_ARGB
|
|
||||||
: BufferedImage.TYPE_INT_RGB;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* combineFilePath 에 지정된 경로에 저장이 됨
|
* combineFilePath 에 지정된 경로에 저장이 됨
|
||||||
|
|||||||
@@ -359,7 +359,7 @@ mngrfo:
|
|||||||
images: .gif,.jpg,.jpeg,.png
|
images: .gif,.jpg,.jpeg,.png
|
||||||
cdnurl: https://19d28cf7178139ad.kinxzone.com
|
cdnurl: https://19d28cf7178139ad.kinxzone.com
|
||||||
subsvc:
|
subsvc:
|
||||||
dft-goods-optn-innb: 1
|
dft-goods-optn-innb: 5
|
||||||
|
|
||||||
|
|
||||||
secret:
|
secret:
|
||||||
|
|||||||
@@ -360,7 +360,7 @@ mngrfo:
|
|||||||
cdnurl: https://19d28cf7178139ad.kinxzone.com
|
cdnurl: https://19d28cf7178139ad.kinxzone.com
|
||||||
# upurl: https://www.soju1sake1.com
|
# upurl: https://www.soju1sake1.com
|
||||||
subsvc:
|
subsvc:
|
||||||
dft-goods-optn-innb: 1
|
dft-goods-optn-innb: 5
|
||||||
|
|
||||||
secret:
|
secret:
|
||||||
key: 1df5be2f7e90ae36
|
key: 1df5be2f7e90ae36
|
||||||
|
|||||||
@@ -440,9 +440,9 @@ ordr:
|
|||||||
# 서치어드바이저 소유권 코드
|
# 서치어드바이저 소유권 코드
|
||||||
meta-content:
|
meta-content:
|
||||||
google:
|
google:
|
||||||
SK: "6RUF9UIWIu1nl1WlceNKH25YZG13jcEZHURfLrbSxQU"
|
SK: "TcW6Bf9PLSo3GI3I2rwYcm0eTYfcIZCvrzVzupi6du8"
|
||||||
naver:
|
naver:
|
||||||
SK: "213a2c785853cdd006af58d286ffec23342a0e8a"
|
SK: "7fe912d3aa418532cc200050369420a8918bb372"
|
||||||
facebook:
|
facebook:
|
||||||
SK: ""
|
SK: ""
|
||||||
|
|
||||||
|
|||||||
@@ -402,9 +402,6 @@
|
|||||||
WHEN (IFNULL(GOODS.REST_INVNTRY_QY, 0) - IFNULL(GOODS.AVLINV_LMTT_QY, 0)) >= #{goodsTotalQy} THEN 0
|
WHEN (IFNULL(GOODS.REST_INVNTRY_QY, 0) - IFNULL(GOODS.AVLINV_LMTT_QY, 0)) >= #{goodsTotalQy} THEN 0
|
||||||
ELSE 1 END
|
ELSE 1 END
|
||||||
END AS INVNTRY_POLICY -- 상품별 옵션 수량합산 재고유무
|
END AS INVNTRY_POLICY -- 상품별 옵션 수량합산 재고유무
|
||||||
, MAX(GOODS.GOODS_NM) AS STOCK_GOODS_NM
|
|
||||||
, MIN(GREATEST(0, IFNULL(OPTN.INVNTRY_QY, 0) - IFNULL(OPTN.USEFUL_INVNTRY_QY, 0))) AS OPTION_AVAILABLE_QY
|
|
||||||
, MIN(GREATEST(0, IFNULL(GOODS.REST_INVNTRY_QY, 0) - IFNULL(GOODS.AVLINV_LMTT_QY, 0))) AS GOODS_AVAILABLE_QY
|
|
||||||
, CASE WHEN IFNULL(OPTN.SLEPRIC, 0) = #{slepric} THEN 0 ELSE 1 END AS SELPRIC -- 판매가 변경여부
|
, CASE WHEN IFNULL(OPTN.SLEPRIC, 0) = #{slepric} THEN 0 ELSE 1 END AS SELPRIC -- 판매가 변경여부
|
||||||
, CASE
|
, CASE
|
||||||
WHEN OPTN.COMPNB_DSCNT_AT = #{compnbDscntAt} AND OPTN.SCTN_DSCNT_AT = #{sctnDscntAt} THEN 0
|
WHEN OPTN.COMPNB_DSCNT_AT = #{compnbDscntAt} AND OPTN.SCTN_DSCNT_AT = #{sctnDscntAt} THEN 0
|
||||||
@@ -433,7 +430,6 @@
|
|||||||
, IFNULL(EVT_DUPL_COUPON.DPLCT_LMTT_COUPON, 0) AS DPLCT_LMTT_COUPON -- 이벤트 중복제한 쿠폰 존재여부
|
, IFNULL(EVT_DUPL_COUPON.DPLCT_LMTT_COUPON, 0) AS DPLCT_LMTT_COUPON -- 이벤트 중복제한 쿠폰 존재여부
|
||||||
, CASE WHEN OPTN.OPTN_EXPSR_AT = 'Y' THEN 0 ELSE 1 END AS OPTN_EXPSR_AT
|
, CASE WHEN OPTN.OPTN_EXPSR_AT = 'Y' THEN 0 ELSE 1 END AS OPTN_EXPSR_AT
|
||||||
FROM (SELECT GG.GOODS_INNB -- 상품 고유번호
|
FROM (SELECT GG.GOODS_INNB -- 상품 고유번호
|
||||||
, GG.GOODS_NM
|
|
||||||
, GG.SOPMAL_CD -- 쇼핑몰코드
|
, GG.SOPMAL_CD -- 쇼핑몰코드
|
||||||
, GG.DLVY_GROUP_INNB -- 배송그룹고유번호
|
, GG.DLVY_GROUP_INNB -- 배송그룹고유번호
|
||||||
, GG.GOODS_KND_CD -- 상품구분 01 상품
|
, GG.GOODS_KND_CD -- 상품구분 01 상품
|
||||||
@@ -805,9 +801,6 @@
|
|||||||
ELSE 1
|
ELSE 1
|
||||||
END
|
END
|
||||||
END AS INVNTRY_POLICY, -- 상품별 옵션 수량합산 재고유무
|
END AS INVNTRY_POLICY, -- 상품별 옵션 수량합산 재고유무
|
||||||
MAX(GOODS.GOODS_NM) AS STOCK_GOODS_NM,
|
|
||||||
MIN(GREATEST(0, GOODS.INVNTRY_QY - IFNULL(GOODS.USEFUL_INVNTRY_QY, 0))) AS OPTION_AVAILABLE_QY,
|
|
||||||
MIN(GREATEST(0, IFNULL(GOODS.REST_INVNTRY_QY, 0) - IFNULL(GOODS.AVLINV_LMTT_QY, 0))) AS GOODS_AVAILABLE_QY,
|
|
||||||
CASE
|
CASE
|
||||||
WHEN IFNULL(GOODS.SUBSVC_CT, 0) = #{slepric} THEN 0
|
WHEN IFNULL(GOODS.SUBSVC_CT, 0) = #{slepric} THEN 0
|
||||||
ELSE 1
|
ELSE 1
|
||||||
@@ -824,7 +817,6 @@
|
|||||||
FROM (
|
FROM (
|
||||||
SELECT
|
SELECT
|
||||||
GS.SUBSVC_INNB, -- 구독서비스 고유번호
|
GS.SUBSVC_INNB, -- 구독서비스 고유번호
|
||||||
GG.GOODS_NM,
|
|
||||||
GG.GOODS_INNB, -- 상품 고유번호
|
GG.GOODS_INNB, -- 상품 고유번호
|
||||||
GS.SOPMAL_CD, -- 쇼핑몰코드
|
GS.SOPMAL_CD, -- 쇼핑몰코드
|
||||||
GS.SUBSVC_CT, -- 구독료
|
GS.SUBSVC_CT, -- 구독료
|
||||||
|
|||||||
@@ -338,7 +338,6 @@
|
|||||||
,MEMOR_USE_AT
|
,MEMOR_USE_AT
|
||||||
,NPAY_USE_AT
|
,NPAY_USE_AT
|
||||||
,KPAY_USE_AT
|
,KPAY_USE_AT
|
||||||
,STRIPE_USE_AT
|
|
||||||
FROM GC_PAY_INFO
|
FROM GC_PAY_INFO
|
||||||
WHERE SETLE_SETUP_INNB = #{setleSetupInnb}
|
WHERE SETLE_SETUP_INNB = #{setleSetupInnb}
|
||||||
</select>
|
</select>
|
||||||
@@ -1282,7 +1281,6 @@
|
|||||||
MEMOR_USE_AT = #{memorUseAt},
|
MEMOR_USE_AT = #{memorUseAt},
|
||||||
NPAY_USE_AT = #{npayUseAt},
|
NPAY_USE_AT = #{npayUseAt},
|
||||||
KPAY_USE_AT = #{kpayUseAt},
|
KPAY_USE_AT = #{kpayUseAt},
|
||||||
STRIPE_USE_AT = #{stripeUseAt},
|
|
||||||
UPDUSR = #{updusr},
|
UPDUSR = #{updusr},
|
||||||
UPDT_DT = NOW()
|
UPDT_DT = NOW()
|
||||||
WHERE
|
WHERE
|
||||||
@@ -1571,124 +1569,5 @@
|
|||||||
AND GD.USE_AT = 'Y'
|
AND GD.USE_AT = 'Y'
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 사이트맵 XML -->
|
|
||||||
<select id="selectSitemapXml"
|
|
||||||
parameterType="String"
|
|
||||||
resultType="dataMap">
|
|
||||||
WITH RECURSIVE CATEGORY_TREE AS (
|
|
||||||
SELECT
|
|
||||||
GC.CTGRY_ID
|
|
||||||
, GC.UPPER_CTGRY_ID
|
|
||||||
, GC.SOPMAL_CD
|
|
||||||
, GC.CTGRY_NM
|
|
||||||
, GC.CTGRY_DEPTH
|
|
||||||
, GC.SORT_ORDR
|
|
||||||
, GC.CTGRY_DV_CD
|
|
||||||
, GC.EXPSR_CD
|
|
||||||
, GC.URL_DV_CD
|
|
||||||
, CASE
|
|
||||||
WHEN GC.URL_DV_CD = '01' THEN ''
|
|
||||||
WHEN GC.URL_DV_CD = '02' THEN GC.URL
|
|
||||||
ELSE NULL
|
|
||||||
END URL
|
|
||||||
, GC.USE_AT
|
|
||||||
, GC.EXPSR_BGN_DT
|
|
||||||
, GC.EXPSR_END_DT
|
|
||||||
FROM GC_CATEGORY GC
|
|
||||||
WHERE GC.SOPMAL_CD = #{sopmalCd}
|
|
||||||
AND GC.UPPER_CTGRY_ID IS NULL
|
|
||||||
AND GC.USE_AT = 'Y'
|
|
||||||
AND (
|
|
||||||
GC.EXPSR_CD = '01'
|
|
||||||
OR (
|
|
||||||
GC.EXPSR_CD = '03'
|
|
||||||
AND SYSDATE() BETWEEN GC.EXPSR_BGN_DT AND GC.EXPSR_END_DT
|
|
||||||
)
|
|
||||||
)
|
|
||||||
UNION ALL
|
|
||||||
SELECT
|
|
||||||
CHILD.CTGRY_ID
|
|
||||||
, CHILD.UPPER_CTGRY_ID
|
|
||||||
, CHILD.SOPMAL_CD
|
|
||||||
, CHILD.CTGRY_NM
|
|
||||||
, CHILD.CTGRY_DEPTH
|
|
||||||
, CHILD.SORT_ORDR
|
|
||||||
, CHILD.CTGRY_DV_CD
|
|
||||||
, CHILD.EXPSR_CD
|
|
||||||
, CHILD.URL_DV_CD
|
|
||||||
, CASE
|
|
||||||
WHEN CHILD.URL_DV_CD = '01' THEN
|
|
||||||
CASE
|
|
||||||
WHEN CHILD.CTGRY_DV_CD = '01' THEN CONCAT('/sopmal/goods/selectGoodsListForm?ctgryId=', CHILD.CTGRY_ID)
|
|
||||||
ELSE NULL
|
|
||||||
END
|
|
||||||
WHEN CHILD.URL_DV_CD = '02' THEN CHILD.URL
|
|
||||||
ELSE NULL
|
|
||||||
END URL
|
|
||||||
, CHILD.USE_AT
|
|
||||||
, CHILD.EXPSR_BGN_DT
|
|
||||||
, CHILD.EXPSR_END_DT
|
|
||||||
FROM GC_CATEGORY CHILD
|
|
||||||
INNER JOIN CATEGORY_TREE PARENT
|
|
||||||
ON CHILD.SOPMAL_CD = PARENT.SOPMAL_CD
|
|
||||||
AND CHILD.UPPER_CTGRY_ID = PARENT.CTGRY_ID
|
|
||||||
WHERE CHILD.USE_AT = 'Y'
|
|
||||||
AND (
|
|
||||||
CHILD.EXPSR_CD = '01'
|
|
||||||
OR (
|
|
||||||
CHILD.EXPSR_CD = '03'
|
|
||||||
AND SYSDATE() BETWEEN CHILD.EXPSR_BGN_DT AND CHILD.EXPSR_END_DT
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
SELECT CONCAT(GS.PC_DOMN_ADRES, GC.URL) AS TARGET_URL
|
|
||||||
, DATE_FORMAT(SYSDATE(), '%Y-%m-%dT%H:%i:%s+09:00') AS LAST_MODIFIED
|
|
||||||
, ROUND(POWER(0.8, GC.CTGRY_DEPTH - 1), 4) AS PRIORITY
|
|
||||||
FROM CATEGORY_TREE GC
|
|
||||||
INNER JOIN GC_SHOP GS
|
|
||||||
ON GC.SOPMAL_CD = GS.SOPMAL_CD
|
|
||||||
WHERE GC.CTGRY_DV_CD != '02'
|
|
||||||
AND GC.CTGRY_DEPTH != 2
|
|
||||||
UNION
|
|
||||||
SELECT CONCAT(GS.PC_DOMN_ADRES, '/sopmal/goods/selectGoodsDtl?goodsInnb=', GG.GOODS_INNB) AS TARGET_URL
|
|
||||||
, DATE_FORMAT(GG.UPDT_DT, '%Y-%m-%dT%H:%i:%s+09:00') AS LAST_MODIFIED
|
|
||||||
, ROUND(POWER(0.8, 1), 4) AS PRIORITY
|
|
||||||
FROM GC_GOODS GG
|
|
||||||
INNER JOIN GC_SHOP GS
|
|
||||||
ON GG.SOPMAL_CD = GS.SOPMAL_CD
|
|
||||||
WHERE GG.USE_AT = 'Y'
|
|
||||||
AND GG.SOPMAL_CD = #{sopmalCd}
|
|
||||||
AND GG.GOODS_KND_CD = '01'
|
|
||||||
AND GG.EXPSR_DV_CD = '01'
|
|
||||||
AND GG.GOODS_STTUS_CD IN ('01', '02')
|
|
||||||
UNION
|
|
||||||
SELECT CONCAT(GS.PC_DOMN_ADRES, '/sopmal/csc/selectBbscttAuth?authDv=CM&bbsTyCd=',
|
|
||||||
CASE
|
|
||||||
WHEN GB.BBS_ID = 'sake_column' THEN '01'
|
|
||||||
WHEN GB.BBS_ID = 'magazine' THEN '09'
|
|
||||||
ELSE NULL
|
|
||||||
END,
|
|
||||||
'&bbscttInnb=', GB.BBSCTT_INNB,
|
|
||||||
'&reqUrl=subPage&bbsId=', GB.BBS_ID,
|
|
||||||
'&cscAt='
|
|
||||||
) AS TARGET_URL
|
|
||||||
, DATE_FORMAT(GB.UPDT_DT, '%Y-%m-%dT%H:%i:%s+09:00') AS LAST_MODIFIED
|
|
||||||
, ROUND(POWER(0.8, 1), 4) AS PRIORITY
|
|
||||||
FROM GC_BOARDDATA GB
|
|
||||||
INNER JOIN GC_SHOP GS
|
|
||||||
ON GB.SOPMAL_CD = GS.SOPMAL_CD
|
|
||||||
WHERE GB.USE_AT = 'Y'
|
|
||||||
AND GB.EXPSR_AT = 'Y'
|
|
||||||
AND (
|
|
||||||
GB.NTCE_PD_SETUP_AT = 'N'
|
|
||||||
OR (
|
|
||||||
GB.NTCE_PD_SETUP_AT = 'Y'
|
|
||||||
AND DATE_FORMAT(SYSDATE(), '%Y-%m-%d') BETWEEN DATE_FORMAT(GB.NTCE_BGN_DE, '%Y-%m-%d') AND DATE_FORMAT(GB.NTCE_END_DE, '%Y-%m-%d')
|
|
||||||
)
|
|
||||||
)
|
|
||||||
AND GB.BBS_ID IN ('sake_column', 'magazine')
|
|
||||||
AND depth = 0
|
|
||||||
ORDER BY PRIORITY DESC
|
|
||||||
</select>
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
||||||
|
|||||||
@@ -1767,7 +1767,6 @@
|
|||||||
,CAST(AES_DECRYPT(UNHEX(FB.ANSW_MBTLNB) , #{secretKey}) AS CHAR(50)) AS ANSW_MBTLNB
|
,CAST(AES_DECRYPT(UNHEX(FB.ANSW_MBTLNB) , #{secretKey}) AS CHAR(50)) AS ANSW_MBTLNB
|
||||||
,FB.ANSW_SMS_RECPTN
|
,FB.ANSW_SMS_RECPTN
|
||||||
,FB.SJ
|
,FB.SJ
|
||||||
,FB.RELATE_GOODS_WORDS
|
|
||||||
,FB.SORT_ORDR
|
,FB.SORT_ORDR
|
||||||
,FB.USE_AT
|
,FB.USE_AT
|
||||||
,IFNULL(FBM.MNGR_NM, '관리자') AS MNGR_NM
|
,IFNULL(FBM.MNGR_NM, '관리자') AS MNGR_NM
|
||||||
@@ -1928,7 +1927,6 @@
|
|||||||
,CAST(AES_DECRYPT(UNHEX(FB.ANSW_MBTLNB) , #{secretKey}) AS CHAR(50)) AS ANSW_MBTLNB
|
,CAST(AES_DECRYPT(UNHEX(FB.ANSW_MBTLNB) , #{secretKey}) AS CHAR(50)) AS ANSW_MBTLNB
|
||||||
,FB.ANSW_SMS_RECPTN
|
,FB.ANSW_SMS_RECPTN
|
||||||
,FB.SJ
|
,FB.SJ
|
||||||
,FB.RELATE_GOODS_WORDS
|
|
||||||
,FB.SORT_ORDR
|
,FB.SORT_ORDR
|
||||||
,FB.USE_AT
|
,FB.USE_AT
|
||||||
,FB.CN_SCRIPT
|
,FB.CN_SCRIPT
|
||||||
@@ -2041,9 +2039,6 @@
|
|||||||
PASSWORD,
|
PASSWORD,
|
||||||
SJ,
|
SJ,
|
||||||
CN,
|
CN,
|
||||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(relateGoodsWords)">
|
|
||||||
RELATE_GOODS_WORDS,
|
|
||||||
</if>
|
|
||||||
INQIRE_CNT,
|
INQIRE_CNT,
|
||||||
CM_USE_AT,
|
CM_USE_AT,
|
||||||
RECOMEND_CNT,
|
RECOMEND_CNT,
|
||||||
@@ -2092,9 +2087,6 @@
|
|||||||
MD5(#{password}),
|
MD5(#{password}),
|
||||||
#{sj},
|
#{sj},
|
||||||
#{cn},
|
#{cn},
|
||||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(relateGoodsWords)">
|
|
||||||
#{relateGoodsWords},
|
|
||||||
</if>
|
|
||||||
0,
|
0,
|
||||||
IFNULL(#{cmUseAt},'N'),
|
IFNULL(#{cmUseAt},'N'),
|
||||||
0,
|
0,
|
||||||
@@ -2141,9 +2133,6 @@
|
|||||||
SET
|
SET
|
||||||
SJ = #{sj},
|
SJ = #{sj},
|
||||||
CN = #{cn},
|
CN = #{cn},
|
||||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(relateGoodsWords)">
|
|
||||||
RELATE_GOODS_WORDS = #{relateGoodsWords},
|
|
||||||
</if>
|
|
||||||
CM_USE_AT =IFNULL(#{cmUseAt},'N'),
|
CM_USE_AT =IFNULL(#{cmUseAt},'N'),
|
||||||
SORT_ORDR = #{sortOrdr},
|
SORT_ORDR = #{sortOrdr},
|
||||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(represntFileInfo)">
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(represntFileInfo)">
|
||||||
@@ -2667,43 +2656,19 @@
|
|||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
AND FGI.GOODS_INNB = FBG.GOODS_INNB
|
AND FGI.GOODS_INNB = FBG.GOODS_INNB
|
||||||
AND FGI.SOPMAL_CD = FBG.SOPMAL_CD
|
AND FGI.SOPMAL_CD = FBG.SOPMAL_CD
|
||||||
AND FGI.IMG_KND = '02'
|
AND FGI.IMG_KND = '03'
|
||||||
AND FGI.CUT_NB = 1
|
AND FGI.CUT_NB = 1
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
) AS IMG
|
)IMG
|
||||||
,FG.GOODS_NM
|
,FG.GOODS_NM
|
||||||
,FG.GOODS_ICON_CD AS ICON_CD_NM_LIST
|
,FGO.CNSMRPRIC
|
||||||
,FG.SRT_DC AS REPRSNT_DC
|
,FGO.SLEPRIC
|
||||||
,FG.GOODS_STTUS_CD
|
,FGO.STDR_DV_AT
|
||||||
,FEGI.GOODS_NM_EXPSR_AT
|
,FN_GET_COMMCODE_NAME('GOODS_STTUS', FG.GOODS_STTUS_CD) AS GOODS_STTUS_NM
|
||||||
,FEGI.GOODS_NM_EXPSR_ORDR
|
,FN_GET_COMMCODE_NAME('EXPSR', FG.EXPSR_DV_CD) AS EXPSR_NM
|
||||||
,FEGI.REPRSNT_DC_EXPSR_AT
|
,FBG.ORDR_GOODS_OPTN_INNB
|
||||||
,FEGI.REPRSNT_DC_EXPSR_ORDR
|
,FBG.SOPMAL_CD
|
||||||
,FEGI.PRIC_EXPSR_AT
|
,FBG.RE_ORDER_AT
|
||||||
,FEGI.PRIC_EXPSR_ORDR
|
|
||||||
,FEGI.RVW_EVL_SCRE_EXPSR_AT
|
|
||||||
,FEGI.RVW_EVL_SCRE_EXPSR_ORDR
|
|
||||||
,FEGI.ICON_EXPSR_AT
|
|
||||||
,FEGI.ICON_EXPSR_ORDR
|
|
||||||
,IFNULL(ROUND(FGO.CNSMRPRIC, 0), 0) AS CNSMRPRIC
|
|
||||||
,IFNULL(ROUND(FGO.SLEPRIC, 0), 0) AS SLEPRIC
|
|
||||||
,IFNULL(ROUND(((FGO.CNSMRPRIC - FGO.SLEPRIC) / NULLIF(FGO.CNSMRPRIC, 0)) * 100, 0), 0) AS SLE_PERCENT
|
|
||||||
,IFNULL((SELECT ROUND(AVG(FBA.EVL_SCORE), 1)
|
|
||||||
FROM GC_BOARDDATA_GOODS RBG
|
|
||||||
INNER JOIN GC_BOARDDATA RB ON RB.BBSCTT_INNB = RBG.BBSCTT_INNB AND RB.SOPMAL_CD = RBG.SOPMAL_CD
|
|
||||||
INNER JOIN GC_BOARDMANAGER RBM ON RBM.BBS_ID = RB.BBS_ID AND RBM.SOPMAL_CD = RB.SOPMAL_CD
|
|
||||||
LEFT JOIN GC_BOARDFORM RBF ON RBF.BBS_ID = RBM.BBS_ID AND RBF.SOPMAL_CD = RBM.SOPMAL_CD AND RBF.USE_AT = 'Y' AND RBF.ADIT_ITM_DV_CD = '04'
|
|
||||||
LEFT JOIN GC_BOARD_ADDITM FBA ON FBA.BBSCTT_INNB = RB.BBSCTT_INNB AND FBA.SOPMAL_CD = RB.SOPMAL_CD AND FBA.QESITM_INNB = RBF.QESITM_INNB
|
|
||||||
WHERE RBG.SOPMAL_CD = FG.SOPMAL_CD
|
|
||||||
AND RBG.GOODS_INNB IN (SELECT CAST(RVW_GROUP_NB AS DECIMAL(10)) FROM GC_GOODS_RVW_V WHERE SOPMAL_CD = FG.SOPMAL_CD AND GOODS_INNB = FG.GOODS_INNB)
|
|
||||||
AND RB.USE_AT = 'Y' AND RB.DEPTH = 0 AND RBM.BBS_TY_CD IN ('06', '07')), 0) AS AVG_EVL_SCORE
|
|
||||||
,IFNULL((SELECT COUNT(RB.BBSCTT_INNB)
|
|
||||||
FROM GC_BOARDDATA_GOODS RBG
|
|
||||||
INNER JOIN GC_BOARDDATA RB ON RB.BBSCTT_INNB = RBG.BBSCTT_INNB AND RB.SOPMAL_CD = RBG.SOPMAL_CD
|
|
||||||
INNER JOIN GC_BOARDMANAGER RBM ON RBM.BBS_ID = RB.BBS_ID AND RBM.SOPMAL_CD = RB.SOPMAL_CD
|
|
||||||
WHERE RBG.SOPMAL_CD = FG.SOPMAL_CD
|
|
||||||
AND RBG.GOODS_INNB IN (SELECT CAST(RVW_GROUP_NB AS DECIMAL(10)) FROM GC_GOODS_RVW_V WHERE SOPMAL_CD = FG.SOPMAL_CD AND GOODS_INNB = FG.GOODS_INNB)
|
|
||||||
AND RB.USE_AT = 'Y' AND RB.DEPTH = 0 AND RBM.BBS_TY_CD IN ('06', '07')), 0) AS CNT_EVL_SCOR
|
|
||||||
FROM GC_BOARDDATA_GOODS FBG
|
FROM GC_BOARDDATA_GOODS FBG
|
||||||
INNER JOIN GC_GOODS FG ON
|
INNER JOIN GC_GOODS FG ON
|
||||||
FG.GOODS_INNB = FBG.GOODS_INNB
|
FG.GOODS_INNB = FBG.GOODS_INNB
|
||||||
@@ -2711,9 +2676,6 @@
|
|||||||
INNER JOIN GC_GOODS_OPTION FGO ON
|
INNER JOIN GC_GOODS_OPTION FGO ON
|
||||||
FG.GOODS_INNB = FGO.GOODS_INNB
|
FG.GOODS_INNB = FGO.GOODS_INNB
|
||||||
AND FG.SOPMAL_CD = FGO.SOPMAL_CD
|
AND FG.SOPMAL_CD = FGO.SOPMAL_CD
|
||||||
LEFT JOIN GC_GOODS_EXPSR_INFO FEGI ON
|
|
||||||
FG.SOPMAL_CD = FEGI.SOPMAL_CD
|
|
||||||
AND FEGI.USE_AT = 'Y'
|
|
||||||
WHERE 1 = 1
|
WHERE 1 = 1
|
||||||
AND FG.SOPMAL_CD =#{sopmalCd}
|
AND FG.SOPMAL_CD =#{sopmalCd}
|
||||||
AND FBG.BBSCTT_INNB =
|
AND FBG.BBSCTT_INNB =
|
||||||
@@ -2726,16 +2688,6 @@
|
|||||||
</otherwise>
|
</otherwise>
|
||||||
</choose>
|
</choose>
|
||||||
AND FGO.STDR_DV_AT = 'Y'
|
AND FGO.STDR_DV_AT = 'Y'
|
||||||
<if test="serverDv == 'sopmal'">
|
|
||||||
AND FGO.OPTN_EXPSR_AT = 'Y'
|
|
||||||
AND FGO.USE_AT = 'Y'
|
|
||||||
AND FG.USE_AT = 'Y'
|
|
||||||
AND FG.GOODS_KND_CD = '01'
|
|
||||||
AND FG.GOODS_STTUS_CD IN ('01', '02')
|
|
||||||
AND (FG.EXPSR_DV_CD = '01' OR (FG.EXPSR_DV_CD = '03' AND SYSDATE() BETWEEN FG.EXPSR_BGN_DT AND FG.EXPSR_END_DT))
|
|
||||||
ORDER BY CASE FG.GOODS_STTUS_CD WHEN '02' THEN 1 ELSE 0 END ASC, FBG.REGIST_DT ASC, FBG.GOODS_INNB ASC
|
|
||||||
LIMIT 12
|
|
||||||
</if>
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 게시글 연관상품 삭제 (게시글 수정시)-->
|
<!-- 게시글 연관상품 삭제 (게시글 수정시)-->
|
||||||
|
|||||||
@@ -237,86 +237,72 @@
|
|||||||
<choose>
|
<choose>
|
||||||
<when test="sortDv == 'goodsNmAsc'">
|
<when test="sortDv == 'goodsNmAsc'">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
ORDER BY CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
ORDER BY FG.GOODS_NM ASC
|
||||||
, FG.GOODS_NM ASC
|
|
||||||
]]>
|
]]>
|
||||||
</when>
|
</when>
|
||||||
<when test="sortDv == 'goodsNmDesc'">
|
<when test="sortDv == 'goodsNmDesc'">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
ORDER BY CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
ORDER BY FG.GOODS_NM DESC
|
||||||
, FG.GOODS_NM DESC
|
|
||||||
]]>
|
]]>
|
||||||
</when>
|
</when>
|
||||||
<when test="sortDv == 'slepricAsc'">
|
<when test="sortDv == 'slepricAsc'">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
ORDER BY CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
ORDER BY SLEPRIC ASC
|
||||||
, SLEPRIC ASC
|
|
||||||
]]>
|
]]>
|
||||||
</when>
|
</when>
|
||||||
<when test="sortDv == 'slepricDesc'">
|
<when test="sortDv == 'slepricDesc'">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
ORDER BY CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
ORDER BY SLEPRIC DESC
|
||||||
, SLEPRIC DESC
|
|
||||||
]]>
|
]]>
|
||||||
</when>
|
</when>
|
||||||
<when test="sortDv == 'cnsmrpricAsc'">
|
<when test="sortDv == 'cnsmrpricAsc'">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
ORDER BY CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
ORDER BY CNSMRPRIC ASC
|
||||||
, CNSMRPRIC ASC
|
|
||||||
]]>
|
]]>
|
||||||
</when>
|
</when>
|
||||||
<when test="sortDv == 'cnsmrpricDesc'">
|
<when test="sortDv == 'cnsmrpricDesc'">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
ORDER BY CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
ORDER BY CNSMRPRIC DESC
|
||||||
, CNSMRPRIC DESC
|
|
||||||
]]>
|
]]>
|
||||||
</when>
|
</when>
|
||||||
<when test="sortDv == 'invntryQyAsc'">
|
<when test="sortDv == 'invntryQyAsc'">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
ORDER BY CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
ORDER BY INVNTRY_QY ASC
|
||||||
, INVNTRY_QY ASC
|
|
||||||
]]>
|
]]>
|
||||||
</when>
|
</when>
|
||||||
<when test="sortDv == 'invntryQyDesc'">
|
<when test="sortDv == 'invntryQyDesc'">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
ORDER BY CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
ORDER BY INVNTRY_QY DESC
|
||||||
, INVNTRY_QY DESC
|
|
||||||
]]>
|
]]>
|
||||||
</when>
|
</when>
|
||||||
<when test="sortDv == 'registDtAsc'">
|
<when test="sortDv == 'registDtAsc'">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
ORDER BY CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
ORDER BY REGIST_DT ASC
|
||||||
, REGIST_DT ASC
|
|
||||||
]]>
|
]]>
|
||||||
</when>
|
</when>
|
||||||
<when test="sortDv == 'registDtDesc'">
|
<when test="sortDv == 'registDtDesc'">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
ORDER BY CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
ORDER BY REGIST_DT DESC
|
||||||
, REGIST_DT DESC
|
|
||||||
]]>
|
]]>
|
||||||
</when>
|
</when>
|
||||||
<when test="sortDv == 'avgEvlScore'">
|
<when test="sortDv == 'avgEvlScore'">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
ORDER BY CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
ORDER BY GCL.GOODS_ORDR, AVG_EVL_SCORE DESC
|
||||||
, GCL.GOODS_ORDR, AVG_EVL_SCORE DESC
|
|
||||||
]]>
|
]]>
|
||||||
</when>
|
</when>
|
||||||
<when test="sortDv == 'cntEvlScor'">
|
<when test="sortDv == 'cntEvlScor'">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
ORDER BY CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
ORDER BY CNT_EVL_SCOR DESC
|
||||||
, CNT_EVL_SCOR DESC
|
|
||||||
]]>
|
]]>
|
||||||
</when>
|
</when>
|
||||||
<when test="sortDv == 'goodsInnbDesc'">
|
<when test="sortDv == 'goodsInnbDesc'">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
ORDER BY CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
ORDER BY GOODS.GOODS_INNB DESC
|
||||||
, GOODS.GOODS_INNB DESC
|
|
||||||
]]>
|
]]>
|
||||||
</when>
|
</when>
|
||||||
<otherwise>
|
<otherwise>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
ORDER BY CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
ORDER BY GCL.GOODS_ORDR, AVG_EVL_SCORE DESC
|
||||||
, GCL.GOODS_ORDR, AVG_EVL_SCORE DESC
|
|
||||||
]]>
|
]]>
|
||||||
</otherwise>
|
</otherwise>
|
||||||
</choose>
|
</choose>
|
||||||
|
|||||||
@@ -2654,7 +2654,6 @@ FROM (
|
|||||||
, FPI.TPAY_USE_AT
|
, FPI.TPAY_USE_AT
|
||||||
, FPI.NPAY_USE_AT
|
, FPI.NPAY_USE_AT
|
||||||
, FPI.KPAY_USE_AT
|
, FPI.KPAY_USE_AT
|
||||||
, FPI.STRIPE_USE_AT
|
|
||||||
, FPI.MEMOR_USE_AT
|
, FPI.MEMOR_USE_AT
|
||||||
, FPL.KCP_MID
|
, FPL.KCP_MID
|
||||||
, FPL.KCP_CLNT_KEY
|
, FPL.KCP_CLNT_KEY
|
||||||
@@ -2684,9 +2683,6 @@ FROM (
|
|||||||
, FPL.OLD_TOSS_CLNT_KEY
|
, FPL.OLD_TOSS_CLNT_KEY
|
||||||
, FPL.OLD_TOSS_SECRET_KEY
|
, FPL.OLD_TOSS_SECRET_KEY
|
||||||
, FPL.OLD_TOSS_PUBLIC_KEY
|
, FPL.OLD_TOSS_PUBLIC_KEY
|
||||||
, FPL.STRIPE_CLNT_KEY
|
|
||||||
, FPL.STRIPE_SECRET_KEY
|
|
||||||
, FPL.STRIPE_WEBHOOK_KEY
|
|
||||||
, FPL.DUE_DT
|
, FPL.DUE_DT
|
||||||
FROM GC_PAY_LINK FPL
|
FROM GC_PAY_LINK FPL
|
||||||
INNER JOIN GC_PAY_INFO FPI ON FPI.SETLE_SETUP_INNB = FPL.SETLE_SETUP_INNB
|
INNER JOIN GC_PAY_INFO FPI ON FPI.SETLE_SETUP_INNB = FPL.SETLE_SETUP_INNB
|
||||||
|
|||||||
@@ -11,44 +11,24 @@
|
|||||||
AND FM.USE_AT = 'Y'
|
AND FM.USE_AT = 'Y'
|
||||||
]]>
|
]]>
|
||||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchMbrNm)">
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchMbrNm)">
|
||||||
<choose>
|
<![CDATA[
|
||||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '0')">
|
AND FM.MBR_NM = #{srchMbrNm}
|
||||||
AND FM.MBR_NM LIKE CONCAT('%', #{srchMbrNm}, '%')
|
]]>
|
||||||
</when>
|
|
||||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '1')">
|
|
||||||
AND FM.MBR_NM = #{srchMbrNm}
|
|
||||||
</when>
|
|
||||||
</choose>
|
|
||||||
</if>
|
</if>
|
||||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKywordID)">
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKywordID)">
|
||||||
<choose>
|
<![CDATA[
|
||||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '0')">
|
AND FM.MBR_ID = #{srchKywordID}
|
||||||
AND FM.MBR_ID LIKE CONCAT('%', #{srchKywordID}, '%')
|
]]>
|
||||||
</when>
|
|
||||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '1')">
|
|
||||||
AND FM.MBR_ID = #{srchKywordID}
|
|
||||||
</when>
|
|
||||||
</choose>
|
|
||||||
</if>
|
</if>
|
||||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKywordEmail)">
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKywordEmail)">
|
||||||
<choose>
|
<![CDATA[
|
||||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '0')">
|
AND FM.EMAIL = (select HEX(AES_ENCRYPT(#{srchKywordEmail} , #{secretKey})))
|
||||||
AND AES_DECRYPT(UNHEX(FM.EMAIL), #{secretKey}) LIKE CONCAT('%', #{srchKywordEmail}, '%')
|
]]>
|
||||||
</when>
|
|
||||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '1')">
|
|
||||||
AND FM.EMAIL = (select HEX(AES_ENCRYPT(#{srchKywordEmail} , #{secretKey})))
|
|
||||||
</when>
|
|
||||||
</choose>
|
|
||||||
</if>
|
</if>
|
||||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKywordMb)">
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKywordMb)">
|
||||||
<choose>
|
<![CDATA[
|
||||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '0')">
|
AND FM.MBTLNB = (select HEX(AES_ENCRYPT(REPLACE(#{srchKywordMb},'-',''), #{secretKey})))
|
||||||
AND AES_DECRYPT(UNHEX(FM.MBTLNB), #{secretKey}) LIKE CONCAT('%', #{srchKywordMb}, '%')
|
]]>
|
||||||
</when>
|
|
||||||
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(srchDv, '1')">
|
|
||||||
AND FM.MBTLNB = (select HEX(AES_ENCRYPT(REPLACE(#{srchKywordMb},'-',''), #{secretKey})))
|
|
||||||
</when>
|
|
||||||
</choose>
|
|
||||||
</if>
|
</if>
|
||||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(actionDv)">
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(actionDv)">
|
||||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(eventYn)">
|
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(eventYn)">
|
||||||
|
|||||||
@@ -1440,6 +1440,101 @@
|
|||||||
GROUP BY A.ORDR_INNB
|
GROUP BY A.ORDR_INNB
|
||||||
) EXCEL
|
) EXCEL
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- 전체 주문 조회 > 엑셀다운로드 발주서 -->
|
||||||
|
<select id="selectExcelListPurchOrder" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrSrchVO" resultType="dataMap">
|
||||||
|
SELECT
|
||||||
|
GO.ORDR_RCEPT_DT,
|
||||||
|
'UNIHAN' AS ENTRPS_CD,
|
||||||
|
'UNIHAN CO.,LTD.' AS ENTRPS_NM,
|
||||||
|
'03-5990-2880' AS ENTRPS_TEL,
|
||||||
|
'RM.302,YOTSUYA-AKEBONOBASHI BLDG.,2-14, SUMIYOSHI-CHO, SHINJUKU-KU, TOKYO, 162-0065, JAPAN' AS ENTRPS_ADRES,
|
||||||
|
NULL AS SPCL_CSTMCLER_ENTRPS,
|
||||||
|
NULL AS SPCL_CSTMCLER_CD,
|
||||||
|
GO.ORDR_INNB,
|
||||||
|
1 AS PURPS_DV,
|
||||||
|
GOS.RECPNT_NM,
|
||||||
|
CAST(AES_DECRYPT(UNHEX(GOS.RECPNT_MBTLNB) , #{secretKey}) AS CHAR(50)) AS RECPNT_MBTLNB,
|
||||||
|
NULL AS RECPNT_HP,
|
||||||
|
GOS.CSTMCLER_CD,
|
||||||
|
GOS.DLVYLC_ZIP,
|
||||||
|
CASE
|
||||||
|
WHEN GOS.DLVYLC_ADRES_DV_CD = '01'
|
||||||
|
THEN GOS.DLVYLC_RNM_ADRES
|
||||||
|
ELSE GOS.DLVYLC_LNB_ADRES
|
||||||
|
END DLVYLC_RNM_LNB_ADRES,
|
||||||
|
GOS.DLVYLC_ADRES_DTL,
|
||||||
|
GOS.DLVY_MSSAGE_CN,
|
||||||
|
'www.sake1jan.com' AS CSTMR_PURCHS_SITE,
|
||||||
|
GOIO.REAL_WT,
|
||||||
|
GOIO.PACKAGE_CNT,
|
||||||
|
GOIO.HSCODE,
|
||||||
|
'A' AS CMMRC_TY,
|
||||||
|
CONCAT(GOI.GOODS_NM_EN, ' ', GOIO.OPTN_NM_1, '-', GOIO.OPTN_VAL_1) AS CN,
|
||||||
|
/*원가 관리 시작*/
|
||||||
|
GOIO.SLEPRIC,
|
||||||
|
GOS.DFT_DLVY_AMT,
|
||||||
|
GGC.CSTMS_FEE,
|
||||||
|
(
|
||||||
|
(GOIO.SLEPRIC + GOS.DFT_DLVY_AMT)
|
||||||
|
* GGC.PLTFOM_FEE
|
||||||
|
* GGC.EXPCT_TAX
|
||||||
|
) AS EXPCT_TAX_AMT,
|
||||||
|
GGC.EXPCT_TAX,
|
||||||
|
GGC.KR_DLVY_CT,
|
||||||
|
GGC.PLTFOM_FEE,
|
||||||
|
GGC.USD_RATE,
|
||||||
|
GGO.TAXABLE_USD AS UNIT_VALUE,
|
||||||
|
/*원가 관리 종료*/
|
||||||
|
GOIO.ORDR_QY,
|
||||||
|
GGO.TAXABLE_USD * GOIO.ORDR_QY AS VALUE,
|
||||||
|
NULL AS BRAND,
|
||||||
|
NULL AS PRE_FOOD_DCL,
|
||||||
|
NULL AS PROVD_NATION,
|
||||||
|
NULL AS PROVD_CMPNY_NM,
|
||||||
|
NULL AS CHNLNG_GOODS_NM,
|
||||||
|
NULL AS SHIPPER_PURCHS_SITE,
|
||||||
|
NULL AS SLE_AGNT_ENTRPS_NM,
|
||||||
|
NULL AS SLE_AGNT_ENTRPS_REGIST_CD,
|
||||||
|
NULL AS PURCHS_DLVY_AGENCY_NM,
|
||||||
|
NULL AS PURCHS_DLVY_AGENCY_REGIST_CD,
|
||||||
|
NULL AS OVSEA_SELER_NM,
|
||||||
|
GOS.ORDR_DLVY_INNB AS OVSEA_SELER_REGIST_CD,
|
||||||
|
CONCAT(GO.SUBSVC_AT, GOS.DLVYLC_AREA_CD, GOS.ORDR_DLVY_INNB) AS SITE_ORDR_INNB,
|
||||||
|
/*아래부터는 발주서에 포함되지 않음*/
|
||||||
|
GO.ORDR_STTUS_CD,
|
||||||
|
GOI.ORDR_GOODS_INNB,
|
||||||
|
GOI.GOODS_INNB,
|
||||||
|
GOI.GOODS_NM,
|
||||||
|
GOIO.ORDR_GOODS_OPTN_INNB,
|
||||||
|
GOIO.GOODS_OPTN_INNB,
|
||||||
|
GOS.DLVYLC_AREA_CD,
|
||||||
|
GGC.STDR_DE
|
||||||
|
FROM GC_ORDER GO
|
||||||
|
INNER JOIN GC_ORDER_ITEM GOI
|
||||||
|
ON GOI.ORDR_INNB = GO.ORDR_INNB
|
||||||
|
AND GOI.SOPMAL_CD = GO.SOPMAL_CD
|
||||||
|
INNER JOIN GC_ORDER_ITEM_OPTION GOIO
|
||||||
|
ON GOIO.ORDR_GOODS_INNB = GOI.ORDR_GOODS_INNB
|
||||||
|
AND GOIO.SOPMAL_CD = GOI.SOPMAL_CD
|
||||||
|
INNER JOIN GC_ORDER_SHIPPING GOS
|
||||||
|
ON GOS.ORDR_DLVY_INNB = GOIO.ORDR_DLVY_INNB
|
||||||
|
AND GOS.SOPMAL_CD = GOIO.SOPMAL_CD
|
||||||
|
INNER JOIN GC_GOODS_OPTION GGO
|
||||||
|
ON GGO.GOODS_OPTN_INNB = GOIO.GOODS_OPTN_INNB
|
||||||
|
AND GGO.GOODS_INNB = GOI.GOODS_INNB
|
||||||
|
AND GGO.SOPMAL_CD = GO.SOPMAL_CD
|
||||||
|
LEFT JOIN GC_GOODS_COST GGC
|
||||||
|
ON GGC.STDR_DE = (
|
||||||
|
SELECT MAX(GGC.STDR_DE)
|
||||||
|
FROM GC_GOODS_COST GGC
|
||||||
|
WHERE GGC.STDR_DE <![CDATA[<=]]> GO.ORDR_RCEPT_DT
|
||||||
|
)
|
||||||
|
WHERE 1 = 1
|
||||||
|
AND GO.ORDR_RCEPT_DT BETWEEN #{srchStartDate} AND #{srchEndDate} ' 23:59:59'
|
||||||
|
AND GOIO.ORDR_STTUS_CD = #{srchOrdrSttusCd}
|
||||||
|
AND GO.SOPMAL_CD = #{sopmalCd}
|
||||||
|
</select>
|
||||||
<!--
|
<!--
|
||||||
####################################
|
####################################
|
||||||
전체주문 조회 서비스 종료
|
전체주문 조회 서비스 종료
|
||||||
@@ -2042,7 +2137,6 @@
|
|||||||
ELSE
|
ELSE
|
||||||
CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50))
|
CAST(AES_DECRYPT(UNHEX(FOS.RECPNT_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50))
|
||||||
END AS RECPNT_MBTLNB
|
END AS RECPNT_MBTLNB
|
||||||
, FOS.CSTMCLER_CD
|
|
||||||
, FOS.DLVYLC_ZIP
|
, FOS.DLVYLC_ZIP
|
||||||
, FOS.DLVYLC_ADRES_DV_CD
|
, FOS.DLVYLC_ADRES_DV_CD
|
||||||
, CASE WHEN FOS.DLVYLC_ADRES_DV_CD = '01'
|
, CASE WHEN FOS.DLVYLC_ADRES_DV_CD = '01'
|
||||||
@@ -2392,9 +2486,6 @@
|
|||||||
SET FOS.RECPNT_NM = #{recpntNm}
|
SET FOS.RECPNT_NM = #{recpntNm}
|
||||||
, FOS.RECPNT_TELNB = HEX(AES_ENCRYPT(REPLACE(#{recpntTelnb}, '-', ''), '1df5be2f7e90ae36'))
|
, FOS.RECPNT_TELNB = HEX(AES_ENCRYPT(REPLACE(#{recpntTelnb}, '-', ''), '1df5be2f7e90ae36'))
|
||||||
, FOS.RECPNT_MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{recpntMbtlnb}, '-', ''), '1df5be2f7e90ae36'))
|
, FOS.RECPNT_MBTLNB = HEX(AES_ENCRYPT(REPLACE(#{recpntMbtlnb}, '-', ''), '1df5be2f7e90ae36'))
|
||||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(cstmclerCd)">
|
|
||||||
, FOS.CSTMCLER_CD = #{cstmclerCd}
|
|
||||||
</if>
|
|
||||||
, FOS.DLVYLC_ZIP = #{dlvylcZip}
|
, FOS.DLVYLC_ZIP = #{dlvylcZip}
|
||||||
, FOS.DLVYLC_ADRES_DV_CD = #{dlvylcAdresDvCd}
|
, FOS.DLVYLC_ADRES_DV_CD = #{dlvylcAdresDvCd}
|
||||||
, FOS.DLVYLC_LNB_ADRES = #{dlvylcLnbAdres}
|
, FOS.DLVYLC_LNB_ADRES = #{dlvylcLnbAdres}
|
||||||
@@ -2928,281 +3019,6 @@
|
|||||||
####################################
|
####################################
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!--
|
|
||||||
####################################
|
|
||||||
관리자 > 주문 > 주문관리 > 발주서 관리 시작
|
|
||||||
####################################
|
|
||||||
-->
|
|
||||||
<!-- 발주서 목록 건수 -->
|
|
||||||
<select id="selectExcelListPurchOrderTotCnt" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrSrchVO" resultType="Integer">
|
|
||||||
SELECT COUNT(1)
|
|
||||||
FROM GC_ORDER GO
|
|
||||||
INNER JOIN GC_ORDER_ITEM GOI
|
|
||||||
ON GOI.ORDR_INNB = GO.ORDR_INNB
|
|
||||||
AND GOI.SOPMAL_CD = GO.SOPMAL_CD
|
|
||||||
INNER JOIN GC_ORDER_ITEM_OPTION GOIO
|
|
||||||
ON GOIO.ORDR_GOODS_INNB = GOI.ORDR_GOODS_INNB
|
|
||||||
AND GOIO.SOPMAL_CD = GOI.SOPMAL_CD
|
|
||||||
INNER JOIN GC_ORDER_SHIPPING GOS
|
|
||||||
ON GOS.ORDR_DLVY_INNB = GOIO.ORDR_DLVY_INNB
|
|
||||||
AND GOS.SOPMAL_CD = GOIO.SOPMAL_CD
|
|
||||||
INNER JOIN GC_GOODS_OPTION GGO
|
|
||||||
ON GGO.GOODS_OPTN_INNB = GOIO.GOODS_OPTN_INNB
|
|
||||||
AND GGO.GOODS_INNB = GOI.GOODS_INNB
|
|
||||||
AND GGO.SOPMAL_CD = GO.SOPMAL_CD
|
|
||||||
LEFT JOIN GC_GOODS_COST GGC
|
|
||||||
ON GGC.STDR_DE = (
|
|
||||||
SELECT MAX(GGC.STDR_DE)
|
|
||||||
FROM GC_GOODS_COST GGC
|
|
||||||
WHERE GGC.STDR_DE <![CDATA[<=]]> GO.ORDR_RCEPT_DT
|
|
||||||
)
|
|
||||||
WHERE 1 = 1
|
|
||||||
AND GOIO.ORDR_STTUS_CD = #{srchOrdrSttusCd}
|
|
||||||
AND GO.SOPMAL_CD = #{sopmalCd}
|
|
||||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dlvylcAreaCds)">
|
|
||||||
AND GOS.DLVYLC_AREA_CD IN
|
|
||||||
<foreach collection="dlvylcAreaCds" item="dlvylcAreaCd" open="(" separator="," close=")">
|
|
||||||
#{dlvylcAreaCd}
|
|
||||||
</foreach>
|
|
||||||
</if>
|
|
||||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(excelInclude, 'N')">
|
|
||||||
AND GOS.EXCEL_DOWN_DT IS NULL
|
|
||||||
</if>
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<!-- 발주서 목록 조회 -->
|
|
||||||
<select id="selectExcelListPurchOrder" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrSrchVO" resultType="dataMap">
|
|
||||||
SELECT *
|
|
||||||
FROM (
|
|
||||||
SELECT CAST(@ROWNUM:=@ROWNUM+1 AS UNSIGNED) AS RNUM,
|
|
||||||
TB.*
|
|
||||||
FROM (
|
|
||||||
SELECT
|
|
||||||
GO.ORDR_RCEPT_DT,
|
|
||||||
'UNIHAN' AS ENTRPS_CD,
|
|
||||||
'UNIHAN CO.,LTD.' AS ENTRPS_NM,
|
|
||||||
'03-5990-2880' AS ENTRPS_TEL,
|
|
||||||
'RM.302,YOTSUYA-AKEBONOBASHI BLDG.,2-14, SUMIYOSHI-CHO, SHINJUKU-KU, TOKYO, 162-0065, JAPAN' AS ENTRPS_ADRES,
|
|
||||||
NULL AS SPCL_CSTMCLER_ENTRPS,
|
|
||||||
NULL AS SPCL_CSTMCLER_CD,
|
|
||||||
GO.ORDR_INNB,
|
|
||||||
1 AS PURPS_DV,
|
|
||||||
GOS.RECPNT_NM,
|
|
||||||
CAST(AES_DECRYPT(UNHEX(GOS.RECPNT_MBTLNB) , #{secretKey}) AS CHAR(50)) AS RECPNT_MBTLNB,
|
|
||||||
NULL AS RECPNT_HP,
|
|
||||||
GOS.CSTMCLER_CD,
|
|
||||||
GOS.DLVYLC_ZIP,
|
|
||||||
CASE
|
|
||||||
WHEN GOS.DLVYLC_ADRES_DV_CD = '01'
|
|
||||||
THEN GOS.DLVYLC_RNM_ADRES
|
|
||||||
ELSE GOS.DLVYLC_LNB_ADRES
|
|
||||||
END DLVYLC_RNM_LNB_ADRES,
|
|
||||||
GOS.DLVYLC_ADRES_DTL,
|
|
||||||
GOS.DLVY_MSSAGE_CN,
|
|
||||||
'www.sake1jan.com' AS CSTMR_PURCHS_SITE,
|
|
||||||
GOIO.REAL_WT,
|
|
||||||
GOIO.PACKAGE_CNT,
|
|
||||||
GOIO.HSCODE,
|
|
||||||
'A' AS CMMRC_TY,
|
|
||||||
CONCAT(GOI.GOODS_NM_EN, ' ', GOIO.OPTN_NM_1, '-', GOIO.OPTN_VAL_1) AS CN,
|
|
||||||
/*원가 관리 시작*/
|
|
||||||
GOIO.SLEPRIC,
|
|
||||||
GOS.DFT_DLVY_AMT,
|
|
||||||
GGC.CSTMS_FEE,
|
|
||||||
(
|
|
||||||
(GOIO.SLEPRIC + GOS.DFT_DLVY_AMT)
|
|
||||||
* GGC.PLTFOM_FEE
|
|
||||||
* GGC.EXPCT_TAX
|
|
||||||
) AS EXPCT_TAX_AMT,
|
|
||||||
GGC.EXPCT_TAX,
|
|
||||||
GGC.KR_DLVY_CT,
|
|
||||||
GGC.PLTFOM_FEE,
|
|
||||||
GGC.USD_RATE,
|
|
||||||
GGO.TAXABLE_USD AS UNIT_VALUE,
|
|
||||||
/*원가 관리 종료*/
|
|
||||||
GOIO.ORDR_QY,
|
|
||||||
GGO.TAXABLE_USD * GOIO.ORDR_QY AS VALUE,
|
|
||||||
NULL AS BRAND,
|
|
||||||
NULL AS PRE_FOOD_DCL,
|
|
||||||
NULL AS PROVD_NATION,
|
|
||||||
NULL AS PROVD_CMPNY_NM,
|
|
||||||
NULL AS CHNLNG_GOODS_NM,
|
|
||||||
NULL AS SHIPPER_PURCHS_SITE,
|
|
||||||
NULL AS SLE_AGNT_ENTRPS_NM,
|
|
||||||
NULL AS SLE_AGNT_ENTRPS_REGIST_CD,
|
|
||||||
NULL AS PURCHS_DLVY_AGENCY_NM,
|
|
||||||
NULL AS PURCHS_DLVY_AGENCY_REGIST_CD,
|
|
||||||
NULL AS OVSEA_SELER_NM,
|
|
||||||
GOS.ORDR_DLVY_INNB AS OVSEA_SELER_REGIST_CD,
|
|
||||||
CONCAT(GO.SUBSVC_AT, GOS.DLVYLC_AREA_CD, GOS.ORDR_DLVY_INNB) AS SITE_ORDR_INNB,
|
|
||||||
GOS.EXCEL_DOWN_DT,
|
|
||||||
/*아래부터는 발주서에 포함되지 않음*/
|
|
||||||
GO.ORDR_STTUS_CD,
|
|
||||||
GOI.ORDR_GOODS_INNB,
|
|
||||||
GOI.GOODS_INNB,
|
|
||||||
GOI.GOODS_NM,
|
|
||||||
GOIO.ORDR_GOODS_OPTN_INNB,
|
|
||||||
GOIO.GOODS_OPTN_INNB,
|
|
||||||
GOS.DLVYLC_AREA_CD,
|
|
||||||
GGC.STDR_DE
|
|
||||||
FROM GC_ORDER GO
|
|
||||||
INNER JOIN GC_ORDER_ITEM GOI
|
|
||||||
ON GOI.ORDR_INNB = GO.ORDR_INNB
|
|
||||||
AND GOI.SOPMAL_CD = GO.SOPMAL_CD
|
|
||||||
INNER JOIN GC_ORDER_ITEM_OPTION GOIO
|
|
||||||
ON GOIO.ORDR_GOODS_INNB = GOI.ORDR_GOODS_INNB
|
|
||||||
AND GOIO.SOPMAL_CD = GOI.SOPMAL_CD
|
|
||||||
INNER JOIN GC_ORDER_SHIPPING GOS
|
|
||||||
ON GOS.ORDR_DLVY_INNB = GOIO.ORDR_DLVY_INNB
|
|
||||||
AND GOS.SOPMAL_CD = GOIO.SOPMAL_CD
|
|
||||||
INNER JOIN GC_GOODS_OPTION GGO
|
|
||||||
ON GGO.GOODS_OPTN_INNB = GOIO.GOODS_OPTN_INNB
|
|
||||||
AND GGO.GOODS_INNB = GOI.GOODS_INNB
|
|
||||||
AND GGO.SOPMAL_CD = GO.SOPMAL_CD
|
|
||||||
LEFT JOIN GC_GOODS_COST GGC
|
|
||||||
ON GGC.STDR_DE = (
|
|
||||||
SELECT MAX(GGC.STDR_DE)
|
|
||||||
FROM GC_GOODS_COST GGC
|
|
||||||
WHERE GGC.STDR_DE <![CDATA[<=]]> GO.ORDR_RCEPT_DT
|
|
||||||
)
|
|
||||||
WHERE 1 = 1
|
|
||||||
AND GOIO.ORDR_STTUS_CD = #{srchOrdrSttusCd}
|
|
||||||
AND GO.SOPMAL_CD = #{sopmalCd}
|
|
||||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dlvylcAreaCds)">
|
|
||||||
AND GOS.DLVYLC_AREA_CD IN
|
|
||||||
<foreach collection="dlvylcAreaCds" item="dlvylcAreaCd" open="(" separator="," close=")">
|
|
||||||
#{dlvylcAreaCd}
|
|
||||||
</foreach>
|
|
||||||
</if>
|
|
||||||
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(excelInclude, 'N')">
|
|
||||||
AND GOS.EXCEL_DOWN_DT IS NULL
|
|
||||||
</if>
|
|
||||||
ORDER BY GOS.CSTMCLER_CD ASC
|
|
||||||
) TB
|
|
||||||
WHERE (@rownum:=0)=0
|
|
||||||
) PV
|
|
||||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<!-- 발주서 엑셀다운로드 -->
|
|
||||||
<select id="selectExcelPoListDwld" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrSrchVO" resultType="dataMap">
|
|
||||||
SELECT
|
|
||||||
SYSDATE() AS ORDR_RCEPT_DT,
|
|
||||||
'UNIHAN' AS ENTRPS_CD,
|
|
||||||
'UNIHAN CO.,LTD.' AS ENTRPS_NM,
|
|
||||||
'03-5990-2880' AS ENTRPS_TEL,
|
|
||||||
'RM.302,YOTSUYA-AKEBONOBASHI BLDG.,2-14, SUMIYOSHI-CHO, SHINJUKU-KU, TOKYO, 162-0065, JAPAN' AS ENTRPS_ADRES,
|
|
||||||
NULL AS SPCL_CSTMCLER_ENTRPS,
|
|
||||||
NULL AS SPCL_CSTMCLER_CD,
|
|
||||||
CONCAT(GO.ORDR_INNB, 'A', GOS.ORDR_DLVY_INNB) AS ORDR_INNB,
|
|
||||||
1 AS PURPS_DV,
|
|
||||||
GOS.RECPNT_NM,
|
|
||||||
CAST(AES_DECRYPT(UNHEX(GOS.RECPNT_MBTLNB) , #{secretKey}) AS CHAR(50)) AS RECPNT_MBTLNB,
|
|
||||||
NULL AS RECPNT_HP,
|
|
||||||
GOS.CSTMCLER_CD,
|
|
||||||
GOS.DLVYLC_ZIP,
|
|
||||||
CASE
|
|
||||||
WHEN GOS.DLVYLC_ADRES_DV_CD = '01'
|
|
||||||
THEN GOS.DLVYLC_RNM_ADRES
|
|
||||||
ELSE GOS.DLVYLC_LNB_ADRES
|
|
||||||
END DLVYLC_RNM_LNB_ADRES,
|
|
||||||
GOS.DLVYLC_ADRES_DTL,
|
|
||||||
GOS.DLVY_MSSAGE_CN,
|
|
||||||
'www.sake1jan.com' AS CSTMR_PURCHS_SITE,
|
|
||||||
GOIO.REAL_WT,
|
|
||||||
GOIO.PACKAGE_CNT,
|
|
||||||
GOIO.HSCODE,
|
|
||||||
'A' AS CMMRC_TY,
|
|
||||||
CONCAT(GOI.GOODS_NM_EN, ' ', GOIO.OPTN_NM_1, '-', GOIO.OPTN_VAL_1) AS CN,
|
|
||||||
/*원가 관리 시작*/
|
|
||||||
GOIO.SLEPRIC,
|
|
||||||
GOS.DFT_DLVY_AMT,
|
|
||||||
GGC.CSTMS_FEE,
|
|
||||||
(
|
|
||||||
(GOIO.SLEPRIC + GOS.DFT_DLVY_AMT)
|
|
||||||
* GGC.PLTFOM_FEE
|
|
||||||
* GGC.EXPCT_TAX
|
|
||||||
) AS EXPCT_TAX_AMT,
|
|
||||||
GGC.EXPCT_TAX,
|
|
||||||
GGC.KR_DLVY_CT,
|
|
||||||
GGC.PLTFOM_FEE,
|
|
||||||
GGC.USD_RATE,
|
|
||||||
GGO.TAXABLE_USD AS UNIT_VALUE,
|
|
||||||
/*원가 관리 종료*/
|
|
||||||
GOIO.ORDR_QY,
|
|
||||||
GGO.TAXABLE_USD * GOIO.ORDR_QY AS VALUE,
|
|
||||||
NULL AS BRAND,
|
|
||||||
NULL AS PRE_FOOD_DCL,
|
|
||||||
NULL AS PROVD_NATION,
|
|
||||||
NULL AS PROVD_CMPNY_NM,
|
|
||||||
NULL AS CHNLNG_GOODS_NM,
|
|
||||||
NULL AS SHIPPER_PURCHS_SITE,
|
|
||||||
NULL AS SLE_AGNT_ENTRPS_NM,
|
|
||||||
NULL AS SLE_AGNT_ENTRPS_REGIST_CD,
|
|
||||||
NULL AS PURCHS_DLVY_AGENCY_NM,
|
|
||||||
NULL AS PURCHS_DLVY_AGENCY_REGIST_CD,
|
|
||||||
NULL AS OVSEA_SELER_NM,
|
|
||||||
GOS.ORDR_DLVY_INNB AS OVSEA_SELER_REGIST_CD,
|
|
||||||
CONCAT(GO.SUBSVC_AT, GOS.DLVYLC_AREA_CD, GOS.ORDR_DLVY_INNB) AS SITE_ORDR_INNB,
|
|
||||||
GOS.EXCEL_DOWN_DT,
|
|
||||||
/*아래부터는 발주서에 포함되지 않음*/
|
|
||||||
GO.ORDR_STTUS_CD,
|
|
||||||
GOI.ORDR_GOODS_INNB,
|
|
||||||
GOI.GOODS_INNB,
|
|
||||||
GOI.GOODS_NM,
|
|
||||||
GOIO.ORDR_GOODS_OPTN_INNB,
|
|
||||||
GOIO.GOODS_OPTN_INNB,
|
|
||||||
GOS.DLVYLC_AREA_CD,
|
|
||||||
GGC.STDR_DE
|
|
||||||
FROM GC_ORDER GO
|
|
||||||
INNER JOIN GC_ORDER_ITEM GOI
|
|
||||||
ON GOI.ORDR_INNB = GO.ORDR_INNB
|
|
||||||
AND GOI.SOPMAL_CD = GO.SOPMAL_CD
|
|
||||||
INNER JOIN GC_ORDER_ITEM_OPTION GOIO
|
|
||||||
ON GOIO.ORDR_GOODS_INNB = GOI.ORDR_GOODS_INNB
|
|
||||||
AND GOIO.SOPMAL_CD = GOI.SOPMAL_CD
|
|
||||||
INNER JOIN GC_ORDER_SHIPPING GOS
|
|
||||||
ON GOS.ORDR_DLVY_INNB = GOIO.ORDR_DLVY_INNB
|
|
||||||
AND GOS.SOPMAL_CD = GOIO.SOPMAL_CD
|
|
||||||
INNER JOIN GC_GOODS_OPTION GGO
|
|
||||||
ON GGO.GOODS_OPTN_INNB = GOIO.GOODS_OPTN_INNB
|
|
||||||
AND GGO.GOODS_INNB = GOI.GOODS_INNB
|
|
||||||
AND GGO.SOPMAL_CD = GO.SOPMAL_CD
|
|
||||||
LEFT JOIN GC_GOODS_COST GGC
|
|
||||||
ON GGC.STDR_DE = (
|
|
||||||
SELECT MAX(GGC.STDR_DE)
|
|
||||||
FROM GC_GOODS_COST GGC
|
|
||||||
WHERE GGC.STDR_DE <![CDATA[<=]]> GO.ORDR_RCEPT_DT
|
|
||||||
)
|
|
||||||
WHERE 1 = 1
|
|
||||||
AND GOIO.ORDR_STTUS_CD = #{srchOrdrSttusCd}
|
|
||||||
AND GO.SOPMAL_CD = #{sopmalCd}
|
|
||||||
AND <foreach collection="srchInnbPairs" item="pair" index="index" open="(" separator=" OR " close=")">
|
|
||||||
(
|
|
||||||
GOS.ORDR_INNB = #{pair.srchOrdrInnb}
|
|
||||||
AND GOS.ORDR_DLVY_INNB = #{pair.srchOrdrDlvyInnb}
|
|
||||||
)
|
|
||||||
</foreach>
|
|
||||||
ORDER BY GOS.CSTMCLER_CD ASC
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<!-- 엑셀 다운로드 일시 업데이트 -->
|
|
||||||
<update id="updateExcelDownDt" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrSrchVO">
|
|
||||||
UPDATE GC_ORDER_SHIPPING GOS
|
|
||||||
SET GOS.EXCEL_DOWN_DT = SYSDATE()
|
|
||||||
WHERE <foreach collection="srchInnbPairs" item="pair" index="index" open="(" separator=" OR " close=")">
|
|
||||||
(
|
|
||||||
GOS.ORDR_INNB = #{pair.srchOrdrInnb}
|
|
||||||
AND GOS.ORDR_DLVY_INNB = #{pair.srchOrdrDlvyInnb}
|
|
||||||
)
|
|
||||||
</foreach>
|
|
||||||
</update>
|
|
||||||
<!--
|
|
||||||
####################################
|
|
||||||
관리자 > 주문 > 주문관리 > 발주서 관리 종료
|
|
||||||
####################################
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
####################################
|
####################################
|
||||||
관리자 > 주문 > 개인결제관리 시작
|
관리자 > 주문 > 개인결제관리 시작
|
||||||
@@ -6059,7 +5875,7 @@
|
|||||||
ON GGO.SOPMAL_CD = GG.SOPMAL_CD
|
ON GGO.SOPMAL_CD = GG.SOPMAL_CD
|
||||||
AND GGO.GOODS_INNB = GG.GOODS_INNB
|
AND GGO.GOODS_INNB = GG.GOODS_INNB
|
||||||
JOIN seq
|
JOIN seq
|
||||||
ON seq.n <![CDATA[<=]]> GS.DLVY_CNT
|
ON seq.n <![CDATA[<=]]> GS.SUB_PD
|
||||||
LEFT JOIN GC_GOODS_IMAGE GGI ON GG.SOPMAL_CD = GGI.SOPMAL_CD
|
LEFT JOIN GC_GOODS_IMAGE GGI ON GG.SOPMAL_CD = GGI.SOPMAL_CD
|
||||||
AND GG.GOODS_INNB = GGI.GOODS_INNB
|
AND GG.GOODS_INNB = GGI.GOODS_INNB
|
||||||
AND GGI.IMG_KND = '03'
|
AND GGI.IMG_KND = '03'
|
||||||
|
|||||||
@@ -3003,11 +3003,7 @@ FROM (
|
|||||||
) CPN ON GOODS.SOPMAL_CD = CPN.SOPMAL_CD
|
) CPN ON GOODS.SOPMAL_CD = CPN.SOPMAL_CD
|
||||||
AND GOODS.GOODS_INNB = CPN.GOODS_INNB
|
AND GOODS.GOODS_INNB = CPN.GOODS_INNB
|
||||||
WHERE 1 = 1
|
WHERE 1 = 1
|
||||||
ORDER BY GOODS.RELM_DV_CD
|
ORDER BY GOODS.RELM_DV_CD , GOODS.S_ORDR, GOODS.I_ORDR, GOODS.EXPSR_ORDR
|
||||||
, GOODS.S_ORDR
|
|
||||||
, GOODS.I_ORDR
|
|
||||||
, CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
|
||||||
, GOODS.EXPSR_ORDR
|
|
||||||
|
|
||||||
|
|
||||||
]]>
|
]]>
|
||||||
@@ -3909,11 +3905,7 @@ FROM (
|
|||||||
) CPN ON GOODS.SOPMAL_CD = CPN.SOPMAL_CD
|
) CPN ON GOODS.SOPMAL_CD = CPN.SOPMAL_CD
|
||||||
AND GOODS.GOODS_INNB = CPN.GOODS_INNB
|
AND GOODS.GOODS_INNB = CPN.GOODS_INNB
|
||||||
WHERE 1 = 1
|
WHERE 1 = 1
|
||||||
ORDER BY GOODS.RELM_DV_CD
|
ORDER BY GOODS.RELM_DV_CD , GOODS.S_ORDR, GOODS.I_ORDR, GOODS.GOODS_ORDR
|
||||||
, GOODS.S_ORDR
|
|
||||||
, GOODS.I_ORDR
|
|
||||||
, CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
|
||||||
, GOODS.GOODS_ORDR
|
|
||||||
|
|
||||||
|
|
||||||
]]>
|
]]>
|
||||||
@@ -4962,10 +4954,7 @@ FROM (
|
|||||||
) CPN ON GOODS.SOPMAL_CD = CPN.SOPMAL_CD
|
) CPN ON GOODS.SOPMAL_CD = CPN.SOPMAL_CD
|
||||||
AND GOODS.GOODS_INNB = CPN.GOODS_INNB
|
AND GOODS.GOODS_INNB = CPN.GOODS_INNB
|
||||||
WHERE 1 = 1
|
WHERE 1 = 1
|
||||||
ORDER BY GOODS.RELM_DV_CD
|
ORDER BY GOODS.RELM_DV_CD , GOODS.S_ORDR, GOODS.I_ORDR
|
||||||
, GOODS.S_ORDR
|
|
||||||
, GOODS.I_ORDR
|
|
||||||
, CASE GOODS.GOODS_STTUS_CD WHEN '01' THEN 0 WHEN '02' THEN 1 WHEN '03' THEN 2 ELSE 3 END
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -1,46 +0,0 @@
|
|||||||
/* 결제취소 화면 조회 전용. 실제 취소/환불 요청은 처리하지 않는다. */
|
|
||||||
async function fn_load_refund_popup(url, data, onReady) {
|
|
||||||
const requestUrl = new URL(url, window.location.href);
|
|
||||||
Object.entries(data).forEach(([key, value]) => requestUrl.searchParams.set(key, value));
|
|
||||||
|
|
||||||
const loginRequired = function () {
|
|
||||||
window.alert('로그인 시간이 만료되었습니다. 다시 로그인해 주세요.');
|
|
||||||
const loginUrl = new URL('/sopmal/login', window.location.href);
|
|
||||||
// 로그인 후 AJAX 팝업 주소가 아닌 원래 주문 상세로 돌아온다.
|
|
||||||
loginUrl.searchParams.set('redirect_uri', window.location.href);
|
|
||||||
window.location.assign(loginUrl.href);
|
|
||||||
};
|
|
||||||
|
|
||||||
try {
|
|
||||||
// 갱신 후 리다이렉트에서도 주문 조회 조건이 유지되도록 GET으로 요청한다.
|
|
||||||
const response = await fetch(requestUrl.href, {
|
|
||||||
method: 'GET',
|
|
||||||
credentials: 'same-origin',
|
|
||||||
cache: 'no-store',
|
|
||||||
headers: {'X-Requested-With': 'XMLHttpRequest'}
|
|
||||||
});
|
|
||||||
const finalUrl = new URL(response.url || requestUrl.href, window.location.href);
|
|
||||||
if (response.status === 401 || (response.redirected &&
|
|
||||||
/^\/sopmal\/(login(?:\/|$)|logout(?:\/|$)|main(?:\/|$))/.test(finalUrl.pathname))) {
|
|
||||||
loginRequired();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!response.ok || finalUrl.origin !== requestUrl.origin || finalUrl.pathname !== requestUrl.pathname) {
|
|
||||||
throw new Error('Unexpected refund popup response');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 로그인 HTML이나 빈 응답은 화면에 넣지 않는다. 반환된 스크립트도 실행하지 않는다.
|
|
||||||
const html = await response.text();
|
|
||||||
const parsed = new DOMParser().parseFromString(html, 'text/html');
|
|
||||||
const popup = parsed.querySelector('#refund-pop');
|
|
||||||
if (!popup) {
|
|
||||||
throw new Error('Missing refund popup');
|
|
||||||
}
|
|
||||||
popup.querySelectorAll('script').forEach(script => script.remove());
|
|
||||||
$('#refund-pop').remove();
|
|
||||||
$('#refundPopupDiv').empty().append(popup);
|
|
||||||
onReady($(popup));
|
|
||||||
} catch (error) {
|
|
||||||
window.alert('결제취소 화면을 불러오지 못했습니다. 잠시 후 다시 시도해 주세요.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -923,10 +923,3 @@ $(".comma").each(function () {
|
|||||||
var text = $(this).text();
|
var text = $(this).text();
|
||||||
$(this).text(text.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, "$1,"));
|
$(this).text(text.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, "$1,"));
|
||||||
});
|
});
|
||||||
|
|
||||||
//해당 클래스를 가진 요소 .trim()
|
|
||||||
function trimInputValue() {
|
|
||||||
$('input.input-trim').each(function () {
|
|
||||||
$(this).val($(this).val().trim());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@@ -4269,9 +4269,6 @@ body {
|
|||||||
.header--sub:has(.headerTab) ~ .content-wrap {
|
.header--sub:has(.headerTab) ~ .content-wrap {
|
||||||
padding-top: 96px;
|
padding-top: 96px;
|
||||||
}
|
}
|
||||||
.header--sub:has(.mobile-about-menu) ~ .content-wrap {
|
|
||||||
padding-top: 96px;
|
|
||||||
}
|
|
||||||
.header--sub::before {
|
.header--sub::before {
|
||||||
content: "";
|
content: "";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -5709,17 +5706,6 @@ body {
|
|||||||
color: #16191d;
|
color: #16191d;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
.mainNotice__customerContact-alwaysonbottom {
|
|
||||||
position: fixed;
|
|
||||||
left: 10px;
|
|
||||||
bottom: 60px;
|
|
||||||
z-index: 10;
|
|
||||||
}
|
|
||||||
.icon_kakao-customer-service {
|
|
||||||
width: 72px;
|
|
||||||
height: 72px;
|
|
||||||
background-image: url(../images/icon_kakao_customer.png);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notice__title {
|
.notice__title {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 53 KiB |
@@ -5560,36 +5560,20 @@ main {
|
|||||||
}
|
}
|
||||||
.quick-menu__customer-service {
|
.quick-menu__customer-service {
|
||||||
position: relative;
|
position: relative;
|
||||||
cursor: pointer;
|
|
||||||
}
|
}
|
||||||
.quick-menu__customer-service__num {
|
.quick-menu__customer-service__num {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 80%;
|
bottom: 24px;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
width: 100%;
|
transform: translateX(-50%);
|
||||||
transform: translate(-50%, -50%);
|
font-size: 24px;
|
||||||
font-size: 14px;
|
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: #212529;
|
color: #212529;
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.quick-menu__customer-service-alwaysonbottom {
|
|
||||||
position: fixed;
|
|
||||||
left: 20px;
|
|
||||||
bottom: 20px;
|
|
||||||
z-index: 10;
|
|
||||||
}
|
}
|
||||||
.quick-menu > * + * {
|
.quick-menu > * + * {
|
||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
}
|
}
|
||||||
.icon_kakao-customer-service {
|
|
||||||
width: 108px;
|
|
||||||
height: 108px;
|
|
||||||
background-image: url(../images/icon_kakao_customer.png);
|
|
||||||
/* 이미지 그림자 */
|
|
||||||
filter: drop-shadow(0px 3px 4px rgba(0, 0, 0, 0.15));
|
|
||||||
}
|
|
||||||
|
|
||||||
.recentProductSlick {
|
.recentProductSlick {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -9595,6 +9579,7 @@ main {
|
|||||||
.cartOrderBox__total {
|
.cartOrderBox__total {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
.cartOrderBox__totalTh {
|
.cartOrderBox__totalTh {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
@@ -9618,7 +9603,6 @@ main {
|
|||||||
}
|
}
|
||||||
.cartOrderBox__buyBtn {
|
.cartOrderBox__buyBtn {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin-top: 20px;
|
|
||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
}
|
}
|
||||||
.cartOrderBox .product-btn-container {
|
.cartOrderBox .product-btn-container {
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 53 KiB |
@@ -1497,11 +1497,6 @@
|
|||||||
<span class="check"></span>
|
<span class="check"></span>
|
||||||
<span class="control-label">카카오페이</span>
|
<span class="control-label">카카오페이</span>
|
||||||
</label>
|
</label>
|
||||||
<label class="b-checkbox checkbox">
|
|
||||||
<input type="checkbox" name="pc-setle-type" value="stripe" ${f:setChecked(fn:contains(payInfoList.stripeUseAt, 'Y'), true)} class="stripe">
|
|
||||||
<span class="check"></span>
|
|
||||||
<span class="control-label">Stripe</span>
|
|
||||||
</label>
|
|
||||||
</c:if>
|
</c:if>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</c:if>
|
</c:if>
|
||||||
@@ -1578,11 +1573,6 @@
|
|||||||
<span class="check"></span>
|
<span class="check"></span>
|
||||||
<span class="control-label">카카오페이</span>
|
<span class="control-label">카카오페이</span>
|
||||||
</label>
|
</label>
|
||||||
<label class="b-checkbox checkbox">
|
|
||||||
<input type="checkbox" name="mobile-setle-type" value="stripe" ${f:setChecked(fn:contains(payInfoList.stripeUseAt, 'Y'), true)} class="stripe">
|
|
||||||
<span class="check"></span>
|
|
||||||
<span class="control-label">Stripe</span>
|
|
||||||
</label>
|
|
||||||
</c:if>
|
</c:if>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</c:if>
|
</c:if>
|
||||||
@@ -1659,11 +1649,6 @@
|
|||||||
<span class="check"></span>
|
<span class="check"></span>
|
||||||
<span class="control-label">카카오페이</span>
|
<span class="control-label">카카오페이</span>
|
||||||
</label>
|
</label>
|
||||||
<label class="b-checkbox checkbox">
|
|
||||||
<input type="checkbox" name="pc-subsvc-setle-type" value="stripe" ${f:setChecked(fn:contains(payInfoList.stripeUseAt, 'Y'), true)} class="stripe">
|
|
||||||
<span class="check"></span>
|
|
||||||
<span class="control-label">Stripe</span>
|
|
||||||
</label>
|
|
||||||
</c:if>
|
</c:if>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</c:if>
|
</c:if>
|
||||||
@@ -1740,11 +1725,6 @@
|
|||||||
<span class="check"></span>
|
<span class="check"></span>
|
||||||
<span class="control-label">카카오페이</span>
|
<span class="control-label">카카오페이</span>
|
||||||
</label>
|
</label>
|
||||||
<label class="b-checkbox checkbox">
|
|
||||||
<input type="checkbox" name="mobile-subsvc-setle-type" value="stripe" ${f:setChecked(fn:contains(payInfoList.stripeUseAt, 'Y'), true)} class="stripe">
|
|
||||||
<span class="check"></span>
|
|
||||||
<span class="control-label">Stripe</span>
|
|
||||||
</label>
|
|
||||||
</c:if>
|
</c:if>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</c:if>
|
</c:if>
|
||||||
|
|||||||
@@ -525,10 +525,3 @@
|
|||||||
<div class="loadingImg" style="display:none; position: relative; z-index: 1010;">
|
<div class="loadingImg" style="display:none; position: relative; z-index: 1010;">
|
||||||
<div class="loding_popup_wrap"><img src="/mobile/images/loading.svg" alt="loading"></div>
|
<div class="loding_popup_wrap"><img src="/mobile/images/loading.svg" alt="loading"></div>
|
||||||
</div>
|
</div>
|
||||||
<!--고객센터 아이콘-->
|
|
||||||
<div class="quick-menu__customer-service-alwaysonbottom"
|
|
||||||
onclick="window.open('http://pf.kakao.com/_xjxjHxnX', '_blank');">
|
|
||||||
<i class="icon icon_kakao-customer-service"></i>
|
|
||||||
<span class="visually-hidden">고객센터</span>
|
|
||||||
<%-- <span class="quick-menu__customer-service__num">문의는 카톡으로 </span>--%>
|
|
||||||
</div>
|
|
||||||
@@ -35,28 +35,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<c:if test="${param.mobileAboutMenuAt eq 'Y' && not empty param.mobileParentCtgryId}">
|
|
||||||
<c:set var="mobileAboutCurrentCtgryId" value="${param.mobileCurrentCtgryId}"/>
|
|
||||||
<nav class="home-category mobile-about-menu" aria-label="하위 메뉴">
|
|
||||||
<div class="home-category__content">
|
|
||||||
<ul class="home-category__list">
|
|
||||||
<c:forEach var="topMenuList" items="${sopmallInfo.menuList}">
|
|
||||||
<c:if test="${topMenuList.ctgryDvCd eq '01' && topMenuList.rnum eq '3' && topMenuList.upperCtgryId eq param.mobileParentCtgryId && topMenuList.menuExpsrAt eq 'Y'}">
|
|
||||||
<c:if test="${empty mobileAboutCurrentCtgryId}">
|
|
||||||
<c:set var="mobileAboutCurrentCtgryId" value="${topMenuList.ctgryId}"/>
|
|
||||||
</c:if>
|
|
||||||
<li class="home-category__item<c:if test="${topMenuList.ctgryId eq mobileAboutCurrentCtgryId}"> active</c:if>">
|
|
||||||
<a href="<c:out value="${topMenuList.url}"/><c:choose><c:when test="${fn:contains(topMenuList.url, '?')}">&</c:when><c:otherwise>?</c:otherwise></c:choose>mobileParentCtgryId=<c:out value="${param.mobileParentCtgryId}"/>&mobileAboutMenuAt=Y&mobileCurrentCtgryId=<c:out value="${topMenuList.ctgryId}"/>"
|
|
||||||
class="home-category__link">
|
|
||||||
<c:out value="${topMenuList.ctgryNm}"/>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</c:if>
|
|
||||||
</c:forEach>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
</c:if>
|
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
//뒤로가기 이벤트 부여, 각 페이지 마다 이벤트 삭제 후 다른 이벤트 사용 가능
|
//뒤로가기 이벤트 부여, 각 페이지 마다 이벤트 삭제 후 다른 이벤트 사용 가능
|
||||||
|
|||||||
@@ -1070,11 +1070,10 @@
|
|||||||
<c:if test="${topMenuList.gnbExpsrAt eq 'Y'}">
|
<c:if test="${topMenuList.gnbExpsrAt eq 'Y'}">
|
||||||
<c:if test="${topMenuList.rnum eq '2'}">
|
<c:if test="${topMenuList.rnum eq '2'}">
|
||||||
<c:set var="mDpth3Chk" value="N"/>
|
<c:set var="mDpth3Chk" value="N"/>
|
||||||
<c:set var="mobileAboutParentAt" value="${topMenuList.ctgryNm eq 'ABOUT'}"/>
|
|
||||||
<li class="isSub list">
|
<li class="isSub list">
|
||||||
<div class="isSubDv">
|
<div class="isSubDv">
|
||||||
<a href="<c:out value="${topMenuList.url}"/><c:choose><c:when test="${fn:contains(topMenuList.url, '?')}">&</c:when><c:otherwise>?</c:otherwise></c:choose>mobileParentCtgryId=<c:out value="${topMenuList.ctgryId}"/><c:if test="${topMenuList.ctgryNm eq 'ABOUT'}">&mobileAboutMenuAt=Y</c:if>" class="depth"><c:out value ="${topMenuList.ctgryNm}"/><em class="visually-hidden">상세내용닫기</em></a>
|
<a href="<c:out value="${topMenuList.url}"/>" class="depth"><c:out value ="${topMenuList.ctgryNm}"/><em class="visually-hidden">상세내용닫기</em></a>
|
||||||
<a href="<c:out value="${topMenuList.url}"/><c:choose><c:when test="${fn:contains(topMenuList.url, '?')}">&</c:when><c:otherwise>?</c:otherwise></c:choose>mobileParentCtgryId=<c:out value="${topMenuList.ctgryId}"/><c:if test="${topMenuList.ctgryNm eq 'ABOUT'}">&mobileAboutMenuAt=Y</c:if>" class="moer"></a>
|
<a href="<c:out value="${topMenuList.url}"/>" class="moer"></a>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
<c:if test="${topMenuList.rnum eq '3'}">
|
<c:if test="${topMenuList.rnum eq '3'}">
|
||||||
@@ -1083,7 +1082,7 @@
|
|||||||
<c:set var="mDpth3Chk" value="Y"/>
|
<c:set var="mDpth3Chk" value="Y"/>
|
||||||
<ul class="view">
|
<ul class="view">
|
||||||
</c:if>
|
</c:if>
|
||||||
<li><a href="<c:out value="${topMenuList.url}"/><c:choose><c:when test="${fn:contains(topMenuList.url, '?')}">&</c:when><c:otherwise>?</c:otherwise></c:choose>mobileParentCtgryId=<c:out value="${topMenuList.upperCtgryId}"/>&mobileCurrentCtgryId=<c:out value="${topMenuList.ctgryId}"/><c:if test="${mobileAboutParentAt}">&mobileAboutMenuAt=Y</c:if>"><c:out value ="${topMenuList.ctgryNm}"/></a></li>
|
<li><a href='<c:out value="${topMenuList.url}"/>'><c:out value ="${topMenuList.ctgryNm}"/></a></li>
|
||||||
</c:if>
|
</c:if>
|
||||||
<c:if test="${topMenuList.rnum < 4}">
|
<c:if test="${topMenuList.rnum < 4}">
|
||||||
<c:set var="chkUpperMenuCd" value="${topMenuList.upperCtgryId}"/>
|
<c:set var="chkUpperMenuCd" value="${topMenuList.upperCtgryId}"/>
|
||||||
@@ -1234,12 +1233,6 @@
|
|||||||
|
|
||||||
<div id="mbrMarktClauseAgreeDiv"></div>
|
<div id="mbrMarktClauseAgreeDiv"></div>
|
||||||
|
|
||||||
<%--고객센터 아이콘--%>
|
|
||||||
<div class="mainNotice__customerContact-alwaysonbottom" style="display: none;"
|
|
||||||
onclick="window.open('http://pf.kakao.com/_xjxjHxnX', '_blank');">
|
|
||||||
<i class="icon icon_kakao-customer-service"></i>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
/*최초 로그인시 마케팅 수신동의를 받지 않았을 경우 마케팅 수신동의 팝업 띄우기*/
|
/*최초 로그인시 마케팅 수신동의를 받지 않았을 경우 마케팅 수신동의 팝업 띄우기*/
|
||||||
@@ -1278,16 +1271,6 @@ $(document).ready(function() {
|
|||||||
if(locationUrl.includes("selectMbrPurchsForm")){
|
if(locationUrl.includes("selectMbrPurchsForm")){
|
||||||
document.cookie = 'marktAgreeAt=P; path=/'
|
document.cookie = 'marktAgreeAt=P; path=/'
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function() {
|
|
||||||
var $notice = $('.mainNotice__customerContact-alwaysonbottom');
|
|
||||||
|
|
||||||
if ($('.tab-bar').length) {
|
|
||||||
$notice.fadeIn(500);
|
|
||||||
} else if ($('.productDetail').length) {
|
|
||||||
$notice.css('bottom', '70px').fadeIn(500);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
})
|
})
|
||||||
|
|
||||||
//광고 수신동의여부 수정
|
//광고 수신동의여부 수정
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
<c:if test="${topMenuList.ctgryDvCd eq '01' && topMenuList.menuExpsrAt eq 'Y'}">
|
<c:if test="${topMenuList.ctgryDvCd eq '01' && topMenuList.menuExpsrAt eq 'Y'}">
|
||||||
<c:if test="${topMenuList.rnum eq '2'}">
|
<c:if test="${topMenuList.rnum eq '2'}">
|
||||||
<li class="home-category__item">
|
<li class="home-category__item">
|
||||||
<a href="<c:out value="${topMenuList.url}"/><c:choose><c:when test="${fn:contains(topMenuList.url, '?')}">&</c:when><c:otherwise>?</c:otherwise></c:choose>mobileParentCtgryId=<c:out value="${topMenuList.ctgryId}"/><c:if test="${topMenuList.ctgryNm eq 'ABOUT'}">&mobileAboutMenuAt=Y</c:if>" onclick="setTopMenuCode()" <c:if test="${not empty topMenuList.menuChrColor}"> style="color:${topMenuList.menuChrColor};"</c:if>><c:out value ="${topMenuList.ctgryNm}"/></a>
|
<a href="<c:out value="${topMenuList.url}"/>" onclick="setTopMenuCode()" <c:if test="${not empty topMenuList.menuChrColor}"> style="color:${topMenuList.menuChrColor};"</c:if>><c:out value ="${topMenuList.ctgryNm}"/></a>
|
||||||
</li>
|
</li>
|
||||||
</c:if>
|
</c:if>
|
||||||
</c:if>
|
</c:if>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
||||||
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
|
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
|
||||||
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||||
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko">
|
<html lang="ko">
|
||||||
<head>
|
<head>
|
||||||
@@ -1272,14 +1272,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
</div>
|
</div>
|
||||||
<%--<div class="quick-menu__customer-service"
|
<%-- <div class="quick-menu__customer-service">--%>
|
||||||
onclick="window.open('http://pf.kakao.com/_xjxjHxnX', '_blank');">
|
<%-- <i class="icon icon_quick-customer-service"></i>--%>
|
||||||
<i class="icon icon_kakao-customer-service"></i>
|
<%-- <span class="visually-hidden">고객센터</span>--%>
|
||||||
<span class="visually-hidden">고객센터</span>
|
<%-- <span class="quick-menu__customer-service__num">--%>
|
||||||
<span class="quick-menu__customer-service__num">
|
<%-- ${ fn:replace(resultMap.operAt.cscTelnb, '-', '<br>') }--%>
|
||||||
문의는 카톡으로
|
<%-- </span>--%>
|
||||||
</span>
|
<%-- </div>--%>
|
||||||
</div>--%>
|
|
||||||
<div class="quick-menu__to-top">
|
<div class="quick-menu__to-top">
|
||||||
<button><i class="icon icon_quick-to-top"></i><span class="visually-hidden">위로
|
<button><i class="icon icon_quick-to-top"></i><span class="visually-hidden">위로
|
||||||
가기</span></button>
|
가기</span></button>
|
||||||
|
|||||||
@@ -1509,7 +1509,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</c:if>
|
</c:if>
|
||||||
<%--게시판 타입 이벤트, 매거진 추천 상품 노출--%>
|
<%--게시판 타입 이벤트, 매거진 추천 상품 노출--%>
|
||||||
<c:if test="${resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '09'}">
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '09'}">
|
||||||
<th>추천 상품 노출</th>
|
<th>추천 상품 노출</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
@@ -1553,29 +1553,6 @@
|
|||||||
</td>
|
</td>
|
||||||
</c:if>
|
</c:if>
|
||||||
</tr>
|
</tr>
|
||||||
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01'}">
|
|
||||||
<tr>
|
|
||||||
<th>추천 상품 노출</th>
|
|
||||||
<td colspan="3">
|
|
||||||
<div class="td-inner">
|
|
||||||
<div class="custom-radio-container">
|
|
||||||
<div class="custom-radio">
|
|
||||||
<input type="radio" id="recomendGoodsExpsrAt-y"
|
|
||||||
name="recomendGoodsExpsrAt"
|
|
||||||
value="Y" ${f:setChecked(resultMap.bbsVo.recomendGoodsExpsrAt, 'Y') } />
|
|
||||||
<label for="recomendGoodsExpsrAt-y">사용</label>
|
|
||||||
</div>
|
|
||||||
<div class="custom-radio">
|
|
||||||
<input type="radio" id="recomendGoodsExpsrAt-n"
|
|
||||||
name="recomendGoodsExpsrAt"
|
|
||||||
value="N" ${f:setChecked(resultMap.bbsVo.recomendGoodsExpsrAt, 'N') } />
|
|
||||||
<label for="recomendGoodsExpsrAt-n">미사용</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</c:if>
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -948,8 +948,7 @@
|
|||||||
<input type="radio" id="write${cgn024.cd }"
|
<input type="radio" id="write${cgn024.cd }"
|
||||||
name="bbscttRegistAuthorDvCd"
|
name="bbscttRegistAuthorDvCd"
|
||||||
value="${cgn024.cd }" ${attrCheck }
|
value="${cgn024.cd }" ${attrCheck }
|
||||||
onclick="fn_change_event('bbscttRegistAuthorDvCd');
|
onclick="fn_click_check('bbscttRegistAuthorDvCd', 'all');">
|
||||||
fn_click_check('bbscttRegistAuthorDvCd', 'all');">
|
|
||||||
<label for="write${cgn024.cd }"><c:out
|
<label for="write${cgn024.cd }"><c:out
|
||||||
value="${cgn024.cdNm }"/></label>
|
value="${cgn024.cdNm }"/></label>
|
||||||
</div>
|
</div>
|
||||||
@@ -2043,25 +2042,13 @@
|
|||||||
url : url,
|
url : url,
|
||||||
data : paramsArray,
|
data : paramsArray,
|
||||||
success : function(data) {
|
success : function(data) {
|
||||||
const result = JSON.parse(data.resBody.result);
|
|
||||||
const bbsId = result.bbsid;
|
|
||||||
if (result.message !== 'success' || !bbsId) {
|
|
||||||
alert('게시판 등록에 실패했습니다. 다시 시도해 주세요.');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
alert('<spring:message code="success.common.insert"/>');
|
alert('<spring:message code="success.common.insert"/>');
|
||||||
|
const bbsId = JSON.parse(data.resBody.result).bbsid;
|
||||||
<%-- fn_move_dtlupdt(bbsId); --%>
|
<%-- fn_move_dtlupdt(bbsId); --%>
|
||||||
$('#backUpData').find('[name=bbsId]').val(bbsId);
|
$('#backUpData').find('[name=bbsId]').val(JSON.parse(data.resBody.result).bbsid);
|
||||||
$('#backUpData').find('[name=pageDv]').val('I');
|
$('#backUpData').find('[name=pageDv]').val('I');
|
||||||
$('#backUpData').attr('action', '<c:url value="/mngr/bbs/bbsmngr/selectBbsDtlUpdtForm"/>');
|
$('#backUpData').attr('action', '<c:url value="/mngr/bbs/bbsmngr/selectBbsDtlUpdtForm"/>');
|
||||||
$('#backUpData').submit();
|
$('#backUpData').submit();
|
||||||
},
|
|
||||||
error : function(data) {
|
|
||||||
const message = data.responseJSON
|
|
||||||
&& data.responseJSON.resBody
|
|
||||||
&& data.responseJSON.resBody.result;
|
|
||||||
alert(message || '게시판 등록 중 오류가 발생했습니다.');
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||||
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
|
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
|
||||||
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
|
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
|
||||||
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
<%@ page import="java.util.Date" %>
|
||||||
<%--
|
<%--
|
||||||
Class Name : GnrlBbscttDtlPopupR.jsp
|
Class Name : GnrlBbscttDtlPopupR.jsp
|
||||||
Description : 일반 게시글 상세 조회 화면
|
Description : 일반 게시글 상세 조회 화면
|
||||||
@@ -21,36 +21,36 @@
|
|||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
console.log('urlval 태그' + $('.urlVal').length);
|
console.log('urlval 태그' + $('.urlVal').length);
|
||||||
|
|
||||||
const popup = document.getElementById('board-list-detail');
|
const pcDomnAdres = document.querySelector('.header__logo').getAttribute('data-pcurl');
|
||||||
|
|
||||||
let urlVal = '';
|
let urlVal = '';
|
||||||
const bbscttInnb = popup.querySelector('[name="script_bbscttInnb"]')?.value || "";
|
const bbscttInnb = document.getElementsByName("script_bbscttInnb")[0]?.value || "";
|
||||||
const bbsId = popup.querySelector('[name="bbsId"]')?.value || "";
|
const bbsId = document.getElementsByName("bbsId")[0]?.value || "";
|
||||||
const bbsTyCd = popup.querySelector('[name="bbsTyCd"]')?.value || "";
|
const bbsTyCd = document.getElementsByName("bbsTyCd")[0]?.value || "";
|
||||||
const sopmalCd = popup.querySelector('[name="sopmalCd"]')?.value || "";
|
const sopmalCd = document.getElementsByName("sopmalCd")[0]?.value || "";
|
||||||
const bbsUseAt = popup.querySelector('[name="bbsUseAt"]')?.value || "";
|
const bbsUseAt = document.getElementsByName("bbsUseAt")[0]?.value || "";
|
||||||
const npayBbscttSnb = popup.querySelector('[name="npayBbscttSnb"]')?.value || "";
|
const npayBbscttSnb = document.getElementsByName("npayBbscttSnb")[0]?.value || "";
|
||||||
|
|
||||||
console.log("bbscttInnb:", bbscttInnb);
|
console.log("bbscttInnb:", bbscttInnb);
|
||||||
console.log("bbsId:", bbsId);
|
console.log("bbsId:", bbsId);
|
||||||
console.log("bbsTyCd:", bbsTyCd);
|
console.log("bbsTyCd:", bbsTyCd);
|
||||||
console.log("sopmalCd:", sopmalCd);
|
console.log("sopmalCd:", sopmalCd);
|
||||||
|
|
||||||
if (bbsUseAt === 'Y' && !npayBbscttSnb) {
|
if(bbsUseAt == 'Y' && (npayBbscttSnb === null || npayBbscttSnb === undefined || npayBbscttSnb === '')) {
|
||||||
if (bbsId === 'largeLMS_event') {
|
if (bbsTyCd === '03' || bbsId == 'main_event' || bbsId == 'largeLMS_event') {
|
||||||
urlVal = '/' + sopmalCd + '/extra/bbs/selectSMSEventPage?bbscttInnb=' + bbscttInnb;
|
if (bbsTyCd === '03' || bbsId == 'main_event') {
|
||||||
} else {
|
urlVal = pcDomnAdres + '/sopmal/csc/selectBbscttAuth?authDv=CM&bbsTyCd=03&reqUrl=subPage&bbsId=' + bbsId + '&bbscttInnb=' + bbscttInnb;
|
||||||
urlVal = '/sopmal/csc/selectBbscttAuth?authDv=CM&reqUrl=detail&bbsTyCd='
|
} else {
|
||||||
+ encodeURIComponent(bbsTyCd)
|
urlVal = '/'+sopmalCd+'/extra/bbs/selectSMSEventPage?bbscttInnb=' + bbscttInnb;
|
||||||
+ '&bbsId=' + encodeURIComponent(bbsId)
|
}
|
||||||
+ '&bbscttInnb=' + encodeURIComponent(bbscttInnb);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
console.log(' urlVal 실행됨: ' + urlVal);
|
console.log(' urlVal 실행됨: ' + urlVal);
|
||||||
|
console.log(' pcDomnAdres 실행됨: ' + pcDomnAdres);
|
||||||
|
|
||||||
popup.querySelector('.urlVal').value = urlVal;
|
$('.urlVal').val(urlVal);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -88,18 +88,15 @@
|
|||||||
<input type="hidden" id="bbsId" name="bbsId" value="<c:out value='${bbsInfo.bbsId}' />" />
|
<input type="hidden" id="bbsId" name="bbsId" value="<c:out value='${bbsInfo.bbsId}' />" />
|
||||||
<div class="form-control-container mb-10">
|
<div class="form-control-container mb-10">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<c:if test="${bbscttInfo.useAt eq 'Y' && empty bbscttInfo.npayBbscttSnb}">
|
|
||||||
<div class="input-container inline-block mr-5">
|
|
||||||
<label class="visually-hidden" for="url">사용자 페이지 URL</label>
|
|
||||||
<input type="text" id="url" class="input-text urlVal" readonly style="width: 500px;"/>
|
|
||||||
</div>
|
|
||||||
<button type="button" class="btn xsm primary" onclick="fn_copy_url();">URL 복사</button>
|
|
||||||
</c:if>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="center">
|
<div class="center">
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<c:if test="${bbscttInfo.useAt eq 'Y' && empty bbscttInfo.npayBbscttSnb}">
|
<c:if test="${bbscttInfo.useAt eq 'Y' && empty bbscttInfo.npayBbscttSnb}">
|
||||||
|
<c:if test="${(bbsInfo.bbsTyCd eq '03') || (bbsInfo.bbsId eq 'main_event') || (bbsInfo.bbsId eq 'largeLMS_event')}">
|
||||||
|
<input type="text" id="url" class="urlVal" style="display: none;"/>
|
||||||
|
<button type="button" class="btn xsm primary" onclick="fn_copy_url();">url복사</button>
|
||||||
|
</c:if>
|
||||||
<button type="button" class="btn xsm primary outline" onclick="fn_select_bbsctt_update_pop('<c:out
|
<button type="button" class="btn xsm primary outline" onclick="fn_select_bbsctt_update_pop('<c:out
|
||||||
value="${ bbscttInfo.bbscttInnb }"/>','dtlPop');"><spring:message
|
value="${ bbscttInfo.bbscttInnb }"/>','dtlPop');"><spring:message
|
||||||
code="button.update"/></button>
|
code="button.update"/></button>
|
||||||
@@ -143,7 +140,7 @@
|
|||||||
<c:if test="${bbsInfo.goodsChoice eq 'Y' }">
|
<c:if test="${bbsInfo.goodsChoice eq 'Y' }">
|
||||||
<c:if test="${not empty goodsList}">
|
<c:if test="${not empty goodsList}">
|
||||||
<tr>
|
<tr>
|
||||||
<th>상품 정보</th>
|
<th>상품정보</th>
|
||||||
<td colspan="3">
|
<td colspan="3">
|
||||||
<div class="product-search-box__product parentGoodsContainer">
|
<div class="product-search-box__product parentGoodsContainer">
|
||||||
<c:forEach var="goods" items="${goodsList}">
|
<c:forEach var="goods" items="${goodsList}">
|
||||||
@@ -161,7 +158,7 @@
|
|||||||
<div class="product-group__description">
|
<div class="product-group__description">
|
||||||
<p><c:out value="${goods.goodsNm}"/></p>
|
<p><c:out value="${goods.goodsNm}"/></p>
|
||||||
<p class="product-group__description-price"><fmt:formatNumber
|
<p class="product-group__description-price"><fmt:formatNumber
|
||||||
value="${goods.slepric}" pattern="#,###"/>${curUnit}</p>
|
value="${goods.slepric}" pattern="#,###"/>원</p>
|
||||||
</div>
|
</div>
|
||||||
<c:if test="${bbsInfo.bbsTyCd eq '05'}">
|
<c:if test="${bbsInfo.bbsTyCd eq '05'}">
|
||||||
<input hidden id="goodsInnb" value="${goods.goodsInnb}"/>
|
<input hidden id="goodsInnb" value="${goods.goodsInnb}"/>
|
||||||
@@ -171,14 +168,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<th>상품 정보 문구</th>
|
|
||||||
<td colspan="3">
|
|
||||||
<div class="td-inner" id="relateGoodsWords">
|
|
||||||
${bbscttInfo.relateGoodsWords}
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</c:if>
|
</c:if>
|
||||||
</c:if>
|
</c:if>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -22,7 +22,6 @@
|
|||||||
<%@include file ="/WEB-INF/views/comm/mngr/Include.jsp" %>
|
<%@include file ="/WEB-INF/views/comm/mngr/Include.jsp" %>
|
||||||
<script src="<c:url value='/js/fileupload_comm.js'/>"></script>
|
<script src="<c:url value='/js/fileupload_comm.js'/>"></script>
|
||||||
<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"/>
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
/************************************************
|
/************************************************
|
||||||
@@ -1515,8 +1514,7 @@
|
|||||||
const cdnurl = '${cdnurl}';
|
const cdnurl = '${cdnurl}';
|
||||||
selected.forEach((good, index) => {
|
selected.forEach((good, index) => {
|
||||||
let goodsPrice = fn_format_comma(good.goodsPrice);
|
let goodsPrice = fn_format_comma(good.goodsPrice);
|
||||||
let slepric = fn_format_comma(good.goodsPrice);
|
let slepric = fn_format_comma(good.goodsPrice);
|
||||||
let curUnit = '${curUnit}';
|
|
||||||
var productHtml = `
|
var productHtml = `
|
||||||
<div class="product-group__item">
|
<div class="product-group__item">
|
||||||
<input type="hidden" id="relatedGoodsId" name="relatedGoodsId" value="\${good.goodsId}">
|
<input type="hidden" id="relatedGoodsId" name="relatedGoodsId" value="\${good.goodsId}">
|
||||||
@@ -1530,7 +1528,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<div class="product-group__description">
|
<div class="product-group__description">
|
||||||
<p>\${good.goodsNm}</p>
|
<p>\${good.goodsNm}</p>
|
||||||
<p class="product-group__description-price">\${goodsPrice}\${curUnit}</p>
|
<p class="product-group__description-price">\${goodsPrice}</p>
|
||||||
</div>
|
</div>
|
||||||
<%--게시글 연관 상품--%>
|
<%--게시글 연관 상품--%>
|
||||||
<input type="hidden" name="goodsInnbArr[]" value="\${good.goodsId}"/>
|
<input type="hidden" name="goodsInnbArr[]" value="\${good.goodsId}"/>
|
||||||
|
|||||||
@@ -280,34 +280,26 @@
|
|||||||
</td>
|
</td>
|
||||||
</c:if>
|
</c:if>
|
||||||
</tr>
|
</tr>
|
||||||
<c:if test="${bbsInfo.goodsChoice eq 'Y'}">
|
<tr class="visibleAt">
|
||||||
<tr class="visibleAt">
|
<c:if test="${bbsInfo.goodsChoice eq 'Y'}">
|
||||||
<th>상품 정보
|
<th>상품 정보
|
||||||
<button type="button" class="btn xsm primary ml-5"
|
<button type="button" class="btn xsm primary ml-5"
|
||||||
onclick="fn_open_modal('#modalDiv',
|
onclick="fn_open_modal('#modalDiv',
|
||||||
'#product-search',
|
'#product-search',
|
||||||
'/mngr/goods/goodsmngr/selectGoodsSrchPopupForm',
|
'/mngr/goods/goodsmngr/selectGoodsSrchPopupForm',
|
||||||
{'goodsKndCd':'01'}); return false;">
|
{'goodsKndCd':'01'}); return false;">
|
||||||
검색
|
검색
|
||||||
</button>
|
</button>
|
||||||
</th>
|
</th>
|
||||||
<td colspan="3">
|
<td colspan="3">
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<div class="product-search-box__product parentGoodsContainer">
|
<div class="product-search-box__product parentGoodsContainer">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</c:if>
|
||||||
<tr class="visibleAt">
|
</tr>
|
||||||
<th>상품 정보 문구</th>
|
|
||||||
<td colspan="3">
|
|
||||||
<div class="td-inner">
|
|
||||||
<input class="input-text full" type="text" title="해당 인풋에 대한 설명" placeholder="관련 상품 문구를 입력해 주세요." name="relateGoodsWords" maxlength="50" value="이 글과 관련된 사케">
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</c:if>
|
|
||||||
<c:if test="${not empty qesitmList}">
|
<c:if test="${not empty qesitmList}">
|
||||||
<tr>
|
<tr>
|
||||||
<th>추가 입력 항목</th>
|
<th>추가 입력 항목</th>
|
||||||
|
|||||||
@@ -6,8 +6,6 @@
|
|||||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
||||||
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
|
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
|
||||||
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
|
||||||
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
|
||||||
<%--
|
<%--
|
||||||
Class Name : GnrlBbscttUpdtPopupU.jsp
|
Class Name : GnrlBbscttUpdtPopupU.jsp
|
||||||
Description : 일반 게시글 등록 팝업
|
Description : 일반 게시글 등록 팝업
|
||||||
@@ -17,6 +15,7 @@
|
|||||||
------- -------- ---------------------------
|
------- -------- ---------------------------
|
||||||
2024-01-08 김혜지 최초 생성
|
2024-01-08 김혜지 최초 생성
|
||||||
--%>
|
--%>
|
||||||
|
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||||
<div id="board-list-update" class="modal" style="max-width: 1400px;">
|
<div id="board-list-update" class="modal" style="max-width: 1400px;">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4>게시글 수정</h4>
|
<h4>게시글 수정</h4>
|
||||||
@@ -475,26 +474,26 @@
|
|||||||
</td>
|
</td>
|
||||||
</c:if>
|
</c:if>
|
||||||
</tr>
|
</tr>
|
||||||
<c:if test = "${bbsInfo.goodsChoice eq 'Y'}">
|
<tr class ="visibleAt">
|
||||||
<tr class ="visibleAt">
|
<c:if test = "${bbsInfo.goodsChoice eq 'Y'}">
|
||||||
<th>상품 정보
|
<th>상품 정보
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test = "${not empty goods}">
|
<c:when test = "${not empty goods}">
|
||||||
<button type="button" class="btn xsm primary ml-5"
|
<button type="button" class="btn xsm primary ml-5"
|
||||||
onclick="fn_open_search_modal('#modalDiv','#product-search','/mngr/goods/goodsmngr/selectGoodsSrchPopupForm',{'goodsKndCd':'01'}); return false;">
|
onclick="fn_open_search_modal('#modalDiv','#product-search','/mngr/goods/goodsmngr/selectGoodsSrchPopupForm',{'goodsKndCd':'01'}); return false;">
|
||||||
검색
|
검색
|
||||||
</button>
|
</button>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<button type="button" class="btn xsm primary ml-5"
|
<button type="button" class="btn xsm primary ml-5"
|
||||||
onclick="selected = []; fn_open_modal('#modalDiv','#product-search','/mngr/goods/goodsmngr/selectGoodsSrchPopupForm',{'goodsKndCd':'01'}); return false;">
|
onclick="fn_open_modal('#modalDiv','#product-search','/mngr/goods/goodsmngr/selectGoodsSrchPopupForm',{'goodsKndCd':'01'}); return false;">
|
||||||
검색
|
검색
|
||||||
</button>
|
</button>
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</th>
|
</th>
|
||||||
<td colspan="3">
|
<td colspan="3">
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<div class="product-search-box__product parentGoodsContainer">
|
<div class="product-search-box__product parentGoodsContainer">
|
||||||
<c:if test = "${not empty goods}">
|
<c:if test = "${not empty goods}">
|
||||||
<c:forEach var = "goods" items = "${goods}">
|
<c:forEach var = "goods" items = "${goods}">
|
||||||
@@ -511,7 +510,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<div class="product-group__description">
|
<div class="product-group__description">
|
||||||
<p><c:out value="${goods.goodsNm}"/></p>
|
<p><c:out value="${goods.goodsNm}"/></p>
|
||||||
<p class="product-group__description-price"><fmt:formatNumber value="${goods.slepric}" pattern="#,###"/>${curUnit}</p>
|
<p class="product-group__description-price"><fmt:formatNumber value="${goods.slepric}" pattern="#,###"/>원</p>
|
||||||
</div>
|
</div>
|
||||||
<%--게시글 연관 상품--%>
|
<%--게시글 연관 상품--%>
|
||||||
<input type="hidden" name="goodsInnbArr[]" value="${goods.goodsInnb}"/>
|
<input type="hidden" name="goodsInnbArr[]" value="${goods.goodsInnb}"/>
|
||||||
@@ -519,18 +518,10 @@
|
|||||||
</c:forEach>
|
</c:forEach>
|
||||||
</c:if>
|
</c:if>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</c:if>
|
||||||
<tr class="visibleAt">
|
</tr>
|
||||||
<th>상품 정보 문구</th>
|
|
||||||
<td colspan="3">
|
|
||||||
<div class="td-inner">
|
|
||||||
<input class="input-text full" type="text" title="해당 인풋에 대한 설명" placeholder="관련 상품 문구를 입력해 주세요." name="relateGoodsWords" maxlength="50" value = "${bbscttInfo.relateGoodsWords}">
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</c:if>
|
|
||||||
<c:if test="${not empty qesitmList}">
|
<c:if test="${not empty qesitmList}">
|
||||||
<tr>
|
<tr>
|
||||||
<th>추가 입력 항목</th>
|
<th>추가 입력 항목</th>
|
||||||
|
|||||||
@@ -569,8 +569,6 @@
|
|||||||
* 등록 AJAX
|
* 등록 AJAX
|
||||||
******************************************************** */
|
******************************************************** */
|
||||||
const fn_regist = function () {
|
const fn_regist = function () {
|
||||||
trimInputValue();
|
|
||||||
|
|
||||||
const url = '<c:url value="/mngr/goods/goodsmngr/insertGoodsInfo"/>';
|
const url = '<c:url value="/mngr/goods/goodsmngr/insertGoodsInfo"/>';
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
|
|
||||||
@@ -1272,6 +1270,7 @@
|
|||||||
formData.append('files', file); // 서버에서 파일을 받을 때 'files'라는 이름으로 전송
|
formData.append('files', file); // 서버에서 파일을 받을 때 'files'라는 이름으로 전송
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
if (confirm('상품을 <spring:message code="confirm.common.insert"/>')) {
|
if (confirm('상품을 <spring:message code="confirm.common.insert"/>')) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'post',
|
type: 'post',
|
||||||
@@ -1418,7 +1417,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="optionApply__inputList">
|
<div class="optionApply__inputList">
|
||||||
<div class="optionApply__inputContainer">
|
<div class="optionApply__inputContainer">
|
||||||
<input class="input-text full input-trim"
|
<input class="input-text full"
|
||||||
type="text" name="optnNm1_normal" id="optnNm1_normal`+rowCount+`"
|
type="text" name="optnNm1_normal" id="optnNm1_normal`+rowCount+`"
|
||||||
title="일반옵션명">
|
title="일반옵션명">
|
||||||
<!-- <button type="button" class="btn outline xsm optionDel01">삭제</button>-->
|
<!-- <button type="button" class="btn outline xsm optionDel01">삭제</button>-->
|
||||||
@@ -1451,11 +1450,11 @@
|
|||||||
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
||||||
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
||||||
</div>
|
</div>
|
||||||
<input class="input-text full input-trim" type="text" title="일반옵션 값" id="optnVal1" name="optnVal1_normal">
|
<input class="input-text full" type="text" title="일반옵션 값" id="optnVal1" name="optnVal1_normal">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td><div class="optionApply__priceContainer"><input class="input-text full input-trim" type="text" title="일반옵션코드" name="optnCd1_normal"></td></div>
|
<td><div class="optionApply__priceContainer"><input class="input-text full" type="text" title="일반옵션코드" name="optnCd1_normal"></td></div>
|
||||||
`
|
`
|
||||||
+invntry_policy_qy+
|
+invntry_policy_qy+
|
||||||
`
|
`
|
||||||
@@ -1558,11 +1557,11 @@
|
|||||||
`
|
`
|
||||||
+firstAdd+
|
+firstAdd+
|
||||||
`
|
`
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값1" name="optnVal1_invntry" /></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값1" name="optnVal1_invntry" /></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값2" name="optnVal2_invntry"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값2" name="optnVal2_invntry"/></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값3" name="optnVal3_invntry"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값3" name="optnVal3_invntry"/></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값4" name="optnVal4_invntry"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값4" name="optnVal4_invntry"/></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 코드" name="optnCd1_invntry"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 코드" name="optnCd1_invntry"/></td>
|
||||||
`
|
`
|
||||||
+invntry_policy_qy+
|
+invntry_policy_qy+
|
||||||
`
|
`
|
||||||
@@ -1600,7 +1599,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 정보" name="optnInfo_invntry"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 정보" name="optnInfo_invntry"/></td>
|
||||||
<td>
|
<td>
|
||||||
<div class="compnbDscntAt_invntry">
|
<div class="compnbDscntAt_invntry">
|
||||||
<label class="b-checkbox checkbox" for="compnbDscntAt02_`+rowCount+`">
|
<label class="b-checkbox checkbox" for="compnbDscntAt02_`+rowCount+`">
|
||||||
@@ -2533,14 +2532,14 @@
|
|||||||
<th>상품명<span class="red-7">*</span></th>
|
<th>상품명<span class="red-7">*</span></th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="상품명" id="goodsNm" name="goodsNm" maxlength="35" placeholder="상품명을 입력해 주세요.">
|
<input class="input-text full" type="text" title="상품명" id="goodsNm" name="goodsNm" maxlength="35" placeholder="상품명을 입력해 주세요.">
|
||||||
<input type="hidden" id="sopmalCd" name="sopmalCd" value="${resultMap.BOGoodsVO.sopmalCd}"/>
|
<input type="hidden" id="sopmalCd" name="sopmalCd" value="${resultMap.BOGoodsVO.sopmalCd}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<th>상품명(영문)<span class="red-7">*</span></th>
|
<th>상품명(영문)<span class="red-7">*</span></th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="상품명(영문)" id="goodsNmEn" name="goodsNmEn" maxlength="35" placeholder="상품명을 입력해 주세요.">
|
<input class="input-text full" type="text" title="상품명(영문)" id="goodsNmEn" name="goodsNmEn" maxlength="35" placeholder="상품명을 입력해 주세요.">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -2548,13 +2547,13 @@
|
|||||||
<th>대표설명</th>
|
<th>대표설명</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="대표설명" id="reprsntDc" name="reprsntDc" placeholder="상품 대표설명을 입력해 주세요.">
|
<input class="input-text full" type="text" title="대표설명" id="reprsntDc" name="reprsntDc" placeholder="상품 대표설명을 입력해 주세요.">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<th>간략설명</th>
|
<th>간략설명</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="간략설명" id="srtDc" name="srtDc" placeholder="간략한 상품 설명을 입력해 주세요.">
|
<input class="input-text full" type="text" title="간략설명" id="srtDc" name="srtDc" placeholder="간략한 상품 설명을 입력해 주세요.">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -2562,7 +2561,7 @@
|
|||||||
<th>검색어</th>
|
<th>검색어</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="검색어" id="kwrd" name="kwrd" placeholder="검색어는 ,(콤마)로 구분됩니다.">
|
<input class="input-text full" type="text" title="검색어" id="kwrd" name="kwrd" placeholder="검색어는 ,(콤마)로 구분됩니다.">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<th>브랜드</th>
|
<th>브랜드</th>
|
||||||
@@ -2585,7 +2584,7 @@
|
|||||||
<th>리뷰 연동</th>
|
<th>리뷰 연동</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="리뷰 연동" id="rvwGroupNb" name="rvwGroupNb" placeholder="상품 번호를 입력해주세요.">
|
<input class="input-text full" type="text" title="리뷰 연동" id="rvwGroupNb" name="rvwGroupNb" placeholder="상품 번호를 입력해주세요.">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<th>리뷰 작성 가능 여부</th>
|
<th>리뷰 작성 가능 여부</th>
|
||||||
@@ -2725,7 +2724,7 @@
|
|||||||
<span class="control-label">사용자페이지 판매중지 문구 변경 -> </span>
|
<span class="control-label">사용자페이지 판매중지 문구 변경 -> </span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<label for="selStpgeCustomWords"></label><input type="text" class="input-text input-trim" id="selStpgeCustomWords" name="selStpgeCustomWords" value="${resultMap.goodsDtl.selStpgeCustomWords}"
|
<label for="selStpgeCustomWords"></label><input type="text" class="input-text" id="selStpgeCustomWords" name="selStpgeCustomWords" value="${resultMap.goodsDtl.selStpgeCustomWords}"
|
||||||
<c:if test="${resultMap.goodsDtl.selStpgeCustomWordsAt ne 'Y'}"> disabled </c:if>
|
<c:if test="${resultMap.goodsDtl.selStpgeCustomWordsAt ne 'Y'}"> disabled </c:if>
|
||||||
/>
|
/>
|
||||||
<span class="parentheses">) </span>
|
<span class="parentheses">) </span>
|
||||||
@@ -2761,7 +2760,7 @@
|
|||||||
<th>예약 상품 안내문구</th>
|
<th>예약 상품 안내문구</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text xl input-trim" type="text"
|
<input class="input-text xl" type="text"
|
||||||
id="resveGoodsGuidanceWordsCn" name="resveGoodsGuidanceWordsCn"
|
id="resveGoodsGuidanceWordsCn" name="resveGoodsGuidanceWordsCn"
|
||||||
title="예약 상품 안내문구">
|
title="예약 상품 안내문구">
|
||||||
</div>
|
</div>
|
||||||
@@ -2815,7 +2814,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>노출 문구</th>
|
<th>노출 문구</th>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text xl input-trim" type="text" title="노출 문구" id="expsrSetupFwords" name="expsrSetupFwords" disabled>
|
<input class="input-text xl" type="text" title="노출 문구" id="expsrSetupFwords" name="expsrSetupFwords" disabled>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@@ -2892,7 +2891,7 @@
|
|||||||
<span class="ml-4">개의 수량을</span>
|
<span class="ml-4">개의 수량을</span>
|
||||||
<input type="text" id="rltmQyDdctStdrDt" class="datepicker" title="이벤트가판매 가수량차감기준일시 설정" autocomplete="off" disabled >
|
<input type="text" id="rltmQyDdctStdrDt" class="datepicker" title="이벤트가판매 가수량차감기준일시 설정" autocomplete="off" disabled >
|
||||||
<span class="ml-4">부터</span>
|
<span class="ml-4">부터</span>
|
||||||
<input type="text" class="input-text sm right number" title="이벤트가판매 가수량차감시간 설정" value="0" id="rltmQyDdctTme" disabled>
|
<input type="text" class="input-text sm right" title="이벤트가판매 가수량차감시간 설정" value="0" id="rltmQyDdctTme" disabled>
|
||||||
<span class="ml-4">분마다</span>
|
<span class="ml-4">분마다</span>
|
||||||
<input class="input-text sm right number" id="rltmDdctQy" value="0" type="text" title="이벤트가판매 가수량차감수량 설정" disabled>
|
<input class="input-text sm right number" id="rltmDdctQy" value="0" type="text" title="이벤트가판매 가수량차감수량 설정" disabled>
|
||||||
<span class="ml-4">개씩 차감</span>
|
<span class="ml-4">개씩 차감</span>
|
||||||
@@ -3081,7 +3080,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="optionApply__inputList">
|
<div class="optionApply__inputList">
|
||||||
<div class="optionApply__inputContainer">
|
<div class="optionApply__inputContainer">
|
||||||
<input class="input-text full input-trim" type="text" name="optnNm1_normal" title="옵션명" id="optnNm1_normal0">
|
<input class="input-text full" type="text" name="optnNm1_normal" title="옵션명" id="optnNm1_normal0">
|
||||||
<%-- <button type="button" class="btn outline xsm optionDel01">삭제</button>--%>
|
<%-- <button type="button" class="btn outline xsm optionDel01">삭제</button>--%>
|
||||||
<button type="button" class="btn outline xsm optionVal98" >옵션값 추가</button>
|
<button type="button" class="btn outline xsm optionVal98" >옵션값 추가</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -3112,18 +3111,18 @@
|
|||||||
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
||||||
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
||||||
</div>
|
</div>
|
||||||
<input class="input-text full input-trim" type="text" id="optnVal1" name="optnVal1_normal" title="옵션값">
|
<input class="input-text full" type="text" id="optnVal1" name="optnVal1_normal" title="옵션값">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="optionApply__priceContainer">
|
<div class="optionApply__priceContainer">
|
||||||
<input class="input-text full input-trim" type="text" title="상품코드" name="optnCd1_normal">
|
<input class="input-text full" type="text" title="상품코드" name="optnCd1_normal">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="optionApply__priceContainer">
|
<div class="optionApply__priceContainer">
|
||||||
<input class="input-text full input-trim" type="text" value="220600" title="HS Code" name="hscode_normal" maxlength="10">
|
<input class="input-text full" type="text" value="220600" title="HS Code" name="hscode_normal" maxlength="10">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -3281,16 +3280,16 @@
|
|||||||
<td>
|
<td>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name ="optnNm1_invntry" type="text" title="재고옵션명1" placeholder="옵션명1">
|
<input class="input-text full" name ="optnNm1_invntry" type="text" title="재고옵션명1" placeholder="옵션명1">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name ="optnNm2_invntry" type="text" title="재고옵선명2" placeholder="옵션명2">
|
<input class="input-text full" name ="optnNm2_invntry" type="text" title="재고옵선명2" placeholder="옵션명2">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name="optnNm3_invntry" type="text" title="재고옵션명3" placeholder="옵션명3">
|
<input class="input-text full" name="optnNm3_invntry" type="text" title="재고옵션명3" placeholder="옵션명3">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name="optnNm4_invntry" type="text" title="재고옵션명4" placeholder="옵션명4">
|
<input class="input-text full" name="optnNm4_invntry" type="text" title="재고옵션명4" placeholder="옵션명4">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
|
||||||
@@ -3805,7 +3804,7 @@
|
|||||||
<th>배송 안내 문구</th>
|
<th>배송 안내 문구</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" id="dlvyGuidanceWordsCn" name="dlvyGuidanceWordsCn" title="배송안내문구">
|
<input class="input-text full" type="text" id="dlvyGuidanceWordsCn" name="dlvyGuidanceWordsCn" title="배송안내문구">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -4015,7 +4014,7 @@
|
|||||||
//옵션명
|
//옵션명
|
||||||
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__inputList').append(`
|
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__inputList').append(`
|
||||||
<div class="optionApply__inputContainer" style="margin: 0">
|
<div class="optionApply__inputContainer" style="margin: 0">
|
||||||
<input class="input-text full input-trim `+optnNm.attr('id')+`" type="hidden" value="`+optnNmVal+`" title="일반옵션명" name="optnNm1_normal">
|
<input class="input-text full `+optnNm.attr('id')+`" type="hidden" value="`+optnNmVal+`" title="일반옵션명" name="optnNm1_normal">
|
||||||
</div>
|
</div>
|
||||||
`);
|
`);
|
||||||
//노출여부
|
//노출여부
|
||||||
@@ -4039,14 +4038,14 @@
|
|||||||
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
||||||
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
||||||
</div>
|
</div>
|
||||||
<input class="input-text full input-trim" value="" type="text" title="일반옵션값" name="optnVal1_normal">
|
<input class="input-text full" value="" type="text" title="일반옵션값" name="optnVal1_normal">
|
||||||
</div>
|
</div>
|
||||||
`);
|
`);
|
||||||
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
||||||
<input class="input-text full input-trim" type="text" title="일반옵션코드" name="optnCd1_normal">
|
<input class="input-text full" type="text" title="일반옵션코드" name="optnCd1_normal">
|
||||||
`);
|
`);
|
||||||
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
||||||
<input class="input-text full input-trim" value="220600" type="text" title="HS Code" name="hscode_normal" maxlength="10">
|
<input class="input-text full" value="220600" type="text" title="HS Code" name="hscode_normal" maxlength="10">
|
||||||
`);
|
`);
|
||||||
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
||||||
<input class="input-text full" value="0.0" type="text" title="실무게(KG)" name="realWt_normal">
|
<input class="input-text full" value="0.0" type="text" title="실무게(KG)" name="realWt_normal">
|
||||||
|
|||||||
@@ -621,7 +621,6 @@
|
|||||||
* 복사 등록 AJAX
|
* 복사 등록 AJAX
|
||||||
******************************************************** */
|
******************************************************** */
|
||||||
const fn_copy_regist = function () {
|
const fn_copy_regist = function () {
|
||||||
trimInputValue();
|
|
||||||
|
|
||||||
const url = '<c:url value="/mngr/goods/goodsmngr/insertGoodsInfo"/>';
|
const url = '<c:url value="/mngr/goods/goodsmngr/insertGoodsInfo"/>';
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
@@ -1455,7 +1454,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="optionApply__inputList">
|
<div class="optionApply__inputList">
|
||||||
<div class="optionApply__inputContainer">
|
<div class="optionApply__inputContainer">
|
||||||
<input class="input-text full input-trim"
|
<input class="input-text full"
|
||||||
type="text" name="optnNm1_normal" id="optnNm1_normal`+rowCount+`"
|
type="text" name="optnNm1_normal" id="optnNm1_normal`+rowCount+`"
|
||||||
title="해당 인풋에 대한 설명">
|
title="해당 인풋에 대한 설명">
|
||||||
<button type="button" class="btn outline xsm optionDel01">삭제</button>
|
<button type="button" class="btn outline xsm optionDel01">삭제</button>
|
||||||
@@ -1488,11 +1487,11 @@
|
|||||||
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
||||||
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
||||||
</div>
|
</div>
|
||||||
<input class="input-text full input-trim" type="text" title="일반옵션 값" id="optnVal1_normal`+rowCount+`" name="optnVal1_normal">
|
<input class="input-text full" type="text" title="일반옵션 값" id="optnVal1_normal`+rowCount+`" name="optnVal1_normal">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td><div class="optionApply__priceContainer"><input class="input-text full input-trim" type="text" title="일반옵션코드" name="optnCd1_normal"></td></div>
|
<td><div class="optionApply__priceContainer"><input class="input-text full" type="text" title="일반옵션코드" name="optnCd1_normal"></td></div>
|
||||||
`
|
`
|
||||||
+invntry_policy_qy+
|
+invntry_policy_qy+
|
||||||
`
|
`
|
||||||
@@ -1596,11 +1595,11 @@
|
|||||||
`
|
`
|
||||||
+firstAdd+
|
+firstAdd+
|
||||||
`
|
`
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값1" name="optnVal1_invntry" /></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값1" name="optnVal1_invntry" /></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값2" name="optnVal2_invntry"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값2" name="optnVal2_invntry"/></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값3" name="optnVal3_invntry"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값3" name="optnVal3_invntry"/></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값4" name="optnVal4_invntry"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값4" name="optnVal4_invntry"/></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 코드" name="optnCd1_invntry"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 코드" name="optnCd1_invntry"/></td>
|
||||||
`
|
`
|
||||||
+invntry_policy_qy+
|
+invntry_policy_qy+
|
||||||
`
|
`
|
||||||
@@ -1638,7 +1637,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 정보" name="optnInfo_invntry"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 정보" name="optnInfo_invntry"/></td>
|
||||||
<td>
|
<td>
|
||||||
<div class="compnbDscntAt_invntry">
|
<div class="compnbDscntAt_invntry">
|
||||||
<label class="b-checkbox checkbox" for="compnbDscntAt02_`+rowCount+`">
|
<label class="b-checkbox checkbox" for="compnbDscntAt02_`+rowCount+`">
|
||||||
@@ -2679,14 +2678,14 @@
|
|||||||
<th>상품명<span class="red-7">*</span></th>
|
<th>상품명<span class="red-7">*</span></th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="상품명" id="goodsNm" name="goodsNm" maxlength="35" value="${resultMap.goodsDtl.goodsNm}">
|
<input class="input-text full" type="text" title="상품명" id="goodsNm" name="goodsNm" maxlength="35" value="${resultMap.goodsDtl.goodsNm}">
|
||||||
<input type="hidden" id="sopmalCd" name="sopmalCd" value="${resultMap.BOGoodsVO.sopmalCd}"/>
|
<input type="hidden" id="sopmalCd" name="sopmalCd" value="${resultMap.BOGoodsVO.sopmalCd}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<th>상품명(영문)<span class="red-7">*</span></th>
|
<th>상품명(영문)<span class="red-7">*</span></th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="상품명(영문)" id="goodsNmEn" name="goodsNmEn" maxlength="35" value="${resultMap.goodsDtl.goodsNmEn}">
|
<input class="input-text full" type="text" title="상품명(영문)" id="goodsNmEn" name="goodsNmEn" maxlength="35" value="${resultMap.goodsDtl.goodsNmEn}">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -2694,13 +2693,13 @@
|
|||||||
<th>대표설명</th>
|
<th>대표설명</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="대표설명" id="reprsntDc" name="reprsntDc" value="${resultMap.goodsDtl.reprsntDc}" >
|
<input class="input-text full" type="text" title="대표설명" id="reprsntDc" name="reprsntDc" value="${resultMap.goodsDtl.reprsntDc}" >
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<th>간략설명</th>
|
<th>간략설명</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="간략설명" id="srtDc" name="srtDc" value="${resultMap.goodsDtl.srtDc}">
|
<input class="input-text full" type="text" title="간략설명" id="srtDc" name="srtDc" value="${resultMap.goodsDtl.srtDc}">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -2708,7 +2707,7 @@
|
|||||||
<th>검색어</th>
|
<th>검색어</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="검색어" id="kwrd" name="kwrd" value="${resultMap.goodsDtl.kwrd}">
|
<input class="input-text full" type="text" title="검색어" id="kwrd" name="kwrd" value="${resultMap.goodsDtl.kwrd}">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<th>브랜드</th>
|
<th>브랜드</th>
|
||||||
@@ -2732,7 +2731,7 @@
|
|||||||
<th>리뷰 연동</th>
|
<th>리뷰 연동</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="리뷰 연동" id="rvwGroupNb" name="rvwGroupNb" value="${resultMap.goodsDtl.rvwGroupNb}">
|
<input class="input-text full" type="text" title="리뷰 연동" id="rvwGroupNb" name="rvwGroupNb" value="${resultMap.goodsDtl.rvwGroupNb}">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<th>리뷰 작성 가능 여부</th>
|
<th>리뷰 작성 가능 여부</th>
|
||||||
@@ -2899,7 +2898,7 @@
|
|||||||
<span class="control-label">사용자페이지 판매중지 문구 변경 -> </span>
|
<span class="control-label">사용자페이지 판매중지 문구 변경 -> </span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<label for="selStpgeCustomWords"></label><input type="text" class="input-text input-trim" id="selStpgeCustomWords" name="selStpgeCustomWords" value="${resultMap.goodsDtl.selStpgeCustomWords}"
|
<label for="selStpgeCustomWords"></label><input type="text" class="input-text" id="selStpgeCustomWords" name="selStpgeCustomWords" value="${resultMap.goodsDtl.selStpgeCustomWords}"
|
||||||
<c:if test="${resultMap.goodsDtl.selStpgeCustomWordsAt ne 'Y'}"> disabled </c:if>
|
<c:if test="${resultMap.goodsDtl.selStpgeCustomWordsAt ne 'Y'}"> disabled </c:if>
|
||||||
/>
|
/>
|
||||||
<span class="parentheses">) </span>
|
<span class="parentheses">) </span>
|
||||||
@@ -2936,7 +2935,7 @@
|
|||||||
<th>예약 상품 안내문구</th>
|
<th>예약 상품 안내문구</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text xl input-trim" type="text"
|
<input class="input-text xl" type="text"
|
||||||
id="resveGoodsGuidanceWordsCn"
|
id="resveGoodsGuidanceWordsCn"
|
||||||
name="resveGoodsGuidanceWordsCn"
|
name="resveGoodsGuidanceWordsCn"
|
||||||
value="${resultMap.goodsDtl.resveGoodsGuidanceWordsCn}"
|
value="${resultMap.goodsDtl.resveGoodsGuidanceWordsCn}"
|
||||||
@@ -3002,7 +3001,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>노출 문구</th>
|
<th>노출 문구</th>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text xl input-trim" type="text"
|
<input class="input-text xl" type="text"
|
||||||
title="노출 문구" id="expsrSetupFwords"
|
title="노출 문구" id="expsrSetupFwords"
|
||||||
name="expsrSetupFwords"
|
name="expsrSetupFwords"
|
||||||
<c:choose>
|
<c:choose>
|
||||||
@@ -3093,7 +3092,7 @@
|
|||||||
<span class="ml-4">개의 수량을</span>
|
<span class="ml-4">개의 수량을</span>
|
||||||
<input type="text" id="rltmQyDdctStdrDt" value="${fn:split(resultMap.goodsDtl.rltmQyDdctStdrDt,'T')[0]}" class="datepicker" title="이벤트가판매 가수량차감기준일시 설정" autocomplete="off" <c:if test="${resultMap.goodsDtl.rltmQyBannerDvCd ne '03'}">disabled</c:if> >
|
<input type="text" id="rltmQyDdctStdrDt" value="${fn:split(resultMap.goodsDtl.rltmQyDdctStdrDt,'T')[0]}" class="datepicker" title="이벤트가판매 가수량차감기준일시 설정" autocomplete="off" <c:if test="${resultMap.goodsDtl.rltmQyBannerDvCd ne '03'}">disabled</c:if> >
|
||||||
<span class="ml-4">부터</span>
|
<span class="ml-4">부터</span>
|
||||||
<input type="text" class="input-text sm right number" title="이벤트가판매 가수량차감시간 설정" value="${resultMap.goodsDtl.rltmQyDdctTme}" id="rltmQyDdctTme" <c:if test="${resultMap.goodsDtl.rltmQyBannerDvCd ne '03'}">disabled</c:if> >
|
<input type="text" class="input-text sm right" title="이벤트가판매 가수량차감시간 설정" value="${resultMap.goodsDtl.rltmQyDdctTme}" id="rltmQyDdctTme" <c:if test="${resultMap.goodsDtl.rltmQyBannerDvCd ne '03'}">disabled</c:if> >
|
||||||
<span class="ml-4">분마다</span>
|
<span class="ml-4">분마다</span>
|
||||||
<input class="input-text sm right number" id="rltmDdctQy" value="${resultMap.goodsDtl.rltmDdctQy}" type="text" title="이벤트가판매 가수량차감수량 설정" <c:if test="${resultMap.goodsDtl.rltmQyBannerDvCd ne '03'}">disabled</c:if> >
|
<input class="input-text sm right number" id="rltmDdctQy" value="${resultMap.goodsDtl.rltmDdctQy}" type="text" title="이벤트가판매 가수량차감수량 설정" <c:if test="${resultMap.goodsDtl.rltmQyBannerDvCd ne '03'}">disabled</c:if> >
|
||||||
<span class="ml-4">개씩 차감</span>
|
<span class="ml-4">개씩 차감</span>
|
||||||
@@ -3314,7 +3313,7 @@
|
|||||||
<div class="optionApply__inputContainer">
|
<div class="optionApply__inputContainer">
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${optnNm01_status.index eq '0'}">
|
<c:when test="${optnNm01_status.index eq '0'}">
|
||||||
<input class="input-text full input-trim" value="${optnNm011}" type="text" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnNm01_status.index}">
|
<input class="input-text full" value="${optnNm011}" type="text" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnNm01_status.index}">
|
||||||
<%-- <button type="button" class="btn outline xsm optionDel02">삭제</button>--%>
|
<%-- <button type="button" class="btn outline xsm optionDel02">삭제</button>--%>
|
||||||
<button type="button" class="btn outline xsm optionVal98">옵션값 추가</button>
|
<button type="button" class="btn outline xsm optionVal98">옵션값 추가</button>
|
||||||
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
||||||
@@ -3324,7 +3323,7 @@
|
|||||||
</c:forEach>
|
</c:forEach>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<input class="input-text full input-trim" value="${optnNm011}" type="hidden" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnTy01idx.index}${optnNm01_status.index}">
|
<input class="input-text full" value="${optnNm011}" type="hidden" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnTy01idx.index}${optnNm01_status.index}">
|
||||||
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
||||||
<c:if test="${goodsOptnInnb01_status.index ne '0' and optnNm01_status.index eq goodsOptnInnb01_status.index }">
|
<c:if test="${goodsOptnInnb01_status.index ne '0' and optnNm01_status.index eq goodsOptnInnb01_status.index }">
|
||||||
<input type="hidden" name="goodsOptnInnb_normal" value="${goodsOptnInnb01}"/>
|
<input type="hidden" name="goodsOptnInnb_normal" value="${goodsOptnInnb01}"/>
|
||||||
@@ -3338,7 +3337,7 @@
|
|||||||
<div class="optionApply__inputContainer">
|
<div class="optionApply__inputContainer">
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${optnNm01_status.index eq '0'}">
|
<c:when test="${optnNm01_status.index eq '0'}">
|
||||||
<input class="input-text full input-trim" value="${optnNm011}" type="text" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnTy01idx.index}${optnNm01_status.index}">
|
<input class="input-text full" value="${optnNm011}" type="text" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnTy01idx.index}${optnNm01_status.index}">
|
||||||
<button type="button" class="btn outline xsm optionDel02">삭제</button>
|
<button type="button" class="btn outline xsm optionDel02">삭제</button>
|
||||||
<button type="button" class="btn outline xsm optionVal98">옵션값 추가</button>
|
<button type="button" class="btn outline xsm optionVal98">옵션값 추가</button>
|
||||||
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
||||||
@@ -3348,7 +3347,7 @@
|
|||||||
</c:forEach>
|
</c:forEach>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<input class="input-text full input-trim" value="${optnNm011}" type="hidden" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnTy01idx.index}${optnNm01_status.index}">
|
<input class="input-text full" value="${optnNm011}" type="hidden" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnTy01idx.index}${optnNm01_status.index}">
|
||||||
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
||||||
<c:if test="${goodsOptnInnb01_status.index ne '0' and optnNm01_status.index eq goodsOptnInnb01_status.index }">
|
<c:if test="${goodsOptnInnb01_status.index ne '0' and optnNm01_status.index eq goodsOptnInnb01_status.index }">
|
||||||
<input type="hidden" name="goodsOptnInnb_normal" value="${goodsOptnInnb01}"/>
|
<input type="hidden" name="goodsOptnInnb_normal" value="${goodsOptnInnb01}"/>
|
||||||
@@ -3391,7 +3390,7 @@
|
|||||||
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
||||||
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
||||||
</div>
|
</div>
|
||||||
<input class="input-text full input-trim" type="text" id="optnVal1_normal${optnTy01idx.index}${optnVal011_status.index}" name="optnVal1_normal" title="옵션값" value="${optnVal011}">
|
<input class="input-text full" type="text" id="optnVal1_normal${optnTy01idx.index}${optnVal011_status.index}" name="optnVal1_normal" title="옵션값" value="${optnVal011}">
|
||||||
</div>
|
</div>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</div>
|
</div>
|
||||||
@@ -3399,14 +3398,14 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="optionApply__priceContainer">
|
<div class="optionApply__priceContainer">
|
||||||
<c:forEach var="optnCd011" items="${fn:split(optnList01.optnCd1, '|')}">
|
<c:forEach var="optnCd011" items="${fn:split(optnList01.optnCd1, '|')}">
|
||||||
<input class="input-text full input-trim" type="text" title="상품코드" name="optnCd1_normal" value="${optnCd011}" >
|
<input class="input-text full" type="text" title="상품코드" name="optnCd1_normal" value="${optnCd011}" >
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="optionApply__priceContainer">
|
<div class="optionApply__priceContainer">
|
||||||
<c:forEach var="hscode011" items="${fn:split(optnList01.hscode, '|')}">
|
<c:forEach var="hscode011" items="${fn:split(optnList01.hscode, '|')}">
|
||||||
<input class="input-text full input-trim" type="text" title="HS Code" name="hscode_normal" value="${hscode011}" maxlength="10" >
|
<input class="input-text full" type="text" title="HS Code" name="hscode_normal" value="${hscode011}" maxlength="10" >
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
@@ -3537,7 +3536,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="optionApply__inputList">
|
<div class="optionApply__inputList">
|
||||||
<div class="optionApply__inputContainer">
|
<div class="optionApply__inputContainer">
|
||||||
<input class="input-text full input-trim" type="text" name="optnNm1_normal" title="옵션명" id="optnNm1_normal0" value="">
|
<input class="input-text full" type="text" name="optnNm1_normal" title="옵션명" id="optnNm1_normal0" value="">
|
||||||
<button type="button" class="btn outline xsm optionDel01">삭제</button>
|
<button type="button" class="btn outline xsm optionDel01">삭제</button>
|
||||||
<button type="button" class="btn outline xsm optionVal98" >옵션값 추가</button>
|
<button type="button" class="btn outline xsm optionVal98" >옵션값 추가</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -3567,19 +3566,19 @@
|
|||||||
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
||||||
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
||||||
</div>
|
</div>
|
||||||
<input class="input-text full input-trim" type="text" id="optnVal1_normal0" name="optnVal1_normal" title="옵션값" value="">
|
<input class="input-text full" type="text" id="optnVal1_normal0" name="optnVal1_normal" title="옵션값" value="">
|
||||||
<input type="hidden" name="goodsOptnInnb_normal" value=""/>
|
<input type="hidden" name="goodsOptnInnb_normal" value=""/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="optionApply__priceContainer">
|
<div class="optionApply__priceContainer">
|
||||||
<input class="input-text full input-trim" type="text" title="상품코드" name="optnCd1_normal" value="" >
|
<input class="input-text full" type="text" title="상품코드" name="optnCd1_normal" value="" >
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="optionApply__priceContainer">
|
<div class="optionApply__priceContainer">
|
||||||
<input class="input-text full input-trim" type="text" title="HS Code" name="hscode_normal" value="" maxlength="10">
|
<input class="input-text full" type="text" title="HS Code" name="hscode_normal" value="" maxlength="10">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -3724,16 +3723,16 @@
|
|||||||
<td>
|
<td>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name ="optnNm1_invntry" type="text" title="재고옵션명1" value="${optnList02.optnNm1}">
|
<input class="input-text full" name ="optnNm1_invntry" type="text" title="재고옵션명1" value="${optnList02.optnNm1}">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name ="optnNm2_invntry" type="text" title="재고옵선명2" value="${optnList02.optnNm2}">
|
<input class="input-text full" name ="optnNm2_invntry" type="text" title="재고옵선명2" value="${optnList02.optnNm2}">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name="optnNm3_invntry" type="text" title="재고옵션명3" value="${optnList02.optnNm3}">
|
<input class="input-text full" name="optnNm3_invntry" type="text" title="재고옵션명3" value="${optnList02.optnNm3}">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name="optnNm4_invntry" type="text" title="재고옵션명4" value="${optnList02.optnNm4}">
|
<input class="input-text full" name="optnNm4_invntry" type="text" title="재고옵션명4" value="${optnList02.optnNm4}">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
|
||||||
@@ -3770,17 +3769,17 @@
|
|||||||
<td>
|
<td>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name ="optnNm1_invntry" type="text" title="재고옵션명1" value="">
|
<input class="input-text full" name ="optnNm1_invntry" type="text" title="재고옵션명1" value="">
|
||||||
<input type="hidden" name="goodsOptnInnb_invntry" value="" />
|
<input type="hidden" name="goodsOptnInnb_invntry" value="" />
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name ="optnNm2_invntry" type="text" title="재고옵선명2" value="">
|
<input class="input-text full" name ="optnNm2_invntry" type="text" title="재고옵선명2" value="">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name="optnNm3_invntry" type="text" title="재고옵션명3" value="">
|
<input class="input-text full" name="optnNm3_invntry" type="text" title="재고옵션명3" value="">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name="optnNm4_invntry" type="text" title="재고옵션명4" value="">
|
<input class="input-text full" name="optnNm4_invntry" type="text" title="재고옵션명4" value="">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
|
||||||
@@ -3828,13 +3827,13 @@
|
|||||||
<label for="stdrDvAt02-${opt02Status.index}"></label>
|
<label for="stdrDvAt02-${opt02Status.index}"></label>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값1" name="optnVal1_invntry" value="${goodsOpt02Val.optnVal1}" />
|
<td><input class="input-text full" type="text" title="재고옵션 값1" name="optnVal1_invntry" value="${goodsOpt02Val.optnVal1}" />
|
||||||
<input type="hidden" name="goodsOptnInnb_invntry" value="${goodsOpt02Val.goodsOptnInnb}" />
|
<input type="hidden" name="goodsOptnInnb_invntry" value="${goodsOpt02Val.goodsOptnInnb}" />
|
||||||
</td>
|
</td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값2" name="optnVal2_invntry" value="${goodsOpt02Val.optnVal2}"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값2" name="optnVal2_invntry" value="${goodsOpt02Val.optnVal2}"/></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값3" name="optnVal3_invntry" value="${goodsOpt02Val.optnVal3}" /></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값3" name="optnVal3_invntry" value="${goodsOpt02Val.optnVal3}" /></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값4" name="optnVal4_invntry" value="${goodsOpt02Val.optnVal4} "/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값4" name="optnVal4_invntry" value="${goodsOpt02Val.optnVal4} "/></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 코드" name="optnCd1_invntry" value="${goodsOpt02Val.optnCd1}" /></td>
|
<td><input class="input-text full" type="text" title="재고옵션 코드" name="optnCd1_invntry" value="${goodsOpt02Val.optnCd1}" /></td>
|
||||||
<td><input class="input-text full number right" type="text" value="<fmt:formatNumber value="${goodsOpt02Val.invntryQy}" pattern="#,###"/>" title="재고옵션 재고" name="invntryQy_invntry" /></td>
|
<td><input class="input-text full number right" type="text" value="<fmt:formatNumber value="${goodsOpt02Val.invntryQy}" pattern="#,###"/>" title="재고옵션 재고" name="invntryQy_invntry" /></td>
|
||||||
<td><input class="input-text full number right" type="text" value="<fmt:formatNumber value="${goodsOpt02Val.cnsmrpric}" pattern="#,###"/>" title="재고옵션 소비자가" name="cnsmrpric_invntry"/></td>
|
<td><input class="input-text full number right" type="text" value="<fmt:formatNumber value="${goodsOpt02Val.cnsmrpric}" pattern="#,###"/>" title="재고옵션 소비자가" name="cnsmrpric_invntry"/></td>
|
||||||
<td><input class="input-text full number right" type="text" value="<fmt:formatNumber value="${goodsOpt02Val.slepric}" pattern="#,###"/>" title="재고옵션 판매가" name="slepric_invntry"/></td>
|
<td><input class="input-text full number right" type="text" value="<fmt:formatNumber value="${goodsOpt02Val.slepric}" pattern="#,###"/>" title="재고옵션 판매가" name="slepric_invntry"/></td>
|
||||||
@@ -3856,7 +3855,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 정보" name="optnInfo_invntry" value="${goodsOpt02Val.optnInfo}"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 정보" name="optnInfo_invntry" value="${goodsOpt02Val.optnInfo}"/></td>
|
||||||
<td>
|
<td>
|
||||||
<div class="compnbDscntAt_invntryList" style="height: 100%; display: flex; flex-direction: column; justify-content: space-around;">
|
<div class="compnbDscntAt_invntryList" style="height: 100%; display: flex; flex-direction: column; justify-content: space-around;">
|
||||||
<div class="compnbDscntAt_invntry">
|
<div class="compnbDscntAt_invntry">
|
||||||
@@ -4527,7 +4526,7 @@
|
|||||||
<th>배송 안내 문구</th>
|
<th>배송 안내 문구</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" id="dlvyGuidanceWordsCn" name="dlvyGuidanceWordsCn" value="${ resultMap.goodsDtl.dlvyGuidanceWordsCn}" title="배송안내문구">
|
<input class="input-text full" type="text" id="dlvyGuidanceWordsCn" name="dlvyGuidanceWordsCn" value="${ resultMap.goodsDtl.dlvyGuidanceWordsCn}" title="배송안내문구">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -5011,7 +5010,7 @@
|
|||||||
//옵션명
|
//옵션명
|
||||||
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__inputList').append(`
|
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__inputList').append(`
|
||||||
<div class="optionApply__inputContainer" style="margin: 0">
|
<div class="optionApply__inputContainer" style="margin: 0">
|
||||||
<input class="input-text full input-trim `+optnNm.attr('id')+`" type="hidden" value="`+optnNmVal+`" title="일반옵션명" name="optnNm1_normal">
|
<input class="input-text full `+optnNm.attr('id')+`" type="hidden" value="`+optnNmVal+`" title="일반옵션명" name="optnNm1_normal">
|
||||||
</div>
|
</div>
|
||||||
`);
|
`);
|
||||||
//노출여부
|
//노출여부
|
||||||
@@ -5036,14 +5035,14 @@
|
|||||||
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
||||||
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
||||||
</div>
|
</div>
|
||||||
<input class="input-text full input-trim" value="" type="text" title="일반옵션값" name="optnVal1_normal">
|
<input class="input-text full" value="" type="text" title="일반옵션값" name="optnVal1_normal">
|
||||||
</div>
|
</div>
|
||||||
`);
|
`);
|
||||||
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
||||||
<input class="input-text full input-trim" type="text" title="일반옵션코드" name="optnCd1_normal">
|
<input class="input-text full" type="text" title="일반옵션코드" name="optnCd1_normal">
|
||||||
`);
|
`);
|
||||||
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
||||||
<input class="input-text full input-trim" value="220600" type="text" title="HS Code" name="hscode_normal" maxlength="10">
|
<input class="input-text full" value="220600" type="text" title="HS Code" name="hscode_normal" maxlength="10">
|
||||||
`);
|
`);
|
||||||
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
||||||
<input class="input-text full" value="0.0" type="text" title="실무게(KG)" name="realWt_normal">
|
<input class="input-text full" value="0.0" type="text" title="실무게(KG)" name="realWt_normal">
|
||||||
|
|||||||
@@ -749,7 +749,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="optionApply__inputList">
|
<div class="optionApply__inputList">
|
||||||
<div class="optionApply__inputContainer">
|
<div class="optionApply__inputContainer">
|
||||||
<input class="input-text full input-trim"
|
<input class="input-text full"
|
||||||
type="text" name="optnNm1_normal" id="optnNm1_normal`+rowCount+`"
|
type="text" name="optnNm1_normal" id="optnNm1_normal`+rowCount+`"
|
||||||
title="해당 인풋에 대한 설명">
|
title="해당 인풋에 대한 설명">
|
||||||
<button type="button" class="btn outline xsm optionDel01">삭제</button>
|
<button type="button" class="btn outline xsm optionDel01">삭제</button>
|
||||||
@@ -782,11 +782,11 @@
|
|||||||
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
||||||
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
||||||
</div>
|
</div>
|
||||||
<input class="input-text full input-trim" type="text" title="일반옵션 값" id="optnVal1_normal`+rowCount+`" name="optnVal1_normal">
|
<input class="input-text full" type="text" title="일반옵션 값" id="optnVal1_normal`+rowCount+`" name="optnVal1_normal">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td><div class="optionApply__priceContainer"><input class="input-text full input-trim" type="text" title="일반옵션코드" name="optnCd1_normal"></td></div>
|
<td><div class="optionApply__priceContainer"><input class="input-text full" type="text" title="일반옵션코드" name="optnCd1_normal"></td></div>
|
||||||
`
|
`
|
||||||
+invntry_policy_qy+
|
+invntry_policy_qy+
|
||||||
`
|
`
|
||||||
@@ -890,11 +890,11 @@
|
|||||||
`
|
`
|
||||||
+firstAdd+
|
+firstAdd+
|
||||||
`
|
`
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값1" name="optnVal1_invntry" /></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값1" name="optnVal1_invntry" /></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값2" name="optnVal2_invntry"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값2" name="optnVal2_invntry"/></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값3" name="optnVal3_invntry"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값3" name="optnVal3_invntry"/></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값4" name="optnVal4_invntry"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값4" name="optnVal4_invntry"/></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 코드" name="optnCd1_invntry"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 코드" name="optnCd1_invntry"/></td>
|
||||||
`
|
`
|
||||||
+invntry_policy_qy+
|
+invntry_policy_qy+
|
||||||
`
|
`
|
||||||
@@ -933,7 +933,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 정보" name="optnInfo_invntry"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 정보" name="optnInfo_invntry"/></td>
|
||||||
<td>
|
<td>
|
||||||
<div class="compnbDscntAt_invntry">
|
<div class="compnbDscntAt_invntry">
|
||||||
<label class="b-checkbox checkbox" for="compnbDscntAt02_`+rowCount+`">
|
<label class="b-checkbox checkbox" for="compnbDscntAt02_`+rowCount+`">
|
||||||
@@ -1440,7 +1440,6 @@
|
|||||||
|
|
||||||
//구매 대상자 제한 정보 저장
|
//구매 대상자 제한 정보 저장
|
||||||
const fn_save_purchase_limmit = function () {
|
const fn_save_purchase_limmit = function () {
|
||||||
trimInputValue();
|
|
||||||
|
|
||||||
if ($('#purchase_limmit_hiddenForm') != null) {
|
if ($('#purchase_limmit_hiddenForm') != null) {
|
||||||
$('#purchase_limmit_hiddenForm').remove();
|
$('#purchase_limmit_hiddenForm').remove();
|
||||||
@@ -1764,11 +1763,11 @@
|
|||||||
******************************************************** */
|
******************************************************** */
|
||||||
//카테고리 수정
|
//카테고리 수정
|
||||||
$(document).on('click', '#btn_update_category', function () {
|
$(document).on('click', '#btn_update_category', function () {
|
||||||
trimInputValue();
|
|
||||||
|
|
||||||
if ($('#hiddenForm_categry') != null) {
|
|
||||||
$('#hiddenForm_categry').remove();
|
if ($('#hiddenForm_categry') != null) {
|
||||||
}
|
$('#hiddenForm_categry').remove();
|
||||||
|
}
|
||||||
|
|
||||||
const url = '<c:url value="/mngr/goods/goodsmngr/updateGoodsDtlCtgryLink"/>';
|
const url = '<c:url value="/mngr/goods/goodsmngr/updateGoodsDtlCtgryLink"/>';
|
||||||
const hiddenForm = document.createElement('form');
|
const hiddenForm = document.createElement('form');
|
||||||
@@ -1805,7 +1804,6 @@
|
|||||||
//상품 기본정보 수정
|
//상품 기본정보 수정
|
||||||
$(document).on('click', '#btn_update_BscInfo', function (event) {
|
$(document).on('click', '#btn_update_BscInfo', function (event) {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
trimInputValue();
|
|
||||||
|
|
||||||
if ($('#hiddenForm_bscInfo') != null) {
|
if ($('#hiddenForm_bscInfo') != null) {
|
||||||
$('#hiddenForm_bscInfo').remove();
|
$('#hiddenForm_bscInfo').remove();
|
||||||
@@ -1938,7 +1936,6 @@
|
|||||||
|
|
||||||
// 상품 판매정보 수정
|
// 상품 판매정보 수정
|
||||||
$(document).on('click', '#btn_update_SelInfo', function () {
|
$(document).on('click', '#btn_update_SelInfo', function () {
|
||||||
trimInputValue();
|
|
||||||
|
|
||||||
if ($('#hiddenForm_selInfo') != null) {
|
if ($('#hiddenForm_selInfo') != null) {
|
||||||
$('#hiddenForm_selInfo').remove();
|
$('#hiddenForm_selInfo').remove();
|
||||||
@@ -2217,7 +2214,6 @@
|
|||||||
//상품 옵션수정
|
//상품 옵션수정
|
||||||
$(document).on('click', '#btn_update_opt', function (event) {
|
$(document).on('click', '#btn_update_opt', function (event) {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
trimInputValue();
|
|
||||||
|
|
||||||
if ($('#hiddenForm_opt') != null) {
|
if ($('#hiddenForm_opt') != null) {
|
||||||
$('#hiddenForm_opt').remove();
|
$('#hiddenForm_opt').remove();
|
||||||
@@ -2649,8 +2645,6 @@
|
|||||||
//상품 이미지 수정
|
//상품 이미지 수정
|
||||||
$(document).on('click', '#btn_update_img', function (event) {
|
$(document).on('click', '#btn_update_img', function (event) {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
trimInputValue();
|
|
||||||
|
|
||||||
if($('#hiddenForm_img') != null) {
|
if($('#hiddenForm_img') != null) {
|
||||||
$('#hiddenForm_img').remove();
|
$('#hiddenForm_img').remove();
|
||||||
}
|
}
|
||||||
@@ -2723,8 +2717,6 @@
|
|||||||
//상품 기타정보 수정
|
//상품 기타정보 수정
|
||||||
$(document).on('click', '[name="btn_update_EtcInfo"]', function (event) {
|
$(document).on('click', '[name="btn_update_EtcInfo"]', function (event) {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
trimInputValue();
|
|
||||||
|
|
||||||
if($('#hiddenForm_etcInfo') != null) {
|
if($('#hiddenForm_etcInfo') != null) {
|
||||||
$('#hiddenForm_etcInfo').remove();
|
$('#hiddenForm_etcInfo').remove();
|
||||||
}
|
}
|
||||||
@@ -2849,7 +2841,7 @@
|
|||||||
//관련상품 수정
|
//관련상품 수정
|
||||||
$(document).on('click','#btn_update_relateGoods', function (event) {
|
$(document).on('click','#btn_update_relateGoods', function (event) {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
trimInputValue();
|
|
||||||
|
|
||||||
if($('#hiddenForm_relateGoods') != null) {
|
if($('#hiddenForm_relateGoods') != null) {
|
||||||
$('#hiddenForm_relateGoods').remove();
|
$('#hiddenForm_relateGoods').remove();
|
||||||
@@ -3137,14 +3129,14 @@
|
|||||||
<th>상품명<span class="red-7">*</span></th>
|
<th>상품명<span class="red-7">*</span></th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="상품명" id="goodsNm" name="goodsNm" maxlength="35" value="${resultMap.goodsDtl.goodsNm}">
|
<input class="input-text full" type="text" title="상품명" id="goodsNm" name="goodsNm" maxlength="35" value="${resultMap.goodsDtl.goodsNm}">
|
||||||
<input type="hidden" id="sopmalCd" name="sopmalCd" value="${resultMap.BOGoodsVO.sopmalCd}"/>
|
<input type="hidden" id="sopmalCd" name="sopmalCd" value="${resultMap.BOGoodsVO.sopmalCd}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<th>상품명(영문)<span class="red-7">*</span></th>
|
<th>상품명(영문)<span class="red-7">*</span></th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="상품명(영문)" id="goodsNmEn" name="goodsNmEn" maxlength="35" value="${resultMap.goodsDtl.goodsNmEn}">
|
<input class="input-text full" type="text" title="상품명(영문)" id="goodsNmEn" name="goodsNmEn" maxlength="35" value="${resultMap.goodsDtl.goodsNmEn}">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -3152,13 +3144,13 @@
|
|||||||
<th>대표설명</th>
|
<th>대표설명</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="대표설명" id="reprsntDc" name="reprsntDc" value="${resultMap.goodsDtl.reprsntDc}" >
|
<input class="input-text full" type="text" title="대표설명" id="reprsntDc" name="reprsntDc" value="${resultMap.goodsDtl.reprsntDc}" >
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<th>간략설명</th>
|
<th>간략설명</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="간략설명" id="srtDc" name="srtDc" value="${resultMap.goodsDtl.srtDc}">
|
<input class="input-text full" type="text" title="간략설명" id="srtDc" name="srtDc" value="${resultMap.goodsDtl.srtDc}">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -3166,7 +3158,7 @@
|
|||||||
<th>검색어</th>
|
<th>검색어</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="검색어" id="kwrd" name="kwrd" value="${resultMap.goodsDtl.kwrd}">
|
<input class="input-text full" type="text" title="검색어" id="kwrd" name="kwrd" value="${resultMap.goodsDtl.kwrd}">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<th>브랜드</th>
|
<th>브랜드</th>
|
||||||
@@ -3190,7 +3182,7 @@
|
|||||||
<th>리뷰 연동</th>
|
<th>리뷰 연동</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" title="리뷰 연동" id="rvwGroupNb" name="rvwGroupNb" value="${resultMap.goodsDtl.rvwGroupNb}">
|
<input class="input-text full" type="text" title="리뷰 연동" id="rvwGroupNb" name="rvwGroupNb" value="${resultMap.goodsDtl.rvwGroupNb}">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<th>리뷰 작성 가능 여부</th>
|
<th>리뷰 작성 가능 여부</th>
|
||||||
@@ -3358,7 +3350,7 @@
|
|||||||
<span class="control-label">사용자페이지 판매중지 문구 변경 -> </span>
|
<span class="control-label">사용자페이지 판매중지 문구 변경 -> </span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<label for="selStpgeCustomWords"></label><input type="text" class="input-text input-trim" id="selStpgeCustomWords" name="selStpgeCustomWords" value="${resultMap.goodsDtl.selStpgeCustomWords}"
|
<label for="selStpgeCustomWords"></label><input type="text" class="input-text" id="selStpgeCustomWords" name="selStpgeCustomWords" value="${resultMap.goodsDtl.selStpgeCustomWords}"
|
||||||
<c:if test="${resultMap.goodsDtl.selStpgeCustomWordsAt ne 'Y'}"> disabled </c:if>
|
<c:if test="${resultMap.goodsDtl.selStpgeCustomWordsAt ne 'Y'}"> disabled </c:if>
|
||||||
/>
|
/>
|
||||||
<span class="parentheses">) </span>
|
<span class="parentheses">) </span>
|
||||||
@@ -3395,7 +3387,7 @@
|
|||||||
<th>예약 상품 안내문구</th>
|
<th>예약 상품 안내문구</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text xl input-trim" type="text"
|
<input class="input-text xl" type="text"
|
||||||
id="resveGoodsGuidanceWordsCn"
|
id="resveGoodsGuidanceWordsCn"
|
||||||
name="resveGoodsGuidanceWordsCn"
|
name="resveGoodsGuidanceWordsCn"
|
||||||
value="${resultMap.goodsDtl.resveGoodsGuidanceWordsCn}"
|
value="${resultMap.goodsDtl.resveGoodsGuidanceWordsCn}"
|
||||||
@@ -3461,7 +3453,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>노출 문구</th>
|
<th>노출 문구</th>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text xl input-trim" type="text"
|
<input class="input-text xl" type="text"
|
||||||
title="노출 문구" id="expsrSetupFwords"
|
title="노출 문구" id="expsrSetupFwords"
|
||||||
name="expsrSetupFwords"
|
name="expsrSetupFwords"
|
||||||
<c:choose>
|
<c:choose>
|
||||||
@@ -3552,7 +3544,7 @@
|
|||||||
<span class="ml-4">개의 수량을</span>
|
<span class="ml-4">개의 수량을</span>
|
||||||
<input type="text" id="rltmQyDdctStdrDt" value="${fn:split(resultMap.goodsDtl.rltmQyDdctStdrDt,'T')[0]}" class="datepicker" title="이벤트가판매 가수량차감기준일시 설정" autocomplete="off" <c:if test="${resultMap.goodsDtl.rltmQyBannerDvCd ne '03'}">disabled</c:if> >
|
<input type="text" id="rltmQyDdctStdrDt" value="${fn:split(resultMap.goodsDtl.rltmQyDdctStdrDt,'T')[0]}" class="datepicker" title="이벤트가판매 가수량차감기준일시 설정" autocomplete="off" <c:if test="${resultMap.goodsDtl.rltmQyBannerDvCd ne '03'}">disabled</c:if> >
|
||||||
<span class="ml-4">부터</span>
|
<span class="ml-4">부터</span>
|
||||||
<input type="text" class="input-text sm right number" title="이벤트가판매 가수량차감시간 설정" value="${resultMap.goodsDtl.rltmQyDdctTme}" id="rltmQyDdctTme" <c:if test="${resultMap.goodsDtl.rltmQyBannerDvCd ne '03'}">disabled</c:if> >
|
<input type="text" class="input-text sm right" title="이벤트가판매 가수량차감시간 설정" value="${resultMap.goodsDtl.rltmQyDdctTme}" id="rltmQyDdctTme" <c:if test="${resultMap.goodsDtl.rltmQyBannerDvCd ne '03'}">disabled</c:if> >
|
||||||
<span class="ml-4">분마다</span>
|
<span class="ml-4">분마다</span>
|
||||||
<input class="input-text sm right number" id="rltmDdctQy" value="${resultMap.goodsDtl.rltmDdctQy}" type="text" title="이벤트가판매 가수량차감수량 설정" <c:if test="${resultMap.goodsDtl.rltmQyBannerDvCd ne '03'}">disabled</c:if> >
|
<input class="input-text sm right number" id="rltmDdctQy" value="${resultMap.goodsDtl.rltmDdctQy}" type="text" title="이벤트가판매 가수량차감수량 설정" <c:if test="${resultMap.goodsDtl.rltmQyBannerDvCd ne '03'}">disabled</c:if> >
|
||||||
<span class="ml-4">개씩 차감</span>
|
<span class="ml-4">개씩 차감</span>
|
||||||
@@ -3775,7 +3767,7 @@
|
|||||||
<div class="optionApply__inputContainer">
|
<div class="optionApply__inputContainer">
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${optnNm01_status.index eq '0'}">
|
<c:when test="${optnNm01_status.index eq '0'}">
|
||||||
<input class="input-text full input-trim" value="${optnNm011}" type="text" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnNm01_status.index}">
|
<input class="input-text full" value="${optnNm011}" type="text" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnNm01_status.index}">
|
||||||
<%-- <button type="button" class="btn outline xsm optionDel02">삭제</button>--%>
|
<%-- <button type="button" class="btn outline xsm optionDel02">삭제</button>--%>
|
||||||
<button type="button" class="btn outline xsm optionVal98">옵션값 추가</button>
|
<button type="button" class="btn outline xsm optionVal98">옵션값 추가</button>
|
||||||
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
||||||
@@ -3785,7 +3777,7 @@
|
|||||||
</c:forEach>
|
</c:forEach>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<input class="input-text full input-trim" value="${optnNm011}" type="hidden" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnTy01idx.index}${optnNm01_status.index}">
|
<input class="input-text full" value="${optnNm011}" type="hidden" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnTy01idx.index}${optnNm01_status.index}">
|
||||||
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
||||||
<c:if test="${goodsOptnInnb01_status.index ne '0' and optnNm01_status.index eq goodsOptnInnb01_status.index }">
|
<c:if test="${goodsOptnInnb01_status.index ne '0' and optnNm01_status.index eq goodsOptnInnb01_status.index }">
|
||||||
<input type="hidden" name="goodsOptnInnb_normal" value="${goodsOptnInnb01}"/>
|
<input type="hidden" name="goodsOptnInnb_normal" value="${goodsOptnInnb01}"/>
|
||||||
@@ -3799,7 +3791,7 @@
|
|||||||
<div class="optionApply__inputContainer">
|
<div class="optionApply__inputContainer">
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${optnNm01_status.index eq '0'}">
|
<c:when test="${optnNm01_status.index eq '0'}">
|
||||||
<input class="input-text full input-trim" value="${optnNm011}" type="text" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnTy01idx.index}${optnNm01_status.index}">
|
<input class="input-text full" value="${optnNm011}" type="text" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnTy01idx.index}${optnNm01_status.index}">
|
||||||
<button type="button" class="btn outline xsm optionDel02">삭제</button>
|
<button type="button" class="btn outline xsm optionDel02">삭제</button>
|
||||||
<button type="button" class="btn outline xsm optionVal98">옵션값 추가</button>
|
<button type="button" class="btn outline xsm optionVal98">옵션값 추가</button>
|
||||||
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
||||||
@@ -3809,7 +3801,7 @@
|
|||||||
</c:forEach>
|
</c:forEach>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<input class="input-text full input-trim" value="${optnNm011}" type="hidden" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnTy01idx.index}${optnNm01_status.index}">
|
<input class="input-text full" value="${optnNm011}" type="hidden" title="일반옵션명" name="optnNm1_normal" id="optnNm1_normal${optnTy01idx.index}${optnNm01_status.index}">
|
||||||
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
<c:forEach var="goodsOptnInnb01" items="${fn:split(optnList01.goodsOptnInnb, '|')}" varStatus="goodsOptnInnb01_status">
|
||||||
<c:if test="${goodsOptnInnb01_status.index ne '0' and optnNm01_status.index eq goodsOptnInnb01_status.index }">
|
<c:if test="${goodsOptnInnb01_status.index ne '0' and optnNm01_status.index eq goodsOptnInnb01_status.index }">
|
||||||
<input type="hidden" name="goodsOptnInnb_normal" value="${goodsOptnInnb01}"/>
|
<input type="hidden" name="goodsOptnInnb_normal" value="${goodsOptnInnb01}"/>
|
||||||
@@ -3852,7 +3844,7 @@
|
|||||||
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
||||||
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
||||||
</div>
|
</div>
|
||||||
<input class="input-text full input-trim" type="text" id="optnVal1_normal${optnTy01idx.index}${optnVal011_status.index}" name="optnVal1_normal" title="옵션값" value="${optnVal011}">
|
<input class="input-text full" type="text" id="optnVal1_normal${optnTy01idx.index}${optnVal011_status.index}" name="optnVal1_normal" title="옵션값" value="${optnVal011}">
|
||||||
</div>
|
</div>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</div>
|
</div>
|
||||||
@@ -3860,14 +3852,14 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="optionApply__priceContainer">
|
<div class="optionApply__priceContainer">
|
||||||
<c:forEach var="optnCd011" items="${fn:split(optnList01.optnCd1, '|')}">
|
<c:forEach var="optnCd011" items="${fn:split(optnList01.optnCd1, '|')}">
|
||||||
<input class="input-text full input-trim" type="text" title="일반옵션 상품코드" name="optnCd1_normal" value="${optnCd011}" >
|
<input class="input-text full" type="text" title="일반옵션 상품코드" name="optnCd1_normal" value="${optnCd011}" >
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="optionApply__priceContainer">
|
<div class="optionApply__priceContainer">
|
||||||
<c:forEach var="hscode011" items="${fn:split(optnList01.hscode, '|')}">
|
<c:forEach var="hscode011" items="${fn:split(optnList01.hscode, '|')}">
|
||||||
<input class="input-text full input-trim" type="text" title="HS Code" name="hscode_normal" value="${hscode011}" maxlength="10" >
|
<input class="input-text full" type="text" title="HS Code" name="hscode_normal" value="${hscode011}" maxlength="10" >
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
@@ -4005,7 +3997,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="optionApply__inputList">
|
<div class="optionApply__inputList">
|
||||||
<div class="optionApply__inputContainer">
|
<div class="optionApply__inputContainer">
|
||||||
<input class="input-text full input-trim" type="text" name="optnNm1_normal" title="옵션명" id="optnNm1_normal0" value="">
|
<input class="input-text full" type="text" name="optnNm1_normal" title="옵션명" id="optnNm1_normal0" value="">
|
||||||
<button type="button" class="btn outline xsm optionDel01">삭제</button>
|
<button type="button" class="btn outline xsm optionDel01">삭제</button>
|
||||||
<button type="button" class="btn outline xsm optionVal98" >옵션값 추가</button>
|
<button type="button" class="btn outline xsm optionVal98" >옵션값 추가</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -4036,19 +4028,19 @@
|
|||||||
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
||||||
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
||||||
</div>
|
</div>
|
||||||
<input class="input-text full input-trim" type="text" id="optnVal1_normal0" name="optnVal1_normal" title="옵션값" value="">
|
<input class="input-text full" type="text" id="optnVal1_normal0" name="optnVal1_normal" title="옵션값" value="">
|
||||||
<input type="hidden" name="goodsOptnInnb_normal" value=""/>
|
<input type="hidden" name="goodsOptnInnb_normal" value=""/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="optionApply__priceContainer">
|
<div class="optionApply__priceContainer">
|
||||||
<input class="input-text full input-trim" type="text" title="상품코드" name="optnCd1_normal" value="" >
|
<input class="input-text full" type="text" title="상품코드" name="optnCd1_normal" value="" >
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="optionApply__priceContainer">
|
<div class="optionApply__priceContainer">
|
||||||
<input class="input-text full input-trim" type="text" title="HS Code" name="hscode_normal" value="" maxlength="10" >
|
<input class="input-text full" type="text" title="HS Code" name="hscode_normal" value="" maxlength="10" >
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -4195,16 +4187,16 @@
|
|||||||
<td>
|
<td>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name ="optnNm1_invntry" type="text" title="재고옵션명1" value="${optnList02.optnNm1}">
|
<input class="input-text full" name ="optnNm1_invntry" type="text" title="재고옵션명1" value="${optnList02.optnNm1}">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name ="optnNm2_invntry" type="text" title="재고옵선명2" value="${optnList02.optnNm2}">
|
<input class="input-text full" name ="optnNm2_invntry" type="text" title="재고옵선명2" value="${optnList02.optnNm2}">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name="optnNm3_invntry" type="text" title="재고옵션명3" value="${optnList02.optnNm3}">
|
<input class="input-text full" name="optnNm3_invntry" type="text" title="재고옵션명3" value="${optnList02.optnNm3}">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name="optnNm4_invntry" type="text" title="재고옵션명4" value="${optnList02.optnNm4}">
|
<input class="input-text full" name="optnNm4_invntry" type="text" title="재고옵션명4" value="${optnList02.optnNm4}">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
</td>
|
</td>
|
||||||
@@ -4242,17 +4234,17 @@
|
|||||||
<td>
|
<td>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name ="optnNm1_invntry" type="text" title="재고옵션명1" value="">
|
<input class="input-text full" name ="optnNm1_invntry" type="text" title="재고옵션명1" value="">
|
||||||
<input type="hidden" name="goodsOptnInnb_invntry" value="" />
|
<input type="hidden" name="goodsOptnInnb_invntry" value="" />
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name ="optnNm2_invntry" type="text" title="재고옵선명2" value="">
|
<input class="input-text full" name ="optnNm2_invntry" type="text" title="재고옵선명2" value="">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name="optnNm3_invntry" type="text" title="재고옵션명3" value="">
|
<input class="input-text full" name="optnNm3_invntry" type="text" title="재고옵션명3" value="">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="input-text full input-trim" name="optnNm4_invntry" type="text" title="재고옵션명4" value="">
|
<input class="input-text full" name="optnNm4_invntry" type="text" title="재고옵션명4" value="">
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
|
||||||
@@ -4302,13 +4294,13 @@
|
|||||||
<label for="stdrDvAt02-${opt02Status.index}"></label>
|
<label for="stdrDvAt02-${opt02Status.index}"></label>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값1" name="optnVal1_invntry" value="${goodsOpt02Val.optnVal1}" />
|
<td><input class="input-text full" type="text" title="재고옵션 값1" name="optnVal1_invntry" value="${goodsOpt02Val.optnVal1}" />
|
||||||
<input type="hidden" name="goodsOptnInnb_invntry" value="${goodsOpt02Val.goodsOptnInnb}" />
|
<input type="hidden" name="goodsOptnInnb_invntry" value="${goodsOpt02Val.goodsOptnInnb}" />
|
||||||
</td>
|
</td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값2" name="optnVal2_invntry" value="${goodsOpt02Val.optnVal2}"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값2" name="optnVal2_invntry" value="${goodsOpt02Val.optnVal2}"/></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값3" name="optnVal3_invntry" value="${goodsOpt02Val.optnVal3}" /></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값3" name="optnVal3_invntry" value="${goodsOpt02Val.optnVal3}" /></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 값4" name="optnVal4_invntry" value="${goodsOpt02Val.optnVal4} "/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 값4" name="optnVal4_invntry" value="${goodsOpt02Val.optnVal4} "/></td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 코드" name="optnCd1_invntry" value="${goodsOpt02Val.optnCd1}" /></td>
|
<td><input class="input-text full" type="text" title="재고옵션 코드" name="optnCd1_invntry" value="${goodsOpt02Val.optnCd1}" /></td>
|
||||||
<td><input class="input-text full number right" type="text" value="<fmt:formatNumber value="${goodsOpt02Val.invntryQy}" pattern="#,###"/>" title="재고옵션 재고" name="invntryQy_invntry" <c:if test="${resultMap.goodsDtl.invntryPolicyCd eq '02'}"> disabled </c:if> /></td>
|
<td><input class="input-text full number right" type="text" value="<fmt:formatNumber value="${goodsOpt02Val.invntryQy}" pattern="#,###"/>" title="재고옵션 재고" name="invntryQy_invntry" <c:if test="${resultMap.goodsDtl.invntryPolicyCd eq '02'}"> disabled </c:if> /></td>
|
||||||
<td><input class="input-text full right" type="text" value="<fmt:formatNumber value="${goodsOpt02Val.usefulInvntry}" pattern="#,###"/>" title="재고옵션 가용재고" disabled /></td>
|
<td><input class="input-text full right" type="text" value="<fmt:formatNumber value="${goodsOpt02Val.usefulInvntry}" pattern="#,###"/>" title="재고옵션 가용재고" disabled /></td>
|
||||||
<td><input class="input-text full number right" type="text" value="<fmt:formatNumber value="${goodsOpt02Val.cnsmrpric}" pattern="#,###"/>" title="재고옵션 소비자가" name="cnsmrpric_invntry"/></td>
|
<td><input class="input-text full number right" type="text" value="<fmt:formatNumber value="${goodsOpt02Val.cnsmrpric}" pattern="#,###"/>" title="재고옵션 소비자가" name="cnsmrpric_invntry"/></td>
|
||||||
@@ -4331,7 +4323,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td><input class="input-text full input-trim" type="text" title="재고옵션 정보" name="optnInfo_invntry" value="${goodsOpt02Val.optnInfo}"/></td>
|
<td><input class="input-text full" type="text" title="재고옵션 정보" name="optnInfo_invntry" value="${goodsOpt02Val.optnInfo}"/></td>
|
||||||
<td>
|
<td>
|
||||||
<div class="compnbDscntAt_invntryList" style="height: 100%; display: flex; flex-direction: column; justify-content: space-around;">
|
<div class="compnbDscntAt_invntryList" style="height: 100%; display: flex; flex-direction: column; justify-content: space-around;">
|
||||||
<div class="compnbDscntAt_invntry">
|
<div class="compnbDscntAt_invntry">
|
||||||
@@ -5013,7 +5005,7 @@
|
|||||||
<th>배송 안내 문구</th>
|
<th>배송 안내 문구</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="td-inner">
|
<div class="td-inner">
|
||||||
<input class="input-text full input-trim" type="text" id="dlvyGuidanceWordsCn" name="dlvyGuidanceWordsCn" value="${ resultMap.goodsDtl.dlvyGuidanceWordsCn}" title="배송안내문구">
|
<input class="input-text full" type="text" id="dlvyGuidanceWordsCn" name="dlvyGuidanceWordsCn" value="${ resultMap.goodsDtl.dlvyGuidanceWordsCn}" title="배송안내문구">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -5531,7 +5523,7 @@
|
|||||||
//옵션명
|
//옵션명
|
||||||
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__inputList').append(`
|
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__inputList').append(`
|
||||||
<div class="optionApply__inputContainer" style="margin: 0">
|
<div class="optionApply__inputContainer" style="margin: 0">
|
||||||
<input class="input-text full input-trim `+optnNm.attr('id')+`" type="hidden" value="`+optnNmVal+`" title="일반옵션명" name="optnNm1_normal">
|
<input class="input-text full `+optnNm.attr('id')+`" type="hidden" value="`+optnNmVal+`" title="일반옵션명" name="optnNm1_normal">
|
||||||
</div>
|
</div>
|
||||||
`);
|
`);
|
||||||
//노출여부
|
//노출여부
|
||||||
@@ -5556,14 +5548,14 @@
|
|||||||
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 up"><span class="visually-hidden">위로</span></button>
|
||||||
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
<button type="button" class="optionApply__moveBtn optionMove01 down"><span class="visually-hidden">아래로</span></button>
|
||||||
</div>
|
</div>
|
||||||
<input class="input-text full input-trim" value="" type="text" title="일반옵션값" name="optnVal1_normal">
|
<input class="input-text full" value="" type="text" title="일반옵션값" name="optnVal1_normal">
|
||||||
</div>
|
</div>
|
||||||
`);
|
`);
|
||||||
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
||||||
<input class="input-text full input-trim" type="text" title="일반옵션코드" name="optnCd1_normal">
|
<input class="input-text full" type="text" title="일반옵션코드" name="optnCd1_normal">
|
||||||
`);
|
`);
|
||||||
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
||||||
<input class="input-text full input-trim" value="220600" type="text" title="HS Code" name="hscode_normal" maxlength="10">
|
<input class="input-text full" value="220600" type="text" title="HS Code" name="hscode_normal" maxlength="10">
|
||||||
`);
|
`);
|
||||||
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
$closestTr.find('td:eq(' + tdCount++ + ') .optionApply__priceContainer').append(`
|
||||||
<input class="input-text full" value="0.0" type="text" title="실무게(KG)" name="realWt_normal">
|
<input class="input-text full" value="0.0" type="text" title="실무게(KG)" name="realWt_normal">
|
||||||
|
|||||||
@@ -133,17 +133,6 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ********************************************************
|
|
||||||
* xml 임시
|
|
||||||
******************************************************** */
|
|
||||||
const fn_update_xml = function () {
|
|
||||||
const url = '<c:url value="/mngr/goods/goodsmngr/selectGoodsRegistForm"/>';
|
|
||||||
|
|
||||||
$('#listForm').attr('action', url);
|
|
||||||
$('#listForm').attr('method', 'post');
|
|
||||||
$('#listForm').submit();
|
|
||||||
};
|
|
||||||
|
|
||||||
/* ********************************************************
|
/* ********************************************************
|
||||||
* 등록폼 이동
|
* 등록폼 이동
|
||||||
******************************************************** */
|
******************************************************** */
|
||||||
@@ -452,7 +441,6 @@
|
|||||||
<div class="page-title">
|
<div class="page-title">
|
||||||
<h2 class="page-title__title">상품 목록</h2>
|
<h2 class="page-title__title">상품 목록</h2>
|
||||||
<div class="page-title__btn-container">
|
<div class="page-title__btn-container">
|
||||||
<button onclick="fn_update_xml()" class="btn primary">XML 업데이트(임시)</button>
|
|
||||||
<button onclick="fn_move_regpage()" class="btn primary">상품 <spring:message code="button.insert"/></button>
|
<button onclick="fn_move_regpage()" class="btn primary">상품 <spring:message code="button.insert"/></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
fn_select_list(pageIndex, pageUnit);
|
fn_select_list(pageIndex, pageUnit);
|
||||||
//지정일
|
//지정일
|
||||||
fn_set_date('srchStrtSndngDt','srchEndSndngDt','srchEndSndngDt');
|
fn_set_date('srchStrtSndngDt','srchEndSndngDt','srchEndSndngDㄴt');
|
||||||
|
|
||||||
//날짜 선택 버튼 선택 처리
|
//날짜 선택 버튼 선택 처리
|
||||||
$(".dateRange-btnContainer").on("click", ".dateRange-btn", function(){
|
$(".dateRange-btnContainer").on("click", ".dateRange-btn", function(){
|
||||||
|
|||||||
@@ -446,23 +446,42 @@
|
|||||||
* 열 헤더, 푸터 > 프린트 버튼 클릭 이벤트
|
* 열 헤더, 푸터 > 프린트 버튼 클릭 이벤트
|
||||||
*/
|
*/
|
||||||
$(document).on('click', '[class*="btn-order-print"]', function() {
|
$(document).on('click', '[class*="btn-order-print"]', function() {
|
||||||
fn_select_dwld_purch_ordr_list();
|
const tr = ($(this).attr('class').split(' ')[0]).replace('btn-order-print-', 'order-sttus-cd-');
|
||||||
/*const tr = ($(this).attr('class').split(' ')[0]).replace('btn-order-print-', 'order-sttus-cd-');
|
const rowCheckboxs = $('.' + tr).closest('#orderList').find('.' + tr + ' input[name="ordrInnb"]:checked');
|
||||||
const rowCheckboxs = $('.' + tr).closest('#orderList').find('.' + tr + ' input[name="ordrInnb"]:checked');
|
|
||||||
|
|
||||||
if (rowCheckboxs.length === 0) {
|
if (rowCheckboxs.length === 0) {
|
||||||
alert('선택값이 없습니다.');
|
alert('선택값이 없습니다.');
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
let ordrInnbs = [];
|
let ordrInnbs = [];
|
||||||
|
|
||||||
$(rowCheckboxs).each(function(idx, item) {
|
$(rowCheckboxs).each(function(idx, item) {
|
||||||
ordrInnbs.push($(item).val());
|
ordrInnbs.push($(item).val());
|
||||||
});
|
});
|
||||||
|
|
||||||
fn_go_ordr_dtstmn_dwld_popup(ordrInnbs)*/
|
fn_go_ordr_dtstmn_dwld_popup(ordrInnbs)
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 열 헤더 > 엑셀 발주서 다운로드 버튼 클릭 이벤트
|
||||||
|
*/
|
||||||
|
$(document).on('click', '.excel-dwld-purch-order', function() {
|
||||||
|
const srchStartDate = $('#srchStartDate').val();
|
||||||
|
const srchEndDate = $('#srchEndDate').val();
|
||||||
|
const srchOrdrSttusCd = '35';
|
||||||
|
|
||||||
|
var form = $('#condForm').clone().prop("id", "excelCondForm")
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'srchOrdrSttusCd', value:srchOrdrSttusCd}));
|
||||||
|
|
||||||
|
$(form).attr('method', 'post');
|
||||||
|
$(form).attr('action', '<c:url value="/mngr/ordr/ordrmngr/selectExcelPoDwldListInqire"/>');
|
||||||
|
|
||||||
|
$(form).appendTo('body');
|
||||||
|
|
||||||
|
$(form).submit();
|
||||||
|
$(form).remove();
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -787,7 +806,7 @@
|
|||||||
|
|
||||||
header += ' <button type="button" class="btn-order-print-' + data.ordrSttusCd + ' btn outline xsm fs-13"><i class="icon icon_print"></i>프린트</button>';
|
header += ' <button type="button" class="btn-order-print-' + data.ordrSttusCd + ' btn outline xsm fs-13"><i class="icon icon_print"></i>프린트</button>';
|
||||||
if ('35' === data.ordrSttusCd) {
|
if ('35' === data.ordrSttusCd) {
|
||||||
header += ' <button type="button" onclick="fn_select_dwld_purch_ordr_list()" class="btn sm outline fs-13">';
|
header += ' <button type="button" class="btn sm outline fs-13 excel-dwld-purch-order">';
|
||||||
header += ' <i class="icon icon_excel"></i>발주서 다운로드';
|
header += ' <i class="icon icon_excel"></i>발주서 다운로드';
|
||||||
header += ' </button>';
|
header += ' </button>';
|
||||||
}
|
}
|
||||||
@@ -1385,7 +1404,7 @@
|
|||||||
}
|
}
|
||||||
footer += ' <button type="button" class="btn-order-print-' + data.ordrSttusCd + ' btn outline xsm fs-13"><i class="icon icon_print"></i>프린트</button>';
|
footer += ' <button type="button" class="btn-order-print-' + data.ordrSttusCd + ' btn outline xsm fs-13"><i class="icon icon_print"></i>프린트</button>';
|
||||||
if ('35' === prevOrderSttusCd) {
|
if ('35' === prevOrderSttusCd) {
|
||||||
footer += ' <button type="button" onclick="fn_select_dwld_purch_ordr_list()" class="btn sm outline fs-13">';
|
footer += ' <button type="button" class="btn sm outline fs-13 excel-dwld-purch-order">';
|
||||||
footer += ' <i class="icon icon_excel"></i>발주서 다운로드';
|
footer += ' <i class="icon icon_excel"></i>발주서 다운로드';
|
||||||
footer += ' </button>';
|
footer += ' </button>';
|
||||||
}
|
}
|
||||||
@@ -1719,6 +1738,8 @@
|
|||||||
$(form).submit();
|
$(form).submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* 다운로드 항목 목록 이동 */
|
/* 다운로드 항목 목록 이동 */
|
||||||
const fn_select_dwld_ordr_list = function() {
|
const fn_select_dwld_ordr_list = function() {
|
||||||
var form = $('#condForm')
|
var form = $('#condForm')
|
||||||
@@ -1732,17 +1753,9 @@
|
|||||||
$(form).submit();
|
$(form).submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 발주서 다운로드 항목 목록 이동 */
|
|
||||||
const fn_select_dwld_purch_ordr_list = function() {
|
|
||||||
var form = $('#condForm')
|
|
||||||
|
|
||||||
$(form).find('input[name="ordrInnb"]').remove();
|
|
||||||
|
|
||||||
$(form).attr('method', 'post');
|
|
||||||
$(form).attr('action', '<c:url value="/mngr/ordr/ordrmngr/selectExcelPoListInqireRForm"/>');
|
|
||||||
|
|
||||||
$(form).submit();
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@@ -1772,7 +1785,6 @@
|
|||||||
<a type="button" onclick="fn_select_indvdl_setle_list();" class="btn outline">개인 결제 목록</a>
|
<a type="button" onclick="fn_select_indvdl_setle_list();" class="btn outline">개인 결제 목록</a>
|
||||||
<a href="<c:url value="/crm/ordr/selectMngrOrdrRegistForm"/>" class="btn outline" target='_blank'>관리자 주문 등록</a>
|
<a href="<c:url value="/crm/ordr/selectMngrOrdrRegistForm"/>" class="btn outline" target='_blank'>관리자 주문 등록</a>
|
||||||
<a type="button" onclick="fn_select_dwld_ordr_list();" class="btn outline">다운로드 항목설정 목록</a>
|
<a type="button" onclick="fn_select_dwld_ordr_list();" class="btn outline">다운로드 항목설정 목록</a>
|
||||||
<a type="button" onclick="fn_select_dwld_purch_ordr_list()" class="btn outline"><i class="icon icon_excel"></i>발주서 다운로드</a>
|
|
||||||
<button type="button" class="btn primary" onclick="fn_dlivy_procs_popup('/mngr/ordr/dlivy/selectOrdrDlivyPopupForm','팝업','1400','840', 'O');">출고처리</button>
|
<button type="button" class="btn primary" onclick="fn_dlivy_procs_popup('/mngr/ordr/dlivy/selectOrdrDlivyPopupForm','팝업','1400','840', 'O');">출고처리</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1518,10 +1518,7 @@
|
|||||||
$("#overlay").fadeOut();
|
$("#overlay").fadeOut();
|
||||||
|
|
||||||
if (!data.responseJSON.resBody.message) {
|
if (!data.responseJSON.resBody.message) {
|
||||||
if(!data.responseJSON.resBody.result)
|
alert('<spring:message code="error.internal-server"/>');
|
||||||
alert('<spring:message code="error.internal-server"/>');
|
|
||||||
else
|
|
||||||
alert(data.responseJSON.resBody.result);
|
|
||||||
} else {
|
} else {
|
||||||
if (fn_check_json(data.responseJSON.resBody.message)) {
|
if (fn_check_json(data.responseJSON.resBody.message)) {
|
||||||
const errorObject = JSON.parse(data.responseJSON.resBody.message);
|
const errorObject = JSON.parse(data.responseJSON.resBody.message);
|
||||||
|
|||||||
@@ -63,9 +63,7 @@
|
|||||||
<col style="width: auto;">
|
<col style="width: auto;">
|
||||||
<col style="width: auto;">
|
<col style="width: auto;">
|
||||||
<col style="width: auto;">
|
<col style="width: auto;">
|
||||||
<col style="width: auto;">
|
<col style="width: 40%;">
|
||||||
<col style="width: auto;">
|
|
||||||
<col style="width: 20%;">
|
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -105,12 +103,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<th class="text-right">개인통관부호</th>
|
|
||||||
<td>
|
|
||||||
<div class="td-inner">
|
|
||||||
<input type="text" class="input-text" name="cstmclerCd" id="cstmclerCd" value="${orderShipping.cstmclerCd}" maxlength="13" placeholder="P로 시작하는 13자리 부호를 입력하세요"/>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -1,533 +0,0 @@
|
|||||||
<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
|
||||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
|
||||||
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
|
||||||
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
|
||||||
<spring:eval expression="@environment.getProperty('currency-unit.KR')" var="krUnit"/>
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="ko">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
|
||||||
<style>
|
|
||||||
@media print {
|
|
||||||
html, body {
|
|
||||||
height:auto;
|
|
||||||
width:auto;
|
|
||||||
margin: 0 !important;
|
|
||||||
padding: 0 !important;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.right {
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
.pbreak {
|
|
||||||
page-break-after: always;
|
|
||||||
}
|
|
||||||
.pbreak:last-child {
|
|
||||||
page-break-after: auto;
|
|
||||||
}
|
|
||||||
table.order_print_info tr th {
|
|
||||||
padding:3px 3px 3px 3px;
|
|
||||||
text-align:left;
|
|
||||||
font-size:11px;
|
|
||||||
color:#4d4d4d;
|
|
||||||
font-weight:normal;
|
|
||||||
}
|
|
||||||
table.order_print_info tr td {
|
|
||||||
padding:3px 3px 3px 3px;
|
|
||||||
text-align:right;
|
|
||||||
font-size:11px;
|
|
||||||
}
|
|
||||||
table.delivery_print_info {
|
|
||||||
border-collapse:collapse !important;
|
|
||||||
border:1px solid #bcbfc1;
|
|
||||||
table-layout: fixed;
|
|
||||||
}
|
|
||||||
table.delivery_print_info tr th {
|
|
||||||
padding:3px 3px 3px 3px;
|
|
||||||
font-size:11px;
|
|
||||||
color:#4d4d4d;
|
|
||||||
font-weight:normal;
|
|
||||||
}
|
|
||||||
table.delivery_print_info tr td {
|
|
||||||
padding:3px 3px 3px 3px;
|
|
||||||
font-size:11px;
|
|
||||||
}
|
|
||||||
table.delivery_goods_print_info {
|
|
||||||
border-collapse:collapse !important;
|
|
||||||
border:1px solid #bcbfc1;
|
|
||||||
table-layout: fixed
|
|
||||||
}
|
|
||||||
table.delivery_goods_print_info tr th {
|
|
||||||
padding:3px 3px 3px 3px;
|
|
||||||
font-size:11px;
|
|
||||||
color:#4d4d4d;
|
|
||||||
font-weight:normal;
|
|
||||||
border-left:1px solid #bcbfc1;
|
|
||||||
border-top:1px solid #bcbfc1;
|
|
||||||
}
|
|
||||||
table.delivery_goods_print_info tr td {
|
|
||||||
padding:3px 3px 3px 3px;
|
|
||||||
font-size:11px;
|
|
||||||
border-left:1px solid #bcbfc1;
|
|
||||||
border-top:1px solid #bcbfc1;
|
|
||||||
}
|
|
||||||
span.title_print_info {
|
|
||||||
font-size:12px;
|
|
||||||
color:#000000;
|
|
||||||
font-weight:normal;
|
|
||||||
letter-spacing:-1px;
|
|
||||||
}
|
|
||||||
table.order-sale-summary tr.total-sale-title td {
|
|
||||||
font-size:14px !important;
|
|
||||||
font-weight:normal !important;
|
|
||||||
color:#000000 !important;
|
|
||||||
}
|
|
||||||
tr.detail-sale-summary td div {
|
|
||||||
padding:0px !important;
|
|
||||||
color:#000000 !important;
|
|
||||||
}
|
|
||||||
tr.detail-sale-summary td {
|
|
||||||
color:#000000 !important;
|
|
||||||
}
|
|
||||||
tr.detail-sale-summary td span {
|
|
||||||
padding:0px !important;
|
|
||||||
color:#000000;
|
|
||||||
}
|
|
||||||
tr.total-sale-title td span {
|
|
||||||
padding:0px !important;
|
|
||||||
color:#000000;
|
|
||||||
}
|
|
||||||
tr.detail-sale-summary td:last-child {
|
|
||||||
padding:0px !important;
|
|
||||||
color:#000000 !important;
|
|
||||||
font-weight:normal !important;
|
|
||||||
}
|
|
||||||
tr.detail-sale-summary td:last-child span {
|
|
||||||
padding:0px !important;
|
|
||||||
color:#000000 !important;
|
|
||||||
font-size:14px !important;
|
|
||||||
font-weight:normal !important;
|
|
||||||
}
|
|
||||||
span.unit-money {
|
|
||||||
display:inline-block;width:10px;
|
|
||||||
}
|
|
||||||
tr {
|
|
||||||
page-break-inside:avoid;
|
|
||||||
page-break-after:auto;
|
|
||||||
}
|
|
||||||
td {
|
|
||||||
page-break-inside:avoid;
|
|
||||||
page-break-after:auto;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<script>
|
|
||||||
$(document).ready(function(){
|
|
||||||
loding(false);
|
|
||||||
window.print();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="wrap">
|
|
||||||
<c:set var="ordrDtstmnDwlds" value="${data.ordrDtstmnDwldList}"/>
|
|
||||||
<c:forEach var="ordrDtstmnDwld" items="${ordrDtstmnDwlds}" varStatus="status">
|
|
||||||
<c:set var="shipping" value="${ordrDtstmnDwld.shipping}"/>
|
|
||||||
<c:set var="srchOrdrDlvyInnb" value="${ordrSrchVO.srchOrdrDlvyInnbs[status.index]}"/>
|
|
||||||
<c:set var="isLast" value="${ordrDtstmnDwlds.size() ne status.count}"/>
|
|
||||||
<div class="pbreak">
|
|
||||||
<div align="center">
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<span style="text-align:center;font-size:20px;letter-spacing:-1px;font-weight:bold;padding-top:20px;">
|
|
||||||
주문내역서
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div style="height:5px;"></div>
|
|
||||||
<table style="width:100%;">
|
|
||||||
<col style="width:48%;">
|
|
||||||
<col style="width:4%;">
|
|
||||||
<col style="width:48%;">
|
|
||||||
<tr>
|
|
||||||
<td><span class="title_print_info">주문정보</span></td>
|
|
||||||
<td></td>
|
|
||||||
<td><span class="title_print_info">결제정보</span></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><div style="width:100%;border-top:1px solid #545454;height:1px;"></div></td>
|
|
||||||
<td></td>
|
|
||||||
<td><div style="width:100%;border-top:1px solid #545454;height:1px;"></div></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<c:set var="ordr" value="${ordrDtstmnDwld.ordr}"/>
|
|
||||||
<c:set var="setle" value="${ordrDtstmnDwld.setle}"/>
|
|
||||||
<table class="order_print_info" style="width:100%;">
|
|
||||||
<tr>
|
|
||||||
<th>주문번호</th>
|
|
||||||
<td>${ordr.ordrInnb}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>주문일자</th>
|
|
||||||
<td>${ordr.ordrRceptDt}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>주문고객</th>
|
|
||||||
<td>${ordr.mbrNm}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>전화</th>
|
|
||||||
<td>${ordr.ordrrTelnb}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>휴대전화</th>
|
|
||||||
<td>${ordr.ordrrMbtlnb}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>이메일</th>
|
|
||||||
<td>${ordr.ordrrEmailAdres}</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
<td></td>
|
|
||||||
<td valign="top">
|
|
||||||
<table class="order_print_info" style="width:100%;">
|
|
||||||
<tr>
|
|
||||||
<th>상품금액</th>
|
|
||||||
<td><fmt:formatNumber value="${setle.slepric}" pattern="#,###"/>${curUnit}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>배송비</th>
|
|
||||||
<td><fmt:formatNumber value="${setle.dlvyAmt}" pattern="#,###"/>${curUnit}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>할인</th>
|
|
||||||
<td><fmt:formatNumber value="${setle.dscntAmt}" pattern="#,###"/>${curUnit}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>총 결제금액</th>
|
|
||||||
<td>
|
|
||||||
<span style="font-size:12px;">
|
|
||||||
<fmt:formatNumber value="${setle.setleAmt}" pattern="#,###"/>${curUnit}
|
|
||||||
(<fmt:formatNumber value="${setle.wonRlSetleAmt}" pattern="#,###"/>${krUnit})
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>결제수단</th>
|
|
||||||
<td>${ordr.setleTyNm}</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<div style="height:10px"></div>
|
|
||||||
<table align="center" style="width:100%;">
|
|
||||||
<tr>
|
|
||||||
<td class="left"><span class="title_print_info">주문상품 (${ordr.itemCnt}종 - 총 ${ordr.orderCnt}개)</span></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<div style="height:3px"></div>
|
|
||||||
<c:set var="goodsList" value="${ordrDtstmnDwld.goods}"/>
|
|
||||||
<c:if test="${not empty goodsList}">
|
|
||||||
<table class="delivery_goods_print_info" align="center" style="width:100%; ${status.count > 1 ? 'margin-top:5px;' : '' }">
|
|
||||||
<colgroup>
|
|
||||||
<col style="width:auto;">
|
|
||||||
<col style="width:50px;">
|
|
||||||
<col style="width:35px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:35px;">
|
|
||||||
</colgroup>
|
|
||||||
<tr>
|
|
||||||
<th>상품명</th>
|
|
||||||
<th>순번</th>
|
|
||||||
<th>주문</th>
|
|
||||||
<th>판매가</th>
|
|
||||||
<th>할인</th>
|
|
||||||
<th>할인가(단가)</th>
|
|
||||||
<th>적립</th>
|
|
||||||
<th>배송</th>
|
|
||||||
<th>취소</th>
|
|
||||||
</tr>
|
|
||||||
<c:forEach var="goods" items="${goodsList}" varStatus="status">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<table style="border:0px">
|
|
||||||
<tr>
|
|
||||||
<td style="font-size:11px;border:0px;">
|
|
||||||
${goods.goodsNm}
|
|
||||||
<c:if test="${not empty goods.optnNm}">
|
|
||||||
<div style="padding:2px 0px 0px 0px;">- ${goods.optnNm}</div>
|
|
||||||
</c:if>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
<td class="right">
|
|
||||||
<c:forEach var="ship" items="${shipping}" varStatus="status">
|
|
||||||
<c:if test="${ship.ordrDlvyInnb == goods.ordrDlvyInnb}">
|
|
||||||
${status.count}번째
|
|
||||||
</c:if>
|
|
||||||
</c:forEach>
|
|
||||||
</td>
|
|
||||||
<td class="right"><fmt:formatNumber value="${goods.ordrQy}" pattern="#,###"/></td>
|
|
||||||
<td class="right"><fmt:formatNumber value="${goods.slepric}" pattern="#,###"/>${curUnit}</td>
|
|
||||||
<td class="right"><fmt:formatNumber value="${goods.dscntAmt}" pattern="#,###"/>${curUnit}</td>
|
|
||||||
<td class="right"><fmt:formatNumber value="${goods.applyDscntAmt}" pattern="#,###"/>${curUnit}<br/>(<fmt:formatNumber value="${goods.slepric}" pattern="#,###"/>${curUnit})</td>
|
|
||||||
<td class="right"><fmt:formatNumber value="${goods.mlgAmt}" pattern="#,###"/></td>
|
|
||||||
<td class="right">
|
|
||||||
<div><span>${goods.dlvyMthNm}</span></div>
|
|
||||||
<div><span class="bold"><fmt:formatNumber value="${goods.dlvyAmt}" pattern="#,###"/>${curUnit}</span></div>
|
|
||||||
</td>
|
|
||||||
<td class="right"><fmt:formatNumber value="${goods.setleCanclQy}" pattern="#,###"/></td>
|
|
||||||
</tr>
|
|
||||||
</c:forEach>
|
|
||||||
</table>
|
|
||||||
</c:if>
|
|
||||||
<c:if test="${empty goodsList}">
|
|
||||||
<table class="delivery_goods_print_info" align="center" style="width:100%;">
|
|
||||||
<colgroup>
|
|
||||||
<col style="width:auto;">
|
|
||||||
<col style="width:50px;">
|
|
||||||
<col style="width:35px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:35px;">
|
|
||||||
</colgroup>
|
|
||||||
<tr>
|
|
||||||
<th>상품명</th>
|
|
||||||
<th>순번</th>
|
|
||||||
<th>주문</th>
|
|
||||||
<th>판매가</th>
|
|
||||||
<th>할인</th>
|
|
||||||
<th>할인가(단가)</th>
|
|
||||||
<th>적립</th>
|
|
||||||
<th>배송</th>
|
|
||||||
<th>취소</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="9" style="text-align: center">조회된 데이터가 없습니다.</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</c:if>
|
|
||||||
<div style="height:10px"></div>
|
|
||||||
<div>
|
|
||||||
<table style="width:100%;">
|
|
||||||
<tr>
|
|
||||||
<td><span class="title_print_info">배송정보</span></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<c:if test="${not empty shipping}">
|
|
||||||
<c:forEach var="ship" items="${shipping}" varStatus="status">
|
|
||||||
<c:if test="${srchOrdrDlvyInnb eq ship.ordrDlvyInnb}">
|
|
||||||
<table class="delivery_goods_print_info" style="width:100%; ${status.count > 1 ? 'margin-top:5px;' : '' }">
|
|
||||||
<col style="width:5%;">
|
|
||||||
<col style="width:20%;">
|
|
||||||
<col style="width:20%;">
|
|
||||||
<col style="width:20%;">
|
|
||||||
<tr align="left">
|
|
||||||
<td rowspan="3">${status.count}번째</td>
|
|
||||||
<td>${ship.recpntNm}</td>
|
|
||||||
<td>${ship.recpntMbtlnb}</td>
|
|
||||||
<td>${ship.recpntTelnb}</td>
|
|
||||||
</tr>
|
|
||||||
<tr align="left">
|
|
||||||
<td colspan="3">
|
|
||||||
${not empty ship.dlvylcZip ? '(' += ship.dlvylcZip += ')' : ''}
|
|
||||||
${ship.adres}
|
|
||||||
${ship.dlvylcAdresDtl}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr align="left">
|
|
||||||
<td colspan="3">
|
|
||||||
<c:if test="${empty ship.dlvyMssageCn}">
|
|
||||||
-
|
|
||||||
</c:if>
|
|
||||||
<c:if test="${not empty ship.dlvyMssageCn}">
|
|
||||||
${ship.dlvyMssageCn}
|
|
||||||
</c:if>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</c:if>
|
|
||||||
</c:forEach>
|
|
||||||
</c:if>
|
|
||||||
<c:if test="${empty shipping}">
|
|
||||||
<table class="delivery_goods_print_info" style="width:100%; ${status.count > 1 ? 'margin-top:5px;' : '' }">
|
|
||||||
<col style="width:5%;">
|
|
||||||
<col style="width:20%;">
|
|
||||||
<col style="width:20%;">
|
|
||||||
<col style="width:20%;">
|
|
||||||
<tr><td colspan="9" style="text-align: center">조회된 데이터가 없습니다.</td></tr>
|
|
||||||
</table>
|
|
||||||
</c:if>
|
|
||||||
</div>
|
|
||||||
<div style="height:10px"></div>
|
|
||||||
<table align="center" style="width:100%;">
|
|
||||||
<tr>
|
|
||||||
<td class="left"><span class="title_print_info">발송상품</span></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<div style="height:3px"></div>
|
|
||||||
<c:set var="goodsList" value="${ordrDtstmnDwld.goods}"/>
|
|
||||||
<c:if test="${not empty goodsList}">
|
|
||||||
<table class="delivery_goods_print_info" align="center" style="width:100%; ${status.count > 1 ? 'margin-top:5px;' : '' }">
|
|
||||||
<colgroup>
|
|
||||||
<col style="width:auto;">
|
|
||||||
<col style="width:35px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:35px;">
|
|
||||||
</colgroup>
|
|
||||||
<tr>
|
|
||||||
<th>상품명</th>
|
|
||||||
<th>주문</th>
|
|
||||||
<th>판매가</th>
|
|
||||||
<th>할인</th>
|
|
||||||
<th>할인가(단가)</th>
|
|
||||||
<th>적립</th>
|
|
||||||
<th>취소</th>
|
|
||||||
<th>발송</th>
|
|
||||||
</tr>
|
|
||||||
<c:forEach var="goods" items="${goodsList}" varStatus="status">
|
|
||||||
<c:if test="${srchOrdrDlvyInnb eq goods.ordrDlvyInnb}">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<table style="border:0px">
|
|
||||||
<tr>
|
|
||||||
<td style="font-size:11px;border:0px;">
|
|
||||||
${goods.goodsNm}
|
|
||||||
<div style="padding:2px 0px 0px 0px;">- ${goods.optnNm}</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
<td class="right"><fmt:formatNumber value="${goods.ordrQy}" pattern="#,###"/></td>
|
|
||||||
<td class="right"><fmt:formatNumber value="${goods.slepric}" pattern="#,###"/>${curUnit}</td>
|
|
||||||
<td class="right"><fmt:formatNumber value="${goods.dscntAmt}" pattern="#,###"/>${curUnit}</td>
|
|
||||||
<td class="right"><fmt:formatNumber value="${goods.applyDscntAmt}" pattern="#,###"/>${curUnit}<br/>(<fmt:formatNumber value="${goods.slepric}" pattern="#,###"/>${curUnit})</td>
|
|
||||||
<td class="right"><fmt:formatNumber value="${goods.mlgAmt}" pattern="#,###"/></td>
|
|
||||||
<td class="right"><fmt:formatNumber value="${goods.setleCanclQy}" pattern="#,###"/></td>
|
|
||||||
<td class="right"><fmt:formatNumber value="${goods.sndngQy}" pattern="#,###"/></td>
|
|
||||||
</tr>
|
|
||||||
</c:if>
|
|
||||||
</c:forEach>
|
|
||||||
</table>
|
|
||||||
</c:if>
|
|
||||||
<c:if test="${empty goodsList}">
|
|
||||||
<table class="delivery_goods_print_info" align="center" style="width:100%;">
|
|
||||||
<colgroup>
|
|
||||||
<col style="width:auto;">
|
|
||||||
<col style="width:50px;">
|
|
||||||
<col style="width:35px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:70px;">
|
|
||||||
<col style="width:35px;">
|
|
||||||
</colgroup>
|
|
||||||
<tr>
|
|
||||||
<th>상품명</th>
|
|
||||||
<th>배송지</th>
|
|
||||||
<th>주문</th>
|
|
||||||
<th>판매가</th>
|
|
||||||
<th>할인</th>
|
|
||||||
<th>할인가(단가)</th>
|
|
||||||
<th>적립</th>
|
|
||||||
<th>배송</th>
|
|
||||||
<th>취소</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="9" style="text-align: center">조회된 데이터가 없습니다.</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</c:if>
|
|
||||||
<%--<div style="height:5px;"></div>
|
|
||||||
<table align="center" style="width:696px;">
|
|
||||||
<colgroup>
|
|
||||||
<col style="width:20%;">
|
|
||||||
<col>
|
|
||||||
<col style="width:20%;">
|
|
||||||
<col>
|
|
||||||
<col style="width:20%;">
|
|
||||||
<col>
|
|
||||||
<col style="width:20%;">
|
|
||||||
</colgroup>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align:right;font-size:12px;">
|
|
||||||
<span>총 상품금액</span>
|
|
||||||
</td>
|
|
||||||
<td style="text-align:center;font-size:12px;"><span>+</span></td>
|
|
||||||
<td style="text-align:right;font-size:12px;">
|
|
||||||
<span>배송비</span>
|
|
||||||
</td>
|
|
||||||
<td style="text-align:center;font-size:12px;"><span>-</span></td>
|
|
||||||
<td style="text-align:right;font-size:12px;">
|
|
||||||
<span>할인<span> <fmt:formatNumber value="${setle.dscntAmt}" pattern="#,###"/>${curUnit}</span></span>
|
|
||||||
</td>
|
|
||||||
<td style="text-align:center;font-size:12px;"><span>=</span></td>
|
|
||||||
<td style="text-align:right;font-size:12px;">
|
|
||||||
<span>총 결제금액</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align:right;font-size:11px;">
|
|
||||||
<span><fmt:formatNumber value="${setle.slepric}" pattern="#,###"/>${curUnit}</span>
|
|
||||||
</td>
|
|
||||||
<td></td>
|
|
||||||
<td style="text-align:right;font-size:11px;">
|
|
||||||
<div>
|
|
||||||
<span><fmt:formatNumber value="${setle.dlvyAmt}" pattern="#,###"/>${curUnit}</span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td></td>
|
|
||||||
<td style="text-align:right;font-size:11px;">
|
|
||||||
<c:set var="dscnts" value="${ordrDtstmnDwld.dscnt}"/>
|
|
||||||
<c:if test="${not empty dscnts}">
|
|
||||||
<c:forEach var="dscnt" items="${dscnts}" varStatus="status">
|
|
||||||
<div>${dscnt.dscntDvNm}:<span><fmt:formatNumber value="${dscnt.dscntAmt}" pattern="#,###"/>${curUnit}</span></div>
|
|
||||||
</c:forEach>
|
|
||||||
</c:if>
|
|
||||||
<c:if test="${empty dscnts}">
|
|
||||||
<div><span>0${curUnit}</span></div>
|
|
||||||
</c:if>
|
|
||||||
</td>
|
|
||||||
<td></td>
|
|
||||||
<td style="text-align:right;font-size:12px;">
|
|
||||||
<span>
|
|
||||||
<fmt:formatNumber value="${setle.setleAmt}" pattern="#,###"/>${curUnit}
|
|
||||||
(<fmt:formatNumber value="${setle.wonRlSetleAmt}" pattern="#,###"/>${krUnit})
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>--%>
|
|
||||||
</div>
|
|
||||||
<c:if test="${isLast}">
|
|
||||||
<div style="height:50px"></div>
|
|
||||||
</c:if>
|
|
||||||
</c:forEach>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,126 +0,0 @@
|
|||||||
<%@ 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="ui" uri="http://www.winbit.kr/ctl/ui" %>
|
|
||||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
|
||||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
|
||||||
<%@ page import="java.util.Date" %>
|
|
||||||
<%--
|
|
||||||
Class Name : PurchOrdrListInqireR.jsp
|
|
||||||
Description : 발주서 대상 목록 조회
|
|
||||||
Modification Information
|
|
||||||
|
|
||||||
수정일 수정자 수정내용
|
|
||||||
------- -------- ---------------------------
|
|
||||||
2026-07-15 이대환 최초 생성
|
|
||||||
--%>
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="ko">
|
|
||||||
<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="pageUnit" id="pageUnit" onchange="fn_select_list(1);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 type="button" class="btn outline sm" onclick="fn_ordrdtstmn_print();">
|
|
||||||
<i class="icon icon_print"></i>프린트
|
|
||||||
</button>
|
|
||||||
<button type="button" class="btn outline sm" onclick="fn_excel_download();">
|
|
||||||
<i class="icon icon_excel"></i>발주서 다운로드
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="center"></div>
|
|
||||||
<div class="right"></div>
|
|
||||||
</div>
|
|
||||||
<hr class="spacing">
|
|
||||||
<div class="table-wrapper">
|
|
||||||
<table class="table vertical">
|
|
||||||
<caption>회원 목록</caption>
|
|
||||||
<!-- 각 열 width 설정 -->
|
|
||||||
<colgroup>
|
|
||||||
<col style="width: 4%;">
|
|
||||||
<col style="width: 10%;">
|
|
||||||
<col style="width: 12%;">
|
|
||||||
<col style="width: 6%;">
|
|
||||||
<col style="width: 8%;">
|
|
||||||
<col style="width: auto;">
|
|
||||||
<col style="width: auto;">
|
|
||||||
<col style="width: 6%;">
|
|
||||||
<col style="width: auto;">
|
|
||||||
<col style="width: 6%;">
|
|
||||||
</colgroup>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
<label class="b-checkbox checkbox is-medium check-all" id="chkALabel">
|
|
||||||
<input type="checkbox" id="chkA">
|
|
||||||
<span class="check"></span>
|
|
||||||
</label>
|
|
||||||
</th>
|
|
||||||
<th>엑셀 다운일</th>
|
|
||||||
<th>주문번호</th>
|
|
||||||
<th>배송번호</th>
|
|
||||||
<th>수취인</th>
|
|
||||||
<th>수취인 TEL</th>
|
|
||||||
<th>개인통관부호</th>
|
|
||||||
<th>우편번호</th>
|
|
||||||
<th>내용물</th>
|
|
||||||
<th>Unit Value</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${not empty resultMap.resultList}">
|
|
||||||
<c:forEach var="resultList" items="${resultMap.resultList}">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<label class="b-checkbox checkbox is-medium">
|
|
||||||
<input type="checkbox" value="${resultList.ordrInnb}/${resultList.ovseaSelerRegistCd}" class="chk" name="purchOrdrPK">
|
|
||||||
<span class="check"></span>
|
|
||||||
</label>
|
|
||||||
<input type="hidden" class="cstmclerCd" value="${resultList.cstmclerCd}">
|
|
||||||
</td>
|
|
||||||
<td><c:out value="${resultList.excelDownDt}"/></td>
|
|
||||||
<td><c:out value="${resultList.ordrInnb}"/></td>
|
|
||||||
<td><c:out value="${resultList.ovseaSelerRegistCd}"/></td>
|
|
||||||
<td><c:out value="${resultList.recpntNm}"/></td>
|
|
||||||
<td><c:out value="${resultList.recpntMbtlnb}"/></td>
|
|
||||||
<td><c:out value="${resultList.cstmclerCd}"/></td>
|
|
||||||
<td><c:out value="${resultList.dlvylcZip}"/></td>
|
|
||||||
<td><c:out value="${resultList.cn}"/></td>
|
|
||||||
<td><c:out value="${resultList.unitValue}"/></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 mt-30">
|
|
||||||
<input type="hidden" id="pageIndex" name="pageIndex" value="${ ordrSrchVO.pageIndex}"/>
|
|
||||||
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_list"/>
|
|
||||||
</div>
|
|
||||||
</html>
|
|
||||||
@@ -1,320 +0,0 @@
|
|||||||
<%@ 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="ui" uri="http://www.winbit.kr/ctl/ui" %>
|
|
||||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
|
||||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
|
||||||
<%@ page import="java.util.Date" %>
|
|
||||||
<%--
|
|
||||||
Class Name : PurchOrdrListInqireRForm.jsp
|
|
||||||
Description : 발주서 관리 폼
|
|
||||||
Modification Information
|
|
||||||
|
|
||||||
수정일 수정자 수정내용
|
|
||||||
------- -------- ---------------------------
|
|
||||||
2026-07-15 이대환 최초 생성
|
|
||||||
--%>
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="ko">
|
|
||||||
<head>
|
|
||||||
<%-- 공통 include --%>
|
|
||||||
<%@include file ="/WEB-INF/views/comm/mngr/Include.jsp" %>
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function(){
|
|
||||||
//form메소드에서 pageIndex, pageUnit 갖고옴
|
|
||||||
let pageIndex = '<c:out value="${ ordrSrchVO.pageIndex }"/>';
|
|
||||||
<%--let pageUnit = '<c:out value="${ ordrSrchVO.pageUnit }"/>';--%>
|
|
||||||
let pageUnit = 100;
|
|
||||||
|
|
||||||
fn_select_list(pageIndex, pageUnit);
|
|
||||||
|
|
||||||
//검색 버튼 클릭
|
|
||||||
$('#btnSearch').on('click', function(){
|
|
||||||
fn_select_list(1);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
/* ********************************************************
|
|
||||||
* 발주서 목록 조회
|
|
||||||
******************************************************** */
|
|
||||||
const fn_select_list = function(pageIndex, pageUnit) {
|
|
||||||
let dataStr;
|
|
||||||
if(!pageIndex) {
|
|
||||||
$('#pageIndex').val(1);
|
|
||||||
} else {
|
|
||||||
$('#pageIndex').val(pageIndex);
|
|
||||||
}
|
|
||||||
|
|
||||||
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 : '/mngr/ordr/ordrmngr/selectExcelPoListInqire',
|
|
||||||
data : dataStr,
|
|
||||||
success:function(resultHtml) {
|
|
||||||
$('#pageDiv').html(resultHtml);
|
|
||||||
$('#pageUnit').niceSelect();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ********************************************************
|
|
||||||
* 발주서 주문내역서 프린트
|
|
||||||
******************************************************** */
|
|
||||||
const fn_ordrdtstmn_print = function () {
|
|
||||||
const checkedBoxes = $('input[name="purchOrdrPK"]:checked');
|
|
||||||
|
|
||||||
if (checkedBoxes.length === 0) {
|
|
||||||
alert('선택값이 없습니다.');
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
let srchOrdrInnbs = [];
|
|
||||||
let srchOrdrDlvyInnbs = [];
|
|
||||||
|
|
||||||
$(checkedBoxes).each(function(idx, item) {
|
|
||||||
const split = $(item).val().split('/');
|
|
||||||
srchOrdrInnbs.push(split[0]);
|
|
||||||
srchOrdrDlvyInnbs.push(split[1]);
|
|
||||||
});
|
|
||||||
|
|
||||||
const title = 'orderPrint';
|
|
||||||
fn_open_center_popup(title, '900', '700');
|
|
||||||
|
|
||||||
var tempForm = $('<form>', {
|
|
||||||
target: title,
|
|
||||||
method: 'post',
|
|
||||||
action: '/mngr/ordr/ordrmngr/selectPurchOrdrDtstmnDwldPopupForm'
|
|
||||||
});
|
|
||||||
|
|
||||||
$.each(srchOrdrInnbs, function(key, value) {
|
|
||||||
$('<input>', {
|
|
||||||
type: 'hidden',
|
|
||||||
name: 'srchOrdrInnbs',
|
|
||||||
value: value
|
|
||||||
}).appendTo(tempForm);
|
|
||||||
});
|
|
||||||
$.each(srchOrdrDlvyInnbs, function(key, value) {
|
|
||||||
$('<input>', {
|
|
||||||
type: 'hidden',
|
|
||||||
name: 'srchOrdrDlvyInnbs',
|
|
||||||
value: value
|
|
||||||
}).appendTo(tempForm);
|
|
||||||
});
|
|
||||||
tempForm.appendTo('body');
|
|
||||||
console.log(tempForm.prop('outerHTML'));
|
|
||||||
|
|
||||||
tempForm.submit();
|
|
||||||
tempForm.remove();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 발주서 엑셀다운로드
|
|
||||||
* */
|
|
||||||
const fn_excel_download = function () {
|
|
||||||
const checkedBoxes = $('input[name="purchOrdrPK"]:checked');
|
|
||||||
|
|
||||||
if (checkedBoxes.length === 0) {
|
|
||||||
alert('선택값이 없습니다.');
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
let cstmclerCds = [];
|
|
||||||
let srchOrdrInnbs = [];
|
|
||||||
let srchOrdrDlvyInnbs = [];
|
|
||||||
|
|
||||||
$(checkedBoxes).each(function(idx, item) {
|
|
||||||
const cstmclerCd = $(this).closest('td').find('.cstmclerCd').val();
|
|
||||||
cstmclerCds.push(cstmclerCd);
|
|
||||||
|
|
||||||
const split = $(item).val().split('/');
|
|
||||||
srchOrdrInnbs.push(split[0]);
|
|
||||||
srchOrdrDlvyInnbs.push(split[1]);
|
|
||||||
});
|
|
||||||
|
|
||||||
const duplicate = new Set(cstmclerCds).size !== cstmclerCds.length;
|
|
||||||
if(duplicate) {
|
|
||||||
alert('개인통관부호가 중복되었습니다.')
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
var tempForm = $('<form>', {
|
|
||||||
method: 'post',
|
|
||||||
action: '/mngr/ordr/ordrmngr/selectExcelPoDwldListInqire'
|
|
||||||
});
|
|
||||||
|
|
||||||
$.each(srchOrdrInnbs, function(key, value) {
|
|
||||||
$('<input>', {
|
|
||||||
type: 'hidden',
|
|
||||||
name: 'srchOrdrInnbs',
|
|
||||||
value: value
|
|
||||||
}).appendTo(tempForm);
|
|
||||||
});
|
|
||||||
$.each(srchOrdrDlvyInnbs, function(key, value) {
|
|
||||||
$('<input>', {
|
|
||||||
type: 'hidden',
|
|
||||||
name: 'srchOrdrDlvyInnbs',
|
|
||||||
value: value
|
|
||||||
}).appendTo(tempForm);
|
|
||||||
});
|
|
||||||
tempForm.appendTo('body');
|
|
||||||
|
|
||||||
tempForm.submit();
|
|
||||||
tempForm.remove();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* open popup */
|
|
||||||
const fn_open_center_popup = function (title, w, h) {
|
|
||||||
const dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : screen.left;
|
|
||||||
const dualScreenTop = window.screenTop != undefined ? window.screenTop : screen.top;
|
|
||||||
|
|
||||||
const width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
|
|
||||||
const height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;
|
|
||||||
|
|
||||||
const left = ((width / 2) - (w / 2)) + dualScreenLeft;
|
|
||||||
const top = ((height / 2) - (h / 2)) + dualScreenTop;
|
|
||||||
|
|
||||||
window.open('', title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 체크박스 전체 처리
|
|
||||||
* */
|
|
||||||
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", "#chkA", function () {
|
|
||||||
if($(this).is(':checked')){
|
|
||||||
$(".chk").prop('checked', true);
|
|
||||||
}else{
|
|
||||||
$(".chk").prop('checked', false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// 목록에서 체크 해제시 전체 체크박스 해제 및 목록 항목 전체 체크 시 전체체크 버튼 true
|
|
||||||
$(document).on("click", ".chk", function () {
|
|
||||||
let length = $(".chk").length;
|
|
||||||
let chcedLen = $(".chk:checked").length;
|
|
||||||
if (length == chcedLen) {
|
|
||||||
$("#chkA").prop('checked', true);
|
|
||||||
}else{
|
|
||||||
$("#chkA").prop('checked', false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<%-- 상단메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
|
|
||||||
<%@include file ="/WEB-INF/views/comm/mngr/Header.jsp" %>
|
|
||||||
<main class="main">
|
|
||||||
<%-- 좌측메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
|
|
||||||
<%@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>
|
|
||||||
<form id="listForm">
|
|
||||||
<section class="content-section">
|
|
||||||
<span class="red-7">*검색어는 정확히 입력해주세요</span>
|
|
||||||
<div class="table-wrapper">
|
|
||||||
<table class="table">
|
|
||||||
<caption>발주서 대상 검색</caption>
|
|
||||||
<colgroup>
|
|
||||||
<col style="width: 12%;">
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<tr>
|
|
||||||
<th>배송지</th>
|
|
||||||
<td>
|
|
||||||
<div class="td-inner">
|
|
||||||
<div class="b-checkbox-container">
|
|
||||||
<label class="b-checkbox checkbox check-all">
|
|
||||||
<input id="dlvylcAreaCds-all" type="checkbox" onclick="fn_change_event('dlvylcAreaCds', 'all');">
|
|
||||||
<span class="check"></span>
|
|
||||||
<span class="control-label">전체</span>
|
|
||||||
</label>
|
|
||||||
<c:forEach items="${nationCdList}" var="nationCd" varStatus="status">
|
|
||||||
<label class="b-checkbox checkbox">
|
|
||||||
<input type="checkbox" name="dlvylcAreaCds" value="${nationCd.cd}"onclick="fn_change_event('dlvylcAreaCds', 'other');" <c:if test="${nationCd.cd eq 'KR'}">checked</c:if>>
|
|
||||||
<span class="check"></span>
|
|
||||||
<span class="control-label">${nationCd.cdNm}</span>
|
|
||||||
</label>
|
|
||||||
</c:forEach>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>엑셀다운 포함 여부</th>
|
|
||||||
<td>
|
|
||||||
<div class="td-inner">
|
|
||||||
<div class="custom-radio-container">
|
|
||||||
<div class="custom-radio">
|
|
||||||
<input type="radio" id="excelIncY" name="excelInclude" value="Y" checked>
|
|
||||||
<label for="excelIncY">포함</label>
|
|
||||||
</div>
|
|
||||||
<div class="custom-radio">
|
|
||||||
<input type="radio" id="excelIncN" name="excelInclude" value="N">
|
|
||||||
<label for="excelIncN">미포함</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="form-control-container">
|
|
||||||
<div class="left"></div>
|
|
||||||
<div class="center">
|
|
||||||
<button type="button" class="btn outline" id="btnResetForm">
|
|
||||||
<spring:message code="button.init"/>
|
|
||||||
</button>
|
|
||||||
<button type="button" class="btn primary" id="btnSearch">
|
|
||||||
<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>
|
|
||||||
</main>
|
|
||||||
<div id = "modalDiv"></div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -16,7 +16,6 @@
|
|||||||
--%>
|
--%>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko">
|
<html lang="ko">
|
||||||
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
@@ -133,13 +132,13 @@
|
|||||||
});
|
});
|
||||||
} else { //메인화면 호출 안할 시
|
} else { //메인화면 호출 안할 시
|
||||||
// 상품 - 4열 슬라이드 타입 (이벤트 추천 상품 슬릭 이벤트)
|
// 상품 - 4열 슬라이드 타입 (이벤트 추천 상품 슬릭 이벤트)
|
||||||
$('.relate-goods-slick').slick({
|
$('.four-row-slick').slick({
|
||||||
slidesToShow: 4,
|
slidesToShow: 4,
|
||||||
slidesToScroll: 4,
|
slidesToScroll: 4,
|
||||||
speed: 900,
|
speed: 900,
|
||||||
infinite: true,
|
infinite: true,
|
||||||
prevArrow: $('.relate-goods-slick__prev'),
|
prevArrow: $('.four-row-slick__prev'),
|
||||||
nextArrow: $('.relate-goods-slick__next'),
|
nextArrow: $('.four-row-slick__next'),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -267,7 +266,7 @@
|
|||||||
const reqUrl = $("#reqUrl").val();
|
const reqUrl = $("#reqUrl").val();
|
||||||
if (reqUrl === 'csc') {
|
if (reqUrl === 'csc') {
|
||||||
form.attr("action", "/sopmal/csc/selectCscListForm");
|
form.attr("action", "/sopmal/csc/selectCscListForm");
|
||||||
} else if (reqUrl === 'subPage' || reqUrl === 'detail') {
|
} else if (reqUrl === 'subPage') {
|
||||||
form.attr("action", "/sopmal/csc/selectSubPageListForm");
|
form.attr("action", "/sopmal/csc/selectSubPageListForm");
|
||||||
}
|
}
|
||||||
form.attr("method", "POST");
|
form.attr("method", "POST");
|
||||||
@@ -824,9 +823,7 @@
|
|||||||
<i class="icon icon_lock"></i>
|
<i class="icon icon_lock"></i>
|
||||||
</c:if>
|
</c:if>
|
||||||
</h4>
|
</h4>
|
||||||
<c:if test="${bbsInfo.registDtYn eq 'Y'}">
|
<p class="eventDetail__date"><c:out value="${bbscttInfo.sumRegistDt}"/></p>
|
||||||
<p class="eventDetail__date"><c:out value="${bbscttInfo.sumRegistDt}"/></p>
|
|
||||||
</c:if>
|
|
||||||
</div>
|
</div>
|
||||||
<%-------------------------------%>
|
<%-------------------------------%>
|
||||||
<%--첨부 파일 다운로드 영역--%>
|
<%--첨부 파일 다운로드 영역--%>
|
||||||
@@ -941,96 +938,106 @@
|
|||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
<%-------------------------------%>
|
<%-------------------------------%>
|
||||||
<c:if test="${bbsInfo.recomendGoodsExpsrAt eq 'Y' && not empty goodsList}">
|
<c:if test="${bbsInfo.recomendGoodsExpsrAt eq 'Y' && not empty goodsList.relateInfoList}">
|
||||||
<div class="cartOrder">
|
<div class="cartOrder">
|
||||||
<div class="main-section__container">
|
<div class="main-section__container">
|
||||||
<section class="main-section main-section__four-row">
|
<section class="main-section main-section__four-row">
|
||||||
<div class="main-section-header">
|
<div class="main-section-header">
|
||||||
<div class="main-section-title">
|
<div class="main-section-title">
|
||||||
<h3 class="main-section-title__title">
|
<h3 class="main-section-title__title">
|
||||||
<c:choose>
|
추천 상품
|
||||||
<c:when test = "${not empty bbscttInfo.relateGoodsWords}">
|
|
||||||
<c:out value="${bbscttInfo.relateGoodsWords}" escapeXml="false"/>
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
이 글과 관련된 사케
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="product-list-type1">
|
<div class="product-list-type1">
|
||||||
<div class="${fn:length(goodsList) gt 4 ? 'four-row-slick relate-goods-slick evtSlick' : 'product-list-type1__list'}">
|
<div class="four-row-slick evtSlick">
|
||||||
<c:forEach var = "item" items="${goodsList}">
|
<c:forEach var = "item" items="${goodsList.relateInfoList}">
|
||||||
<c:if test = "${not empty item.goodsInnb}">
|
<c:if test = "${not empty item.goodsInnb}">
|
||||||
<div class="product-unit">
|
<div class="product-unit">
|
||||||
<div class="product-unit-image">
|
<div class="product-unit-image">
|
||||||
<c:if test="${item.goodsSttusCd eq '02'}">
|
<c:forEach var = "img" items = "${goodsList.relateImgList}">
|
||||||
<div class="sold-out"><span>입고 대기중</span></div>
|
<c:if test = "${item.goodsInnb eq img.goodsInnb}">
|
||||||
</c:if>
|
<button type="button" onclick = "fn_move_goods_dtl(<c:out value="${item.goodsInnb}"/>)" value="${item.goodsInnb}">
|
||||||
<a class="product-detail" href="javascript:void(0);" onclick="fn_move_goods_dtl('<c:out value="${item.goodsInnb}"/>');">
|
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||||
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
<img src="<c:out value = "${cdnurl}${img.img}"/>" style="width: 100%;
|
||||||
<img src="<c:out value = "${cdnurl}${item.img}"/>"
|
height: 304px; /* 원하는 고정 높이 설정 */
|
||||||
onerror="this.src='/pc/images/image_placeholder.png'" alt="<c:out value="${item.goodsNm}"/>">
|
object-fit: cover; /* 이미지 비율을 유지하면서 영역에 맞게 자름 */"
|
||||||
</a>
|
onerror="this.src='/pc/images/image_placeholder.png'" alt="해당 이미지에 대한 설명">
|
||||||
|
</button>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
</div>
|
</div>
|
||||||
<div class="product-unit-info d-flex flex-column" style="flex-direction:column">
|
<div class="product-unit-info">
|
||||||
<c:if test="${not empty item.iconCdNmList && item.iconExpsrAt eq 'Y'}">
|
<div class="product-badge-container">
|
||||||
<div class="product-badge-container col order-${item.iconExpsrOrdr-1}" style="order: ${item.iconExpsrOrdr-1}">
|
<c:if test = "${not empty item.goodsIconCd}">
|
||||||
<c:forEach items="${fn:split(item.iconCdNmList, ',')}" var="iconCdNm">
|
<c:forEach items="${fn:split(item.goodsIconCd, ',')}" var="icon">
|
||||||
<span class="product-badge ${fn:toLowerCase(iconCdNm)}" data-badge-cd="${iconCdNm}">${fn:replace(fn:toUpperCase(iconCdNm), '-', ' ')}</span>
|
<c:if test="${icon eq 'new'}">
|
||||||
|
<span class="product-badge new" data-badge-cd="new">NEW</span>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${icon eq 'hot'}">
|
||||||
|
<span class="product-badge hot" data-badge-cd="hot">HOT</span>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${icon eq 'best'}">
|
||||||
|
<span class="product-badge best" data-badge-cd="best">BEST</span>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${icon eq 'md-pick'}">
|
||||||
|
<span class="product-badge md-pick" data-badge-cd="md-pick">MD PICK</span>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${icon eq 'hot-deal'}">
|
||||||
|
<span class="product-badge four-row" data-badge-cd="four-row">HOT DEAL</span>
|
||||||
|
</c:if>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</div>
|
</c:if>
|
||||||
</c:if>
|
</div>
|
||||||
<c:if test="${item.goodsNmExpsrAt eq 'Y'}">
|
<div class="product-unit-info__inner">
|
||||||
<div class="product-unit-title col order-${item.goodsNmExpsrOrdr-1}" style="order: ${item.goodsNmExpsrOrdr-1}">
|
<div class="product-unit-title">
|
||||||
<a href="javascript:void(0);" onclick="fn_move_goods_dtl('<c:out value="${item.goodsInnb}"/>');">
|
<button type="button" onclick = "fn_move_goods_dtl(<c:out value="${item.goodsInnb}"/>)">
|
||||||
<c:out value = "${item.goodsNm}"/>
|
<c:out value = "${item.goodsNm}"/>
|
||||||
</a>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
<div class="product-unit-price">
|
||||||
<c:if test="${item.pricExpsrAt eq 'Y'}">
|
<c:forEach var="goodsOpt" items="${goodsList.relateGoodsOptList}">
|
||||||
<div class="product-unit-price col order-${item.pricExpsrOrdr-1}" style="order: ${item.pricExpsrOrdr-1}">
|
<c:if test="${item.goodsInnb eq goodsOpt.goodsInnb && goodsOpt.stdrDvAt eq 'Y'}">
|
||||||
<div class="product-unit-price__price">
|
<div class="product-unit-price__price">
|
||||||
<span class="product-unit-price__original <c:if test="${item.slePercent eq 0}">visually-hidden</c:if>">
|
<span class="product-unit-price__original">
|
||||||
<fmt:formatNumber value="${item.cnsmrpric}"/> ${curUnit}
|
<fmt:formatNumber value="${goodsOpt.cnsmrpric}" pattern="#,###"/>
|
||||||
</span>
|
</span>
|
||||||
<span class="product-unit-price__current">
|
<span class="product-unit-price__current">
|
||||||
<fmt:formatNumber value="${item.slepric}"/> ${curUnit}
|
<fmt:formatNumber value="${goodsOpt.slepric}" pattern="#,###"/>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="product-unit-price__sale <c:if test="${item.slePercent eq 0}">visually-hidden</c:if>">
|
<div class="product-unit-price__sale">
|
||||||
<span class="percent"><c:out value = "${item.slePercent}"/> %</span>
|
<span class="percent"><c:out value = "${goodsOpt.slePercent}"/>%</span>
|
||||||
</div>
|
</div>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
<span class="product-unit-price__monthly-payment"><c:out value = "${item.srtDc}"/></span>
|
||||||
<c:if test="${item.reprsntDcExpsrAt eq 'Y'}">
|
</div>
|
||||||
<div class="product-unit-price__monthly-payment col order-${item.reprsntDcExpsrOrdr-1}" style="order: ${item.reprsntDcExpsrOrdr-1}"><c:out value = "${item.reprsntDc}"/></div>
|
<div class="product-unit-rating">
|
||||||
</c:if>
|
<i class="icon icon_rating-star"></i>
|
||||||
<c:if test="${item.rvwEvlScreExpsrAt eq 'Y'}">
|
<c:forEach var = "evlInfo" items="${goodsList.goodsRvwEvlList}">
|
||||||
<div class="product-unit-rating col order-${item.rvwEvlScreExpsrOrdr-1}" style="order: ${item.rvwEvlScreExpsrOrdr-1}">
|
<c:if test = "${evlInfo.goodsInnb eq item.goodsInnb}">
|
||||||
<i class="icon icon_rating-star"></i>
|
<span class="product-unit-rating__score"><c:out value = "${evlInfo.avgEvlScore}"/>${goodsOpt.goodInnb}</span>
|
||||||
<span class="product-unit-rating__score"><c:out value = "${item.avgEvlScore}"/></span>
|
<span class="product-unit-rating__count">(<fmt:formatNumber value="${evlInfo.cntBbsctt}" pattern="#,###"/>)</span>
|
||||||
<span class="product-unit-rating__count">(<fmt:formatNumber value="${item.cntEvlScor}"/>)</span>
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</div>
|
</div>
|
||||||
<c:if test="${fn:length(goodsList) gt 4}">
|
|
||||||
<div class="four-row-slick__btn-container">
|
<div class="four-row-slick__btn-container">
|
||||||
<button class="relate-goods-slick__prev">
|
<button class="four-row-slick__prev">
|
||||||
<i class="icon icon_prev02"></i>
|
<i class="icon icon_prev02"></i>
|
||||||
<span class="visually-hidden">이전</span>
|
<span class="visually-hidden">이전</span>
|
||||||
</button>
|
</button>
|
||||||
<button class="relate-goods-slick__next">
|
<button class="four-row-slick__next">
|
||||||
<i class="icon icon_next02"></i>
|
<i class="icon icon_next02"></i>
|
||||||
<span class="visually-hidden">다음</span>
|
<span class="visually-hidden">다음</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -260,7 +260,7 @@
|
|||||||
</c:choose>
|
</c:choose>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<c:if test = "${bbsInfo.bbscttRegist eq 'Y' and resultMap.registAuthResult eq 'Y'}">
|
<c:if test = "${bbsInfo.bbscttRegist eq 'Y'}">
|
||||||
<div class="sub-board__top-btn-container">
|
<div class="sub-board__top-btn-container">
|
||||||
<button type = "button" class="btn outline theme" id = "regBtn"><spring:message code="button.insert"/></button>
|
<button type = "button" class="btn outline theme" id = "regBtn"><spring:message code="button.insert"/></button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -114,8 +114,8 @@
|
|||||||
"crudDv": crudDv
|
"crudDv": crudDv
|
||||||
},
|
},
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
const parsed = JSON.parse(data.resBody.result);
|
data = JSON.parse(data.resBody.result);
|
||||||
fn_branch_bbsctt_posble(parsed, idx);
|
fn_branch_bbsctt_posble(data, idx);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -292,7 +292,7 @@
|
|||||||
</c:choose>
|
</c:choose>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<c:if test = "${bbsInfo.bbscttRegist eq 'Y' and resultMap.registAuthResult eq 'Y'}">
|
<c:if test = "${bbsInfo.bbscttRegist eq 'Y'}">
|
||||||
<div class="sub-board__top-btn-container">
|
<div class="sub-board__top-btn-container">
|
||||||
<button type = "button" class="btn outline theme" id = "regBtn"><spring:message code="button.insert"/></button>
|
<button type = "button" class="btn outline theme" id = "regBtn"><spring:message code="button.insert"/></button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -82,7 +82,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!pageUnit) {
|
if(!pageUnit) {
|
||||||
dataStr = `$('#listForm').serialize();`
|
dataStr = $('#listForm').serialize();
|
||||||
} else {
|
} else {
|
||||||
if($('#pageUnit').length){
|
if($('#pageUnit').length){
|
||||||
$('#pageUnit').val(pageUnit);
|
$('#pageUnit').val(pageUnit);
|
||||||
|
|||||||
@@ -28,8 +28,6 @@
|
|||||||
border: 1px solid #dee2e6 !important;
|
border: 1px solid #dee2e6 !important;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<jsp:useBean id="nowDate" class="java.util.Date" />
|
|
||||||
<fmt:formatDate var="currentTime" value="${nowDate}" pattern="yyyy-MM-dd HH:mm:ss" />
|
|
||||||
<!-- 배송 조회 -->
|
<!-- 배송 조회 -->
|
||||||
<div id="delivery-check-pop" class="modal default" style="max-width: 640px;">
|
<div id="delivery-check-pop" class="modal default" style="max-width: 640px;">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
@@ -58,16 +56,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>수령인</th>
|
<th>수령인</th>
|
||||||
<td>
|
<td><c:out value="${ podInfo.recipient }"/></td>
|
||||||
<c:choose>
|
|
||||||
<c:when test="${ podInfo.recipient eq 'null' }">
|
|
||||||
<c:out value="${ ordrInfo.shippingList[0].recpntNm }"/>
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
<c:out value="${ podInfo.recipient }"/>
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@@ -96,16 +85,8 @@
|
|||||||
<td><c:out value="${ podInfo.dateLocalwhin }"/></td>
|
<td><c:out value="${ podInfo.dateLocalwhin }"/></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
<c:choose>
|
발송물이 픽업되어, 공항출항 대기중입니다.
|
||||||
<c:when test="${ podInfo.dateLocalwhin > currentTime }">
|
<p class="statusEn">Shipment pick up and waiting at the origin airport</p>
|
||||||
발송물이 픽업(예정)되어, 공항출항 대기중입니다.
|
|
||||||
<p class="statusEn">Shipment pick up(expected) and waiting at the origin airport</p>
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
발송물이 픽업되어, 공항출항 대기중입니다.
|
|
||||||
<p class="statusEn">Shipment pick up and waiting at the origin airport</p>
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</c:if>
|
</c:if>
|
||||||
@@ -114,16 +95,8 @@
|
|||||||
<td><c:out value="${ podInfo.dateLocaldeparture }"/></td>
|
<td><c:out value="${ podInfo.dateLocaldeparture }"/></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
<c:choose>
|
화물이 인천공항으로 출발하였습니다.
|
||||||
<c:when test="${ podInfo.dateLocaldeparture > currentTime }">
|
<p class="statusEn">Shipment departed to Incheon International Airport</p>
|
||||||
화물이 인천공항으로 출발(예정)하였습니다.
|
|
||||||
<p class="statusEn">Shipment departed(expected) to Incheon International Airport</p>
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
화물이 인천공항으로 출발하였습니다.
|
|
||||||
<p class="statusEn">Shipment departed to Incheon International Airport</p>
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</c:if>
|
</c:if>
|
||||||
@@ -132,16 +105,8 @@
|
|||||||
<td><c:out value="${ podInfo.dateIcnarrival }"/></td>
|
<td><c:out value="${ podInfo.dateIcnarrival }"/></td>
|
||||||
<td>인천공항</td>
|
<td>인천공항</td>
|
||||||
<td>
|
<td>
|
||||||
<c:choose>
|
화물이 인천공항에 도착하였습니다.
|
||||||
<c:when test="${ podInfo.dateLocaldeparture > currentTime }">
|
<p class="statusEn">Shipped the goods arrived at Incheon International Airport.</p>
|
||||||
화물이 인천공항에 도착(예정)하였습니다.
|
|
||||||
<p class="statusEn">Shipped the goods arrived(expected) at Incheon International Airport.</p>
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
화물이 인천공항에 도착하였습니다.
|
|
||||||
<p class="statusEn">Shipped the goods arrived at Incheon International Airport.</p>
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</c:if>
|
</c:if>
|
||||||
@@ -150,16 +115,8 @@
|
|||||||
<td><c:out value="${ podInfo.dateCustomes }"/></td>
|
<td><c:out value="${ podInfo.dateCustomes }"/></td>
|
||||||
<td>인천공항</td>
|
<td>인천공항</td>
|
||||||
<td>
|
<td>
|
||||||
<c:choose>
|
인천공항 세관에서 통관완료되었습니다.
|
||||||
<c:when test="${ podInfo.dateLocaldeparture > currentTime }">
|
<p class="statusEn">Customs clearance is completed in the Republic of Korea</p>
|
||||||
인천공항 세관에서 통관완료(예정)되었습니다.
|
|
||||||
<p class="statusEn">Customs clearance is completed(expected) in the Republic of Korea</p>
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
인천공항 세관에서 통관완료되었습니다.
|
|
||||||
<p class="statusEn">Customs clearance is completed in the Republic of Korea</p>
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</c:if>
|
</c:if>
|
||||||
|
|||||||
@@ -33,7 +33,6 @@
|
|||||||
<c:set var="order" value="${data.order}"/>
|
<c:set var="order" value="${data.order}"/>
|
||||||
|
|
||||||
<script src="<c:url value='/js/dlvylc/dlvylc.js'/>"></script>
|
<script src="<c:url value='/js/dlvylc/dlvylc.js'/>"></script>
|
||||||
<script src="<c:url value='/js/sopmal/refund-popup.js'/>"></script>
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
@@ -665,18 +664,29 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn_load_refund_popup('<c:url value="/sopmal/mpage/ordr/selectSetleCanclPopupForm"/>', {
|
$.ajax({
|
||||||
'sopmalCd':sopmalCd,
|
type:'post',
|
||||||
'ordrInnb':ordrInnb,
|
url:'<c:url value="/sopmal/mpage/ordr/selectSetleCanclPopupForm"/>',
|
||||||
'ordrDlvyInnb':ordrDlvyInnb
|
data:{
|
||||||
}, function(popup) {
|
'sopmalCd':sopmalCd,
|
||||||
$(popup).find('.orderRefundPop .select-box select').niceSelect();
|
'ordrInnb':ordrInnb,
|
||||||
|
'ordrDlvyInnb':ordrDlvyInnb
|
||||||
|
},
|
||||||
|
success:function(html) {
|
||||||
|
$('#refund-pop').remove();
|
||||||
|
|
||||||
$(popup).find('#refundAcntnb').on("input", function () {
|
$('#refundPopupDiv').html(html);
|
||||||
this.value = this.value.replace(/[^0-9]/g, "");
|
|
||||||
});
|
|
||||||
|
|
||||||
$(popup).modal();
|
const popup = $('#refund-pop');
|
||||||
|
|
||||||
|
$(popup).find('.orderRefundPop .select-box select').niceSelect();
|
||||||
|
|
||||||
|
$(popup).find('#refundAcntnb').on("input", function () {
|
||||||
|
this.value = this.value.replace(/[^0-9]/g, "");
|
||||||
|
});
|
||||||
|
|
||||||
|
$(popup).modal();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1625,10 +1635,7 @@
|
|||||||
</c:if>
|
</c:if>
|
||||||
<tr>
|
<tr>
|
||||||
<th>결제금액</th>
|
<th>결제금액</th>
|
||||||
<td>
|
<td><span class="comma"><fmt:formatNumber value="${setle.setleAmt}" pattern="#,###"/></span>${curUnit} / <span class="comma">${setle.wonSetleAmt}</span>${krUnit}</td>
|
||||||
<span class="comma"><fmt:formatNumber value="${setle.setleAmt}" pattern="#,###"/></span>${curUnit}
|
|
||||||
<c:if test="${data.setleList[0].pgCmpnyNm ne 'stripe'}">/ <span class="comma">${setle.wonSetleAmt}</span>${krUnit}</c:if>
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<c:if test = "${order.ordrSttusCd ne '85' && order.ordrSttusCd ne '95'}"><%--주문취소시 미노출--%>
|
<c:if test = "${order.ordrSttusCd ne '85' && order.ordrSttusCd ne '95'}"><%--주문취소시 미노출--%>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -1695,10 +1702,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
<div class="cartOrderBox__total">
|
<div class="cartOrderBox__total">
|
||||||
<span class="cartOrderBox__totalTh">결제금액</span>
|
<span class="cartOrderBox__totalTh">결제금액</span>
|
||||||
<span class="cartOrderBox__totalTd">
|
<span class="cartOrderBox__totalTd"><span class="comma"><fmt:formatNumber value="${total.setleAmt}" pattern="#,###"/></span><span class="priceUnit">${curUnit}</span> / <span class="comma">${total.wonRlSetleAmt}</span><span class="priceUnit">${krUnit}</span></span>
|
||||||
<span class="comma"><fmt:formatNumber value="${total.setleAmt}" pattern="#,###"/></span><span class="priceUnit">${curUnit}</span>
|
|
||||||
<c:if test="${data.setleList[0].pgCmpnyNm ne 'stripe'}">/ <span class="comma">${total.wonRlSetleAmt}</span><span class="priceUnit">${krUnit}</span></c:if>
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -870,12 +870,10 @@
|
|||||||
<span class="comma"><c:out value="${ reTotAmt.realRefundAmt }"/></span>
|
<span class="comma"><c:out value="${ reTotAmt.realRefundAmt }"/></span>
|
||||||
<span class="priceUnit">${curUnit}</span>
|
<span class="priceUnit">${curUnit}</span>
|
||||||
</div>
|
</div>
|
||||||
<c:if test="${resultMap.result.refnd.pgCmpnyNm ne 'stripe'}">
|
<span class="priceSum__itemPrice">
|
||||||
<span class="priceSum__itemPrice">
|
[<span class="comma"><c:out value="${ reTotAmt.realWonRefundAmt }"/></span>
|
||||||
[<span class="comma"><c:out value="${ reTotAmt.realWonRefundAmt }"/></span>
|
<span class="priceUnit">${krUnit}</span>]
|
||||||
<span class="priceUnit">${krUnit}</span>]
|
</span>
|
||||||
</span>
|
|
||||||
</c:if>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -32,7 +32,6 @@
|
|||||||
<jsp:include page="/WEB-INF/views/comm/Include.jsp"/>
|
<jsp:include page="/WEB-INF/views/comm/Include.jsp"/>
|
||||||
|
|
||||||
<script src="<c:url value='/js/dlvylc/dlvylc.js'/>"></script>
|
<script src="<c:url value='/js/dlvylc/dlvylc.js'/>"></script>
|
||||||
<script src="<c:url value='/js/sopmal/refund-popup.js'/>"></script>
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
@@ -660,18 +659,29 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn_load_refund_popup('<c:url value="/sopmal/mpage/ordr/selectSetleCanclPopupForm"/>', {
|
$.ajax({
|
||||||
'sopmalCd':sopmalCd,
|
type:'post',
|
||||||
'ordrInnb':ordrInnb,
|
url:'<c:url value="/sopmal/mpage/ordr/selectSetleCanclPopupForm"/>',
|
||||||
'ordrDlvyInnb':ordrDlvyInnb
|
data:{
|
||||||
}, function(popup) {
|
'sopmalCd':sopmalCd,
|
||||||
$(popup).find('.orderRefundPop .select-box select').niceSelect();
|
'ordrInnb':ordrInnb,
|
||||||
|
'ordrDlvyInnb':ordrDlvyInnb
|
||||||
|
},
|
||||||
|
success:function(html) {
|
||||||
|
$('#refund-pop').remove();
|
||||||
|
|
||||||
$(popup).find('#refundAcntnb').on("input", function () {
|
$('#refundPopupDiv').html(html);
|
||||||
this.value = this.value.replace(/[^0-9]/g, "");
|
|
||||||
});
|
|
||||||
|
|
||||||
$(popup).modal();
|
const popup = $('#refund-pop');
|
||||||
|
|
||||||
|
$(popup).find('.orderRefundPop .select-box select').niceSelect();
|
||||||
|
|
||||||
|
$(popup).find('#refundAcntnb').on("input", function () {
|
||||||
|
this.value = this.value.replace(/[^0-9]/g, "");
|
||||||
|
});
|
||||||
|
|
||||||
|
$(popup).modal();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1481,12 +1491,10 @@
|
|||||||
<span class="comma"><c:out value="${ reTotAmt.rlRefundAmt }"/></span>
|
<span class="comma"><c:out value="${ reTotAmt.rlRefundAmt }"/></span>
|
||||||
<span class="priceUnit">${curUnit}</span>
|
<span class="priceUnit">${curUnit}</span>
|
||||||
</div>
|
</div>
|
||||||
<c:if test="${data.setleList[0].pgCmpnyNm ne 'stripe'}">
|
<span class="priceSum__itemPrice">
|
||||||
<span class="priceSum__itemPrice">
|
[<span class="comma"><c:out value="${ reTotAmt.realWonRefundAmt }"/></span>
|
||||||
[<span class="comma"><c:out value="${ reTotAmt.realWonRefundAmt }"/></span>
|
<span class="priceUnit">${krUnit}</span>]
|
||||||
<span class="priceUnit">${krUnit}</span>]
|
</span>
|
||||||
</span>
|
|
||||||
</c:if>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1778,10 +1786,7 @@
|
|||||||
</c:if>
|
</c:if>
|
||||||
<tr>
|
<tr>
|
||||||
<th>결제금액</th>
|
<th>결제금액</th>
|
||||||
<td>
|
<td><span class="comma"><fmt:formatNumber value="${setle.setleAmt}" pattern="#,###"/></span>${curUnit} / <span class="comma">${setle.wonSetleAmt}</span>${krUnit}</td>
|
||||||
<span class="comma"><fmt:formatNumber value="${setle.setleAmt}" pattern="#,###"/></span>${curUnit}
|
|
||||||
<c:if test="${data.setleList[0].pgCmpnyNm ne 'stripe'}">/ <span class="comma">${setle.wonSetleAmt}</span>${krUnit}</c:if>
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<c:if test = "${order.ordrSttusCd ne '85' && order.ordrSttusCd ne '95'}"><%--주문취소시 미노출--%>
|
<c:if test = "${order.ordrSttusCd ne '85' && order.ordrSttusCd ne '95'}"><%--주문취소시 미노출--%>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -521,14 +521,13 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
/* 결제정보 결제수단 버튼 선택 이벤트 */
|
/* 결제정보 결제수단 버튼 선택 이벤트 */
|
||||||
$('input[name="pg"]').on('click', function(event, skipDefaultMethod) {
|
$('input[name="pg"]').on('click', function() {
|
||||||
const form = $(this).closest('#setleForm')
|
const form = $(this).closest('#setleForm')
|
||||||
const id = $(this).attr('id');
|
const id = $(this).attr('id');
|
||||||
const pgCmpnyNm = $(this).val();
|
const pgCmpnyNm = $(this).val();
|
||||||
|
|
||||||
$(form).find('.pgContent').hide();
|
$(form).find('.pgContent').hide();
|
||||||
$(form).find('#' + id + 'Content').show();
|
$(form).find('#' + id + 'Content').show();
|
||||||
$('.cartOrderBox__totalKr').show();
|
|
||||||
|
|
||||||
//$(form).find('#setleSetupTyCd').val() === '01' ? $(form).find('#pg04Content').show() : $(form).find('#pg03Content').show();
|
//$(form).find('#setleSetupTyCd').val() === '01' ? $(form).find('#pg04Content').show() : $(form).find('#pg03Content').show();
|
||||||
if($(form).find('#setleSetupTyCd').val() === '01'){$(form).find('#pg04Content').show();}
|
if($(form).find('#setleSetupTyCd').val() === '01'){$(form).find('#pg04Content').show();}
|
||||||
@@ -574,22 +573,12 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
$(form).find('#setleTyCd').val('03');
|
$(form).find('#setleTyCd').val('03');
|
||||||
} else if('st01' === id){ //Stripe
|
|
||||||
$('.cartOrderBox__totalKr').hide();
|
|
||||||
} else {
|
} else {
|
||||||
$(form).find('#setleTyCd').val('');
|
$(form).find('#setleTyCd').val('');
|
||||||
|
|
||||||
$('.order-method-normal__btn').removeClass('active');
|
$('.order-method-normal__btn').removeClass('active');
|
||||||
$('.order-method-normal__content').hide();
|
$('.order-method-normal__content').hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 통화를 선택하면 사용 가능한 첫 결제수단을 기존 클릭 처리로 선택한다.
|
|
||||||
// 결제수단 버튼에서 라디오를 갱신할 때는 재귀 선택을 생략한다.
|
|
||||||
if (!skipDefaultMethod && ['st01', 'pg03', 'pg04', 'pg06'].includes(id)) {
|
|
||||||
$(form).find('#' + id + 'Content')
|
|
||||||
.find('.order-method-normal__btn:visible:not(:disabled)')
|
|
||||||
.first().trigger('click');
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
/* 결제정보 > 일반결제 > 결제수단 버튼 선택 이벤트 */
|
/* 결제정보 > 일반결제 > 결제수단 버튼 선택 이벤트 */
|
||||||
@@ -598,8 +587,10 @@
|
|||||||
const content = $('.order-method-normal__content');
|
const content = $('.order-method-normal__content');
|
||||||
const useCashMlgAmt = $('#useCashMlgAmt').val();
|
const useCashMlgAmt = $('#useCashMlgAmt').val();
|
||||||
|
|
||||||
const pgId = $(this).closest('.pgContent').attr('id').replace(/Content$/, '');
|
//$('#setleSetupTyCd').val() === '01' ? $('#pg04').click() : $('#pg03').click();
|
||||||
$('#' + pgId).trigger('click', [true]);
|
if($('#setleSetupTyCd').val() === '01'){$('#pg04').click();}
|
||||||
|
else if($('#setleSetupTyCd').val() === '02'){$('#pg03').click();}
|
||||||
|
else if($('#setleSetupTyCd').val() === '03'){$('#pg06').click();}
|
||||||
|
|
||||||
$('.order-method-normal__btn').removeClass('active');
|
$('.order-method-normal__btn').removeClass('active');
|
||||||
$(this).addClass('active');
|
$(this).addClass('active');
|
||||||
@@ -650,13 +641,11 @@
|
|||||||
// Npay CID 세팅
|
// Npay CID 세팅
|
||||||
const kcpMid = '<c:out value="${data.payInfo.kcpMid}"/>';
|
const kcpMid = '<c:out value="${data.payInfo.kcpMid}"/>';
|
||||||
const bpayMid = '<c:out value="${data.payInfo.bpayMid}"/>';
|
const bpayMid = '<c:out value="${data.payInfo.bpayMid}"/>';
|
||||||
// 개발서버 네이버페이 CPID 구분 적용 취소
|
if('naverpay' === id) {
|
||||||
$(form).find('#siteCdMid').val(kcpMid);
|
$(form).find('#siteCdMid').val(bpayMid);
|
||||||
// if('naverpay' === id) {
|
} else {
|
||||||
// $(form).find('#siteCdMid').val(bpayMid);
|
$(form).find('#siteCdMid').val(kcpMid);
|
||||||
// } else {
|
}
|
||||||
// $(form).find('#siteCdMid').val(kcpMid);
|
|
||||||
// }
|
|
||||||
});
|
});
|
||||||
|
|
||||||
/* 결제예정금액 > 약관 전체동의 선택 이벤트 */
|
/* 결제예정금액 > 약관 전체동의 선택 이벤트 */
|
||||||
@@ -3039,7 +3028,7 @@
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('kcp' === pgCmpnyNm || 'toss' === pgCmpnyNm || 'kiwoom' === pgCmpnyNm || 'stripe' === pgCmpnyNm) {
|
if ('kcp' === pgCmpnyNm || 'toss' === pgCmpnyNm || 'kiwoom' === pgCmpnyNm) {
|
||||||
const div = $('#setleForm').find('.order-method-normal');
|
const div = $('#setleForm').find('.order-method-normal');
|
||||||
|
|
||||||
if (!$(div).find('.order-method-normal__btn-container button').hasClass('active')) {
|
if (!$(div).find('.order-method-normal__btn-container button').hasClass('active')) {
|
||||||
@@ -4248,27 +4237,11 @@
|
|||||||
</c:if>
|
</c:if>
|
||||||
<%-- 퀵계좌이체 끝 --%>
|
<%-- 퀵계좌이체 끝 --%>
|
||||||
|
|
||||||
<%-- Stripe 시작 --%>
|
|
||||||
<c:if test="${'Y' eq payInfo.stripeUseAt}">
|
|
||||||
<div class="custom-radio is-medium">
|
|
||||||
<input type="radio" name="pg" id="st01" value="stripe">
|
|
||||||
<label for="st01">엔화(¥) 결제</label>
|
|
||||||
</div>
|
|
||||||
<div id="st01Content" class="pgContent order-method-normal" <%-- style="display: none"--%>>
|
|
||||||
<div class="order-method-normal__btn-container">
|
|
||||||
<button type="button" name="01" id="stripe" class="order-method-normal__btn gift_pay">
|
|
||||||
<div class="order-method-normal__icon order-method-normal__icon--card"></div>신용카드
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</c:if>
|
|
||||||
<%-- Stripe 끝 --%>
|
|
||||||
|
|
||||||
<%-- toss 결제 시작 --%>
|
<%-- toss 결제 시작 --%>
|
||||||
<c:if test="${'02' eq payInfo.setleSetupTyCd}">
|
<c:if test="${'02' eq payInfo.setleSetupTyCd}">
|
||||||
<div class="custom-radio is-medium">
|
<div class="custom-radio is-medium">
|
||||||
<input type="radio" name="pg" id="pg03" value="toss">
|
<input type="radio" name="pg" id="pg03" value="toss">
|
||||||
<label for="pg03">원화(₩) 결제</label>
|
<label for="pg03">일반결제</label>
|
||||||
</div>
|
</div>
|
||||||
<div id="pg03Content" class="pgContent order-method-normal" <%-- style="display: none"--%>>
|
<div id="pg03Content" class="pgContent order-method-normal" <%-- style="display: none"--%>>
|
||||||
<div class="order-method-normal__btn-container">
|
<div class="order-method-normal__btn-container">
|
||||||
@@ -4400,7 +4373,7 @@
|
|||||||
<c:if test="${'01' eq payInfo.setleSetupTyCd}">
|
<c:if test="${'01' eq payInfo.setleSetupTyCd}">
|
||||||
<div class="custom-radio is-medium">
|
<div class="custom-radio is-medium">
|
||||||
<input type="radio" name="pg" id="pg04" value="kcp">
|
<input type="radio" name="pg" id="pg04" value="kcp">
|
||||||
<label for="pg04">원화(₩) 결제</label>
|
<label for="pg04">일반결제</label>
|
||||||
</div>
|
</div>
|
||||||
<div id="pg04Content" class="pgContent order-method-normal" <%-- style="display: none"--%>>
|
<div id="pg04Content" class="pgContent order-method-normal" <%-- style="display: none"--%>>
|
||||||
<div class="order-method-normal__btn-container">
|
<div class="order-method-normal__btn-container">
|
||||||
@@ -4532,7 +4505,7 @@
|
|||||||
<c:if test="${'03' eq payInfo.setleSetupTyCd}">
|
<c:if test="${'03' eq payInfo.setleSetupTyCd}">
|
||||||
<div class="custom-radio is-medium">
|
<div class="custom-radio is-medium">
|
||||||
<input type="radio" name="pg" id="pg06" value="kiwoom">
|
<input type="radio" name="pg" id="pg06" value="kiwoom">
|
||||||
<label for="pg06">원화(₩) 결제</label>
|
<label for="pg06">일반결제</label>
|
||||||
</div>
|
</div>
|
||||||
<div id="pg06Content" class="pgContent order-method-normal" <%-- style="display: none"--%>>
|
<div id="pg06Content" class="pgContent order-method-normal" <%-- style="display: none"--%>>
|
||||||
<div class="order-method-normal__btn-container">
|
<div class="order-method-normal__btn-container">
|
||||||
@@ -4681,11 +4654,11 @@
|
|||||||
<span class="cartOrderBox__td"><span class="cartOrderBox__discountMinus">(-)</span><span id="dscntAmtSapn" class="comma">0</span><span class="priceUnit">${curUnit}</span></span>
|
<span class="cartOrderBox__td"><span class="cartOrderBox__discountMinus">(-)</span><span id="dscntAmtSapn" class="comma">0</span><span class="priceUnit">${curUnit}</span></span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="cartOrderBox__total">
|
<div class="cartOrderBox__total" style="margin-bottom: 5px;">
|
||||||
<span class="cartOrderBox__totalTh">총 결제금액</span>
|
<span class="cartOrderBox__totalTh">총 결제금액</span>
|
||||||
<span class="cartOrderBox__td"><span id="setleAmtSapn" class="comma">0</span><span class="priceUnit">${curUnit}</span></span>
|
<span class="cartOrderBox__td"><span id="setleAmtSapn" class="comma">0</span><span class="priceUnit">${curUnit}</span></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="cartOrderBox__total cartOrderBox__totalKr" style="margin-top: 10px;">
|
<div class="cartOrderBox__total" style="margin-top: 5px;">
|
||||||
<span class="cartOrderBox__totalTh"></span>
|
<span class="cartOrderBox__totalTh"></span>
|
||||||
<span class="cartOrderBox__totalTd"><span id="setleAmtKrSapn" class="comma">0</span><span class="priceUnit">${krUnit}</span></span>
|
<span class="cartOrderBox__totalTd"><span id="setleAmtKrSapn" class="comma">0</span><span class="priceUnit">${krUnit}</span></span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -539,10 +539,7 @@
|
|||||||
</c:if>
|
</c:if>
|
||||||
<tr>
|
<tr>
|
||||||
<th>결제금액</th>
|
<th>결제금액</th>
|
||||||
<td>
|
<td><span class="comma"><fmt:formatNumber value="${setle.setleAmt}" pattern="#,###"/></span>${curUnit} / <span class="comma"><fmt:formatNumber value="${setle.wonSetleAmt}" pattern="#,###"/></span>${krUnit}</td>
|
||||||
<span class="comma"><fmt:formatNumber value="${setle.setleAmt}" pattern="#,###"/></span>${curUnit}
|
|
||||||
<c:if test="${data.setleList[0].pgCmpnyNm ne 'stripe'}">/ <span class="comma"><fmt:formatNumber value="${setle.wonSetleAmt}" pattern="#,###"/></span>${krUnit}</c:if>
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>결제일시</th>
|
<th>결제일시</th>
|
||||||
@@ -626,10 +623,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
<div class="cartOrderBox__total">
|
<div class="cartOrderBox__total">
|
||||||
<span class="cartOrderBox__totalTh">결제금액</span>
|
<span class="cartOrderBox__totalTh">결제금액</span>
|
||||||
<span class="cartOrderBox__totalTd">
|
<span class="cartOrderBox__totalTd"><span class="comma"><fmt:formatNumber value="${total.setleAmt}" pattern="#,###"/></span><span class="priceUnit">${curUnit}</span> / <span class="comma"><fmt:formatNumber value="${total.wonRlSetleAmt}" pattern="#,###"/></span><span class="priceUnit">${krUnit}</span></span>
|
||||||
<span class="comma"><fmt:formatNumber value="${total.setleAmt}" pattern="#,###"/></span><span class="priceUnit">${curUnit}</span>
|
|
||||||
<c:if test="${data.setleList[0].pgCmpnyNm ne 'stripe'}">/ <span class="comma"><fmt:formatNumber value="${total.wonRlSetleAmt}" pattern="#,###"/></span><span class="priceUnit">${krUnit}</span></c:if>
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,66 +0,0 @@
|
|||||||
<%@ 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 : OrsrReqstStripeR.jsp
|
|
||||||
Description : Stripe 주문 요청
|
|
||||||
Modification Information
|
|
||||||
|
|
||||||
수정일 수정자 수정내용
|
|
||||||
------- -------- ---------------------------
|
|
||||||
2026-09-17 이대환 최초 생성
|
|
||||||
--%>
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="ko">
|
|
||||||
<head>
|
|
||||||
<!-- <meta charset="UTF-8"> -->
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
|
|
||||||
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
|
||||||
<meta http-equiv="Expires" content="-1" />
|
|
||||||
<meta http-equiv="Pragma" content="no-cache" />
|
|
||||||
<script src="<c:url value='/pc/vendor/jquery-3.7.1.min.js'/>"></script>
|
|
||||||
|
|
||||||
<script type="text/javascript" language="javascript">
|
|
||||||
$(document).ready(function() {
|
|
||||||
$.ajax({
|
|
||||||
url : "<c:url value="/sopmal/stripe/checkout"/>",
|
|
||||||
type : "POST",
|
|
||||||
data : $('#order_info').serialize(),
|
|
||||||
success : function(res) {
|
|
||||||
console.log(res);
|
|
||||||
const data = JSON.parse(res.resBody.result);
|
|
||||||
window.location.replace(data.redirectUrl);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<%-- Controller에 넘어가는 값 --%>
|
|
||||||
<form name="order_info" id="order_info">
|
|
||||||
<input type="hidden" name="sopmalCd" class="sopmalCd" value="${data.setle.sopmalCd}" />
|
|
||||||
<input type="hidden" name="ordrInnb" class="ordrInnb" value="${data.setle.ordrInnb}" />
|
|
||||||
<input type="hidden" name="pgCmpnyNm" class="pgCmpnyNm" value="${data.setle.pgCmpnyNm}" />
|
|
||||||
<input type="hidden" name="setleTyCd" class="setleTyCd" value="${data.setle.setleTyCd}" />
|
|
||||||
|
|
||||||
<input type="hidden" name="goodsNm" class="goodsNm" value="${data.setle.goodsNm}"/>
|
|
||||||
<input type="hidden" name="setleAmt" class="setleAmt" value="${data.setle.wonSetleAmt}"/>
|
|
||||||
<input type="hidden" name="jpSetleAmt" class="jpSetleAmt" value="${data.setle.setleAmt}"/>
|
|
||||||
<input type="hidden" name="ordrrNm" class="ordrrNm" value="${data.ordr.ordrrNm}"/>
|
|
||||||
<input type="hidden" name="ordrrEmail" class="ordrrEmail" value="${data.ordr.ordrrEmail}"/>
|
|
||||||
<input type="hidden" name="ordrrMbtlnb" class="ordrrMbtlnb" value="${data.ordr.ordrrMbtlnb}"/>
|
|
||||||
<input type="hidden" name="mbrId" class="mbrId" value="${data.ordr.mbrId}"/>
|
|
||||||
<input type="hidden" name="mbrInnb" class="mbrInnb" value="${data.ordr.mbrInnb}" />
|
|
||||||
<input type="hidden" name="sesionId" class="sesionId" value="${data.ordr.sesionId}" />
|
|
||||||
<input type="hidden" name="subsvcInnb" id="subsvcInnb" value="${subsvcInnb}"/>
|
|
||||||
</form>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
<%@ 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 : PayStripeCnclC.jsp
|
|
||||||
Description : Stripe 결제 실패창
|
|
||||||
Modification Information
|
|
||||||
|
|
||||||
수정일 수정자 수정내용
|
|
||||||
------- -------- ---------------------------
|
|
||||||
2026-09-17 이대환 최초 생성
|
|
||||||
--%>
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="ko">
|
|
||||||
<head>
|
|
||||||
<title>결제 실패</title>
|
|
||||||
<meta http-equiv="x-ua-compatible" content="ie=edge" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
|
||||||
<script src="<c:url value='/pc/vendor/jquery-3.7.1.min.js'/>"></script>
|
|
||||||
<script>
|
|
||||||
$(document).ready(function() {
|
|
||||||
var returnUrl = '${returnUrl}';
|
|
||||||
var status = '${status}';
|
|
||||||
var payment_status = '${payment_status}';
|
|
||||||
var customer_details = '${customer_details}';
|
|
||||||
|
|
||||||
let form = $('<form></form>');
|
|
||||||
$(form).attr('method', 'post');
|
|
||||||
$(form).attr('action', returnUrl);
|
|
||||||
history.replaceState(null, '', returnUrl);
|
|
||||||
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'sopmalCd', value:'${sopmalCd}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'ordrInnb', value:'${ordrInnb}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'pgCmpnyNm', value:'${pgCmpnyNm}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'setleTyCd', value:'${setleTyCd}'}));
|
|
||||||
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'goodsNm', value:'${goodsNm}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'setleAmt', value:'${setleAmt}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'ordrrNm', value:'${ordrrNm}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'ordrrEmail', value:'${ordrrEmail}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'ordrrMbtlnb', value:'${ordrrMbtlnb}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'mbrId', value:'${mbrId}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'mbrInnb', value:'${mbrInnb}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'sesionId', value:'${sesionId}'}));
|
|
||||||
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'message', value:'${message}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'subsvcInnb', value:'${subsvcInnb}'}));
|
|
||||||
|
|
||||||
$(form).appendTo('body');
|
|
||||||
$(form).submit().remove();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<section>
|
|
||||||
<h1>결제 취소</h1>
|
|
||||||
</section>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,108 +0,0 @@
|
|||||||
<%@ 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 : PayStripeSucsC.jsp
|
|
||||||
Description : Stripe 결제 성공창
|
|
||||||
Modification Information
|
|
||||||
|
|
||||||
수정일 수정자 수정내용
|
|
||||||
------- -------- ---------------------------
|
|
||||||
2026-09-17 이대환 최초 생성
|
|
||||||
--%>
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="ko">
|
|
||||||
<head>
|
|
||||||
<title>결제 결과 확인 중</title>
|
|
||||||
<meta http-equiv="x-ua-compatible" content="ie=edge" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
margin: 0;
|
|
||||||
min-height: 100vh;
|
|
||||||
display: grid;
|
|
||||||
place-items: center;
|
|
||||||
background: #f8fafc;
|
|
||||||
color: #202938;
|
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
||||||
}
|
|
||||||
.payment-progress {
|
|
||||||
padding: 32px 20px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.payment-progress__spinner {
|
|
||||||
width: 44px;
|
|
||||||
height: 44px;
|
|
||||||
margin: 0 auto 24px;
|
|
||||||
border: 4px solid #e2e8f0;
|
|
||||||
border-top-color: #0075d4;
|
|
||||||
border-radius: 50%;
|
|
||||||
animation: payment-spin 0.9s linear infinite;
|
|
||||||
}
|
|
||||||
.payment-progress h1 {
|
|
||||||
margin: 0 0 10px;
|
|
||||||
font-size: 20px;
|
|
||||||
line-height: 1.5;
|
|
||||||
word-break: keep-all;
|
|
||||||
}
|
|
||||||
.payment-progress p {
|
|
||||||
margin: 0;
|
|
||||||
color: #64748b;
|
|
||||||
font-size: 15px;
|
|
||||||
line-height: 1.6;
|
|
||||||
}
|
|
||||||
@keyframes payment-spin {
|
|
||||||
to { transform: rotate(360deg); }
|
|
||||||
}
|
|
||||||
@media (prefers-reduced-motion: reduce) {
|
|
||||||
.payment-progress__spinner { animation: none; }
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<script src="<c:url value='/pc/vendor/jquery-3.7.1.min.js'/>"></script>
|
|
||||||
<script>
|
|
||||||
$(document).ready(function() {
|
|
||||||
var returnUrl = '${returnUrl}';
|
|
||||||
var status = '${status}';
|
|
||||||
var payment_status = '${payment_status}';
|
|
||||||
var customer_details = '${customer_details}';
|
|
||||||
|
|
||||||
let form = $('<form></form>');
|
|
||||||
$(form).attr('method', 'post');
|
|
||||||
$(form).attr('action', returnUrl);
|
|
||||||
history.replaceState(null, '', returnUrl);
|
|
||||||
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'sopmalCd', value:'${sopmalCd}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'ordrInnb', value:'${ordrInnb}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'pgCmpnyNm', value:'${pgCmpnyNm}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'setleTyCd', value:'${setleTyCd}'}));
|
|
||||||
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'goodsNm', value:'${goodsNm}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'setleAmt', value:'${setleAmt}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'ordrrNm', value:'${ordrrNm}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'ordrrEmail', value:'${ordrrEmail}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'ordrrMbtlnb', value:'${ordrrMbtlnb}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'mbrId', value:'${mbrId}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'mbrInnb', value:'${mbrInnb}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'sesionId', value:'${sesionId}'}));
|
|
||||||
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'message', value:'${message}'}));
|
|
||||||
$(form).append($('<input/>', {type:'hidden', name:'subsvcInnb', value:'${subsvcInnb}'}));
|
|
||||||
|
|
||||||
$(form).appendTo('body');
|
|
||||||
$(form).submit().remove();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<section class="payment-progress" role="status" aria-live="polite">
|
|
||||||
<div class="payment-progress__spinner" aria-hidden="true"></div>
|
|
||||||
<h1>결제 결과를 확인하고 있습니다.</h1>
|
|
||||||
<p>잠시만 기다려 주세요.</p>
|
|
||||||
</section>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
|
||||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="ko">
|
|
||||||
<head>
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${mobile}">
|
|
||||||
<jsp:include page="/WEB-INF/views/comm/mobile/Include.jsp"/>
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
<jsp:include page="/WEB-INF/views/comm/Include.jsp"/>
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
<title>결제 중단 안내</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="screen-wrap">
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${mobile}">
|
|
||||||
<header class="header header--sub">
|
|
||||||
<jsp:include page="/WEB-INF/views/comm/mobile/Header.jsp"/>
|
|
||||||
</header>
|
|
||||||
<jsp:include page="/WEB-INF/views/comm/mobile/TabBar.jsp"/>
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
<jsp:include page="/WEB-INF/views/comm/Header.jsp"/>
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
<main class="main content-wrap">
|
|
||||||
<div class="sub-wrapper sub-page">
|
|
||||||
<div class="sub-content sub-box">
|
|
||||||
<div class="orderFailed">
|
|
||||||
<div class="orderFailed__inner">
|
|
||||||
<h3 class="orderFailed__title">결제를 중단하셨습니다.</h3>
|
|
||||||
<p class="orderFailed__text">이 결제창에서 결제를 완료하지 않았습니다.<br>주문/배송조회에서 주문 상태를 확인한 뒤 다시 결제해 주세요.</p>
|
|
||||||
</div>
|
|
||||||
<div class="sub-bottom-btn-container fullBtnSection">
|
|
||||||
<a class="btn xl outline" href="<c:url value='/sopmal/mpage/ordr/selectMbrOrdrListInqire'/>">주문/배송조회</a>
|
|
||||||
<a class="btn xl outline" href="<c:url value='/sopmal/main'/>">쇼핑 계속하기</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<c:if test="${!mobile}">
|
|
||||||
<jsp:include page="/WEB-INF/views/comm/Footer.jsp"/>
|
|
||||||
</c:if>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
|
||||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
|
||||||
<c:url var="cancelUrl" value="/sopmal/stripe/stripeCancel">
|
|
||||||
<c:param name="sessionId" value="${sessionId}"/>
|
|
||||||
<c:param name="sopmalCd" value="${sopmalCd}"/>
|
|
||||||
</c:url>
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="ko">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>결제창으로 이동</title>
|
|
||||||
<script>
|
|
||||||
window.addEventListener('pageshow', function (event) {
|
|
||||||
const checkout = document.getElementById('stripeCheckout');
|
|
||||||
const cancel = document.getElementById('stripeCancel');
|
|
||||||
const navigation = performance.getEntriesByType('navigation')[0];
|
|
||||||
// 일반 복귀와 BFCache 복귀 모두 새 결제 세션을 만들지 않고 처리한다.
|
|
||||||
if (event.persisted || (navigation && navigation.type === 'back_forward')
|
|
||||||
|| (history.state && history.state.stripeRedirected)
|
|
||||||
|| !checkout.getAttribute('href')) {
|
|
||||||
window.location.replace(cancel.href);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
history.replaceState({stripeRedirected: true}, '', window.location.href);
|
|
||||||
window.location.assign(checkout.href);
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<p>결제창으로 이동하고 있습니다.</p>
|
|
||||||
<a id="stripeCheckout" href="<c:out value='${checkoutUrl}'/>">결제창 열기</a>
|
|
||||||
<a id="stripeCancel" href="<c:out value='${cancelUrl}'/>">결제 중단</a>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -524,14 +524,13 @@
|
|||||||
});*/
|
});*/
|
||||||
|
|
||||||
/* 결제정보 결제수단 버튼 선택 이벤트 */
|
/* 결제정보 결제수단 버튼 선택 이벤트 */
|
||||||
$('input[name="pg"]').on('click', function(event, skipDefaultMethod) {
|
$('input[name="pg"]').on('click', function() {
|
||||||
const form = $(this).closest('#setleForm')
|
const form = $(this).closest('#setleForm')
|
||||||
const id = $(this).attr('id');
|
const id = $(this).attr('id');
|
||||||
const pgCmpnyNm = $(this).val();
|
const pgCmpnyNm = $(this).val();
|
||||||
|
|
||||||
$(form).find('.pgContent').hide();
|
$(form).find('.pgContent').hide();
|
||||||
$(form).find('#' + id + 'Content').show();
|
$(form).find('#' + id + 'Content').show();
|
||||||
$('.cartOrderBox__totalKr').show();
|
|
||||||
|
|
||||||
//$(form).find('#setleSetupTyCd').val() === '01' ? $(form).find('#pg04Content').show() : $(form).find('#pg03Content').show();
|
//$(form).find('#setleSetupTyCd').val() === '01' ? $(form).find('#pg04Content').show() : $(form).find('#pg03Content').show();
|
||||||
if($(form).find('#setleSetupTyCd').val() === '01'){$(form).find('#pg04Content').show();}
|
if($(form).find('#setleSetupTyCd').val() === '01'){$(form).find('#pg04Content').show();}
|
||||||
@@ -577,22 +576,12 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
$(form).find('#setleTyCd').val('03');
|
$(form).find('#setleTyCd').val('03');
|
||||||
} else if('st01' === id){ //Stripe
|
|
||||||
$('.cartOrderBox__totalKr').hide();
|
|
||||||
} else {
|
} else {
|
||||||
$(form).find('#setleTyCd').val('');
|
$(form).find('#setleTyCd').val('');
|
||||||
|
|
||||||
$('.order-method-normal__btn').removeClass('active');
|
$('.order-method-normal__btn').removeClass('active');
|
||||||
$('.order-method-normal__content').hide();
|
$('.order-method-normal__content').hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 통화를 선택하면 사용 가능한 첫 결제수단을 기존 클릭 처리로 선택한다.
|
|
||||||
// 결제수단 버튼에서 라디오를 갱신할 때는 재귀 선택을 생략한다.
|
|
||||||
if (!skipDefaultMethod && ['st01', 'pg03', 'pg04', 'pg06'].includes(id)) {
|
|
||||||
$(form).find('#' + id + 'Content')
|
|
||||||
.find('.order-method-normal__btn:visible:not(:disabled)')
|
|
||||||
.first().trigger('click');
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
/* 결제정보 > 일반결제 > 결제수단 버튼 선택 이벤트 */
|
/* 결제정보 > 일반결제 > 결제수단 버튼 선택 이벤트 */
|
||||||
@@ -601,8 +590,10 @@
|
|||||||
const content = $('.order-method-normal__content');
|
const content = $('.order-method-normal__content');
|
||||||
const useCashMlgAmt = $('#useCashMlgAmt').val();
|
const useCashMlgAmt = $('#useCashMlgAmt').val();
|
||||||
|
|
||||||
const pgId = $(this).closest('.pgContent').attr('id').replace(/Content$/, '');
|
//$('#setleSetupTyCd').val() === '01' ? $('#pg04').click() : $('#pg03').click();
|
||||||
$('#' + pgId).trigger('click', [true]);
|
if($('#setleSetupTyCd').val() === '01'){$('#pg04').click();}
|
||||||
|
else if($('#setleSetupTyCd').val() === '02'){$('#pg03').click();}
|
||||||
|
else if($('#setleSetupTyCd').val() === '03'){$('#pg06').click();}
|
||||||
|
|
||||||
$('.order-method-normal__btn').removeClass('active');
|
$('.order-method-normal__btn').removeClass('active');
|
||||||
$(this).addClass('active');
|
$(this).addClass('active');
|
||||||
@@ -3007,7 +2998,7 @@
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('kcp' === pgCmpnyNm || 'toss' === pgCmpnyNm || 'kiwoom' === pgCmpnyNm || 'stripe' === pgCmpnyNm) {
|
if ('kcp' === pgCmpnyNm || 'toss' === pgCmpnyNm || 'kiwoom' === pgCmpnyNm) {
|
||||||
const div = $('#setleForm').find('.order-method-normal');
|
const div = $('#setleForm').find('.order-method-normal');
|
||||||
|
|
||||||
if (!$(div).find('.order-method-normal__btn-container button').hasClass('active')) {
|
if (!$(div).find('.order-method-normal__btn-container button').hasClass('active')) {
|
||||||
@@ -4214,27 +4205,11 @@
|
|||||||
</c:if>
|
</c:if>
|
||||||
<%-- 퀵계좌이체 끝 --%>
|
<%-- 퀵계좌이체 끝 --%>
|
||||||
|
|
||||||
<%-- Stripe 시작 --%>
|
|
||||||
<c:if test="${'Y' eq payInfo.stripeUseAt}">
|
|
||||||
<div class="custom-radio is-medium">
|
|
||||||
<input type="radio" name="pg" id="st01" value="stripe">
|
|
||||||
<label for="st01">엔화(¥) 결제</label>
|
|
||||||
</div>
|
|
||||||
<div id="st01Content" class="pgContent order-method-normal" <%-- style="display: none"--%>>
|
|
||||||
<div class="order-method-normal__btn-container">
|
|
||||||
<button type="button" name="01" id="stripe" class="order-method-normal__btn gift_pay">
|
|
||||||
<div class="order-method-normal__icon order-method-normal__icon--card"></div>신용카드
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</c:if>
|
|
||||||
<%-- Stripe 끝 --%>
|
|
||||||
|
|
||||||
<%-- toss 결제 시작 --%>
|
<%-- toss 결제 시작 --%>
|
||||||
<c:if test="${'02' eq payInfo.setleSetupTyCd}">
|
<c:if test="${'02' eq payInfo.setleSetupTyCd}">
|
||||||
<div class="custom-radio is-medium">
|
<div class="custom-radio is-medium">
|
||||||
<input type="radio" name="pg" id="pg03" value="toss">
|
<input type="radio" name="pg" id="pg03" value="toss">
|
||||||
<label for="pg03">원화(₩) 결제</label>
|
<label for="pg03">일반결제</label>
|
||||||
</div>
|
</div>
|
||||||
<div id="pg03Content" class="pgContent order-method-normal" <%-- style="display: none"--%>>
|
<div id="pg03Content" class="pgContent order-method-normal" <%-- style="display: none"--%>>
|
||||||
<div class="order-method-normal__btn-container">
|
<div class="order-method-normal__btn-container">
|
||||||
@@ -4366,7 +4341,7 @@
|
|||||||
<c:if test="${'01' eq payInfo.setleSetupTyCd}">
|
<c:if test="${'01' eq payInfo.setleSetupTyCd}">
|
||||||
<div class="custom-radio is-medium">
|
<div class="custom-radio is-medium">
|
||||||
<input type="radio" name="pg" id="pg04" value="kcp">
|
<input type="radio" name="pg" id="pg04" value="kcp">
|
||||||
<label for="pg04">원화(₩) 결제</label>
|
<label for="pg04">일반결제</label>
|
||||||
</div>
|
</div>
|
||||||
<div id="pg04Content" class="pgContent order-method-normal" <%-- style="display: none"--%>>
|
<div id="pg04Content" class="pgContent order-method-normal" <%-- style="display: none"--%>>
|
||||||
<div class="order-method-normal__btn-container">
|
<div class="order-method-normal__btn-container">
|
||||||
@@ -4498,7 +4473,7 @@
|
|||||||
<c:if test="${'03' eq payInfo.setleSetupTyCd}">
|
<c:if test="${'03' eq payInfo.setleSetupTyCd}">
|
||||||
<div class="custom-radio is-medium">
|
<div class="custom-radio is-medium">
|
||||||
<input type="radio" name="pg" id="pg06" value="kiwoom">
|
<input type="radio" name="pg" id="pg06" value="kiwoom">
|
||||||
<label for="pg06">원화(₩) 결제</label>
|
<label for="pg06">일반결제</label>
|
||||||
</div>
|
</div>
|
||||||
<div id="pg06Content" class="pgContent order-method-normal" <%-- style="display: none"--%>>
|
<div id="pg06Content" class="pgContent order-method-normal" <%-- style="display: none"--%>>
|
||||||
<div class="order-method-normal__btn-container">
|
<div class="order-method-normal__btn-container">
|
||||||
@@ -4647,11 +4622,11 @@
|
|||||||
<span class="cartOrderBox__td"><span class="cartOrderBox__discountMinus">(-)</span><span id="dscntAmtSapn" class="comma">0</span><span class="priceUnit">${curUnit}</span></span>
|
<span class="cartOrderBox__td"><span class="cartOrderBox__discountMinus">(-)</span><span id="dscntAmtSapn" class="comma">0</span><span class="priceUnit">${curUnit}</span></span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="cartOrderBox__total">
|
<div class="cartOrderBox__total" style="margin-bottom: 5px;">
|
||||||
<span class="cartOrderBox__totalTh">총 결제금액</span>
|
<span class="cartOrderBox__totalTh">총 결제금액</span>
|
||||||
<span class="cartOrderBox__td"><span id="setleAmtSapn" class="comma">0</span><span class="priceUnit">${curUnit}</span></span>
|
<span class="cartOrderBox__td"><span id="setleAmtSapn" class="comma">0</span><span class="priceUnit">${curUnit}</span></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="cartOrderBox__total cartOrderBox__totalKr" style="margin-top: 10px;">
|
<div class="cartOrderBox__total" style="margin-top: 5px;">
|
||||||
<span class="cartOrderBox__totalTh"></span>
|
<span class="cartOrderBox__totalTh"></span>
|
||||||
<span class="cartOrderBox__totalTd"><span id="setleAmtKrSapn" class="comma">0</span><span class="priceUnit">${krUnit}</span></span>
|
<span class="cartOrderBox__totalTd"><span id="setleAmtKrSapn" class="comma">0</span><span class="priceUnit">${krUnit}</span></span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
--%>
|
--%>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko">
|
<html lang="ko">
|
||||||
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<jsp:include page="/WEB-INF/views/comm/mobile/Include.jsp"/>
|
<jsp:include page="/WEB-INF/views/comm/mobile/Include.jsp"/>
|
||||||
@@ -27,15 +26,9 @@
|
|||||||
history.scrollRestoration = 'manual';
|
history.scrollRestoration = 'manual';
|
||||||
}
|
}
|
||||||
$(window).scrollTop(0);
|
$(window).scrollTop(0);
|
||||||
/* ABOUT 하위 화면은 게시판명이 아닌 대메뉴명을 표시 */
|
/*헤더에 타이틀 set*/
|
||||||
<c:choose>
|
const title = '<c:out value="${resultMap.bbsInfo.bbsNm}"/>';
|
||||||
<c:when test="${param.mobileAboutMenuAt eq 'Y'}">
|
fn_set_header_title(title);
|
||||||
fn_set_header_title('ABOUT');
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
fn_set_header_title('<c:out value="${resultMap.bbsInfo.bbsNm}"/>');
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
fn_select_cn();
|
fn_select_cn();
|
||||||
// data-micromodal-trigger 속성을 가진 버튼을 클릭하면 해당 ID의 모달이 열림
|
// data-micromodal-trigger 속성을 가진 버튼을 클릭하면 해당 ID의 모달이 열림
|
||||||
// 모달 배경화면 스크롤 방지
|
// 모달 배경화면 스크롤 방지
|
||||||
@@ -285,7 +278,7 @@
|
|||||||
const reqUrl = $("#reqUrl").val();
|
const reqUrl = $("#reqUrl").val();
|
||||||
if (reqUrl === 'csc') {
|
if (reqUrl === 'csc') {
|
||||||
form.attr("action", "/sopmal/csc/selectCscListForm");
|
form.attr("action", "/sopmal/csc/selectCscListForm");
|
||||||
} else if (reqUrl === 'subPage' || reqUrl === 'detail') {
|
} else if (reqUrl === 'subPage') {
|
||||||
form.attr("action", "/sopmal/csc/selectSubPageListForm");
|
form.attr("action", "/sopmal/csc/selectSubPageListForm");
|
||||||
}
|
}
|
||||||
form.attr("method", "POST");
|
form.attr("method", "POST");
|
||||||
@@ -1259,11 +1252,8 @@
|
|||||||
<i class="icon icon_lock"></i>
|
<i class="icon icon_lock"></i>
|
||||||
</c:if>
|
</c:if>
|
||||||
</h4>
|
</h4>
|
||||||
<c:if test="${param.mobileAboutMenuAt ne 'Y'}">
|
|
||||||
<ul class="eventDetail__list">
|
<ul class="eventDetail__list">
|
||||||
<c:if test="${bbsInfo.registDtYn eq 'Y'}">
|
<li><c:out value="${bbscttInfo.sumRegistDt}"/></li>
|
||||||
<li><c:out value="${bbscttInfo.sumRegistDt}"/></li>
|
|
||||||
</c:if>
|
|
||||||
<li>조회 <c:out value="${bbscttInfo.inqireCnt}"/></li>
|
<li>조회 <c:out value="${bbscttInfo.inqireCnt}"/></li>
|
||||||
<li>
|
<li>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
@@ -1301,7 +1291,6 @@
|
|||||||
</c:choose>
|
</c:choose>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</c:if>
|
|
||||||
</div>
|
</div>
|
||||||
<%-------------------------------%>
|
<%-------------------------------%>
|
||||||
<%--첨부 파일 다운로드 영역--%>
|
<%--첨부 파일 다운로드 영역--%>
|
||||||
@@ -1424,7 +1413,7 @@
|
|||||||
</c:if>
|
</c:if>
|
||||||
<%-------------------------------%>
|
<%-------------------------------%>
|
||||||
<%--연관상품영역--%>
|
<%--연관상품영역--%>
|
||||||
<c:if test="${bbsInfo.recomendGoodsExpsrAt eq 'Y' && not empty goodsList}">
|
<c:if test="${bbsInfo.recomendGoodsExpsrAt eq 'Y' && not empty goodsList.relateInfoList}">
|
||||||
<section class="main-section main-section__category-type">
|
<section class="main-section main-section__category-type">
|
||||||
<div class="main-section-header">
|
<div class="main-section-header">
|
||||||
<div class="main-section-title">
|
<div class="main-section-title">
|
||||||
@@ -1434,66 +1423,91 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="product-list-vertical-twoAndaHalf">
|
<div class="product-list-vertical-twoAndaHalf">
|
||||||
<div class="${fn:length(goodsList) gt 4 ? 'swiper product-list-vertical-twoAndaHalf__swiper' : 'product-list-type-2cols'}">
|
<div class="swiper product-list-vertical-twoAndaHalf__swiper">
|
||||||
<div class="${fn:length(goodsList) gt 4 ? 'swiper-wrapper' : 'product-list-type-2cols__list'}">
|
<div class="swiper-wrapper">
|
||||||
<c:forEach var = "item" items="${goodsList}">
|
<c:forEach var = "item" items="${goodsList.relateInfoList}">
|
||||||
<c:if test = "${not empty item.goodsInnb}">
|
<c:if test = "${not empty item.goodsInnb}">
|
||||||
<div class="${fn:length(goodsList) gt 4 ? 'swiper-slide' : ''}">
|
<div class="swiper-slide">
|
||||||
<div class="product-unit">
|
<div class="product-unit">
|
||||||
<div class="product-unit-image">
|
<div class="product-unit-image">
|
||||||
<c:if test="${item.goodsSttusCd eq '02'}">
|
<c:if test = "item.goodsSttusCd ne '01'">
|
||||||
<div class="sold-out">
|
<div class="sold-out">
|
||||||
<span>입고 대기중</span>
|
<c:choose>
|
||||||
|
<c:when test ="${item.goodsSttusCd eq '02'}">
|
||||||
|
<span>입고 대기중</span>
|
||||||
|
</c:when>
|
||||||
|
<c:when test ="${item.goodsSttusCd eq '03'}">
|
||||||
|
<span>판매중지</span>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
|
<c:forEach var="img" items="${goodsList.relateImgList}">
|
||||||
|
<c:if test="${item.goodsInnb eq img.goodsInnb}">
|
||||||
<a style="cursor:pointer" loading="lazy"
|
<a style="cursor:pointer" loading="lazy"
|
||||||
onclick = "fn_move_goods_dtl(<c:out value="${item.goodsInnb}"/>)">
|
onclick = "fn_move_goods_dtl(<c:out value="${item.goodsInnb}"/>)">
|
||||||
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
|
||||||
<img src="<c:out value = "${cdnurl}${item.img}"/>"
|
<img src="<c:out value = "${cdnurl}${img.img}"/>"
|
||||||
onerror="this.src='/pc/images/image_placeholder.png'"
|
onerror="this.src='/pc/images/image_placeholder.png'"
|
||||||
alt="<c:out value="${item.goodsNm}"/>">
|
alt="해당 이미지에 대한 설명">
|
||||||
</a>
|
</a>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
</div>
|
</div>
|
||||||
<div class="product-unit-info d-flex flex-column" style="flex-direction:column">
|
<div class="product-unit-info">
|
||||||
<c:if test="${not empty item.iconCdNmList && item.iconExpsrAt eq 'Y'}">
|
<c:set var="iconString" value="${item.goodsIconCd}" />
|
||||||
<div class="product-badge-container col order-${item.iconExpsrOrdr-1}" style="order: ${item.iconExpsrOrdr-1}">
|
<c:set var="iconCdList" value="${fn:split(iconString, ',')}" />
|
||||||
<c:forEach items="${fn:split(item.iconCdNmList, ',')}" var="iconCdNm">
|
<c:forEach var = "iconCd" items="${iconCdList}">
|
||||||
<span class="product-badge ${fn:toLowerCase(iconCdNm)}" data-badge-cd="${iconCdNm}">${fn:replace(fn:toUpperCase(iconCdNm), '-', ' ')}</span>
|
<c:if test = "${iconCd eq 'new'}">
|
||||||
</c:forEach>
|
<span class="product-badge new" data-badge-cd="new">NEW</span>
|
||||||
</div>
|
</c:if>
|
||||||
</c:if>
|
<c:if test = "${iconCd eq 'hot'}">
|
||||||
<c:if test="${item.goodsNmExpsrAt eq 'Y'}">
|
<span class="product-badge hot" data-badge-cd="hot">HOT</span>
|
||||||
<div class="product-unit-title col order-${item.goodsNmExpsrOrdr-1}" style="order: ${item.goodsNmExpsrOrdr-1}">
|
</c:if>
|
||||||
|
<c:if test = "${iconCd eq 'best'}">
|
||||||
|
<span class="product-badge best" data-badge-cd="best">BEST</span>
|
||||||
|
</c:if>
|
||||||
|
<c:if test = "${iconCd eq 'md-pick'}">
|
||||||
|
<span class="product-badge md-pick" data-badge-cd="md-pick">MD PICK</span>
|
||||||
|
</c:if>
|
||||||
|
<c:if test = "${iconCd eq 'hot-deal'}">
|
||||||
|
<span class="product-badge four-row" data-badge-cd="four-row">HOT DEAL</span>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
|
<div class="product-unit-info__inner">
|
||||||
|
<div class="product-unit-title">
|
||||||
<a style="cursor:pointer" onclick = "fn_move_goods_dtl(<c:out value="${item.goodsInnb}"/>)">
|
<a style="cursor:pointer" onclick = "fn_move_goods_dtl(<c:out value="${item.goodsInnb}"/>)">
|
||||||
<c:out value = "${item.goodsNm}"/>
|
<c:out value = "${item.goodsNm}"/>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
<div class="product-unit-price">
|
||||||
<c:if test="${item.pricExpsrAt eq 'Y'}">
|
<c:forEach var="goodsOpt" items="${goodsList.relateGoodsOptList}">
|
||||||
<div class="product-unit-price col order-${item.pricExpsrOrdr-1}" style="order: ${item.pricExpsrOrdr-1}">
|
<c:if test="${item.goodsInnb eq goodsOpt.goodsInnb && goodsOpt.stdrDvAt eq 'Y'}">
|
||||||
<div class="product-unit-price__price">
|
<div class="product-unit-price__price">
|
||||||
<span class="product-unit-price__original <c:if test="${item.slePercent eq 0}">visually-hidden</c:if>">
|
<span class="product-unit-price__original">
|
||||||
<fmt:formatNumber value="${item.cnsmrpric}"/> ${curUnit}
|
<fmt:formatNumber value="${goodsOpt.cnsmrpric}" pattern="#,###"/>
|
||||||
</span>
|
</span>
|
||||||
<span class="product-unit-price__current">
|
<span class="product-unit-price__current">
|
||||||
<fmt:formatNumber value="${item.slepric}"/> ${curUnit}
|
<fmt:formatNumber value="${goodsOpt.slepric}" pattern="#,###"/>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="product-unit-price__sale <c:if test="${item.slePercent eq 0}">visually-hidden</c:if>">
|
<div class="product-unit-price__sale">
|
||||||
<span class="percent"><c:out value = "${item.slePercent}"/> %</span>
|
<span class="percent"><c:out value = "${goodsOpt.slePercent}"/>%</span>
|
||||||
</div>
|
</div>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
<span class="product-unit-price__monthly-payment"><c:out value = "${item.srtDc}"/></span>
|
||||||
<c:if test="${item.reprsntDcExpsrAt eq 'Y'}">
|
</div>
|
||||||
<div class="product-unit-price__monthly-payment col order-${item.reprsntDcExpsrOrdr-1}" style="order: ${item.reprsntDcExpsrOrdr-1}"><c:out value = "${item.reprsntDc}"/></div>
|
<div class="product-unit-rating">
|
||||||
</c:if>
|
<i class="icon icon_rating-star"></i>
|
||||||
<c:if test="${item.rvwEvlScreExpsrAt eq 'Y'}">
|
<c:forEach var = "evlInfo" items="${goodsList.goodsRvwEvlList}">
|
||||||
<div class="product-unit-rating col order-${item.rvwEvlScreExpsrOrdr-1}" style="order: ${item.rvwEvlScreExpsrOrdr-1}">
|
<c:if test = "${evlInfo.goodsInnb eq item.goodsInnb}">
|
||||||
<i class="icon icon_rating-star"></i>
|
<span class="product-unit-rating__score"><c:out value = "${evlInfo.avgEvlScore}"/>${goodsOpt.goodInnb}</span>
|
||||||
<span class="product-unit-rating__score"><c:out value = "${item.avgEvlScore}"/></span>
|
<span class="product-unit-rating__count">(<fmt:formatNumber value="${evlInfo.cntBbsctt}" pattern="#,###"/>)</span>
|
||||||
<span class="product-unit-rating__count">(<fmt:formatNumber value="${item.cntEvlScor}"/>)</span>
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1761,9 +1775,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form id="hiddenForm">
|
<form id="hiddenForm">
|
||||||
<input type="hidden" name="mobileParentCtgryId" value="<c:out value="${param.mobileParentCtgryId}"/>"/>
|
|
||||||
<input type="hidden" name="mobileAboutMenuAt" value="<c:out value="${param.mobileAboutMenuAt}"/>"/>
|
|
||||||
<input type="hidden" name="mobileCurrentCtgryId" value="<c:out value="${param.mobileCurrentCtgryId}"/>"/>
|
|
||||||
<%--목록 관련--%>
|
<%--목록 관련--%>
|
||||||
<input type="hidden" name="pageIndex" value="<c:out value="${bbscttVO.pageIndex}"/>"/>
|
<input type="hidden" name="pageIndex" value="<c:out value="${bbscttVO.pageIndex}"/>"/>
|
||||||
<input type="hidden" name="bbsTyCd" value="<c:out value="${bbscttVO.bbsTyCd}"/>"/>
|
<input type="hidden" name="bbsTyCd" value="<c:out value="${bbscttVO.bbsTyCd}"/>"/>
|
||||||
|
|||||||
@@ -314,9 +314,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<form id = "dtlForm" action="/sopmal/csc/selectBbscttDtlInqire" method="get">
|
<form id = "dtlForm" action="/sopmal/csc/selectBbscttDtlInqire" method="get">
|
||||||
<input type="hidden" name="mobileParentCtgryId" value="<c:out value="${param.mobileParentCtgryId}"/>"/>
|
|
||||||
<input type="hidden" name="mobileAboutMenuAt" value="<c:out value="${param.mobileAboutMenuAt}"/>"/>
|
|
||||||
<input type="hidden" name="mobileCurrentCtgryId" value="<c:out value="${param.mobileCurrentCtgryId}"/>"/>
|
|
||||||
<input type="hidden" name="bbscttInnb" id="bbscttInnb"><%--게시글 고유번호--%>
|
<input type="hidden" name="bbscttInnb" id="bbscttInnb"><%--게시글 고유번호--%>
|
||||||
<input type="hidden" name="bbsId" value="<c:out value = "${bbsInfo.bbsId}"/>"/><%--게시판아이디--%>
|
<input type="hidden" name="bbsId" value="<c:out value = "${bbsInfo.bbsId}"/>"/><%--게시판아이디--%>
|
||||||
<input type="hidden" name="bbsTyCd" value="<c:out value = "${bbsInfo.bbsTyCd}"/>"/><%--게시판타입--%>
|
<input type="hidden" name="bbsTyCd" value="<c:out value = "${bbsInfo.bbsTyCd}"/>"/><%--게시판타입--%>
|
||||||
|
|||||||
@@ -39,15 +39,9 @@
|
|||||||
awaitCloseAnimation: true,
|
awaitCloseAnimation: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
/* ABOUT 하위 화면은 게시판명이 아닌 대메뉴명을 표시 */
|
/*헤더에 타이틀 set*/
|
||||||
<c:choose>
|
const title = '<c:out value="${resultMap.bbsInfo.bbsNm}"/>';/*게시판이름*/
|
||||||
<c:when test="${param.mobileAboutMenuAt eq 'Y'}">
|
fn_set_header_title(title);
|
||||||
fn_set_header_title('ABOUT');
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
fn_set_header_title('<c:out value="${resultMap.bbsInfo.bbsNm}"/>');
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
|
|
||||||
/*box_tab 클릭 이벤트*/
|
/*box_tab 클릭 이벤트*/
|
||||||
$(".headerTab__item").on("click", function () {
|
$(".headerTab__item").on("click", function () {
|
||||||
@@ -353,11 +347,6 @@
|
|||||||
fn_create_input("reqUrl","subPage", form);
|
fn_create_input("reqUrl","subPage", form);
|
||||||
fn_create_input("bbsId", $("#bbsId").val(), form);
|
fn_create_input("bbsId", $("#bbsId").val(), form);
|
||||||
fn_create_input("cscAt", $("#cscAt").val(), form);
|
fn_create_input("cscAt", $("#cscAt").val(), form);
|
||||||
<c:if test="${param.mobileAboutMenuAt eq 'Y'}">
|
|
||||||
fn_create_input("mobileParentCtgryId", '<c:out value="${param.mobileParentCtgryId}"/>', form);
|
|
||||||
fn_create_input("mobileAboutMenuAt", 'Y', form);
|
|
||||||
fn_create_input("mobileCurrentCtgryId", '<c:out value="${param.mobileCurrentCtgryId}"/>', form);
|
|
||||||
</c:if>
|
|
||||||
/*let pageUnit = '';
|
/*let pageUnit = '';
|
||||||
//페이지 유닛 계산
|
//페이지 유닛 계산
|
||||||
const pgeVtcCnt = $("#pgeVtcCnt").val();//ROW
|
const pgeVtcCnt = $("#pgeVtcCnt").val();//ROW
|
||||||
@@ -581,7 +570,7 @@
|
|||||||
let regusrNm;
|
let regusrNm;
|
||||||
if (resultList.regusrDvCd === '99') {
|
if (resultList.regusrDvCd === '99') {
|
||||||
regusrNm = `\${ resultList.maskingRegusrNm}[비회원]`;
|
regusrNm = `\${ resultList.maskingRegusrNm}[비회원]`;
|
||||||
} else if (resultList.regusrDvCd === '03' && resultList.npayBbscttSnb != null) {
|
} else if (resultList.regusrDvCd === '03' && resultList.npayBbscttSnb !== null) {
|
||||||
regusrNm = `naverpay`;
|
regusrNm = `naverpay`;
|
||||||
} else if (resultList.regusrDvCd === '02') {
|
} else if (resultList.regusrDvCd === '02') {
|
||||||
regusrNm = `\${ resultList.mngrNm}`;
|
regusrNm = `\${ resultList.mngrNm}`;
|
||||||
@@ -642,7 +631,7 @@
|
|||||||
// 비밀글 여부
|
// 비밀글 여부
|
||||||
if (resultList.secretBbscttAt === 'Y') {
|
if (resultList.secretBbscttAt === 'Y') {
|
||||||
if (resultList.regusrDvCd !== '02') {
|
if (resultList.regusrDvCd !== '02') {
|
||||||
if (resultList.answCn != null) {
|
if (resultList.answCn !== null) {
|
||||||
list += `[\${resultList.answCn}] `;
|
list += `[\${resultList.answCn}] `;
|
||||||
}
|
}
|
||||||
list += `<span>\${resultList.maskingRegusrNm}</span>님의 \${bbsInfo.bbsNm}`;
|
list += `<span>\${resultList.maskingRegusrNm}</span>님의 \${bbsInfo.bbsNm}`;
|
||||||
@@ -650,7 +639,7 @@
|
|||||||
list += `비밀글입니다.`;
|
list += `비밀글입니다.`;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (resultList.answCn != null) {
|
if (resultList.answCn !== null) {
|
||||||
list += `[\${resultList.answCn}] `;
|
list += `[\${resultList.answCn}] `;
|
||||||
}
|
}
|
||||||
list += sj;
|
list += sj;
|
||||||
@@ -660,7 +649,7 @@
|
|||||||
<ul class="eventList__list">`;
|
<ul class="eventList__list">`;
|
||||||
// 답변 여부 표시
|
// 답변 여부 표시
|
||||||
if (bbsInfo.answRegist === 'Y') {
|
if (bbsInfo.answRegist === 'Y') {
|
||||||
if (resultList.answBbscttInnb != null) {
|
if (resultList.answBbscttInnb !== null) {
|
||||||
list += `<li>답변완료</li>`;
|
list += `<li>답변완료</li>`;
|
||||||
} else {
|
} else {
|
||||||
list += `<li>답변대기</li>`;
|
list += `<li>답변대기</li>`;
|
||||||
@@ -691,7 +680,7 @@
|
|||||||
list += ` </ul>
|
list += ` </ul>
|
||||||
</a>`;
|
</a>`;
|
||||||
if(bbsInfo.answRegist === 'Y') {
|
if(bbsInfo.answRegist === 'Y') {
|
||||||
if(resultList.answBbscttInnb != null){
|
if(resultList.answBbscttInnb !== null){
|
||||||
list += `<a class="eventList__item dtlBtn item" style="cursor:pointer" >
|
list += `<a class="eventList__item dtlBtn item" style="cursor:pointer" >
|
||||||
<input type="hidden" class="bbscttInnb" value="\${ resultList.bbscttInnb}">
|
<input type="hidden" class="bbscttInnb" value="\${ resultList.bbscttInnb}">
|
||||||
<div class="eventList__top">
|
<div class="eventList__top">
|
||||||
@@ -729,7 +718,7 @@
|
|||||||
<ul class="eventList__list">`;
|
<ul class="eventList__list">`;
|
||||||
// 답변 여부 표시
|
// 답변 여부 표시
|
||||||
if (bbsInfo.answRegist === 'Y') {
|
if (bbsInfo.answRegist === 'Y') {
|
||||||
if (resultList.answBbscttInnb != null) {
|
if (resultList.answBbscttInnb !== null) {
|
||||||
list += `<li>답변완료</li>`;
|
list += `<li>답변완료</li>`;
|
||||||
} else {
|
} else {
|
||||||
list += `<li>답변대기</li>`;
|
list += `<li>답변대기</li>`;
|
||||||
@@ -771,7 +760,7 @@
|
|||||||
// 비밀글 여부
|
// 비밀글 여부
|
||||||
if (resultList.secretBbscttAt === 'Y') {
|
if (resultList.secretBbscttAt === 'Y') {
|
||||||
if (resultList.regusrDvCd !== '02') {
|
if (resultList.regusrDvCd !== '02') {
|
||||||
if (resultList.answCn != null) {
|
if (resultList.answCn !== null) {
|
||||||
list += `[\${resultList.answCn}] `;
|
list += `[\${resultList.answCn}] `;
|
||||||
}
|
}
|
||||||
list += `<span>\${resultList.maskingRegusrNm}</span>님의 \${bbsInfo.bbsNm}`;
|
list += `<span>\${resultList.maskingRegusrNm}</span>님의 \${bbsInfo.bbsNm}`;
|
||||||
@@ -779,7 +768,7 @@
|
|||||||
list += `비밀글입니다.`;
|
list += `비밀글입니다.`;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (resultList.answCn != null) {
|
if (resultList.answCn !== null) {
|
||||||
list += `[\${resultList.answCn}] `;
|
list += `[\${resultList.answCn}] `;
|
||||||
}
|
}
|
||||||
list += `\${sj}`;
|
list += `\${sj}`;
|
||||||
@@ -790,7 +779,7 @@
|
|||||||
|
|
||||||
// 답변 여부 표시
|
// 답변 여부 표시
|
||||||
if (bbsInfo.answRegist === 'Y') {
|
if (bbsInfo.answRegist === 'Y') {
|
||||||
if (resultList.answBbscttInnb != null) {
|
if (resultList.answBbscttInnb !== null) {
|
||||||
list += `<span class="myQnaList__info__date">답변완료</span>`;
|
list += `<span class="myQnaList__info__date">답변완료</span>`;
|
||||||
} else {
|
} else {
|
||||||
list += `<span class="myQnaList__info__date">답변대기</span>`;
|
list += `<span class="myQnaList__info__date">답변대기</span>`;
|
||||||
@@ -1070,7 +1059,7 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<%--게시판 등록 사용여부--%>
|
<%--게시판 등록 사용여부--%>
|
||||||
<c:if test = "${bbsInfo.bbscttRegist eq 'Y' && resultMap.registAuthResult eq 'Y' && (bbsInfo.bbsTyCd eq '01' || bbsInfo.bbsTyCd eq '08') && bbsInfo.sknTyCd ne '02'}"><%--갤러리타입 등록 x--%>
|
<c:if test = "${bbsInfo.bbscttRegist eq 'Y' && (bbsInfo.bbsTyCd eq '01' || bbsInfo.bbsTyCd eq '08') && bbsInfo.sknTyCd ne '02'}"><%--갤러리타입 등록 x--%>
|
||||||
<div class="infoSection">
|
<div class="infoSection">
|
||||||
<a style="cursor:pointer" class="btn md full theme" id = "regBtn"><spring:message code="button.insert"/>하기</a>
|
<a style="cursor:pointer" class="btn md full theme" id = "regBtn"><spring:message code="button.insert"/>하기</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1938,7 +1938,7 @@
|
|||||||
success: function (data) {
|
success: function (data) {
|
||||||
$("#modalDiv").html(data);
|
$("#modalDiv").html(data);
|
||||||
MicroModal.init();
|
MicroModal.init();
|
||||||
try {closeModal("authPop");} catch (e) {};
|
closeModal("authPop");
|
||||||
openModal2("authPop");
|
openModal2("authPop");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -29,16 +29,6 @@
|
|||||||
const title = '상품 목록';
|
const title = '상품 목록';
|
||||||
fn_set_header_title(title);
|
fn_set_header_title(title);
|
||||||
|
|
||||||
const $categoryList = $('.header--sub > .home-category .home-category__list');
|
|
||||||
const $activeCategory = $categoryList.find('.home-category__item.active');
|
|
||||||
if ($activeCategory.length) {
|
|
||||||
const listElement = $categoryList.get(0);
|
|
||||||
const activeRect = $activeCategory.get(0).getBoundingClientRect();
|
|
||||||
const listRect = listElement.getBoundingClientRect();
|
|
||||||
const activeCenter = activeRect.left - listRect.left + listElement.scrollLeft + (activeRect.width / 2);
|
|
||||||
$categoryList.scrollLeft(Math.max(0, activeCenter - (listElement.clientWidth / 2)));
|
|
||||||
}
|
|
||||||
|
|
||||||
let pageIndex = '<c:out value="${ resultMap.BOGoodsVO.pageIndex }"/>';
|
let pageIndex = '<c:out value="${ resultMap.BOGoodsVO.pageIndex }"/>';
|
||||||
|
|
||||||
fn_select_list(pageIndex);
|
fn_select_list(pageIndex);
|
||||||
@@ -1126,12 +1116,12 @@
|
|||||||
<nav class="home-category">
|
<nav class="home-category">
|
||||||
<div class="home-category__content">
|
<div class="home-category__content">
|
||||||
<ul class="home-category__list">
|
<ul class="home-category__list">
|
||||||
<li class="home-category__item<c:if test="${resultMap.BOGoodsVO.ctgryId eq resultMap.BOGoodsVO.upperCtgryId}"> active</c:if>">
|
<li class="home-category__item active">
|
||||||
<a href="javascript:void(0);" data-text="${resultMap.goodsCategoryList[0].baseCtgryNm}" data-value="${resultMap.goodsCategoryList[0].baseCtgryId}">전체</a>
|
<a href="javascript:void(0);" data-text="${resultMap.goodsCategoryList[0].baseCtgryNm}" data-value="${resultMap.goodsCategoryList[0].baseCtgryId}">전체</a>
|
||||||
</li>
|
</li>
|
||||||
<c:forEach items="${resultMap.goodsCategoryList}" var="goodsCategory" varStatus="status">
|
<c:forEach items="${resultMap.goodsCategoryList}" var="goodsCategory" varStatus="status">
|
||||||
<c:if test="${goodsCategory.upperCtgryId eq resultMap.BOGoodsVO.upperCtgryId}">
|
<c:if test="${goodsCategory.ctgryId ne resultMap.BOGoodsVO.ctgryId}">
|
||||||
<li class="home-category__item<c:if test="${goodsCategory.ctgryId eq resultMap.BOGoodsVO.ctgryId}"> active</c:if>">
|
<li class="home-category__item ">
|
||||||
<a href="javascript:void(0);" data-value="${goodsCategory.ctgryId}"> ${goodsCategory.ctgryNm}</a>
|
<a href="javascript:void(0);" data-value="${goodsCategory.ctgryId}"> ${goodsCategory.ctgryNm}</a>
|
||||||
</li>
|
</li>
|
||||||
</c:if>
|
</c:if>
|
||||||
|
|||||||
@@ -201,20 +201,19 @@
|
|||||||
</c:if>
|
</c:if>
|
||||||
<div class="sub-box">
|
<div class="sub-box">
|
||||||
<div class="mainNotice__wrapper">
|
<div class="mainNotice__wrapper">
|
||||||
<%--<div class="mainNotice__customerContact"
|
<div class="mainNotice__customerContact">
|
||||||
onclick="window.open('http://pf.kakao.com/_xjxjHxnX', '_blank');">
|
<i class="icon icon_notice03"></i>
|
||||||
<i class="icon icon_kakao-customer-service"></i>
|
<div class="mainNotice__customerContact__right">
|
||||||
<div class="mainNotice__customerContact__right">
|
<h4 class="notice__title customer-service">고객센터</h4>
|
||||||
<h4 class="notice__title customer-service">문의는 카톡으로</h4>
|
<span class="notice__number"><c:out value="${sopmallInfo.shopInfo.cscTelnb }"/></span>
|
||||||
<span class="notice__number"><c:out value="${sopmallInfo.shopInfo.cscTelnb }"/></span>
|
<p class="notice__paragraph">
|
||||||
<p class="notice__paragraph">
|
<span class="notice__text01"><c:out value="${ sopmallInfo.shopInfo.cscWkdayWorkTme }"/></span>
|
||||||
<span class="notice__text01"><c:out value="${ sopmallInfo.shopInfo.cscWkdayWorkTme }"/></span>
|
<span class="notice__text02">(<c:out value="${ sopmallInfo.shopInfo.cscLunchTme }"/>)</span>
|
||||||
<span class="notice__text02">(<c:out value="${ sopmallInfo.shopInfo.cscLunchTme }"/>)</span>
|
<br>
|
||||||
<br>
|
<span class="notice__text03"><c:out value="${ sopmallInfo.shopInfo.cscRstde }"/></span>
|
||||||
<span class="notice__text03"><c:out value="${ sopmallInfo.shopInfo.cscRstde }"/></span>
|
</p>
|
||||||
</p>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>--%>
|
|
||||||
<a class="myPageMain__logout" href="/sopmal/logout">
|
<a class="myPageMain__logout" href="/sopmal/logout">
|
||||||
<i class="icon icon_myLogout"></i>
|
<i class="icon icon_myLogout"></i>
|
||||||
로그아웃
|
로그아웃
|
||||||
|
|||||||
@@ -528,8 +528,7 @@
|
|||||||
$(form).append($('<input/>', {type: 'hidden', name: 'sopmalCd', id: 'sopmalCd', value: sopmalCd}));
|
$(form).append($('<input/>', {type: 'hidden', name: 'sopmalCd', id: 'sopmalCd', value: sopmalCd}));
|
||||||
$(form).append($('<input/>', {type: 'hidden', name: 'ordrInnb', id: 'ordrInnb', value: ordrInnb}));
|
$(form).append($('<input/>', {type: 'hidden', name: 'ordrInnb', id: 'ordrInnb', value: ordrInnb}));
|
||||||
|
|
||||||
// 인증 갱신 후에도 조회 조건을 유지한다. 실제 취소 등록은 기존 POST를 사용한다.
|
$(form).attr('method', 'post');
|
||||||
$(form).attr('method', 'get');
|
|
||||||
$(form).attr('action', '<c:url value="/sopmal/mpage/ordr/selectSetleCanclPopupForm"/>');
|
$(form).attr('action', '<c:url value="/sopmal/mpage/ordr/selectSetleCanclPopupForm"/>');
|
||||||
|
|
||||||
$(form).submit();
|
$(form).submit();
|
||||||
@@ -1160,10 +1159,7 @@
|
|||||||
</c:if>
|
</c:if>
|
||||||
<tr>
|
<tr>
|
||||||
<th>결제금액</th>
|
<th>결제금액</th>
|
||||||
<td>
|
<td><span class="comma"><fmt:formatNumber value="${setle.setleAmt}" pattern="#,###"/></span>${curUnit} / <span class="comma">${setle.wonSetleAmt}</span>${krUnit}</td>
|
||||||
<span class="comma"><fmt:formatNumber value="${setle.setleAmt}" pattern="#,###"/></span>${curUnit}
|
|
||||||
<c:if test="${data.setleList[0].pgCmpnyNm ne 'stripe'}">/ <span class="comma">${setle.wonSetleAmt}</span>${krUnit}</c:if>
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<c:if test = "${order.ordrSttusCd ne '85' && order.ordrSttusCd ne '95'}"><%--주문취소시 미노출--%>
|
<c:if test = "${order.ordrSttusCd ne '85' && order.ordrSttusCd ne '95'}"><%--주문취소시 미노출--%>
|
||||||
<tr <c:if test = "${empty setle.issuSttusCd}">style="border-bottom: 0.5px solid #e9ecef;"</c:if>>
|
<tr <c:if test = "${empty setle.issuSttusCd}">style="border-bottom: 0.5px solid #e9ecef;"</c:if>>
|
||||||
@@ -1246,8 +1242,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>총 결제금액</th>
|
<th>총 결제금액</th>
|
||||||
<td>
|
<td>
|
||||||
<span class="comma"><fmt:formatNumber value="${total.setleAmt}" pattern="#,###"/></span>${curUnit}
|
<span class="comma"><fmt:formatNumber value="${total.setleAmt}" pattern="#,###"/></span>${curUnit} / <span class="comma">${total.wonRlSetleAmt}</span>${krUnit}
|
||||||
<c:if test="${data.setleList[0].pgCmpnyNm ne 'stripe'}">/ <span class="comma">${total.wonRlSetleAmt}</span>${krUnit}</c:if>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tfoot>
|
</tfoot>
|
||||||
|
|||||||