초기소스
This commit is contained in:
@@ -0,0 +1,255 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.banner.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.goods.banner.vo.BannerVO;
|
||||
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.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.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RequestMapping("/mngr/goods/banner")
|
||||
public class BannerController {
|
||||
|
||||
@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="/selectBannerListR")
|
||||
public String selectBannerListR(BannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/banner/BannerListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 배너등록페이지이동
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBannerRegistForm")
|
||||
public String selectBannerRegistForm(BannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerRegistForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/banner/BannerC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 배너 등록
|
||||
* @param vo
|
||||
* @param model
|
||||
* @param bindingResult
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertBanner" , method = RequestMethod.POST)
|
||||
public ResponseEntity<?> insertBanner(@Validated BannerVO vo, BindingResult bindingResult,
|
||||
HttpServletRequest request,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
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) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/insertBOBanner", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 배너수정페이지 및 상세조회
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBannerDtlForm" , method = RequestMethod.POST)
|
||||
public String selectBannerDtlForm(BannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerDtlForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
|
||||
return "mngr/goods/banner/BannerDtlU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 배너 수정
|
||||
* @param vo
|
||||
* @param model
|
||||
* @param bindingResult
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateBannerDtl")
|
||||
public ResponseEntity<?> updateBannerDtl(@Validated BannerVO vo, BindingResult bindingResult, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
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) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/updateBOBannerDtl", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 배너삭제
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/deleteBanner" , method = RequestMethod.POST)
|
||||
public ResponseEntity<?> deleteBanner(BannerVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/deleteBOBanner", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 배너 순서 지정 팝업
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBannerOrdrPopup" , method = RequestMethod.POST)
|
||||
public String selectBannerOrdrPopup(BannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerOrdrPopup", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
|
||||
return "mngr/goods/banner/BannerOrdrPopupR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 배너 순서 수정
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateBannerOrdr" , method = RequestMethod.POST)
|
||||
public ResponseEntity<?> updateBannerOrdr( @RequestBody List<BannerVO> vo,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
for(BannerVO bannerVO : vo){
|
||||
bannerVO.setSopmalCd(authSopmalCd);
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/updateBOBannerOrdr", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.banner.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;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BannerVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** table name : fm_goods_banner */
|
||||
/** 배너 key */
|
||||
private Integer bannerInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 배너 명 */
|
||||
@NotBlank(message = "배너명")
|
||||
private String bannerNm;
|
||||
/** 노출위치구분 */
|
||||
private String expsrlcDv;
|
||||
/** 노출구분 */
|
||||
private String expsrlcDvCd;
|
||||
/** 배너 경로 */
|
||||
private String bannerUrl;
|
||||
/** 노출시작일시 */
|
||||
private String expsrBgnDt;
|
||||
/** 노출종료일시 */
|
||||
private String expsrEndDt;
|
||||
/** 원본파일명 */
|
||||
private String orginlFilNm;
|
||||
/** 시스템파일명 */
|
||||
private String sysFilNm;
|
||||
/** 파일용량 */
|
||||
private String filMg;
|
||||
/** 파일타입 */
|
||||
private String filTy;
|
||||
/** 파일경로 */
|
||||
private String filCours;
|
||||
/** 파일정보 */
|
||||
private List<HashMap<String, Object>> fileInfo;
|
||||
|
||||
|
||||
/** 추가 항목 */
|
||||
/** 상품리스트 */
|
||||
private String[] goodsIds;
|
||||
/** 상품 갯수 */
|
||||
private String goodsCnt;
|
||||
/** 파일 사용 상태값 */
|
||||
private String fileUse;
|
||||
/** 노출 예약 시작 날짜 */
|
||||
private String expsrBgnYmd;
|
||||
/** 노출 예약 종료 날짜 */
|
||||
private String expsrEndYmd;
|
||||
/** 노출 예약 시작 시각 */
|
||||
private String expsrBgnTime;
|
||||
/** 노출 예약 종료 시각 */
|
||||
private String expsrEndTime;
|
||||
|
||||
|
||||
// 이벤트 적용 상품
|
||||
/** 상품 적용 구분 코드 */
|
||||
private String goodsApplcDvCd;
|
||||
/** 선택한 카테고리 */
|
||||
private String[] reprsntCtgryId;
|
||||
/** 선택한 상품 */
|
||||
private String[] relatedGoodsId;
|
||||
/** 상품 고유번호 */
|
||||
private String goodsInnb;
|
||||
|
||||
|
||||
/** 이벤트 적용상품 고유번호 */
|
||||
private Integer evtApplcGoodsInnb;
|
||||
/** 상품적용구분 */
|
||||
private String goodsApplcDv;
|
||||
/** 판매상품 고유번호 */
|
||||
private Integer sleGoodsInnb;
|
||||
/** 혜택 적용 판매상품 고유번호 리스트 */
|
||||
private List<Integer> sleGoodsInnbList;
|
||||
/** 혜택 제외 판매상품 고유번호 리스트 */
|
||||
private List<Integer> ExclSleGoodsInnbList;
|
||||
/** 카테고리 ID */
|
||||
private String ctgryId;
|
||||
/** 혜택 적용 카테고리 ID 리스트 */
|
||||
private List<Integer> ctgryIdList;
|
||||
/** 혜택 제외 카테고리 ID 리스트 */
|
||||
private List<Integer> ExclCtgryIdList;
|
||||
/** 상위 카테고리 */
|
||||
private String upperCtgryId;
|
||||
/*배너순서*/
|
||||
private String bannerOrdr;
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.cmnuse.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.goods.cmnuse.vo.CmnuseVO;
|
||||
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 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.web.bind.annotation.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
/**
|
||||
* Cmnuse Controller Class (front)
|
||||
*
|
||||
* @author
|
||||
* @since 2024-02-10
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2023-12-10 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Controller
|
||||
@Slf4j
|
||||
@RequestMapping("/mngr/goods/cmnuse")
|
||||
public class CmnuseController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
|
||||
/**
|
||||
* 공용 정보 목록 조회
|
||||
* @param CmnuseVO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectCmnuseInfoList")
|
||||
public String selectCmnuseInfoList(CmnuseVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/selectBOCmnuseInfoList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/cmnuse/CmnuseInfoListR";
|
||||
}
|
||||
/**
|
||||
* 공용 정보 등록
|
||||
* @param CmnuseVO
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertCmnuseInfo" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertCmnuseInfo(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/insertBOCmnuseInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
/**
|
||||
* 공용 정보 등록 화면 조회
|
||||
* @param CmnuseVO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectCmnuseInfoForm")
|
||||
public String selectCmnuseInfoForm(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return "mngr/goods/cmnuse/CmnuseInfoFormR";
|
||||
}
|
||||
/**
|
||||
* 공용 정보 수정
|
||||
* @param CmnuseVO
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateCmnuseInfoDtl", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateCmnuseInfoDtl(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/updateBOCmnuseInfoDtl", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
/**
|
||||
* 공용 정보 수정 화면 조회
|
||||
* @param CmnuseVO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectCmnuseInfoDtlForm")
|
||||
public String selectCmnuseInfoDtlForm(CmnuseVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/selectBOCmnuseInfoDtlForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
|
||||
return "mngr/goods/cmnuse/CmnuseInfoDtlFormR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 공용 정보 삭제
|
||||
* @param CmnuseVO
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/deleteCmnuseInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> deleteCmnuseInfo(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/deleteBOCmnuseInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.cmnuse.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class CmnuseVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 공용정보 고유번호 */
|
||||
private String cmnuseInfoInnb;
|
||||
/** 버전번호 */
|
||||
private String verNb;
|
||||
/** 사업자 고유번호 */
|
||||
private String bsnmInnb;
|
||||
/** 공용정보 타이틀 */
|
||||
private String cmnuseInfoSj;
|
||||
/** 정보내용 */
|
||||
private String infoCn;
|
||||
/** 사용여부 */
|
||||
private String useAt;
|
||||
|
||||
/** 쇼핑몰 코드 */
|
||||
private String sopmalCd;
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsinfo.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.goods.goodsinfo.vo.GoodsInfoVO;
|
||||
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.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
/**
|
||||
* GoodsInfoController Controller Class (front)
|
||||
*
|
||||
* @author
|
||||
* @since 2023-12-12
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2023-12-12 최범식 최초 생성
|
||||
* 2024-02-14 이운산 상품정보수정선택 수정
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RequestMapping("/mngr/goods/goodsinfo")
|
||||
public class GoodsInfoController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/**
|
||||
* 상품 정보 목록 조회
|
||||
* @param GoodsInfoVO
|
||||
* @return GoodsInfoListR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectGoodsInfoList")
|
||||
public String selectBbsListInqire(GoodsInfoVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/selectBOGoodsInfoList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsinfo/GoodsInfoListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 정보 등록화면
|
||||
* @param GoodsInfoVO
|
||||
* @return GoodsInfoFormR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectGoodsInfoForm")
|
||||
public String selectGoodsInfoForm(GoodsInfoVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
model.addAttribute("goodsExpsrInfoInnb", vo.getGoodsExpsrInfoInnb());
|
||||
|
||||
return "mngr/goods/goodsinfo/GoodsInfoFormR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 정보 등록
|
||||
* @param GoodsInfoVO
|
||||
* @param bindingResult 바인딩 및 정합성 점검결과 객체
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertGoodsInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertGoodsInfo(@Validated GoodsInfoVO vo, BindingResult bindingResult,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/insertBOGoodsInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 정보 수정화면
|
||||
* @param GoodsInfoVO
|
||||
* @param model 모델객체
|
||||
* @return GoodsInfoDtlFormR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectGoodsInfoDtlForm")
|
||||
public String selectGoodsInfoDtlForm(GoodsInfoVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/selectBOGoodsInfoDtlForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsinfo/GoodsInfoDtlFormR";
|
||||
}
|
||||
/**
|
||||
* 상품 정보 수정
|
||||
* @param GoodsInfoVO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateGoodsInfoDtl")
|
||||
public ResponseEntity<WnbtResponse> updateGoodsInfoDtl(@Validated GoodsInfoVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/updateBOGoodsInfoDtl", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 정보 삭제
|
||||
* @param GoodsInfoVO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/deleteGoodsInfo")
|
||||
public ResponseEntity<WnbtResponse> deleteGoodsInfo(GoodsInfoVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/updateBOGoodsInfoDel", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsinfo.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsInfoVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 상품노출정보 고유번호 */
|
||||
private String goodsExpsrInfoInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 상품정보설정 제목 */
|
||||
@NotBlank(message = "상품 정보명")
|
||||
private String goodsInfoSetupSj;
|
||||
/** 상품명노출여부 */
|
||||
private String goodsNmExpsrAt;
|
||||
/** 상품명노출순서 */
|
||||
private String goodsNmExpsrOrdr;
|
||||
/** 대표설명노출여부 */
|
||||
private String reprsntDcExpsrAt;
|
||||
/** 대표설명노출순서 */
|
||||
private String reprsntDcExpsrOrdr;
|
||||
/** 가격노출여부 */
|
||||
private String pricExpsrAt;
|
||||
/** 가격노출순서 */
|
||||
private String pricExpsrOrdr;
|
||||
/** 배송노출여부 */
|
||||
private String dlvyExpsrAt;
|
||||
/** 배송노출순서 */
|
||||
private String dlvyExpsrOrdr;
|
||||
/** 리뷰 평점 노출여부 */
|
||||
private String rvwEvlScreExpsrAt;
|
||||
/** 리뷰 평점 노출순서 */
|
||||
private String rvwEvlScreExpsrOrdr;
|
||||
/** 아이콘 노출여부 */
|
||||
private String iconExpsrAt;
|
||||
/** 아이콘 노출순서 */
|
||||
private String iconExpsrOrdr;
|
||||
/** 사용여부 */
|
||||
private String useAt;
|
||||
/** 순서 DB 저장용도 아님*/
|
||||
private String[] sortOrdr;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,686 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.goods.goodsmngr.vo.GoodsmngrVO;
|
||||
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.file.service.FileStorageService;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
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.web.bind.annotation.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
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;
|
||||
|
||||
/**
|
||||
* GoodsmngrController Controller Class (front)
|
||||
*
|
||||
* @author
|
||||
* @since 2024-03-19
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-03-19 리브가 최초 생성
|
||||
* -
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Controller
|
||||
@Slf4j
|
||||
@RequestMapping("/mngr/goods/goodsmngr")
|
||||
public class GoodsmngrController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
/** 파일 업로드 */
|
||||
@Autowired
|
||||
private FileStorageService filestore;
|
||||
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/**
|
||||
* 상품 목록 조회 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsListForm")
|
||||
public String selectGoodsListForm(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setUpperCtgryId("1");
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsListForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
return "mngr/goods/goodsmngr/GoodsListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 목록 조회 리스트
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsList")
|
||||
public String selectGoodsList(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsListR";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 카테고리별 상품 목록 조회 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectCtgryGoodsListForm")
|
||||
public String selectCtgryGoodsListForm(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setUpperCtgryId("1");
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsListForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
return "mngr/goods/goodsmngr/CtgryGoodsListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 카테고리별 상품 목록 조회 리스트
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectCtgryGoodsList")
|
||||
public String selectCtgryGoodsList(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOCtgryGoodsList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/CtgryGoodsListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 카테고리별 상품 목록 순서 수정
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateCtgryGoodsList")
|
||||
public ResponseEntity<WnbtResponse> updateCtgryGoodsList(@RequestBody GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOCtgryGoodsList", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 등록 폼 조회
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectGoodsRegistForm")
|
||||
public String selectGoodsRegistForm(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
vo.setUpperCtgryId("1");
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsListForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 등록
|
||||
* @param vo
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/insertGoodsInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertGoodsInfo(GoodsmngrVO vo, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
//파일 업로드 관련 START
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
|
||||
request.setAttribute("shopCd", vo.getSopmalCd());
|
||||
request.setAttribute("pathGubun","GDIG"); //이미지구분코드 - 상품
|
||||
|
||||
try {
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
vo.setFileInfo(ulpladFileMap);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
//파일 업로드 관련 END
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/insertBOGoods", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 삭제
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/deleteGoods", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> deleteGoods(GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/deleteBOGoods", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 상세 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsDtlForm")
|
||||
public String selectGoodsDtlForm( GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsDtl", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsDtlU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 수정(카테고리)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlCtgryLink", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlCtgryLink(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlCtgryLink", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 수정(기본정보)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlBscInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlBscInfo(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlBscInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 수정(판매정보)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlSelInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlSelInfo(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlSelInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 수정(판매정보 - 재고정책 수정에 따른 옵션 수량 변경)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlInvntryPolicyInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlInvntryPolicyInfo(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlInvntryPolicyInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 수정(구매대상자 제한 팝업)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlTrgterLmtt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlTrgterLmtt(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlTrgterLmtt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 수정(상품옵션정보)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlOptnInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlOptnInfo(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlOptnInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 수정(상품이미지)
|
||||
* @param vo
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlImg", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlImg(GoodsmngrVO vo, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
//파일 업로드 관련 START
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
|
||||
request.setAttribute("shopCd", vo.getSopmalCd());
|
||||
request.setAttribute("pathGubun","GDIG"); //이미지구분코드 - 상품
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
|
||||
try {
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
vo.setFileInfo(ulpladFileMap);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
//파일 업로드 관련 END
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlImg", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 상품 수정(기타정보)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlEtcInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlEtcInfo(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlEtcInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 상품 수정(관련상품)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlRelateGoods", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlRelateGoods(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlRelateGoods", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 > 상품 구매대상자 제한 설정 팝업 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping("/selectGoodsPurchaseLimttPopupC")
|
||||
public String selectGoodsPurchaseLimttPopupC(GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd,
|
||||
ModelMap model) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectGoodsPurchaseLimttPopupForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsPurchaseLimttPopupC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 > 상품 구매대상자 제한 설정 팝업 상세 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping("/selectGoodsPurchaseLimttPopupR")
|
||||
public String selectGoodsPurchaseLimttPopupR(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectGoodsPurchaseLimttPopupFormR", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsPurchaseLimttPopupR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 검색 팝업 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsSrchPopupForm")
|
||||
public String selectGoodsSrchPopupForm(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsListForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("paramVO", vo);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsSrchPopupForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 검색 팝업 리스트
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsSrchPopupList")
|
||||
public String selectGoodsSrchPopupList(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsSrchPopupListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 재고 확인 팝업
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsInvntryPopup")
|
||||
public String selectGoodsInvntryPopup(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectGoodsInvntry", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsInvntryPopup";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 관리자 변경이력 조회 (수정로그)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsLogDtl", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> selectGoodsLogDtl(@RequestBody GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsLogDtl", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 상품 복사 등록 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsCopyForm")
|
||||
public String selectGoodsCopyForm(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsCopyForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsCopyC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 일괄 업데이트 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBndeUpdtForm")
|
||||
public String selectBndeUpdtForm(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOBndeUpdtForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/BndeUpdtU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 일괄 업데이트
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateBndeUpdt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateBndeUpdt(GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOBndeUpdt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class CategoryLinkVO extends AbstractVO {
|
||||
|
||||
/** 카테고리연결상품고유번호 */
|
||||
private long ctgryGoodsEsntlNb;
|
||||
/** 상품고유번호 */
|
||||
private long goodsInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 카테고리ID */
|
||||
private long ctgryId;
|
||||
/** 대표카테고리여부 */
|
||||
private String reprsntCtgryAt;
|
||||
/** 상품순서 */
|
||||
private long goodsOrdr;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsAdditionVO extends AbstractVO {
|
||||
|
||||
/** 상품추가정보 고유번호 */
|
||||
private long goodsAditInfoInnb;
|
||||
/** 상품고유번호 */
|
||||
private long goodsInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 추가정보제목 */
|
||||
private String infoSj;
|
||||
/** 추가정보내용 */
|
||||
private String infoCn;
|
||||
/** 사용여부 */
|
||||
private String useAt;
|
||||
/** 노출시작일시 */
|
||||
private Date expsrBgnDt;
|
||||
/** 노출종료일시 */
|
||||
private Date expsrEndDt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsIconVO extends AbstractVO {
|
||||
|
||||
/** 상품아이콘 고유번호*/
|
||||
private long goodsIconInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 상품고유번호*/
|
||||
private long goodsInnb;
|
||||
/** 아이콘코드*/
|
||||
private String iconCd;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsImageVO extends AbstractVO {
|
||||
|
||||
/** 상품이미지 고유번호 */
|
||||
private long goodsImgInnb;
|
||||
/** 상품고유번호 */
|
||||
private long goodsInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 이미지종류 */
|
||||
private String imgKnd;
|
||||
/** 컷번호 */
|
||||
private long cutNb;
|
||||
/** 이미지경로 */
|
||||
private String img;
|
||||
/** 삭제 대상 이미지 고유번호 */
|
||||
private long delGoodsImgInnb;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsOptionVO extends AbstractVO {
|
||||
|
||||
/** 상품옵션 고유번호 */
|
||||
private Integer goodsOptnInnb;
|
||||
/** 옵션 유형 */
|
||||
private String optnTy;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 상품고유번호 */
|
||||
private long goodsInnb;
|
||||
/** 상품옵션그룹번호 */
|
||||
private Integer optnGroupNb;
|
||||
/** 옵션명 1 */
|
||||
private String optnNm1;
|
||||
/** 옵션명 2 */
|
||||
private String optnNm2;
|
||||
/** 옵션명 3 */
|
||||
private String optnNm3;
|
||||
/** 옵션명 4 */
|
||||
private String optnNm4;
|
||||
/** 옵션값 1 */
|
||||
private String optnVal1;
|
||||
/** 옵션값 2 */
|
||||
private String optnVal2;
|
||||
/** 옵션값 3 */
|
||||
private String optnVal3;
|
||||
/** 옵션값 4 */
|
||||
private String optnVal4;
|
||||
/** 옵션코드 1 */
|
||||
private String optnCd1;
|
||||
/** 옵션코드 2 */
|
||||
private String optnCd2;
|
||||
/** 옵션코드 3 */
|
||||
private String optnCd3;
|
||||
/** 옵션코드 4 */
|
||||
private String optnCd4;
|
||||
/** 옵션정보 */
|
||||
private String optnInfo;
|
||||
/** 재고수량 */
|
||||
private String invntryQy;
|
||||
/** 판매재고수량 */
|
||||
private String usefulInvntryQy;
|
||||
/** 소비자가 */
|
||||
private Integer cnsmrpric;
|
||||
/** 판매가 */
|
||||
private Integer slepric;
|
||||
/**마일리정책코드*/
|
||||
private String mlgPolicyCd;
|
||||
/** 마일리지적립구분코드 */
|
||||
private String mlgAccmlCd;
|
||||
/** 마일리지 적립금액 */
|
||||
private Integer mlgAccmlAmt;
|
||||
/** 마일리지 유효월수*/
|
||||
private Integer mlgValidMtCnt;
|
||||
/** 옵션관계번호 */
|
||||
private String optnRelateNb;
|
||||
/** 추가구성옵션 > 옵션관계여부 */
|
||||
private String optnRelateAt;
|
||||
/** 옵션노출여부 */
|
||||
private String optnExpsrAt;
|
||||
/** 기준구분여부 */
|
||||
private String stdrDvAt;
|
||||
/** 재고품절시 노출여부*/
|
||||
private String invntrySldoutExpsrAt;
|
||||
/** 옵션순서*/
|
||||
private Integer optnOrdr;
|
||||
/** 옵션필수여부 */
|
||||
private char optnEssntlAt;
|
||||
/*복수할인여부*/
|
||||
private String compnbDscntAt;
|
||||
/*구간할인여부*/
|
||||
private String sctnDscntAt;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsRelateVO extends AbstractVO {
|
||||
|
||||
/** 관련상품 고유번호 */
|
||||
private long relateGoodsInnb;
|
||||
/** 상품 고유번호 */
|
||||
private long goodsInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 관련 판매상품 고유번호 */
|
||||
private String relateSleGoodsInnb;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsTrgterLmttVO extends AbstractVO {
|
||||
|
||||
/** 구매대상자제한 고유번호 */
|
||||
private long goodsTrgterLmttInnb;
|
||||
/** 상품고유번호 */
|
||||
private long goodsInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 구매대상자제한 구분코드 */
|
||||
private String goodsTrgterDvCd;
|
||||
/** 회원등급 고유번호 */
|
||||
private long mbrGradInnb;
|
||||
/** 가격대체문구사용여부 */
|
||||
private String pricRplcWordsUseAt;
|
||||
/** 가격대체문구 */
|
||||
private String pricRplcWords;
|
||||
/** 가격대체문구링크URL */
|
||||
private String pricRplcLink;
|
||||
/** 가격대체문구링크 구분코드*/
|
||||
private String pricRplcLinkDvCd;
|
||||
/** 가격대체문구링크 연결창구분코드 */
|
||||
private String pricRplcLinkBrwsrDvCd;
|
||||
/** 버튼대체문구사용여부 */
|
||||
private String buttonRplcWordsUseAt;
|
||||
/** 버튼대체문구 */
|
||||
private String buttonRplcWords;
|
||||
/** 버튼대체문구링크URL */
|
||||
private String buttonRplcLink;
|
||||
/** 버튼대체문구링크 구분코드*/
|
||||
private String buttonRplcLinkDvCd;
|
||||
/** 버튼대체문구링크 연결창구분코드 */
|
||||
private String buttonRplcLinkBrwsrDvCd;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,523 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.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;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsmngrVO extends AbstractVO {
|
||||
|
||||
/*************************************
|
||||
* 상품 GOODS START
|
||||
* **********************************/
|
||||
/** 상품고유번호 */
|
||||
private String goodsInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 배송그룹 고유번호 */
|
||||
private String dlvyGroupInnb;
|
||||
/** 공용정보 고유번호 */
|
||||
private String cmnuseInfoInnb;
|
||||
/** 버전번호 */
|
||||
private long verNb;
|
||||
/** 사업자 고유번호 */
|
||||
private long bsnmInnb;
|
||||
/** 상품종류 */
|
||||
private String goodsKndCd;
|
||||
/** 상품코드 */
|
||||
private String goodsCd;
|
||||
/** 대표상품코드 */
|
||||
private String reprsntGoodsCd;
|
||||
/** 상품명 */
|
||||
@NotBlank(message = "상품명")
|
||||
private String goodsNm;
|
||||
/** 입점상품명 */
|
||||
private String tentMarktGoodsNm;
|
||||
/** 부가세 */
|
||||
private String taxAt;
|
||||
/** 상품상태 */
|
||||
private String goodsSttusCd;
|
||||
|
||||
/*판매중지상태시 사용자 문구변경여부*/
|
||||
private String selStpgeCustomWordsAt;
|
||||
|
||||
/*판매중지상태시 사용자 변경문구*/
|
||||
private String selStpgeCustomWords;
|
||||
|
||||
/** 재고정책 */
|
||||
private String invntryPolicyCd;
|
||||
/** 가용재고제한수량 */
|
||||
private String avlinvLmttQy;
|
||||
/** 짧은설명 */
|
||||
private String srtDc;
|
||||
/** 키워드 */
|
||||
private String kwrd;
|
||||
/** 브랜드 */
|
||||
private String brandCd;
|
||||
/** 상품설명 */
|
||||
private String goodsDc;
|
||||
/** 모바일상품설명 */
|
||||
private String mblGoodsDc;
|
||||
/** 모바일상품설명 PC 동일여부 */
|
||||
private String mblGoodsDcPcSameAt;
|
||||
/** 구매수량 제한구분코드 */
|
||||
private String purchsQyLmttDvCd;
|
||||
/** 구매수량 유형 */
|
||||
private String purchsQyTyCd;
|
||||
/** 최소구매수량 */
|
||||
private String mummPurchsQy;
|
||||
/** 최대구매수량 */
|
||||
private String mxmmPurchsQy;
|
||||
/** 결제수단설정 */
|
||||
private String setleMnSetupCd;
|
||||
/** 상품노출유형 */
|
||||
private String goodsExpsrTyCd;
|
||||
/** 노출구분 */
|
||||
private String expsrDvCd;
|
||||
/** 노출시작일시 */
|
||||
private String expsrBgnDt;
|
||||
/** 노출종료 */
|
||||
private String expsrEndDt;
|
||||
/** 노출설정앞문구 */
|
||||
private String expsrSetupFwords;
|
||||
/** 리뷰그룹번호 */
|
||||
private String rvwGroupNb;
|
||||
/** 리뷰작성가능여부 */
|
||||
private String rvwWritngPosblAt;
|
||||
/** 입점마케팅 네이버 연동여부 */
|
||||
private String naverEpIntrlckAt;
|
||||
/** 입점마케팅 구글 연동여부 */
|
||||
private String googleEpIntrlckAt;
|
||||
/** 입점마케팅 메타 연동여부 */
|
||||
private String metaEpIntrlckAt;
|
||||
/** 입점마케팅 모비온 연동여부 */
|
||||
private String mobionEpIntrlckAt;
|
||||
/** 예약상품배송일자 */
|
||||
private String resveGoodsDlvyDe;
|
||||
/** 예약상품안내문구내용 */
|
||||
private String resveGoodsGuidanceWordsCn;
|
||||
/** 배송안내문구내용 */
|
||||
private String dlvyGuidanceWordsCn;
|
||||
/** 청약철회가능여부 */
|
||||
private String subscrptWthdrawPosblAt;
|
||||
/** 개별취소가능여부 */
|
||||
private String indvdlzCanclPosblAt;
|
||||
/** 개별출고가능여부 */
|
||||
private String indvdlzDlivyPosblAt;
|
||||
/** 개별반품교환가능여부 */
|
||||
private String indvdlzReturnExchngPosblAt;
|
||||
/** 대표설명 */
|
||||
private String reprsntDc;
|
||||
/** 한달리뷰작성가능여부 */
|
||||
private String mtRvwWritngPosblAt;
|
||||
/** 구매대상자제한구분코드 */
|
||||
private String purchsTrgterLmttDvCd;
|
||||
|
||||
/*일반 상품 일괄 업데이트 여부*/
|
||||
/*추가정보 수정여부*/
|
||||
private String goodsAdditionUptAt;
|
||||
/*
|
||||
Y 현재정보 유지하면서 업데이트
|
||||
N 현재 추가정보 삭제 후 업데이트
|
||||
*/
|
||||
private String goodsAdditionDeleteAt;
|
||||
/*판매상태 수정여부*/
|
||||
private String goodsSttusUptAt;
|
||||
/*노출여부 수정여부*/
|
||||
private String ExpsrDvUptAt;
|
||||
/*공용정보 수정여부*/
|
||||
private String cmnuseInfoUptAt;
|
||||
/*배송그룹 수정여부*/
|
||||
private String dlvyGroupUptAt;
|
||||
/*배송 안내 문구 수정여부*/
|
||||
private String dlvyGuidanceWordsCnUptAt;
|
||||
/*입점마케팅 연동여부 수정여부 */
|
||||
private String epIntrlckUptAt;
|
||||
/*전체 상품 선택*/
|
||||
private String goodsChoiceAll;
|
||||
/*선택 상품 고유번호*/
|
||||
private String[] goodsInnbs;
|
||||
|
||||
/*관리자 상품 검색 - 대표카테고리기준*/
|
||||
private String reprsntCtgryAtY;
|
||||
/*관리자 상품 검색 - 카테고리 미등록*/
|
||||
private String ctgryNoRegAtY;
|
||||
|
||||
/*판매수량 초기화여부*/
|
||||
private String usefulInvntryQyInit;
|
||||
|
||||
/*************************************
|
||||
* 상품 GOODS END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/*************************************
|
||||
* 옵션 GOODS_OPTION START
|
||||
* **********************************/
|
||||
/** 입력옵션 */
|
||||
private List<GoodsOptionVO> goodsInputOptionVOList;
|
||||
private List<GoodsOptionVO> delGoodsInputOptionVOList;
|
||||
/** 일반옵션 */
|
||||
private List<GoodsOptionVO> goodsNormalOptionVOList;
|
||||
private List<GoodsOptionVO> delGoodsNormalOptionVOList;
|
||||
/** 추가구성옵션 */
|
||||
private List<GoodsOptionVO> goodsAddedOptionVOList;
|
||||
private List<GoodsOptionVO> delGoodsAddedOptionVOList;
|
||||
/** 재고옵션 */
|
||||
private List<GoodsOptionVO> goodsInvntryOptionVOList;
|
||||
private List<GoodsOptionVO> delGoodsInvntryOptionVOList;
|
||||
/** 상품옵션 고유번호 */
|
||||
private String goodsOptnInnb;
|
||||
/** 옵션 유형 */
|
||||
private String optnTy;
|
||||
// /** 쇼핑몰코드 */
|
||||
// private String sopmalCd;
|
||||
// /** 상품고유번호 */
|
||||
// private long goodsInnb;
|
||||
/** 옵션명 1 */
|
||||
private String optnNm1;
|
||||
/** 옵션명 2 */
|
||||
private String optnNm2;
|
||||
/** 옵션명 3 */
|
||||
private String optnNm3;
|
||||
/** 옵션명 4 */
|
||||
private String optnNm4;
|
||||
/** 옵션값 1 */
|
||||
private String optnVal1;
|
||||
/** 옵션값 2 */
|
||||
private String optnVal2;
|
||||
/** 옵션값 3 */
|
||||
private String optnVal3;
|
||||
/** 옵션값 4 */
|
||||
private String optnVal4;
|
||||
/** 옵션코드 1 */
|
||||
private String optnCd1;
|
||||
/** 옵션코드 2 */
|
||||
private String optnCd2;
|
||||
/** 옵션코드 3 */
|
||||
private String optnCd3;
|
||||
/** 옵션코드 4 */
|
||||
private String optnCd4;
|
||||
/** 옵션정보 */
|
||||
private String optnInfo;
|
||||
/** 재고수량 */
|
||||
private Integer invntryQy;
|
||||
/** 가용재고수량 */
|
||||
private Integer usefulInvntryQy;
|
||||
/** 공급가 */
|
||||
private Integer splpric;
|
||||
/** 소비자가 */
|
||||
private Integer cnsmrpric;
|
||||
/** 판매가 */
|
||||
private Integer slepric;
|
||||
/** 마일리지적립구분코드 */
|
||||
private String mlgAccmlCd;
|
||||
/** 마일리지 적립금액 */
|
||||
private Integer mlgAccmlAmt;
|
||||
/** 옵션관계번호 */
|
||||
private long optnRelateNb;
|
||||
/** 옵션노출여부 */
|
||||
private String optnExpsrAt;
|
||||
/** 기준구분여부 */
|
||||
private String stdrDvAt;
|
||||
/*************************************
|
||||
* 옵션 GOODS_OPTION END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/*************************************
|
||||
* 관련상품(추천상품) GOODS_RELATE START
|
||||
* **********************************/
|
||||
/** 관련상품(추천상품) */
|
||||
private List<GoodsRelateVO> goodsRelateVOList;
|
||||
|
||||
/** 관련상품 고유번호 */
|
||||
private long relateGoodsInnb;
|
||||
// /** 상품 고유번호 */
|
||||
// private long goodsInnb;
|
||||
/** 관련 판매상품 고유번호 */
|
||||
// private long relateSleGoodsInnb;
|
||||
/*************************************
|
||||
* 관련상품 GOODS_RELATE END
|
||||
* **********************************/
|
||||
|
||||
/*************************************
|
||||
* 추가정보 GOODS_ADDITION START
|
||||
* **********************************/
|
||||
|
||||
/** 추가정보 */
|
||||
private List<GoodsAdditionVO> goodsAdditionVOList;
|
||||
private List<GoodsAdditionVO> deleteAdditionVOList;
|
||||
|
||||
/*************************************
|
||||
* 추가정보 GOODS_ADDITION END
|
||||
* **********************************/
|
||||
|
||||
/*************************************
|
||||
* 할인(프로모션) SHOP_GOODS_DSCNT START
|
||||
* **********************************/
|
||||
/** 판매상품할인정책고유번호 */
|
||||
private long sleGoodsDscntInnb;
|
||||
// /** 상품고유번호 */
|
||||
// private long goodsInnb;
|
||||
// /** 쇼핑몰코드 */
|
||||
// private String sopmalCd;
|
||||
/** 할인시작구매수량 */
|
||||
private long dscntBgnPurchsQy;
|
||||
/** 할인종료구매수량 */
|
||||
private long dscntEndPurchsQy;
|
||||
/** 할인구분코드 */
|
||||
private String dscntDvCd;
|
||||
/** 할인금액 */
|
||||
private double dscntAmt;
|
||||
/*************************************
|
||||
* 할인(프로모션) SHOP_GOODS_DSCNT END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/*************************************
|
||||
* 아이콘 GOODS_ICON START
|
||||
* **********************************/
|
||||
/** 아이콘 */
|
||||
private String goodsIconCd;
|
||||
|
||||
/** 상품아이콘 고유번호*/
|
||||
// private long goodsIconInnb;
|
||||
// /** 상품고유번호*/
|
||||
// private long goodsInnb;
|
||||
/** 아이콘코드*/
|
||||
// private String iconCd;
|
||||
/*************************************
|
||||
* 아이콘 GOODS_ICON END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/*************************************
|
||||
* 이미지 GOODS_IMAGE START
|
||||
* **********************************/
|
||||
/** 상품이미지 고유번호 */
|
||||
private long goodsImgInnb;
|
||||
// /** 상품고유번호 */
|
||||
// private long goodsInnb;
|
||||
// /** 쇼핑몰코드 */
|
||||
// private String sopmalCd;
|
||||
/** 이미지종류 */
|
||||
private String imgKnd;
|
||||
/** 컷번호 */
|
||||
private long cutNb;
|
||||
/** 이미지경로 */
|
||||
private String img;
|
||||
|
||||
//이미지정보
|
||||
private List<GoodsImageVO> goodsImageVOList;
|
||||
//삭제할 이미지 정보
|
||||
private List<GoodsImageVO> delGoodsImageVOList;
|
||||
/*************************************
|
||||
* 이미지 GOODS_IMAGE END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/*************************************
|
||||
* 카테고리연결 CATEGORY_LINK START
|
||||
* **********************************/
|
||||
/** 카테고리 */
|
||||
private List<CategoryLinkVO> goodsCategoryLinkVOList;
|
||||
|
||||
/** 카테고리연결상품고유번호 */
|
||||
// private long ctgryGoodsEsntlNb;
|
||||
// /** 상품고유번호 */
|
||||
// private long goodsInnb;
|
||||
/** 카테고리ID */
|
||||
private String ctgryId;
|
||||
/** 대표카테고리여부 */
|
||||
// private String reprsntCtgryAt;
|
||||
/** 상품순서 */
|
||||
// private double goodsOrdr;
|
||||
/*************************************
|
||||
* 카테고리연결 CATEGORY_LINK END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/*************************************
|
||||
* 상품수정로그 FM_GOODS_ADMIN_LOG START
|
||||
* **********************************/
|
||||
/** 상품수정로그 고유번호 */
|
||||
private long goodsUpdtLogInnb;
|
||||
/** 항목명 */
|
||||
private String itmNm;
|
||||
/** 변경전값 */
|
||||
private String chngBfeVal;
|
||||
/** 변경후값 */
|
||||
private String chngAfeVal;
|
||||
/** 수정자 이름 */
|
||||
private String regusrNm;
|
||||
/** 회차 */
|
||||
private double round;
|
||||
/** 아이피 */
|
||||
private String ip;
|
||||
/*************************************
|
||||
* 상품수정로그 FM_GOODS_ADMIN_LOG END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/*************************************
|
||||
* 상품 구매대상자제한 FM_GOODS_TRGTER_LMTT START
|
||||
* **********************************/
|
||||
/** 구매대상자 제한 > 회원 등급별 */
|
||||
private List<GoodsTrgterLmttVO> goodsTrgterLmttMemGradVOList;
|
||||
/** 구매대상자 제한 > 모든등급 */
|
||||
private GoodsTrgterLmttVO goodsTrgterLmttMemAllVOList;
|
||||
/** 구매대상자 제한 > 비회원 */
|
||||
private GoodsTrgterLmttVO goodsTrgterLmttNoneVOList;
|
||||
|
||||
|
||||
// private long goodsTrgterLmttInnb;
|
||||
// private long goodsInnb;
|
||||
// private String sopmalCd;
|
||||
// private String goodsTrgterDvCd;
|
||||
// private long mbrGradInnb;
|
||||
// private String pricRplcWordsUseAt;
|
||||
// private String pricRplcWords;
|
||||
// private String pricRplcLink;
|
||||
// private String pricRplcLinkDvCd;
|
||||
// private String pricRplcLinkBrwsrDvCd;
|
||||
// private String buttonRplcWordsUseAt;
|
||||
// private String buttonRplcWords;
|
||||
// private String buttonRplcLink;
|
||||
// private String buttonRplcLinkDvCd;
|
||||
// private String buttonRplcLinkBrwsrDvCd;
|
||||
/*************************************
|
||||
* 상품 구매대상자제한 FM_GOODS_TRGTER_LMTT END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/** 주문고유번호 */
|
||||
private String ordrInnb;
|
||||
|
||||
/** 회원고유번호 */
|
||||
private String mbrInnb;
|
||||
|
||||
/** 회원구분 */
|
||||
private String mbrDvCd;
|
||||
|
||||
/** 상위 카테고리 */
|
||||
private String upperCtgryId;
|
||||
|
||||
/** 노출 코드 */
|
||||
private String expsrCd;
|
||||
|
||||
/** 가격 구분 */
|
||||
private String pricDv;
|
||||
|
||||
/** 시작 가격 */
|
||||
private String startPric;
|
||||
|
||||
/** 종료 가격 */
|
||||
private String endPric;
|
||||
|
||||
/** 판매 상태 */
|
||||
private String[] goodsDftinfoSttus;
|
||||
|
||||
/** 일자 구분 */
|
||||
private String dateDv;
|
||||
|
||||
/** 시작 일자 */
|
||||
private String startDate;
|
||||
|
||||
/** 종료 일자 */
|
||||
private String endDate;
|
||||
|
||||
/** 재고에따른 판매 */
|
||||
private String goodsDftinfoInvntryPolicy;
|
||||
|
||||
/** 상품옵션 고유번호 배열*/
|
||||
private String[] goodsOptnInnbs;
|
||||
|
||||
/** 상품옵션 구분 */
|
||||
private String goodsOptnDv;
|
||||
|
||||
/** 개수 */
|
||||
private int qy;
|
||||
|
||||
/** 입력옵션 텍스트 */
|
||||
private String inputOptn;
|
||||
|
||||
/** 이벤트 고유번호 배열*/
|
||||
private String[] evtInnbs;
|
||||
|
||||
/** 이벤트 고유번호 */
|
||||
private String evtInnb;
|
||||
|
||||
/** 이벤트 구분 */
|
||||
private String evtDv;
|
||||
|
||||
/** 쿠폰 고유번호 */
|
||||
private String couponInnb;
|
||||
|
||||
/** 다운로드쿠폰 고유번호 */
|
||||
private String dwldCouponInnb;
|
||||
|
||||
/** 쿠폰 혜택구분 */
|
||||
private String bnefDv;
|
||||
|
||||
/** 중복할인여부 */
|
||||
private String dplctDscntAt;
|
||||
|
||||
/** 타쿠폰동시사용여부 */
|
||||
private String otrCouponSmtmUseAt;
|
||||
|
||||
/** 적용쿠폰 */
|
||||
private String usedCoupons;
|
||||
|
||||
|
||||
/** 검색_정렬구분 */
|
||||
private String sortDv;
|
||||
/** 검색 타입 */
|
||||
private String srchType;
|
||||
/** 검색어 */
|
||||
private String srchStr;
|
||||
/** 선택 삭제 */
|
||||
private List<HashMap<String, Object>> delInnbArr;
|
||||
/** 이미지 파일 업로드 */
|
||||
private List<HashMap<String, Object>> fileInfo;
|
||||
|
||||
|
||||
//실시간 수량배너 노출 설정
|
||||
/** 실시간 수량배너 노출여부*/
|
||||
private String rltmQyBannerExpsrAt;
|
||||
|
||||
/** 실시간수량배너 구분*/
|
||||
private String rltmQyBannerDvCd;
|
||||
|
||||
/** 실시간 수량배너 이벤트 실판매 실재고수량*/
|
||||
private Integer rltmRlQy;
|
||||
|
||||
/** 실시간 수량배너 이벤트 실판매 실재고판매수량*/
|
||||
private Integer rltmRlSleQy;
|
||||
|
||||
/** 실시간 수량배너 이벤트 가판매 가재고수량*/
|
||||
private Integer rltmVirtlQy;
|
||||
|
||||
/** 실시간 수량배너 이벤트가판매 가수량차감기준일시 */
|
||||
private String rltmQyDdctStdrDt;
|
||||
|
||||
/** 실시간 수량배너 이벤트가판매 가수량차감시간*/
|
||||
private Integer rltmQyDdctTme;
|
||||
|
||||
/** 실시간 수량배너 이벤트가판매 가수량차감수량*/
|
||||
private Integer rltmDdctQy;
|
||||
|
||||
/** 실시간 수량배너 이벤트가판매 가차감제한수량 */
|
||||
private Integer rltmDdctLimitQy;
|
||||
|
||||
/** 상품 목록을 퍼올릴 영역 */
|
||||
private String selectedArea;
|
||||
|
||||
/*상품 순서 수정 리스트 */
|
||||
private List<String> goodsOrdrList;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ShopGoodsBannerVO extends AbstractVO {
|
||||
|
||||
/** 상품고유번호*/
|
||||
private long goodsInnb;
|
||||
/** 배너고유번호*/
|
||||
private long bannerInnb;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ShopGoodsDscntVO extends AbstractVO {
|
||||
|
||||
/** 판매상품할인정책고유번호 */
|
||||
private long sleGoodsDscntInnb;
|
||||
/** 상품고유번호 */
|
||||
private long goodsInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 할인시작구매수량 */
|
||||
private long dscntBgnPurchsQy;
|
||||
/** 할인종료구매수량 */
|
||||
private long dscntEndPurchsQy;
|
||||
/** 할인구분코드 */
|
||||
private String dscntDvCd;
|
||||
/** 할인금액 */
|
||||
private double dscntAmt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,223 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.prsnt.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.goods.goodsmngr.vo.GoodsmngrVO;
|
||||
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.service.FileStorageService;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
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.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/mngr/goods/prsnt")
|
||||
@Slf4j
|
||||
public class PrsntController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
/** 파일 업로드 */
|
||||
@Autowired
|
||||
private FileStorageService filestore;
|
||||
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/**
|
||||
* 사은품 목록 조회 폼
|
||||
* @param prsntSrchVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectPrsntListForm")
|
||||
public String selectPrsntListForm(ModelMap model, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOPrsntListForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/prsnt/PrsntListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 사은품 목록 조회
|
||||
* @param prsntSrchVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectPrsntList")
|
||||
public String selectPrsntList(ModelMap model,GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOPrsntList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
|
||||
return "mngr/goods/prsnt/PrsntListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 사은품 등록 폼
|
||||
* @param prsntSrchVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertPrsntForm")
|
||||
public String insertPrsntForm(ModelMap model,GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsListForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
|
||||
return "mngr/goods/prsnt/PrsntC";
|
||||
}
|
||||
/**
|
||||
* 사은품 등록
|
||||
* @param prsntVO
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertPrsnt" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertPrsnt(@Validated GoodsmngrVO vo, BindingResult bindingResult , HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
request.setAttribute("shopCd", vo.getSopmalCd());
|
||||
request.setAttribute("pathGubun","GDIG"); //이미지구분코드 - 상품
|
||||
|
||||
try {
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
vo.setFileInfo(ulpladFileMap);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/insertBOPrsnt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 사은품 상세조회
|
||||
* @param prsntVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectPrsntDtlForm")
|
||||
public String selectPrsntDtlForm(ModelMap model,GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOPrsntDtl", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
|
||||
return "mngr/goods/prsnt/PrsntDtlU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 사은품 수정
|
||||
* @param prsntVO
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updatePrsntDtl" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updatePrsntDtl(@Validated GoodsmngrVO vo, BindingResult bindingResult , HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
request.setAttribute("shopCd", vo.getSopmalCd());
|
||||
request.setAttribute("pathGubun","GDIG"); //이미지구분코드 - 상품
|
||||
|
||||
try {
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
vo.setFileInfo(ulpladFileMap);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOPrsnt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 사은품 삭제
|
||||
* @param prsntVO
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/deletePrsnt" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> deletePrsnt(GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/deleteBOGoods", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.prsnt.vo;
|
||||
|
||||
public class PrsntSrchVO {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.prsnt.vo;
|
||||
|
||||
public class PrsntVO {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user