초기소스

This commit is contained in:
jazz
2025-10-29 17:08:05 +09:00
parent e531aa9540
commit 439a379a02
7551 changed files with 1234427 additions and 3 deletions

View File

@@ -0,0 +1,370 @@
package com.wb.domainserver.domain.mngr.setup.dlvygrp.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.mngr.setup.dlvygrp.vo.SetupDlvygrpVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter;
import com.wb.domainserver.util.string.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
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;
/**
* Dlvygrp Controller Class (front)
*
* @author 전일찬
* @since 2023-11-27
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2023-11-27 전일찬 최초 생성
*
* </pre>
*/
@Slf4j
@Controller
@RequestMapping("/mngr/setup/dlvygrp")
public class SetupDlvygrpController {
/** WebClient 호출을 위한 wrapper */
@Autowired
private WnbtWebClientResponseHandler responseHandler;
/** WebClient 호출을 위한 wrapper */
@Autowired
private SendToResrc sendToResrc;
/** 공통 메시지 처리를 위한 메시지 객체 */
@Autowired
private GconeMessageSource gconeMessageSource;
/**
* 배송그룹 목록 조회
* @param SetupDlvygrpVO 배송그룹VO
* @param ModelMap 모델객체
* @return DlvyGroupListR.jsp 배송그룹목록
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/dlvyGroupListR")
public String selectDlvyGroupList(SetupDlvygrpVO dlvyGroup,
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
dlvyGroup.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/selectBODlvyGroupList", dlvyGroup),
model,
"resultMap"
);
return "mngr/setup/dlvygrp/DlvyGroupListR";
}
/**
* 배송그룹 등록화면 이동
* @return DlvyGroupC.jsp 배송그룹 등록
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/dlvyGroupC")
public String selectDlvyGroupForm() {
return "mngr/setup/dlvygrp/DlvyGroupC";
}
/**
* 배송그룹 등록
* @param SetupDlvygrpVO 배송그룹 등록 파라미터 VO
* @param bindingResult 바인딩 및 정합성 점검결과 객체
* @return ResponseEntity<WnbtResponse> 배송그룹 등록 결과
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping("/insertDlvyGroup")
public ResponseEntity<WnbtResponse> insertDlvyGroup(@Validated SetupDlvygrpVO dlvyGroup,
BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
dlvyGroup.setSopmalCd(authSopmalCd);
//입력값 정합성 점검결과 처리
if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
// VO Param setting
// 기본배송비 null 일때 0으로 기본값 셋팅
if(StringUtil.isEmpty(dlvyGroup.getDftDlvyAmt())) {
dlvyGroup.setDftDlvyAmt("0");
}
// 금액조건 여부가 Null 이거나 N 일때, 금액값 기본값 셋팅
if(dlvyGroup.getAmtCndUseAt() == null || dlvyGroup.getAmtCndUseAt().equals("N")) {
dlvyGroup.setAmtCndAditAmt("0");
// 금액조건 여부가 null 일 때 N으로 기본값 셋팅
if(dlvyGroup.getAmtCndUseAt() == null) {
dlvyGroup.setAmtCndUseAt("N");
}
}
// 개수조건 여부가 Null 이거나 N 일때, 금액값 기본값 셋팅
if(dlvyGroup.getCntCndUseAt() == null || dlvyGroup.getCntCndUseAt().equals("N")) {
dlvyGroup.setCntCndAditAmt("0");
// 개수조건 여부가 null 일 때 N으로 기본값 셋팅
if(dlvyGroup.getCntCndUseAt() == null){
dlvyGroup.setCntCndUseAt("N");
}
}
// 묶음배송 여부가 Null 이거나 N 일때, 금액값 기본값 셋팅
if(dlvyGroup.getBundleDlvyUseAt() == null || dlvyGroup.getBundleDlvyUseAt().equals("N")){
dlvyGroup.setBundleDlvyCndAmt("0");
// 묶음배송 여부가 null 일 때 N으로 기본값 셋팅
if(dlvyGroup.getBundleDlvyUseAt() == null) {
dlvyGroup.setBundleDlvyUseAt("N");
}
}
// 배송권역 여부가 Null 이거나 N 일때, 금액값 기본값 셋팅
if(dlvyGroup.getDlvyAreaAditAt().equals("N")) {
dlvyGroup.setAreaAditDlvyAmt("0");
}
// 반품배송비 편도 null 일때 0으로 기본값 셋팅
if(StringUtil.isEmpty(dlvyGroup.getDftDlvyAmt())) {
dlvyGroup.setReturnDlvyAmt("0");
}
// 반품배송비 왕복 null 일때 0으로 기본값 셋팅
if(StringUtil.isEmpty(dlvyGroup.getDftDlvyAmt())) {
dlvyGroup.setExchngDlvyAmt("0");
}
//반품 배송비 왕복금액 적용여부 null 일 경우 N 처리
if(StringUtil.isEmpty(dlvyGroup.getReturnDlvyApplcAt())) {
dlvyGroup.setReturnDlvyApplcAt("N");
}
// 숫자(금액&갯수) ',' 제거
dlvyGroup.setDftDlvyAmt(StringUtil.removeCommaChar(dlvyGroup.getDftDlvyAmt()));
dlvyGroup.setAmtCndAditAmt(StringUtil.removeCommaChar(dlvyGroup.getAmtCndAditAmt()));
dlvyGroup.setCntCndAditAmt(StringUtil.removeCommaChar(dlvyGroup.getCntCndAditAmt()));
dlvyGroup.setAreaAditDlvyAmt(StringUtil.removeCommaChar(dlvyGroup.getAreaAditDlvyAmt()));
dlvyGroup.setBundleDlvyCndAmt(StringUtil.removeCommaChar(dlvyGroup.getBundleDlvyCndAmt()));
dlvyGroup.setReturnDlvyAmt(StringUtil.removeCommaChar(dlvyGroup.getReturnDlvyAmt()));
dlvyGroup.setExchngDlvyAmt(StringUtil.removeCommaChar(dlvyGroup.getExchngDlvyAmt()));
//BO 발송그룹 등록 API 호출
//배송그룹 등록처리 결과 메시지(JSON) 처리
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/insertBODlvyGroup", dlvyGroup),
ReplyFromResrc::getReply
);
}
/**
* 배송그룹 정보 상세조회(공통)
* @param SetupDlvygrpVO 배송그룹 파라미터 VO
* @param model 모델객체
* @return DlvyGroupDtlU.jsp 배송그룹 수정화면
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/dlvyGroupDtlU")
public String selectDlvyGroupDtlForm(SetupDlvygrpVO dlvyGroup,
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
dlvyGroup.setSopmalCd(authSopmalCd);
//BO 배송그룹 등록 API 호출
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/selectBODlvyGroupDtlForm", dlvyGroup),
model,
"resultMap"
);
return "mngr/setup/dlvygrp/DlvyGroupDtlU";
}
/**
* 조건부 무료배송 jsp 호출
* @param SetupDlvygrpVO 배송그룹 파라미터 VO
* @param model 모델객체
* @return ConditionFreeDlvy.jsp 조건부무료배송
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping(value="/conditionFreeDlvy")
public String findConditionFreeDlvy(SetupDlvygrpVO dlvyGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
//해당 배송그룹 구분이 아니면 jsp 호출
dlvyGroup.setSopmalCd(authSopmalCd);
if("01".equals(dlvyGroup.getDlvyGroupDvCd()) && dlvyGroup.getDlvyGroupInnb() != null) {
//BO 배송그룹 정보 API 호출
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/selectBODlvyGroupDtlForm", dlvyGroup),
model,
"resultMap"
);
}
return "mngr/setup/dlvygrp/ConditionFreeDlvy";
}
/**
* 무료배송 jsp 호출
* @param SetupDlvygrpVO 배송그룹 파라미터 VO
* @param model 모델객체
* @return FreeDlvy.jsp 무료배송
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping(value="/freeDlvy")
public String findFreeDlvy(SetupDlvygrpVO dlvyGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
//해당 배송그룹 구분이 아니면 jsp 호출
dlvyGroup.setSopmalCd(authSopmalCd);
if("02".equals(dlvyGroup.getDlvyGroupDvCd()) && dlvyGroup.getDlvyGroupInnb() != null) {
//BO 배송그룹 정보 API 호출
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/selectBODlvyGroupDtlForm", dlvyGroup),
model,
"resultMap"
);
}
return "mngr/setup/dlvygrp/FreeDlvy";
}
/**
* 유료배송 jsp 호출
* @param SetupDlvygrpVO 배송그룹 파라미터 VO
* @param model 모델객체
* @return PayDlvy.jsp 유료배송
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping(value="/payDlvy")
public String findPayDlvy(SetupDlvygrpVO dlvyGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
//해당 배송그룹 구분이 아니면 jsp 호출
dlvyGroup.setSopmalCd(authSopmalCd);
if("03".equals(dlvyGroup.getDlvyGroupDvCd()) && dlvyGroup.getDlvyGroupInnb() != null) {
//BO 배송그룹 정보 API 호출
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/selectBODlvyGroupDtlForm", dlvyGroup),
model,
"resultMap"
);
}
return "mngr/setup/dlvygrp/PayDlvy";
}
/**
* 배송그룹 수정
* @param SetupDlvygrpVO 배송그룹 파라미터 VO
* @param bindingResult 바인딩 및 정합성 점검결과 객체
* @return ResponseEntity<WnbtResponse> 배송그룹 등록 결과
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping("/updateDlvyGroupDtl")
public ResponseEntity<WnbtResponse> updateDlvyGroupDtl(@Validated SetupDlvygrpVO dlvyGroup,
BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
dlvyGroup.setSopmalCd(authSopmalCd);
//입력값 정합성 점검결과 처리
if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
// VO Param setting
// 기본배송비 null 일때 0으로 기본값 셋팅
if(StringUtil.isEmpty(dlvyGroup.getDftDlvyAmt())) {
dlvyGroup.setDftDlvyAmt("0");
}
// 금액조건 여부가 Null 이거나 N 일때, 금액값 기본값 셋팅
if(dlvyGroup.getAmtCndUseAt() == null || dlvyGroup.getAmtCndUseAt().equals("N")) {
dlvyGroup.setAmtCndAditAmt("0");
// 금액조건 여부가 null 일 때 N으로 기본값 셋팅
if(dlvyGroup.getAmtCndUseAt() == null) {
dlvyGroup.setAmtCndUseAt("N");
}
}
// 개수조건 여부가 Null 이거나 N 일때, 금액값 기본값 셋팅
if(dlvyGroup.getCntCndUseAt() == null || dlvyGroup.getCntCndUseAt().equals("N")) {
dlvyGroup.setCntCndAditAmt("0");
// 개수조건 여부가 null 일 때 N으로 기본값 셋팅
if(dlvyGroup.getCntCndUseAt() == null){
dlvyGroup.setCntCndUseAt("N");
}
}
// 묶음배송 여부가 Null 이거나 N 일때, 금액값 기본값 셋팅
if(dlvyGroup.getBundleDlvyUseAt() == null || dlvyGroup.getBundleDlvyUseAt().equals("N")){
dlvyGroup.setBundleDlvyCndAmt("0");
// 묶음배송 여부가 null 일 때 N으로 기본값 셋팅
if(dlvyGroup.getBundleDlvyUseAt() == null) {
dlvyGroup.setBundleDlvyUseAt("N");
}
}
// 배송권역 여부가 Null 이거나 N 일때, 금액값 기본값 셋팅
if(dlvyGroup.getDlvyAreaAditAt().equals("N")) {
dlvyGroup.setAreaAditDlvyAmt("0");
}
// 반품배송비 편도 null 일때 0으로 기본값 셋팅
if(StringUtil.isEmpty(dlvyGroup.getDftDlvyAmt())) {
dlvyGroup.setReturnDlvyAmt("0");
}
// 반품배송비 왕복 null 일때 0으로 기본값 셋팅
if(StringUtil.isEmpty(dlvyGroup.getDftDlvyAmt())) {
dlvyGroup.setExchngDlvyAmt("0");
}
//반품 배송비 왕복금액 적용여부 null 일 경우 N 처리
if(StringUtil.isEmpty(dlvyGroup.getReturnDlvyApplcAt())) {
dlvyGroup.setReturnDlvyApplcAt("N");
}
// 숫자(금액&갯수) , 제거
dlvyGroup.setDftDlvyAmt(StringUtil.removeCommaChar(dlvyGroup.getDftDlvyAmt()));
dlvyGroup.setAmtCndAditAmt(StringUtil.removeCommaChar(dlvyGroup.getAmtCndAditAmt()));
dlvyGroup.setCntCndAditAmt(StringUtil.removeCommaChar(dlvyGroup.getCntCndAditAmt()));
dlvyGroup.setAreaAditDlvyAmt(StringUtil.removeCommaChar(dlvyGroup.getAreaAditDlvyAmt()));
dlvyGroup.setBundleDlvyCndAmt(StringUtil.removeCommaChar(dlvyGroup.getBundleDlvyCndAmt()));
dlvyGroup.setReturnDlvyAmt(StringUtil.removeCommaChar(dlvyGroup.getReturnDlvyAmt()));
dlvyGroup.setExchngDlvyAmt(StringUtil.removeCommaChar(dlvyGroup.getExchngDlvyAmt()));
//BO 배송그룹 수정 API 호출
//배송그룹 등록처리 결과 메시지(JSON) 처리
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/updateBODlvyGroupDtl", dlvyGroup),
ReplyFromResrc::getReply
);
}
/**
* 배송그룹 삭제
* @param SetupDlvygrpVO 배송그룹 파라미터 VO
* @return ResponseEntity<WnbtResponse> 배송그룹 등록 결과
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping("/deleteDlvyGroup")
public ResponseEntity<WnbtResponse> deleteDlvyGroup(SetupDlvygrpVO dlvyGroup, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
dlvyGroup.setSopmalCd(authSopmalCd);
//BO 배송그룹 삭제 API 호출
//배송그룹 등록처리 결과 메시지(JSON) 처리
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/deleteBODlvyGroup", dlvyGroup),
ReplyFromResrc::getReply
);
}
}

View File

@@ -0,0 +1,85 @@
package com.wb.domainserver.domain.mngr.setup.dlvygrp.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
@Data
@EqualsAndHashCode(callSuper = false)
public class SetupDlvygrpVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/** 배송그룹 고유번호 */
private Integer dlvyGroupInnb;
/** 쇼핑몰 코드 */
private String sopmalCd;
/** 배송그룹 구분 */
private String dlvyGroupDvCd;
/** 배송그룹 이름 */
@NotBlank(message = "배송그룹명(명칭)")
@Length(min=1, max=50, message = "배송그룹명(명칭)")
private String dlvyGroupNm;
/** 기본배송비 */
private String dftDlvyAmt;
/** 금액조건 */
private String amtCndUseAt;
/** 금액조건 추가금액 */
private String amtCndAditAmt;
/** 개수조건 */
private String cntCndUseAt ;
/** 개수조건 추가금액 */
private String cntCndAditAmt ;
/** 배송지역추가여부 */
private String dlvyAreaAditAt;
/** 지역추가배송비 */
private String areaAditDlvyAmt;
/** 묶음배송 사용여부 */
private String bundleDlvyUseAt;
/** 묶음배송 조건금액 */
private String bundleDlvyCndAmt;
/** 반송지 고유번호 */
private Integer rtnlcInnb;
/** 반송지 우편번호 */
private String rtnlcZip;
/** 반송지 주소 */
private String rtnlcAdres;
/** 반송지 상세주소 */
@Length(min=0, max=100, message = "반송지(상세주소)")
private String rtnlcDtlAdres;
/** 반송지 전화번호 */
private String rtnlcTelnb;
/*반품배송비왕복금액적용여부*/
private String returnDlvyApplcAt;
/*반품배송비금액*/
private String returnDlvyAmt;
/*왕복배송비금액*/
private String exchngDlvyAmt;
}

View File

@@ -0,0 +1,5 @@
package com.wb.domainserver.domain.mngr.setup.dlvygrp.vo;
public enum UseAt {
Y,N
}

View File

@@ -0,0 +1,180 @@
package com.wb.domainserver.domain.mngr.setup.mbr.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.mngr.setup.mbr.vo.SetupMbrVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter;
import com.wb.domainserver.util.string.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
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.RequestMapping;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 회원 등급 설정 Controller
*
* @author 김혜인
* @since 2023-12-26
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2023-12-26 김혜인 최초 생성
*
* </pre>
*/
@Controller
@RequestMapping("/mngr/setup/mbr")
@Slf4j
public class SetupMbrController {
/**
* WebClient 호출을 위한 wrapper
*/
@Autowired
private WnbtWebClientResponseHandler responseHandler;
@Autowired
private SendToResrc sendToResrc;
/** 공통 메시지 처리를 위한 메시지 객체 */
@Autowired
private GconeMessageSource gconeMessageSource;
/**
* 등급 별 혜택 목록 검색 폼 이동
* @return GradBnefSrch.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMbrGradSrchForm")
public String selectMbrGradSrch(ModelMap model,SetupMbrVO paramVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
paramVO.setSopmalCd(authSopmalCd);
//BO 등급 별 혜택 목록 검색 폼 조회 API 호출
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/gradbnef/selectBOMbrGradFormInqire", paramVO),
model,
"resultMap"
);
return "mngr/setup/mbr/GradBnefSrchR";
}
/**
* 등급 별 혜택 목록 조회
* @param SetupMbrVO
* @return GradBnefListR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMbrGradListInqire")
public String selectMbrGradListInqire(ModelMap model,SetupMbrVO paramVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
paramVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/setup/gradbnef/selectBOMbrGradListInqire", paramVO),
model,
"resultMap"
);
return "mngr/setup/mbr/GradBnefListR";
}
/**
* 등급 별 혜택 상세 페이지 이동
* @param SetupMbrVO
* @return GradBnefRegistU.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectGradBnefRegistInqire")
public String selectGradBnefRegistInqire(ModelMap model, SetupMbrVO paramVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
paramVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/setup/gradbnef/selectBOGradBnefRegistInqire", paramVO),
model,
"resultMap"
);
model.addAttribute("paramVO",paramVO);
return "mngr/setup/mbr/GradBnefRegistU";
}
/**
* 등급 별 혜택 수정
* @param SetupMbrVO
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateGradBnefUpdt")
public ResponseEntity<WnbtResponse> updateGradBnefUpdt(@Validated SetupMbrVO paramVO
,BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
paramVO.setSopmalCd(authSopmalCd);
List<Map<String, String>> errorList = new ArrayList<>();
if(bindingResult.hasErrors()){
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}else if("mlgPymntY".equals(paramVO.getMlgPymnt())){
//마일리지 지급 체크시 유효성 체크
//지급 구분이 %일시 마일리지 적립 비율과 최대 적립 금액, 유효 기간 확인 null or 0일시 에러
if("01".equals(paramVO.getMlgAccmlUnitDvCd())) {
//마일리지 적립 비율 null or 0일때 "마일리지 적립 비율" 에러 메시지
if(StringUtil.isEmpty(paramVO.getMlgAccmlAmt())
|| "0".equals(paramVO.getMlgAccmlAmt())) {
errorList.add(ValidateResultConverter.setErrorMap("mlgAccmlRt", gconeMessageSource.getMessage("errors.required", new Object[] {"마일리지 적립 비율"})));
}
if(StringUtil.isEmpty(paramVO.getMlgMxmmAccmlmnyAmtChk())) {
if(StringUtil.isEmpty(paramVO.getMlgMxmmAccmlAmt())
|| "0".equals(paramVO.getMlgMxmmAccmlAmt())) {
errorList.add(ValidateResultConverter.setErrorMap("mlgMxmmAccmlmnyAmt", gconeMessageSource.getMessage("errors.required", new Object[] {"최대 마일리지 적립 금액"})));
}
}
}else if("02".equals(paramVO.getMlgAccmlUnitDvCd())){
//지급 구분이 마일리지 일시 마일리지 적립 비율과 최대 적립 금액, 유효 기간 확인 null or 0일시 에러
if(StringUtil.isEmpty(paramVO.getMlgAccmlAmt())
|| "0".equals(paramVO.getMlgAccmlAmt())) {
errorList.add(ValidateResultConverter.setErrorMap("mlgAccmlmnyAmt", gconeMessageSource.getMessage("errors.required", new Object[] {"마일리지 적립 금액"})));
}
}
}
if(errorList != null
&& errorList.size() > 0) {
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
}
//마일리지 관련 값들 미지급 선택 시 null로 set
if("mlgPymntN".equals(paramVO.getMlgPymnt())) {
paramVO.setMlgAccmlAmt(null);
paramVO.setMlgMxmmAccmlAmt(null);
paramVO.setMlgValidMtCnt(null);
}
//최대 마일리지 지급 여부 체크 "Y"일 시 유효기간 null로 set
if("Y".equals(paramVO.getMlgMxmmAccmlmnyAmtChk())) {
paramVO.setMlgMxmmAccmlAmt(null);
}
//최대 마일리지 지급 여부 체크 "Y"일 시 유효기간 null로 set
if("Y".equals(paramVO.getValidPdChk())) {
paramVO.setMlgValidMtCnt(null);
}
//BO API 호출 => 등급 별 혜택 수정
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/gradbnef/updateBOGradBnefUpdt", paramVO),
ReplyFromResrc::getReply
);
}
}

View File

@@ -0,0 +1,64 @@
package com.wb.domainserver.domain.mngr.setup.mbr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
/**
* 회원 등급 설정 VO
*
* @author 김혜인
* @since 2023-12-26
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2023-12-26 김혜인 최초 생성
*
* </pre>
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SetupMbrVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/** 쇼핑몰코드 */
private String sopmalCd;
/** 회원등급 고유번호 */
private String mbrGradInnb;
/** 회원등급 고유번호 */
private String mbrGradGroupInnb;
/** 등급조정조건코드*/
private String gradMdatCndCd;
/** 등급조정조건코드명 */
private String gradMdatCndCdNm;
/** 등급코드 */
private String srchGradInnb;
/** 마일리지적립금액 */
@Length(min=0, max=13)
private String mlgAccmlAmt;
/** 마일리지최대적립금액 */
@Length(min=0, max=13)
private String mlgMxmmAccmlAmt;
/** 마일리지 유효 월 수 */
@Length(min=0, max=2)
private String mlgValidMtCnt;
/** 구매건수 */
private String purchsCnt;
/** 실결제금액 */
private String rlSetleAmt;
/** 마일리지 지급여부 */
private String mlgPymnt;
/** 마일리지 적립구분 */
private String mlgAccmlUnitDvCd;
/** 마일리지최대적립금액 설정 안함 여부 체크*/
private String mlgMxmmAccmlmnyAmtChk;
/** 마일리지 지금 유효기간 설정 안함 여부 체크*/
private String validPdChk;
/** 검색 회원명 */
private String searchGradNm;
}

View File

@@ -0,0 +1,125 @@
package com.wb.domainserver.domain.mngr.setup.mngr.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.mngr.setup.mngr.vo.SetupMngrInfoVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
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.RequestMapping;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Dlvygrp Controller Class (front)
*
* @author 전일찬
* @since 2023-11-27
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2023-11-27 전일찬 최초 생성
*
* </pre>
*/
@Slf4j
@Controller
@RequestMapping("/mngr/setup/mngr")
public class SetupMngrInfoController {
/** WebClient 호출을 위한 wrapper */
@Autowired
private SendToResrc sendToResrc;
/** 공통 메시지 처리를 위한 메시지 객체 */
@Autowired
private GconeMessageSource gconeMessageSource;
@Autowired
private WnbtWebClientResponseHandler responseHandler;
/**
* 관리자 정보 조회
* @param vo
* @param model 모델객체
* @return DlvyGroupListR.jsp 배송그룹목록
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMngrInfoInqireForm")
public String selectMngrInfoInqireForm(SetupMngrInfoVO vo,ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
// vo.setSopmalCd(session.getAttribute("authSopmalCd").toString());
Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/mngrInfo/selectBOMngrInfoUpdtForm", vo)
);
model.addAttribute("resultMap", resultMap);
return "mngr/setup/mngr/MngrInfoDtlU";
}
/**
* 관리자 정보 수정
* @param vo
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateMngrInfoUpdt")
public ResponseEntity<?> updateMngrInfoUpdt(@Validated SetupMngrInfoVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
// vo.setSopmalCd(session.getAttribute("authSopmalCd").toString());
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
/*비밀번호 체크*/
if("Y".equals(vo.getPwChngAt())){
/*1 비밀번호 변경 시 현재 비밀번호 확인*/
Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
sendToResrc.ofPost(RESRC.GCONEBO, "/admin/user/mngr/selectBOJobUserPasswordInqire", vo)
);
int result = (int) resultMap.get("result");
if(result == 0){
throw new WnbtRestException("현재 비밀번호가 일치하지 않습니다");
}
/*2 비밀번호 정규 표현식 확인*/
String password = vo.getChngPw();
String pwPattern = "^(?=.*[A-Za-z])(?=.*[0-9])(?=.*[$@$!%*#?&{}()~_*\\\\^+-:><=\\[\\]])[A-Za-z[0-9]@$!%*#?&{}()~_*\\^+-:><=\\[\\]]{10,20}$";
Matcher matcher = Pattern.compile(pwPattern).matcher(password);
if (!matcher.matches()) {
throw new WnbtRestException("10-20자, 영문 대소문자 또는 숫자, 특수문자 중 2가지 이상 조합 되어야 합니다.");
}
/*3 변경 비밀번호 확인*/
if(!vo.getChngPw().equals(vo.getCnfirmChngPw())){
throw new WnbtRestException("변경 비밀번호와 변경된 비밀번호 확인 번호가 일치하지 않습니다.");
}
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/mngrInfo/updateBOMngrInfoUpdt", vo),
ReplyFromResrc::getReply
);
}
}

View File

@@ -0,0 +1,54 @@
package com.wb.domainserver.domain.mngr.setup.mngr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import java.math.BigInteger;
@Data
@EqualsAndHashCode(callSuper = false)
public class SetupMngrInfoVO extends AbstractVO {
private static final long serialVersionUID = 1L;
// 업무 사용자 정보 (FM_MANAGER)
/** 업무사용자 고유번호 */
private BigInteger mngrInnb;
/** 사용자명(관리자명) */
@NotBlank(message="사용자명")
@Length(min = 1, max = 20, message = "사용자명")
private String mngrNm;
/** 사용자비밀번호(관리자) */
/*현재비밀번호*/
private String password;
/*변경된 비밀번호*/
private String chngPw;
/*변경된 비밀번호 확인*/
private String cnfirmChngPw;
/*현재비밀번호*/
private String pwChngAt;
/** 이메일 */
private String email;
/** 전화번호 */
private String telnb;
/** 휴대전화번호 */
@NotBlank(message="휴대전화번호")
private String mbtlnb;
// 데이터 처리
@NotBlank(message="이메일 아이디")
private String email1;
@NotBlank(message="이메일 도메인")
private String email2;
}

View File

@@ -0,0 +1,101 @@
package com.wb.domainserver.domain.mngr.setup.nbkk.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.mngr.setup.nbkk.vo.SetupNbkkVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
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) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2023-12-18 김혜인 최초 생성
*
* </pre>
* @since 2023-12-18
*/
@Controller
@RequestMapping("/mngr/setup/nbkk")
@Slf4j
public class SetupNbkkController {
/**
* WebClient 호출을 위한 wrapper
*/
@Autowired
private WnbtWebClientResponseHandler responseHandler;
@Autowired
private SendToResrc sendToResrc;
/**
* 공통 메시지 처리를 위한 메시지 객체
*/
@Autowired
private GconeMessageSource gconeMessageSource;
/**
* 무통장 설정 페이지 이동
*
* @param SetupNbkkVO
* @return NbkkSetupListR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectNbkkSetupList")
public String selectNbkkSetupList(ModelMap model, SetupNbkkVO setupNbkkVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
setupNbkkVO.setSopmalCd(authSopmalCd);
/*무통장 설정 조회 */
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/setup/nbkk/selectBONbkkSetupList", setupNbkkVO),
model,
"resultMap"
);
return "mngr/setup/nbkk/NbkkSetupListR";
}
/**
* 무통장 설정 수정
*
* @param SetupNbkkVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping(value = "/updateNbkkSetup")
public ResponseEntity<WnbtResponse> updateNbkkSetup(@Validated SetupNbkkVO setupNbkkVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
setupNbkkVO.setSopmalCd(authSopmalCd);
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
//BO 배송지 수정 결과를 Map으로 변환하여 설정
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/nbkk/updateBOPNbkkSetup", setupNbkkVO),
ReplyFromResrc::getReply
);
}
}

View File

@@ -0,0 +1,41 @@
package com.wb.domainserver.domain.mngr.setup.nbkk.vo;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 무통장 설정 무통장 입금 수단 VO
*
* @author 김혜인
* @since 2023-12-15
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2023-12-16 김혜인 최초 생성
*
* </pre>
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class NbkkInfoVO {
/*계좌구분*/
private String acntDvCd;
/*계좌상세구분*/
private String acntDtlDvCd;
/*은행코드*/
private String bankCd;
/*예금주명*/
@NotBlank(message = "예금주명")
private String dpstrNm;
/*계좌번호*/
@NotBlank(message = "계좌번호")
private String acntnb;
/*사용여부*/
private String useAt;
}

View File

@@ -0,0 +1,47 @@
package com.wb.domainserver.domain.mngr.setup.nbkk.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.Valid;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 무통장 설정 VO
*
* @author 김혜인
* @since 2023-12-15
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2023-12-16 김혜인 최초 생성
*
* </pre>
*/
@Data
@EqualsAndHashCode(callSuper=false)
public class SetupNbkkVO extends AbstractVO{
private static final long serialVersionUID = 1L;
/** 쇼핑몰 코드 */
private String sopmalCd;
/*계좌구분*/
private String acntDvCd;
/*계좌상세구분*/
private String acntDtlDvCd;
/*은행코드*/
private String bankCd;
/*예금주명*/
private String dpstrNm;
/*계좌번호*/
private String acntnb;
/*사용여부*/
private String useAt;
@Valid
private List<NbkkInfoVO> nbkkInfo;
}

View File

@@ -0,0 +1,145 @@
package com.wb.domainserver.domain.mngr.setup.ordr.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.mngr.setup.ordr.vo.SetupOrdrVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter;
import com.wb.domainserver.util.string.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
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.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 주문 설정 Controller
*
* @author 김혜인
* @since 2023-12-20
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2023-12-20 김혜인 최초 생성
*
* </pre>
*/
@Controller
@RequestMapping("/mngr/setup/ordr")
@Slf4j
public class SetupOrdrController {
/** WebClient 호출을 위한 wrapper */
@Autowired
private WnbtWebClientResponseHandler responseHandler;
@Autowired
private SendToResrc sendToResrc;
/** 공통 메시지 처리를 위한 메시지 객체 */
@Autowired
private GconeMessageSource gconeMessageSource;
/**
* 주문 설정 페이지 이동
* @param setupOrdrVO
* @return NbkkSetupListR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectOrdrSetupList")
public String selectOrdrSetupList(ModelMap model,SetupOrdrVO setupOrdrVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
setupOrdrVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/setup/ordrmngr/selectBOOrdrSetupList", setupOrdrVO),
model,
"resultMap"
);
return "mngr/setup/ordr/OrdrListR";
}
/**
* 주문 저장, 수정
* @param setupOrdrVO
* @return NbkkSetupListR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateOrdrSetup" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> updateOrdrSetup(@Validated SetupOrdrVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
List<Map<String, String>> errorList = new ArrayList<>();
//유효성 체크
if(bindingResult.hasErrors()){
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}else {
//선물하기 값 체크
if ("Y".equals(vo.getGiftDlvyAt())) {
//배송지 등록기간 값 체크
if (StringUtil.isEmpty(vo.getGiftDlvyAtmcCanclPd()) || "0".equals(vo.getGiftDlvyAtmcCanclPd())) {
errorList.add(ValidateResultConverter.setErrorMap("giftDlvylcRegistPd", gconeMessageSource.getMessage("errors.required", new Object[]{"선물 배송지 등록 기간"})));
}
}
//상품 결제 금액 지급 비율 값 체크
if ("Y".equals(vo.getMlgPymntAt())) {
if (StringUtil.isEmpty(vo.getMlgPymntRt()) || "0".equals(vo.getMlgPymntRt())) {
errorList.add(ValidateResultConverter.setErrorMap("mlgAccmlRt", gconeMessageSource.getMessage("errors.required", new Object[]{"마일리지 지급 액"})));
}
if ("01".equals(vo.getMlgPymntDvCd())) {
//최대지급마일리지비율 값 체크
if (StringUtil.isEmpty(vo.getMlgMxmmPymntAmtAt())) {
if (StringUtil.isEmpty(vo.getMlgMxmmPymntAmt()) || "0".equals(vo.getMlgMxmmPymntAmt())) {
errorList.add(ValidateResultConverter.setErrorMap("mlgMxmmAccmlmnyAmt", gconeMessageSource.getMessage("errors.required", new Object[]{"최대 지급 마일리지 금액"})));
}
}
}
//마일리지 지급 유효기간 설정 안함 여부 확인 후 유효기간 유효성 체크
if (StringUtil.isEmpty(vo.getMlgValidPdAt())) {
if (StringUtil.isEmpty(vo.getMlgValidPd()) || "0".equals(vo.getMlgValidPd())) {
errorList.add(ValidateResultConverter.setErrorMap("mlgValidPd", gconeMessageSource.getMessage("errors.required", new Object[]{"마일리지 지급 유효기간"})));
}
}
}
//errorLIst 있을 시 에러 메시지 출력
if(errorList != null && errorList.size() > 0) {
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
}
}
if("N".equals(vo.getMlgPymntAt())){
vo.setMlgValidPd(null);
vo.setMlgMxmmPymntAmt(null);
vo.setMlgPymntRt(null);
}
//마일리지 지급 유효기간 여부 체크 "N"일 시 유효기간 null로 set
if("N".equals(vo.getMlgValidPdAt())) {
vo.setMlgValidPd(null);
}
//최대 마일리지 지급 여부 체크 "N"일 시 유효기간 null로 set
if("N".equals(vo.getMlgMxmmPymntAmtAt())) {
vo.setMlgMxmmPymntAmt(null);
}
//BO API 호출 => 주문 저장
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/ordrmngr/updateBOOrdrSetup", vo),
ReplyFromResrc::getReply
);
}
}

View File

@@ -0,0 +1,55 @@
package com.wb.domainserver.domain.mngr.setup.ordr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 주문 설정 VO
*
* @author 김혜인
* @since 2023-12-20
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2023-12-20 김혜인 최초 생성
*
* </pre>
*/
@Data
@EqualsAndHashCode(callSuper=false)
public class SetupOrdrVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/** 쇼핑몰 코드 */
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 fdrmDlvyAt;
/**선물하기여부*/
private String giftDlvyAt;
/**선물하기자동취소기간*/
private String giftDlvyAtmcCanclPd;
/*충전형마일리지 사용여부*/
private String cashAt;
}

View File

@@ -0,0 +1,259 @@
package com.wb.domainserver.domain.mngr.setup.popup.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.mngr.setup.popup.vo.SetupPopupVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter;
import com.wb.domainserver.util.file.FileMngUtil;
import com.wb.domainserver.util.file.service.FileStorageService;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.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.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.HashMap;
import java.util.List;
/**
* 팝업 관리 Controller
*
* @author 리브가
* @version 1.0
* @see <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2024-02-07 리브가 최초 생성
*
* </pre>
* @since 2024-02-07
*/
@Slf4j
@Controller
@RequestMapping("/mngr/setup/popup")
public class SetupPopupController {
@Autowired
private SendToResrc sendToResrc;
@Autowired
private GconeMessageSource gconeMessageSource;
@Autowired
private FileMngUtil fileMngUtil;
@Value("${mngrfo.common.fileupload.uploaddirs.goods}")
private String uploadFilePath;
@Value("${mngrfo.common.fileupload.extensions.images}")
private String whiteListFileUploadExtensions;
@Autowired
private FileStorageService filestore;
@Autowired
private WnbtWebClientResponseHandler responseHandler;
/**
* 팝업 목록 조회
* @param vo
* @param model
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectPopupList")
public String selectCmmnCodeListInqire(SetupPopupVO vo,
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/selectBOPopupList", vo),
model,
"resultMap"
);
return "mngr/setup/popup/PopupListR";
}
/**
* 팝업 등록폼
* @param vo
* @param model
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectPopupRegistForm")
public String selectPopupRegistForm(SetupPopupVO vo,
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/selectBOPopupList", vo),
model,
"resultMap"
);
return "mngr/setup/popup/PopupRegistC";
}
/**
* 팝업 수정폼
* @param vo
* @param model
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectPopupUpdtForm")
public String selectPopupDtlForm(SetupPopupVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/selectBOPopupDtl", vo),
model,
"resultMap"
);
return "mngr/setup/popup/PopupDtlU";
}
/**
* 팝업 등록
* @param vo
* @param bindingResult
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/insertPopup" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> insertPopup(@Validated SetupPopupVO vo, BindingResult bindingResult , HttpServletRequest request,
@CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
//정합성 검사
if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
/*
WnbtResponse wnbtResponse = WnbtResponse.builder()
// .statusCode(res.getStatus())
.requestUrl(String.valueOf(request.getRequestURL()))
.resBody(new WnbtResponseBody(new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource))))
.build();
//return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(wnbtResponse);
// return ResponseEntity.status(HttpStatus.OK).body(wnbtResponse);
return ResponseEntity.status(HttpStatus.EXPECTATION_FAILED).body(wnbtResponse);
// throw new RuntimeException(e);
//throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));*/
}
//파일 업로드
request.setAttribute("shopCd", vo.getSopmalCd());
request.setAttribute("pathGubun", "ETCM");
request.setAttribute("subPathId", "");
request.setAttribute("validExp", "");
List<HashMap<String, Object>> ulpladFileMap;
try {
ulpladFileMap = filestore.fileUpload(request);
vo.setFileInfo(ulpladFileMap);
} catch (WnbtRestException wre){
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
}
catch (Exception e) {
throw new WnbtRestException("파일 업로드에 실패했습니다."+e);
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/insertBOPopup", vo),
ReplyFromResrc::getReply
);
}
/**
* 팝업 수정
* @param vo
* @param bindingResult
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updatePopupDtl" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> updatePopupDtl(@Validated SetupPopupVO vo, BindingResult bindingResult , HttpServletRequest request,
@CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
//정합성 검사
if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
//파일 업로드
request.setAttribute("shopCd", vo.getSopmalCd());
request.setAttribute("pathGubun", "ETCM");
request.setAttribute("subPathId", "");
request.setAttribute("validExp", "");
List<HashMap<String, Object>> ulpladFileMap;
try {
ulpladFileMap = filestore.fileUpload(request);
vo.setFileInfo(ulpladFileMap);
} catch (WnbtRestException wre){
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
}
catch (Exception e) {
throw new WnbtRestException("파일 업로드에 실패했습니다."+e);
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/updateBOPopupDtl", vo),
ReplyFromResrc::getReply
);
}
/**
* 팝업 삭제
* @param vo
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/deletePopup" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> deletePopup(SetupPopupVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/deleteBOPopup", vo),
ReplyFromResrc::getReply
);
}
@Policy(AuthPolicy.RESTRICTED)@RequestMapping(value="/selectPopupPrevew")public String selectPopupPrevew(){return "/0";}
}

View File

@@ -0,0 +1,88 @@
package com.wb.domainserver.domain.mngr.setup.popup.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.HashMap;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = false)
public class SetupPopupVO extends AbstractVO {
/** 타이머 노출 여부 */
@NotNull(message = "타이머 노출 여부")
private String tmeSetupAt;
// "타이머"
private String datepicker_3;
/** 시간설정 */
private String tmeSetup;
/** 모바일 팝업크기 가로 */
@NotNull(message = "모바일 팝업크기 가로")
private Integer mblPopupMgWth;
/** 모바일 팝업크기 세로 */
@NotNull(message = "모바일 팝업크기 세로")
private Integer mblPopupMgVtc;
/** 모바일 팝업위치 X */
@NotNull(message = "모바일 팝업위치 X")
private Integer mblPopupLcX;
/** 모바일 팝업위치 Y */
@NotNull(message = "모바일 팝업위치 Y")
private Integer mblPopupLcY;
/** 팝업 고유번호 */
private Integer popupInnb;
/** 팝업 이름 */
@NotBlank(message = "팝업 제목")
private String popupNm;
/** 쇼핑몰코드 */
private String sopmalCd;
/** 팝업노출 시작일시 */
@NotBlank(message = "팝업 시작 기간")
private String popupExpsrBgnDt;
/** 팝업노출 종료일시 */
@NotBlank(message = "팝업 종료 기간")
private String popupExpsrEndDt;
/** 연결URL */
private String cnncUrl;
/** 팝업크기 가로 */
@NotNull(message = "팝업크기 가로")
private Integer popupMgWth;
/** 팝업크기 세로 */
@NotNull(message = "팝업크기 세로")
private Integer popupMgVtc;
/** 팝업위치 X */
@NotNull(message = "팝업위치 X")
private Integer popupLcX;
/** 팝업위치 Y */
@NotNull(message = "팝업위치 Y")
private Integer popupLcY;
/** 노출여부 */
private String expsrAt;
/** 파일업로드 */
/** 원본파일명 */
private String orginlFilNm;
/** 시스템파일명 */
private String sysFilNm;
/** 파일크기 */
private long filMg;
/** 파일타입(확장자) */
private String filTy;
/** 파일경로 */
private String filCours;
@NotBlank(message = "파일 시작 기간")
private String datepicker_1;
@NotBlank(message = "파일 종료 기간")
private String datepicker_2;
/** 파일정보 */
private List<HashMap<String, Object>> fileInfo;
}

View File

@@ -0,0 +1,863 @@
package com.wb.domainserver.domain.mngr.setup.site.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.mngr.setup.site.vo.SetupContentsItemVO;
import com.wb.domainserver.domain.mngr.setup.site.vo.SetupGoodsgrpVO;
import com.wb.domainserver.domain.mngr.setup.site.vo.SetupSiteVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.*;
import com.wb.domainserver.util.file.FileMngUtil;
import com.wb.domainserver.util.file.service.FileStorageService;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import net.minidev.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
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;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
*
* Site Setup Controller class
* @author 전일찬
* @since 2023-12-04
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2023-12-04 전일찬 최초 생성
* 2024-02-04 추지훈 수정
*
* </pre>
*/
@Slf4j
@Controller
@RequestMapping("/mngr/setup/site")
public class SetupSiteController {
/** WebClient 호출을 위한 wrapper */
@Autowired
private WnbtWebClientResponseHandler responseHandler;
/** WebClient 호출을 위한 wrapper */
@Autowired
private SendToResrc sendToResrc;
/** 공통 메시지 처리를 위한 메시지 객체 */
@Autowired
private GconeMessageSource gconeMessageSource;
@Autowired
private FileMngUtil fileMngUtil;
@Autowired
private FileStorageService filestore;
@Value("${mngrfo.common.fileupload.uploaddirs.goods}")
private String uploadFilePath;
@Value("${mngrfo.common.fileupload.extensions.images}")
private String whiteListFileUploadExtensions;
/**
* 사이트관리(헤더) 설정화면 이동
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectSiteHeaderManageForm")
public String selectSiteHeaderManageForm(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOSiteHeaderManageForm", siteVO),
model,
"resultMap"
);
return "mngr/setup/site/SiteHeaderManageU";
}
/**
* 중단영역 추가 등록
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping("/insertSetupMiddleRegist")
public ResponseEntity<WnbtResponse> insertSetupMiddleRegist(@Validated SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd,
BindingResult bindingResult) {
siteVO.setSopmalCd(authSopmalCd);
//입력값 정합성 점검결과 처리
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/insertBOSetupMiddleRegist", siteVO),
ReplyFromResrc::getReply
);
}
/**
* 중단영역 수정
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping("/updateSetupMiddleUpdt")
public ResponseEntity<WnbtResponse> updateSetupMiddleUpdt(@Validated SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd, BindingResult bindingResult) {
siteVO.setSopmalCd(authSopmalCd);
log.debug("파라미터 확인 : {}", siteVO.getMainSetupInnb());
log.debug("파라미터 확인 : {}", siteVO.getMainSiteNm());
//입력값 정합성 점검결과 처리
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOSetupMiddleUpdt", siteVO),
ReplyFromResrc::getReply
);
}
/**
* 중단영역 삭제
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping("/deleteSetupMiddleDel")
public ResponseEntity<WnbtResponse> deleteSetupMiddleDel(SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/deleteBOSetupMiddleDel", siteVO),
ReplyFromResrc::getReply
);
}
/**
* 중단영역 적용
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping("/updateSetupMiddleApplcUpdt")
public ResponseEntity<WnbtResponse> updateSetupMiddleApplcUpdt( SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOSetupMiddleApplcUpdt", siteVO),
ReplyFromResrc::getReply
);
}
/**
* 하단영역 수정
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping("/updateSetupFooterUpdt")
public ResponseEntity<WnbtResponse> updateSetupFooterUpdt(SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
log.debug("updateSetupFooterUpdt(siteVO = {})", siteVO);
siteVO.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOFooterSetupUpdt", siteVO),
ReplyFromResrc::getReply
);
}
/**
* 스크립트영역 수정
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping("/updateScriptSetupUpdt")
public ResponseEntity<WnbtResponse> updateSetupScriptUpdt(SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
log.debug("updateSetupScriptUpdt(siteVO = {})", siteVO);
siteVO.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOScriptSetupUpdt", siteVO),
ReplyFromResrc::getReply
);
}
/**
* 상품그룹 등록
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping("/updateHeaderSetupUpdt")
public ResponseEntity<WnbtResponse> updateHeaderSetupUpdt( SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOHeaderSetupUpdt", siteVO),
ReplyFromResrc::getReply
);
}
/**
* 상품그룹 목록
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectGoodsGroupList")
public String selectGoodsGroupList(SetupGoodsgrpVO goodsGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
goodsGroup.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOGoodsGroupList", goodsGroup),
model,
"resultMap"
);
return "mngr/setup/site/GoodsGroupListR";
}
/**
* 상품그룹 상품 목록 조회
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectGroupGoodsListIniqre")
public String selectGroupGoodsListIniqre(SetupGoodsgrpVO goodsGroup, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
goodsGroup.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOGroupGoodsListIniqre", goodsGroup),
model,
"resultMap"
);
return "mngr/setup/site/SiteHeaderPopularGoodsListR";
}
/**
* 상품그룹 등록 화면
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectGoodsGroupForm")
public String selectGoodsGroupForm(SetupGoodsgrpVO goodsGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
goodsGroup.setSopmalCd(authSopmalCd);
JSONObject jo = new JSONObject();
jo.put("BOGoodsgrpVO", goodsGroup);
model.addAttribute("resultMap", BoResultMapConverter.convert(new ObjectMapper(), String.valueOf(jo)));
return "mngr/setup/site/GoodsGroupC";
}
/**
* 상품그룹 등록
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping("/insertGoodsGroup")
public ResponseEntity<WnbtResponse> insertGoodsGroup(@Validated SetupGoodsgrpVO goodsGroup,
BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
goodsGroup.setSopmalCd(authSopmalCd);
//입력값 정합성 점검결과 처리
if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/insertBOGoodsGroup", goodsGroup),
ReplyFromResrc::getReply
);
}
/**
* 상품그룹 수정 폼
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectGoodsGroupDtlForm")
public String selectGoodsGroupDtlForm(SetupGoodsgrpVO goodsGroup,
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
goodsGroup.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOGoodsGroupDtlForm", goodsGroup),
model,
"resultMap"
);
return "mngr/setup/site/GoodsGroupDtlU";
}
/**
* 상품그룹 수정
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping("/updateGoodsGroupDtl")
public ResponseEntity<WnbtResponse> updateGoodsGroupDtl(@Validated SetupGoodsgrpVO goodsGroup,
BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
goodsGroup.setSopmalCd(authSopmalCd);
//입력값 정합성 점검결과 처리
if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOGoodsGroupDtl", goodsGroup),
ReplyFromResrc::getReply
);
}
/**
* 상품그룹 삭제
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping("/deleteGoodsGroup")
public ResponseEntity<WnbtResponse> deleteGoodsGroup(SetupGoodsgrpVO goodsGroup, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
goodsGroup.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/deleteBOGoodsGroup", goodsGroup),
ReplyFromResrc::getReply
);
}
/**
* 상단 로고 수정
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateLogoImage")
public ResponseEntity<WnbtResponse> updateLogoImage( SetupSiteVO siteVO, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
log.debug("logo update vo : {}", siteVO);
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
request.setAttribute("shopCd", siteVO.getSopmalCd()); // 쇼핑몰 코드
request.setAttribute("pathGubun", "ETCM"); // 메뉴구분코드
try {
ulpladFileMap = filestore.fileUpload(request);
} catch (WnbtRestException wre){
throw new WnbtRestException(wre.getMessage());
} catch (Exception e) {
throw new WnbtRestException("파일 업로드에 실패했습니다." + e.getMessage());
}
siteVO.setFileInfo(ulpladFileMap);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOHeaderSetupLogoUpdt", siteVO),
ReplyFromResrc::getReply
);
}
/**
* GNB 타입 저장
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateGNBType" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> updateGNBType( SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
log.debug("gnb type update vo : {}", siteVO);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOHeaderSetupTempUpdt", siteVO),
ReplyFromResrc::getReply
);
}
/**
* 인기 상품 그룹 차트변동 저장
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateRltmPopularGoods" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> updateRltmPopularGoods( SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
log.debug("popul srch update vo : {}", siteVO);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBORltmPopularGoods", siteVO),
ReplyFromResrc::getReply
);
}
/**
* 인기 검색어 저장
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updatePopularSrchwrd" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> updatePopularSrchwrd( SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
log.debug("popul srch update vo : {}", siteVO);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOPopularSrchwrd", siteVO),
ReplyFromResrc::getReply
);
}
/**
* 메인페이지 관리
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectSiteContentManageForm")
public String selectSiteContentManageForm(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOSiteContentManageForm", siteVO),
model,
"resultMap"
);
log.debug("resultMapresultMapresultMap {}", model.getAttribute("resultMap"));
return "mngr/setup/site/SiteContentManageU";
}
/**
* 롤링배너 , 띠배너 설정 팝업
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBannerSetupPopup")
public String selectBannerSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO),
model,
"resultMap"
);
log.debug("modeldatares {}", model.getAttribute("resultMap"));
return "mngr/setup/site/SiteContentBannerPopup";
}
/**
* 브랜드 소개 설정 팝업
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBrandIntroSetupPopup")
public String selectBrandIntroSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO),
model,
"resultMap"
);
return "mngr/setup/site/SiteContentBrandPopup";
}
/**
* 상품 그룹별 설정 팝업
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectGroupTySetupPopup")
public String selectGroupTySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO),
model,
"resultMap"
);
return "mngr/setup/site/SiteContentGoodsGroupPopup";
}
/**
* 상품 카테고리별 설정 팝업
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectCtgryTySetupPopup")
public String selectCtgryTySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO),
model,
"resultMap"
);
return "mngr/setup/site/SiteContentGoodsCategoryPopup";
}
/**
* 상품 이미지 설정 팝업
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectImgTySetupPopup")
public String selectImgTySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO),
model,
"resultMap"
);
return "mngr/setup/site/SiteContentGoodsImgPopup";
}
/**
* 상품 URL 별 설정 팝업
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectURLTySetupPopup")
public String selectURLTySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO),
model,
"resultMap"
);
return "mngr/setup/site/SiteContentGoodsUrlPopup";
}
/**
* 상품 2 x 2 타입 설정 팝업
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/select2by2TySetupPopup")
public String select2by2TySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO),
model,
"resultMap"
);
return "mngr/setup/site/SiteContentGoods2TyPopup";
}
/**
* 상품 4열 설정 팝업
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/select4TySetupPopup")
public String select4TySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO),
model,
"resultMap"
);
return "mngr/setup/site/SiteContentGoods4TyPopup";
}
/**
* 타임세일 설정 팝업
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectTmeDscntSetupPopup")
public String selectTmeDscntSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO),
model,
"resultMap"
);
return "mngr/setup/site/SiteContentTmeDscntPopup";
}
/**
* 게시글 설정 팝업 : 베스트리뷰, 매거진
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBbscttSetupPopup")
public String selectBbscttSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO),
model,
"resultMap"
);
return "mngr/setup/site/SiteContentBbscttPopup";
}
/**
* FAQ 설정 팝업
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectFasSetupPopup")
public String selectFasSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO),
model,
"resultMap"
);
return "mngr/setup/site/SiteContentFaqPopup";
}
/**
* 인스타그램 설정 팝업
* @param siteVO
* @param model
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectInstaSetupPopup")
public String selectInstaSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO),
model,
"resultMap"
);
return "mngr/setup/site/SiteContentSnsPopup";
}
/**
* 사이트관리(메인) 설정 저장
* @param siteVO
* @param bindingResult
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateSiteContentManage" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> updateSiteContentManage( SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
log.debug("siteVO : {}", siteVO);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOSiteContentManage", siteVO),
ReplyFromResrc::getReply
);
}
/**
* 사이트관리(메인) 설정 항목 저장
* @param siteVO
* @param bindingResult
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateSiteContentItemManage" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> updateSiteContentItemManage( SetupSiteVO siteVO, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
log.debug("siteVO : {}", siteVO);
List<HashMap<String, Object>> ulpladFileMapItm = new ArrayList<HashMap<String, Object>>();
request.setAttribute("shopCd", siteVO.getSopmalCd());
request.setAttribute("pathGubun", "ETCM");
ulpladFileMapItm = filestore.fileUpload(request);
log.debug("설정 항목 저장 (팝업) 항목별 ulpladFileMapItm is {}", ulpladFileMapItm);
int fileIndex = 0;
for (SetupContentsItemVO tempItmVO : siteVO.getSetupContentsItemList()) {
log.debug("fileAt 값 확인 : {}", tempItmVO.getFileAt());
if (tempItmVO.getFileAt() != null && "1".equals(tempItmVO.getFileAt()) && fileIndex < ulpladFileMapItm.size()) {
HashMap<String, Object> fileInfo = ulpladFileMapItm.get(fileIndex);
List<HashMap<String, Object>> fileInfoList = new ArrayList<>();
fileInfoList.add(fileInfo);
tempItmVO.setFileInfo(fileInfoList);
fileIndex++;
log.debug("설정 항목 저장 (팝업) 항목별 tempItmVO is {}", tempItmVO);
} else if ( tempItmVO.getFileAt() != null && "0".equals(tempItmVO.getFileAt())) {
List<HashMap<String, Object>> fileInfoList = new ArrayList<>();
fileInfoList.add(null);
tempItmVO.setFileInfo(null);
log.debug("tempItmVO.setFileInfo : {}", tempItmVO.getFileInfo());
}
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOSiteContentItemManage", siteVO),
ReplyFromResrc::getReply
);
}
/**
* 메인화면 구성 추가
* @param siteVO
* @param bindingResult
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/insertSiteContentsItemRegist" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> insertSiteContentsItemRegist( SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
siteVO.setSopmalCd(authSopmalCd);
log.debug("siteVO : {}", siteVO);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/insertBOSiteContentsItemRegist", siteVO),
ReplyFromResrc::getReply
);
}
/**
* 메인 설정 사이트 미리보기
* @param
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectSitePrevew" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> selectSitePrevew( @CookieValue(value = "authSopmalCd") String authSopmalCd) {
SetupSiteVO vo = new SetupSiteVO();
vo.setSopmalCd(authSopmalCd);
log.debug("selectSitePrevew(vo = {})", vo);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOSitePrevew", vo),
ReplyFromResrc::getReply
);
}
/**
* temp하단설정
* @param
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectSiteFooter")
public String selectSiteFooter(ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
SetupSiteVO siteVO = new SetupSiteVO();
siteVO.setSopmalCd(authSopmalCd);
model.addAttribute("sopmalCd",siteVO.getSopmalCd());
return "mngr/setup/site/tempFooter";
}
}

View File

@@ -0,0 +1,159 @@
package com.wb.domainserver.domain.mngr.setup.site.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
* 메인설정 VO
* @author 추지훈
* @since 2024-03-18
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2024-03-18 추지훈 최초 생성
*
* </pre>
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class PopularChngGoodsVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/** 상품 고유번호 */
private String goodsInnb;
/** 쇼핑몰 코드 */
private String sopmalCd;
/** 메인설정 고유번호(PK) */
private Integer mainSetupInnb;
/** 상품그룹 고유번호(FK) */
private Integer goodsGroupInnb;
/** 상품노출정보 고유번호 */
private Integer goodsExpsrInfoInnb;
/** 게시판ID */
private String bbsId;
/** 영역구분코드 */
private String relmDvCd;
/** 영역구분 */
private String relmDv;
/** 컨텐츠 노출코드 */
private String cnExpsrCd;
/** 상단 로고 파일 고유번호 */
private String upendLogoFilInnb;
/** GNB 타입 코드 */
private String gnbTyCd;
/** 영역설명 */
private String relmDc;
/** 메인 제목 */
private String mainSj;
/** SUB 제목 */
private String subSj;
/** 메인 제목2 */
private String mainRghtSj;
/** SUB 제목2 */
private String subRghtSj;
/** 이미지 고유번호? 이거 이미지 경로로 바꿔야함 */
private String imgInnb;
/** 메인 설명 */
private String mainDc;
/** SUB 설명 */
private String subDc;
/** 연결 URL */
private String cnncUrl;
/** 고객센터 메인 제목 */
private String cscMainSj;
/** 고객센터 전화번호 */
private String cscTelnb;
/** 고객센터 운영시간 */
private String cscOperTme;
/** 점심시간 */
private String cscLunchTme;
/** 휴무일 */
private String hvofDay;
/** 하단관리설정구분 */
private String lptManageSetupDv;
/** 통신판매업 노출여부 */
private String mobExpsrAt;
/** 통신판매업 신고번호 */
private String mobDclNb;
/** 기타내용 */
private String etcCn;
/** 하단로고 파일 고유번호 */
private String lptLogoFilInnb;
/** 임시저장 여부 */
private String tempAt;
// 상품그룹 판매상품
/** 인기 변경 구분 */
private String popularChngDv;
/** 노출순서 */
private String expsrOrdr;
}

View File

@@ -0,0 +1,188 @@
package com.wb.domainserver.domain.mngr.setup.site.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.HashMap;
import java.util.List;
/**
*
* 메인설정 VO
* @author 추지훈
* @since 2024-03-18
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2024-03-18 추지훈 최초 생성
*
* </pre>
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SetupContentsItemVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/** 쇼핑몰 코드 */
private String sopmalCd;
/** 메인설정 고유번호(PK) */
private Integer mainSetupInnb;
/** 상품그룹 고유번호(FK) */
private Integer goodsGroupInnb;
/** 상품노출정보 고유번호 */
private String goodsExpsrInfoInnb;
/** 게시판ID */
private String bbsId;
/** 영역구분코드 */
private String relmDvCd;
/** 영역구분 */
private String relmDv;
/** 메인 제목 */
private String mainSj;
/** SUB 제목 */
private String subSj;
/** 항목 메인 제목 */
private String itemMainSj;
/** 항목 SUB 제목 */
private String itemSubSj;
/** 항목 메인 설명 */
private String itemMainDc;
/** 항목 서브 설명 */
private String itemSubDc;
/** 이미지 고유번호? 이거 이미지 경로로 바꿔야함 */
private String imgInnb;
/** 메인 설명 */
private String mainDc;
/** SUB 설명 */
private String subDc;
/** 연결 URL */
private String cnncUrl;
/** 고객센터 메인 제목 */
private String cscMainSj;
/** 고객센터 전화번호 */
private String cscTelnb;
/** 고객센터 운영시간 */
private String cscOperTme;
/** 점심시간 */
private String cscLunchTme;
/** 휴무일 */
private String hvofDay;
/** 무료수신거부번호 */
private String freeRecptnRejectNb;
/** 하단관리설정구분 */
private String lptManageSetupDvCd;
/** 통신판매업 노출여부 */
private String mobExpsrAt;
/** 통신판매업 신고번호 */
private String mobDclNb;
/** 기타내용 */
private String etcCn;
/** 하단로고 파일 고유번호 */
private String lptLogoFilInnb;
/** 임시저장 여부 */
private String tempAt;
/** 메인 설정 컨텐츠 항목 삭제 리스트 */
private String[] deleteContentsItemList;
/** 메인설정 항목 고유번호 */
private Integer mainSetupItemInnb;
/** 이벤트 고유번호 */
private Integer evtInnb;
/** 카에고리 ID */
private Integer ctgryId;
/** 상품그룹고유번호 */
private Integer itemGoodsGroupInnb;
/** 게시글고유번호 */
private Integer bbsCttInnb ;
/** 배너정보 파일 고유번호 */
private Integer bannerInfoFilInnb;
/** 연결URL */
private String itmeCnncUrl;
/** 이미지 고유번호 ? 이미지 경로해야하는거 아닌가 */
private String itmeImg;
/** 순서 */
private String ordr;
/** 플랫폼 구분 */
private String pltfomDv;
/** 계정 */
private String acnt;
/** 토큰 */
private String tken;
/** 파일업로드 */
/** 파일정보 */
private List<HashMap<String, Object>> fileInfo;
/** 원본파일명 */
private String orginlFilNm;
/** 시스템파일명 */
private String sysFilNm;
/** 파일크기 */
private long filMg;
/** 파일타입(확장자) */
private String filTy;
/** 파일경로 */
private String filCours;
/** 파일 여부 */
private String fileAt;
}

View File

@@ -0,0 +1,175 @@
package com.wb.domainserver.domain.mngr.setup.site.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
*
* 메인설정 VO
* @author 추지훈
* @since 2024-03-18
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2024-03-18 추지훈 최초 생성
*
* </pre>
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SetupContentsVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/** 메인화면 설정 고유번호 */
private Integer mainSiteInnb;
/** 리턴 받을 고유번호 - 머지문에 사용 */
private Integer seq;
/** 쇼핑몰 코드 */
private String sopmalCd;
/** 메인설정 고유번호(PK) */
private Integer mainSetupInnb;
/** 상품그룹 고유번호(FK) */
private Integer goodsGroupInnb;
/** 상품노출정보 고유번호 */
private Integer goodsExpsrInfoInnb;
/** 게시판ID */
private String bbsId;
/** 영역구분코드 */
private String relmDvCd;
/** 영역구분 */
private String relmDv;
/** 컨텐츠 노출코드 */
private String cnExpsrCd;
/** 상단 로고 파일 고유번호 */
private String upendLogoFilInnb;
/** GNB 타입 코드 */
private String gnbTyCd;
/** 영역설명 */
private String relmDc;
/** 메인 제목 */
private String mainSj;
/** SUB 제목 */
private String subSj;
/** 메인 제목2 */
private String mainRghtSj;
/** SUB 제목2 */
private String subRghtSj;
/** 이미지 고유번호? 이거 이미지 경로로 바꿔야함 */
private String imgInnb;
/** 메인 설명 */
private String mainDc;
/** SUB 설명 */
private String subDc;
/** 연결 URL */
private String cnncUrl;
/** 고객센터 메인 제목 */
private String cscMainSj;
/** 고객센터 전화번호 */
private String cscTelnb;
/** 고객센터 운영시간 */
private String cscOperTme;
/** 점심시간 */
private String cscLunchTme;
/** 휴무일 */
private String hvofDay;
/** 하단관리설정구분 */
private String lptManageSetupDvCd;
/** 통신판매업 노출여부 */
private String mobExpsrAt;
/** 통신판매업 신고번호 */
private String mobDclNb;
/** 기타내용 */
private String etcCn;
/** 하단로고 파일 고유번호 */
private String lptLogoFilInnb;
/** 메인 설정 컨텐츠 항목 */
private List<SetupContentsItemVO> setupContentsItemList;
/** 메인 설정 컨텐츠 항목 삭제 대상 */
private Integer deleteItemInnb;
/** 메인설정 항목 고유번호 */
private Integer mainSetupItemInnb;
/** 이벤트 고유번호 */
private Integer evtInnb;
/** 카에고리 ID */
private Integer ctgryId;
/** 상품그룹고유번호 */
private Integer itemGoodsGroupInnb;
/** 게시글고유번호 */
private Integer bbsCttInnb;
/** 연결URL */
private String itmeCnncUrl;
/** 이미지 고유번호 ? 이미지 경로해야하는거 아닌가 */
private String itmeImgInnb;
/** 순서 */
private String ordr;
/*이미지노출구분코드*/
private String imgExpsrDvCd;
}

View File

@@ -0,0 +1,29 @@
package com.wb.domainserver.domain.mngr.setup.site.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class SetupGoodsgrpVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/** 상품그룹 고유번호 */
private Integer goodsGroupInnb;
/** 상품그룹명 */
@NotBlank(message = "상품그룹명(명칭)")
private String goodsGroupNm;
/** 쇼핑몰코드 */
private String sopmalCd;
/** 상품 그룹 리스트 */
private String[] goodsIds;
/** 모든 상품 업데이트 여부 (삭제)
private String allGoodsUpt; */
}

View File

@@ -0,0 +1,262 @@
package com.wb.domainserver.domain.mngr.setup.site.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.HashMap;
import java.util.List;
/**
*
* 메인설정 VO
* @author 추지훈
* @since 2024-03-18
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2024-03-18 추지훈 최초 생성
*
* </pre>
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SetupSiteVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/** 하단_내용 */
private String footerCn;
/** 메인화면 설정 고유번호 */
private Integer mainSiteInnb;
/** 메인화면 설정 구분 : 01 상/하단 02 중단 */
private String setupDvCd;
/** 메인화면 중단 설정 명 */
@NotBlank(message = "메인화면 설정 명")
private String mainSiteNm;
/** 리턴 받을 고유번호 - 머지문에 사용 */
private Integer seq;
/** 상품 고유번호 */
private String goodsInnb;
/** 쇼핑몰 코드 */
private String sopmalCd;
/** 메인설정 고유번호(PK) */
private Integer mainSetupInnb;
/** 상품그룹 고유번호(FK) */
private Integer goodsGroupInnb;
/** 상품노출정보 고유번호 */
private Integer goodsExpsrInfoInnb;
/** 게시판ID */
private String bbsId;
/** 영역구분코드 */
private String relmDvCd;
/** 영역구분 */
private String relmDv;
/** 상단 로고 파일 고유번호 */
private String upendLogoFilInnb;
/** GNB 타입 코드 */
private String gnbTyCd;
/** 영역설명 */
private String relmDc;
/** 메인 제목 */
private String mainSj;
/** SUB 제목 */
private String subSj;
/** 메인 제목2 */
private String mainRghtSj;
/** SUB 제목2 */
private String subRghtSj;
/** 이미지 고유번호? 이거 이미지 경로로 바꿔야함 */
private String imgInnb;
/** 메인 설명 */
private String mainDc;
/** SUB 설명 */
private String subDc;
/** 하단관리설정구분 */
private String lptManageSetupDvCd;
/** 통신판매업 노출여부 */
private String mobExpsrAt;
/** 통신판매업 신고번호 */
private String mobDclNb;
/** 기타내용 */
private String etcCn;
/** 하단로고 파일 고유번호 */
private String lptLogoFilInnb;
/** 임시저장 여부 */
private String tempAt;
/** 메인화면 컨텐츠 VO */
private List<SetupContentsVO> middleContentsList;
/** 메인화면 컨텐츠 항목 VO */
private List<SetupContentsItemVO> setupContentsItemList;
/** 메인화면 컨텐츠 삭제 */
private String[] deleteContentsList;
/** 메인 설정 컨텐츠 삭제 대상 */
private Integer deleteInnb;
/** 메인 설정 컨텐츠 항목 삭제 리스트 */
private String[] deleteContentsItemList;
/** 메인 설정 컨텐츠 항목 삭제 대상 */
private Integer deleteItemInnb;
/** 상품그룹고유번호 */
private Integer itemGoodsGroupInnb;
/** 게시글고유번호 */
private Integer bbsCttInnb ;
/** 배너정보 파일 고유번호 */
private Integer bannerInfoFilInnb;
/** 연결URL */
private String itmeCnncUrl;
/** 순서 */
private String ordr;
// 상품그룹 판매상품
/** 인기 변경 구분 */
private String popularChngDv;
/** 노출순서 */
private String expsrOrdr;
/** 상품 그룹 판매 상품 리스트 */
private List<PopularChngGoodsVO> popuylarChngGoodsList;
/** 파일업로드 */
/** 원본파일명 */
private String orginlFilNm;
/** 시스템파일명 */
private String sysFilNm;
/** 파일크기 */
private long filMg;
/** 파일타입(확장자) */
private String filTy;
/** 파일경로 */
private String filCours;
// 인기 검색어
/** 인기 검색어 고유번호 */
private Integer popularSrchwrdInnb;
/** 인기 검색어 배열 */
private String[] popularSrchwrdArr;
/** 인기 검색어 */
private String popularSrchwrd;
/** 팝업 선택 히든 td 아이디 */
private String relmTdId;
/** 파일 정보 */
private List<HashMap<String, Object>> fileInfo;
/** 상단_원본파일명 */
private String topOrginlFilNm;
/** 상단_시스템파일명 */
private String topSysFilNm;
/** 상단_파일크기 */
private long topFilMg;
/** 상단_파일타입(확장자) */
private String topFilTy;
/** 상단_파일경로 */
private String topFilCours;
/** 하단_원본파일명 */
private String footerOrginlFilNm;
/*스크립트 내용*/
private String scriptCn;
/*스크립트 내용 사용 여부*/
private String scriptCnUseAt;
}