초기소스
This commit is contained in:
@@ -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
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.wb.domainserver.domain.mngr.setup.dlvygrp.vo;
|
||||
|
||||
public enum UseAt {
|
||||
Y,N
|
||||
}
|
||||
@@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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";}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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; */
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user