설정 > 패밀리사이트 설정, 환율 설정, 안내문구 설정 - 추가
This commit is contained in:
@@ -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.BOShopSetupVO;
|
||||
import com.wb.domainserver.domain.admin.sys.menu.vo.BOMaMenuVO;
|
||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||
|
||||
/**
|
||||
@@ -81,6 +80,10 @@ public interface BOMaSopmalMapper {
|
||||
|
||||
public int updateBOSopmalUpdt(BOMaSopmalVO vo);
|
||||
|
||||
public int updateBOExchngrtSetup(BOMaSopmalVO vo);
|
||||
|
||||
public int updateBOGuidanceSetup(BOMaSopmalVO vo);
|
||||
|
||||
public int deteteBOShopFamilySite(BOMaSopmalVO vo);
|
||||
|
||||
public int deteteBOShopClause(BOMaSopmalVO vo);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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()
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -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()
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -947,6 +947,37 @@
|
||||
SOPMAL_CD = #{sopmalCd}
|
||||
</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">
|
||||
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user