fo bo 머지작업

This commit is contained in:
jazz
2025-11-12 11:31:25 +09:00
parent db4a88b74a
commit 7c2b0162f5
55 changed files with 5362 additions and 1149 deletions

View File

@@ -1,21 +1,34 @@
package com.wb.domainserver.domain.mngr.goods.banner.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
import com.wb.domainserver.common.prop.PaginationProperties;
import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO;
import com.wb.domainserver.domain.admin.sys.ctgry.service.BOMaCtgryService;
import com.wb.domainserver.domain.gcone.goods.banner.service.BOBannerService;
import com.wb.domainserver.domain.gcone.goods.banner.vo.BOBannerVO;
import com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO;
import com.wb.domainserver.domain.mngr.goods.banner.vo.BannerVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.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.dataaccess.DataMap;
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.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
@@ -28,6 +41,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Controller
@@ -51,6 +65,13 @@ public class BannerController {
@Autowired
private WnbtWebClientResponseHandler responseHandler;
@Autowired
private BOBannerService service;
@Autowired
private BOMaCtgryService boMaCtgryService;
@Autowired
private PaginationProperties paginationProperties;
/**
* 배너목록조회
* @param vo
@@ -59,15 +80,51 @@ public class BannerController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBannerListR")
public String selectBannerListR(BannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
public String selectBannerListR(BOBannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerList", vo),
model,
"resultMap"
);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(vo.getPageIndex());
paginationInfo.setRecordCountPerPage(vo.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
vo.setPaginationInfo(paginationInfo);
vo.setFirstIndex(paginationInfo.getFirstRecordIndex());
vo.setLastIndex(paginationInfo.getLastRecordIndex());
vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
Map<String, Object> content = new HashMap<>();
BOMaComncdVO cdVO = new BOMaComncdVO();
// 목록 조회
List<DataMap> list = service.selectBOBannerList(vo);
content.put("list", list);
// 노출위치구분 공통코드 조회
cdVO.setGroupCd("EXPSRLC_DV");
List<DataMap> expsrlcDvList = service.selectCommCode(cdVO);
content.put("expsrlcDvList", expsrlcDvList);
// 노출구분 공통코드 조회
cdVO.setGroupCd("EXPSR_DV");
List<DataMap> expsrlcDvCdList = service.selectCommCode(cdVO);
content.put("expsrlcDvCdList", expsrlcDvCdList);
content.put("BOBannerVO", vo);
content.put("paginationInfo", vo.getPaginationInfo());
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerList", vo),
// model,
// "resultMap"
// );
return "mngr/goods/banner/BannerListR";
}
@@ -80,15 +137,52 @@ public class BannerController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBannerRegistForm")
public String selectBannerRegistForm(BannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
public String selectBannerRegistForm(BOBannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerRegistForm", vo),
model,
"resultMap"
);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
vo.setUpdusr(user.getUserInnb());
vo.setRegusr(user.getUserInnb());
Map<String, Object> content = new HashMap<>();
BOMaComncdVO cdVO = new BOMaComncdVO();
// 노출위치구분 공통코드 조회
cdVO.setGroupCd("EXPSRLC_DV");
List<DataMap> expsrlcDvList = service.selectCommCode(cdVO);
content.put("expsrlcDvList", expsrlcDvList);
// 노출구분 공통코드 조회
cdVO.setGroupCd("EXPSR_DV");
List<DataMap> expsrlcDvCdList = service.selectCommCode(cdVO);
content.put("expsrlcDvCdList", expsrlcDvCdList);
// 적용대상 제한구분코드
cdVO.setGroupCd("GOODS_APPLC_DV");
List<DataMap> goodsCtgryLmttDvCdList = service.selectCommCode(cdVO);
content.put("goodsCtgryLmttDvCdList", goodsCtgryLmttDvCdList);
content.put("BOBannerVO", vo);
content.put("paginationInfo", vo.getPaginationInfo());
BOGoodsVO goodsVOvo = new BOGoodsVO();
goodsVOvo.setUpperCtgryId(vo.getUpperCtgryId());
goodsVOvo.setSopmalCd(vo.getSopmalCd());
goodsVOvo.setUpperCtgryId("2");
List<?> GoodsCategoryList = boMaCtgryService.selectGoodsCategoryList(goodsVOvo);
content.put("goodsCategoryList", GoodsCategoryList); // 카테고리 depth1
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerRegistForm", vo),
// model,
// "resultMap"
// );
return "mngr/goods/banner/BannerC";
}
@@ -96,14 +190,14 @@ public class BannerController {
/**
* 배너 등록
* @param vo
* @param model
* @param bindingResult
* @param request
* @param authSopmalCd
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/insertBanner" , method = RequestMethod.POST)
public ResponseEntity<?> insertBanner(@Validated BannerVO vo, BindingResult bindingResult,
@RequestMapping(value="/insertBanner" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> insertBanner(@Validated BOBannerVO vo, BindingResult bindingResult,
HttpServletRequest request,
@CookieValue(value = "authSopmalCd") String authSopmalCd){
if(bindingResult.hasErrors()) {
@@ -126,10 +220,25 @@ public class BannerController {
log.error(e.getMessage(), e);
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/insertBOBanner", vo),
ReplyFromResrc::getReply
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
vo.setUpdusr(user.getUserInnb());
vo.setRegusr(user.getUserInnb());
Map<String, Object> content = service.insertBOBanner(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/insertBOBanner", vo),
// ReplyFromResrc::getReply
// );
}
@@ -142,16 +251,52 @@ public class BannerController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBannerDtlForm" , method = RequestMethod.POST)
public String selectBannerDtlForm(BannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
public String selectBannerDtlForm(BOBannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerDtlForm", vo),
model,
"resultMap"
);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
BOMaComncdVO cdVO = new BOMaComncdVO();
Map<String, Object> content = new HashMap<>();
Map<String, Object> bannerInfo = service.selectBOBannerDtlForm(vo);
content.put("bannerInfo", bannerInfo);
// 노출위치구분 공통코드 조회
cdVO.setGroupCd("EXPSRLC_DV");
List<DataMap> expsrlcDvList = service.selectCommCode(cdVO);
content.put("expsrlcDvList", expsrlcDvList);
// 노출구분 공통코드 조회
cdVO.setGroupCd("EXPSR_DV");
List<DataMap> expsrlcDvCdList = service.selectCommCode(cdVO);
content.put("expsrlcDvCdList", expsrlcDvCdList);
// 적용대상 제한구분코드
cdVO.setGroupCd("GOODS_APPLC_DV");
List<DataMap> goodsCtgryLmttDvCdList = service.selectCommCode(cdVO);
content.put("goodsCtgryLmttDvCdList", goodsCtgryLmttDvCdList);
BOGoodsVO goodsVOvo = new BOGoodsVO();
goodsVOvo.setUpperCtgryId(vo.getUpperCtgryId());
goodsVOvo.setSopmalCd(vo.getSopmalCd());
goodsVOvo.setUpperCtgryId("2");
List<?> GoodsCategoryList = boMaCtgryService.selectGoodsCategoryList(goodsVOvo);
content.put("goodsCategoryList", GoodsCategoryList); // 카테고리 depth1
content.put("BOBannerVO", vo);
content.put("paginationInfo", vo.getPaginationInfo());
model.addAttribute("resultMap",content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerDtlForm", vo),
// model,
// "resultMap"
// );
return "mngr/goods/banner/BannerDtlU";
}
@@ -159,14 +304,14 @@ public class BannerController {
/**
* 배너 수정
* @param vo
* @param model
* @param bindingResult
* @param request
* @param authSopmalCd
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateBannerDtl")
public ResponseEntity<?> updateBannerDtl(@Validated BannerVO vo, BindingResult bindingResult, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){
@RequestMapping(value="/updateBannerDtl", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> updateBannerDtl(@Validated BOBannerVO vo, BindingResult bindingResult, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){
if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
@@ -187,10 +332,25 @@ public class BannerController {
log.error(e.getMessage(), e);
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/updateBOBannerDtl", vo),
ReplyFromResrc::getReply
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
vo.setUpdusr(user.getUserInnb());
Map<String, Object> content = new HashMap<>();
content = service.updateBOBannerDtl(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/updateBOBannerDtl", vo),
// ReplyFromResrc::getReply
// );
}
@@ -199,16 +359,28 @@ public class BannerController {
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/deleteBanner" , method = RequestMethod.POST)
public ResponseEntity<?> deleteBanner(BannerVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
@RequestMapping(value="/deleteBanner" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> deleteBanner(BOBannerVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/deleteBOBanner", vo),
ReplyFromResrc::getReply
);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
vo.setRegusr(user.getUserInnb());
Map<String, Object> content = service.deleteBOBanner(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/deleteBOBanner", vo),
// ReplyFromResrc::getReply
// );
}
@@ -218,16 +390,25 @@ public class BannerController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBannerOrdrPopup" , method = RequestMethod.POST)
public String selectBannerOrdrPopup(BannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
public String selectBannerOrdrPopup(BOBannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerOrdrPopup", vo),
model,
"resultMap"
);
Map<String, Object> content = new HashMap<>();
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
List<DataMap> result = service.selectBOBannerOrdrPopup(vo);
content.put("bannerOrdrList", result);
model.addAttribute("resultMap",content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerOrdrPopup", vo),
// model,
// "resultMap"
// );
return "mngr/goods/banner/BannerOrdrPopupR";
}
@@ -237,18 +418,36 @@ public class BannerController {
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateBannerOrdr" , method = RequestMethod.POST)
public ResponseEntity<?> updateBannerOrdr( @RequestBody List<BannerVO> vo,
@RequestMapping(value="/updateBannerOrdr" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> updateBannerOrdr( @RequestBody List<BOBannerVO> vo,
@CookieValue(value = "authSopmalCd") String authSopmalCd){
for(BannerVO bannerVO : vo){
for(BOBannerVO bannerVO : vo){
bannerVO.setSopmalCd(authSopmalCd);
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/updateBOBannerOrdr", vo),
ReplyFromResrc::getReply
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
for(BOBannerVO tmpVo :vo){
if("01".equals(user.getSysDvCd())){
tmpVo.setSopmalCd(user.getSopmalCd());
}
tmpVo.setRegusr(user.getUserInnb());
tmpVo.setUpdusr(user.getUserInnb());
}
Map<String, Object> content = service.updateBOBannerOrdr(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/updateBOBannerOrdr", vo),
// ReplyFromResrc::getReply
// );
}

View File

@@ -1,16 +1,23 @@
package com.wb.domainserver.domain.mngr.goods.cmnuse.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.gcone.goods.cmnuse.service.BOCmnuseService;
import com.wb.domainserver.domain.gcone.goods.cmnuse.vo.BOCmnuseVO;
import com.wb.domainserver.domain.mngr.goods.cmnuse.vo.CmnuseVO;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
@@ -18,6 +25,8 @@ import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.List;
/**
* Cmnuse Controller Class (front)
*
@@ -51,114 +60,179 @@ public class CmnuseController {
@Autowired
private WnbtWebClientResponseHandler responseHandler;
@Autowired
private BOCmnuseService service;
/**
* 공용 정보 목록 조회
* @param CmnuseVO
* @param vo
* @param model 모델객체
* @return String JSP 경로
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectCmnuseInfoList")
public String selectCmnuseInfoList(CmnuseVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
public String selectCmnuseInfoList(BOCmnuseVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/selectBOCmnuseInfoList", vo),
model,
"resultMap"
);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
List<DataMap> infoList = service.selectBOCmnuseInfoList(vo);
DataMap content = new DataMap();
content.put("infoList", infoList);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/selectBOCmnuseInfoList", vo),
// model,
// "resultMap"
// );
return "mngr/goods/cmnuse/CmnuseInfoListR";
}
/**
* 공용 정보 등록
* @param CmnuseVO
* @param vo
* @return ResponseEntity
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/insertCmnuseInfo" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> insertCmnuseInfo(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
@RequestMapping(value="/insertCmnuseInfo" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> insertCmnuseInfo(BOCmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/insertBOCmnuseInfo", vo),
ReplyFromResrc::getReply
);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
vo.setUpdusr(user.getUserInnb());
vo.setRegusr(user.getUserInnb());
DataMap message = new DataMap();
int result = service.insertBOCmnuseInfo(vo);
message.put("message", result);
message.put("cmnuseInfoInnb", vo.getCmnuseInfoInnb());
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/insertBOCmnuseInfo", vo),
// ReplyFromResrc::getReply
// );
}
/**
* 공용 정보 등록 화면 조회
* @param CmnuseVO
* @param model 모델객체
* @param vo
* @param authSopmalCd
* @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
* @param vo
* @return ResponseEntity
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateCmnuseInfoDtl", method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> updateCmnuseInfoDtl(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
@RequestMapping(value="/updateCmnuseInfoDtl", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateCmnuseInfoDtl(BOCmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/updateBOCmnuseInfoDtl", vo),
ReplyFromResrc::getReply
);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
vo.setUpdusr(user.getUserInnb());
DataMap message = new DataMap();
int result = service.updateBOCmnuseInfoDtl(vo);
message.put("message", result);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/updateBOCmnuseInfoDtl", vo),
// ReplyFromResrc::getReply
// );
}
/**
* 공용 정보 수정 화면 조회
* @param CmnuseVO
* @param vo
* @param model 모델객체
* @return String JSP 경로
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectCmnuseInfoDtlForm")
public String selectCmnuseInfoDtlForm(CmnuseVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
public String selectCmnuseInfoDtlForm(BOCmnuseVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/selectBOCmnuseInfoDtlForm", vo),
model,
"resultMap"
);
DataMap content = service.selectBOCmnuseInfoDtl(vo);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/selectBOCmnuseInfoDtlForm", vo),
// model,
// "resultMap"
// );
return "mngr/goods/cmnuse/CmnuseInfoDtlFormR";
}
/**
* 공용 정보 삭제
* @param CmnuseVO
* @param vo
* @return ResponseEntity
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/deleteCmnuseInfo", method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> deleteCmnuseInfo(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
@RequestMapping(value="/deleteCmnuseInfo", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> deleteCmnuseInfo(BOCmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/deleteBOCmnuseInfo", vo),
ReplyFromResrc::getReply
);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
vo.setUpdusr(user.getUserInnb());
DataMap message = new DataMap();
String result = service.deleteBOCmnuseInfo(vo)==1? "success":"fail";
message.put("message", result);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/deleteBOCmnuseInfo", vo),
// ReplyFromResrc::getReply
// );
}

View File

@@ -1,18 +1,27 @@
package com.wb.domainserver.domain.mngr.goods.goodsinfo.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
import com.wb.domainserver.common.prop.PaginationProperties;
import com.wb.domainserver.domain.gcone.goods.goodsinfo.service.BOGoodsinfoService;
import com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO;
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.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.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.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
@@ -22,6 +31,9 @@ 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;
/**
* GoodsInfoController Controller Class (front)
*
@@ -57,29 +69,58 @@ public class GoodsInfoController {
@Autowired
private WnbtWebClientResponseHandler responseHandler;
@Autowired
private BOGoodsinfoService service;
@Autowired
private PaginationProperties paginationProperties;
/**
* 상품 정보 목록 조회
* @param GoodsInfoVO
* @param vo
* @return GoodsInfoListR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectGoodsInfoList")
public String selectBbsListInqire(GoodsInfoVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
public String selectBbsListInqire(BOGoodsInfoVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/selectBOGoodsInfoList", vo),
model,
"resultMap"
);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
DataMap content = new DataMap();
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(vo.getPageIndex());
paginationInfo.setRecordCountPerPage(vo.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
vo.setPaginationInfo(paginationInfo);
vo.setFirstIndex(paginationInfo.getFirstRecordIndex());
vo.setLastIndex(paginationInfo.getLastRecordIndex());
vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
List<DataMap> infoList = new ArrayList<>();
infoList = service.selectBOGoodsInfoList(vo);
content.put("boGoodsInfo", vo);
content.put("infoList", infoList);
content.put("paginationInfo", vo.getPaginationInfo());
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/selectBOGoodsInfoList", vo),
// model,
// "resultMap"
// );
return "mngr/goods/goodsinfo/GoodsInfoListR";
}
/**
* 상품 정보 등록화면
* @param GoodsInfoVO
* @param vo
* @return GoodsInfoFormR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@@ -95,86 +136,133 @@ public class GoodsInfoController {
/**
* 상품 정보 등록
* @param GoodsInfoVO
* @param vo
* @param bindingResult 바인딩 및 정합성 점검결과 객체
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/insertGoodsInfo", method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> insertGoodsInfo(@Validated GoodsInfoVO vo, BindingResult bindingResult,
@RequestMapping(value="/insertGoodsInfo", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> insertGoodsInfo(@Validated BOGoodsInfoVO 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
);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
vo.setRegusr(user.getUserInnb());
DataMap message = new DataMap();
message = service.insertBOGoodsInfo(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/insertBOGoodsInfo", vo),
// ReplyFromResrc::getReply
// );
}
/**
* 상품 정보 수정화면
* @param GoodsInfoVO
* @param vo
* @param model 모델객체
* @return GoodsInfoDtlFormR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectGoodsInfoDtlForm")
public String selectGoodsInfoDtlForm(GoodsInfoVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
public String selectGoodsInfoDtlForm(BOGoodsInfoVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/selectBOGoodsInfoDtlForm", vo),
model,
"resultMap"
);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
DataMap content = service.selectBOGoodsInfoDtl(vo);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/selectBOGoodsInfoDtlForm", vo),
// model,
// "resultMap"
// );
return "mngr/goods/goodsinfo/GoodsInfoDtlFormR";
}
/**
* 상품 정보 수정
* @param GoodsInfoVO
* @param vo
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateGoodsInfoDtl")
public ResponseEntity<WnbtResponse> updateGoodsInfoDtl(@Validated GoodsInfoVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
@RequestMapping(value="/updateGoodsInfoDtl", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateGoodsInfoDtl(@Validated BOGoodsInfoVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
vo.setUpdusr(user.getUserInnb());
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/updateBOGoodsInfoDtl", vo),
ReplyFromResrc::getReply
DataMap message = new DataMap();
message = service.updateBOGoodsInfoDtl(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/updateBOGoodsInfoDtl", vo),
// ReplyFromResrc::getReply
// );
}
/**
* 상품 정보 삭제
* @param GoodsInfoVO
* @param vo
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/deleteGoodsInfo")
public ResponseEntity<WnbtResponse> deleteGoodsInfo(GoodsInfoVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
@RequestMapping(value="/deleteGoodsInfo", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> deleteGoodsInfo(BOGoodsInfoVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/updateBOGoodsInfoDel", vo),
ReplyFromResrc::getReply
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
vo.setUpdusr(user.getUserInnb());
DataMap message = new DataMap();
String result = service.updateBOGoodsInfoDel(vo);
message.put("message", result);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/updateBOGoodsInfoDel", vo),
// ReplyFromResrc::getReply
// );
}
}

View File

@@ -1,20 +1,37 @@
package com.wb.domainserver.domain.mngr.goods.prsnt.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
import com.wb.domainserver.common.prop.PaginationProperties;
import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService;
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO;
import com.wb.domainserver.domain.admin.sys.ctgry.service.BOMaCtgryService;
import com.wb.domainserver.domain.gcone.goods.cmnuse.service.BOCmnuseService;
import com.wb.domainserver.domain.gcone.goods.cmnuse.vo.BOCmnuseVO;
import com.wb.domainserver.domain.gcone.goods.goods.service.BOGoodsService;
import com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO;
import com.wb.domainserver.domain.gcone.setup.dlvygrp.service.BODlvygrpService;
import com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO;
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.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.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.dataaccess.DataMap;
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.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
@@ -27,6 +44,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping("/mngr/goods/prsnt")
@@ -48,75 +66,223 @@ public class PrsntController {
@Autowired
private WnbtWebClientResponseHandler responseHandler;
@Autowired
private BOGoodsService service;
@Autowired
private BOMaCtgryService boMaCtgryService;
@Autowired
private BOMaSopmalService boMaSopmalService;
@Autowired
private BOMaComncdService bOMaComncdService;
@Autowired
private PaginationProperties paginationProperties;
@Autowired
private BOCmnuseService bOCmnuseService;
@Autowired
private BODlvygrpService boDlvygrpService;
/**
* 사은품 목록 조회 폼
* @param prsntSrchVO
* @param vo
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectPrsntListForm")
public String selectPrsntListForm(ModelMap model, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
public String selectPrsntListForm(ModelMap model, BOGoodsVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOPrsntListForm", vo),
model,
"resultMap"
);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
vo.setUpperCtgryId("0");
vo.setGoodsKndCd("02"); //사은품
Map<String, Object> content = new HashMap<>();
List<?> SopmalCdNmList = boMaSopmalService.selectBOSopmalCdNm();
content.put("SopmalCdNmList", SopmalCdNmList); //검색조건 > 쇼핑몰
List<?> GoodsCategoryList = boMaCtgryService.selectGoodsCategoryList(vo);
content.put("goodsCategoryList", GoodsCategoryList); // 카테고리 depth1
BOMaComncdVO maComncdVO = new BOMaComncdVO();
maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("GOODS_STTUS");
List<?> cgo012List = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("goodsDftinfoSttusList", cgo012List); // 판매상태
maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("INVNTRY_POLICY");
List<?> cgo134List = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("goodsDftinfoInvntryPolicyList", cgo134List); // 재고에 따른 판매
content.put("BOGoodsVO", vo);
//사은품 이벤트명 조회
List<?> goodsEvtNmList = service.selectBOGoodsEvtNm(vo);
content.put("goodsEvtNmList", goodsEvtNmList);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOPrsntListForm", vo),
// model,
// "resultMap"
// );
return "mngr/goods/prsnt/PrsntListRForm";
}
/**
* 사은품 목록 조회
* @param prsntSrchVO
* @param vo
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectPrsntList")
public String selectPrsntList(ModelMap model,GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
public String selectPrsntList(ModelMap model,BOGoodsVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOPrsntList", vo),
model,
"resultMap"
);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
// 페이징 객체 생성 & 페이징정보 할당
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(vo.getPageIndex());
paginationInfo.setRecordCountPerPage(vo.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
vo.setPaginationInfo(paginationInfo);
vo.setFirstIndex(paginationInfo.getFirstRecordIndex());
vo.setLastIndex(paginationInfo.getLastRecordIndex());
vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
vo.setGoodsKndCd("02"); //사은품
// 목록 조회
List<DataMap> list = service.selectPrsntList(vo);
Map<String, Object> content = new HashMap<>();
content.put("BOGoodsVO", vo);
content.put("list", list);
content.put("paginationInfo", vo.getPaginationInfo());
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOPrsntList", vo),
// model,
// "resultMap"
// );
return "mngr/goods/prsnt/PrsntListR";
}
/**
* 사은품 등록 폼
* @param prsntSrchVO
* @param vo
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/insertPrsntForm")
public String insertPrsntForm(ModelMap model,GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
public String insertPrsntForm(ModelMap model,BOGoodsVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsListForm", vo),
model,
"resultMap"
);
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
Map<String, Object> content = new HashMap<>();
//검색조건 > 쇼핑몰
List<?> SopmalCdNmList = boMaSopmalService.selectBOSopmalCdNm();
content.put("SopmalCdNmList", SopmalCdNmList);
vo.setUpperCtgryId("2");
// 카테고리 depth1
List<DataMap> goodsCategoryList = boMaCtgryService.selectGoodsCategoryList(vo);
content.put("goodsCategoryList", goodsCategoryList);
// 노출
BOMaComncdVO maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("EXPSR");
List<?> cgo014List = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("expsrCdList", cgo014List);
// 판매상태
maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("GOODS_STTUS");
List<?> cgo012List = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("goodsDftinfoSttusList", cgo012List);
// 재고에 따른 판매
maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("INVNTRY_POLICY");
List<?> cgo134List = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("goodsDftinfoInvntryPolicyList", cgo134List);
// 상품아이콘
maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("GOODS_ICON");
List<?> iconList = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("iconList", iconList);
// 실시간수량배너구분코드
maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("RLTM_QY_BANNER_DV");
List<?> rltmQyBannerDvList = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("rltmQyBannerDvList", rltmQyBannerDvList);
//브랜드 목록조회
maComncdVO.setGroupCd("BRAND");
List<?> brandList = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("brandList", brandList);
//EP 목록조회
maComncdVO.setGroupCd("GOODS_EP_DV");
List<?> epList = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("epList", epList);
//배송그룹
BODlvygrpVO dlvyGroup = new BODlvygrpVO();
dlvyGroup.setSopmalCd(vo.getSopmalCd());
List<BODlvygrpVO> dlvyGrpList = boDlvygrpService.selectBODlvyGroupAllList(dlvyGroup);
content.put("dlvyGrpList", dlvyGrpList);
content.put("BOGoodsVO", vo);
//공용정보목록조회
BOCmnuseVO cmnuseVo = new BOCmnuseVO();
cmnuseVo.setSopmalCd(vo.getSopmalCd());
List<?> infoList = bOCmnuseService.selectBOCmnuseInfoList(cmnuseVo);
content.put("infoList", infoList);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsListForm", vo),
// model,
// "resultMap"
// );
return "mngr/goods/prsnt/PrsntC";
}
/**
* 사은품 등록
* @param prsntVO
* @param vo
* @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){
@RequestMapping(value="/insertPrsnt" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> insertPrsnt(@Validated BOGoodsVO vo, BindingResult bindingResult , HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
@@ -132,47 +298,112 @@ public class PrsntController {
ulpladFileMap = filestore.fileUpload(request);
vo.setFileInfo(ulpladFileMap);
} catch (WnbtRestException wre){
log.error(wre.getMessage(), wre);
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
} catch (Exception e) {
log.error(e.getMessage(), e);
throw new WnbtRestException("파일 업로드에 실패했습니다."+ e.getMessage());
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/insertBOPrsnt", vo),
ReplyFromResrc::getReply
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
vo.setRegusr(user.getUserInnb());
vo.setGoodsKndCd("02"); //사은품
vo.setOptnTy("01"); // 옵션코드 - 필수옵션(일반)
vo.setOptnExpsrAt("Y"); // 옵션노출여부
vo.setStdrDvAt("Y"); // 기분구분여부
vo.setUseAt("Y"); // 사용여부
vo.setExpsrDvCd("01"); // 노출구분 01(노출)
//상품 등록 로직
Map<String, Object> message = new HashMap<>();
message = service.insertBOPrsnt(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/insertBOPrsnt", vo),
// ReplyFromResrc::getReply
// );
}
/**
* 사은품 상세조회
* @param prsntVO
* @param vo
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectPrsntDtlForm")
public String selectPrsntDtlForm(ModelMap model,GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
public String selectPrsntDtlForm(ModelMap model,BOGoodsVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOPrsntDtl", vo),
model,
"resultMap"
);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
// 상세조회
DataMap list = new DataMap();
list = service.selectBOPrsntDtl(vo);
List<DataMap> imglist = null;
vo.setCutNb("");
imglist = service.selectBOGoodsImg(vo);
Map<String, Object> content = new HashMap<>();
BOMaComncdVO maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("EXPSR");
List<?> cgo014List = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("expsrCdList", cgo014List); // 노출
maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("GOODS_STTUS");
List<?> cgo012List = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("goodsDftinfoSttusList", cgo012List); // 판매상태
maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("INVNTRY_POLICY");
List<?> cgo134List = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("goodsDftinfoInvntryPolicyList", cgo134List); // 재고에 따른 판매
content.put("BOGoodsVO", vo);
content.put("list", list);
content.put("imglist", imglist);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOPrsntDtl", vo),
// model,
// "resultMap"
// );
return "mngr/goods/prsnt/PrsntDtlU";
}
/**
* 사은품 수정
* @param prsntVO
* @param vo
* @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){
@RequestMapping(value="/updatePrsntDtl" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updatePrsntDtl(@Validated BOGoodsVO vo, BindingResult bindingResult , HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
@@ -188,36 +419,72 @@ public class PrsntController {
ulpladFileMap = filestore.fileUpload(request);
vo.setFileInfo(ulpladFileMap);
} catch (WnbtRestException wre){
log.error(wre.getMessage(), wre);
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
} catch (Exception e) {
log.error(e.getMessage(), e);
throw new WnbtRestException("파일 업로드에 실패했습니다."+ e.getMessage());
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOPrsnt", vo),
ReplyFromResrc::getReply
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
vo.setUpdusr(user.getUserInnb());
vo.setGoodsKndCd("02"); //사은품
vo.setOptnTy("01"); // 옵션코드 - 필수옵션(일반)
vo.setOptnExpsrAt("Y"); // 옵션노출여부
vo.setStdrDvAt("Y"); // 기분구분여부
vo.setUseAt("Y"); // 사용여부
vo.setExpsrDvCd("01"); // 노출구분 01(노출)
//사은품 수정 로직
Map<String, Object> message = new HashMap<>();
message = service.updateBOPrsnt(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOPrsnt", vo),
// ReplyFromResrc::getReply
// );
}
/**
* 사은품 삭제
* @param prsntVO
* @param vo
* @return ResponseEntity
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/deletePrsnt" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> deletePrsnt(GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
@RequestMapping(value="/deletePrsnt" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> deletePrsnt(BOGoodsVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/deleteBOGoods", vo),
ReplyFromResrc::getReply
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
vo.setUpdusr(user.getUserInnb());
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
//상품 삭제 로직
Map<String, Object> message = new HashMap<>();
message = service.deleteBOGoods(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/deleteBOGoods", vo),
// ReplyFromResrc::getReply
// );
}
}