Merge remote-tracking branch 'origin/master'

This commit is contained in:
이경숙
2026-05-06 17:05:25 +09:00
53 changed files with 2375 additions and 813 deletions

View File

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

View File

@@ -193,4 +193,7 @@ public class BOMbrSrchVO extends AbstractVO {
/*회원구분코드*/ /*회원구분코드*/
private String mbrDvCd; private String mbrDvCd;
/*마케팅 동의 팝업 읽기모드 여부*/
private String readonlyAt;
} }

View File

@@ -309,22 +309,8 @@ public class BOPurchsEvtService {
} }
} }
// 사은품 이벤트 // 사은품 이벤트
} else if ("02".equals(purchsEvtVO.getEvtDv())) { } else if ("02".equals(purchsEvtVO.getEvtDv())) {
/*
if (!StringUtils.isEmpty(Arrays.toString(purchsEvtVO.getDeleteGiftList()))) {
log.debug(" 삭제 리스트 확인 purchsEvtVO . get getDeleteGiftList : {}", purchsEvtVO.getDeleteGiftList());
for (String deleteGiftInnb : purchsEvtVO.getDeleteGiftList()) {
log.debug("deleteGiftInnb : {}", deleteGiftInnb);
purchsEvtVO.setDeleteGiftInnb(Integer.parseInt(deleteGiftInnb));
mapper.deleteBOPurchsEvtGiftDel(purchsEvtVO);
}
}
*/
if (!StringUtils.isEmpty(Arrays.toString(purchsEvtVO.getDeleteBnefList()))) { if (!StringUtils.isEmpty(Arrays.toString(purchsEvtVO.getDeleteBnefList()))) {
log.debug(" 삭제 리스트 확인 purchsEvtVO . get deleteList : {}", (Object) purchsEvtVO.getDeleteBnefList()); log.debug(" 삭제 리스트 확인 purchsEvtVO . get deleteList : {}", (Object) purchsEvtVO.getDeleteBnefList());
for (String deleteBnefInnb : purchsEvtVO.getDeleteBnefList()) { for (String deleteBnefInnb : purchsEvtVO.getDeleteBnefList()) {
@@ -334,7 +320,6 @@ public class BOPurchsEvtService {
} }
} }
if (purchsEvtVO.getDiscountBnefVOList() != null && !purchsEvtVO.getDiscountBnefVOList().isEmpty()) { if (purchsEvtVO.getDiscountBnefVOList() != null && !purchsEvtVO.getDiscountBnefVOList().isEmpty()) {
log.debug("사은품 혜택 진입"); log.debug("사은품 혜택 진입");
for (BOPurchsEvtDiscountBnefVO tempVO : purchsEvtVO.getDiscountBnefVOList()) { for (BOPurchsEvtDiscountBnefVO tempVO : purchsEvtVO.getDiscountBnefVOList()) {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1850,6 +1850,47 @@ function validateInput(input, opts = {}) {
}); });
} }
/************************************************************
form데이터 sealize 후 json 스트링 형태로 전환
************************************************************ */
function queryToJson(queryString) {
let jsonObj = {};
let pairs = queryString.split("&");
$.each(pairs, function (index, pair) {
let [key, value] = pair.split("=");
if(!fn_is_empty(value)){
jsonObj[key] = value ? decodeURIComponent(value) : "";
}
});
const jsonStr = JSON.stringify(jsonObj);
return jsonStr;
}
/************************************************************
치환코드 입력
* @param eventObj : 클릭객체
* @param closestSelector : 가까운 객체
* @param targetTextAreaSelector : textarea타겟대상
* @property obj : 클릭한 객체
* @property existingVal : 기존 텍스트 아리아 값
* @property addStr : 추가할 치환 코드
* @description 치환 문자 td 클래스에 subst 클래스 부여
************************************************************ */
function fn_set_substituon_in_texatarea(eventObj, closestSelector, targetTextAreaSelector) {
const obj = $(eventObj);
let existingVal = $("#"+targetTextAreaSelector).val();
let addStr;
const addStrT = obj.closest(closestSelector).find(".subst").text();
const addStrV = obj.closest(closestSelector).find(".subst").val();
if(!fn_is_empty(addStrT)){
addStr = addStrT;
}else{
addStr = addStrV;
}
existingVal = existingVal + " " +addStr;
$("#"+targetTextAreaSelector).val(existingVal);
}
/* ************************************************************ /* ************************************************************
* 인피니티 스크롤 공통 처리 (footer가 보이면 callback함수 호출) * 인피니티 스크롤 공통 처리 (footer가 보이면 callback함수 호출)

View File

@@ -381,7 +381,7 @@ since : 2023.12.19 김세엽 최초 생성
url : '<c:url value="/admin/use/mngr/insertJobUserRegist"/>', url : '<c:url value="/admin/use/mngr/insertJobUserRegist"/>',
data : params, data : params,
success:function(result) { success:function(result) {
let mngrInnb = JSON.parse(result.resBody.result); let mngrInnb = JSON.parse(result.resBody.result).mngrInnb;
$('#backupForm').find('[name=mngrInnb]').val(mngrInnb); $('#backupForm').find('[name=mngrInnb]').val(mngrInnb);
$('#backupForm').find('[name=pageDv]').val('I'); $('#backupForm').find('[name=pageDv]').val('I');

View File

@@ -372,9 +372,8 @@
fn_reflesh_cart_cnt() fn_reflesh_cart_cnt()
/*비밀번호 변경 알림 여부 확인*/
$(document).ready(function () { $(document).ready(function () {
/*비밀번호 변경 알림 여부 확인*/
const url = '<c:url value="/sopmal/mbr/selectPasswordChng"/>'; const url = '<c:url value="/sopmal/mbr/selectPasswordChng"/>';
const originalUrl = window.location.href; const originalUrl = window.location.href;
let passwordAt = '<%=(String)session.getAttribute("passwordChngDeAt")%>' let passwordAt = '<%=(String)session.getAttribute("passwordChngDeAt")%>'
@@ -383,6 +382,15 @@
location.href = url + '?originalUrl=' + encodeURIComponent(originalUrl); location.href = url + '?originalUrl=' + encodeURIComponent(originalUrl);
} }
/*연령확인 여부 확인*/
let ageChked = getCookieValue("ageChk");
if(!ageChked) {
fn_open_modal(
'#ageChkPopupDiv',
'#ageChkPopup',
'/sopmal/main/selectAgeChkPopup'
);
}
}) })
@@ -398,6 +406,7 @@
}%> }%>
<input type="hidden" id="adscriptMbrId" value="${adscriptMbrId}"/> <input type="hidden" id="adscriptMbrId" value="${adscriptMbrId}"/>
<div id="mbrMarktClauseAgreeDiv"></div> <div id="mbrMarktClauseAgreeDiv"></div>
<div id="ageChkPopupDiv"></div>
<script> <script>
@@ -466,6 +475,14 @@
} }
//쿠키 값 가져오기
const getCookieValue = function(name) {
let matches = document.cookie.match(
new RegExp('(?:^|; )' + name + '=([^;]*)')
);
return matches ? matches[1] : null;
}
</script> </script>
<!--로딩영역--> <!--로딩영역-->

View File

@@ -90,6 +90,9 @@
<%--theme적용--%> <%--theme적용--%>
<link rel="stylesheet" type="text/css" href="<c:out value="${sopmallInfo.themaPath}"/>"> <link rel="stylesheet" type="text/css" href="<c:out value="${sopmallInfo.themaPath}"/>">
<%--font적용--%>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR&family=Noto+Sans+JP&display=swap" rel="stylesheet">
<%--Web-App연동 스크립트--%> <%--Web-App연동 스크립트--%>
<script src="/mobile/js/bnft/common/Common_app.js" defer=""></script> <script src="/mobile/js/bnft/common/Common_app.js" defer=""></script>
@@ -362,6 +365,8 @@
passwordChngDeAt(); passwordChngDeAt();
ageChkAt();
fn_save_mbrdvc_info(${isAuthenticated}); fn_save_mbrdvc_info(${isAuthenticated});
}); });
@@ -470,6 +475,31 @@
} }
} }
/*연령확인 여부 확인 */
function ageChkAt() {
let ageChked = getCookieValue("ageChk");
if(!ageChked) {
openModal('confirm_ageChk_alert');
}
}
const fn_ageChk_yes = function() {
closeModal('confirm_ageChk_alert')
document.cookie = "ageChk=true; path=/; max-age=86400";
}
const fn_ageChk_no = function() {
window.location.href = "https://m.search.naver.com/search.naver?query=사케일잔";
}
//쿠키 값 가져오기
const getCookieValue = function(name) {
let matches = document.cookie.match(
new RegExp('(?:^|; )' + name + '=([^;]*)')
);
return matches ? matches[1] : null;
}
// 최근 검색어 저장 // 최근 검색어 저장
function saveSearch(param) { function saveSearch(param) {
let searches = JSON.parse(localStorage.getItem('recentSearches')) || []; let searches = JSON.parse(localStorage.getItem('recentSearches')) || [];
@@ -755,6 +785,32 @@
</div> </div>
</div> </div>
<%--연령확인 모달--%>
<div class="microModal microAlert" id="confirm_ageChk_alert" aria-hidden="true" style="font-family: 'Noto Sans JP', 'Noto Sans KR', sans-serif;">
<div class="microModal__overlay" tabindex="-1">
<div class="microModal__container" role="dialog" aria-modal="true" style="width: 350px;">
<div class="microModal__body">
<div class="microModal__top">
<p class="alert-content__text" style="font-size: 20px;">
満20歳以上ですか?<br>
(만20세 이상입니까?)
</p>
<br>
<p class="alert-content__text--sm" style="font-size: 15px;">
20歳未満の飲酒は法律で禁止されています。<br>
(20세 미만의 음주는 법으로 금지되어 있습니다.)
</p>
<br>
</div>
</div>
<div class="microModal__btnContainer">
<button class="microModal__btn microModal__btn-primary" onclick="fn_ageChk_yes();">はい (예)</button>
<button class="microModal__btn" onclick="fn_ageChk_no()">いいえ (아니오)</button>
</div>
</div>
</div>
</div>
<%--cutom 확인 모달--%> <%--cutom 확인 모달--%>
<div class="microModal microAlert" id="custom_confirm_alert" aria-hidden="true" style="position: relative; z-index: 1010;"> <div class="microModal microAlert" id="custom_confirm_alert" aria-hidden="true" style="position: relative; z-index: 1010;">
<div class="microModal__overlay" tabindex="-1"> <div class="microModal__overlay" tabindex="-1">
@@ -870,7 +926,6 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 햄버거 메뉴 모달 --> <!-- 햄버거 메뉴 모달 -->
<div class="microModal microFullMenu" id="hamburger-menu" aria-hidden="true"> <div class="microModal microFullMenu" id="hamburger-menu" aria-hidden="true">
<div class="microModal__overlay" tabindex="-1"> <div class="microModal__overlay" tabindex="-1">
@@ -885,12 +940,12 @@
<div class="microModal__content"> <div class="microModal__content">
<div class="fullMenu"> <div class="fullMenu">
<c:if test="${not isAuthenticated}"> <c:if test="${not isAuthenticated}">
<div class="sub-box"> <div class="sub-box">
<div class="fullMenu__top"> <div class="fullMenu__top">
<button type="button" class="btn md outline" onclick="fn_move_login();">로그인</button> <button type="button" class="btn md outline" onclick="fn_move_login();">로그인</button>
<button type="button" class="btn md theme" onclick="location.href='/sopmal/mbr/selectJoinGuidance'; setTopMenuCode(); ">회원가입</button> <button type="button" class="btn md theme" onclick="location.href='/sopmal/mbr/selectJoinGuidance'; setTopMenuCode(); ">회원가입</button>
</div>
</div> </div>
</div>
</c:if> </c:if>
<div class="sub-box"> <div class="sub-box">
<div class="fullMenu__top"> <div class="fullMenu__top">
@@ -921,15 +976,15 @@
<div class="member-rank-summary__summary"> <div class="member-rank-summary__summary">
<a href="/sopmal/mpage/bnef/selectMlgDtlsInqireForm" class="member-rank-summary__summary-item"> <a href="/sopmal/mpage/bnef/selectMlgDtlsInqireForm" class="member-rank-summary__summary-item">
<img src="/mobile/images/icon_member-rank-mileage.png" <img src="/mobile/images/icon_member-rank-mileage.png"
alt=""> alt="">
<div class="member-rank-summary__summary-description"> <div class="member-rank-summary__summary-description">
<span class="member-rank-summary__summary-name">마일리지</span> <span class="member-rank-summary__summary-name">마일리지</span>
<p class="member-rank-summary__summary-numberContainer"> <p class="member-rank-summary__summary-numberContainer">
<span <span
class="member-rank-summary__summary-number comma" class="member-rank-summary__summary-number comma"
id = "hambergerMbrMlgAmt"></span> id = "hambergerMbrMlgAmt"></span>
<span <span
class="member-rank-summary__summary-numberUnit">원</span> class="member-rank-summary__summary-numberUnit">원</span>
</p> </p>
</div> </div>
</a> </a>
@@ -940,7 +995,7 @@
<p class="member-rank-summary__summary-numberContainer"> <p class="member-rank-summary__summary-numberContainer">
<span class="member-rank-summary__summary-number comma" id = "hambergerCoupnCnt"></span> <span class="member-rank-summary__summary-number comma" id = "hambergerCoupnCnt"></span>
<span <span
class="member-rank-summary__summary-numberUnit">장</span> class="member-rank-summary__summary-numberUnit">장</span>
</p> </p>
</div> </div>
</a> </a>
@@ -950,9 +1005,9 @@
<span class="member-rank-summary__summary-name">위시리스트</span> <span class="member-rank-summary__summary-name">위시리스트</span>
<p class="member-rank-summary__summary-numberContainer"> <p class="member-rank-summary__summary-numberContainer">
<span class="member-rank-summary__summary-number comma" <span class="member-rank-summary__summary-number comma"
id = "hambergerWslistCnt"></span> id = "hambergerWslistCnt"></span>
<span <span
class="member-rank-summary__summary-numberUnit">개</span> class="member-rank-summary__summary-numberUnit">개</span>
</p> </p>
</div> </div>
</a> </a>
@@ -968,37 +1023,39 @@
<ul class="side_menu accordion"> <ul class="side_menu accordion">
<c:if test="${!empty sopmallInfo}"> <c:if test="${!empty sopmallInfo}">
<c:forEach var="topMenuList" items="${sopmallInfo.menuList}" varStatus="status"> <c:forEach var="topMenuList" items="${sopmallInfo.menuList}" varStatus="status">
<c:if test="${topMenuList.ctgryDvCd eq '01' && topMenuList.menuExpsrAt eq 'Y'}">
<c:if test="${topMenuList.rnum eq '2'}">
<c:set var="mDpth3Chk" value="N"/>
<li class="isSub list">
<div class="isSubDv">
<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}"/>" class="moer"></a>
</div>
</c:if>
<c:if test="${'3' eq topMenuList.rnum}">
<!-- 메뉴 하위가 메뉴인 경우-->
<c:if test="${chkUpperMenuCd ne topMenuList.upperCtgryId}">
<c:set var="mDpth3Chk" value="Y"/>
<ul class="view">
</c:if>
<li><a href='<c:out value="${topMenuList.url}"/>'><c:out value ="${topMenuList.ctgryNm}"/></a></li>
</c:if>
<c:if test="${topMenuList.rnum < 4}">
<c:set var="chkUpperMenuCd" value="${topMenuList.upperCtgryId}"/>
</c:if>
</c:if>
<c:if test="${topMenuList.ctgryDvCd eq '01'}"> <c:if test="${topMenuList.ctgryDvCd eq '01'}">
<c:if test="${topMenuList.gnbExpsrAt eq 'Y'}">
<c:if test="${'3' eq topMenuList.rnum && '0' eq topMenuList.nextDepth3 && '0' eq topMenuList.nextDepth2}"> <c:if test="${topMenuList.rnum eq '2'}">
<c:if test="${'Y' eq mDpth3Chk}"> <c:set var="mDpth3Chk" value="N"/>
</ul> <li class="isSub list">
<div class="isSubDv">
<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}"/>" class="moer"></a>
</div>
</c:if>
<c:if test="${topMenuList.rnum eq '3'}">
<!-- 메뉴 하위가 메뉴인 경우-->
<c:if test="${chkUpperMenuCd ne topMenuList.upperCtgryId}">
<c:set var="mDpth3Chk" value="Y"/>
<ul class="view">
</c:if>
<li><a href='<c:out value="${topMenuList.url}"/>'><c:out value ="${topMenuList.ctgryNm}"/></a></li>
</c:if>
<c:if test="${topMenuList.rnum < 4}">
<c:set var="chkUpperMenuCd" value="${topMenuList.upperCtgryId}"/>
</c:if> </c:if>
</li>
</c:if> </c:if>
<c:if test="${'2' eq topMenuList.rnum && '0' eq topMenuList.nextDepth3 && '0' eq topMenuList.nextDepth2}">
</li> <c:if test="${topMenuList.nextDepth3 eq '0' && topMenuList.nextDepth2 eq '0'}">
<c:if test="${topMenuList.rnum eq '2'}">
</li>
</c:if>
<c:if test="${topMenuList.rnum eq '3'}">
<c:if test="${mDpth3Chk eq 'Y'}">
</ul>
</c:if>
</li>
</c:if>
</c:if> </c:if>
</c:if> </c:if>
</c:forEach> </c:forEach>
@@ -1006,38 +1063,71 @@
</ul> </ul>
<!-- 최근 본 상품(SIDE) --> <!-- 최근 본 상품(SIDE) -->
<div class="recently_side" id = "recentlySite"> <div class="recently_side" id = "recentlySite">
<%--<div class="swiper recentlySide-swiper">
<div class="swiper-wrapper" id="recentlySite">
<div class="swiper-slide recentlySide__image">
<a href="">
<img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명">
</a>
</div>
<div class="swiper-slide recentlySide__image">
<a href="">
<img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명">
</a>
</div>
<div class="swiper-slide recentlySide__image">
<a href="">
<img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명">
</a>
</div>
<div class="swiper-slide recentlySide__image">
<a href="">
<img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명">
</a>
</div>
<div class="swiper-slide recentlySide__image">
<a href="">
<img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명">
</a>
</div>
</div>
<div class="swiper-pagination theme-pagination"></div>
</div>--%>
</div> </div>
</div> </div>
</div> </div>
<div class="sub-box"> <div class="sub-box">
<div class="fullMenu__miscLinks"> <div class="fullMenu__miscLinks">
<h5 class="fullMenu__miscLinks__title">서비스</h5> <h5 class="fullMenu__miscLinks__title">서비스</h5>
<ul class="fullMenu__miscLinks__list"> <ul class="fullMenu__miscLinks__list">
<li> <li>
<a href="/sopmal/csc/selectCscMainForm" class="fullMenu__miscLinks__link">고객센터</a> <a href="/sopmal/csc/selectCscMainForm" class="fullMenu__miscLinks__link">고객센터</a>
</li> </li>
<c:if test="${sopmallInfo.shopInfo.sopmalCd eq 'NC' && sopmallInfo.shopInfo.sopmalCd eq 'CH'}"><%--뉴트리코어,참다한만--%> <c:if test="${sopmallInfo.shopInfo.sopmalCd eq 'NC' && sopmallInfo.shopInfo.sopmalCd eq 'CH'}"><%--뉴트리코어,참다한만--%>
<li><a href="/sopmal/main/selectStrListForm" class="fullMenu__miscLinks__link">매장안내</a></li> <li><a href="/sopmal/main/selectStrListForm" class="fullMenu__miscLinks__link">매장안내</a></li>
</c:if> </c:if>
</ul> </ul>
</div> </div>
</div> </div>
<c:if test = "${sopmallInfo.shopInfo.cscTelnbOrdrPosblAt eq 'Y'}"> <c:if test = "${sopmallInfo.shopInfo.cscTelnbOrdrPosblAt eq 'Y'}">
<div class="sub-box"> <div class="sub-box">
<div class="mainNotice__customerContact mainNotice__customerContact--moreInfo"> <div class="mainNotice__customerContact mainNotice__customerContact--moreInfo">
<i class="icon icon_notice03"></i> <i class="icon icon_notice03"></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>
</div> </div>
</c:if> </c:if>
</div> </div>
</div> </div>
@@ -1087,6 +1177,7 @@
}); });
}); });
</script> </script>
<%--광고스크립트 정보--%> <%--광고스크립트 정보--%>
<input type="hidden" id="adScriptDeviceTy" value="${deviceType}"/> <input type="hidden" id="adScriptDeviceTy" value="${deviceType}"/>
<% String adscriptMbrId = ""; <% String adscriptMbrId = "";

View File

@@ -32,242 +32,3 @@
<div class="tab-bar__bg-fraction"></div> <div class="tab-bar__bg-fraction"></div>
</div> </div>
</aside> </aside>
<!-- 햄버거 메뉴 모달 -->
<div class="microModal microFullMenu" id="hamburger-menu" aria-hidden="true">
<div class="microModal__overlay" tabindex="-1">
<div class="microModal__container" role="dialog" aria-modal="true">
<div class="microModal__body" id = "hambergerModal">
<div class="microModal__top">
<h2 class="microModal__title">
전체메뉴
</h2>
<button type="button" class="microModal__close" onclick="closeModal('hamburger-menu');"></button>
</div>
<div class="microModal__content">
<div class="fullMenu">
<c:if test="${not isAuthenticated}">
<div class="sub-box">
<div class="fullMenu__top">
<button type="button" class="btn md outline" onclick="fn_move_login();">로그인</button>
<button type="button" class="btn md theme" onclick="location.href='/sopmal/mbr/selectJoinGuidance'; setTopMenuCode(); ">회원가입</button>
</div>
</div>
</c:if>
<div class="sub-box">
<div class="fullMenu__top">
<div class="member-rank-summary">
<div class="textBtns">
<a href="/sopmal/ordr/selectSpbk" class="textBtns__btn">장바구니</a>
<c:choose>
<c:when test="${isAuthenticated}"><%--회원일시--%>
<a href="/sopmal/mpage/mbr/selectMpageMainInqire" class="textBtns__btn">마이페이지</a>
<a href="/sopmal/logout" class="textBtns__btn">로그아웃</a>
</c:when>
<c:otherwise><%--비회원일시--%>
<a href="/sopmal/mpage/ordr/selectMbrOrdrListInqire" class="textBtns__btn">주문조회</a>
</c:otherwise>
</c:choose>
</div>
<c:if test = "${isAuthenticated}">
<div class="member-rank-summary__top">
<div class="member-rank-summary__icon" id = "hambergerGradImg"></div>
<a href="/sopmal/mpage/mbr/selectMpageMainInqire" class="member-rank-summary__user">
<span class="member-rank-summary__rank" id = "hambergerGradNm"></span>
<span class="member-rank-summary__name" id = "hambergermbrNm"></span>
</a>
<a class="member-rank-summary__benefit-link" href="/sopmal/mpage/bnef/selectMbrGradInqire">등급별 혜택</a>
</div>
<div class="member-rank-summary__bottom">
<div class="member-rank-summary__summary">
<a href="/sopmal/mpage/bnef/selectMlgDtlsInqireForm" class="member-rank-summary__summary-item">
<img src="/mobile/images/icon_member-rank-mileage.png"
alt="">
<div class="member-rank-summary__summary-description">
<span class="member-rank-summary__summary-name">마일리지</span>
<p class="member-rank-summary__summary-numberContainer">
<span
class="member-rank-summary__summary-number comma"
id = "hambergerMbrMlgAmt"></span>
<span
class="member-rank-summary__summary-numberUnit">원</span>
</p>
</div>
</a>
<a href="/sopmal/mpage/bnef/selectCouponDtlsForm" class="member-rank-summary__summary-item">
<img src="/mobile/images/icon_member-rank-coupon.png" alt="">
<div class="member-rank-summary__summary-description">
<span class="member-rank-summary__summary-name">쿠폰</span>
<p class="member-rank-summary__summary-numberContainer">
<span class="member-rank-summary__summary-number comma" id = "hambergerCoupnCnt"></span>
<span
class="member-rank-summary__summary-numberUnit">장</span>
</p>
</div>
</a>
<a href="/sopmal/mpage/ordr/selectWslistInqireForm" class="member-rank-summary__summary-item">
<img src="/mobile/images/icon_member-rank-wishlist.png" alt="">
<div class="member-rank-summary__summary-description">
<span class="member-rank-summary__summary-name">위시리스트</span>
<p class="member-rank-summary__summary-numberContainer">
<span class="member-rank-summary__summary-number comma"
id = "hambergerWslistCnt"></span>
<span
class="member-rank-summary__summary-numberUnit">개</span>
</p>
</div>
</a>
</div>
</div>
</c:if>
</div>
</div>
</div>
<div class="sub-box">
<div class="menu_navigation_wrap">
<!-- 카테고리 -->
<ul class="side_menu accordion">
<c:if test="${!empty sopmallInfo}">
<c:forEach var="topMenuList" items="${sopmallInfo.menuList}" varStatus="status">
<c:if test="${topMenuList.ctgryDvCd eq '01' && topMenuList.gnbExpsrAt eq 'Y'}">
<c:if test="${topMenuList.rnum eq '2'}">
<li class="isSub list">
<div class="isSubDv">
<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}"/>" class="moer"></a>
</div>
</c:if>
<c:if test="${'3' eq topMenuList.rnum}">
<!-- 메뉴 하위가 메뉴인 경우-->
<c:if test="${chkUpperMenuCd ne topMenuList.upperCtgryId}">
<ul class="view">
</c:if>
<li><a href='<c:out value="${topMenuList.url}"/>'><c:out value ="${topMenuList.ctgryNm}"/></a></li>
<c:if test="${'0' eq topMenuList.nextDepth3 && '0' eq topMenuList.nextDepth2}">
</ul>
</li>
</c:if>
</c:if>
<c:if test="${topMenuList.rnum < 4}">
<c:set var="chkUpperMenuCd" value="${ topMenuList.upperCtgryId }"/>
</c:if>
</c:if>
</c:forEach>
</c:if>
</ul>
<!-- 최근 본 상품(SIDE) -->
<div class="recently_side" id="recentlySite">
<!-- <div class="swiper recentlySide-swiper"> -->
<!-- <div class="swiper-wrapper" id="recentlySite"> -->
<!-- <div class="swiper-slide recentlySide__image"> -->
<!-- <a href=""> -->
<!-- <img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명"> -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="swiper-slide recentlySide__image"> -->
<!-- <a href=""> -->
<!-- <img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명"> -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="swiper-slide recentlySide__image"> -->
<!-- <a href=""> -->
<!-- <img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명"> -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="swiper-slide recentlySide__image"> -->
<!-- <a href=""> -->
<!-- <img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명"> -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="swiper-slide recentlySide__image"> -->
<!-- <a href=""> -->
<!-- <img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명"> -->
<!-- </a> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="swiper-pagination theme-pagination"></div> -->
<!-- </div> -->
</div>
</div>
</div>
<div class="sub-box">
<div class="fullMenu__miscLinks">
<h5 class="fullMenu__miscLinks__title">서비스</h5>
<ul class="fullMenu__miscLinks__list">
<li>
<a href="/sopmal/csc/selectCscMainForm" class="fullMenu__miscLinks__link">고객센터</a>
</li>
</ul>
</div>
</div>
<c:if test = "${sopmallInfo.shopInfo.cscTelnbOrdrPosblAt eq 'Y'}">
<div class="sub-box">
<div class="mainNotice__customerContact mainNotice__customerContact--moreInfo">
<i class="icon icon_notice03"></i>
<div class="mainNotice__customerContact__right">
<h4 class="notice__title customer-service">고객센터</h4>
<span class="notice__number"><c:out value="${sopmallInfo.shopInfo.cscTelnb}"/></span>
<p class="notice__paragraph">
<span class="notice__text01"><c:out value="${sopmallInfo.shopInfo.cscWkdayWorkTme}"/></span>
<span class="notice__text02">(<c:out value="${sopmallInfo.shopInfo.cscLunchTme}"/>)</span>
<br>
<span class="notice__text03"><c:out value="${sopmallInfo.shopInfo.cscRstde}"/></span>
</p>
</div>
</div>
</div>
</c:if>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
////햄버거 메뉴 관련 스크립트
// 좌측 메뉴 클릭시 해당 메뉴 보여주기
$('.fullMenu__menu__btn').on('click', function () {
$(this).addClass('current');
$(this).closest('li').siblings().find('.fullMenu__menu__btn').removeClass('current');
var index = $(this).closest('li').index() - 1; // 전체 메뉴 버튼을 뺀 나머지 버튼의 인덱스
$(this).closest('.fullMenu__content').find('.fullMenu__itemSection').eq(index).siblings().hide();
$(this).closest('.fullMenu__content').find('.fullMenu__itemSection').eq(index).show();
});
// 전체 메뉴 클릭시 전체 메뉴 보여주기
$('.fullMenuAll').on('click', function () {
$(this).addClass('current');
$(this).closest('li').siblings().find('.fullMenu__menu__btn').removeClass('current');
$(this).closest('.fullMenu__content').find('.fullMenu__itemSection').show();
});
//
$('.hamburgerTabBtn').on('click', function () {
$('.hamburgerTabBtn').removeClass('active');
$(this).addClass('active');
var index = $(this).closest('li').index();
$('.fullMenu__content').removeClass('active');
$('.fullMenu__content').eq(index).addClass('active');
});
$(document).ready(function(){
MicroModal.init({
disableScroll: true,
awaitCloseAnimation: true,
});
$(".menu_navigation_wrap .depth").on('click', function () {
/*하위레벨 없을 시 페이지 이동*/
if ($(this).closest(".isSub").find(".view").length === 0) {
const href = $(this).attr("href");
location.href = href;
}
});
});
</script>

View File

@@ -167,6 +167,7 @@
<c:if test="${ relmList.relmDvCd eq '03'}"> <c:if test="${ relmList.relmDvCd eq '03'}">
<div class="main-section__container section-3"> <div class="main-section__container section-3">
<input type="hidden" name="section-ordr" value="${ relmList.ordr }" /> <input type="hidden" name="section-ordr" value="${ relmList.ordr }" />
<input type="hidden" name="section-mainSiteInnb" value="${ prevewVO.mainSiteInnb }"/>
<section class="main-section"> <section class="main-section">
<div class="main-section-header" style="margin-bottom: 48px;"> <div class="main-section-header" style="margin-bottom: 48px;">
<div class="main-section-title"> <div class="main-section-title">
@@ -180,7 +181,7 @@
<c:forEach items="${ resultMap.baseCase }" var="baseCase" varStatus="status"> <c:forEach items="${ resultMap.baseCase }" var="baseCase" varStatus="status">
<c:if test="${ baseCase.relmDvCd == '03' && relmList.ordr eq baseCase.sOrdr }"> <c:if test="${ baseCase.relmDvCd == '03' && relmList.ordr eq baseCase.sOrdr }">
<li> <li>
<button class="category-type-tab__btn category-type-tab__btn-${ relmList.ordr }" id="category-type-tab__btn-${ relmList.ordr }-${ baseCase.iOrdr }" onclick="fn_product_category_type('${ relmList.ordr }', '${ baseCase.iOrdr }'); return false;"> <button class="category-type-tab__btn category-type-tab__btn-${ relmList.ordr }" id="category-type-tab__btn-${ relmList.ordr }-${ baseCase.iOrdr }" onclick="fn_product_category_type('${ relmList.ordr }', '${ baseCase.iOrdr }', '${ prevewVO.mainSiteInnb }'); return false;">
<c:if test = "${not empty baseCase.filCours}"> <c:if test = "${not empty baseCase.filCours}">
<i class="icon icon_category-type-tab01" > <i class="icon icon_category-type-tab01" >
<img src="${cdnurl}${ baseCase.filCours }/${ baseCase.sysFilNm }" onerror="this.src='/pc/images/image_placeholder.png'"> <img src="${cdnurl}${ baseCase.filCours }/${ baseCase.sysFilNm }" onerror="this.src='/pc/images/image_placeholder.png'">
@@ -1594,6 +1595,7 @@
<c:if test="${ relmList.relmDvCd eq '03'}"> <c:if test="${ relmList.relmDvCd eq '03'}">
<div class="main-section__container section-3"> <div class="main-section__container section-3">
<input type="hidden" name="section-ordr" value="${ relmList.ordr }" /> <input type="hidden" name="section-ordr" value="${ relmList.ordr }" />
<input type="hidden" name="section-mainSiteInnb" value="${ prevewVO.mainSiteInnb }"/>
<section class="main-section"> <section class="main-section">
<div class="main-section-header" style="margin-bottom: 48px;"> <div class="main-section-header" style="margin-bottom: 48px;">
<div class="main-section-title"> <div class="main-section-title">
@@ -1607,7 +1609,7 @@
<c:forEach items="${ resultMap.baseCase }" var="baseCase" varStatus="status"> <c:forEach items="${ resultMap.baseCase }" var="baseCase" varStatus="status">
<c:if test="${ baseCase.relmDvCd == '03' && relmList.ordr eq baseCase.sOrdr }"> <c:if test="${ baseCase.relmDvCd == '03' && relmList.ordr eq baseCase.sOrdr }">
<li> <li>
<button class="category-type-tab__btn category-type-tab__btn-${ relmList.ordr }" id="category-type-tab__btn-${ relmList.ordr }-${ baseCase.iOrdr }" onclick="fn_product_category_type('${ relmList.ordr }', '${ baseCase.iOrdr }'); return false;"> <button class="category-type-tab__btn category-type-tab__btn-${ relmList.ordr }" id="category-type-tab__btn-${ relmList.ordr }-${ baseCase.iOrdr }" onclick="fn_product_category_type('${ relmList.ordr }', '${ baseCase.iOrdr }', '${ prevewVO.mainSiteInnb }'); return false;">
<c:if test = "${not empty baseCase.filCours}"> <c:if test = "${not empty baseCase.filCours}">
<i class="icon icon_category-type-tab01" > <i class="icon icon_category-type-tab01" >
<img src="${cdnurl}${ baseCase.filCours }/${ baseCase.sysFilNm }" onerror="this.src='/pc/images/image_placeholder.png'"> <img src="${cdnurl}${ baseCase.filCours }/${ baseCase.sysFilNm }" onerror="this.src='/pc/images/image_placeholder.png'">
@@ -2351,6 +2353,129 @@
</div> </div>
</c:if> </c:if>
<!-- 베스트 리뷰 -->
<c:if test="${ relmList.relmDvCd eq '09'}">
<div class="main-section__container">
<section class="main-section main-section__best-review">
<c:forEach items="${ resultMap.baseCase }" var="baseCase" varStatus="status">
<c:if test="${ baseCase.relmDvCd == '09' && relmList.ordr eq baseCase.sOrdr }">
<div class="main-section-header">
<div class="main-section-title">
<span class="main-section-title__description">${ baseCase.subSj }</span>
<h2 class="main-section-title__title">
${ baseCase.mainSj }
</h2>
</div>
</div>
</c:if>
</c:forEach>
<div class="best-review">
<div class="best-review-slick">
<c:forEach items="${ resultMap.case09 }" var="case09" varStatus="status">
<c:if test="${ relmList.ordr eq case09.sOrdr }">
<div class="best-review__item">
<div class="best-review__review">
<a href="javascript:void(0);" onclick="fn_move_goods_dtl(${case09.goodsInnb});" class="best-review__review_a">
<div class="best-review__review-image">
<input type="hidden" class="npayBbscttSnb" value="${ case09.npayBbscttSnb }"/>
<c:choose>
<c:when test="${ case09.photoRvwAt eq 'Y' }">
<img src="${cdnurl}${ case09.reviwImg }" class="reviwImg" alt="해당 이미지에 대한 설명" onerror="this.src='/pc/images/image_placeholder.png'">
</c:when>
<c:when test="${ case09.photoRvwAt eq 'N' }">
<img src="${cdnurl}${ case09.goodsImgCours }" class="reviwImg" alt="해당 이미지에 대한 설명" onerror="this.src='/pc/images/image_placeholder.png'">
</c:when>
</c:choose>
</div>
<span class="best-review__title">${ case09.sj }
</span>
<div class="best-review__paragraph">
${ case09.cn }
</div>
</a>
</div>
<div class="best-review__product">
<div class="best-review__product-image">
<a href="javascript:void(0);" onclick="fn_move_goods_dtl(${case09.goodsInnb});">
<img src="${cdnurl}${ case09.goodsImgCours }" alt="${case09.goodsNm }" onerror="this.src='/pc/images/image_placeholder.png'">
</a>
</div>
<div class="product-unit-info">
<div class="product-unit-info__inner">
<div class="product-unit-title">
<a href="javascript:void(0);" onclick="fn_move_goods_dtl(${case09.goodsInnb});">${ case09.goodsNm }</a>
</div>
</div>
<div class="product-unit-misc">
<div class="product-unit-rating">
<i class="icon icon_rating-star"></i>
<span class="product-unit-rating__score"><c:out value="${case09.avgEvlScore}" default="0.0"/></span>
</div>
<div class="product-unit-price">
<span class="product-unit-price__original"><fmt:formatNumber value="${case09.cnsmrpric}" pattern="#,###"/>${curUnit}</span>
<span class="product-unit-price__current"><fmt:formatNumber value="${case09.slepric}" pattern="#,###"/>${curUnit}</span>
</div>
</div>
</div>
</div>
</div>
</c:if>
</c:forEach>
</div>
<div class="best-review-slick__btn-container">
<button class="best-review-slick__prev"><i class="icon icon_prev02"></i><span
class="visually-hidden">이전</span></button>
<button class="best-review-slick__next"><i class="icon icon_next02"></i><span
class="visually-hidden">다음</span></button>
</div>
</div>
</section>
</div>
</c:if>
<!-- 매거진 -->
<!-- 매거진 썸네일 이미지 사이즈 500x360 -->
<c:if test="${ relmList.relmDvCd eq '10'}">
<div class="main-section__container magazine">
<section class="main-section main-section__magazine">
<div class="main-section-header">
<div class="main-section-title">
<span class="main-section-title__description">${ relmList.subSj }</span>
<h2 class="main-section-title__title">
${ relmList.mainSj }
</h2>
</div>
</div>
<div class="magazine">
<div class="magazine-slick col-2">
<c:forEach items="${ resultMap.case10 }" var="case10" varStatus="status">
<c:if test="${ relmList.ordr eq case10.sOrdr }">
<div>
<a href="/sopmal/csc/selectBbscttAuth?bbsId=${ case10.bbsId }&bbscttInnb=${ case10.bbscttInnb }">
<img src="${cdnurl}${ case10.reprsntImgSysFilNm }" alt="해당 이미지에 대한 설명" onerror="this.src='/pc/images/image_placeholder.png'">
</a>
</div>
</c:if>
</c:forEach>
</div>
<div class="magazine-slick__btn-container">
<button class="magazine-slick__prev"><i class="icon icon_prev02"></i><span
class="visually-hidden">이전</span></button>
<button class="magazine-slick__next"><i class="icon icon_next02"></i><span
class="visually-hidden">다음</span></button>
</div>
</div>
<a href="/sopmal/csc/selectBbscttAuth?authDv=REDNG&reqUrl=subPage&bbsId=magazine" class="magazine__more-link">더보기
<i class="icon icon_magazine-more-icon"></i>
</a>
</section>
</div>
</c:if>
<!-- 브랜드 및 제품 바로가기 --> <!-- 브랜드 및 제품 바로가기 -->
<!-- 좌측이미지 사이즈 영역 620x400 --> <!-- 좌측이미지 사이즈 영역 620x400 -->
<!-- 우측이미지 2개 사이즈 영역 각각 620x180 --> <!-- 우측이미지 2개 사이즈 영역 각각 620x180 -->
@@ -2413,6 +2538,94 @@
</section> </section>
</div> </div>
</c:if> </c:if>
<!-- 공지사항 -->
<c:if test="${ relmList.relmDvCd eq '13'}">
<div class="main-section__container">
<section class="main-section main-section__notice">
<div class="main-section-header">
<div class="main-section-title">
<h2 class="main-section-title__title">
공지사항
</h2>
</div>
<div class="notice-line">
<i class="icon icon_notice-speaker"></i>
<div class="notice-line-slick">
<c:forEach items="${ resultMap.case13 }" var="case13" varStatus="status">
<c:if test="${ relmList.ordr eq case13.sOrdr }">
<div>
<span class="text">
<a href="/sopmal/csc/selectBbscttAuth?authDv=CM&reqUrl=csc&bbsId=${ case13.bbsId }&bbscttInnb=${ case13.bbscttInnb }">
${ case13.sj }
</a>
</span>
<span class="date">
<c:set var="registDt" value="${fn:replace(case13.registDt, 'T', ' ')}" />
<fmt:parseDate var="registDt" value="${ registDt }" pattern="yyyy-MM-dd HH:mm:ss"/>
<fmt:formatDate value="${registDt}" pattern="yyyy-MM-dd"/>
</span>
</div>
</c:if>
</c:forEach>
</div>
<div class="btn-container">
<button class="notice-line__prev">
<i class="icon icon_notice-chevron"></i>
</button>
<button class="notice-line__next">
<i class="icon icon_notice-chevron2"></i>
</button>
</div>
</div>
</div>
</section>
</div>
</c:if>
<!-- FAQ -->
<c:if test="${ relmList.relmDvCd eq '14'}">
<div class="main-section__container">
<section class="main-section main-section__notice">
<div class="notice">
<c:forEach items="${ resultMap.case14 }" var="case14" varStatus="status">
<c:if test="${ relmList.ordr eq case14.sOrdr }">
<c:if test="${ case14.iOrdr eq '1' }">
<div class="notice__box">
<a href="/sopmal/csc/selectBbscttAuth?authDv=REDNG&reqUrl=csc&bbsId=faq">
<i class="icon icon_notice01"></i>
</a>
<h4 class="notice__title"><a href="">${ case14.itemMainSj }</a></h4>
<span class="notice__description">${ case14.itemSubSj }</span>
</div>
</c:if>
<c:if test="${ case14.iOrdr eq '2' }">
<div class="notice__box">
<a href="/sopmal/csc/selectBbscttAuth?authDv=REDNG&reqUrl=useGuidance&bbsId=use_guidance">
<i class="icon icon_notice02"></i>
</a>
<h4 class="notice__title"><a href="">${ case14.itemMainSj }</a></h4>
<span class="notice__description">${ case14.itemSubSj }</span>
</div>
</c:if>
<c:if test="${ case14.iOrdr eq '3' }">
<div class="notice__box">
<i class="icon icon_notice03"></i>
<h4 class="notice__title customer-service">${ case14.itemMainSj }</h4>
<span class="notice__number">${ case14.cscTelnb }</span>
<p class="notice__paragraph">
<span class="notice__text01">${ case14.cscWkdayWorkTme }</span>
<span class="notice__text02">(${ case14.cscLunchTme })</span>
<br>
<span class="notice__text03">${ case14.cscRstde }</span>
</p>
</div>
</c:if>
</c:if>
</c:forEach>
</div>
</section>
</div>
</c:if>
</c:forEach> </c:forEach>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
@@ -2731,7 +2944,8 @@
// 상품 카테고리 탭 // 상품 카테고리 탭
$('.section-3').each(function () { $('.section-3').each(function () {
let ordr = $(this).find('input[name="section-ordr"]').val(); let ordr = $(this).find('input[name="section-ordr"]').val();
fn_product_category_type(ordr, "1"); let mainSiteInnb = $(this).find('input[name="section-mainSiteInnb"]').val();
fn_product_category_type(ordr, "1", mainSiteInnb);
}); });
@@ -2775,11 +2989,11 @@
} }
// 상품 카테고리 탭 클릭 시 // 상품 카테고리 탭 클릭 시
const fn_product_category_type = function (ordr, tabNo) { const fn_product_category_type = function (ordr, tabNo, mainSiteInnb) {
$('.category-type-tab__btn-' + ordr).removeClass('active'); $('.category-type-tab__btn-' + ordr).removeClass('active');
$('#category-type-tab__btn-' + ordr + '-' + tabNo).addClass('active'); $('#category-type-tab__btn-' + ordr + '-' + tabNo).addClass('active');
fn_select_product_category(ordr, tabNo); fn_select_product_category(ordr, tabNo, mainSiteInnb);
$('.product-list-type-category-' + ordr).hide(); $('.product-list-type-category-' + ordr).hide();
$('#product-list-type-category-' + ordr + '-' + tabNo).show(); $('#product-list-type-category-' + ordr + '-' + tabNo).show();
@@ -2787,13 +3001,14 @@
// 상품 카테고리 가져오기 // 상품 카테고리 가져오기
const fn_select_product_category = function (ordr, tabNo) { const fn_select_product_category = function (ordr, tabNo, mainSiteInnb) {
$.ajax({ $.ajax({
type: "post", type: "post",
url: "/sopmal/main/selectMainSiteDesignCtgryListInqire", url: "/sopmal/main/selectMainSiteDesignCtgryListInqire",
data: { data: {
ordr: ordr, ordr: ordr,
expsrOrdr: tabNo expsrOrdr: tabNo,
mainSiteInnb: mainSiteInnb
}, },
success: function (data) { success: function (data) {
let result = JSON.parse(data.resBody.result); let result = JSON.parse(data.resBody.result);

View File

@@ -10,7 +10,7 @@
<%-- <%--
Class Name : CmnuseInfoFormR.jsp Class Name : CmnuseInfoFormR.jsp
Description : 반품교환정보 상세 화면 Description : 배송/반품정보 상세 화면
Modification Information Modification Information
수정일 수정자 수정내용 수정일 수정자 수정내용
@@ -60,7 +60,7 @@
formData.append(item.name, item.value); formData.append(item.name, item.value);
}); });
if(confirm('반품교환정보를 <spring:message code="confirm.common.update"/>')) { if(confirm('배송/반품정보를 <spring:message code="confirm.common.update"/>')) {
$.ajax({ $.ajax({
type : 'post', type : 'post',
url : url, url : url,
@@ -98,7 +98,7 @@
<div class="content__inner"> <div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button> <button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title"> <div class="page-title">
<h2 class="page-title__title">반품교환정보 수정</h2> <h2 class="page-title__title">배송/반품정보 수정</h2>
<div class="page-title__btn-container"> <div class="page-title__btn-container">
<button class="btn outline" onclick="fn_move_list();"><spring:message code="button.list"/></button> <button class="btn outline" onclick="fn_move_list();"><spring:message code="button.list"/></button>
<button class="btn primary" onclick="fn_update_cmnuseInfor(${resultMap.cmnuseInfoInnb});"><spring:message code="button.update"/></button> <button class="btn primary" onclick="fn_update_cmnuseInfor(${resultMap.cmnuseInfoInnb});"><spring:message code="button.update"/></button>
@@ -107,10 +107,10 @@
<form id="cmnuseInfoUpdForm" name="cmnuseInfoUpdForm"> <form id="cmnuseInfoUpdForm" name="cmnuseInfoUpdForm">
<section class="content-section"> <section class="content-section">
<h3 class="content-section__inner-title">반품교환정보</h3> <h3 class="content-section__inner-title">배송/반품정보</h3>
<div class="table-wrapper"> <div class="table-wrapper">
<table class="table"> <table class="table">
<caption>반품교환정보명</caption> <caption>배송/반품정보명</caption>
<colgroup> <colgroup>
<col style="width: 12%;"> <col style="width: 12%;">
<col> <col>
@@ -118,7 +118,7 @@
<tbody> <tbody>
<tr> <tr>
<th>반품교환정보명</th> <th>배송/반품정보명</th>
<td> <td>
<div class="td-inner"> <div class="td-inner">
<div class="word-limit-input"> <div class="word-limit-input">

View File

@@ -9,7 +9,7 @@
<%-- <%--
Class Name : CmnuseInfoFormR.jsp Class Name : CmnuseInfoFormR.jsp
Description : 반품교환정보 등록 화면 Description : 배송/반품정보 등록 화면
Modification Information Modification Information
수정일 수정자 수정내용 수정일 수정자 수정내용
@@ -59,7 +59,7 @@
formData.append(item.name, item.value); formData.append(item.name, item.value);
}); });
if(confirm('반품교환정보를 <spring:message code="confirm.common.insert"/>')) { if(confirm('배송/반품정보를 <spring:message code="confirm.common.insert"/>')) {
$.ajax({ $.ajax({
type : 'post', type : 'post',
url : url, url : url,
@@ -98,7 +98,7 @@
<div class="content__inner"> <div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button> <button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title"> <div class="page-title">
<h2 class="page-title__title">반품교환정보 등록</h2> <h2 class="page-title__title">배송/반품정보 등록</h2>
<div class="page-title__btn-container"> <div class="page-title__btn-container">
<button class="btn outline" onclick="fn_move_list();"><spring:message code="button.list"/></button> <button class="btn outline" onclick="fn_move_list();"><spring:message code="button.list"/></button>
<button class="btn primary" onclick="fn_regist_cmnuseInfor();"><spring:message code="button.insert"/></button> <button class="btn primary" onclick="fn_regist_cmnuseInfor();"><spring:message code="button.insert"/></button>
@@ -107,17 +107,17 @@
<form id="cmnuseInfoRegForm" name="cmnuseInfoRegForm"> <form id="cmnuseInfoRegForm" name="cmnuseInfoRegForm">
<section class="content-section"> <section class="content-section">
<h3 class="content-section__inner-title">반품교환정보</h3> <h3 class="content-section__inner-title">배송/반품정보</h3>
<div class="table-wrapper"> <div class="table-wrapper">
<table class="table"> <table class="table">
<caption>반품교환정보명</caption> <caption>배송/반품정보명</caption>
<colgroup> <colgroup>
<col style="width: 12%;"> <col style="width: 12%;">
<col> <col>
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th>반품교환정보명</th> <th>배송/반품정보명</th>
<td> <td>
<div class="td-inner"> <div class="td-inner">
<div class="word-limit-input"> <div class="word-limit-input">

View File

@@ -8,7 +8,7 @@
<%-- <%--
Class Name : GoodsInfoFormR.jsp Class Name : GoodsInfoFormR.jsp
Description : 반품교환정보 목록 화면 Description : 배송/반품정보 목록 화면
Modification Information Modification Information
수정일 수정자 수정내용 수정일 수정자 수정내용
@@ -53,7 +53,7 @@
return false; return false;
} }
if (confirm('반품교환정보를 <spring:message code="confirm.common.delete"/>')) { if (confirm('배송/반품정보를 <spring:message code="confirm.common.delete"/>')) {
$.ajax({ $.ajax({
type : 'post', type : 'post',
url : '<c:url value="/mngr/goods/cmnuse/deleteCmnuseInfo"/>', url : '<c:url value="/mngr/goods/cmnuse/deleteCmnuseInfo"/>',
@@ -84,7 +84,7 @@
<div class="content__inner"> <div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button> <button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title"> <div class="page-title">
<h2 class="page-title__title">반품교환정보 목록</h2> <h2 class="page-title__title">배송/반품정보 목록</h2>
<div class="page-title__btn-container"> <div class="page-title__btn-container">
<button class="btn primary" onclick="fn_move_inforRegist();">등록</button> <button class="btn primary" onclick="fn_move_inforRegist();">등록</button>
</div> </div>

View File

@@ -163,14 +163,14 @@
} }
// 반품교환정보 선택여부 // 배송/반품정보 선택여부
const cmnuseInfoUptAt = $('#cmnuseInfoUptAt').prop('checked') const cmnuseInfoUptAt = $('#cmnuseInfoUptAt').prop('checked')
if(cmnuseInfoUptAt){ if(cmnuseInfoUptAt){
const cmnuseInfoInnb = $('div.cmnuseInfoInnb') const cmnuseInfoInnb = $('div.cmnuseInfoInnb')
const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected') const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected')
if(fn_is_empty(cmnuseInfoInnbSelect.val())){ if(fn_is_empty(cmnuseInfoInnbSelect.val())){
cmnuseInfoInnb.focus() cmnuseInfoInnb.focus()
alert('반품교환정보를 선택해 주세요') alert('배송/반품정보를 선택해 주세요')
return false; return false;
} }
} }
@@ -295,7 +295,7 @@
formData.append('expsrSetupFwords', expsrSetupFwords) formData.append('expsrSetupFwords', expsrSetupFwords)
} }
//반품교환정보 선택 여부 //배송/반품정보 선택 여부
fn_create_input('hidden', "cmnuseInfoUptAt", $('#cmnuseInfoUptAt').prop('checked')?'Y':'N', hiddenForm); fn_create_input('hidden', "cmnuseInfoUptAt", $('#cmnuseInfoUptAt').prop('checked')?'Y':'N', hiddenForm);
//배송일 선택 여부 //배송일 선택 여부
fn_create_input('hidden', "dlvyGroupUptAt", $('#dlvyGroupUptAt').prop('checked')?'Y':'N', hiddenForm); fn_create_input('hidden', "dlvyGroupUptAt", $('#dlvyGroupUptAt').prop('checked')?'Y':'N', hiddenForm);
@@ -553,7 +553,7 @@
<%-- <a href="#section06" class="content-tab__scroll-btn">상품 사진</a>--%> <%-- <a href="#section06" class="content-tab__scroll-btn">상품 사진</a>--%>
<%-- <a href="#section07" class="content-tab__scroll-btn">상세 설명</a>--%> <%-- <a href="#section07" class="content-tab__scroll-btn">상세 설명</a>--%>
<%-- <a href="#section08" class="content-tab__scroll-btn">모바일용 상세 설명</a>--%> <%-- <a href="#section08" class="content-tab__scroll-btn">모바일용 상세 설명</a>--%>
<a href="#section09" class="content-tab__scroll-btn">반품교환정보</a> <a href="#section09" class="content-tab__scroll-btn">배송/반품정보</a>
<a href="#section10" class="content-tab__scroll-btn">배송</a> <a href="#section10" class="content-tab__scroll-btn">배송</a>
<a href="#section11" class="content-tab__scroll-btn">입점 마케팅</a> <a href="#section11" class="content-tab__scroll-btn">입점 마케팅</a>
<%-- <a href="#section13" class="content-tab__scroll-btn">추천 상품</a>--%> <%-- <a href="#section13" class="content-tab__scroll-btn">추천 상품</a>--%>
@@ -893,13 +893,13 @@
</section> </section>
<section id="section09" class="content-section content-scroll-detect content-fold"> <section id="section09" class="content-section content-scroll-detect content-fold">
<div class="content-fold__header"> <div class="content-fold__header">
<h3 class="content-section__title">반품교환정보</h3> <h3 class="content-section__title">배송/반품정보</h3>
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button> <button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
</div> </div>
<div class="content-fold__content"> <div class="content-fold__content">
<div class="table-wrapper"> <div class="table-wrapper">
<table class="table"> <table class="table">
<caption>반품교환정보</caption> <caption>배송/반품정보</caption>
<colgroup> <colgroup>
<col style="width: 12%;"> <col style="width: 12%;">
<col style="width: 44%;"> <col style="width: 44%;">
@@ -909,7 +909,7 @@
<tr> <tr>
<th> <th>
<div class="b-checkbox-container inner"> <div class="b-checkbox-container inner">
반품교환정보 배송/반품정보
<label class="b-checkbox checkbox"> <label class="b-checkbox checkbox">
<input type="checkbox" id="cmnuseInfoUptAt"> <input type="checkbox" id="cmnuseInfoUptAt">
<span class="check"></span> <span class="check"></span>
@@ -920,7 +920,7 @@
<td colspan="2"> <td colspan="2">
<div class="td-inner"> <div class="td-inner">
<div class="select-box"> <div class="select-box">
<select title="반품교환정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb"> <select title="배송/반품정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb">
<option value="">선택</option> <option value="">선택</option>
<c:forEach var="infoList" items="${ resultMap.infoList }" varStatus=""> <c:forEach var="infoList" items="${ resultMap.infoList }" varStatus="">
<option value="${ infoList.cmnuseInfoInnb }" >${ infoList.cmnuseInfoSj }</option> <option value="${ infoList.cmnuseInfoInnb }" >${ infoList.cmnuseInfoSj }</option>
@@ -932,7 +932,7 @@
</td> </td>
</tr> </tr>
<%-- <tr>--%> <%-- <tr>--%>
<%-- <th>반품교환정보 설명</th>--%> <%-- <th>배송/반품정보 설명</th>--%>
<%-- <td colspan="2">--%> <%-- <td colspan="2">--%>
<%--&lt;%&ndash; <div class="td-inner" readonly="">&ndash;%&gt;--%> <%--&lt;%&ndash; <div class="td-inner" readonly="">&ndash;%&gt;--%>
<%--&lt;%&ndash; <textarea class="textarea" title="에디터 입력" cols="30" id="cmnuseInfoCn"&ndash;%&gt;--%> <%--&lt;%&ndash; <textarea class="textarea" title="에디터 입력" cols="30" id="cmnuseInfoCn"&ndash;%&gt;--%>

View File

@@ -35,7 +35,7 @@
const sopmalCd = $('#sopmalCd').val() const sopmalCd = $('#sopmalCd').val()
fn_create_ckeditor('#goodsDc', sopmalCd); //상세 설명 > 상품 설명 ck에디터 적용 fn_create_ckeditor('#goodsDc', sopmalCd); //상세 설명 > 상품 설명 ck에디터 적용
fn_create_ckeditor('#mblGoodsDc', sopmalCd); // 모바일용 상세 설명 > 모바일용 상품 설명 ck에디터 적용 fn_create_ckeditor('#mblGoodsDc', sopmalCd); // 모바일용 상세 설명 > 모바일용 상품 설명 ck에디터 적용
// fn_create_ckeditor('#cmnuseInfoCn', sopmalCd); // 반품교환정보 상세 설명 > ck에디터 적용 // fn_create_ckeditor('#cmnuseInfoCn', sopmalCd); // 배송/반품정보 상세 설명 > ck에디터 적용
fn_ctrl_disable(['.purchsQy']) //구매 수량 초기 disable처리 fn_ctrl_disable(['.purchsQy']) //구매 수량 초기 disable처리
/** 구매대상자 제한 버튼 활성화 여부 이벤트 */ /** 구매대상자 제한 버튼 활성화 여부 이벤트 */
@@ -771,12 +771,12 @@
return false; return false;
} }
// 반품교환정보 선택여부 // 배송/반품정보 선택여부
const cmnuseInfoInnb = $('div.cmnuseInfoInnb') const cmnuseInfoInnb = $('div.cmnuseInfoInnb')
const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected') const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected')
if(fn_is_empty(cmnuseInfoInnbSelect.val())){ if(fn_is_empty(cmnuseInfoInnbSelect.val())){
cmnuseInfoInnb.focus() cmnuseInfoInnb.focus()
alert('반품교환정보를 선택해 주세요') alert('배송/반품정보를 선택해 주세요')
return false; return false;
} }
@@ -1173,7 +1173,7 @@
document.body.appendChild(hiddenForm); document.body.appendChild(hiddenForm);
//상세 설명 > 반품교환정보 설명 get_editor_data //상세 설명 > 배송/반품정보 설명 get_editor_data
// let cmnuseInfoCn = fn_get_editor_data('#cmnuseInfoCn'); // let cmnuseInfoCn = fn_get_editor_data('#cmnuseInfoCn');
// $('#cmnuseInfoCn').val(cmnuseInfoCn); // $('#cmnuseInfoCn').val(cmnuseInfoCn);
@@ -2387,7 +2387,7 @@
<a href="#section06" class="content-tab__scroll-btn">상품 사진</a> <a href="#section06" class="content-tab__scroll-btn">상품 사진</a>
<a href="#section07" class="content-tab__scroll-btn">상세 설명</a> <a href="#section07" class="content-tab__scroll-btn">상세 설명</a>
<a href="#section08" class="content-tab__scroll-btn">모바일용 <br/> 상세 설명</a> <a href="#section08" class="content-tab__scroll-btn">모바일용 <br/> 상세 설명</a>
<a href="#section09" class="content-tab__scroll-btn">반품교환정보</a> <a href="#section09" class="content-tab__scroll-btn">배송/반품정보</a>
<a href="#section10" class="content-tab__scroll-btn">배송</a> <a href="#section10" class="content-tab__scroll-btn">배송</a>
<a href="#section11" class="content-tab__scroll-btn">입점 마케팅</a> <a href="#section11" class="content-tab__scroll-btn">입점 마케팅</a>
<a href="#section13" class="content-tab__scroll-btn">함께하면 <br/> 좋은 상품</a> <a href="#section13" class="content-tab__scroll-btn">함께하면 <br/> 좋은 상품</a>
@@ -3698,13 +3698,13 @@
</section> </section>
<section id="section09" class="content-section content-scroll-detect content-fold"> <section id="section09" class="content-section content-scroll-detect content-fold">
<div class="content-fold__header"> <div class="content-fold__header">
<h3 class="content-section__title">반품교환정보</h3> <h3 class="content-section__title">배송/반품정보</h3>
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button> <button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
</div> </div>
<div class="content-fold__content"> <div class="content-fold__content">
<div class="table-wrapper"> <div class="table-wrapper">
<table class="table"> <table class="table">
<caption>반품교환정보</caption> <caption>배송/반품정보</caption>
<colgroup> <colgroup>
<col style="width: 12%;"> <col style="width: 12%;">
<col style="width: 44%;"> <col style="width: 44%;">
@@ -3712,11 +3712,11 @@
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th>반품교환정보 선택<span class="red-7">*</span></th> <th>배송/반품정보 선택<span class="red-7">*</span></th>
<td colspan="2"> <td colspan="2">
<div class="td-inner"> <div class="td-inner">
<div class="select-box"> <div class="select-box">
<select title="반품교환정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb"> <select title="배송/반품정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb">
<option value="">선택</option> <option value="">선택</option>
<c:forEach var="infoList" items="${ resultMap.infoList }" varStatus=""> <c:forEach var="infoList" items="${ resultMap.infoList }" varStatus="">
<option value="${ infoList.cmnuseInfoInnb }" >${ infoList.cmnuseInfoSj }</option> <option value="${ infoList.cmnuseInfoInnb }" >${ infoList.cmnuseInfoSj }</option>
@@ -3728,7 +3728,7 @@
</td> </td>
</tr> </tr>
<%-- <tr>--%> <%-- <tr>--%>
<%-- <th>반품교환정보 설명</th>--%> <%-- <th>배송/반품정보 설명</th>--%>
<%-- <td colspan="2">--%> <%-- <td colspan="2">--%>
<%--&lt;%&ndash; <div class="td-inner" readonly="">&ndash;%&gt;--%> <%--&lt;%&ndash; <div class="td-inner" readonly="">&ndash;%&gt;--%>
<%--&lt;%&ndash; <textarea class="textarea" title="에디터 입력" cols="30" id="cmnuseInfoCn"&ndash;%&gt;--%> <%--&lt;%&ndash; <textarea class="textarea" title="에디터 입력" cols="30" id="cmnuseInfoCn"&ndash;%&gt;--%>

View File

@@ -66,7 +66,7 @@
const sopmalCd = $('#sopmalCd').val() const sopmalCd = $('#sopmalCd').val()
fn_create_ckeditor('#goodsDc', sopmalCd); //상세 설명 > 상품 설명 ck에디터 적용 fn_create_ckeditor('#goodsDc', sopmalCd); //상세 설명 > 상품 설명 ck에디터 적용
fn_create_ckeditor('#mblGoodsDc', sopmalCd); // 모바일용 상세 설명 > 모바일용 상품 설명 ck에디터 적용 fn_create_ckeditor('#mblGoodsDc', sopmalCd); // 모바일용 상세 설명 > 모바일용 상품 설명 ck에디터 적용
// fn_create_ckeditor('#cmnuseInfoCn', sopmalCd); // 반품교환정보 상세 설명 > ck에디터 적용 // fn_create_ckeditor('#cmnuseInfoCn', sopmalCd); // 배송/반품정보 상세 설명 > ck에디터 적용
/** 구매대상자 제한 버튼 활성화 여부 이벤트 */ /** 구매대상자 제한 버튼 활성화 여부 이벤트 */
$('#r-18').click(function () { $('#r-18').click(function () {
@@ -825,12 +825,12 @@
return false; return false;
} }
// 반품교환정보 선택여부 // 배송/반품정보 선택여부
const cmnuseInfoInnb = $('div.cmnuseInfoInnb') const cmnuseInfoInnb = $('div.cmnuseInfoInnb')
const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected') const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected')
if(fn_is_empty(cmnuseInfoInnbSelect.val())){ if(fn_is_empty(cmnuseInfoInnbSelect.val())){
cmnuseInfoInnb.focus() cmnuseInfoInnb.focus()
alert('반품교환정보를 선택해 주세요') alert('배송/반품정보를 선택해 주세요')
return false; return false;
} }
@@ -1228,7 +1228,7 @@
document.body.appendChild(hiddenForm); document.body.appendChild(hiddenForm);
//상세 설명 > 반품교환정보 설명 get_editor_data //상세 설명 > 배송/반품정보 설명 get_editor_data
// let cmnuseInfoCn = fn_get_editor_data('#cmnuseInfoCn'); // let cmnuseInfoCn = fn_get_editor_data('#cmnuseInfoCn');
// $('#cmnuseInfoCn').val(cmnuseInfoCn); // $('#cmnuseInfoCn').val(cmnuseInfoCn);
@@ -2517,7 +2517,7 @@
<a href="#section06" class="content-tab__scroll-btn">상품 사진</a> <a href="#section06" class="content-tab__scroll-btn">상품 사진</a>
<a href="#section07" class="content-tab__scroll-btn">상세 설명</a> <a href="#section07" class="content-tab__scroll-btn">상세 설명</a>
<a href="#section08" class="content-tab__scroll-btn">모바일용 <br/> 상세 설명</a> <a href="#section08" class="content-tab__scroll-btn">모바일용 <br/> 상세 설명</a>
<a href="#section09" class="content-tab__scroll-btn">반품교환정보</a> <a href="#section09" class="content-tab__scroll-btn">배송/반품정보</a>
<a href="#section10" class="content-tab__scroll-btn">배송</a> <a href="#section10" class="content-tab__scroll-btn">배송</a>
<a href="#section11" class="content-tab__scroll-btn">입점 마케팅</a> <a href="#section11" class="content-tab__scroll-btn">입점 마케팅</a>
<a href="#section13" class="content-tab__scroll-btn">함께하면 <br/> 좋은 상품</a> <a href="#section13" class="content-tab__scroll-btn">함께하면 <br/> 좋은 상품</a>
@@ -4403,14 +4403,14 @@
</section> </section>
<section id="section09" class="content-section content-scroll-detect content-fold"> <section id="section09" class="content-section content-scroll-detect content-fold">
<div class="content-fold__header"> <div class="content-fold__header">
<h3 class="content-section__title">반품교환정보</h3> <h3 class="content-section__title">배송/반품정보</h3>
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button> <button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
<%-- <button class="btn primary btn-light" id="cmnuseInfoInnb_update" name="btn_update_EtcInfo">반품교환정보 수정</button>--%> <%-- <button class="btn primary btn-light" id="cmnuseInfoInnb_update" name="btn_update_EtcInfo">배송/반품정보 수정</button>--%>
</div> </div>
<div class="content-fold__content"> <div class="content-fold__content">
<div class="table-wrapper"> <div class="table-wrapper">
<table class="table"> <table class="table">
<caption>반품교환정보</caption> <caption>배송/반품정보</caption>
<colgroup> <colgroup>
<col style="width: 12%;"> <col style="width: 12%;">
<col style="width: 44%;"> <col style="width: 44%;">
@@ -4418,11 +4418,11 @@
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th>반품교환정보 선택<span class="red-7">*</span></th> <th>배송/반품정보 선택<span class="red-7">*</span></th>
<td colspan="2"> <td colspan="2">
<div class="td-inner"> <div class="td-inner">
<div class="select-box"> <div class="select-box">
<select title="반품교환정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb"> <select title="배송/반품정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb">
<option value="" >선택</option> <option value="" >선택</option>
<c:forEach var="infoList" items="${ resultMap.infoList }" varStatus=""> <c:forEach var="infoList" items="${ resultMap.infoList }" varStatus="">
<option value="${ infoList.cmnuseInfoInnb }" <c:if test="${infoList.cmnuseInfoInnb eq resultMap.goodsDtl.cmnuseInfoInnb }"> selected </c:if> >${ infoList.cmnuseInfoSj } </option> <option value="${ infoList.cmnuseInfoInnb }" <c:if test="${infoList.cmnuseInfoInnb eq resultMap.goodsDtl.cmnuseInfoInnb }"> selected </c:if> >${ infoList.cmnuseInfoSj } </option>
@@ -4434,7 +4434,7 @@
</td> </td>
</tr> </tr>
<%-- <tr>--%> <%-- <tr>--%>
<%-- <th>반품교환정보 설명</th>--%> <%-- <th>배송/반품정보 설명</th>--%>
<%-- <td colspan="2">--%> <%-- <td colspan="2">--%>
<%-- <div class="ck-content">--%> <%-- <div class="ck-content">--%>
<%-- <c:forEach var="infoList" items="${ resultMap.infoList }" varStatus="">--%> <%-- <c:forEach var="infoList" items="${ resultMap.infoList }" varStatus="">--%>

View File

@@ -93,7 +93,7 @@
const sopmalCd = $('#sopmalCd').val() const sopmalCd = $('#sopmalCd').val()
fn_create_ckeditor('#goodsDc', sopmalCd); //상세 설명 > 상품 설명 ck에디터 적용 fn_create_ckeditor('#goodsDc', sopmalCd); //상세 설명 > 상품 설명 ck에디터 적용
fn_create_ckeditor('#mblGoodsDc', sopmalCd); // 모바일용 상세 설명 > 모바일용 상품 설명 ck에디터 적용 fn_create_ckeditor('#mblGoodsDc', sopmalCd); // 모바일용 상세 설명 > 모바일용 상품 설명 ck에디터 적용
// fn_create_ckeditor('#cmnuseInfoCn', sopmalCd); // 반품교환정보 상세 설명 > ck에디터 적용 // fn_create_ckeditor('#cmnuseInfoCn', sopmalCd); // 배송/반품정보 상세 설명 > ck에디터 적용
/** 구매대상자 제한 버튼 활성화 여부 이벤트 */ /** 구매대상자 제한 버튼 활성화 여부 이벤트 */
$('#r-18').click(function () { $('#r-18').click(function () {
@@ -1998,12 +1998,12 @@
} }
// 반품교환정보 선택여부 // 배송/반품정보 선택여부
const cmnuseInfoInnb = $('div.cmnuseInfoInnb') const cmnuseInfoInnb = $('div.cmnuseInfoInnb')
const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected') const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected')
if(fn_is_empty(cmnuseInfoInnbSelect.val())){ if(fn_is_empty(cmnuseInfoInnbSelect.val())){
cmnuseInfoInnb.focus() cmnuseInfoInnb.focus()
alert('반품교환정보를 선택해 주세요') alert('배송/반품정보를 선택해 주세요')
return false; return false;
} }
@@ -2750,7 +2750,7 @@
const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected') const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected')
if(fn_is_empty(cmnuseInfoInnbSelect.val())){ if(fn_is_empty(cmnuseInfoInnbSelect.val())){
cmnuseInfoInnb.focus() cmnuseInfoInnb.focus()
alert('반품교환정보를 선택해 주세요') alert('배송/반품정보를 선택해 주세요')
return false; return false;
} }
} }
@@ -2770,7 +2770,7 @@
fn_create_input('hidden', 'mblGoodsDc',$('#mblGoodsDc').val(), hiddenForm) fn_create_input('hidden', 'mblGoodsDc',$('#mblGoodsDc').val(), hiddenForm)
//반품교환정보 //배송/반품정보
fn_create_input('hidden', 'cmnuseInfoInnb',$('#cmnuseInfoInnb option:selected').val(), hiddenForm) fn_create_input('hidden', 'cmnuseInfoInnb',$('#cmnuseInfoInnb option:selected').val(), hiddenForm)
//배송그룹 //배송그룹
@@ -2805,7 +2805,7 @@
break; break;
case 'mblGoodsDc_update': targetGubun = '모바일용 상세 설명'; sectionNo = '08'; case 'mblGoodsDc_update': targetGubun = '모바일용 상세 설명'; sectionNo = '08';
break; break;
case 'cmnuseInfoInnb_update': targetGubun = '반품교환정보'; sectionNo = '09'; case 'cmnuseInfoInnb_update': targetGubun = '배송/반품정보'; sectionNo = '09';
break; break;
case 'dlvyGroupInnb_update': targetGubun = '배송'; sectionNo = '10'; case 'dlvyGroupInnb_update': targetGubun = '배송'; sectionNo = '10';
break; break;
@@ -2960,7 +2960,7 @@
<a href="#section06" class="content-tab__scroll-btn">상품 사진</a> <a href="#section06" class="content-tab__scroll-btn">상품 사진</a>
<a href="#section07" class="content-tab__scroll-btn">상세 설명</a> <a href="#section07" class="content-tab__scroll-btn">상세 설명</a>
<a href="#section08" class="content-tab__scroll-btn">모바일용 <br/> 상세 설명</a> <a href="#section08" class="content-tab__scroll-btn">모바일용 <br/> 상세 설명</a>
<a href="#section09" class="content-tab__scroll-btn">반품교환정보</a> <a href="#section09" class="content-tab__scroll-btn">배송/반품정보</a>
<a href="#section10" class="content-tab__scroll-btn">배송</a> <a href="#section10" class="content-tab__scroll-btn">배송</a>
<a href="#section11" class="content-tab__scroll-btn">입점 마케팅</a> <a href="#section11" class="content-tab__scroll-btn">입점 마케팅</a>
<a href="#section13" class="content-tab__scroll-btn">함께하면 <br/> 좋은 상품</a> <a href="#section13" class="content-tab__scroll-btn">함께하면 <br/> 좋은 상품</a>
@@ -4881,14 +4881,14 @@
</section> </section>
<section id="section09" class="content-section content-scroll-detect content-fold"> <section id="section09" class="content-section content-scroll-detect content-fold">
<div class="content-fold__header"> <div class="content-fold__header">
<h3 class="content-section__title">반품교환정보</h3> <h3 class="content-section__title">배송/반품정보</h3>
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button> <button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
<button class="btn primary btn-light cmnuseInfo" id="cmnuseInfoInnb_update" name="btn_update_EtcInfo">반품교환정보 수정</button> <button class="btn primary btn-light cmnuseInfo" id="cmnuseInfoInnb_update" name="btn_update_EtcInfo">배송/반품정보 수정</button>
</div> </div>
<div class="content-fold__content"> <div class="content-fold__content">
<div class="table-wrapper"> <div class="table-wrapper">
<table class="table"> <table class="table">
<caption>반품교환정보</caption> <caption>배송/반품정보</caption>
<colgroup> <colgroup>
<col style="width: 12%;"> <col style="width: 12%;">
<col style="width: 44%;"> <col style="width: 44%;">
@@ -4896,11 +4896,11 @@
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th>반품교환정보 선택<span class="red-7">*</span></th> <th>배송/반품정보 선택<span class="red-7">*</span></th>
<td colspan="2"> <td colspan="2">
<div class="td-inner"> <div class="td-inner">
<div class="select-box"> <div class="select-box">
<select title="반품교환정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb"> <select title="배송/반품정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb">
<option value="" >선택</option> <option value="" >선택</option>
<c:forEach var="infoList" items="${ resultMap.infoList }" varStatus=""> <c:forEach var="infoList" items="${ resultMap.infoList }" varStatus="">
<option value="${ infoList.cmnuseInfoInnb }" <c:if test="${infoList.cmnuseInfoInnb eq resultMap.goodsDtl.cmnuseInfoInnb }"> selected </c:if> >${ infoList.cmnuseInfoSj } </option> <option value="${ infoList.cmnuseInfoInnb }" <c:if test="${infoList.cmnuseInfoInnb eq resultMap.goodsDtl.cmnuseInfoInnb }"> selected </c:if> >${ infoList.cmnuseInfoSj } </option>
@@ -4912,7 +4912,7 @@
</td> </td>
</tr> </tr>
<%-- <tr>--%> <%-- <tr>--%>
<%-- <th>반품교환정보 설명</th>--%> <%-- <th>배송/반품정보 설명</th>--%>
<%-- <td colspan="2">--%> <%-- <td colspan="2">--%>
<%-- <div class="ck-content">--%> <%-- <div class="ck-content">--%>
<%-- <c:forEach var="infoList" items="${ resultMap.infoList }" varStatus="">--%> <%-- <c:forEach var="infoList" items="${ resultMap.infoList }" varStatus="">--%>

View File

@@ -33,6 +33,9 @@
$(this).val(input.replace(/[^0-9]/g, "").replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")); $(this).val(input.replace(/[^0-9]/g, "").replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
}); });
//실판매가 세팅
fn_cal_selpric();
const expsrSetTable = document.getElementById('expsrSet'); const expsrSetTable = document.getElementById('expsrSet');
//노출예약 체크되어있을 경우 enable 처리 //노출예약 체크되어있을 경우 enable 처리
if($("input[name='expsrDvCd']:checked").val() ==='03'){ if($("input[name='expsrDvCd']:checked").val() ==='03'){
@@ -542,7 +545,6 @@
<input type="hidden" id="delImg" name="delImg" value=""> <input type="hidden" id="delImg" name="delImg" value="">
<input type="hidden" id="expsrBgnDt" name="expsrBgnDt" value="<c:if test='${resultMap.subsvcDtl != null}'>${resultMap.subsvcDtl.expsrBgnDt}</c:if>"> <input type="hidden" id="expsrBgnDt" name="expsrBgnDt" value="<c:if test='${resultMap.subsvcDtl != null}'>${resultMap.subsvcDtl.expsrBgnDt}</c:if>">
<input type="hidden" id="expsrEndDt" name="expsrEndDt" value="<c:if test='${resultMap.subsvcDtl != null}'>${resultMap.subsvcDtl.expsrBgnDt}</c:if>"> <input type="hidden" id="expsrEndDt" name="expsrEndDt" value="<c:if test='${resultMap.subsvcDtl != null}'>${resultMap.subsvcDtl.expsrBgnDt}</c:if>">
<input type="hidden" id="usefulInvntryQy" name="usefulInvntryQy" value="<c:if test='${resultMap.subsvcDtl != null}'>${resultMap.subsvcDtl.usefulInvntryQy}</c:if>">
<spring:eval expression="@environment.getProperty('spring.servlet.multipart.max-file-size')" var="maxFileSize"/> <spring:eval expression="@environment.getProperty('spring.servlet.multipart.max-file-size')" var="maxFileSize"/>
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.extensions.images')" var="acceptFileExtensions"/> <spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.extensions.images')" var="acceptFileExtensions"/>
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/> <spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
@@ -655,7 +657,7 @@
<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 sm number text-right allow-zero" type="text" title="실판매가" id="selpric" name="selpric" maxlength="11" value="<c:if test='${resultMap.subsvcDtl != null}'>${resultMap.subsvcDtl.selpric}</c:if>" readonly> 円(엔) <input class="input-text sm number text-right allow-zero" type="text" title="실판매가" id="selpric" name="selpric" maxlength="11" required readonly> 円(엔)
</div> </div>
</td> </td>
</tr> </tr>
@@ -675,9 +677,9 @@
<caption>구독설정</caption> <caption>구독설정</caption>
<colgroup> <colgroup>
<col style="width: 12%;"> <col style="width: 12%;">
<col> <col style="width: 38%;">
<col style="width: 12%;"> <col style="width: 12%;">
<col> <col style="width: 38%;">
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
@@ -696,7 +698,7 @@
</tr> </tr>
<tr> <tr>
<th>판매 상태</th> <th>판매 상태</th>
<td colspan="2"> <td>
<div class="td-inner"> <div class="td-inner">
<div class="custom-radio-container"> <div class="custom-radio-container">
<c:forEach items="${resultMap.subsvcSttusList}" var="subsvcSttus" varStatus="status"> <c:forEach items="${resultMap.subsvcSttusList}" var="subsvcSttus" varStatus="status">
@@ -709,6 +711,12 @@
</div> </div>
</div> </div>
</td> </td>
<th>판매수량</th>
<td>
<div class="td-inner">
<input class="input-text sm text-right" type="text" title="판매재고수량" id="usefulInvntryQy" name="usefulInvntryQy" value="0" readonly>
</div>
</td>
</tr> </tr>
<tr> <tr>
<th>노출 여부</th> <th>노출 여부</th>

View File

@@ -372,6 +372,23 @@
!confirm("예상 마케팅 대상은 0명입니다 적용하시겠습니까?")) { !confirm("예상 마케팅 대상은 0명입니다 적용하시겠습니까?")) {
return false; return false;
} }
if ($("#srchBtn").attr("srchAt") === 'Y') {
let params = $('#mbrSrchForm').serialize();
$("#cndChngAt").val("N");
$.ajax({
type: 'post',
url: '<c:url value="/mngr/mbr/selectMarketingTrgetSrchPopupInqire"/>',
data: params,
success: function (data) {
data = JSON.parse(data.resBody.result);
let tot = data.cnt;
/*마케팅 대상 화면, 부모 화면 텍스트, value 제어*/
$(".srchMarketingTrgetCnt").text(fn_format_comma(tot));
$("#marketingTrgetInfo").val(data);
}
});
}
fn_close_modal("marketing-trget-search"); fn_close_modal("marketing-trget-search");
} }
} }

View File

@@ -10,6 +10,7 @@
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%> <%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/> <spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
<spring:eval expression="@environment.getProperty('currency-unit.KR')" var="krUnit"/>
<script> <script>
$(document).ready(function(){ $(document).ready(function(){
@@ -92,6 +93,7 @@
{cd:'99', nm:'gray'} // 결제실패 {cd:'99', nm:'gray'} // 결제실패
]; ];
var curUnit = '${curUnit}'; var curUnit = '${curUnit}';
var krUnit = '${krUnit}';
/* ******************************************************** /* ********************************************************
* 초기 설정 * 초기 설정
@@ -1217,7 +1219,7 @@
detail += ' </div>'; detail += ' </div>';
detail += ' <span class="sum-area__sign">=</span>'; detail += ' <span class="sum-area__sign">=</span>';
detail += ' <div class="sum-area__item">'; detail += ' <div class="sum-area__item">';
detail += ' <div class="sum-area__title red-7">총 결제금액 ' + (tot.setleAmt).toLocaleString() + curUnit + '</div>'; detail += ' <div class="sum-area__title red-7">총 결제금액 ' + (tot.setleAmt).toLocaleString() + curUnit + ' / ' + (tot.wonRlSetleAmt).toLocaleString() + krUnit + '</div>';
detail += ' </div>'; detail += ' </div>';
detail += ' </div>'; detail += ' </div>';
detail += ' </div>'; detail += ' </div>';

View File

@@ -20,32 +20,7 @@
$('select').niceSelect(); $('select').niceSelect();
fn_set_date(); fn_set_date();
}); });
const fn_coupon_excel_download = function(couponSndngInnb) {
var form = $('#listForm');
form.find('input[name="couponSndngInnb"]').remove();
form.append($('<input/>', {
type: 'hidden',
name: 'couponSndngInnb',
value: couponSndngInnb
}));
form.serialize();
form.attr('method', 'post');
form.attr('action', '<c:url value="/mngr/promtn/coupon/selectCouponListExcelDwld"/>');
form.submit();
}
</script> </script>
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/> <spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
<div class="form-control-container"> <div class="form-control-container">

View File

@@ -251,6 +251,27 @@
}); });
} }
/************************************************
* 발송 쿠폰 내역 엑셀 다운로드
*************************************************/
const fn_coupon_excel_download = function(couponSndngInnb) {
var form = $('#listForm');
form.find('input[name="couponSndngInnb"]').remove();
form.append($('<input/>', {
type: 'hidden',
name: 'couponSndngInnb',
value: couponSndngInnb
}));
form.serialize();
form.attr('method', 'post');
form.attr('action', '<c:url value="/mngr/promtn/coupon/selectCouponListExcelDwld"/>');
form.submit();
}
/************************************************ /************************************************
* 쿠폰 상세 정보 조회 팝업 * 쿠폰 상세 정보 조회 팝업

View File

@@ -1998,18 +1998,18 @@ since : 2024-01-30 추지훈 최초 생성
</button> </button>
</th> </th>
<th class="border-right"> <th class="border-right">
<input class="input-text xsm number right" value="0" type="text" name="bgnCnt" <input class="input-text xsm number right evt_benf_cnt" value="0" type="text" name="bgnCnt"
title="해당 인풋에 대한 설명"> title="해당 인풋에 대한 설명">
개 이상 ~ 개 이상 ~
<input class="input-text xsm number right" value="0" type="text" name="endCnt" <input class="input-text xsm number right evt_benf_cnt" value="0" type="text" name="endCnt"
title="해당 인풋에 대한 설명"> title="해당 인풋에 대한 설명">
개 미만 개 미만
</th> </th>
<th class="border-right"> <th class="border-right">
<input class="input-text xsm number right" value="0" type="text" name="bgnAmt" <input class="input-text xsm number right evt_benf_amt" value="0" type="text" name="bgnAmt"
title="해당 인풋에 대한 설명"> title="해당 인풋에 대한 설명">
${curUnit} 이상 ~ ${curUnit} 이상 ~
<input class="input-text xsm number right" value="0" type="text" name="endAmt" <input class="input-text xsm number right evt_benf_amt" value="0" type="text" name="endAmt"
title="해당 인풋에 대한 설명"> title="해당 인풋에 대한 설명">
${curUnit} 미만 ${curUnit} 미만
</th> </th>

View File

@@ -0,0 +1,110 @@
<%@ 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" %>
<%--
Class Name : ExchngrtUpdtU.jsp
Description : 환율 설정 상세
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2026-04-27 이대환 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<%-- 공통 include --%>
<%@include file ="/WEB-INF/views/comm/mngr/Include.jsp" %>
</head>
<script>
$(document).ready(function () {
});
/* ********************************************************
* 환율 설정 저장
******************************************************** */
const fn_update_exchngrt = function () {
if (confirm('환율 설정을 <spring:message code="confirm.common.save"/>')) {
$.ajax({
type: 'post',
url: '<c:url value="/mngr/setup/exchngrt/updateExchngrtSetup"/>',
data: $('#updtForm').serialize(),
success: function () {
alert("<spring:message code="success.common.save"/>");
location.reload();
}
});
}
}
</script>
<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 class="page-title__btn-container">
<button class="btn primary" onclick="fn_update_exchngrt()">저장하기
</button>
</div>
</div>
<form id="updtForm">
<section class="content-section">
<div class="form-control-container mb-8">
<div class="left">
<h3 class="content-section__inner-title">주문 설정</h3>
</div>
<div class="center"></div>
<div class="right"></div>
</div>
<div class="table-wrapper">
<table class="table ">
<caption>주문 설정</caption>
<colgroup>
<col style="width: 14%;">
<col style="width: 38%;">
<col style="width: 14%;">
<col style="width: 38%;">
</colgroup>
<tbody>
<tr>
<th>환율(살때) 일본 1円(엔)기준</th>
<td colspan="3">
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right" name="buyRate" id="buyRate" title="1엔 환율(살때)" value="${resultMap.sopmalDetailList[0].buyRate}">
<span class="input-unit-text">원</span>
</div>
</div>
</td>
<%-- <th>환율(팔때) 일본 1円(엔)기준</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right" name="sellRate" id="sellRate" title="1엔 환율(팔때)" value="${resultMap.sopmalDetailList[0].sellRate}">
<span class="input-unit-text">원</span>
</div>
</div>
</td>--%>
</tr>
</tbody>
</table>
</div>
</section>
</form>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
</div>
</main>
</body>
</html>

View File

@@ -0,0 +1,236 @@
<%@ 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" %>
<%--
Class Name : FamilySiteUpdtU.jsp
Description : 패밀리사이트 설정 상세
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2026-04-27 이대환 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<%-- 공통 include --%>
<%@include file ="/WEB-INF/views/comm/mngr/Include.jsp" %>
</head>
<script>
$(document).ready(function () {
});
/* ********************************************************
* 입력창 추가
******************************************************** */
const fn_add_emptyBox = function(_target) {
stplatChk = false;
let count = 0;
let trClone = '';
if (_target === 'clauseChk') {
count = $('#tableSorting').children('tr').length + 1;
trClone = '<tr>'
+ ' <td>'
+ ' <label class="b-checkbox checkbox is-medium">'
+ ' <input type="checkbox" name="clauseChk" value=""><span class="check"></span>'
+ ' </label>'
+ ' </td>'
+ ' <td>'
+ ' <div class="select-box">'
+ ' <select class="full" name="clause" id="clause' + count + '" title="약관구분" onchange="fn_select_subClause(this);">'
+ ' <option value="" selected >선택하세요</option>'
+ ' <c:forEach var="cgn002" items="${resultMap.cgn002}" varStatus="status">'
+ ' <option value="${cgn002.cd}"><c:out value="${cgn002.cdNm}"/></option>'
+ ' </c:forEach>'
+ ' </select>'
+ ' </div>'
+ ' </td>'
+ ' <td>'
+ ' <div class="select-box privacyPolicy-select">'
+ ' <select class="full" name="stplatInnbArr" id="privacyPolicy' + count + '" title="약관 내용">'
+ ' <option value="" selected >약관 구분을 선택하세요</option>'
+ ' </select>'
+ ' </div>'
+ ' </td>'
+ ' <td>'
+ ' <div class="manage-btn-container">'
+ ' <a href="#clause-info-modal" rel="modal:open" class="btn xsm primary outline privacy" onclick="fn_select_clauseInformation(\'new\');"><spring:message code="button.view"/></a>'
+ ' </div>'
+ ' </td>'
+ '</tr>';
$('#tableSorting').append(trClone);
$('#clause' + count).niceSelect();
$('#privacyPolicy' + count).niceSelect();
} else {
trClone = '<tr>'
+ ' <td>'
+ ' <label class="b-checkbox checkbox is-medium">'
+ ' <input type="checkbox" name="siteChk" value=""><span class="check"></span>'
+ ' </label>'
+ ' </td>'
+ ' <td>'
+ ' <div class="td-inner">'
+ ' <input type="text" class="input-text xl" name="familySiteNmArr" title="패밀리 사이트명" maxlength="20">'
+ ' </div>'
+ ' </td>'
+ ' <td>'
+ ' <div class="td-inner">'
+ ' <input type="text" class="input-text full" name="familySiteUrlArr" title="URL" maxlength="30">'
+ ' </div>'
+ ' </td>'
+ '</tr>';
$('#tableSiteSorting').append(trClone);
$('#noData').hide();
}
}
/* ********************************************************
* 입력창 삭제
******************************************************** */
const fn_remove_box = function(_target) {
const target = $('[name=' + _target + ']:checked');
if (target.length === 0) {
alert('항목을 선택해 주세요.');
} else {
target.each(function() {
$(this).parents('tr').remove();
});
}
if (_target === 'clauseChk') {
$('#clauseAll').prop('checked', false);
} else {
$('#siteAll').prop('checked', false);
const total = $('#tableSiteSorting').find('tr').length;
if (total === 1) {
$('#noData').show();
} else {
$('#noData').hide();
}
}
}
/* ********************************************************
* 패밀리사이트 설정 저장
******************************************************** */
const fn_update_family = function () {
if (confirm('패밀리사이트 설정을 <spring:message code="confirm.common.save"/>')) {
$.ajax({
type: 'post',
url: '<c:url value="/mngr/setup/family/updateFamilySiteSetup"/>',
data: $('#updtForm').serialize(),
success: function () {
alert("<spring:message code="success.common.save"/>");
location.reload();
}
});
}
}
</script>
<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 class="page-title__btn-container">
<button class="btn primary" onclick="fn_update_family()">저장하기
</button>
</div>
</div>
<form id="updtForm">
<section class="content-section">
<div class="form-control-container mb-8">
<div class="left">
<h3 class="content-section__inner-title">패밀리사이트 설정</h3>
</div>
<div class="center"></div>
<div class="right">
<button type="button" class="btn primary outline xsm" onclick="fn_add_emptyBox('siteChk');"><spring:message code="button.add"/></button>
<button type="button" class="btn dark xsm" onclick="fn_remove_box('siteChk');"><spring:message code="button.delete"/></button>
</div>
</div>
<div class="table-wrapper">
<table class="table vertical">
<caption>패밀리사이트 설정</caption>
<colgroup>
<col style="width: 6%;">
<col style="width: 25%;">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<th>
<label class="b-checkbox checkbox is-medium check-all">
<input type="checkbox" value="" id="siteAll"><span class="check"></span>
</label>
</th>
<th>패밀리 사이트명</th>
<th>URL</th>
</tr>
</thead>
<tbody id="tableSiteSorting">
<c:if test="${not empty resultMap.siteList}">
<c:forEach var="site" items="${resultMap.siteList}" varStatus="status">
<tr>
<td>
<label class="b-checkbox checkbox is-medium">
<input type="checkbox" name="siteChk" value=""><span class="check"></span>
</label>
</td>
<td>
<div class="td-inner">
<input type="text" class="input-text xl" name="familySiteNmArr" title="패밀리 사이트명" maxlength="25" value="${site.familySiteNm}">
</div>
</td>
<td>
<div class="td-inner">
<input type="text" class="input-text full" name="familySiteUrlArr" title="URL" maxlength="60" value="${site.familySiteUrl}">
</div>
</td>
</tr>
</c:forEach>
<tr id="noData" style="display: none;"><td class="row-no-data" colspan="3">패밀리사이트를 설정해 주세요.</td></tr>
</c:if>
<c:if test="${empty resultMap.siteList}">
<tr id="noData"><td class="row-no-data" colspan="3">패밀리사이트를 설정해 주세요.</td></tr>
</c:if>
</tbody>
</table>
</div>
</section>
</form>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
</div>
</main>
</body>
</html>

View File

@@ -0,0 +1,161 @@
<%@ 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" %>
<%--
Class Name : GuidanceUpdtU.jsp
Description : 안내문구 설정 상세
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2026-04-27 이대환 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<%-- 공통 include --%>
<%@include file ="/WEB-INF/views/comm/mngr/Include.jsp" %>
</head>
<script>
$(document).ready(function () {
const sopmalCd = '${sopmalCd}';
//에디터 적용
fn_create_ckeditor('#joinGuidanceSj', sopmalCd);
fn_create_ckeditor('#joinGuidanceWords', sopmalCd);
fn_create_ckeditor('#joinBnef', sopmalCd);
fn_create_ckeditor('#joinComptWords', sopmalCd);
fn_create_ckeditor('#subsvcGuidanceWords', sopmalCd);
});
/* ********************************************************
* 환율 설정 저장
******************************************************** */
const fn_update_guidance = function () {
let updtForm = $('#updtForm');
updtForm.find("#joinGuidanceSj").val(fn_get_editor_data('#joinGuidanceSj'));
updtForm.find("#joinGuidanceWords").val(fn_get_editor_data('#joinGuidanceWords'));
updtForm.find("#joinBnef").val(fn_get_editor_data('#joinBnef'));
updtForm.find("#joinComptWords").val(fn_get_editor_data('#joinComptWords'));
updtForm.find("#subsvcGuidanceWords").val(fn_get_editor_data('#subsvcGuidanceWords'));
if (confirm('환율 설정을 <spring:message code="confirm.common.save"/>')) {
$.ajax({
type: 'post',
url: '<c:url value="/mngr/setup/guidance/updateGuidanceSetup"/>',
data: $('#updtForm').serialize(),
success: function () {
alert("<spring:message code="success.common.save"/>");
location.reload();
}
});
}
}
</script>
<style>
.ck.ck-content:not(.ck-style-grid__button__preview) {
min-height: 100px;
}
</style>
<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 class="page-title__btn-container">
<button class="btn primary" onclick="fn_update_guidance()">저장하기
</button>
</div>
</div>
<form id="updtForm">
<section class="content-section">
<div class="form-control-container mb-8">
<div class="left">
<h3 class="content-section__inner-title">회원가입 안내 설정</h3>
</div>
<div class="center"></div>
<div class="right"></div>
</div>
<div class="table-wrapper">
<table class="table">
<caption>회원가입 안내 설정</caption>
<colgroup>
<col style="width: 12%;">
</colgroup>
<tbody>
<tr>
<th>회원가입 안내 타이틀</th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" id="joinGuidanceSj" name="joinGuidanceSj"
title="회원가입 안내 타이틀" rows="2">
${resultMap.sopmalDetailList[0].joinGuidanceSj }
</textarea>
</div>
</td>
</tr>
<tr>
<th>회원가입 안내문구</th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" id="joinGuidanceWords" name="joinGuidanceWords"
title="회원가입 안내문구" rows="2">
${resultMap.sopmalDetailList[0].joinGuidanceWords }
</textarea>
</div>
</td>
</tr>
<tr>
<th>회원가입 주요혜택</th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" id="joinBnef" name="joinBnef"
title="회원가입 주요혜택" rows="2">
${resultMap.sopmalDetailList[0].joinBnef }
</textarea>
</div>
</td>
</tr>
<tr>
<th>회원가입 완료문구</th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" id="joinComptWords" name="joinComptWords"
title="회원가입 완료문구" rows="2">
${resultMap.sopmalDetailList[0].joinComptWords }
</textarea>
</div>
</td>
</tr>
<tr>
<th>구독서비스 안내문구</th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" id="subsvcGuidanceWords" name="subsvcGuidanceWords"
title="구독서비스 안내문구" rows="2">
${resultMap.sopmalDetailList[0].subsvcGuidanceWords }
</textarea>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</form>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
</div>
</main>
</body>
</html>

View File

@@ -3,6 +3,7 @@
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %> <%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%-- <%--
Class Name : OrdrListR.jsp Class Name : OrdrListR.jsp
Description : 주문설정 jsp Description : 주문설정 jsp
@@ -21,10 +22,10 @@
$(document).ready(function () { $(document).ready(function () {
$("#mlgPymntRt").val(function(index, value) { $("#mlgPymntRt").val(function(index, value) {
return Number(value).toLocaleString(); return Number(value).toLocaleString();
}); });
$("#mlgMxmmPymntAmt").val(function(index, value) { $("#mlgMxmmPymntAmt").val(function(index, value) {
return Number(value).toLocaleString(); return Number(value).toLocaleString();
}); });
/*선물하기 이벤트*/ /*선물하기 이벤트*/
@@ -102,6 +103,34 @@
$("#mlgPymntRt").val("0"); $("#mlgPymntRt").val("0");
}); });
}); });
/* ********************************************************
* 마일리지 사용 조건 disabled 처리
******************************************************** */
const fn_set_mlgDisabled = function(_target) {
if (_target === 'other') {
$('#maxPct').prop('disabled', true);
$('#maxPct').val('0');
$('#maxMlg').prop('disabled', true);
$('#maxMlg').val('0');
} else if (_target === 'maxPct') {
$('#maxPct').prop('disabled', false);
$('#maxMlg').prop('disabled', true);
$('#maxMlg').val('0');
} else if (_target === 'maxMlg') {
$('#maxPct').prop('disabled', true);
$('#maxPct').val('0');
$('#maxMlg').prop('disabled', false);
}
}
/************************************************************** /**************************************************************
hidden form 생성 함수 hidden form 생성 함수
****************************************************************/ ****************************************************************/
@@ -122,13 +151,12 @@
</script> </script>
</head> </head>
<body> <body>
<c:set var = "ordrSetupInfo" value="${resultMap.ordrSetupInfo}"/> <c:set var = "ordrSetupInfo" value="${resultMap.ordrSetupList.ordrSetupInfo}"/>
<%-- 상단메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%> <%-- 상단메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
<%@include file="/WEB-INF/views/comm/mngr/Header.jsp" %> <%@include file="/WEB-INF/views/comm/mngr/Header.jsp" %>
<main class="main"> <main class="main">
<%-- 좌측메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%> <%-- 좌측메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
<%@include file="/WEB-INF/views/comm/mngr/Left.jsp" %> <%@include file="/WEB-INF/views/comm/mngr/Left.jsp" %>
<form id = "updtForm">
<div class="content"> <div class="content">
<div class="content__inner"> <div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button> <button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
@@ -139,268 +167,364 @@
<spring:message code="button.save"/></button> <spring:message code="button.save"/></button>
</div> </div>
</div> </div>
<section class="content-section content-fold"> <form id = "updtForm">
<div class="content-fold__header"> <section class="content-section content-fold">
</div> <div class="content-fold__header">
<c:if test = "${ordrSetupInfo.sopmalTyCd eq '01'}"> </div>
<c:if test = "${ordrSetupInfo.sopmalTyCd eq '01'}">
<div class="content-fold__content">
<h3 class="content-section__inner-title">여러 곳 배송</h3>
<div class="table-wrapper">
<table class="table">
<caption>여러 곳 배송 사용 여부 설정</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>여러 곳 배송 사용 여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="multiDlvyUseAtY" name="multiDlvyAt" value="Y"
<c:if test = "${ordrSetupInfo.multiDlvyAt eq 'Y'}">checked</c:if>>
<label for="multiDlvyUseAtY">사용</label>
</div>
<div class="custom-radio">
<input type="radio" id="multiDlvyUseAtN" name="multiDlvyAt" value="N"
<c:if test = "${ordrSetupInfo.multiDlvyAt eq 'N'}">checked</c:if>>
<label for="multiDlvyUseAtN">미사용</label>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="content-fold__content">
<h3 class="content-section__inner-title">선물하기</h3>
<div class="table-wrapper">
<table class="table">
<caption>선물하기 설정</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>선물하기 사용 여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="giftUseAtY" name="giftDlvyAt" value="Y"
<c:if test = "${ordrSetupInfo.giftDlvyAt eq 'Y'}">checked</c:if>>
<label for="giftUseAtY">사용</label>
</div>
<div class="custom-radio">
<input type="radio" id="giftUseAtN" name="giftDlvyAt" value="N"
<c:if test = "${ordrSetupInfo.giftDlvyAt eq 'N'}">checked</c:if>>
<label for="giftUseAtN">미사용</label>
</div>
</div>
</div>
</td>
</tr>
<tr id="giftDlvylcDv" <c:if test = "${ordrSetupInfo.giftDlvyAt eq 'N'}">style = "display: none"</c:if>>
<th>배송주소 등록기간<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<div class="td-inner vertical">
<div class="input-container">
<input type="text" class="input-text xsm right number"
id="giftDlvyAtmcCanclPd" title="배송주소 등록기간 설정"
name="giftDlvyAtmcCanclPd" maxlength="2"
<c:choose>
<c:when test = "${not empty ordrSetupInfo.giftDlvyAtmcCanclPd}">
value = "<c:out value="${ordrSetupInfo.giftDlvyAtmcCanclPd}"/>"
</c:when>
<c:otherwise>
value = "0"
</c:otherwise>
</c:choose>
<c:if test = "${ordrSetupInfo.giftDlvyAt eq 'N'}">disabled</c:if>>
<span class="mr-10input-unit-text">&nbsp;일 이내 배송주소 등록되지 않으면 주문 자동취소</span>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="content-fold__content">
<h3 class="content-section__inner-title">GC 머니</h3>
<div class="table-wrapper">
<table class="table">
<caption>GC 머니 사용 여부 설정</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>GC 머니 사용 여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="cashAtY" name="cashAt"
value="Y"
<c:if test="${ordrSetupInfo.cashAt eq 'Y'}">checked</c:if>>
<label for="cashAtY">사용</label>
</div>
<div class="custom-radio">
<input type="radio" id="cashAtN" name="cashAt"
value="N"
<c:if test="${ordrSetupInfo.cashAt eq 'N'}">checked</c:if>>
<label for="cashAtN">미사용</label>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</c:if>
<div class="content-fold__content"> <div class="content-fold__content">
<h3 class="content-section__inner-title">여러 곳 배송</h3> <h3 class="content-section__inner-title">마일리지 지급</h3>
<div class="table-wrapper"> <div class="table-wrapper">
<table class="table"> <table class="table">
<caption>여러 곳 배송 사용 여부 설정</caption> <caption>마일리지 지급 설정</caption>
<colgroup> <colgroup>
<col style="width: 12%;"> <col style="width: 12%;">
<col> <col>
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th>여러 곳 배송 사용 여부</th> <th>지급 설정<span class="red-7">*</span></th>
<td> <td>
<div class="td-inner"> <div class="td-inner vertical">
<div class="custom-radio-container"> <div class="custom-radio-container ">
<div class="custom-radio"> <div class="custom-radio">
<input type="radio" id="multiDlvyUseAtY" name="multiDlvyAt" value="Y" <input type="radio" id="mlgPymntY" name="mlgPymntAt" value="Y"
<c:if test = "${ordrSetupInfo.multiDlvyAt eq 'Y'}">checked</c:if>> <c:if test = "${ordrSetupInfo.mlgPymntAt eq 'Y'}">checked</c:if>>
<label for="multiDlvyUseAtY">사용</label> <label for="mlgPymntY">사용</label>
</div> </div>
<div class="custom-radio"> <div class="custom-radio">
<input type="radio" id="multiDlvyUseAtN" name="multiDlvyAt" value="N" <input type="radio" id="mlgPymntN" name="mlgPymntAt" value="N"
<c:if test = "${ordrSetupInfo.multiDlvyAt eq 'N'}">checked</c:if>> <c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N'}">checked</c:if>>
<label for="multiDlvyUseAtN">미사용</label> <label for="mlgPymntN">미사용</label>
</div> </div>
</div> </div>
</div> <div class="input-container ml-5 mlgPymntCtrTarget" <c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N'}">style="display: none"</c:if>><%--사용 여부에 따른 이벤트 컨트롤--%>
</td> <span class="mr-5">구매시</span>
</tr> <span class="mr-5 mlgPercent">총 상품 결제금액의</span>
</tbody> <span class="mr-5 ">
</table> <input type="text" class="input-text xsm right number" title="마일리지 적립" id="mlgPymntRt" name="mlgPymntRt"
</div> <c:choose>
</div> <c:when test = "${ordrSetupInfo.mlgPymntDvCd eq '01'}">
<div class="content-fold__content"> maxlength="2"
<h3 class="content-section__inner-title">선물하기</h3> </c:when>
<div class="table-wrapper"> <c:when test = "${ordrSetupInfo.mlgPymntDvCd eq '02'}">
<table class="table"> maxlength="12"
<caption>선물하기 설정</caption> </c:when>
<colgroup> <c:otherwise>
<col style="width: 12%;"> maxlength="2"
<col> </c:otherwise>
</colgroup> </c:choose>
<tbody> <c:choose>
<tr> <c:when test = "${not empty ordrSetupInfo.mlgPymntRt}">
<th>선물하기 사용 여부</th> value ="<c:out value="${ordrSetupInfo.mlgPymntRt}"/>"
<td> </c:when>
<div class="td-inner"> <c:otherwise>
<div class="custom-radio-container"> value ="0"
<div class="custom-radio"> </c:otherwise>
<input type="radio" id="giftUseAtY" name="giftDlvyAt" value="Y" </c:choose>>
<c:if test = "${ordrSetupInfo.giftDlvyAt eq 'Y'}">checked</c:if>> </span>
<label for="giftUseAtY">사용</label> <div class="select-box mr-10 ">
</div> <select id="accmlUnitDv" name="mlgPymntDvCd" class="short" title="마일리지 단위 선택">
<div class="custom-radio"> <c:forEach var="accmlUnitDv" items="${resultMap.ordrSetupList.accmlUnitDv}">
<input type="radio" id="giftUseAtN" name="giftDlvyAt" value="N" <option value="<c:out value='${accmlUnitDv.cd}'/>"
<c:if test = "${ordrSetupInfo.giftDlvyAt eq 'N'}">checked</c:if>> <c:if test = "${ordrSetupInfo.mlgPymntDvCd eq accmlUnitDv.cd}">selected</c:if>>
<label for="giftUseAtN">미사용</label> <c:out value="${accmlUnitDv.cdNm}"/>
</option>
</c:forEach>
</select>
</div> </div>
<span class="mr-5">적립</span>
</div> </div>
</div> <div class="input-container mr-5 mlgPymntCtrTarget " id = "mlgMxmmDv" <c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N' || ordrSetupInfo.mlgPymntDvCd eq '02'}">style="display: none"</c:if>><%--사용 여부에 따른 이벤트 컨트롤--%>
</td> <span class="mr-5">최대</span>
</tr> <input class="input-text sm number right mr-5" type="text"
<tr id="giftDlvylcDv" <c:if test = "${ordrSetupInfo.giftDlvyAt eq 'N'}">style = "display: none"</c:if>> title="최대 마일리지 적립금액" id="mlgMxmmPymntAmt"
<th>배송주소 등록기간<span class="red-7">*</span></th> name="mlgMxmmPymntAmt" maxlength="12"
<td> <c:choose>
<div class="td-inner"> <c:when test = "${not empty ordrSetupInfo.mlgMxmmPymntAmt}">
<div class="td-inner vertical"> value ="${ordrSetupInfo.mlgMxmmPymntAmt}"
<div class="input-container"> </c:when>
<input type="text" class="input-text xsm right number" <c:otherwise>
id="giftDlvyAtmcCanclPd" title="배송주소 등록기간 설정" value ="0"
name="giftDlvyAtmcCanclPd" maxlength="2" </c:otherwise>
<c:choose>
<c:when test = "${not empty ordrSetupInfo.giftDlvyAtmcCanclPd}">
value = "<c:out value="${ordrSetupInfo.giftDlvyAtmcCanclPd}"/>"
</c:when>
<c:otherwise>
value = "0"
</c:otherwise>
</c:choose>
<c:if test = "${ordrSetupInfo.giftDlvyAt eq 'N'}">disabled</c:if>>
<span class="mr-10input-unit-text">&nbsp;일 이내 배송주소 등록되지 않으면 주문 자동취소</span>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="content-fold__content">
<h3 class="content-section__inner-title">GC 머니</h3>
<div class="table-wrapper">
<table class="table">
<caption>GC 머니 사용 여부 설정</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>GC 머니 사용 여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="cashAtY" name="cashAt"
value="Y"
<c:if test="${ordrSetupInfo.cashAt eq 'Y'}">checked</c:if>>
<label for="cashAtY">사용</label>
</div>
<div class="custom-radio">
<input type="radio" id="cashAtN" name="cashAt"
value="N"
<c:if test="${ordrSetupInfo.cashAt eq 'N'}">checked</c:if>>
<label for="cashAtN">미사용</label>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</c:if>
<div class="content-fold__content">
<h3 class="content-section__inner-title">마일리지 지급</h3>
<div class="table-wrapper">
<table class="table">
<caption>마일리지 지급 설정</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>지급 설정<span class="red-7">*</span></th>
<td>
<div class="td-inner vertical">
<div class="custom-radio-container ">
<div class="custom-radio">
<input type="radio" id="mlgPymntY" name="mlgPymntAt" value="Y"
<c:if test = "${ordrSetupInfo.mlgPymntAt eq 'Y'}">checked</c:if>>
<label for="mlgPymntY">사용</label>
</div>
<div class="custom-radio">
<input type="radio" id="mlgPymntN" name="mlgPymntAt" value="N"
<c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N'}">checked</c:if>>
<label for="mlgPymntN">미사용</label>
</div>
</div>
<div class="input-container ml-5 mlgPymntCtrTarget" <c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N'}">style="display: none"</c:if>><%--사용 여부에 따른 이벤트 컨트롤--%>
<span class="mr-5">구매시</span>
<span class="mr-5 mlgPercent">총 상품 결제금액의</span>
<span class="mr-5 ">
<input type="text" class="input-text xsm right number" title="마일리지 적립" id="mlgPymntRt" name="mlgPymntRt"
<c:choose>
<c:when test = "${ordrSetupInfo.mlgPymntDvCd eq '01'}">
maxlength="2"
</c:when>
<c:when test = "${ordrSetupInfo.mlgPymntDvCd eq '02'}">
maxlength="12"
</c:when>
<c:otherwise>
maxlength="2"
</c:otherwise>
</c:choose> </c:choose>
<c:choose> <c:if test = "${ordrSetupInfo.mlgMxmmPymntAmtAt eq 'N'}">disabled</c:if>>
<c:when test = "${not empty ordrSetupInfo.mlgPymntRt}"> <span class="mr-5">마일리지 까지 적립</span>
value ="<c:out value="${ordrSetupInfo.mlgPymntRt}"/>" <div class="b-checkbox-container">
</c:when> <label class="b-checkbox checkbox">
<c:otherwise> <input type="checkbox" value="N"
value ="0" name="mlgMxmmPymntAmtAt"
</c:otherwise> id="mlgMxmmPymntAmtAt"
</c:choose>> <c:if test = "${ordrSetupInfo.mlgMxmmPymntAmtAt eq 'N'}">checked</c:if>>
</span> <span class="check"></span>
<div class="select-box mr-10 "> <span class="control-label">설정 안함</span>
<select id="accmlUnitDv" name="mlgPymntDvCd" class="short" title="마일리지 단위 선택"> </label>
<c:forEach var="accmlUnitDv" items="${resultMap.accmlUnitDv}"> </div>
<option value="<c:out value='${accmlUnitDv.cd}'/>"
<c:if test = "${ordrSetupInfo.mlgPymntDvCd eq accmlUnitDv.cd}">selected</c:if>>
<c:out value="${accmlUnitDv.cdNm}"/>
</option>
</c:forEach>
</select>
</div> </div>
<span class="mr-5">적립</span>
</div> </div>
<div class="input-container mr-5 mlgPymntCtrTarget " id = "mlgMxmmDv" <c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N' || ordrSetupInfo.mlgPymntDvCd eq '02'}">style="display: none"</c:if>><%--사용 여부에 따른 이벤트 컨트롤--%> </td>
<span class="mr-5">최대</span> </tr>
<input class="input-text sm number right mr-5" type="text" <tr class="mlgPymntCtrTarget" <c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N'}">style="display: none"</c:if>><%--사용 여부에 따른 이벤트 컨트롤--%>
title="최대 마일리지 적립금액" id="mlgMxmmPymntAmt" <th>유효기간<span class="red-7">*</span></th>
name="mlgMxmmPymntAmt" maxlength="12" <td>
<c:choose> <div class="input-container ml-5 ">
<c:when test = "${not empty ordrSetupInfo.mlgMxmmPymntAmt}"> <span class="mr-5 left">지급 마일리지의 유효기간은</span>
value ="${ordrSetupInfo.mlgMxmmPymntAmt}" <input class="input-text xsm right number" type="text"
</c:when> title="마일리지 유효기간" id="mlgValidPd" name="mlgValidPd"
<c:otherwise> maxlength="2"
value ="0" <c:choose>
</c:otherwise> <c:when test="${not empty ordrSetupInfo.mlgValidPd}">
</c:choose> value="<c:out value="${ordrSetupInfo.mlgValidPd}"/>"
<c:if test = "${ordrSetupInfo.mlgMxmmPymntAmtAt eq 'N'}">disabled</c:if>> </c:when>
<span class="mr-5">마일리지 까지 적립</span> <c:otherwise>
value="0"
</c:otherwise>
</c:choose>
<c:if test = "${ordrSetupInfo.mlgValidPdAt eq 'N'}">disabled</c:if>>
<span class="mr-5">개월</span>
<%-- 유효기간 사용 유무 설정 --%>
<div class="b-checkbox-container"> <div class="b-checkbox-container">
<label class="b-checkbox checkbox"> <label class="b-checkbox checkbox ">
<input type="checkbox" value="N" <input type="checkbox" value="N" name="mlgValidPdAt"
name="mlgMxmmPymntAmtAt" id="mlgValidPdAt"
id="mlgMxmmPymntAmtAt" <c:if test = "${ordrSetupInfo.mlgValidPdAt eq 'N'}">checked</c:if>>
<c:if test = "${ordrSetupInfo.mlgMxmmPymntAmtAt eq 'N'}">checked</c:if>>
<span class="check"></span> <span class="check"></span>
<span class="control-label">설정 안함</span> <span class="control-label">설정 안함</span>
</label> </label>
</div> </div>
</div> </div>
</div> </td>
</td> </tr>
</tr> </tbody>
<tr class="mlgPymntCtrTarget" <c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N'}">style="display: none"</c:if>><%--사용 여부에 따른 이벤트 컨트롤--%> </table>
<th>유효기간<span class="red-7">*</span></th> </div>
<td> </div>
<div class="input-container ml-5 "> </section>
<span class="mr-5 left">지급 마일리지의 유효기간은</span> <section class="content-section content-fold">
<input class="input-text xsm right number" type="text" <h3 class="content-section__inner-title">마일리지 사용 조건</h3>
title="마일리지 유효기간" id="mlgValidPd" name="mlgValidPd" <div class="table-wrapper">
maxlength="2" <table class="table ">
<c:choose> <caption>마일리지 사용 조건</caption>
<c:when test="${not empty ordrSetupInfo.mlgValidPd}"> <colgroup>
value="<c:out value="${ordrSetupInfo.mlgValidPd}"/>" <col style="width: 14%;">
</c:when> <col>
<c:otherwise> </colgroup>
value="0" <tbody>
</c:otherwise> <tr>
</c:choose> <th>보유 마일리지 조건</th>
<c:if test = "${ordrSetupInfo.mlgValidPdAt eq 'N'}">disabled</c:if>> <td>
<span class="mr-5">개월</span> <div class="td-inner">
<%-- 유효기간 사용 유무 설정 --%> <div class="input-container">
<div class="b-checkbox-container"> <span class="mr-10">보유 마일리지가</span>
<label class="b-checkbox checkbox "> <input type="text" class="input-text sm right number" name="mlgHoldUseAmt" title="보유 마일리지가" maxlength="7" value="${resultMap.sopmalDetailList[0].mlgHoldUseAmt }">
<input type="checkbox" value="N" name="mlgValidPdAt" <span class="input-unit-text mr-8">원</span>
id="mlgValidPdAt" <span>이상이면 마일리지 사용 가능</span>
<c:if test = "${ordrSetupInfo.mlgValidPdAt eq 'N'}">checked</c:if>> </div>
<span class="check"></span>
<span class="control-label">설정 안함</span>
</label>
</div> </div>
</div> </td>
</td> </tr>
</tr> <tr>
</tbody> <th>상품 금액 조건</th>
<td>
<div class="td-inner vertical">
<div class="input-container">
<span class="gray-7 mr-10">{상품 실 결제금액} + {좌동} + {좌동} ···</span>
<input type="text" class="input-text sm right number" name="mlgSetleAmtUseAmt" title="사용가능 마일리지" maxlength="7" value="${resultMap.sopmalDetailList[0].mlgSetleAmtUseAmt }">
<span class="input-unit-text mr-8">원</span>
<span>이상이면 마일리지 사용 가능</span>
</div>
<p class="blue-7 fyi">상품 실 결제 금액 = {상품 할인가(판매가) x 수량} - 할인(쿠폰, 등급, 좋아요, 모바일, 프로모션 코드)</p>
</div>
</td>
</tr>
<tr>
<th>마일리지 사용한도 조건</th>
<td>
<div class="td-inner">
<div class="input-container">
<span class="mr-10">마일리지는 최소</span>
<input type="text" class="input-text sm right number" name="mlgMummUseAmt" title="마일리지는 최소" maxlength="7" value="${resultMap.sopmalDetailList[0].mlgMummUseAmt }">
<span class="input-unit-text">원 이상</span>
</div>
<span class="tilde">~</span>
<div class="input-container">
<span class="mr-10">최대</span>
<div class="custom-radio-container vertical storeCondition">
<div class=" custom-radio">
<input type="radio" id="mlgMxmmUse-a" name="mlgMxmmUseDv" value="01" onclick="fn_set_mlgDisabled('other');" ${f:setChecked(resultMap.sopmalDetailList[0].mlgMxmmUseDv, '01') }>
<label for="mlgMxmmUse-a">1회 사용한도 제한 없이 사용 가능
</label>
</div>
<c:set var="mlgMxmmUseAmt_2" value="0" />
<c:set var="mlgMxmmUseAmt_Disabled_2" value="disabled" />
<c:set var="mlgMxmmUseAmt_3" value="0" />
<c:set var="mlgMxmmUseAmt_Disabled_3" value="disabled" />
<c:if test="${resultMap.sopmalDetailList[0].mlgMxmmUseDv eq '02'}" >
<c:set var="mlgMxmmUseAmt_2" value="${resultMap.sopmalDetailList[0].mlgMxmmUseAmt }" />
<c:set var="mlgMxmmUseAmt_Disabled_2" value="" />
</c:if>
<c:if test="${resultMap.sopmalDetailList[0].mlgMxmmUseDv eq '03'}" >
<c:set var="mlgMxmmUseAmt_3" value="${resultMap.sopmalDetailList[0].mlgMxmmUseAmt }" />
<c:set var="mlgMxmmUseAmt_Disabled_3" value="" />
</c:if>
<div class="custom-radio inner-input">
<input type="radio" id="mlgMxmmUse-b" name="mlgMxmmUseDv" value="02" onclick="fn_set_mlgDisabled('maxPct');" ${f:setChecked(resultMap.sopmalDetailList[0].mlgMxmmUseDv, '02') }>
<label for="mlgMxmmUse-b">
<span class="gray-7">{상품 실 결제금액} + {좌동} + {좌동} ···</span> 의
</label>
<div>
<input type="text" class="input-text xxsm ml-5 number right" name="mlgMxmmUseAmt" id="maxPct" title="마일리지 최대사용 %" maxlength="3" value="${mlgMxmmUseAmt_2 }" ${mlgMxmmUseAmt_Disabled_2 }>
<span class="input-unit-text mr-8">%</span>금액까지 사용 가능
</div>
</div>
<div class="custom-radio inner-input">
<input type="radio" id="mlgMxmmUse-c" name="mlgMxmmUseDv" value="03" onclick="fn_set_mlgDisabled('maxMlg');" ${f:setChecked(resultMap.sopmalDetailList[0].mlgMxmmUseDv, '03') } >
<label for="mlgMxmmUse-c">
</label>
<div>
<input class="input-text sm ml-5 number right" name="mlgMxmmUseAmt" id="maxMlg" title="마일리지 최대사용 금액" maxlength="7" value="${mlgMxmmUseAmt_3 }" ${mlgMxmmUseAmt_Disabled_3 }>
<span class="input-unit-text mr-8">원</span>까지 사용 가능
</div>
</div>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table> </table>
</div> </div>
</div> </section>
</section> </form>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button> <button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div> </div>
</div> </div>
</form>
</main> </main>
</body> </body>

View File

@@ -271,11 +271,11 @@
/ /
<span>가로 :</span> <span>모바일 가로 :</span>
<input class="input-text xsm" type="text" id="mblPopupLcX" name="mblPopupLcX" <input class="input-text xsm" type="text" id="mblPopupLcX" name="mblPopupLcX"
oninput="fn_num_validateInput(this)" title="모바일 팝업위치 가로" maxlength="3"> oninput="fn_num_validateInput(this)" title="모바일 팝업위치 가로" maxlength="3">
<span class="gray-7">px</span> <span class="gray-7">px</span>
<span class="ml-10">세로 :</span> <span class="ml-10">모바일 세로 :</span>
<input class="input-text xsm" type="text" id="mblPopupLcY" name="mblPopupLcY" <input class="input-text xsm" type="text" id="mblPopupLcY" name="mblPopupLcY"
oninput="fn_num_validateInput(this)" title="모바일 팝업위치 세로" maxlength="3"> oninput="fn_num_validateInput(this)" title="모바일 팝업위치 세로" maxlength="3">
<span class="gray-7">px</span> <span class="gray-7">px</span>

View File

@@ -220,7 +220,7 @@
//상품문의 조회 //상품문의 조회
fn_select_qna(1); fn_select_qna(1);
//반품교환정보 조회 //배송/반품정보 조회
fn_select_return_info(); fn_select_return_info();
//포토리뷰 이미지 제거 //포토리뷰 이미지 제거
@@ -4533,7 +4533,7 @@
<a href="#productQnA" id="productQnAA">상품문의(<span id="goodsQnaCnt"><fmt:formatNumber value="${resultMap.bbscttInfo.qnaCnt}" pattern="#,###"/></span>)</a> <a href="#productQnA" id="productQnAA">상품문의(<span id="goodsQnaCnt"><fmt:formatNumber value="${resultMap.bbscttInfo.qnaCnt}" pattern="#,###"/></span>)</a>
</li> </li>
<li class="productDetailTab__item"> <li class="productDetailTab__item">
<a href="#productReTurn" id="productReTurnA">반품/교환정보</a> <a href="#productReTurn" id="productReTurnA">배송/반품</a>
</li> </li>
</ul> </ul>
</div> </div>

View File

@@ -0,0 +1,40 @@
<%@ 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" %>
<%--
Class Name : NtcntalkAtmcSndngTmplatUpdtPopupU.jsp
Description : 메시지 자동 발송 상세
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024.05.16 이대환 최초 생성
--%>
<script>
const fn_ageChk_yes = function() {
document.cookie = "ageChk=true; path=/; max-age=86400";
}
const fn_ageChk_no = function() {
window.location.href = "https://search.naver.com/search.naver?query=사케일잔";
}
</script>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR&family=Noto+Sans+JP&display=swap" rel="stylesheet">
<div id="ageChkPopup" class="modal alert" style="max-width: 800px; font-family: 'Noto Sans JP', 'Noto Sans KR', sans-serif;">
<div class="alert-content">
<p class="alert-content__text" style="font-size: 35px;">
満20歳以上ですか?<br>
(만20세 이상입니까?)
</p>
<p class="alert-content__text--sm" style="font-size: 25px;">
20歳未満の飲酒は法律で禁止されています。<br>
(20세 미만의 음주는 법으로 금지되어 있습니다.)
</p>
</div>
<div class="alert-btn-container">
<a href="javascript:void(0);" onclick="fn_ageChk_yes();" rel="modal:close" class="alert-btn alert-btn--confirm" style="font-size: 20px;">はい (예)</a>
<a href="javascript:void(0);" onclick="fn_ageChk_no();" rel="modal:close" class="alert-btn alert-btn--confirm" style="font-size: 20px;">いいえ (아니오)</a>
</div>
</div>

View File

@@ -70,7 +70,7 @@
</c:if> </c:if>
<div class="signUp-promotion__section"> <div class="signUp-promotion__section">
<h5 class="signUp-promotion__section__title"><c:if test="${integrated}">GC ONE (통합 회원) </c:if>주요 혜택</h5> <h5 class="signUp-promotion__section__title"><c:if test="${integrated}">GC ONE (통합 회원) </c:if>주요 혜택</h5>
<div class="signUp-promotion__col-3 ck-content"> <div class="signUp-promotion__section__content ck-content">
<c:out value='${sopmalInfo.joinBnef}' escapeXml='false'/> <c:out value='${sopmalInfo.joinBnef}' escapeXml='false'/>
</div> </div>
</div> </div>
@@ -83,10 +83,15 @@
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
let signUpPromo = $('.signUp-promotion__col-3.ck-content'); let signUpPromo = $('.signUp-promotion__section__content');
let figureTable = signUpPromo.find('figure.table'); let figureTable = signUpPromo.find('figure.table').length;
if(figureTable.length == 4){
signUpPromo.removeClass('signUp-promotion__col-3').addClass('signUp-promotion__col-2'); if(figureTable) {
if (figureTable % 3 == 0) {
signUpPromo.addClass('signUp-promotion__col-3');
} else if (figureTable % 2 == 0) {
signUpPromo.addClass('signUp-promotion__col-2');
}
} }
}); });

View File

@@ -613,7 +613,11 @@
fn_set_csh_rcipt_issu(id); fn_set_csh_rcipt_issu(id);
} }
} else { } else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val()); if('bank' === id) {
$(form).find('#pgCmpnyNm').val(id);
} else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val());
}
if ('hndwr-card' !== id) { if ('hndwr-card' !== id) {
if ('payco' === id || 'card' === id) { if ('payco' === id || 'card' === id) {

View File

@@ -616,7 +616,11 @@
fn_set_csh_rcipt_issu(id); fn_set_csh_rcipt_issu(id);
} }
} else { } else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val()); if('bank' === id) {
$(form).find('#pgCmpnyNm').val(id);
} else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val());
}
if ('hndwr-card' !== id) { if ('hndwr-card' !== id) {
if ('payco' === id || 'card' === id) { if ('payco' === id || 'card' === id) {
@@ -3527,7 +3531,7 @@
function pay(method, requestJson, pgNm) { function pay(method, requestJson, pgNm) {
if(pgNm === "naverpay"||pgNm === "kakaopay") if(pgNm === "kakaopay")
tossPayments = TossPayments("${data.payInfo.easypayClntKey}"); tossPayments = TossPayments("${data.payInfo.easypayClntKey}");
tossPayments.requestPayment(method, requestJson) tossPayments.requestPayment(method, requestJson)
@@ -4574,13 +4578,10 @@
</div> </div>
</div> </div>
</c:if> </c:if>
<%--
<c:if test="${'Y' eq payInfo.npayUseAt}"> <c:if test="${'Y' eq payInfo.npayUseAt}">
<div id="naverpay-content" class="order-method-normal__content" style="display: none"> <div id="naverpay-content" class="order-method-normal__content" style="display: none">
<div id="naverpay-content-inner" class="order-method-normal__content-inner"> <div id="naverpay-content-inner" class="order-method-normal__content-inner"></div>
<div class="noempty">
</div>
</div>
</div> </div>
</c:if> </c:if>
<c:if test="${'Y' eq payInfo.kpayUseAt}"> <c:if test="${'Y' eq payInfo.kpayUseAt}">
@@ -4592,6 +4593,7 @@
</div> </div>
</div> </div>
</c:if> </c:if>
--%>
</div> </div>
</div> </div>
</c:if> </c:if>

View File

@@ -3935,7 +3935,7 @@ const fn_move_goodsDtl_login = () => {
<span class="productDetailTab__num"><span id="goodsQnaCnt"><fmt:formatNumber value="${resultMap.bbscttInfo.qnaCnt}" pattern="#,###"/></span></span> <span class="productDetailTab__num"><span id="goodsQnaCnt"><fmt:formatNumber value="${resultMap.bbscttInfo.qnaCnt}" pattern="#,###"/></span></span>
</li> </li>
<li class="productDetailTab__item"> <li class="productDetailTab__item">
<button id="productReTurnA">교환/반품</button> <button id="productReTurnA">배송/반품</button>
</li> </li>
</ul> </ul>
<div class="productDetailTab__content active"> <div class="productDetailTab__content active">

View File

@@ -24,12 +24,15 @@
<script> <script>
$(document).ready(function() { $(document).ready(function() {
fn_set_header_title("회원가입"); let signUpPromo = $('.signUp-promotion__section__content');
let figureTable = signUpPromo.find('figure.table').length;
let signUpPromo = $('.signUp-promotion__col-3.ck-content'); if(figureTable) {
let figureTable = signUpPromo.find('figure.table'); if (figureTable % 3 == 0) {
if(figureTable.length == 4){ signUpPromo.addClass('signUp-promotion__col-3');
signUpPromo.removeClass('signUp-promotion__col-3').addClass('signUp-promotion__col-2'); } else if (figureTable % 2 == 0) {
signUpPromo.addClass('signUp-promotion__col-2');
}
} }
}); });
@@ -131,7 +134,7 @@
<div class="sub-box"> <div class="sub-box">
<div class="signUp-promotion__section"> <div class="signUp-promotion__section">
<h5 class="signUp-promotion__section__title"><c:if test="${integrated}">GC ONE (통합 회원) </c:if>주요 혜택</h5> <h5 class="signUp-promotion__section__title"><c:if test="${integrated}">GC ONE (통합 회원) </c:if>주요 혜택</h5>
<div class="signUp-promotion__col-3 ck-content"> <div class="signUp-promotion__section__content ck-content">
<c:out value='${sopmalInfo.joinBnef}' escapeXml='false'/> <c:out value='${sopmalInfo.joinBnef}' escapeXml='false'/>
</div> </div>
</div> </div>

View File

@@ -659,7 +659,11 @@
fn_set_csh_rcipt_issu(id); fn_set_csh_rcipt_issu(id);
} }
} else { } else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val()); if('bank' === id) {
$(form).find('#pgCmpnyNm').val(id);
} else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val());
}
if ('hndwr-card' !== id) { if ('hndwr-card' !== id) {
if ('payco' === id || 'card' === id) { if ('payco' === id || 'card' === id) {

View File

@@ -662,7 +662,11 @@
fn_set_csh_rcipt_issu(id); fn_set_csh_rcipt_issu(id);
} }
} else { } else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val()); if('bank' === id) {
$(form).find('#pgCmpnyNm').val(id);
} else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val());
}
if ('hndwr-card' !== id) { if ('hndwr-card' !== id) {
if ('payco' === id || 'card' === id) { if ('payco' === id || 'card' === id) {
@@ -4676,6 +4680,7 @@
</div> </div>
</div> </div>
</c:if> </c:if>
<%--
<c:if test="${'Y' eq payInfo.npayUseAt}"> <c:if test="${'Y' eq payInfo.npayUseAt}">
<div id="naverpay-content" class="order-method-normal__content" style="display: none"> <div id="naverpay-content" class="order-method-normal__content" style="display: none">
<div id="naverpay-content-inner" class="order-method-normal__content-inner"> <div id="naverpay-content-inner" class="order-method-normal__content-inner">
@@ -4694,6 +4699,7 @@
</div> </div>
</div> </div>
</c:if> </c:if>
--%>
</div> </div>
</div> </div>
</c:if> </c:if>